aws-sdk-cloudformation 1.98.0 → 1.99.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1118,6 +1118,94 @@ module Aws::CloudFormation
1118
1118
  req.send_request(options)
1119
1119
  end
1120
1120
 
1121
+ # Creates a template from existing resources that are not already
1122
+ # managed with CloudFormation. You can check the status of the template
1123
+ # generation using the `DescribeGeneratedTemplate` API action.
1124
+ #
1125
+ # @option params [Array<Types::ResourceDefinition>] :resources
1126
+ # An optional list of resources to be included in the generated
1127
+ # template.
1128
+ #
1129
+ # If no resources are specified,the template will be created without any
1130
+ # resources. Resources can be added to the template using the
1131
+ # `UpdateGeneratedTemplate` API action.
1132
+ #
1133
+ # @option params [required, String] :generated_template_name
1134
+ # The name assigned to the generated template.
1135
+ #
1136
+ # @option params [String] :stack_name
1137
+ # An optional name or ARN of a stack to use as the base stack for the
1138
+ # generated template.
1139
+ #
1140
+ # @option params [Types::TemplateConfiguration] :template_configuration
1141
+ # The configuration details of the generated template, including the
1142
+ # `DeletionPolicy` and `UpdateReplacePolicy`.
1143
+ #
1144
+ # @return [Types::CreateGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1145
+ #
1146
+ # * {Types::CreateGeneratedTemplateOutput#generated_template_id #generated_template_id} => String
1147
+ #
1148
+ #
1149
+ # @example Example: To create a generated template
1150
+ #
1151
+ # # This example creates a generated template with a resources file.
1152
+ #
1153
+ # resp = client.create_generated_template({
1154
+ # generated_template_name: "JazzyTemplate",
1155
+ # resources: [
1156
+ # {
1157
+ # resource_identifier: {
1158
+ # "BucketName" => "jazz-bucket",
1159
+ # },
1160
+ # resource_type: "AWS::S3::Bucket",
1161
+ # },
1162
+ # {
1163
+ # resource_identifier: {
1164
+ # "DhcpOptionsId" => "random-id123",
1165
+ # },
1166
+ # resource_type: "AWS::EC2::DHCPOptions",
1167
+ # },
1168
+ # ],
1169
+ # })
1170
+ #
1171
+ # resp.to_h outputs the following:
1172
+ # {
1173
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
1174
+ # }
1175
+ #
1176
+ # @example Request syntax with placeholder values
1177
+ #
1178
+ # resp = client.create_generated_template({
1179
+ # resources: [
1180
+ # {
1181
+ # resource_type: "ResourceType", # required
1182
+ # logical_resource_id: "LogicalResourceId",
1183
+ # resource_identifier: { # required
1184
+ # "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
1185
+ # },
1186
+ # },
1187
+ # ],
1188
+ # generated_template_name: "GeneratedTemplateName", # required
1189
+ # stack_name: "StackName",
1190
+ # template_configuration: {
1191
+ # deletion_policy: "DELETE", # accepts DELETE, RETAIN
1192
+ # update_replace_policy: "DELETE", # accepts DELETE, RETAIN
1193
+ # },
1194
+ # })
1195
+ #
1196
+ # @example Response structure
1197
+ #
1198
+ # resp.generated_template_id #=> String
1199
+ #
1200
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateGeneratedTemplate AWS API Documentation
1201
+ #
1202
+ # @overload create_generated_template(params = {})
1203
+ # @param [Hash] params ({})
1204
+ def create_generated_template(params = {}, options = {})
1205
+ req = build_request(:create_generated_template, params)
1206
+ req.send_request(options)
1207
+ end
1208
+
1121
1209
  # Creates a stack as specified in the template. After the call completes
1122
1210
  # successfully, the stack creation starts. You can check the status of
1123
1211
  # the stack through the DescribeStacks operation.
@@ -1179,7 +1267,7 @@ module Aws::CloudFormation
1179
1267
  #
1180
1268
  # @option params [Integer] :timeout_in_minutes
1181
1269
  # The amount of time that can pass before the stack status becomes
1182
- # CREATE\_FAILED; if `DisableRollback` is not set or is set to `false`,
1270
+ # `CREATE_FAILED`; if `DisableRollback` is not set or is set to `false`,
1183
1271
  # the stack will be rolled back.
1184
1272
  #
1185
1273
  # @option params [Array<String>] :notification_arns
@@ -1989,6 +2077,37 @@ module Aws::CloudFormation
1989
2077
  req.send_request(options)
1990
2078
  end
1991
2079
 
2080
+ # Deleted a generated template.
2081
+ #
2082
+ # @option params [required, String] :generated_template_name
2083
+ # The name or Amazon Resource Name (ARN) of a generated template.
2084
+ #
2085
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2086
+ #
2087
+ #
2088
+ # @example Example: To delete a generated template
2089
+ #
2090
+ # # This example deletes a generated template
2091
+ #
2092
+ # resp = client.delete_generated_template({
2093
+ # generated_template_name: "JazzyTemplate",
2094
+ # })
2095
+ #
2096
+ # @example Request syntax with placeholder values
2097
+ #
2098
+ # resp = client.delete_generated_template({
2099
+ # generated_template_name: "GeneratedTemplateName", # required
2100
+ # })
2101
+ #
2102
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteGeneratedTemplate AWS API Documentation
2103
+ #
2104
+ # @overload delete_generated_template(params = {})
2105
+ # @param [Hash] params ({})
2106
+ def delete_generated_template(params = {}, options = {})
2107
+ req = build_request(:delete_generated_template, params)
2108
+ req.send_request(options)
2109
+ end
2110
+
1992
2111
  # Deletes a specified stack. Once the call completes successfully, stack
1993
2112
  # deletion starts. Deleted stacks don't show up in the DescribeStacks
1994
2113
  # operation if the deletion has been completed successfully.
@@ -2518,6 +2637,103 @@ module Aws::CloudFormation
2518
2637
  req.send_request(options)
2519
2638
  end
2520
2639
 
2640
+ # Describes a generated template. The output includes details about the
2641
+ # progress of the creation of a generated template started by a
2642
+ # `CreateGeneratedTemplate` API action or the update of a generated
2643
+ # template started with an `UpdateGeneratedTemplate` API action.
2644
+ #
2645
+ # @option params [required, String] :generated_template_name
2646
+ # The name or Amazon Resource Name (ARN) of a generated template.
2647
+ #
2648
+ # @return [Types::DescribeGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2649
+ #
2650
+ # * {Types::DescribeGeneratedTemplateOutput#generated_template_id #generated_template_id} => String
2651
+ # * {Types::DescribeGeneratedTemplateOutput#generated_template_name #generated_template_name} => String
2652
+ # * {Types::DescribeGeneratedTemplateOutput#resources #resources} => Array&lt;Types::ResourceDetail&gt;
2653
+ # * {Types::DescribeGeneratedTemplateOutput#status #status} => String
2654
+ # * {Types::DescribeGeneratedTemplateOutput#status_reason #status_reason} => String
2655
+ # * {Types::DescribeGeneratedTemplateOutput#creation_time #creation_time} => Time
2656
+ # * {Types::DescribeGeneratedTemplateOutput#last_updated_time #last_updated_time} => Time
2657
+ # * {Types::DescribeGeneratedTemplateOutput#progress #progress} => Types::TemplateProgress
2658
+ # * {Types::DescribeGeneratedTemplateOutput#stack_id #stack_id} => String
2659
+ # * {Types::DescribeGeneratedTemplateOutput#template_configuration #template_configuration} => Types::TemplateConfiguration
2660
+ # * {Types::DescribeGeneratedTemplateOutput#total_warnings #total_warnings} => Integer
2661
+ #
2662
+ #
2663
+ # @example Example: To describe a generated template
2664
+ #
2665
+ # # This example describes a generated template
2666
+ #
2667
+ # resp = client.describe_generated_template({
2668
+ # generated_template_name: "JazzyTemplate",
2669
+ # })
2670
+ #
2671
+ # resp.to_h outputs the following:
2672
+ # {
2673
+ # creation_time: Time.parse("2023-12-28T17:55:20.086000+00:00"),
2674
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:*:generatedtemplate/*",
2675
+ # generated_template_name: "DeletedResourceTest",
2676
+ # last_updated_time: Time.parse("2023-12-28T17:57:16.610000+00:00"),
2677
+ # progress: {
2678
+ # resources_failed: 0,
2679
+ # resources_pending: 0,
2680
+ # resources_processing: 0,
2681
+ # resources_succeeded: 0,
2682
+ # },
2683
+ # status: "COMPLETE",
2684
+ # status_reason: "All resources complete",
2685
+ # template_configuration: {
2686
+ # deletion_policy: "RETAIN",
2687
+ # update_replace_policy: "RETAIN",
2688
+ # },
2689
+ # total_warnings: 0,
2690
+ # }
2691
+ #
2692
+ # @example Request syntax with placeholder values
2693
+ #
2694
+ # resp = client.describe_generated_template({
2695
+ # generated_template_name: "GeneratedTemplateName", # required
2696
+ # })
2697
+ #
2698
+ # @example Response structure
2699
+ #
2700
+ # resp.generated_template_id #=> String
2701
+ # resp.generated_template_name #=> String
2702
+ # resp.resources #=> Array
2703
+ # resp.resources[0].resource_type #=> String
2704
+ # resp.resources[0].logical_resource_id #=> String
2705
+ # resp.resources[0].resource_identifier #=> Hash
2706
+ # resp.resources[0].resource_identifier["ResourceIdentifierPropertyKey"] #=> String
2707
+ # resp.resources[0].resource_status #=> String, one of "PENDING", "IN_PROGRESS", "FAILED", "COMPLETE"
2708
+ # resp.resources[0].resource_status_reason #=> String
2709
+ # resp.resources[0].warnings #=> Array
2710
+ # resp.resources[0].warnings[0].type #=> String, one of "MUTUALLY_EXCLUSIVE_PROPERTIES", "UNSUPPORTED_PROPERTIES", "MUTUALLY_EXCLUSIVE_TYPES"
2711
+ # resp.resources[0].warnings[0].properties #=> Array
2712
+ # resp.resources[0].warnings[0].properties[0].property_path #=> String
2713
+ # resp.resources[0].warnings[0].properties[0].required #=> Boolean
2714
+ # resp.resources[0].warnings[0].properties[0].description #=> String
2715
+ # resp.status #=> String, one of "CREATE_PENDING", "UPDATE_PENDING", "DELETE_PENDING", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "FAILED", "COMPLETE"
2716
+ # resp.status_reason #=> String
2717
+ # resp.creation_time #=> Time
2718
+ # resp.last_updated_time #=> Time
2719
+ # resp.progress.resources_succeeded #=> Integer
2720
+ # resp.progress.resources_failed #=> Integer
2721
+ # resp.progress.resources_processing #=> Integer
2722
+ # resp.progress.resources_pending #=> Integer
2723
+ # resp.stack_id #=> String
2724
+ # resp.template_configuration.deletion_policy #=> String, one of "DELETE", "RETAIN"
2725
+ # resp.template_configuration.update_replace_policy #=> String, one of "DELETE", "RETAIN"
2726
+ # resp.total_warnings #=> Integer
2727
+ #
2728
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeGeneratedTemplate AWS API Documentation
2729
+ #
2730
+ # @overload describe_generated_template(params = {})
2731
+ # @param [Hash] params ({})
2732
+ def describe_generated_template(params = {}, options = {})
2733
+ req = build_request(:describe_generated_template, params)
2734
+ req.send_request(options)
2735
+ end
2736
+
2521
2737
  # Retrieves information about the account's `OrganizationAccess`
2522
2738
  # status. This API can be called either by the management account or the
2523
2739
  # delegated administrator by using the `CallAs` parameter. This API can
@@ -2622,6 +2838,146 @@ module Aws::CloudFormation
2622
2838
  req.send_request(options)
2623
2839
  end
2624
2840
 
2841
+ # Describes details of a resource scan.
2842
+ #
2843
+ # @option params [required, String] :resource_scan_id
2844
+ # The Amazon Resource Name (ARN) of the resource scan.
2845
+ #
2846
+ # @return [Types::DescribeResourceScanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2847
+ #
2848
+ # * {Types::DescribeResourceScanOutput#resource_scan_id #resource_scan_id} => String
2849
+ # * {Types::DescribeResourceScanOutput#status #status} => String
2850
+ # * {Types::DescribeResourceScanOutput#status_reason #status_reason} => String
2851
+ # * {Types::DescribeResourceScanOutput#start_time #start_time} => Time
2852
+ # * {Types::DescribeResourceScanOutput#end_time #end_time} => Time
2853
+ # * {Types::DescribeResourceScanOutput#percentage_completed #percentage_completed} => Float
2854
+ # * {Types::DescribeResourceScanOutput#resource_types #resource_types} => Array&lt;String&gt;
2855
+ # * {Types::DescribeResourceScanOutput#resources_scanned #resources_scanned} => Integer
2856
+ # * {Types::DescribeResourceScanOutput#resources_read #resources_read} => Integer
2857
+ #
2858
+ #
2859
+ # @example Example: To describe a selected resource scan
2860
+ #
2861
+ # # This example describes a selected resource scan
2862
+ #
2863
+ # resp = client.describe_resource_scan({
2864
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
2865
+ # })
2866
+ #
2867
+ # resp.to_h outputs the following:
2868
+ # {
2869
+ # end_time: Time.parse("2024-01-02T23:25:48.075000+00:00"),
2870
+ # percentage_completed: 100.0,
2871
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
2872
+ # resource_types: [
2873
+ # "AWS::Amplify::App",
2874
+ # "AWS::ApiGateway::Deployment",
2875
+ # "AWS::ApiGateway::DocumentationPart",
2876
+ # "AWS::ApiGateway::Model",
2877
+ # "AWS::ApiGateway::Resource",
2878
+ # "AWS::ApiGateway::RestApi",
2879
+ # "AWS::ApiGateway::Stage",
2880
+ # "AWS::AppConfig::Extension",
2881
+ # "AWS::ApplicationAutoScaling::ScalableTarget",
2882
+ # "AWS::Athena::WorkGroup",
2883
+ # "AWS::Cassandra::Keyspace",
2884
+ # "AWS::CloudFront::CachePolicy",
2885
+ # "AWS::CloudFront::Function",
2886
+ # "AWS::CloudFront::OriginRequestPolicy",
2887
+ # "AWS::CloudTrail::Trail",
2888
+ # "AWS::CloudWatch::Alarm",
2889
+ # "AWS::CodeDeploy::Application",
2890
+ # "AWS::CodeDeploy::DeploymentConfig",
2891
+ # "AWS::Cognito::UserPool",
2892
+ # "AWS::Cognito::UserPoolGroup",
2893
+ # "AWS::Cognito::UserPoolUser",
2894
+ # "AWS::DynamoDB::Table",
2895
+ # "AWS::EC2::DHCPOptions",
2896
+ # "AWS::EC2::EIP",
2897
+ # "AWS::EC2::InternetGateway",
2898
+ # "AWS::EC2::LaunchTemplate",
2899
+ # "AWS::EC2::NetworkAcl",
2900
+ # "AWS::EC2::Route",
2901
+ # "AWS::EC2::RouteTable",
2902
+ # "AWS::EC2::SubnetNetworkAclAssociation",
2903
+ # "AWS::EC2::SubnetRouteTableAssociation",
2904
+ # "AWS::EC2::VPC",
2905
+ # "AWS::EC2::VPCDHCPOptionsAssociation",
2906
+ # "AWS::EC2::VPCGatewayAttachment",
2907
+ # "AWS::ECR::Repository",
2908
+ # "AWS::ECS::Cluster",
2909
+ # "AWS::ECS::ClusterCapacityProviderAssociations",
2910
+ # "AWS::ECS::Service",
2911
+ # "AWS::ECS::TaskDefinition",
2912
+ # "AWS::ElastiCache::SubnetGroup",
2913
+ # "AWS::ElastiCache::User",
2914
+ # "AWS::Events::EventBus",
2915
+ # "AWS::Events::Rule",
2916
+ # "AWS::GameLift::Location",
2917
+ # "AWS::GuardDuty::Detector",
2918
+ # "AWS::IAM::InstanceProfile",
2919
+ # "AWS::IAM::ManagedPolicy",
2920
+ # "AWS::IAM::Role",
2921
+ # "AWS::IAM::User",
2922
+ # "AWS::IoT::DomainConfiguration",
2923
+ # "AWS::KMS::Alias",
2924
+ # "AWS::KMS::Key",
2925
+ # "AWS::Lambda::EventSourceMapping",
2926
+ # "AWS::Lambda::Function",
2927
+ # "AWS::Lambda::Permission",
2928
+ # "AWS::Lambda::Version",
2929
+ # "AWS::Logs::LogGroup",
2930
+ # "AWS::Logs::LogStream",
2931
+ # "AWS::MemoryDB::ACL",
2932
+ # "AWS::MemoryDB::ParameterGroup",
2933
+ # "AWS::MemoryDB::User",
2934
+ # "AWS::RAM::Permission",
2935
+ # "AWS::RDS::CustomDBEngineVersion",
2936
+ # "AWS::Route53Resolver::ResolverRuleAssociation",
2937
+ # "AWS::S3::AccessPoint",
2938
+ # "AWS::S3::BucketPolicy",
2939
+ # "AWS::S3::StorageLens",
2940
+ # "AWS::SNS::Topic",
2941
+ # "AWS::SQS::Queue",
2942
+ # "AWS::SSM::Association",
2943
+ # "AWS::SSM::Document",
2944
+ # "AWS::StepFunctions::StateMachine",
2945
+ # "AWS::XRay::Group",
2946
+ # "AWS::XRay::SamplingRule",
2947
+ # ],
2948
+ # resources_read: 25107,
2949
+ # start_time: Time.parse("2024-01-02T22:15:18.382000+00:00"),
2950
+ # status: "COMPLETE",
2951
+ # }
2952
+ #
2953
+ # @example Request syntax with placeholder values
2954
+ #
2955
+ # resp = client.describe_resource_scan({
2956
+ # resource_scan_id: "ResourceScanId", # required
2957
+ # })
2958
+ #
2959
+ # @example Response structure
2960
+ #
2961
+ # resp.resource_scan_id #=> String
2962
+ # resp.status #=> String, one of "IN_PROGRESS", "FAILED", "COMPLETE", "EXPIRED"
2963
+ # resp.status_reason #=> String
2964
+ # resp.start_time #=> Time
2965
+ # resp.end_time #=> Time
2966
+ # resp.percentage_completed #=> Float
2967
+ # resp.resource_types #=> Array
2968
+ # resp.resource_types[0] #=> String
2969
+ # resp.resources_scanned #=> Integer
2970
+ # resp.resources_read #=> Integer
2971
+ #
2972
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeResourceScan AWS API Documentation
2973
+ #
2974
+ # @overload describe_resource_scan(params = {})
2975
+ # @param [Hash] params ({})
2976
+ def describe_resource_scan(params = {}, options = {})
2977
+ req = build_request(:describe_resource_scan, params)
2978
+ req.send_request(options)
2979
+ end
2980
+
2625
2981
  # Returns information about a stack drift detection operation. A stack
2626
2982
  # drift detection operation detects whether a stack's actual
2627
2983
  # configuration differs, or has *drifted*, from its expected
@@ -3956,6 +4312,84 @@ module Aws::CloudFormation
3956
4312
  req.send_request(options)
3957
4313
  end
3958
4314
 
4315
+ # Retrieves a generated template. If the template is in an `InProgress`
4316
+ # or `Pending` status then the template returned will be the template
4317
+ # when the template was last in a `Complete` status. If the template has
4318
+ # not yet been in a `Complete` status then an empty template will be
4319
+ # returned.
4320
+ #
4321
+ # @option params [String] :format
4322
+ # The language to use to retrieve for the generated template. Supported
4323
+ # values are:
4324
+ #
4325
+ # * `JSON`
4326
+ #
4327
+ # * `YAML`
4328
+ #
4329
+ # @option params [required, String] :generated_template_name
4330
+ # The name or Amazon Resource Name (ARN) of the generated template. The
4331
+ # format is
4332
+ # `arn:$\{Partition\}:cloudformation:$\{Region\}:$\{Account\}:generatedtemplate/$\{Id\}`.
4333
+ # For example,
4334
+ # `arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/2e8465c1-9a80-43ea-a3a3-4f2d692fe6dc
4335
+ # `.
4336
+ #
4337
+ # @return [Types::GetGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4338
+ #
4339
+ # * {Types::GetGeneratedTemplateOutput#status #status} => String
4340
+ # * {Types::GetGeneratedTemplateOutput#template_body #template_body} => String
4341
+ #
4342
+ #
4343
+ # @example Example: To get a generated template in JSON format
4344
+ #
4345
+ # # This example gets a generated template ins JSON format.
4346
+ #
4347
+ # resp = client.get_generated_template({
4348
+ # generated_template_name: "JazzyTemplate",
4349
+ # })
4350
+ #
4351
+ # resp.to_h outputs the following:
4352
+ # {
4353
+ # status: "COMPLETE",
4354
+ # template_body: "{\"Metadata\":{\"TemplateId\":\"arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/*\"},\"Parameters\":{\"Stage\":{\"Default\":\"beta\",\"Type\":\"String\"}},\"Resources\":{\"TestRole\":{\"Properties\":{\"AssumeRolePolicyDocument\":{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":{\"Fn::Sub\":[\"arn:${AWS::Partition}:iam::${AccountId}:root\",{\"AccountId\":{\"Fn::AccountIdFromAlias\":\"test-account-alias\"}}]}},\"Action\":\"sts:AssumeRole\"}]}},\"Type\":\"AWS::IAM::Role\",\"DeletionPolicy\":\"Delete\"},\"DocumentationPartl7ob4vsd76vs\":{\"UpdateReplacePolicy\":\"Retain\",\"Type\":\"AWS::ApiGateway::DocumentationPart\",\"DeletionPolicy\":\"Retain\",\"Properties\":{\"RestApiId\":\"l7ob4vsd76\",\"Properties\":\"{\\n \\\"description\\\" : \\\"ListGeneratedTemplates 200 response\\\"\\n}\",\"Location\":{\"Path\":\"/ListGeneratedTemplates\",\"Type\":\"RESPONSE\",\"Method\":\"POST\",\"StatusCode\":\"200\"}}}}}",
4355
+ # }
4356
+ #
4357
+ # @example Example: To get a generated template in YAML format
4358
+ #
4359
+ # # This example gets a generated template in YAML format.
4360
+ #
4361
+ # resp = client.get_generated_template({
4362
+ # format: "YAML",
4363
+ # generated_template_name: "JazzyTemplate",
4364
+ # })
4365
+ #
4366
+ # resp.to_h outputs the following:
4367
+ # {
4368
+ # status: "COMPLETE",
4369
+ # template_body: "---\nMetadata:\n TemplateId: \"arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/*\"\nParameters:\n Stage:\n Default: \"beta\"\n Type: \"String\"\nResources:\n TestRole:\n Properties:\n AssumeRolePolicyDocument:\n Version: \"2012-10-17\"\n Statement:\n - Effect: \"Allow\"\n Principal:\n AWS:\n Fn::Sub:\n - \"arn:${AWS::Partition}:iam::${AccountId}:root\"\n - AccountId:\n Fn::AccountIdFromAlias: \"test-account-alias\"\n Action: \"sts:AssumeRole\"\n Type: \"AWS::IAM::Role\"\n DeletionPolicy: \"Delete\"\n DocumentationPartl7ob4vsd76vsnAlFMLXKVm:\n UpdateReplacePolicy: \"Retain\"\n Type: \"AWS::ApiGateway::DocumentationPart\"\n DeletionPolicy: \"Retain\"\n Properties:\n RestApiId: \"l7ob4vsd76\"\n Properties: \"{\\n \\\"description\\\" : \\\"ListGeneratedTemplates 200 response\\\"\\n\\\n }\"\n Location:\n Path: \"/ListGeneratedTemplates\"\n Type: \"RESPONSE\"\n Method: \"POST\"\n StatusCode: \"200\"\n",
4370
+ # }
4371
+ #
4372
+ # @example Request syntax with placeholder values
4373
+ #
4374
+ # resp = client.get_generated_template({
4375
+ # format: "JSON", # accepts JSON, YAML
4376
+ # generated_template_name: "GeneratedTemplateName", # required
4377
+ # })
4378
+ #
4379
+ # @example Response structure
4380
+ #
4381
+ # resp.status #=> String, one of "CREATE_PENDING", "UPDATE_PENDING", "DELETE_PENDING", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "FAILED", "COMPLETE"
4382
+ # resp.template_body #=> String
4383
+ #
4384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetGeneratedTemplate AWS API Documentation
4385
+ #
4386
+ # @overload get_generated_template(params = {})
4387
+ # @param [Hash] params ({})
4388
+ def get_generated_template(params = {}, options = {})
4389
+ req = build_request(:get_generated_template, params)
4390
+ req.send_request(options)
4391
+ end
4392
+
3959
4393
  # Returns the stack policy for a specified stack. If a stack doesn't
3960
4394
  # have a policy, a null value is returned.
3961
4395
  #
@@ -4382,6 +4816,94 @@ module Aws::CloudFormation
4382
4816
  req.send_request(options)
4383
4817
  end
4384
4818
 
4819
+ # Lists your generated templates in this Region.
4820
+ #
4821
+ # @option params [String] :next_token
4822
+ # A string that identifies the next page of resource scan results.
4823
+ #
4824
+ # @option params [Integer] :max_results
4825
+ # If the number of available results exceeds this maximum, the response
4826
+ # includes a `NextToken` value that you can use for the `NextToken`
4827
+ # parameter to get the next set of results. By default the
4828
+ # `ListGeneratedTemplates` API action will return at most 50 results in
4829
+ # each response. The maximum value is 100.
4830
+ #
4831
+ # @return [Types::ListGeneratedTemplatesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4832
+ #
4833
+ # * {Types::ListGeneratedTemplatesOutput#summaries #summaries} => Array&lt;Types::TemplateSummary&gt;
4834
+ # * {Types::ListGeneratedTemplatesOutput#next_token #next_token} => String
4835
+ #
4836
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4837
+ #
4838
+ #
4839
+ # @example Example: To list generated templates
4840
+ #
4841
+ # # This example lists the generated templates.
4842
+ #
4843
+ # resp = client.list_generated_templates({
4844
+ # })
4845
+ #
4846
+ # resp.to_h outputs the following:
4847
+ # {
4848
+ # summaries: [
4849
+ # {
4850
+ # creation_time: Time.parse("2023-12-28T17:55:20.086000+00:00"),
4851
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/abcdefghi-1234-abcd-abcd-abcdefgh1234567",
4852
+ # generated_template_name: "Template3",
4853
+ # last_updated_time: Time.parse("2023-12-28T17:57:16.610000+00:00"),
4854
+ # number_of_resources: 85,
4855
+ # status: "COMPLETE",
4856
+ # status_reason: "All resources complete",
4857
+ # },
4858
+ # {
4859
+ # creation_time: Time.parse("2023-12-21T01:51:07.764000+00:00"),
4860
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/bbcdefghi-1234-abcd-abcd-abcdefgh1234567",
4861
+ # generated_template_name: "Template2",
4862
+ # last_updated_time: Time.parse("2023-12-21T01:51:22.664000+00:00"),
4863
+ # number_of_resources: 12,
4864
+ # status: "COMPLETE",
4865
+ # status_reason: "All resources complete",
4866
+ # },
4867
+ # {
4868
+ # creation_time: Time.parse("2023-11-20T23:53:28.722000+00:00"),
4869
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/cbcdefghi-1234-abcd-abcd-abcdefgh1234567",
4870
+ # generated_template_name: "Template1",
4871
+ # last_updated_time: Time.parse("2023-11-21T04:25:30.527000+00:00"),
4872
+ # number_of_resources: 19,
4873
+ # status: "COMPLETE",
4874
+ # status_reason: "All resources complete",
4875
+ # },
4876
+ # ],
4877
+ # }
4878
+ #
4879
+ # @example Request syntax with placeholder values
4880
+ #
4881
+ # resp = client.list_generated_templates({
4882
+ # next_token: "NextToken",
4883
+ # max_results: 1,
4884
+ # })
4885
+ #
4886
+ # @example Response structure
4887
+ #
4888
+ # resp.summaries #=> Array
4889
+ # resp.summaries[0].generated_template_id #=> String
4890
+ # resp.summaries[0].generated_template_name #=> String
4891
+ # resp.summaries[0].status #=> String, one of "CREATE_PENDING", "UPDATE_PENDING", "DELETE_PENDING", "CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS", "DELETE_IN_PROGRESS", "FAILED", "COMPLETE"
4892
+ # resp.summaries[0].status_reason #=> String
4893
+ # resp.summaries[0].creation_time #=> Time
4894
+ # resp.summaries[0].last_updated_time #=> Time
4895
+ # resp.summaries[0].number_of_resources #=> Integer
4896
+ # resp.next_token #=> String
4897
+ #
4898
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListGeneratedTemplates AWS API Documentation
4899
+ #
4900
+ # @overload list_generated_templates(params = {})
4901
+ # @param [Hash] params ({})
4902
+ def list_generated_templates(params = {}, options = {})
4903
+ req = build_request(:list_generated_templates, params)
4904
+ req.send_request(options)
4905
+ end
4906
+
4385
4907
  # Lists all stacks that are importing an exported output value. To
4386
4908
  # modify or remove an exported output value, first use this action to
4387
4909
  # see which stacks are using it. To see the exported output values in
@@ -4432,6 +4954,332 @@ module Aws::CloudFormation
4432
4954
  req.send_request(options)
4433
4955
  end
4434
4956
 
4957
+ # Lists the related resources for a list of resources from a resource
4958
+ # scan. The response indicates whether each returned resource is already
4959
+ # managed by CloudFormation.
4960
+ #
4961
+ # @option params [required, String] :resource_scan_id
4962
+ # The Amazon Resource Name (ARN) of the resource scan.
4963
+ #
4964
+ # @option params [required, Array<Types::ScannedResourceIdentifier>] :resources
4965
+ # The list of resources for which you want to get the related resources.
4966
+ # Up to 100 resources can be provided.
4967
+ #
4968
+ # @option params [String] :next_token
4969
+ # A string that identifies the next page of resource scan results.
4970
+ #
4971
+ # @option params [Integer] :max_results
4972
+ # If the number of available results exceeds this maximum, the response
4973
+ # includes a `NextToken` value that you can use for the `NextToken`
4974
+ # parameter to get the next set of results. By default the
4975
+ # `ListResourceScanRelatedResources` API action will return up to 100
4976
+ # results in each response. The maximum value is 100.
4977
+ #
4978
+ # @return [Types::ListResourceScanRelatedResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4979
+ #
4980
+ # * {Types::ListResourceScanRelatedResourcesOutput#related_resources #related_resources} => Array&lt;Types::ScannedResource&gt;
4981
+ # * {Types::ListResourceScanRelatedResourcesOutput#next_token #next_token} => String
4982
+ #
4983
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
4984
+ #
4985
+ #
4986
+ # @example Example: To list resource scan related resources
4987
+ #
4988
+ # # This example lists the resources related to the passed in resources
4989
+ #
4990
+ # resp = client.list_resource_scan_related_resources({
4991
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
4992
+ # resources: [
4993
+ # {
4994
+ # resource_identifier: {
4995
+ # "BucketName" => "jazz-bucket",
4996
+ # },
4997
+ # resource_type: "AWS::S3::Bucket",
4998
+ # },
4999
+ # {
5000
+ # resource_identifier: {
5001
+ # "DhcpOptionsId" => "random-id123",
5002
+ # },
5003
+ # resource_type: "AWS::EC2::DHCPOptions",
5004
+ # },
5005
+ # ],
5006
+ # })
5007
+ #
5008
+ # resp.to_h outputs the following:
5009
+ # {
5010
+ # related_resources: [
5011
+ # {
5012
+ # managed_by_stack: false,
5013
+ # resource_identifier: {
5014
+ # "DhcpOptionsId" => "dopt-98765edcba",
5015
+ # "VpcId" => "vpc-0123456abcdefg",
5016
+ # },
5017
+ # resource_type: "AWS::EC2::VPCDHCPOptionsAssociation",
5018
+ # },
5019
+ # {
5020
+ # managed_by_stack: false,
5021
+ # resource_identifier: {
5022
+ # "VpcId" => "vpc-0123456abcdefgabc",
5023
+ # },
5024
+ # resource_type: "AWS::EC2::VPC",
5025
+ # },
5026
+ # {
5027
+ # managed_by_stack: false,
5028
+ # resource_identifier: {
5029
+ # "DhcpOptionsId" => "dopt-98765edcba",
5030
+ # "VpcId" => "vpc-123456abcdef",
5031
+ # },
5032
+ # resource_type: "AWS::EC2::VPCDHCPOptionsAssociation",
5033
+ # },
5034
+ # {
5035
+ # managed_by_stack: false,
5036
+ # resource_identifier: {
5037
+ # "VpcId" => "vpc-12345678abcd",
5038
+ # },
5039
+ # resource_type: "AWS::EC2::VPC",
5040
+ # },
5041
+ # ],
5042
+ # }
5043
+ #
5044
+ # @example Request syntax with placeholder values
5045
+ #
5046
+ # resp = client.list_resource_scan_related_resources({
5047
+ # resource_scan_id: "ResourceScanId", # required
5048
+ # resources: [ # required
5049
+ # {
5050
+ # resource_type: "ResourceType", # required
5051
+ # resource_identifier: { # required
5052
+ # "JazzResourceIdentifierPropertyKey" => "JazzResourceIdentifierPropertyValue",
5053
+ # },
5054
+ # },
5055
+ # ],
5056
+ # next_token: "NextToken",
5057
+ # max_results: 1,
5058
+ # })
5059
+ #
5060
+ # @example Response structure
5061
+ #
5062
+ # resp.related_resources #=> Array
5063
+ # resp.related_resources[0].resource_type #=> String
5064
+ # resp.related_resources[0].resource_identifier #=> Hash
5065
+ # resp.related_resources[0].resource_identifier["JazzResourceIdentifierPropertyKey"] #=> String
5066
+ # resp.related_resources[0].managed_by_stack #=> Boolean
5067
+ # resp.next_token #=> String
5068
+ #
5069
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListResourceScanRelatedResources AWS API Documentation
5070
+ #
5071
+ # @overload list_resource_scan_related_resources(params = {})
5072
+ # @param [Hash] params ({})
5073
+ def list_resource_scan_related_resources(params = {}, options = {})
5074
+ req = build_request(:list_resource_scan_related_resources, params)
5075
+ req.send_request(options)
5076
+ end
5077
+
5078
+ # Lists the resources from a resource scan. The results can be filtered
5079
+ # by resource identifier, resource type prefix, tag key, and tag value.
5080
+ # Only resources that match all specified filters are returned. The
5081
+ # response indicates whether each returned resource is already managed
5082
+ # by CloudFormation.
5083
+ #
5084
+ # @option params [required, String] :resource_scan_id
5085
+ # The Amazon Resource Name (ARN) of the resource scan.
5086
+ #
5087
+ # @option params [String] :resource_identifier
5088
+ # If specified, the returned resources will have the specified resource
5089
+ # identifier (or one of them in the case where the resource has multiple
5090
+ # identifiers).
5091
+ #
5092
+ # @option params [String] :resource_type_prefix
5093
+ # If specified, the returned resources will be of any of the resource
5094
+ # types with the specified prefix.
5095
+ #
5096
+ # @option params [String] :tag_key
5097
+ # If specified, the returned resources will have a matching tag key.
5098
+ #
5099
+ # @option params [String] :tag_value
5100
+ # If specified, the returned resources will have a matching tag value.
5101
+ #
5102
+ # @option params [String] :next_token
5103
+ # A string that identifies the next page of resource scan results.
5104
+ #
5105
+ # @option params [Integer] :max_results
5106
+ # If the number of available results exceeds this maximum, the response
5107
+ # includes a `NextToken` value that you can use for the `NextToken`
5108
+ # parameter to get the next set of results. By default the
5109
+ # `ListResourceScanResources` API action will return at most 100 results
5110
+ # in each response. The maximum value is 100.
5111
+ #
5112
+ # @return [Types::ListResourceScanResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5113
+ #
5114
+ # * {Types::ListResourceScanResourcesOutput#resources #resources} => Array&lt;Types::ScannedResource&gt;
5115
+ # * {Types::ListResourceScanResourcesOutput#next_token #next_token} => String
5116
+ #
5117
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5118
+ #
5119
+ #
5120
+ # @example Example: To list the resources in your resource scan
5121
+ #
5122
+ # # This example lists the resources in your resource scan
5123
+ #
5124
+ # resp = client.list_resource_scan_resources({
5125
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
5126
+ # })
5127
+ #
5128
+ # resp.to_h outputs the following:
5129
+ # {
5130
+ # next_token: "AQICAHjOiFofVZCZ0aEN1VnF1m9jq/xxpTY7MyPexz72BHuAkgETVS8c+PVCFpE6uGVJDxCFAAACbjCCAmoGCSqGSIb3DQEHBqCCAlswggJXAgEAMIICUAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwJ9QJAYeDzUoBeimECARCAggIh8brcL6H6uMvcZafRTB79hUkdJlOoFavrhYA2U7qdlPUwyvaVqN2DvFMxsl2XC1SaWmr5esMKxg1fLjbOEF32lVQn0Jp8QuoFUvREnqEsR32ZQmiI/Oc9HmwIr/BS3rzljki2Kr8Y0nriS7aFDLUCYsdsRdQ9iL5/iCc6oW7IisCzq1VKcHijlXvuiEipZAinsxEbmYBjmWgT7UYZdrrb6Hq3COEgPzS490ucndtwPjyvuCIMiAfTLMuBgjkzEfp4U97aLwPWaiKw94dMXj/3K67uuH9BjWZO+j6d3nnyZ14FOgI7SQvvVBnxARbTmINttHWjXPrIuE9YuuSWgn6GmuzEEDqkuglOS/OeTHYSPvLPRrFieUiawblljLVoVY9/HDjL/EErSTWiCnytGXIRoMI9Ozp2Yjfm3MBwSDXvMIrscw6QAa3bUA6uJSV2skCBnDoqV8EXd8umh788OgEtDxQ7d/NlUYEhN6AJ0K9TVz/2rZgOlzLCmtvmbIy7loAZCmf/uPNkyu6WuoLWTzQz78SnA8jWPKnxrzhNyPuaIgUH23U3mExhfMRDczitpOo5JM81oHVPECslGoqktLhP55BQqMbJy4w16SZJfr993TXhF5jOZenRN1zDsK3J5cLdJgPK1Ds1Z9DnRKMfXOqoAyme2l94/h0kLIxgAtxOeJFP/g/9hUtt1qGkZeV3Xqw1nkFQnafGIg4fJoWg74Sr7yo=",
5131
+ # resources: [
5132
+ # {
5133
+ # managed_by_stack: false,
5134
+ # resource_identifier: {
5135
+ # "Arn" => "arn:aws:amplify:us-east-1:123456789012:apps/12345678",
5136
+ # },
5137
+ # resource_type: "AWS::Amplify::App",
5138
+ # },
5139
+ # {
5140
+ # managed_by_stack: true,
5141
+ # resource_identifier: {
5142
+ # "DeploymentId" => "1234567",
5143
+ # "RestApiId" => "abcdefgh",
5144
+ # },
5145
+ # resource_type: "AWS::ApiGateway::Deployment",
5146
+ # },
5147
+ # ],
5148
+ # }
5149
+ #
5150
+ # @example Example: To list the resources in your resource scan for specific resource type
5151
+ #
5152
+ # # This example lists the resources in your resource scan filtering only the resources that start with the passed in prefix
5153
+ #
5154
+ # resp = client.list_resource_scan_resources({
5155
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
5156
+ # resource_type_prefix: "AWS::S3",
5157
+ # })
5158
+ #
5159
+ # resp.to_h outputs the following:
5160
+ # {
5161
+ # next_token: "AQICAHjOiFofVZCZ0aEN1VnF1m9jq/xxpTY7MyPexz72BHuAkgETVS8c+PVCFpE6uGVJDxCFAAACbjCCAmoGCSqGSIb3DQEHBqCCAlswggJXAgEAMIICUAYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwJ9QJAYeDzUoBeimECARCAggIh8brcL6H6uMvcZafRTB79hUkdJlOoFavrhYA2U7qdlPUwyvaVqN2DvFMxsl2XC1SaWmr5esMKxg1fLjbOEF32lVQn0Jp8QuoFUvREnqEsR32ZQmiI/Oc9HmwIr/BS3rzljki2Kr8Y0nriS7aFDLUCYsdsRdQ9iL5/iCc6oW7IisCzq1VKcHijlXvuiEipZAinsxEbmYBjmWgT7UYZdrrb6Hq3COEgPzS490ucndtwPjyvuCIMiAfTLMuBgjkzEfp4U97aLwPWaiKw94dMXj/3K67uuH9BjWZO+j6d3nnyZ14FOgI7SQvvVBnxARbTmINttHWjXPrIuE9YuuSWgn6GmuzEEDqkuglOS/OeTHYSPvLPRrFieUiawblljLVoVY9/HDjL/EErSTWiCnytGXIRoMI9Ozp2Yjfm3MBwSDXvMIrscw6QAa3bUA6uJSV2skCBnDoqV8EXd8umh788OgEtDxQ7d/NlUYEhN6AJ0K9TVz/2rZgOlzLCmtvmbIy7loAZCmf/uPNkyu6WuoLWTzQz78SnA8jWPKnxrzhNyPuaIgUH23U3mExhfMRDczitpOo5JM81oHVPECslGoqktLhP55BQqMbJy4w16SZJfr993TXhF5jOZenRN1zDsK3J5cLdJgPK1Ds1Z9DnRKMfXOqoAyme2l94/h0kLIxgAtxOeJFP/g/9hUtt1qGkZeV3Xqw1nkFQnafGIg4fJoWg74Sr7yo=",
5162
+ # resources: [
5163
+ # {
5164
+ # managed_by_stack: true,
5165
+ # resource_identifier: {
5166
+ # "Name" => "test-access-point",
5167
+ # },
5168
+ # resource_type: "AWS::S3::AccessPoint",
5169
+ # },
5170
+ # {
5171
+ # managed_by_stack: false,
5172
+ # resource_identifier: {
5173
+ # "Bucket" => "a-random-bucket",
5174
+ # },
5175
+ # resource_type: "AWS::S3::BucketPolicy",
5176
+ # },
5177
+ # ],
5178
+ # }
5179
+ #
5180
+ # @example Request syntax with placeholder values
5181
+ #
5182
+ # resp = client.list_resource_scan_resources({
5183
+ # resource_scan_id: "ResourceScanId", # required
5184
+ # resource_identifier: "ResourceIdentifier",
5185
+ # resource_type_prefix: "ResourceTypePrefix",
5186
+ # tag_key: "TagKey",
5187
+ # tag_value: "TagValue",
5188
+ # next_token: "NextToken",
5189
+ # max_results: 1,
5190
+ # })
5191
+ #
5192
+ # @example Response structure
5193
+ #
5194
+ # resp.resources #=> Array
5195
+ # resp.resources[0].resource_type #=> String
5196
+ # resp.resources[0].resource_identifier #=> Hash
5197
+ # resp.resources[0].resource_identifier["JazzResourceIdentifierPropertyKey"] #=> String
5198
+ # resp.resources[0].managed_by_stack #=> Boolean
5199
+ # resp.next_token #=> String
5200
+ #
5201
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListResourceScanResources AWS API Documentation
5202
+ #
5203
+ # @overload list_resource_scan_resources(params = {})
5204
+ # @param [Hash] params ({})
5205
+ def list_resource_scan_resources(params = {}, options = {})
5206
+ req = build_request(:list_resource_scan_resources, params)
5207
+ req.send_request(options)
5208
+ end
5209
+
5210
+ # List the resource scans from newest to oldest. By default it will
5211
+ # return up to 10 resource scans.
5212
+ #
5213
+ # @option params [String] :next_token
5214
+ # A string that identifies the next page of resource scan results.
5215
+ #
5216
+ # @option params [Integer] :max_results
5217
+ # If the number of available results exceeds this maximum, the response
5218
+ # includes a `NextToken` value that you can use for the `NextToken`
5219
+ # parameter to get the next set of results. The default value is 10. The
5220
+ # maximum value is 100.
5221
+ #
5222
+ # @return [Types::ListResourceScansOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5223
+ #
5224
+ # * {Types::ListResourceScansOutput#resource_scan_summaries #resource_scan_summaries} => Array&lt;Types::ResourceScanSummary&gt;
5225
+ # * {Types::ListResourceScansOutput#next_token #next_token} => String
5226
+ #
5227
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
5228
+ #
5229
+ #
5230
+ # @example Example: Listing Resource Scans
5231
+ #
5232
+ # # This example shows how to list resource scans
5233
+ #
5234
+ # resp = client.list_resource_scans({
5235
+ # })
5236
+ #
5237
+ # resp.to_h outputs the following:
5238
+ # {
5239
+ # resource_scan_summaries: [
5240
+ # {
5241
+ # percentage_completed: 37.4,
5242
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/51448627-817f-40f0-b37c-f6e0f974340c",
5243
+ # start_time: Time.parse("2024-01-24T00:33:29.673000+00:00"),
5244
+ # status: "IN_PROGRESS",
5245
+ # },
5246
+ # {
5247
+ # end_time: Time.parse("2024-01-02T23:25:48.075000+00:00"),
5248
+ # percentage_completed: 100.0,
5249
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/c19304f6-c4f1-4ff8-8e1f-35162e41d7e1",
5250
+ # start_time: Time.parse("2024-01-02T22:15:18.382000+00:00"),
5251
+ # status: "COMPLETE",
5252
+ # },
5253
+ # ],
5254
+ # }
5255
+ #
5256
+ # @example Request syntax with placeholder values
5257
+ #
5258
+ # resp = client.list_resource_scans({
5259
+ # next_token: "NextToken",
5260
+ # max_results: 1,
5261
+ # })
5262
+ #
5263
+ # @example Response structure
5264
+ #
5265
+ # resp.resource_scan_summaries #=> Array
5266
+ # resp.resource_scan_summaries[0].resource_scan_id #=> String
5267
+ # resp.resource_scan_summaries[0].status #=> String, one of "IN_PROGRESS", "FAILED", "COMPLETE", "EXPIRED"
5268
+ # resp.resource_scan_summaries[0].status_reason #=> String
5269
+ # resp.resource_scan_summaries[0].start_time #=> Time
5270
+ # resp.resource_scan_summaries[0].end_time #=> Time
5271
+ # resp.resource_scan_summaries[0].percentage_completed #=> Float
5272
+ # resp.next_token #=> String
5273
+ #
5274
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListResourceScans AWS API Documentation
5275
+ #
5276
+ # @overload list_resource_scans(params = {})
5277
+ # @param [Hash] params ({})
5278
+ def list_resource_scans(params = {}, options = {})
5279
+ req = build_request(:list_resource_scans, params)
5280
+ req.send_request(options)
5281
+ end
5282
+
4435
5283
  # Returns drift information for resources in a stack instance.
4436
5284
  #
4437
5285
  # <note markdown="1"> `ListStackInstanceResourceDrifts` returns drift information for the
@@ -6010,6 +6858,50 @@ module Aws::CloudFormation
6010
6858
  req.send_request(options)
6011
6859
  end
6012
6860
 
6861
+ # Starts a scan of the resources in this account in this Region. You can
6862
+ # the status of a scan using the `ListResourceScans` API action.
6863
+ #
6864
+ # @option params [String] :client_request_token
6865
+ # A unique identifier for this `StartResourceScan` request. Specify this
6866
+ # token if you plan to retry requests so that CloudFormation knows that
6867
+ # you're not attempting to start a new resource scan.
6868
+ #
6869
+ # @return [Types::StartResourceScanOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6870
+ #
6871
+ # * {Types::StartResourceScanOutput#resource_scan_id #resource_scan_id} => String
6872
+ #
6873
+ #
6874
+ # @example Example: To start a resource scan
6875
+ #
6876
+ # # This example shows how to start a new resource scan
6877
+ #
6878
+ # resp = client.start_resource_scan({
6879
+ # })
6880
+ #
6881
+ # resp.to_h outputs the following:
6882
+ # {
6883
+ # resource_scan_id: "arn:aws:cloudformation:us-east-1:123456789012:resourceScan/88f09db1-d211-4cb7-964b-434e2b8469ca",
6884
+ # }
6885
+ #
6886
+ # @example Request syntax with placeholder values
6887
+ #
6888
+ # resp = client.start_resource_scan({
6889
+ # client_request_token: "ClientRequestToken",
6890
+ # })
6891
+ #
6892
+ # @example Response structure
6893
+ #
6894
+ # resp.resource_scan_id #=> String
6895
+ #
6896
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StartResourceScan AWS API Documentation
6897
+ #
6898
+ # @overload start_resource_scan(params = {})
6899
+ # @param [Hash] params ({})
6900
+ def start_resource_scan(params = {}, options = {})
6901
+ req = build_request(:start_resource_scan, params)
6902
+ req.send_request(options)
6903
+ end
6904
+
6013
6905
  # Stops an in-progress operation on a stack set and its associated stack
6014
6906
  # instances. StackSets will cancel all the unstarted stack instance
6015
6907
  # deployments and wait for those are in-progress to complete.
@@ -6173,6 +7065,134 @@ module Aws::CloudFormation
6173
7065
  req.send_request(options)
6174
7066
  end
6175
7067
 
7068
+ # Updates a generated template. This can be used to change the name, add
7069
+ # and remove resources, refresh resources, and change the
7070
+ # `DeletionPolicy` and `UpdateReplacePolicy` settings. You can check the
7071
+ # status of the update to the generated template using the
7072
+ # `DescribeGeneratedTemplate` API action.
7073
+ #
7074
+ # @option params [required, String] :generated_template_name
7075
+ # The name or Amazon Resource Name (ARN) of a generated template.
7076
+ #
7077
+ # @option params [String] :new_generated_template_name
7078
+ # An optional new name to assign to the generated template.
7079
+ #
7080
+ # @option params [Array<Types::ResourceDefinition>] :add_resources
7081
+ # An optional list of resources to be added to the generated template.
7082
+ #
7083
+ # @option params [Array<String>] :remove_resources
7084
+ # A list of logical ids for resources to remove from the generated
7085
+ # template.
7086
+ #
7087
+ # @option params [Boolean] :refresh_all_resources
7088
+ # If `true`, update the resource properties in the generated template
7089
+ # with their current live state. This feature is useful when the
7090
+ # resource properties in your generated a template does not reflect the
7091
+ # live state of the resource properties. This happens when a user update
7092
+ # the resource properties after generating a template.
7093
+ #
7094
+ # @option params [Types::TemplateConfiguration] :template_configuration
7095
+ # The configuration details of the generated template, including the
7096
+ # `DeletionPolicy` and `UpdateReplacePolicy`.
7097
+ #
7098
+ # @return [Types::UpdateGeneratedTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7099
+ #
7100
+ # * {Types::UpdateGeneratedTemplateOutput#generated_template_id #generated_template_id} => String
7101
+ #
7102
+ #
7103
+ # @example Example: To update a generated template's name
7104
+ #
7105
+ # # This example updates a generated template with a new name.
7106
+ #
7107
+ # resp = client.update_generated_template({
7108
+ # generated_template_name: "JazzyTemplate",
7109
+ # new_generated_template_name: "JazzierTemplate",
7110
+ # })
7111
+ #
7112
+ # resp.to_h outputs the following:
7113
+ # {
7114
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
7115
+ # }
7116
+ #
7117
+ # @example Example: To remove resources from a generated template
7118
+ #
7119
+ # # This example removes resources from a generated template
7120
+ #
7121
+ # resp = client.update_generated_template({
7122
+ # generated_template_name: "JazzyTemplate",
7123
+ # remove_resources: [
7124
+ # "LogicalResourceId1",
7125
+ # "LogicalResourceId2",
7126
+ # ],
7127
+ # })
7128
+ #
7129
+ # resp.to_h outputs the following:
7130
+ # {
7131
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
7132
+ # }
7133
+ #
7134
+ # @example Example: To add resources to a generated template
7135
+ #
7136
+ # # This example adds resources to a generated template
7137
+ #
7138
+ # resp = client.update_generated_template({
7139
+ # add_resources: [
7140
+ # {
7141
+ # resource_identifier: {
7142
+ # "BucketName" => "jazz-bucket",
7143
+ # },
7144
+ # resource_type: "AWS::S3::Bucket",
7145
+ # },
7146
+ # {
7147
+ # resource_identifier: {
7148
+ # "DhcpOptionsId" => "random-id123",
7149
+ # },
7150
+ # resource_type: "AWS::EC2::DHCPOptions",
7151
+ # },
7152
+ # ],
7153
+ # generated_template_name: "JazzyTemplate",
7154
+ # })
7155
+ #
7156
+ # resp.to_h outputs the following:
7157
+ # {
7158
+ # generated_template_id: "arn:aws:cloudformation:us-east-1:123456789012:generatedtemplate/88f09db1-d211-4cb7-964b-434e2b8469ca",
7159
+ # }
7160
+ #
7161
+ # @example Request syntax with placeholder values
7162
+ #
7163
+ # resp = client.update_generated_template({
7164
+ # generated_template_name: "GeneratedTemplateName", # required
7165
+ # new_generated_template_name: "GeneratedTemplateName",
7166
+ # add_resources: [
7167
+ # {
7168
+ # resource_type: "ResourceType", # required
7169
+ # logical_resource_id: "LogicalResourceId",
7170
+ # resource_identifier: { # required
7171
+ # "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
7172
+ # },
7173
+ # },
7174
+ # ],
7175
+ # remove_resources: ["LogicalResourceId"],
7176
+ # refresh_all_resources: false,
7177
+ # template_configuration: {
7178
+ # deletion_policy: "DELETE", # accepts DELETE, RETAIN
7179
+ # update_replace_policy: "DELETE", # accepts DELETE, RETAIN
7180
+ # },
7181
+ # })
7182
+ #
7183
+ # @example Response structure
7184
+ #
7185
+ # resp.generated_template_id #=> String
7186
+ #
7187
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateGeneratedTemplate AWS API Documentation
7188
+ #
7189
+ # @overload update_generated_template(params = {})
7190
+ # @param [Hash] params ({})
7191
+ def update_generated_template(params = {}, options = {})
7192
+ req = build_request(:update_generated_template, params)
7193
+ req.send_request(options)
7194
+ end
7195
+
6176
7196
  # Updates a stack as specified in the template. After the call completes
6177
7197
  # successfully, the stack update starts. You can check the status of the
6178
7198
  # stack through the DescribeStacks action.
@@ -7221,7 +8241,7 @@ module Aws::CloudFormation
7221
8241
  params: params,
7222
8242
  config: config)
7223
8243
  context[:gem_name] = 'aws-sdk-cloudformation'
7224
- context[:gem_version] = '1.98.0'
8244
+ context[:gem_version] = '1.99.0'
7225
8245
  Seahorse::Client::Request.new(handlers, context)
7226
8246
  end
7227
8247