aws-sdk-appconfig 1.11.0 → 1.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,34 +3,38 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
- require 'seahorse/client/plugins/content_length.rb'
11
- require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
- require 'aws-sdk-core/plugins/logging.rb'
13
- require 'aws-sdk-core/plugins/param_converter.rb'
14
- require 'aws-sdk-core/plugins/param_validator.rb'
15
- require 'aws-sdk-core/plugins/user_agent.rb'
16
- require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
- require 'aws-sdk-core/plugins/retry_errors.rb'
18
- require 'aws-sdk-core/plugins/global_configuration.rb'
19
- require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
- require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
- require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
- require 'aws-sdk-core/plugins/response_paging.rb'
23
- require 'aws-sdk-core/plugins/stub_responses.rb'
24
- require 'aws-sdk-core/plugins/idempotency_token.rb'
25
- require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
- require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
- require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
- require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
- require 'aws-sdk-core/plugins/http_checksum.rb'
30
- require 'aws-sdk-core/plugins/signature_v4.rb'
31
- require 'aws-sdk-core/plugins/protocols/rest_json.rb'
32
-
33
- Aws::Plugins::GlobalConfiguration.add_identifier(:appconfig)
10
+ require 'seahorse/client/plugins/content_length'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json'
34
38
 
35
39
  module Aws::AppConfig
36
40
  # An API client for AppConfig. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -68,16 +72,28 @@ module Aws::AppConfig
68
72
  add_plugin(Aws::Plugins::ResponsePaging)
69
73
  add_plugin(Aws::Plugins::StubResponses)
70
74
  add_plugin(Aws::Plugins::IdempotencyToken)
75
+ add_plugin(Aws::Plugins::InvocationId)
71
76
  add_plugin(Aws::Plugins::JsonvalueConverter)
72
77
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
73
78
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
79
  add_plugin(Aws::Plugins::TransferEncoding)
75
80
  add_plugin(Aws::Plugins::HttpChecksum)
76
- add_plugin(Aws::Plugins::SignatureV4)
81
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
82
+ add_plugin(Aws::Plugins::RequestCompression)
83
+ add_plugin(Aws::Plugins::DefaultsMode)
84
+ add_plugin(Aws::Plugins::RecursionDetection)
85
+ add_plugin(Aws::Plugins::Telemetry)
86
+ add_plugin(Aws::Plugins::Sign)
77
87
  add_plugin(Aws::Plugins::Protocols::RestJson)
88
+ add_plugin(Aws::AppConfig::Plugins::Endpoints)
78
89
 
79
90
  # @overload initialize(options)
80
91
  # @param [Hash] options
92
+ #
93
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
94
+ # A list of plugins to apply to the client. Each plugin is either a
95
+ # class name or an instance of a plugin class.
96
+ #
81
97
  # @option options [required, Aws::CredentialProvider] :credentials
82
98
  # Your AWS credentials. This can be an instance of any one of the
83
99
  # following classes:
@@ -112,14 +128,18 @@ module Aws::AppConfig
112
128
  # locations will be searched for credentials:
113
129
  #
114
130
  # * `Aws.config[:credentials]`
115
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
116
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
131
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
132
+ # `:account_id` options.
133
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
134
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
117
135
  # * `~/.aws/credentials`
118
136
  # * `~/.aws/config`
119
137
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
138
  # are very aggressive. Construct and pass an instance of
121
- # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
- # enable retries and extended timeouts.
139
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
140
+ # enable retries and extended timeouts. Instance profile credential
141
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
142
+ # to true.
123
143
  #
124
144
  # @option options [required, String] :region
125
145
  # The AWS region to connect to. The configured `:region` is
@@ -135,6 +155,8 @@ module Aws::AppConfig
135
155
  #
136
156
  # @option options [String] :access_key_id
137
157
  #
158
+ # @option options [String] :account_id
159
+ #
138
160
  # @option options [Boolean] :active_endpoint_cache (false)
139
161
  # When set to `true`, a thread polling for endpoints will be running in
140
162
  # the background every 60 secs (default). Defaults to `false`.
@@ -173,14 +195,27 @@ module Aws::AppConfig
173
195
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
174
196
  # a clock skew correction and retry requests with skewed client clocks.
175
197
  #
198
+ # @option options [String] :defaults_mode ("legacy")
199
+ # See {Aws::DefaultsModeConfiguration} for a list of the
200
+ # accepted modes and the configuration defaults that are included.
201
+ #
176
202
  # @option options [Boolean] :disable_host_prefix_injection (false)
177
- # Set to true to disable SDK automatically adding host prefix
178
- # to default service endpoint when available.
203
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
179
204
  #
180
- # @option options [String] :endpoint
181
- # The client endpoint is normally constructed from the `:region`
182
- # option. You should only configure an `:endpoint` when connecting
183
- # to test or custom endpoints. This should be a valid HTTP(S) URI.
205
+ # @option options [Boolean] :disable_request_compression (false)
206
+ # When set to 'true' the request body will not be compressed
207
+ # for supported operations.
208
+ #
209
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
210
+ # Normally you should not configure the `:endpoint` option
211
+ # directly. This is normally constructed from the `:region`
212
+ # option. Configuring `:endpoint` is normally reserved for
213
+ # connecting to test or custom endpoints. The endpoint should
214
+ # be a URI formatted like:
215
+ #
216
+ # 'http://example.com'
217
+ # 'https://example.com'
218
+ # 'http://example.com:123'
184
219
  #
185
220
  # @option options [Integer] :endpoint_cache_max_entries (1000)
186
221
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -197,6 +232,10 @@ module Aws::AppConfig
197
232
  # @option options [Boolean] :endpoint_discovery (false)
198
233
  # When set to `true`, endpoint discovery will be enabled for operations when available.
199
234
  #
235
+ # @option options [Boolean] :ignore_configured_endpoint_urls
236
+ # Setting to true disables use of endpoint URLs provided via environment
237
+ # variables and the shared configuration file.
238
+ #
200
239
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
201
240
  # The log formatter.
202
241
  #
@@ -217,6 +256,34 @@ module Aws::AppConfig
217
256
  # Used when loading credentials from the shared credentials file
218
257
  # at HOME/.aws/credentials. When not specified, 'default' is used.
219
258
  #
259
+ # @option options [String] :request_checksum_calculation ("when_supported")
260
+ # Determines when a checksum will be calculated for request payloads. Values are:
261
+ #
262
+ # * `when_supported` - (default) When set, a checksum will be
263
+ # calculated for all request payloads of operations modeled with the
264
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
265
+ # `requestAlgorithmMember` is modeled.
266
+ # * `when_required` - When set, a checksum will only be calculated for
267
+ # request payloads of operations modeled with the `httpChecksum` trait where
268
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
269
+ # is modeled and supplied.
270
+ #
271
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
272
+ # The minimum size in bytes that triggers compression for request
273
+ # bodies. The value must be non-negative integer value between 0
274
+ # and 10485780 bytes inclusive.
275
+ #
276
+ # @option options [String] :response_checksum_validation ("when_supported")
277
+ # Determines when checksum validation will be performed on response payloads. Values are:
278
+ #
279
+ # * `when_supported` - (default) When set, checksum validation is performed on all
280
+ # response payloads of operations modeled with the `httpChecksum` trait where
281
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
282
+ # are supported.
283
+ # * `when_required` - When set, checksum validation is not performed on
284
+ # response payloads of operations unless the checksum algorithm is supported and
285
+ # the `requestValidationModeMember` member is set to `ENABLED`.
286
+ #
220
287
  # @option options [Proc] :retry_backoff
221
288
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
222
289
  # This option is only used in the `legacy` retry mode.
@@ -261,11 +328,25 @@ module Aws::AppConfig
261
328
  # throttling. This is a provisional mode that may change behavior
262
329
  # in the future.
263
330
  #
331
+ # @option options [String] :sdk_ua_app_id
332
+ # A unique and opaque application ID that is appended to the
333
+ # User-Agent header as app/sdk_ua_app_id. It should have a
334
+ # maximum length of 50. This variable is sourced from environment
335
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
264
336
  #
265
337
  # @option options [String] :secret_access_key
266
338
  #
267
339
  # @option options [String] :session_token
268
340
  #
341
+ # @option options [Array] :sigv4a_signing_region_set
342
+ # A list of regions that should be signed with SigV4a signing. When
343
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
344
+ # in the following locations:
345
+ #
346
+ # * `Aws.config[:sigv4a_signing_region_set]`
347
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
348
+ # * `~/.aws/config`
349
+ #
269
350
  # @option options [Boolean] :stub_responses (false)
270
351
  # Causes the client to return stubbed responses. By default
271
352
  # fake responses are generated and returned. You can specify
@@ -275,51 +356,112 @@ module Aws::AppConfig
275
356
  # ** Please note ** When response stubbing is enabled, no HTTP
276
357
  # requests are made, and retries are disabled.
277
358
  #
278
- # @option options [Boolean] :validate_params (true)
279
- # When `true`, request parameters are validated before
280
- # sending the request.
359
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
360
+ # Allows you to provide a telemetry provider, which is used to
361
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
362
+ # will not record or emit any telemetry data. The SDK supports the
363
+ # following telemetry providers:
281
364
  #
282
- # @option options [URI::HTTP,String] :http_proxy A proxy to send
283
- # requests through. Formatted like 'http://proxy.com:123'.
365
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
366
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
367
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
284
368
  #
285
- # @option options [Float] :http_open_timeout (15) The number of
286
- # seconds to wait when opening a HTTP session before raising a
287
- # `Timeout::Error`.
369
+ # @option options [Aws::TokenProvider] :token_provider
370
+ # A Bearer Token Provider. This can be an instance of any one of the
371
+ # following classes:
288
372
  #
289
- # @option options [Integer] :http_read_timeout (60) The default
290
- # number of seconds to wait for response data. This value can
291
- # safely be set per-request on the session.
373
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
374
+ # tokens.
292
375
  #
293
- # @option options [Float] :http_idle_timeout (5) The number of
294
- # seconds a connection is allowed to sit idle before it is
295
- # considered stale. Stale connections are closed and removed
296
- # from the pool before making a request.
376
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
377
+ # access token generated from `aws login`.
297
378
  #
298
- # @option options [Float] :http_continue_timeout (1) The number of
299
- # seconds to wait for a 100-continue response before sending the
300
- # request body. This option has no effect unless the request has
301
- # "Expect" header set to "100-continue". Defaults to `nil` which
302
- # disables this behaviour. This value can safely be set per
303
- # request on the session.
379
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
380
+ # will be used to search for tokens configured for your profile in shared configuration files.
304
381
  #
305
- # @option options [Boolean] :http_wire_trace (false) When `true`,
306
- # HTTP debug output will be sent to the `:logger`.
382
+ # @option options [Boolean] :use_dualstack_endpoint
383
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
384
+ # will be used if available.
307
385
  #
308
- # @option options [Boolean] :ssl_verify_peer (true) When `true`,
309
- # SSL peer certificates are verified when establishing a
310
- # connection.
386
+ # @option options [Boolean] :use_fips_endpoint
387
+ # When set to `true`, fips compatible endpoints will be used if available.
388
+ # When a `fips` region is used, the region is normalized and this config
389
+ # is set to `true`.
311
390
  #
312
- # @option options [String] :ssl_ca_bundle Full path to the SSL
313
- # certificate authority bundle file that should be used when
314
- # verifying peer certificates. If you do not pass
315
- # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
316
- # will be used if available.
391
+ # @option options [Boolean] :validate_params (true)
392
+ # When `true`, request parameters are validated before
393
+ # sending the request.
317
394
  #
318
- # @option options [String] :ssl_ca_directory Full path of the
319
- # directory that contains the unbundled SSL certificate
395
+ # @option options [Aws::AppConfig::EndpointProvider] :endpoint_provider
396
+ # The endpoint provider used to resolve endpoints. Any object that responds to
397
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
398
+ # `Aws::AppConfig::EndpointParameters`.
399
+ #
400
+ # @option options [Float] :http_continue_timeout (1)
401
+ # The number of seconds to wait for a 100-continue response before sending the
402
+ # request body. This option has no effect unless the request has "Expect"
403
+ # header set to "100-continue". Defaults to `nil` which disables this
404
+ # behaviour. This value can safely be set per request on the session.
405
+ #
406
+ # @option options [Float] :http_idle_timeout (5)
407
+ # The number of seconds a connection is allowed to sit idle before it
408
+ # is considered stale. Stale connections are closed and removed from the
409
+ # pool before making a request.
410
+ #
411
+ # @option options [Float] :http_open_timeout (15)
412
+ # The default number of seconds to wait for response data.
413
+ # This value can safely be set per-request on the session.
414
+ #
415
+ # @option options [URI::HTTP,String] :http_proxy
416
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
417
+ #
418
+ # @option options [Float] :http_read_timeout (60)
419
+ # The default number of seconds to wait for response data.
420
+ # This value can safely be set per-request on the session.
421
+ #
422
+ # @option options [Boolean] :http_wire_trace (false)
423
+ # When `true`, HTTP debug output will be sent to the `:logger`.
424
+ #
425
+ # @option options [Proc] :on_chunk_received
426
+ # When a Proc object is provided, it will be used as callback when each chunk
427
+ # of the response body is received. It provides three arguments: the chunk,
428
+ # the number of bytes received, and the total number of
429
+ # bytes in the response (or nil if the server did not send a `content-length`).
430
+ #
431
+ # @option options [Proc] :on_chunk_sent
432
+ # When a Proc object is provided, it will be used as callback when each chunk
433
+ # of the request body is sent. It provides three arguments: the chunk,
434
+ # the number of bytes read from the body, and the total number of
435
+ # bytes in the body.
436
+ #
437
+ # @option options [Boolean] :raise_response_errors (true)
438
+ # When `true`, response errors are raised.
439
+ #
440
+ # @option options [String] :ssl_ca_bundle
441
+ # Full path to the SSL certificate authority bundle file that should be used when
442
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
443
+ # `:ssl_ca_directory` the the system default will be used if available.
444
+ #
445
+ # @option options [String] :ssl_ca_directory
446
+ # Full path of the directory that contains the unbundled SSL certificate
320
447
  # authority files for verifying peer certificates. If you do
321
- # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
322
- # system default will be used if available.
448
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
449
+ # default will be used if available.
450
+ #
451
+ # @option options [String] :ssl_ca_store
452
+ # Sets the X509::Store to verify peer certificate.
453
+ #
454
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
455
+ # Sets a client certificate when creating http connections.
456
+ #
457
+ # @option options [OpenSSL::PKey] :ssl_key
458
+ # Sets a client key when creating http connections.
459
+ #
460
+ # @option options [Float] :ssl_timeout
461
+ # Sets the SSL timeout in seconds
462
+ #
463
+ # @option options [Boolean] :ssl_verify_peer (true)
464
+ # When `true`, SSL peer certificates are verified when establishing a connection.
323
465
  #
324
466
  def initialize(*args)
325
467
  super
@@ -327,11 +469,11 @@ module Aws::AppConfig
327
469
 
328
470
  # @!group API Operations
329
471
 
330
- # An application in AppConfig is a logical unit of code that provides
331
- # capabilities for your customers. For example, an application can be a
332
- # microservice that runs on Amazon EC2 instances, a mobile application
333
- # installed by your users, a serverless application using Amazon API
334
- # Gateway and AWS Lambda, or any system you run on behalf of others.
472
+ # Creates an application. In AppConfig, an application is simply an
473
+ # organizational construct like a folder. This organizational construct
474
+ # has a relationship with some unit of executable code. For example, you
475
+ # could create an application called MyMobileApp to organize and manage
476
+ # configuration data for a mobile application installed by your users.
335
477
  #
336
478
  # @option params [required, String] :name
337
479
  # A name for the application.
@@ -350,6 +492,23 @@ module Aws::AppConfig
350
492
  # * {Types::Application#name #name} => String
351
493
  # * {Types::Application#description #description} => String
352
494
  #
495
+ #
496
+ # @example Example: To create an application
497
+ #
498
+ # # The following create-application example creates an application in AWS AppConfig.
499
+ #
500
+ # resp = client.create_application({
501
+ # description: "An application used for creating an example.",
502
+ # name: "example-application",
503
+ # })
504
+ #
505
+ # resp.to_h outputs the following:
506
+ # {
507
+ # description: "An application used for creating an example.",
508
+ # id: "339ohji",
509
+ # name: "example-application",
510
+ # }
511
+ #
353
512
  # @example Request syntax with placeholder values
354
513
  #
355
514
  # resp = client.create_application({
@@ -375,25 +534,42 @@ module Aws::AppConfig
375
534
  req.send_request(options)
376
535
  end
377
536
 
378
- # Information that enables AppConfig to access the configuration source.
379
- # Valid configuration sources include Systems Manager (SSM) documents,
380
- # SSM Parameter Store parameters, and Amazon S3 objects. A configuration
381
- # profile includes the following information.
537
+ # Creates a configuration profile, which is information that enables
538
+ # AppConfig to access the configuration source. Valid configuration
539
+ # sources include the following:
540
+ #
541
+ # * Configuration data in YAML, JSON, and other formats stored in the
542
+ # AppConfig hosted configuration store
543
+ #
544
+ # * Configuration data stored as objects in an Amazon Simple Storage
545
+ # Service (Amazon S3) bucket
546
+ #
547
+ # * Pipelines stored in CodePipeline
548
+ #
549
+ # * Secrets stored in Secrets Manager
550
+ #
551
+ # * Standard and secure string parameters stored in Amazon Web Services
552
+ # Systems Manager Parameter Store
553
+ #
554
+ # * Configuration data in SSM documents stored in the Systems Manager
555
+ # document store
556
+ #
557
+ # A configuration profile includes the following information:
382
558
  #
383
- # * The Uri location of the configuration data.
559
+ # * The URI location of the configuration data.
384
560
  #
385
- # * The AWS Identity and Access Management (IAM) role that provides
386
- # access to the configuration data.
561
+ # * The Identity and Access Management (IAM) role that provides access
562
+ # to the configuration data.
387
563
  #
388
564
  # * A validator for the configuration data. Available validators include
389
- # either a JSON Schema or an AWS Lambda function.
565
+ # either a JSON Schema or an Amazon Web Services Lambda function.
390
566
  #
391
567
  # For more information, see [Create a Configuration and a Configuration
392
- # Profile][1] in the *AWS AppConfig User Guide*.
568
+ # Profile][1] in the *AppConfig User Guide*.
393
569
  #
394
570
  #
395
571
  #
396
- # [1]: http://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-creating-configuration-and-profile.html
572
+ # [1]: http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html
397
573
  #
398
574
  # @option params [required, String] :application_id
399
575
  # The application ID.
@@ -405,19 +581,35 @@ module Aws::AppConfig
405
581
  # A description of the configuration profile.
406
582
  #
407
583
  # @option params [required, String] :location_uri
408
- # A URI to locate the configuration. You can specify a Systems Manager
409
- # (SSM) document, an SSM Parameter Store parameter, or an Amazon S3
410
- # object. For an SSM document, specify either the document name in the
411
- # format `ssm-document://<Document_name>` or the Amazon Resource Name
412
- # (ARN). For a parameter, specify either the parameter name in the
413
- # format `ssm-parameter://<Parameter_name>` or the ARN. For an Amazon S3
414
- # object, specify the URI in the following format:
415
- # `s3://<bucket>/<objectKey> `. Here is an example:
416
- # s3://my-bucket/my-app/us-east-1/my-config.json
584
+ # A URI to locate the configuration. You can specify the following:
585
+ #
586
+ # * For the AppConfig hosted configuration store and for feature flags,
587
+ # specify `hosted`.
588
+ #
589
+ # * For an Amazon Web Services Systems Manager Parameter Store
590
+ # parameter, specify either the parameter name in the format
591
+ # `ssm-parameter://<parameter name>` or the ARN.
592
+ #
593
+ # * For an Amazon Web Services CodePipeline pipeline, specify the URI in
594
+ # the following format: `codepipeline`://&lt;pipeline name&gt;.
595
+ #
596
+ # * For an Secrets Manager secret, specify the URI in the following
597
+ # format: `secretsmanager`://&lt;secret name&gt;.
598
+ #
599
+ # * For an Amazon S3 object, specify the URI in the following format:
600
+ # `s3://<bucket>/<objectKey> `. Here is an example:
601
+ # `s3://amzn-s3-demo-bucket/my-app/us-east-1/my-config.json`
602
+ #
603
+ # * For an SSM document, specify either the document name in the format
604
+ # `ssm-document://<document name>` or the Amazon Resource Name (ARN).
417
605
  #
418
606
  # @option params [String] :retrieval_role_arn
419
607
  # The ARN of an IAM role with permission to access the configuration at
420
- # the specified LocationUri.
608
+ # the specified `LocationUri`.
609
+ #
610
+ # A retrieval role ARN is not required for configurations stored in
611
+ # CodePipeline or the AppConfig hosted configuration store. It is
612
+ # required for all other sources that store your configuration.
421
613
  #
422
614
  # @option params [Array<Types::Validator>] :validators
423
615
  # A list of methods for validating the configuration.
@@ -427,6 +619,27 @@ module Aws::AppConfig
427
619
  # and categorize your AppConfig resources. Each tag consists of a key
428
620
  # and an optional value, both of which you define.
429
621
  #
622
+ # @option params [String] :type
623
+ # The type of configurations contained in the profile. AppConfig
624
+ # supports `feature flags` and `freeform` configurations. We recommend
625
+ # you create feature flag configurations to enable or disable new
626
+ # features and freeform configurations to distribute configurations to
627
+ # an application. When calling this API, enter one of the following
628
+ # values for `Type`:
629
+ #
630
+ # `AWS.AppConfig.FeatureFlags`
631
+ #
632
+ # `AWS.Freeform`
633
+ #
634
+ # @option params [String] :kms_key_identifier
635
+ # The identifier for an Key Management Service key to encrypt new
636
+ # configuration data versions in the AppConfig hosted configuration
637
+ # store. This attribute is only used for `hosted` configuration types.
638
+ # The identifier can be an KMS key ID, alias, or the Amazon Resource
639
+ # Name (ARN) of the key ID or alias. To encrypt data managed in other
640
+ # configuration stores, see the documentation for how to specify an KMS
641
+ # key for that particular service.
642
+ #
430
643
  # @return [Types::ConfigurationProfile] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
431
644
  #
432
645
  # * {Types::ConfigurationProfile#application_id #application_id} => String
@@ -436,12 +649,37 @@ module Aws::AppConfig
436
649
  # * {Types::ConfigurationProfile#location_uri #location_uri} => String
437
650
  # * {Types::ConfigurationProfile#retrieval_role_arn #retrieval_role_arn} => String
438
651
  # * {Types::ConfigurationProfile#validators #validators} => Array&lt;Types::Validator&gt;
652
+ # * {Types::ConfigurationProfile#type #type} => String
653
+ # * {Types::ConfigurationProfile#kms_key_arn #kms_key_arn} => String
654
+ # * {Types::ConfigurationProfile#kms_key_identifier #kms_key_identifier} => String
655
+ #
656
+ #
657
+ # @example Example: To create a configuration profile
658
+ #
659
+ # # The following create-configuration-profile example creates a configuration profile using a configuration stored in
660
+ # # Parameter Store, a capability of Systems Manager.
661
+ #
662
+ # resp = client.create_configuration_profile({
663
+ # application_id: "339ohji",
664
+ # location_uri: "ssm-parameter://Example-Parameter",
665
+ # name: "Example-Configuration-Profile",
666
+ # retrieval_role_arn: "arn:aws:iam::111122223333:role/Example-App-Config-Role",
667
+ # })
668
+ #
669
+ # resp.to_h outputs the following:
670
+ # {
671
+ # application_id: "339ohji",
672
+ # id: "ur8hx2f",
673
+ # location_uri: "ssm-parameter://Example-Parameter",
674
+ # name: "Example-Configuration-Profile",
675
+ # retrieval_role_arn: "arn:aws:iam::111122223333:role/Example-App-Config-Role",
676
+ # }
439
677
  #
440
678
  # @example Request syntax with placeholder values
441
679
  #
442
680
  # resp = client.create_configuration_profile({
443
681
  # application_id: "Id", # required
444
- # name: "Name", # required
682
+ # name: "LongName", # required
445
683
  # description: "Description",
446
684
  # location_uri: "Uri", # required
447
685
  # retrieval_role_arn: "RoleArn",
@@ -454,6 +692,8 @@ module Aws::AppConfig
454
692
  # tags: {
455
693
  # "TagKey" => "TagValue",
456
694
  # },
695
+ # type: "ConfigurationProfileType",
696
+ # kms_key_identifier: "KmsKeyIdentifier",
457
697
  # })
458
698
  #
459
699
  # @example Response structure
@@ -467,6 +707,9 @@ module Aws::AppConfig
467
707
  # resp.validators #=> Array
468
708
  # resp.validators[0].type #=> String, one of "JSON_SCHEMA", "LAMBDA"
469
709
  # resp.validators[0].content #=> String
710
+ # resp.type #=> String
711
+ # resp.kms_key_arn #=> String
712
+ # resp.kms_key_identifier #=> String
470
713
  #
471
714
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateConfigurationProfile AWS API Documentation
472
715
  #
@@ -477,11 +720,11 @@ module Aws::AppConfig
477
720
  req.send_request(options)
478
721
  end
479
722
 
480
- # A deployment strategy defines important criteria for rolling out your
481
- # configuration to the designated targets. A deployment strategy
482
- # includes: the overall duration required, a percentage of targets to
483
- # receive the deployment during each interval, an algorithm that defines
484
- # how percentage grows, and bake time.
723
+ # Creates a deployment strategy that defines important criteria for
724
+ # rolling out your configuration to the designated targets. A deployment
725
+ # strategy includes the overall duration required, a percentage of
726
+ # targets to receive the deployment during each interval, an algorithm
727
+ # that defines how percentage grows, and bake time.
485
728
  #
486
729
  # @option params [required, String] :name
487
730
  # A name for the deployment strategy.
@@ -493,19 +736,28 @@ module Aws::AppConfig
493
736
  # Total amount of time for a deployment to last.
494
737
  #
495
738
  # @option params [Integer] :final_bake_time_in_minutes
496
- # The amount of time AppConfig monitors for alarms before considering
497
- # the deployment to be complete and no longer eligible for automatic
498
- # roll back.
739
+ # Specifies the amount of time AppConfig monitors for Amazon CloudWatch
740
+ # alarms after the configuration has been deployed to 100% of its
741
+ # targets, before considering the deployment to be complete. If an alarm
742
+ # is triggered during this time, AppConfig rolls back the deployment.
743
+ # You must configure permissions for AppConfig to roll back based on
744
+ # CloudWatch alarms. For more information, see [Configuring permissions
745
+ # for rollback based on Amazon CloudWatch alarms][1] in the *AppConfig
746
+ # User Guide*.
747
+ #
748
+ #
749
+ #
750
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/getting-started-with-appconfig-cloudwatch-alarms-permissions.html
499
751
  #
500
752
  # @option params [required, Float] :growth_factor
501
753
  # The percentage of targets to receive a deployed configuration during
502
754
  # each interval.
503
755
  #
504
756
  # @option params [String] :growth_type
505
- # The algorithm used to define how percentage grows over time. AWS
506
- # AppConfig supports the following growth types:
757
+ # The algorithm used to define how percentage grows over time. AppConfig
758
+ # supports the following growth types:
507
759
  #
508
- # **Linear**\: For this type, AppConfig processes the deployment by
760
+ # **Linear**: For this type, AppConfig processes the deployment by
509
761
  # dividing the total number of targets by the value specified for `Step
510
762
  # percentage`. For example, a linear deployment that uses a `Step
511
763
  # percentage` of 10 deploys the configuration to 10 percent of the
@@ -513,7 +765,7 @@ module Aws::AppConfig
513
765
  # configuration to the next 10 percent. This continues until 100% of the
514
766
  # targets have successfully received the configuration.
515
767
  #
516
- # **Exponential**\: For this type, AppConfig processes the deployment
768
+ # **Exponential**: For this type, AppConfig processes the deployment
517
769
  # exponentially using the following formula: `G*(2^N)`. In this formula,
518
770
  # `G` is the growth factor specified by the user and `N` is the number
519
771
  # of steps until the configuration is deployed to all targets. For
@@ -530,7 +782,7 @@ module Aws::AppConfig
530
782
  # targets, 4% of the targets, 8% of the targets, and continues until the
531
783
  # configuration has been deployed to all targets.
532
784
  #
533
- # @option params [required, String] :replicate_to
785
+ # @option params [String] :replicate_to
534
786
  # Save the deployment strategy to a Systems Manager (SSM) document.
535
787
  #
536
788
  # @option params [Hash<String,String>] :tags
@@ -549,6 +801,31 @@ module Aws::AppConfig
549
801
  # * {Types::DeploymentStrategy#final_bake_time_in_minutes #final_bake_time_in_minutes} => Integer
550
802
  # * {Types::DeploymentStrategy#replicate_to #replicate_to} => String
551
803
  #
804
+ #
805
+ # @example Example: To create a deployment strategy
806
+ #
807
+ # # The following create-deployment-strategy example creates a deployment strategy called Example-Deployment that takes 15
808
+ # # minutes and deploys the configuration to 25% of the application at a time. The strategy is also copied to an SSM
809
+ # # Document.
810
+ #
811
+ # resp = client.create_deployment_strategy({
812
+ # deployment_duration_in_minutes: 15,
813
+ # growth_factor: 25,
814
+ # name: "Example-Deployment",
815
+ # replicate_to: "SSM_DOCUMENT",
816
+ # })
817
+ #
818
+ # resp.to_h outputs the following:
819
+ # {
820
+ # deployment_duration_in_minutes: 15,
821
+ # final_bake_time_in_minutes: 0,
822
+ # growth_factor: 25,
823
+ # growth_type: "LINEAR",
824
+ # id: "1225qzk",
825
+ # name: "Example-Deployment",
826
+ # replicate_to: "SSM_DOCUMENT",
827
+ # }
828
+ #
552
829
  # @example Request syntax with placeholder values
553
830
  #
554
831
  # resp = client.create_deployment_strategy({
@@ -558,7 +835,7 @@ module Aws::AppConfig
558
835
  # final_bake_time_in_minutes: 1,
559
836
  # growth_factor: 1.0, # required
560
837
  # growth_type: "LINEAR", # accepts LINEAR, EXPONENTIAL
561
- # replicate_to: "NONE", # required, accepts NONE, SSM_DOCUMENT
838
+ # replicate_to: "NONE", # accepts NONE, SSM_DOCUMENT
562
839
  # tags: {
563
840
  # "TagKey" => "TagValue",
564
841
  # },
@@ -584,14 +861,14 @@ module Aws::AppConfig
584
861
  req.send_request(options)
585
862
  end
586
863
 
587
- # For each application, you define one or more environments. An
588
- # environment is a logical deployment group of AppConfig targets, such
589
- # as applications in a `Beta` or `Production` environment. You can also
590
- # define environments for application subcomponents such as the `Web`,
591
- # `Mobile` and `Back-end` components for your application. You can
592
- # configure Amazon CloudWatch alarms for each environment. The system
593
- # monitors alarms during a configuration deployment. If an alarm is
594
- # triggered, the system rolls back the configuration.
864
+ # Creates an environment. For each application, you define one or more
865
+ # environments. An environment is a deployment group of AppConfig
866
+ # targets, such as applications in a `Beta` or `Production` environment.
867
+ # You can also define environments for application subcomponents such as
868
+ # the `Web`, `Mobile` and `Back-end` components for your application.
869
+ # You can configure Amazon CloudWatch alarms for each environment. The
870
+ # system monitors alarms during a configuration deployment. If an alarm
871
+ # is triggered, the system rolls back the configuration.
595
872
  #
596
873
  # @option params [required, String] :application_id
597
874
  # The application ID.
@@ -619,6 +896,25 @@ module Aws::AppConfig
619
896
  # * {Types::Environment#state #state} => String
620
897
  # * {Types::Environment#monitors #monitors} => Array&lt;Types::Monitor&gt;
621
898
  #
899
+ #
900
+ # @example Example: To create an environment
901
+ #
902
+ # # The following create-environment example creates an AWS AppConfig environment named Example-Environment using the
903
+ # # application you created using create-application
904
+ #
905
+ # resp = client.create_environment({
906
+ # application_id: "339ohji",
907
+ # name: "Example-Environment",
908
+ # })
909
+ #
910
+ # resp.to_h outputs the following:
911
+ # {
912
+ # application_id: "339ohji",
913
+ # id: "54j1r29",
914
+ # name: "Example-Environment",
915
+ # state: "READY_FOR_DEPLOYMENT",
916
+ # }
917
+ #
622
918
  # @example Request syntax with placeholder values
623
919
  #
624
920
  # resp = client.create_environment({
@@ -627,7 +923,7 @@ module Aws::AppConfig
627
923
  # description: "Description",
628
924
  # monitors: [
629
925
  # {
630
- # alarm_arn: "Arn",
926
+ # alarm_arn: "StringWithLengthBetween1And2048", # required
631
927
  # alarm_role_arn: "RoleArn",
632
928
  # },
633
929
  # ],
@@ -642,7 +938,7 @@ module Aws::AppConfig
642
938
  # resp.id #=> String
643
939
  # resp.name #=> String
644
940
  # resp.description #=> String
645
- # resp.state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK"
941
+ # resp.state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
646
942
  # resp.monitors #=> Array
647
943
  # resp.monitors[0].alarm_arn #=> String
648
944
  # resp.monitors[0].alarm_role_arn #=> String
@@ -656,7 +952,214 @@ module Aws::AppConfig
656
952
  req.send_request(options)
657
953
  end
658
954
 
659
- # Create a new configuration in the AppConfig configuration store.
955
+ # Creates an AppConfig extension. An extension augments your ability to
956
+ # inject logic or behavior at different points during the AppConfig
957
+ # workflow of creating or deploying a configuration.
958
+ #
959
+ # You can create your own extensions or use the Amazon Web Services
960
+ # authored extensions provided by AppConfig. For an AppConfig extension
961
+ # that uses Lambda, you must create a Lambda function to perform any
962
+ # computation and processing defined in the extension. If you plan to
963
+ # create custom versions of the Amazon Web Services authored
964
+ # notification extensions, you only need to specify an Amazon Resource
965
+ # Name (ARN) in the `Uri` field for the new extension version.
966
+ #
967
+ # * For a custom EventBridge notification extension, enter the ARN of
968
+ # the EventBridge default events in the `Uri` field.
969
+ #
970
+ # * For a custom Amazon SNS notification extension, enter the ARN of an
971
+ # Amazon SNS topic in the `Uri` field.
972
+ #
973
+ # * For a custom Amazon SQS notification extension, enter the ARN of an
974
+ # Amazon SQS message queue in the `Uri` field.
975
+ #
976
+ # For more information about extensions, see [Extending workflows][1] in
977
+ # the *AppConfig User Guide*.
978
+ #
979
+ #
980
+ #
981
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
982
+ #
983
+ # @option params [required, String] :name
984
+ # A name for the extension. Each extension name in your account must be
985
+ # unique. Extension versions use the same name.
986
+ #
987
+ # @option params [String] :description
988
+ # Information about the extension.
989
+ #
990
+ # @option params [required, Hash<String,Array>] :actions
991
+ # The actions defined in the extension.
992
+ #
993
+ # @option params [Hash<String,Types::Parameter>] :parameters
994
+ # The parameters accepted by the extension. You specify parameter values
995
+ # when you associate the extension to an AppConfig resource by using the
996
+ # `CreateExtensionAssociation` API action. For Lambda extension actions,
997
+ # these parameters are included in the Lambda request object.
998
+ #
999
+ # @option params [Hash<String,String>] :tags
1000
+ # Adds one or more tags for the specified extension. Tags are metadata
1001
+ # that help you categorize resources in different ways, for example, by
1002
+ # purpose, owner, or environment. Each tag consists of a key and an
1003
+ # optional value, both of which you define.
1004
+ #
1005
+ # @option params [Integer] :latest_version_number
1006
+ # You can omit this field when you create an extension. When you create
1007
+ # a new version, specify the most recent current version number. For
1008
+ # example, you create version 3, enter 2 for this field.
1009
+ #
1010
+ # @return [Types::Extension] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1011
+ #
1012
+ # * {Types::Extension#id #id} => String
1013
+ # * {Types::Extension#name #name} => String
1014
+ # * {Types::Extension#version_number #version_number} => Integer
1015
+ # * {Types::Extension#arn #arn} => String
1016
+ # * {Types::Extension#description #description} => String
1017
+ # * {Types::Extension#actions #actions} => Hash&lt;String,Array&lt;Types::Action&gt;&gt;
1018
+ # * {Types::Extension#parameters #parameters} => Hash&lt;String,Types::Parameter&gt;
1019
+ #
1020
+ # @example Request syntax with placeholder values
1021
+ #
1022
+ # resp = client.create_extension({
1023
+ # name: "ExtensionOrParameterName", # required
1024
+ # description: "Description",
1025
+ # actions: { # required
1026
+ # "PRE_CREATE_HOSTED_CONFIGURATION_VERSION" => [
1027
+ # {
1028
+ # name: "Name",
1029
+ # description: "Description",
1030
+ # uri: "Uri",
1031
+ # role_arn: "Arn",
1032
+ # },
1033
+ # ],
1034
+ # },
1035
+ # parameters: {
1036
+ # "ExtensionOrParameterName" => {
1037
+ # description: "Description",
1038
+ # required: false,
1039
+ # dynamic: false,
1040
+ # },
1041
+ # },
1042
+ # tags: {
1043
+ # "TagKey" => "TagValue",
1044
+ # },
1045
+ # latest_version_number: 1,
1046
+ # })
1047
+ #
1048
+ # @example Response structure
1049
+ #
1050
+ # resp.id #=> String
1051
+ # resp.name #=> String
1052
+ # resp.version_number #=> Integer
1053
+ # resp.arn #=> String
1054
+ # resp.description #=> String
1055
+ # resp.actions #=> Hash
1056
+ # resp.actions["ActionPoint"] #=> Array
1057
+ # resp.actions["ActionPoint"][0].name #=> String
1058
+ # resp.actions["ActionPoint"][0].description #=> String
1059
+ # resp.actions["ActionPoint"][0].uri #=> String
1060
+ # resp.actions["ActionPoint"][0].role_arn #=> String
1061
+ # resp.parameters #=> Hash
1062
+ # resp.parameters["ExtensionOrParameterName"].description #=> String
1063
+ # resp.parameters["ExtensionOrParameterName"].required #=> Boolean
1064
+ # resp.parameters["ExtensionOrParameterName"].dynamic #=> Boolean
1065
+ #
1066
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateExtension AWS API Documentation
1067
+ #
1068
+ # @overload create_extension(params = {})
1069
+ # @param [Hash] params ({})
1070
+ def create_extension(params = {}, options = {})
1071
+ req = build_request(:create_extension, params)
1072
+ req.send_request(options)
1073
+ end
1074
+
1075
+ # When you create an extension or configure an Amazon Web Services
1076
+ # authored extension, you associate the extension with an AppConfig
1077
+ # application, environment, or configuration profile. For example, you
1078
+ # can choose to run the `AppConfig deployment events to Amazon SNS`
1079
+ # Amazon Web Services authored extension and receive notifications on an
1080
+ # Amazon SNS topic anytime a configuration deployment is started for a
1081
+ # specific application. Defining which extension to associate with an
1082
+ # AppConfig resource is called an *extension association*. An extension
1083
+ # association is a specified relationship between an extension and an
1084
+ # AppConfig resource, such as an application or a configuration profile.
1085
+ # For more information about extensions and associations, see [Extending
1086
+ # workflows][1] in the *AppConfig User Guide*.
1087
+ #
1088
+ #
1089
+ #
1090
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
1091
+ #
1092
+ # @option params [required, String] :extension_identifier
1093
+ # The name, the ID, or the Amazon Resource Name (ARN) of the extension.
1094
+ #
1095
+ # @option params [Integer] :extension_version_number
1096
+ # The version number of the extension. If not specified, AppConfig uses
1097
+ # the maximum version of the extension.
1098
+ #
1099
+ # @option params [required, String] :resource_identifier
1100
+ # The ARN of an application, configuration profile, or environment.
1101
+ #
1102
+ # @option params [Hash<String,String>] :parameters
1103
+ # The parameter names and values defined in the extensions. Extension
1104
+ # parameters marked `Required` must be entered for this field.
1105
+ #
1106
+ # @option params [Hash<String,String>] :tags
1107
+ # Adds one or more tags for the specified extension association. Tags
1108
+ # are metadata that help you categorize resources in different ways, for
1109
+ # example, by purpose, owner, or environment. Each tag consists of a key
1110
+ # and an optional value, both of which you define.
1111
+ #
1112
+ # @return [Types::ExtensionAssociation] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1113
+ #
1114
+ # * {Types::ExtensionAssociation#id #id} => String
1115
+ # * {Types::ExtensionAssociation#extension_arn #extension_arn} => String
1116
+ # * {Types::ExtensionAssociation#resource_arn #resource_arn} => String
1117
+ # * {Types::ExtensionAssociation#arn #arn} => String
1118
+ # * {Types::ExtensionAssociation#parameters #parameters} => Hash&lt;String,String&gt;
1119
+ # * {Types::ExtensionAssociation#extension_version_number #extension_version_number} => Integer
1120
+ #
1121
+ # @example Request syntax with placeholder values
1122
+ #
1123
+ # resp = client.create_extension_association({
1124
+ # extension_identifier: "Identifier", # required
1125
+ # extension_version_number: 1,
1126
+ # resource_identifier: "Identifier", # required
1127
+ # parameters: {
1128
+ # "ExtensionOrParameterName" => "StringWithLengthBetween1And2048",
1129
+ # },
1130
+ # tags: {
1131
+ # "TagKey" => "TagValue",
1132
+ # },
1133
+ # })
1134
+ #
1135
+ # @example Response structure
1136
+ #
1137
+ # resp.id #=> String
1138
+ # resp.extension_arn #=> String
1139
+ # resp.resource_arn #=> String
1140
+ # resp.arn #=> String
1141
+ # resp.parameters #=> Hash
1142
+ # resp.parameters["ExtensionOrParameterName"] #=> String
1143
+ # resp.extension_version_number #=> Integer
1144
+ #
1145
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateExtensionAssociation AWS API Documentation
1146
+ #
1147
+ # @overload create_extension_association(params = {})
1148
+ # @param [Hash] params ({})
1149
+ def create_extension_association(params = {}, options = {})
1150
+ req = build_request(:create_extension_association, params)
1151
+ req.send_request(options)
1152
+ end
1153
+
1154
+ # Creates a new configuration in the AppConfig hosted configuration
1155
+ # store. If you're creating a feature flag, we recommend you
1156
+ # familiarize yourself with the JSON schema for feature flag data. For
1157
+ # more information, see [Type reference for
1158
+ # AWS.AppConfig.FeatureFlags][1] in the *AppConfig User Guide*.
1159
+ #
1160
+ #
1161
+ #
1162
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-feature-flags.html#appconfig-type-reference-feature-flags
660
1163
  #
661
1164
  # @option params [required, String] :application_id
662
1165
  # The application ID.
@@ -668,7 +1171,12 @@ module Aws::AppConfig
668
1171
  # A description of the configuration.
669
1172
  #
670
1173
  # @option params [required, String, StringIO, File] :content
671
- # The content of the configuration or the configuration data.
1174
+ # The configuration data, as bytes.
1175
+ #
1176
+ # <note markdown="1"> AppConfig accepts any type of data, including text formats like JSON
1177
+ # or TOML, or binary formats like protocol buffers or compressed data.
1178
+ #
1179
+ # </note>
672
1180
  #
673
1181
  # @option params [required, String] :content_type
674
1182
  # A standard MIME type describing the format of the configuration
@@ -676,14 +1184,19 @@ module Aws::AppConfig
676
1184
  #
677
1185
  #
678
1186
  #
679
- # [1]: https://docs.aws.amazon.com/https:/www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
1187
+ # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
680
1188
  #
681
1189
  # @option params [Integer] :latest_version_number
682
1190
  # An optional locking token used to prevent race conditions from
683
1191
  # overwriting configuration updates when creating a new version. To
684
1192
  # ensure your data is not overwritten when creating multiple hosted
685
- # configuration versions in rapid succession, specify the version of the
686
- # latest hosted configuration version.
1193
+ # configuration versions in rapid succession, specify the version number
1194
+ # of the latest hosted configuration version.
1195
+ #
1196
+ # @option params [String] :version_label
1197
+ # An optional, user-defined label for the AppConfig hosted configuration
1198
+ # version. This value must contain at least one non-numeric character.
1199
+ # For example, "v2.2.0".
687
1200
  #
688
1201
  # @return [Types::HostedConfigurationVersion] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
689
1202
  #
@@ -693,6 +1206,30 @@ module Aws::AppConfig
693
1206
  # * {Types::HostedConfigurationVersion#description #description} => String
694
1207
  # * {Types::HostedConfigurationVersion#content #content} => String
695
1208
  # * {Types::HostedConfigurationVersion#content_type #content_type} => String
1209
+ # * {Types::HostedConfigurationVersion#version_label #version_label} => String
1210
+ # * {Types::HostedConfigurationVersion#kms_key_arn #kms_key_arn} => String
1211
+ #
1212
+ #
1213
+ # @example Example: To create a hosted configuration version
1214
+ #
1215
+ # # The following create-hosted-configuration-version example creates a new configuration in the AWS AppConfig configuration
1216
+ # # store.
1217
+ #
1218
+ # resp = client.create_hosted_configuration_version({
1219
+ # application_id: "339ohji",
1220
+ # configuration_profile_id: "ur8hx2f",
1221
+ # content: "eyAiTmFtZSI6ICJFeGFtcGxlQXBwbGljYXRpb24iLCAiSWQiOiBFeGFtcGxlSUQsICJSYW5rIjogNyB9",
1222
+ # content_type: "text",
1223
+ # latest_version_number: 1,
1224
+ # })
1225
+ #
1226
+ # resp.to_h outputs the following:
1227
+ # {
1228
+ # application_id: "339ohji",
1229
+ # configuration_profile_id: "ur8hx2f",
1230
+ # content_type: "text",
1231
+ # version_number: 1,
1232
+ # }
696
1233
  #
697
1234
  # @example Request syntax with placeholder values
698
1235
  #
@@ -703,6 +1240,7 @@ module Aws::AppConfig
703
1240
  # content: "data", # required
704
1241
  # content_type: "StringWithLengthBetween1And255", # required
705
1242
  # latest_version_number: 1,
1243
+ # version_label: "VersionLabel",
706
1244
  # })
707
1245
  #
708
1246
  # @example Response structure
@@ -713,6 +1251,8 @@ module Aws::AppConfig
713
1251
  # resp.description #=> String
714
1252
  # resp.content #=> String
715
1253
  # resp.content_type #=> String
1254
+ # resp.version_label #=> String
1255
+ # resp.kms_key_arn #=> String
716
1256
  #
717
1257
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/CreateHostedConfigurationVersion AWS API Documentation
718
1258
  #
@@ -723,14 +1263,22 @@ module Aws::AppConfig
723
1263
  req.send_request(options)
724
1264
  end
725
1265
 
726
- # Delete an application. Deleting an application does not delete a
727
- # configuration from a host.
1266
+ # Deletes an application.
728
1267
  #
729
1268
  # @option params [required, String] :application_id
730
1269
  # The ID of the application to delete.
731
1270
  #
732
1271
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
733
1272
  #
1273
+ #
1274
+ # @example Example: To delete an application
1275
+ #
1276
+ # # The following delete-application example deletes the specified application.
1277
+ #
1278
+ # resp = client.delete_application({
1279
+ # application_id: "339ohji",
1280
+ # })
1281
+ #
734
1282
  # @example Request syntax with placeholder values
735
1283
  #
736
1284
  # resp = client.delete_application({
@@ -746,8 +1294,14 @@ module Aws::AppConfig
746
1294
  req.send_request(options)
747
1295
  end
748
1296
 
749
- # Delete a configuration profile. Deleting a configuration profile does
750
- # not delete a configuration from a host.
1297
+ # Deletes a configuration profile.
1298
+ #
1299
+ # To prevent users from unintentionally deleting actively-used
1300
+ # configuration profiles, enable [deletion protection][1].
1301
+ #
1302
+ #
1303
+ #
1304
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html
751
1305
  #
752
1306
  # @option params [required, String] :application_id
753
1307
  # The application ID that includes the configuration profile you want to
@@ -756,13 +1310,50 @@ module Aws::AppConfig
756
1310
  # @option params [required, String] :configuration_profile_id
757
1311
  # The ID of the configuration profile you want to delete.
758
1312
  #
1313
+ # @option params [String] :deletion_protection_check
1314
+ # A parameter to configure deletion protection. Deletion protection
1315
+ # prevents a user from deleting a configuration profile if your
1316
+ # application has called either [GetLatestConfiguration][1] or for the
1317
+ # configuration profile during the specified interval.
1318
+ #
1319
+ # This parameter supports the following values:
1320
+ #
1321
+ # * `BYPASS`: Instructs AppConfig to bypass the deletion protection
1322
+ # check and delete a configuration profile even if deletion protection
1323
+ # would have otherwise prevented it.
1324
+ #
1325
+ # * `APPLY`: Instructs the deletion protection check to run, even if
1326
+ # deletion protection is disabled at the account level. `APPLY` also
1327
+ # forces the deletion protection check to run against resources
1328
+ # created in the past hour, which are normally excluded from deletion
1329
+ # protection checks.
1330
+ #
1331
+ # * `ACCOUNT_DEFAULT`: The default setting, which instructs AppConfig to
1332
+ # implement the deletion protection value specified in the
1333
+ # `UpdateAccountSettings` API.
1334
+ #
1335
+ #
1336
+ #
1337
+ # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html
1338
+ #
759
1339
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
760
1340
  #
1341
+ #
1342
+ # @example Example: To delete a configuration profile
1343
+ #
1344
+ # # The following delete-configuration-profile example deletes the specified configuration profile.
1345
+ #
1346
+ # resp = client.delete_configuration_profile({
1347
+ # application_id: "339ohji",
1348
+ # configuration_profile_id: "ur8hx2f",
1349
+ # })
1350
+ #
761
1351
  # @example Request syntax with placeholder values
762
1352
  #
763
1353
  # resp = client.delete_configuration_profile({
764
1354
  # application_id: "Id", # required
765
1355
  # configuration_profile_id: "Id", # required
1356
+ # deletion_protection_check: "ACCOUNT_DEFAULT", # accepts ACCOUNT_DEFAULT, APPLY, BYPASS
766
1357
  # })
767
1358
  #
768
1359
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteConfigurationProfile AWS API Documentation
@@ -774,14 +1365,22 @@ module Aws::AppConfig
774
1365
  req.send_request(options)
775
1366
  end
776
1367
 
777
- # Delete a deployment strategy. Deleting a deployment strategy does not
778
- # delete a configuration from a host.
1368
+ # Deletes a deployment strategy.
779
1369
  #
780
1370
  # @option params [required, String] :deployment_strategy_id
781
1371
  # The ID of the deployment strategy you want to delete.
782
1372
  #
783
1373
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
784
1374
  #
1375
+ #
1376
+ # @example Example: To delete a deployment strategy
1377
+ #
1378
+ # # The following delete-deployment-strategy example deletes the specified deployment strategy.
1379
+ #
1380
+ # resp = client.delete_deployment_strategy({
1381
+ # deployment_strategy_id: "1225qzk",
1382
+ # })
1383
+ #
785
1384
  # @example Request syntax with placeholder values
786
1385
  #
787
1386
  # resp = client.delete_deployment_strategy({
@@ -797,22 +1396,66 @@ module Aws::AppConfig
797
1396
  req.send_request(options)
798
1397
  end
799
1398
 
800
- # Delete an environment. Deleting an environment does not delete a
801
- # configuration from a host.
1399
+ # Deletes an environment.
1400
+ #
1401
+ # To prevent users from unintentionally deleting actively-used
1402
+ # environments, enable [deletion protection][1].
802
1403
  #
803
- # @option params [required, String] :application_id
804
- # The application ID that includes the environment you want to delete.
1404
+ #
1405
+ #
1406
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html
805
1407
  #
806
1408
  # @option params [required, String] :environment_id
807
- # The ID of the environment you want to delete.
1409
+ # The ID of the environment that you want to delete.
1410
+ #
1411
+ # @option params [required, String] :application_id
1412
+ # The application ID that includes the environment that you want to
1413
+ # delete.
1414
+ #
1415
+ # @option params [String] :deletion_protection_check
1416
+ # A parameter to configure deletion protection. Deletion protection
1417
+ # prevents a user from deleting an environment if your application
1418
+ # called either [GetLatestConfiguration][1] or in the environment during
1419
+ # the specified interval.
1420
+ #
1421
+ # This parameter supports the following values:
1422
+ #
1423
+ # * `BYPASS`: Instructs AppConfig to bypass the deletion protection
1424
+ # check and delete a configuration profile even if deletion protection
1425
+ # would have otherwise prevented it.
1426
+ #
1427
+ # * `APPLY`: Instructs the deletion protection check to run, even if
1428
+ # deletion protection is disabled at the account level. `APPLY` also
1429
+ # forces the deletion protection check to run against resources
1430
+ # created in the past hour, which are normally excluded from deletion
1431
+ # protection checks.
1432
+ #
1433
+ # * `ACCOUNT_DEFAULT`: The default setting, which instructs AppConfig to
1434
+ # implement the deletion protection value specified in the
1435
+ # `UpdateAccountSettings` API.
1436
+ #
1437
+ #
1438
+ #
1439
+ # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html
808
1440
  #
809
1441
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
810
1442
  #
1443
+ #
1444
+ # @example Example: To delete an environment
1445
+ #
1446
+ # # The following delete-environment example deletes the specified application environment.
1447
+ #
1448
+ # resp = client.delete_environment({
1449
+ # application_id: "339ohji",
1450
+ # environment_id: "54j1r29",
1451
+ # })
1452
+ #
811
1453
  # @example Request syntax with placeholder values
812
1454
  #
813
1455
  # resp = client.delete_environment({
814
- # application_id: "Id", # required
815
1456
  # environment_id: "Id", # required
1457
+ # application_id: "Id", # required
1458
+ # deletion_protection_check: "ACCOUNT_DEFAULT", # accepts ACCOUNT_DEFAULT, APPLY, BYPASS
816
1459
  # })
817
1460
  #
818
1461
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteEnvironment AWS API Documentation
@@ -824,8 +1467,60 @@ module Aws::AppConfig
824
1467
  req.send_request(options)
825
1468
  end
826
1469
 
827
- # Delete a version of a configuration from the AppConfig configuration
828
- # store.
1470
+ # Deletes an AppConfig extension. You must delete all associations to an
1471
+ # extension before you delete the extension.
1472
+ #
1473
+ # @option params [required, String] :extension_identifier
1474
+ # The name, ID, or Amazon Resource Name (ARN) of the extension you want
1475
+ # to delete.
1476
+ #
1477
+ # @option params [Integer] :version_number
1478
+ # A specific version of an extension to delete. If omitted, the highest
1479
+ # version is deleted.
1480
+ #
1481
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1482
+ #
1483
+ # @example Request syntax with placeholder values
1484
+ #
1485
+ # resp = client.delete_extension({
1486
+ # extension_identifier: "Identifier", # required
1487
+ # version_number: 1,
1488
+ # })
1489
+ #
1490
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteExtension AWS API Documentation
1491
+ #
1492
+ # @overload delete_extension(params = {})
1493
+ # @param [Hash] params ({})
1494
+ def delete_extension(params = {}, options = {})
1495
+ req = build_request(:delete_extension, params)
1496
+ req.send_request(options)
1497
+ end
1498
+
1499
+ # Deletes an extension association. This action doesn't delete
1500
+ # extensions defined in the association.
1501
+ #
1502
+ # @option params [required, String] :extension_association_id
1503
+ # The ID of the extension association to delete.
1504
+ #
1505
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1506
+ #
1507
+ # @example Request syntax with placeholder values
1508
+ #
1509
+ # resp = client.delete_extension_association({
1510
+ # extension_association_id: "Id", # required
1511
+ # })
1512
+ #
1513
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/DeleteExtensionAssociation AWS API Documentation
1514
+ #
1515
+ # @overload delete_extension_association(params = {})
1516
+ # @param [Hash] params ({})
1517
+ def delete_extension_association(params = {}, options = {})
1518
+ req = build_request(:delete_extension_association, params)
1519
+ req.send_request(options)
1520
+ end
1521
+
1522
+ # Deletes a version of a configuration from the AppConfig hosted
1523
+ # configuration store.
829
1524
  #
830
1525
  # @option params [required, String] :application_id
831
1526
  # The application ID.
@@ -838,6 +1533,18 @@ module Aws::AppConfig
838
1533
  #
839
1534
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
840
1535
  #
1536
+ #
1537
+ # @example Example: To delete a hosted configuration version
1538
+ #
1539
+ # # The following delete-hosted-configuration-version example deletes a configuration version hosted in the AWS AppConfig
1540
+ # # configuration store.
1541
+ #
1542
+ # resp = client.delete_hosted_configuration_version({
1543
+ # application_id: "339ohji",
1544
+ # configuration_profile_id: "ur8hx2f",
1545
+ # version_number: 1,
1546
+ # })
1547
+ #
841
1548
  # @example Request syntax with placeholder values
842
1549
  #
843
1550
  # resp = client.delete_hosted_configuration_version({
@@ -855,7 +1562,28 @@ module Aws::AppConfig
855
1562
  req.send_request(options)
856
1563
  end
857
1564
 
858
- # Retrieve information about an application.
1565
+ # Returns information about the status of the `DeletionProtection`
1566
+ # parameter.
1567
+ #
1568
+ # @return [Types::AccountSettings] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1569
+ #
1570
+ # * {Types::AccountSettings#deletion_protection #deletion_protection} => Types::DeletionProtectionSettings
1571
+ #
1572
+ # @example Response structure
1573
+ #
1574
+ # resp.deletion_protection.enabled #=> Boolean
1575
+ # resp.deletion_protection.protection_period_in_minutes #=> Integer
1576
+ #
1577
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetAccountSettings AWS API Documentation
1578
+ #
1579
+ # @overload get_account_settings(params = {})
1580
+ # @param [Hash] params ({})
1581
+ def get_account_settings(params = {}, options = {})
1582
+ req = build_request(:get_account_settings, params)
1583
+ req.send_request(options)
1584
+ end
1585
+
1586
+ # Retrieves information about an application.
859
1587
  #
860
1588
  # @option params [required, String] :application_id
861
1589
  # The ID of the application you want to get.
@@ -866,6 +1594,21 @@ module Aws::AppConfig
866
1594
  # * {Types::Application#name #name} => String
867
1595
  # * {Types::Application#description #description} => String
868
1596
  #
1597
+ #
1598
+ # @example Example: To list details of an application
1599
+ #
1600
+ # # The following get-application example lists the details of the specified application.
1601
+ #
1602
+ # resp = client.get_application({
1603
+ # application_id: "339ohji",
1604
+ # })
1605
+ #
1606
+ # resp.to_h outputs the following:
1607
+ # {
1608
+ # id: "339ohji",
1609
+ # name: "example-application",
1610
+ # }
1611
+ #
869
1612
  # @example Request syntax with placeholder values
870
1613
  #
871
1614
  # resp = client.get_application({
@@ -887,19 +1630,22 @@ module Aws::AppConfig
887
1630
  req.send_request(options)
888
1631
  end
889
1632
 
890
- # Receive information about a configuration.
1633
+ # (Deprecated) Retrieves the latest deployed configuration.
1634
+ #
1635
+ # Note the following important information.
1636
+ #
1637
+ # * This API action is deprecated. Calls to receive configuration data
1638
+ # should use the [StartConfigurationSession][1] and
1639
+ # [GetLatestConfiguration][2] APIs instead.
1640
+ #
1641
+ # * GetConfiguration is a priced call. For more information, see
1642
+ # [Pricing][3].
891
1643
  #
892
- # AWS AppConfig uses the value of the `ClientConfigurationVersion`
893
- # parameter to identify the configuration version on your clients. If
894
- # you don’t send `ClientConfigurationVersion` with each call to
895
- # `GetConfiguration`, your clients receive the current configuration.
896
- # You are charged each time your clients receive a configuration.
897
1644
  #
898
- # To avoid excess charges, we recommend that you include the
899
- # `ClientConfigurationVersion` value with every call to
900
- # `GetConfiguration`. This value must be saved on your client.
901
- # Subsequent calls to `GetConfiguration` must pass this value by using
902
- # the `ClientConfigurationVersion` parameter.
1645
+ #
1646
+ # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html
1647
+ # [2]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html
1648
+ # [3]: https://aws.amazon.com/systems-manager/pricing/
903
1649
  #
904
1650
  # @option params [required, String] :application
905
1651
  # The application to get. Specify either the application name or the
@@ -914,32 +1660,40 @@ module Aws::AppConfig
914
1660
  # configuration ID.
915
1661
  #
916
1662
  # @option params [required, String] :client_id
917
- # A unique ID to identify the client for the configuration. This ID
918
- # enables AppConfig to deploy the configuration in intervals, as defined
919
- # in the deployment strategy.
1663
+ # The clientId parameter in the following command is a unique,
1664
+ # user-specified ID to identify the client for the configuration. This
1665
+ # ID enables AppConfig to deploy the configuration in intervals, as
1666
+ # defined in the deployment strategy.
920
1667
  #
921
1668
  # @option params [String] :client_configuration_version
922
- # The configuration version returned in the most recent
923
- # `GetConfiguration` response.
924
- #
925
- # AWS AppConfig uses the value of the `ClientConfigurationVersion`
926
- # parameter to identify the configuration version on your clients. If
927
- # you don’t send `ClientConfigurationVersion` with each call to
928
- # `GetConfiguration`, your clients receive the current configuration.
929
- # You are charged each time your clients receive a configuration.
930
- #
931
- # To avoid excess charges, we recommend that you include the
932
- # `ClientConfigurationVersion` value with every call to
933
- # `GetConfiguration`. This value must be saved on your client.
934
- # Subsequent calls to `GetConfiguration` must pass this value by using
935
- # the `ClientConfigurationVersion` parameter.
1669
+ # The configuration version returned in the most recent GetConfiguration
1670
+ # response.
1671
+ #
1672
+ # AppConfig uses the value of the `ClientConfigurationVersion` parameter
1673
+ # to identify the configuration version on your clients. If you don’t
1674
+ # send `ClientConfigurationVersion` with each call to GetConfiguration,
1675
+ # your clients receive the current configuration. You are charged each
1676
+ # time your clients receive a configuration.
1677
+ #
1678
+ # To avoid excess charges, we recommend you use the
1679
+ # [StartConfigurationSession][1] and [GetLatestConfiguration][2] APIs,
1680
+ # which track the client configuration version on your behalf. If you
1681
+ # choose to continue using GetConfiguration, we recommend that you
1682
+ # include the `ClientConfigurationVersion` value with every call to
1683
+ # GetConfiguration. The value to use for `ClientConfigurationVersion`
1684
+ # comes from the `ConfigurationVersion` attribute returned by
1685
+ # GetConfiguration when there is new or updated data, and should be
1686
+ # saved for subsequent calls to GetConfiguration.
936
1687
  #
937
1688
  # For more information about working with configurations, see
938
- # [Retrieving the Configuration][1] in the *AWS AppConfig User Guide*.
1689
+ # [Retrieving feature flags and configuration data in AppConfig][3] in
1690
+ # the *AppConfig User Guide*.
939
1691
  #
940
1692
  #
941
1693
  #
942
- # [1]: https://docs.aws.amazon.com/systems-manager/latest/userguide/appconfig-retrieving-the-configuration.html
1694
+ # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/StartConfigurationSession.html
1695
+ # [2]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/GetLatestConfiguration.html
1696
+ # [3]: http://docs.aws.amazon.com/appconfig/latest/userguide/retrieving-feature-flags.html
943
1697
  #
944
1698
  # @return [Types::Configuration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
945
1699
  #
@@ -947,6 +1701,27 @@ module Aws::AppConfig
947
1701
  # * {Types::Configuration#configuration_version #configuration_version} => String
948
1702
  # * {Types::Configuration#content_type #content_type} => String
949
1703
  #
1704
+ #
1705
+ # @example Example: To retrieve configuration details
1706
+ #
1707
+ # # The following get-configuration example returns the configuration details of the example application. On subsequent
1708
+ # # calls to get-configuration, use the client-configuration-version parameter to only update the configuration of your
1709
+ # # application if the version has changed. Only updating the configuration when the version has changed avoids excess
1710
+ # # charges incurred by calling get-configuration.
1711
+ #
1712
+ # resp = client.get_configuration({
1713
+ # application: "example-application",
1714
+ # client_id: "example-id",
1715
+ # configuration: "Example-Configuration-Profile",
1716
+ # environment: "Example-Environment",
1717
+ # })
1718
+ #
1719
+ # resp.to_h outputs the following:
1720
+ # {
1721
+ # configuration_version: "1",
1722
+ # content_type: "application/octet-stream",
1723
+ # }
1724
+ #
950
1725
  # @example Request syntax with placeholder values
951
1726
  #
952
1727
  # resp = client.get_configuration({
@@ -972,14 +1747,14 @@ module Aws::AppConfig
972
1747
  req.send_request(options)
973
1748
  end
974
1749
 
975
- # Retrieve information about a configuration profile.
1750
+ # Retrieves information about a configuration profile.
976
1751
  #
977
1752
  # @option params [required, String] :application_id
978
1753
  # The ID of the application that includes the configuration profile you
979
1754
  # want to get.
980
1755
  #
981
1756
  # @option params [required, String] :configuration_profile_id
982
- # The ID of the configuration profile you want to get.
1757
+ # The ID of the configuration profile that you want to get.
983
1758
  #
984
1759
  # @return [Types::ConfigurationProfile] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
985
1760
  #
@@ -990,6 +1765,28 @@ module Aws::AppConfig
990
1765
  # * {Types::ConfigurationProfile#location_uri #location_uri} => String
991
1766
  # * {Types::ConfigurationProfile#retrieval_role_arn #retrieval_role_arn} => String
992
1767
  # * {Types::ConfigurationProfile#validators #validators} => Array&lt;Types::Validator&gt;
1768
+ # * {Types::ConfigurationProfile#type #type} => String
1769
+ # * {Types::ConfigurationProfile#kms_key_arn #kms_key_arn} => String
1770
+ # * {Types::ConfigurationProfile#kms_key_identifier #kms_key_identifier} => String
1771
+ #
1772
+ #
1773
+ # @example Example: To retrieve configuration profile details
1774
+ #
1775
+ # # The following get-configuration-profile example returns the details of the specified configuration profile.
1776
+ #
1777
+ # resp = client.get_configuration_profile({
1778
+ # application_id: "339ohji",
1779
+ # configuration_profile_id: "ur8hx2f",
1780
+ # })
1781
+ #
1782
+ # resp.to_h outputs the following:
1783
+ # {
1784
+ # application_id: "339ohji",
1785
+ # id: "ur8hx2f",
1786
+ # location_uri: "ssm-parameter://Example-Parameter",
1787
+ # name: "Example-Configuration-Profile",
1788
+ # retrieval_role_arn: "arn:aws:iam::111122223333:role/Example-App-Config-Role",
1789
+ # }
993
1790
  #
994
1791
  # @example Request syntax with placeholder values
995
1792
  #
@@ -1009,6 +1806,9 @@ module Aws::AppConfig
1009
1806
  # resp.validators #=> Array
1010
1807
  # resp.validators[0].type #=> String, one of "JSON_SCHEMA", "LAMBDA"
1011
1808
  # resp.validators[0].content #=> String
1809
+ # resp.type #=> String
1810
+ # resp.kms_key_arn #=> String
1811
+ # resp.kms_key_identifier #=> String
1012
1812
  #
1013
1813
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetConfigurationProfile AWS API Documentation
1014
1814
  #
@@ -1019,7 +1819,7 @@ module Aws::AppConfig
1019
1819
  req.send_request(options)
1020
1820
  end
1021
1821
 
1022
- # Retrieve information about a configuration deployment.
1822
+ # Retrieves information about a configuration deployment.
1023
1823
  #
1024
1824
  # @option params [required, String] :application_id
1025
1825
  # The ID of the application that includes the deployment you want to
@@ -1052,6 +1852,86 @@ module Aws::AppConfig
1052
1852
  # * {Types::Deployment#percentage_complete #percentage_complete} => Float
1053
1853
  # * {Types::Deployment#started_at #started_at} => Time
1054
1854
  # * {Types::Deployment#completed_at #completed_at} => Time
1855
+ # * {Types::Deployment#applied_extensions #applied_extensions} => Array&lt;Types::AppliedExtension&gt;
1856
+ # * {Types::Deployment#kms_key_arn #kms_key_arn} => String
1857
+ # * {Types::Deployment#kms_key_identifier #kms_key_identifier} => String
1858
+ # * {Types::Deployment#version_label #version_label} => String
1859
+ #
1860
+ #
1861
+ # @example Example: To retrieve deployment details
1862
+ #
1863
+ # # The following get-deployment example lists details of the deployment to the application in the specified environment and
1864
+ # # deployment.
1865
+ #
1866
+ # resp = client.get_deployment({
1867
+ # application_id: "339ohji",
1868
+ # deployment_number: 1,
1869
+ # environment_id: "54j1r29",
1870
+ # })
1871
+ #
1872
+ # resp.to_h outputs the following:
1873
+ # {
1874
+ # application_id: "339ohji",
1875
+ # completed_at: Time.parse("2021-09-17T21:59:03.888000+00:00"),
1876
+ # configuration_location_uri: "ssm-parameter://Example-Parameter",
1877
+ # configuration_name: "Example-Configuration-Profile",
1878
+ # configuration_profile_id: "ur8hx2f",
1879
+ # configuration_version: "1",
1880
+ # deployment_duration_in_minutes: 15,
1881
+ # deployment_number: 1,
1882
+ # deployment_strategy_id: "1225qzk",
1883
+ # environment_id: "54j1r29",
1884
+ # event_log: [
1885
+ # {
1886
+ # description: "Deployment completed",
1887
+ # event_type: "DEPLOYMENT_COMPLETED",
1888
+ # occurred_at: Time.parse("2021-09-17T21:59:03.888000+00:00"),
1889
+ # triggered_by: "APPCONFIG",
1890
+ # },
1891
+ # {
1892
+ # description: "Deployment bake time started",
1893
+ # event_type: "BAKE_TIME_STARTED",
1894
+ # occurred_at: Time.parse("2021-09-17T21:58:57.722000+00:00"),
1895
+ # triggered_by: "APPCONFIG",
1896
+ # },
1897
+ # {
1898
+ # description: "Configuration available to 100.00% of clients",
1899
+ # event_type: "PERCENTAGE_UPDATED",
1900
+ # occurred_at: Time.parse("2021-09-17T21:55:56.816000+00:00"),
1901
+ # triggered_by: "APPCONFIG",
1902
+ # },
1903
+ # {
1904
+ # description: "Configuration available to 75.00% of clients",
1905
+ # event_type: "PERCENTAGE_UPDATED",
1906
+ # occurred_at: Time.parse("2021-09-17T21:52:56.567000+00:00"),
1907
+ # triggered_by: "APPCONFIG",
1908
+ # },
1909
+ # {
1910
+ # description: "Configuration available to 50.00% of clients",
1911
+ # event_type: "PERCENTAGE_UPDATED",
1912
+ # occurred_at: Time.parse("2021-09-17T21:49:55.737000+00:00"),
1913
+ # triggered_by: "APPCONFIG",
1914
+ # },
1915
+ # {
1916
+ # description: "Configuration available to 25.00% of clients",
1917
+ # event_type: "PERCENTAGE_UPDATED",
1918
+ # occurred_at: Time.parse("2021-09-17T21:46:55.187000+00:00"),
1919
+ # triggered_by: "APPCONFIG",
1920
+ # },
1921
+ # {
1922
+ # description: "Deployment started",
1923
+ # event_type: "DEPLOYMENT_STARTED",
1924
+ # occurred_at: Time.parse("2021-09-17T21:43:54.205000+00:00"),
1925
+ # triggered_by: "USER",
1926
+ # },
1927
+ # ],
1928
+ # final_bake_time_in_minutes: 0,
1929
+ # growth_factor: 25,
1930
+ # growth_type: "LINEAR",
1931
+ # percentage_complete: 100,
1932
+ # started_at: Time.parse("2021-09-17T21:43:54.205000+00:00"),
1933
+ # state: "COMPLETE",
1934
+ # }
1055
1935
  #
1056
1936
  # @example Request syntax with placeholder values
1057
1937
  #
@@ -1076,15 +1956,37 @@ module Aws::AppConfig
1076
1956
  # resp.growth_type #=> String, one of "LINEAR", "EXPONENTIAL"
1077
1957
  # resp.growth_factor #=> Float
1078
1958
  # resp.final_bake_time_in_minutes #=> Integer
1079
- # resp.state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK"
1959
+ # resp.state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
1080
1960
  # resp.event_log #=> Array
1081
- # resp.event_log[0].event_type #=> String, one of "PERCENTAGE_UPDATED", "ROLLBACK_STARTED", "ROLLBACK_COMPLETED", "BAKE_TIME_STARTED", "DEPLOYMENT_STARTED", "DEPLOYMENT_COMPLETED"
1961
+ # resp.event_log[0].event_type #=> String, one of "PERCENTAGE_UPDATED", "ROLLBACK_STARTED", "ROLLBACK_COMPLETED", "BAKE_TIME_STARTED", "DEPLOYMENT_STARTED", "DEPLOYMENT_COMPLETED", "REVERT_COMPLETED"
1082
1962
  # resp.event_log[0].triggered_by #=> String, one of "USER", "APPCONFIG", "CLOUDWATCH_ALARM", "INTERNAL_ERROR"
1083
1963
  # resp.event_log[0].description #=> String
1964
+ # resp.event_log[0].action_invocations #=> Array
1965
+ # resp.event_log[0].action_invocations[0].extension_identifier #=> String
1966
+ # resp.event_log[0].action_invocations[0].action_name #=> String
1967
+ # resp.event_log[0].action_invocations[0].uri #=> String
1968
+ # resp.event_log[0].action_invocations[0].role_arn #=> String
1969
+ # resp.event_log[0].action_invocations[0].error_message #=> String
1970
+ # resp.event_log[0].action_invocations[0].error_code #=> String
1971
+ # resp.event_log[0].action_invocations[0].invocation_id #=> String
1084
1972
  # resp.event_log[0].occurred_at #=> Time
1085
1973
  # resp.percentage_complete #=> Float
1086
1974
  # resp.started_at #=> Time
1087
1975
  # resp.completed_at #=> Time
1976
+ # resp.applied_extensions #=> Array
1977
+ # resp.applied_extensions[0].extension_id #=> String
1978
+ # resp.applied_extensions[0].extension_association_id #=> String
1979
+ # resp.applied_extensions[0].version_number #=> Integer
1980
+ # resp.applied_extensions[0].parameters #=> Hash
1981
+ # resp.applied_extensions[0].parameters["ExtensionOrParameterName"] #=> String
1982
+ # resp.kms_key_arn #=> String
1983
+ # resp.kms_key_identifier #=> String
1984
+ # resp.version_label #=> String
1985
+ #
1986
+ #
1987
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1988
+ #
1989
+ # * deployment_complete
1088
1990
  #
1089
1991
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeployment AWS API Documentation
1090
1992
  #
@@ -1095,9 +1997,9 @@ module Aws::AppConfig
1095
1997
  req.send_request(options)
1096
1998
  end
1097
1999
 
1098
- # Retrieve information about a deployment strategy. A deployment
2000
+ # Retrieves information about a deployment strategy. A deployment
1099
2001
  # strategy defines important criteria for rolling out your configuration
1100
- # to the designated targets. A deployment strategy includes: the overall
2002
+ # to the designated targets. A deployment strategy includes the overall
1101
2003
  # duration required, a percentage of targets to receive the deployment
1102
2004
  # during each interval, an algorithm that defines how percentage grows,
1103
2005
  # and bake time.
@@ -1116,6 +2018,26 @@ module Aws::AppConfig
1116
2018
  # * {Types::DeploymentStrategy#final_bake_time_in_minutes #final_bake_time_in_minutes} => Integer
1117
2019
  # * {Types::DeploymentStrategy#replicate_to #replicate_to} => String
1118
2020
  #
2021
+ #
2022
+ # @example Example: To retrieve details of a deployment strategy
2023
+ #
2024
+ # # The following get-deployment-strategy example lists the details of the specified deployment strategy.
2025
+ #
2026
+ # resp = client.get_deployment_strategy({
2027
+ # deployment_strategy_id: "1225qzk",
2028
+ # })
2029
+ #
2030
+ # resp.to_h outputs the following:
2031
+ # {
2032
+ # deployment_duration_in_minutes: 15,
2033
+ # final_bake_time_in_minutes: 0,
2034
+ # growth_factor: 25,
2035
+ # growth_type: "LINEAR",
2036
+ # id: "1225qzk",
2037
+ # name: "Example-Deployment",
2038
+ # replicate_to: "SSM_DOCUMENT",
2039
+ # }
2040
+ #
1119
2041
  # @example Request syntax with placeholder values
1120
2042
  #
1121
2043
  # resp = client.get_deployment_strategy({
@@ -1142,7 +2064,7 @@ module Aws::AppConfig
1142
2064
  req.send_request(options)
1143
2065
  end
1144
2066
 
1145
- # Retrieve information about an environment. An environment is a logical
2067
+ # Retrieves information about an environment. An environment is a
1146
2068
  # deployment group of AppConfig applications, such as applications in a
1147
2069
  # `Production` environment or in an `EU_Region` environment. Each
1148
2070
  # configuration deployment targets an environment. You can enable one or
@@ -1154,7 +2076,7 @@ module Aws::AppConfig
1154
2076
  # get.
1155
2077
  #
1156
2078
  # @option params [required, String] :environment_id
1157
- # The ID of the environment you wnat to get.
2079
+ # The ID of the environment that you want to get.
1158
2080
  #
1159
2081
  # @return [Types::Environment] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1160
2082
  #
@@ -1165,6 +2087,24 @@ module Aws::AppConfig
1165
2087
  # * {Types::Environment#state #state} => String
1166
2088
  # * {Types::Environment#monitors #monitors} => Array&lt;Types::Monitor&gt;
1167
2089
  #
2090
+ #
2091
+ # @example Example: To retrieve environment details
2092
+ #
2093
+ # # The following get-environment example returns the details and state of the specified environment.
2094
+ #
2095
+ # resp = client.get_environment({
2096
+ # application_id: "339ohji",
2097
+ # environment_id: "54j1r29",
2098
+ # })
2099
+ #
2100
+ # resp.to_h outputs the following:
2101
+ # {
2102
+ # application_id: "339ohji",
2103
+ # id: "54j1r29",
2104
+ # name: "Example-Environment",
2105
+ # state: "READY_FOR_DEPLOYMENT",
2106
+ # }
2107
+ #
1168
2108
  # @example Request syntax with placeholder values
1169
2109
  #
1170
2110
  # resp = client.get_environment({
@@ -1178,11 +2118,16 @@ module Aws::AppConfig
1178
2118
  # resp.id #=> String
1179
2119
  # resp.name #=> String
1180
2120
  # resp.description #=> String
1181
- # resp.state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK"
2121
+ # resp.state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
1182
2122
  # resp.monitors #=> Array
1183
2123
  # resp.monitors[0].alarm_arn #=> String
1184
2124
  # resp.monitors[0].alarm_role_arn #=> String
1185
2125
  #
2126
+ #
2127
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
2128
+ #
2129
+ # * environment_ready_for_deployment
2130
+ #
1186
2131
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetEnvironment AWS API Documentation
1187
2132
  #
1188
2133
  # @overload get_environment(params = {})
@@ -1192,7 +2137,105 @@ module Aws::AppConfig
1192
2137
  req.send_request(options)
1193
2138
  end
1194
2139
 
1195
- # Get information about a specific configuration version.
2140
+ # Returns information about an AppConfig extension.
2141
+ #
2142
+ # @option params [required, String] :extension_identifier
2143
+ # The name, the ID, or the Amazon Resource Name (ARN) of the extension.
2144
+ #
2145
+ # @option params [Integer] :version_number
2146
+ # The extension version number. If no version number was defined,
2147
+ # AppConfig uses the highest version.
2148
+ #
2149
+ # @return [Types::Extension] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2150
+ #
2151
+ # * {Types::Extension#id #id} => String
2152
+ # * {Types::Extension#name #name} => String
2153
+ # * {Types::Extension#version_number #version_number} => Integer
2154
+ # * {Types::Extension#arn #arn} => String
2155
+ # * {Types::Extension#description #description} => String
2156
+ # * {Types::Extension#actions #actions} => Hash&lt;String,Array&lt;Types::Action&gt;&gt;
2157
+ # * {Types::Extension#parameters #parameters} => Hash&lt;String,Types::Parameter&gt;
2158
+ #
2159
+ # @example Request syntax with placeholder values
2160
+ #
2161
+ # resp = client.get_extension({
2162
+ # extension_identifier: "Identifier", # required
2163
+ # version_number: 1,
2164
+ # })
2165
+ #
2166
+ # @example Response structure
2167
+ #
2168
+ # resp.id #=> String
2169
+ # resp.name #=> String
2170
+ # resp.version_number #=> Integer
2171
+ # resp.arn #=> String
2172
+ # resp.description #=> String
2173
+ # resp.actions #=> Hash
2174
+ # resp.actions["ActionPoint"] #=> Array
2175
+ # resp.actions["ActionPoint"][0].name #=> String
2176
+ # resp.actions["ActionPoint"][0].description #=> String
2177
+ # resp.actions["ActionPoint"][0].uri #=> String
2178
+ # resp.actions["ActionPoint"][0].role_arn #=> String
2179
+ # resp.parameters #=> Hash
2180
+ # resp.parameters["ExtensionOrParameterName"].description #=> String
2181
+ # resp.parameters["ExtensionOrParameterName"].required #=> Boolean
2182
+ # resp.parameters["ExtensionOrParameterName"].dynamic #=> Boolean
2183
+ #
2184
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetExtension AWS API Documentation
2185
+ #
2186
+ # @overload get_extension(params = {})
2187
+ # @param [Hash] params ({})
2188
+ def get_extension(params = {}, options = {})
2189
+ req = build_request(:get_extension, params)
2190
+ req.send_request(options)
2191
+ end
2192
+
2193
+ # Returns information about an AppConfig extension association. For more
2194
+ # information about extensions and associations, see [Extending
2195
+ # workflows][1] in the *AppConfig User Guide*.
2196
+ #
2197
+ #
2198
+ #
2199
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
2200
+ #
2201
+ # @option params [required, String] :extension_association_id
2202
+ # The extension association ID to get.
2203
+ #
2204
+ # @return [Types::ExtensionAssociation] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2205
+ #
2206
+ # * {Types::ExtensionAssociation#id #id} => String
2207
+ # * {Types::ExtensionAssociation#extension_arn #extension_arn} => String
2208
+ # * {Types::ExtensionAssociation#resource_arn #resource_arn} => String
2209
+ # * {Types::ExtensionAssociation#arn #arn} => String
2210
+ # * {Types::ExtensionAssociation#parameters #parameters} => Hash&lt;String,String&gt;
2211
+ # * {Types::ExtensionAssociation#extension_version_number #extension_version_number} => Integer
2212
+ #
2213
+ # @example Request syntax with placeholder values
2214
+ #
2215
+ # resp = client.get_extension_association({
2216
+ # extension_association_id: "Id", # required
2217
+ # })
2218
+ #
2219
+ # @example Response structure
2220
+ #
2221
+ # resp.id #=> String
2222
+ # resp.extension_arn #=> String
2223
+ # resp.resource_arn #=> String
2224
+ # resp.arn #=> String
2225
+ # resp.parameters #=> Hash
2226
+ # resp.parameters["ExtensionOrParameterName"] #=> String
2227
+ # resp.extension_version_number #=> Integer
2228
+ #
2229
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetExtensionAssociation AWS API Documentation
2230
+ #
2231
+ # @overload get_extension_association(params = {})
2232
+ # @param [Hash] params ({})
2233
+ def get_extension_association(params = {}, options = {})
2234
+ req = build_request(:get_extension_association, params)
2235
+ req.send_request(options)
2236
+ end
2237
+
2238
+ # Retrieves information about a specific configuration version.
1196
2239
  #
1197
2240
  # @option params [required, String] :application_id
1198
2241
  # The application ID.
@@ -1211,6 +2254,28 @@ module Aws::AppConfig
1211
2254
  # * {Types::HostedConfigurationVersion#description #description} => String
1212
2255
  # * {Types::HostedConfigurationVersion#content #content} => String
1213
2256
  # * {Types::HostedConfigurationVersion#content_type #content_type} => String
2257
+ # * {Types::HostedConfigurationVersion#version_label #version_label} => String
2258
+ # * {Types::HostedConfigurationVersion#kms_key_arn #kms_key_arn} => String
2259
+ #
2260
+ #
2261
+ # @example Example: To retrieve hosted configuration details
2262
+ #
2263
+ # # The following get-hosted-configuration-version example retrieves the configuration details of the AWS AppConfig hosted
2264
+ # # configuration.
2265
+ #
2266
+ # resp = client.get_hosted_configuration_version({
2267
+ # application_id: "339ohji",
2268
+ # configuration_profile_id: "ur8hx2f",
2269
+ # version_number: 1,
2270
+ # })
2271
+ #
2272
+ # resp.to_h outputs the following:
2273
+ # {
2274
+ # application_id: "339ohji",
2275
+ # configuration_profile_id: "ur8hx2f",
2276
+ # content_type: "application/json",
2277
+ # version_number: 1,
2278
+ # }
1214
2279
  #
1215
2280
  # @example Request syntax with placeholder values
1216
2281
  #
@@ -1228,6 +2293,8 @@ module Aws::AppConfig
1228
2293
  # resp.description #=> String
1229
2294
  # resp.content #=> String
1230
2295
  # resp.content_type #=> String
2296
+ # resp.version_label #=> String
2297
+ # resp.kms_key_arn #=> String
1231
2298
  #
1232
2299
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetHostedConfigurationVersion AWS API Documentation
1233
2300
  #
@@ -1238,7 +2305,7 @@ module Aws::AppConfig
1238
2305
  req.send_request(options)
1239
2306
  end
1240
2307
 
1241
- # List all applications in your AWS account.
2308
+ # Lists all applications in your Amazon Web Services account.
1242
2309
  #
1243
2310
  # @option params [Integer] :max_results
1244
2311
  # The maximum number of items to return for this call. The call also
@@ -1246,8 +2313,12 @@ module Aws::AppConfig
1246
2313
  # next set of results.
1247
2314
  #
1248
2315
  # @option params [String] :next_token
1249
- # A token to start the list. Use this token to get the next set of
1250
- # results.
2316
+ # A token to start the list. Next token is a pagination token generated
2317
+ # by AppConfig to describe what page the previous List call ended on.
2318
+ # For the first List request, the nextToken should not be set. On
2319
+ # subsequent calls, the nextToken parameter should be set to the
2320
+ # previous responses nextToken value. Use this token to get the next set
2321
+ # of results.
1251
2322
  #
1252
2323
  # @return [Types::Applications] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1253
2324
  #
@@ -1256,6 +2327,29 @@ module Aws::AppConfig
1256
2327
  #
1257
2328
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1258
2329
  #
2330
+ #
2331
+ # @example Example: To list the available applications
2332
+ #
2333
+ # # The following list-applications example lists the available applications in your AWS account.
2334
+ #
2335
+ # resp = client.list_applications({
2336
+ # })
2337
+ #
2338
+ # resp.to_h outputs the following:
2339
+ # {
2340
+ # items: [
2341
+ # {
2342
+ # description: "An application used for creating an example.",
2343
+ # id: "339ohji",
2344
+ # name: "test-application",
2345
+ # },
2346
+ # {
2347
+ # id: "rwalwu7",
2348
+ # name: "Test-Application",
2349
+ # },
2350
+ # ],
2351
+ # }
2352
+ #
1259
2353
  # @example Request syntax with placeholder values
1260
2354
  #
1261
2355
  # resp = client.list_applications({
@@ -1294,6 +2388,11 @@ module Aws::AppConfig
1294
2388
  # A token to start the list. Use this token to get the next set of
1295
2389
  # results.
1296
2390
  #
2391
+ # @option params [String] :type
2392
+ # A filter based on the type of configurations that the configuration
2393
+ # profile contains. A configuration can be a feature flag or a freeform
2394
+ # configuration.
2395
+ #
1297
2396
  # @return [Types::ConfigurationProfiles] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1298
2397
  #
1299
2398
  # * {Types::ConfigurationProfiles#items #items} => Array&lt;Types::ConfigurationProfileSummary&gt;
@@ -1301,12 +2400,35 @@ module Aws::AppConfig
1301
2400
  #
1302
2401
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1303
2402
  #
2403
+ #
2404
+ # @example Example: To list the available configuration profiles
2405
+ #
2406
+ # # The following list-configuration-profiles example lists the available configuration profiles for the specified
2407
+ # # application.
2408
+ #
2409
+ # resp = client.list_configuration_profiles({
2410
+ # application_id: "339ohji",
2411
+ # })
2412
+ #
2413
+ # resp.to_h outputs the following:
2414
+ # {
2415
+ # items: [
2416
+ # {
2417
+ # application_id: "339ohji",
2418
+ # id: "ur8hx2f",
2419
+ # location_uri: "ssm-parameter://Example-Parameter",
2420
+ # name: "Example-Configuration-Profile",
2421
+ # },
2422
+ # ],
2423
+ # }
2424
+ #
1304
2425
  # @example Request syntax with placeholder values
1305
2426
  #
1306
2427
  # resp = client.list_configuration_profiles({
1307
2428
  # application_id: "Id", # required
1308
2429
  # max_results: 1,
1309
2430
  # next_token: "NextToken",
2431
+ # type: "ConfigurationProfileType",
1310
2432
  # })
1311
2433
  #
1312
2434
  # @example Response structure
@@ -1318,6 +2440,7 @@ module Aws::AppConfig
1318
2440
  # resp.items[0].location_uri #=> String
1319
2441
  # resp.items[0].validator_types #=> Array
1320
2442
  # resp.items[0].validator_types[0] #=> String, one of "JSON_SCHEMA", "LAMBDA"
2443
+ # resp.items[0].type #=> String
1321
2444
  # resp.next_token #=> String
1322
2445
  #
1323
2446
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListConfigurationProfiles AWS API Documentation
@@ -1329,7 +2452,7 @@ module Aws::AppConfig
1329
2452
  req.send_request(options)
1330
2453
  end
1331
2454
 
1332
- # List deployment strategies.
2455
+ # Lists deployment strategies.
1333
2456
  #
1334
2457
  # @option params [Integer] :max_results
1335
2458
  # The maximum number of items to return for this call. The call also
@@ -1347,6 +2470,29 @@ module Aws::AppConfig
1347
2470
  #
1348
2471
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1349
2472
  #
2473
+ #
2474
+ # @example Example: To list the available deployment strategies
2475
+ #
2476
+ # # The following list-deployment-strategies example lists the available deployment strategies in your AWS account.
2477
+ #
2478
+ # resp = client.list_deployment_strategies({
2479
+ # })
2480
+ #
2481
+ # resp.to_h outputs the following:
2482
+ # {
2483
+ # items: [
2484
+ # {
2485
+ # deployment_duration_in_minutes: 15,
2486
+ # final_bake_time_in_minutes: 0,
2487
+ # growth_factor: 25,
2488
+ # growth_type: "LINEAR",
2489
+ # id: "1225qzk",
2490
+ # name: "Example-Deployment",
2491
+ # replicate_to: "SSM_DOCUMENT",
2492
+ # },
2493
+ # ],
2494
+ # }
2495
+ #
1350
2496
  # @example Request syntax with placeholder values
1351
2497
  #
1352
2498
  # resp = client.list_deployment_strategies({
@@ -1367,22 +2513,196 @@ module Aws::AppConfig
1367
2513
  # resp.items[0].replicate_to #=> String, one of "NONE", "SSM_DOCUMENT"
1368
2514
  # resp.next_token #=> String
1369
2515
  #
1370
- # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeploymentStrategies AWS API Documentation
2516
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeploymentStrategies AWS API Documentation
2517
+ #
2518
+ # @overload list_deployment_strategies(params = {})
2519
+ # @param [Hash] params ({})
2520
+ def list_deployment_strategies(params = {}, options = {})
2521
+ req = build_request(:list_deployment_strategies, params)
2522
+ req.send_request(options)
2523
+ end
2524
+
2525
+ # Lists the deployments for an environment in descending deployment
2526
+ # number order.
2527
+ #
2528
+ # @option params [required, String] :application_id
2529
+ # The application ID.
2530
+ #
2531
+ # @option params [required, String] :environment_id
2532
+ # The environment ID.
2533
+ #
2534
+ # @option params [Integer] :max_results
2535
+ # The maximum number of items that may be returned for this call. If
2536
+ # there are items that have not yet been returned, the response will
2537
+ # include a non-null `NextToken` that you can provide in a subsequent
2538
+ # call to get the next set of results.
2539
+ #
2540
+ # @option params [String] :next_token
2541
+ # The token returned by a prior call to this operation indicating the
2542
+ # next set of results to be returned. If not specified, the operation
2543
+ # will return the first set of results.
2544
+ #
2545
+ # @return [Types::Deployments] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2546
+ #
2547
+ # * {Types::Deployments#items #items} => Array&lt;Types::DeploymentSummary&gt;
2548
+ # * {Types::Deployments#next_token #next_token} => String
2549
+ #
2550
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2551
+ #
2552
+ #
2553
+ # @example Example: To list the available deployments
2554
+ #
2555
+ # # The following list-deployments example lists the available deployments in your AWS account for the specified application
2556
+ # # and environment.
2557
+ #
2558
+ # resp = client.list_deployments({
2559
+ # application_id: "339ohji",
2560
+ # environment_id: "54j1r29",
2561
+ # })
2562
+ #
2563
+ # resp.to_h outputs the following:
2564
+ # {
2565
+ # items: [
2566
+ # {
2567
+ # completed_at: Time.parse("2021-09-17T21:59:03.888000+00:00"),
2568
+ # configuration_name: "Example-Configuration-Profile",
2569
+ # configuration_version: "1",
2570
+ # deployment_duration_in_minutes: 15,
2571
+ # deployment_number: 1,
2572
+ # final_bake_time_in_minutes: 0,
2573
+ # growth_factor: 25,
2574
+ # growth_type: "LINEAR",
2575
+ # percentage_complete: 100,
2576
+ # started_at: Time.parse("2021-09-17T21:43:54.205000+00:00"),
2577
+ # state: "COMPLETE",
2578
+ # },
2579
+ # ],
2580
+ # }
2581
+ #
2582
+ # @example Request syntax with placeholder values
2583
+ #
2584
+ # resp = client.list_deployments({
2585
+ # application_id: "Id", # required
2586
+ # environment_id: "Id", # required
2587
+ # max_results: 1,
2588
+ # next_token: "NextToken",
2589
+ # })
2590
+ #
2591
+ # @example Response structure
2592
+ #
2593
+ # resp.items #=> Array
2594
+ # resp.items[0].deployment_number #=> Integer
2595
+ # resp.items[0].configuration_name #=> String
2596
+ # resp.items[0].configuration_version #=> String
2597
+ # resp.items[0].deployment_duration_in_minutes #=> Integer
2598
+ # resp.items[0].growth_type #=> String, one of "LINEAR", "EXPONENTIAL"
2599
+ # resp.items[0].growth_factor #=> Float
2600
+ # resp.items[0].final_bake_time_in_minutes #=> Integer
2601
+ # resp.items[0].state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
2602
+ # resp.items[0].percentage_complete #=> Float
2603
+ # resp.items[0].started_at #=> Time
2604
+ # resp.items[0].completed_at #=> Time
2605
+ # resp.items[0].version_label #=> String
2606
+ # resp.next_token #=> String
2607
+ #
2608
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeployments AWS API Documentation
2609
+ #
2610
+ # @overload list_deployments(params = {})
2611
+ # @param [Hash] params ({})
2612
+ def list_deployments(params = {}, options = {})
2613
+ req = build_request(:list_deployments, params)
2614
+ req.send_request(options)
2615
+ end
2616
+
2617
+ # Lists the environments for an application.
2618
+ #
2619
+ # @option params [required, String] :application_id
2620
+ # The application ID.
2621
+ #
2622
+ # @option params [Integer] :max_results
2623
+ # The maximum number of items to return for this call. The call also
2624
+ # returns a token that you can specify in a subsequent call to get the
2625
+ # next set of results.
2626
+ #
2627
+ # @option params [String] :next_token
2628
+ # A token to start the list. Use this token to get the next set of
2629
+ # results.
2630
+ #
2631
+ # @return [Types::Environments] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2632
+ #
2633
+ # * {Types::Environments#items #items} => Array&lt;Types::Environment&gt;
2634
+ # * {Types::Environments#next_token #next_token} => String
2635
+ #
2636
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2637
+ #
2638
+ #
2639
+ # @example Example: To list the available environments
2640
+ #
2641
+ # # The following list-environments example lists the available environments in your AWS account for the specified
2642
+ # # application.
2643
+ #
2644
+ # resp = client.list_environments({
2645
+ # application_id: "339ohji",
2646
+ # })
2647
+ #
2648
+ # resp.to_h outputs the following:
2649
+ # {
2650
+ # items: [
2651
+ # {
2652
+ # application_id: "339ohji",
2653
+ # id: "54j1r29",
2654
+ # name: "Example-Environment",
2655
+ # state: "READY_FOR_DEPLOYMENT",
2656
+ # },
2657
+ # ],
2658
+ # }
2659
+ #
2660
+ # @example Request syntax with placeholder values
2661
+ #
2662
+ # resp = client.list_environments({
2663
+ # application_id: "Id", # required
2664
+ # max_results: 1,
2665
+ # next_token: "NextToken",
2666
+ # })
2667
+ #
2668
+ # @example Response structure
2669
+ #
2670
+ # resp.items #=> Array
2671
+ # resp.items[0].application_id #=> String
2672
+ # resp.items[0].id #=> String
2673
+ # resp.items[0].name #=> String
2674
+ # resp.items[0].description #=> String
2675
+ # resp.items[0].state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
2676
+ # resp.items[0].monitors #=> Array
2677
+ # resp.items[0].monitors[0].alarm_arn #=> String
2678
+ # resp.items[0].monitors[0].alarm_role_arn #=> String
2679
+ # resp.next_token #=> String
2680
+ #
2681
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListEnvironments AWS API Documentation
1371
2682
  #
1372
- # @overload list_deployment_strategies(params = {})
2683
+ # @overload list_environments(params = {})
1373
2684
  # @param [Hash] params ({})
1374
- def list_deployment_strategies(params = {}, options = {})
1375
- req = build_request(:list_deployment_strategies, params)
2685
+ def list_environments(params = {}, options = {})
2686
+ req = build_request(:list_environments, params)
1376
2687
  req.send_request(options)
1377
2688
  end
1378
2689
 
1379
- # Lists the deployments for an environment.
2690
+ # Lists all AppConfig extension associations in the account. For more
2691
+ # information about extensions and associations, see [Extending
2692
+ # workflows][1] in the *AppConfig User Guide*.
1380
2693
  #
1381
- # @option params [required, String] :application_id
1382
- # The application ID.
1383
2694
  #
1384
- # @option params [required, String] :environment_id
1385
- # The environment ID.
2695
+ #
2696
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
2697
+ #
2698
+ # @option params [String] :resource_identifier
2699
+ # The ARN of an application, configuration profile, or environment.
2700
+ #
2701
+ # @option params [String] :extension_identifier
2702
+ # The name, the ID, or the Amazon Resource Name (ARN) of the extension.
2703
+ #
2704
+ # @option params [Integer] :extension_version_number
2705
+ # The version number for the extension defined in the association.
1386
2706
  #
1387
2707
  # @option params [Integer] :max_results
1388
2708
  # The maximum number of items to return for this call. The call also
@@ -1391,20 +2711,21 @@ module Aws::AppConfig
1391
2711
  #
1392
2712
  # @option params [String] :next_token
1393
2713
  # A token to start the list. Use this token to get the next set of
1394
- # results.
2714
+ # results or pass null to get the first set of results.
1395
2715
  #
1396
- # @return [Types::Deployments] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2716
+ # @return [Types::ExtensionAssociations] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1397
2717
  #
1398
- # * {Types::Deployments#items #items} => Array&lt;Types::DeploymentSummary&gt;
1399
- # * {Types::Deployments#next_token #next_token} => String
2718
+ # * {Types::ExtensionAssociations#items #items} => Array&lt;Types::ExtensionAssociationSummary&gt;
2719
+ # * {Types::ExtensionAssociations#next_token #next_token} => String
1400
2720
  #
1401
2721
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1402
2722
  #
1403
2723
  # @example Request syntax with placeholder values
1404
2724
  #
1405
- # resp = client.list_deployments({
1406
- # application_id: "Id", # required
1407
- # environment_id: "Id", # required
2725
+ # resp = client.list_extension_associations({
2726
+ # resource_identifier: "Arn",
2727
+ # extension_identifier: "Identifier",
2728
+ # extension_version_number: 1,
1408
2729
  # max_results: 1,
1409
2730
  # next_token: "NextToken",
1410
2731
  # })
@@ -1412,32 +2733,27 @@ module Aws::AppConfig
1412
2733
  # @example Response structure
1413
2734
  #
1414
2735
  # resp.items #=> Array
1415
- # resp.items[0].deployment_number #=> Integer
1416
- # resp.items[0].configuration_name #=> String
1417
- # resp.items[0].configuration_version #=> String
1418
- # resp.items[0].deployment_duration_in_minutes #=> Integer
1419
- # resp.items[0].growth_type #=> String, one of "LINEAR", "EXPONENTIAL"
1420
- # resp.items[0].growth_factor #=> Float
1421
- # resp.items[0].final_bake_time_in_minutes #=> Integer
1422
- # resp.items[0].state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK"
1423
- # resp.items[0].percentage_complete #=> Float
1424
- # resp.items[0].started_at #=> Time
1425
- # resp.items[0].completed_at #=> Time
2736
+ # resp.items[0].id #=> String
2737
+ # resp.items[0].extension_arn #=> String
2738
+ # resp.items[0].resource_arn #=> String
1426
2739
  # resp.next_token #=> String
1427
2740
  #
1428
- # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListDeployments AWS API Documentation
2741
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListExtensionAssociations AWS API Documentation
1429
2742
  #
1430
- # @overload list_deployments(params = {})
2743
+ # @overload list_extension_associations(params = {})
1431
2744
  # @param [Hash] params ({})
1432
- def list_deployments(params = {}, options = {})
1433
- req = build_request(:list_deployments, params)
2745
+ def list_extension_associations(params = {}, options = {})
2746
+ req = build_request(:list_extension_associations, params)
1434
2747
  req.send_request(options)
1435
2748
  end
1436
2749
 
1437
- # List the environments for an application.
2750
+ # Lists all custom and Amazon Web Services authored AppConfig extensions
2751
+ # in the account. For more information about extensions, see [Extending
2752
+ # workflows][1] in the *AppConfig User Guide*.
2753
+ #
1438
2754
  #
1439
- # @option params [required, String] :application_id
1440
- # The application ID.
2755
+ #
2756
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
1441
2757
  #
1442
2758
  # @option params [Integer] :max_results
1443
2759
  # The maximum number of items to return for this call. The call also
@@ -1448,44 +2764,44 @@ module Aws::AppConfig
1448
2764
  # A token to start the list. Use this token to get the next set of
1449
2765
  # results.
1450
2766
  #
1451
- # @return [Types::Environments] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2767
+ # @option params [String] :name
2768
+ # The extension name.
1452
2769
  #
1453
- # * {Types::Environments#items #items} => Array&lt;Types::Environment&gt;
1454
- # * {Types::Environments#next_token #next_token} => String
2770
+ # @return [Types::Extensions] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2771
+ #
2772
+ # * {Types::Extensions#items #items} => Array&lt;Types::ExtensionSummary&gt;
2773
+ # * {Types::Extensions#next_token #next_token} => String
1455
2774
  #
1456
2775
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1457
2776
  #
1458
2777
  # @example Request syntax with placeholder values
1459
2778
  #
1460
- # resp = client.list_environments({
1461
- # application_id: "Id", # required
2779
+ # resp = client.list_extensions({
1462
2780
  # max_results: 1,
1463
2781
  # next_token: "NextToken",
2782
+ # name: "QueryName",
1464
2783
  # })
1465
2784
  #
1466
2785
  # @example Response structure
1467
2786
  #
1468
2787
  # resp.items #=> Array
1469
- # resp.items[0].application_id #=> String
1470
2788
  # resp.items[0].id #=> String
1471
2789
  # resp.items[0].name #=> String
2790
+ # resp.items[0].version_number #=> Integer
2791
+ # resp.items[0].arn #=> String
1472
2792
  # resp.items[0].description #=> String
1473
- # resp.items[0].state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK"
1474
- # resp.items[0].monitors #=> Array
1475
- # resp.items[0].monitors[0].alarm_arn #=> String
1476
- # resp.items[0].monitors[0].alarm_role_arn #=> String
1477
2793
  # resp.next_token #=> String
1478
2794
  #
1479
- # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListEnvironments AWS API Documentation
2795
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListExtensions AWS API Documentation
1480
2796
  #
1481
- # @overload list_environments(params = {})
2797
+ # @overload list_extensions(params = {})
1482
2798
  # @param [Hash] params ({})
1483
- def list_environments(params = {}, options = {})
1484
- req = build_request(:list_environments, params)
2799
+ def list_extensions(params = {}, options = {})
2800
+ req = build_request(:list_extensions, params)
1485
2801
  req.send_request(options)
1486
2802
  end
1487
2803
 
1488
- # View a list of configurations stored in the AppConfig configuration
2804
+ # Lists configurations stored in the AppConfig hosted configuration
1489
2805
  # store by version.
1490
2806
  #
1491
2807
  # @option params [required, String] :application_id
@@ -1495,14 +2811,22 @@ module Aws::AppConfig
1495
2811
  # The configuration profile ID.
1496
2812
  #
1497
2813
  # @option params [Integer] :max_results
1498
- # The maximum number of items to return for this call. The call also
1499
- # returns a token that you can specify in a subsequent call to get the
1500
- # next set of results.
2814
+ # The maximum number of items to return for this call. If `MaxResults`
2815
+ # is not provided in the call, AppConfig returns the maximum of 50. The
2816
+ # call also returns a token that you can specify in a subsequent call to
2817
+ # get the next set of results.
1501
2818
  #
1502
2819
  # @option params [String] :next_token
1503
2820
  # A token to start the list. Use this token to get the next set of
1504
2821
  # results.
1505
2822
  #
2823
+ # @option params [String] :version_label
2824
+ # An optional filter that can be used to specify the version label of an
2825
+ # AppConfig hosted configuration version. This parameter supports
2826
+ # filtering by prefix using a wildcard, for example "v2*". If you
2827
+ # don't specify an asterisk at the end of the value, only an exact
2828
+ # match is returned.
2829
+ #
1506
2830
  # @return [Types::HostedConfigurationVersions] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1507
2831
  #
1508
2832
  # * {Types::HostedConfigurationVersions#items #items} => Array&lt;Types::HostedConfigurationVersionSummary&gt;
@@ -1510,6 +2834,29 @@ module Aws::AppConfig
1510
2834
  #
1511
2835
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1512
2836
  #
2837
+ #
2838
+ # @example Example: To list the available hosted configuration versions
2839
+ #
2840
+ # # The following list-hosted-configuration-versions example lists the configurations versions hosted in the AWS AppConfig
2841
+ # # hosted configuration store for the specified application and configuration profile.
2842
+ #
2843
+ # resp = client.list_hosted_configuration_versions({
2844
+ # application_id: "339ohji",
2845
+ # configuration_profile_id: "ur8hx2f",
2846
+ # })
2847
+ #
2848
+ # resp.to_h outputs the following:
2849
+ # {
2850
+ # items: [
2851
+ # {
2852
+ # application_id: "339ohji",
2853
+ # configuration_profile_id: "ur8hx2f",
2854
+ # content_type: "application/json",
2855
+ # version_number: 1,
2856
+ # },
2857
+ # ],
2858
+ # }
2859
+ #
1513
2860
  # @example Request syntax with placeholder values
1514
2861
  #
1515
2862
  # resp = client.list_hosted_configuration_versions({
@@ -1517,6 +2864,7 @@ module Aws::AppConfig
1517
2864
  # configuration_profile_id: "Id", # required
1518
2865
  # max_results: 1,
1519
2866
  # next_token: "NextToken",
2867
+ # version_label: "QueryName",
1520
2868
  # })
1521
2869
  #
1522
2870
  # @example Response structure
@@ -1527,6 +2875,8 @@ module Aws::AppConfig
1527
2875
  # resp.items[0].version_number #=> Integer
1528
2876
  # resp.items[0].description #=> String
1529
2877
  # resp.items[0].content_type #=> String
2878
+ # resp.items[0].version_label #=> String
2879
+ # resp.items[0].kms_key_arn #=> String
1530
2880
  # resp.next_token #=> String
1531
2881
  #
1532
2882
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/ListHostedConfigurationVersions AWS API Documentation
@@ -1547,6 +2897,22 @@ module Aws::AppConfig
1547
2897
  #
1548
2898
  # * {Types::ResourceTags#tags #tags} => Hash&lt;String,String&gt;
1549
2899
  #
2900
+ #
2901
+ # @example Example: To list the tags of an application
2902
+ #
2903
+ # # The following list-tags-for-resource example lists the tags of a specified application.
2904
+ #
2905
+ # resp = client.list_tags_for_resource({
2906
+ # resource_arn: "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
2907
+ # })
2908
+ #
2909
+ # resp.to_h outputs the following:
2910
+ # {
2911
+ # tags: {
2912
+ # "group1" => "1",
2913
+ # },
2914
+ # }
2915
+ #
1550
2916
  # @example Request syntax with placeholder values
1551
2917
  #
1552
2918
  # resp = client.list_tags_for_resource({
@@ -1582,7 +2948,10 @@ module Aws::AppConfig
1582
2948
  # The configuration profile ID.
1583
2949
  #
1584
2950
  # @option params [required, String] :configuration_version
1585
- # The configuration version to deploy.
2951
+ # The configuration version to deploy. If deploying an AppConfig hosted
2952
+ # configuration version, you can specify either the version number or
2953
+ # version label. For all other configurations, you must specify the
2954
+ # version number.
1586
2955
  #
1587
2956
  # @option params [String] :description
1588
2957
  # A description of the deployment.
@@ -1592,6 +2961,15 @@ module Aws::AppConfig
1592
2961
  # categorize your AppConfig resources. Each tag consists of a key and an
1593
2962
  # optional value, both of which you define.
1594
2963
  #
2964
+ # @option params [String] :kms_key_identifier
2965
+ # The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses
2966
+ # this ID to encrypt the configuration data using a customer managed
2967
+ # key.
2968
+ #
2969
+ # @option params [Hash<String,String>] :dynamic_extension_parameters
2970
+ # A map of dynamic extension parameter names to values to pass to
2971
+ # associated extensions with `PRE_START_DEPLOYMENT` actions.
2972
+ #
1595
2973
  # @return [Types::Deployment] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1596
2974
  #
1597
2975
  # * {Types::Deployment#application_id #application_id} => String
@@ -1612,6 +2990,54 @@ module Aws::AppConfig
1612
2990
  # * {Types::Deployment#percentage_complete #percentage_complete} => Float
1613
2991
  # * {Types::Deployment#started_at #started_at} => Time
1614
2992
  # * {Types::Deployment#completed_at #completed_at} => Time
2993
+ # * {Types::Deployment#applied_extensions #applied_extensions} => Array&lt;Types::AppliedExtension&gt;
2994
+ # * {Types::Deployment#kms_key_arn #kms_key_arn} => String
2995
+ # * {Types::Deployment#kms_key_identifier #kms_key_identifier} => String
2996
+ # * {Types::Deployment#version_label #version_label} => String
2997
+ #
2998
+ #
2999
+ # @example Example: To start a configuration deployment
3000
+ #
3001
+ # # The following start-deployment example starts a deployment to the application using the specified environment,
3002
+ # # deployment strategy, and configuration profile.
3003
+ #
3004
+ # resp = client.start_deployment({
3005
+ # application_id: "339ohji",
3006
+ # configuration_profile_id: "ur8hx2f",
3007
+ # configuration_version: "1",
3008
+ # deployment_strategy_id: "1225qzk",
3009
+ # description: "",
3010
+ # environment_id: "54j1r29",
3011
+ # tags: {
3012
+ # },
3013
+ # })
3014
+ #
3015
+ # resp.to_h outputs the following:
3016
+ # {
3017
+ # application_id: "339ohji",
3018
+ # configuration_location_uri: "ssm-parameter://Example-Parameter",
3019
+ # configuration_name: "Example-Configuration-Profile",
3020
+ # configuration_profile_id: "ur8hx2f",
3021
+ # configuration_version: "1",
3022
+ # deployment_duration_in_minutes: 15,
3023
+ # deployment_number: 1,
3024
+ # deployment_strategy_id: "1225qzk",
3025
+ # environment_id: "54j1r29",
3026
+ # event_log: [
3027
+ # {
3028
+ # description: "Deployment started",
3029
+ # event_type: "DEPLOYMENT_STARTED",
3030
+ # occurred_at: Time.parse("2021-09-17T21:43:54.205000+00:00"),
3031
+ # triggered_by: "USER",
3032
+ # },
3033
+ # ],
3034
+ # final_bake_time_in_minutes: 0,
3035
+ # growth_factor: 25,
3036
+ # growth_type: "LINEAR",
3037
+ # percentage_complete: 1.0,
3038
+ # started_at: Time.parse("2021-09-17T21:43:54.205000+00:00"),
3039
+ # state: "DEPLOYING",
3040
+ # }
1615
3041
  #
1616
3042
  # @example Request syntax with placeholder values
1617
3043
  #
@@ -1625,6 +3051,10 @@ module Aws::AppConfig
1625
3051
  # tags: {
1626
3052
  # "TagKey" => "TagValue",
1627
3053
  # },
3054
+ # kms_key_identifier: "KmsKeyIdentifier",
3055
+ # dynamic_extension_parameters: {
3056
+ # "DynamicParameterKey" => "StringWithLengthBetween1And2048",
3057
+ # },
1628
3058
  # })
1629
3059
  #
1630
3060
  # @example Response structure
@@ -1642,15 +3072,32 @@ module Aws::AppConfig
1642
3072
  # resp.growth_type #=> String, one of "LINEAR", "EXPONENTIAL"
1643
3073
  # resp.growth_factor #=> Float
1644
3074
  # resp.final_bake_time_in_minutes #=> Integer
1645
- # resp.state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK"
3075
+ # resp.state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
1646
3076
  # resp.event_log #=> Array
1647
- # resp.event_log[0].event_type #=> String, one of "PERCENTAGE_UPDATED", "ROLLBACK_STARTED", "ROLLBACK_COMPLETED", "BAKE_TIME_STARTED", "DEPLOYMENT_STARTED", "DEPLOYMENT_COMPLETED"
3077
+ # resp.event_log[0].event_type #=> String, one of "PERCENTAGE_UPDATED", "ROLLBACK_STARTED", "ROLLBACK_COMPLETED", "BAKE_TIME_STARTED", "DEPLOYMENT_STARTED", "DEPLOYMENT_COMPLETED", "REVERT_COMPLETED"
1648
3078
  # resp.event_log[0].triggered_by #=> String, one of "USER", "APPCONFIG", "CLOUDWATCH_ALARM", "INTERNAL_ERROR"
1649
3079
  # resp.event_log[0].description #=> String
3080
+ # resp.event_log[0].action_invocations #=> Array
3081
+ # resp.event_log[0].action_invocations[0].extension_identifier #=> String
3082
+ # resp.event_log[0].action_invocations[0].action_name #=> String
3083
+ # resp.event_log[0].action_invocations[0].uri #=> String
3084
+ # resp.event_log[0].action_invocations[0].role_arn #=> String
3085
+ # resp.event_log[0].action_invocations[0].error_message #=> String
3086
+ # resp.event_log[0].action_invocations[0].error_code #=> String
3087
+ # resp.event_log[0].action_invocations[0].invocation_id #=> String
1650
3088
  # resp.event_log[0].occurred_at #=> Time
1651
3089
  # resp.percentage_complete #=> Float
1652
3090
  # resp.started_at #=> Time
1653
3091
  # resp.completed_at #=> Time
3092
+ # resp.applied_extensions #=> Array
3093
+ # resp.applied_extensions[0].extension_id #=> String
3094
+ # resp.applied_extensions[0].extension_association_id #=> String
3095
+ # resp.applied_extensions[0].version_number #=> Integer
3096
+ # resp.applied_extensions[0].parameters #=> Hash
3097
+ # resp.applied_extensions[0].parameters["ExtensionOrParameterName"] #=> String
3098
+ # resp.kms_key_arn #=> String
3099
+ # resp.kms_key_identifier #=> String
3100
+ # resp.version_label #=> String
1654
3101
  #
1655
3102
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StartDeployment AWS API Documentation
1656
3103
  #
@@ -1662,8 +3109,11 @@ module Aws::AppConfig
1662
3109
  end
1663
3110
 
1664
3111
  # Stops a deployment. This API action works only on deployments that
1665
- # have a status of `DEPLOYING`. This action moves the deployment to a
1666
- # status of `ROLLED_BACK`.
3112
+ # have a status of `DEPLOYING`, unless an `AllowRevert` parameter is
3113
+ # supplied. If the `AllowRevert` parameter is supplied, the status of an
3114
+ # in-progress deployment will be `ROLLED_BACK`. The status of a
3115
+ # completed deployment will be `REVERTED`. AppConfig only allows a
3116
+ # revert within 72 hours of deployment completion.
1667
3117
  #
1668
3118
  # @option params [required, String] :application_id
1669
3119
  # The application ID.
@@ -1674,6 +3124,11 @@ module Aws::AppConfig
1674
3124
  # @option params [required, Integer] :deployment_number
1675
3125
  # The sequence number of the deployment.
1676
3126
  #
3127
+ # @option params [Boolean] :allow_revert
3128
+ # A Boolean that enables AppConfig to rollback a `COMPLETED` deployment
3129
+ # to the previous configuration version. This action moves the
3130
+ # deployment to a status of `REVERTED`.
3131
+ #
1677
3132
  # @return [Types::Deployment] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1678
3133
  #
1679
3134
  # * {Types::Deployment#application_id #application_id} => String
@@ -1694,6 +3149,30 @@ module Aws::AppConfig
1694
3149
  # * {Types::Deployment#percentage_complete #percentage_complete} => Float
1695
3150
  # * {Types::Deployment#started_at #started_at} => Time
1696
3151
  # * {Types::Deployment#completed_at #completed_at} => Time
3152
+ # * {Types::Deployment#applied_extensions #applied_extensions} => Array&lt;Types::AppliedExtension&gt;
3153
+ # * {Types::Deployment#kms_key_arn #kms_key_arn} => String
3154
+ # * {Types::Deployment#kms_key_identifier #kms_key_identifier} => String
3155
+ # * {Types::Deployment#version_label #version_label} => String
3156
+ #
3157
+ #
3158
+ # @example Example: To stop configuration deployment
3159
+ #
3160
+ # # The following stop-deployment example stops the deployment of an application configuration to the specified environment.
3161
+ #
3162
+ # resp = client.stop_deployment({
3163
+ # application_id: "339ohji",
3164
+ # deployment_number: 2,
3165
+ # environment_id: "54j1r29",
3166
+ # })
3167
+ #
3168
+ # resp.to_h outputs the following:
3169
+ # {
3170
+ # deployment_duration_in_minutes: 15,
3171
+ # deployment_number: 2,
3172
+ # final_bake_time_in_minutes: 0,
3173
+ # growth_factor: 25.0,
3174
+ # percentage_complete: 1.0,
3175
+ # }
1697
3176
  #
1698
3177
  # @example Request syntax with placeholder values
1699
3178
  #
@@ -1701,6 +3180,7 @@ module Aws::AppConfig
1701
3180
  # application_id: "Id", # required
1702
3181
  # environment_id: "Id", # required
1703
3182
  # deployment_number: 1, # required
3183
+ # allow_revert: false,
1704
3184
  # })
1705
3185
  #
1706
3186
  # @example Response structure
@@ -1718,15 +3198,32 @@ module Aws::AppConfig
1718
3198
  # resp.growth_type #=> String, one of "LINEAR", "EXPONENTIAL"
1719
3199
  # resp.growth_factor #=> Float
1720
3200
  # resp.final_bake_time_in_minutes #=> Integer
1721
- # resp.state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK"
3201
+ # resp.state #=> String, one of "BAKING", "VALIDATING", "DEPLOYING", "COMPLETE", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
1722
3202
  # resp.event_log #=> Array
1723
- # resp.event_log[0].event_type #=> String, one of "PERCENTAGE_UPDATED", "ROLLBACK_STARTED", "ROLLBACK_COMPLETED", "BAKE_TIME_STARTED", "DEPLOYMENT_STARTED", "DEPLOYMENT_COMPLETED"
3203
+ # resp.event_log[0].event_type #=> String, one of "PERCENTAGE_UPDATED", "ROLLBACK_STARTED", "ROLLBACK_COMPLETED", "BAKE_TIME_STARTED", "DEPLOYMENT_STARTED", "DEPLOYMENT_COMPLETED", "REVERT_COMPLETED"
1724
3204
  # resp.event_log[0].triggered_by #=> String, one of "USER", "APPCONFIG", "CLOUDWATCH_ALARM", "INTERNAL_ERROR"
1725
3205
  # resp.event_log[0].description #=> String
3206
+ # resp.event_log[0].action_invocations #=> Array
3207
+ # resp.event_log[0].action_invocations[0].extension_identifier #=> String
3208
+ # resp.event_log[0].action_invocations[0].action_name #=> String
3209
+ # resp.event_log[0].action_invocations[0].uri #=> String
3210
+ # resp.event_log[0].action_invocations[0].role_arn #=> String
3211
+ # resp.event_log[0].action_invocations[0].error_message #=> String
3212
+ # resp.event_log[0].action_invocations[0].error_code #=> String
3213
+ # resp.event_log[0].action_invocations[0].invocation_id #=> String
1726
3214
  # resp.event_log[0].occurred_at #=> Time
1727
3215
  # resp.percentage_complete #=> Float
1728
3216
  # resp.started_at #=> Time
1729
3217
  # resp.completed_at #=> Time
3218
+ # resp.applied_extensions #=> Array
3219
+ # resp.applied_extensions[0].extension_id #=> String
3220
+ # resp.applied_extensions[0].extension_association_id #=> String
3221
+ # resp.applied_extensions[0].version_number #=> Integer
3222
+ # resp.applied_extensions[0].parameters #=> Hash
3223
+ # resp.applied_extensions[0].parameters["ExtensionOrParameterName"] #=> String
3224
+ # resp.kms_key_arn #=> String
3225
+ # resp.kms_key_identifier #=> String
3226
+ # resp.version_label #=> String
1730
3227
  #
1731
3228
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StopDeployment AWS API Documentation
1732
3229
  #
@@ -1737,7 +3234,7 @@ module Aws::AppConfig
1737
3234
  req.send_request(options)
1738
3235
  end
1739
3236
 
1740
- # Metadata to assign to an AppConfig resource. Tags help organize and
3237
+ # Assigns metadata to an AppConfig resource. Tags help organize and
1741
3238
  # categorize your AppConfig resources. Each tag consists of a key and an
1742
3239
  # optional value, both of which you define. You can specify a maximum of
1743
3240
  # 50 tags for a resource.
@@ -1752,6 +3249,18 @@ module Aws::AppConfig
1752
3249
  #
1753
3250
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1754
3251
  #
3252
+ #
3253
+ # @example Example: To tag an application
3254
+ #
3255
+ # # The following tag-resource example tags an application resource.
3256
+ #
3257
+ # resp = client.tag_resource({
3258
+ # resource_arn: "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
3259
+ # tags: {
3260
+ # "group1" => "1",
3261
+ # },
3262
+ # })
3263
+ #
1755
3264
  # @example Request syntax with placeholder values
1756
3265
  #
1757
3266
  # resp = client.tag_resource({
@@ -1780,6 +3289,18 @@ module Aws::AppConfig
1780
3289
  #
1781
3290
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1782
3291
  #
3292
+ #
3293
+ # @example Example: To remove a tag from an application
3294
+ #
3295
+ # # The following untag-resource example removes the group1 tag from the specified application.
3296
+ #
3297
+ # resp = client.untag_resource({
3298
+ # resource_arn: "arn:aws:appconfig:us-east-1:111122223333:application/339ohji",
3299
+ # tag_keys: [
3300
+ # "group1",
3301
+ # ],
3302
+ # })
3303
+ #
1783
3304
  # @example Request syntax with placeholder values
1784
3305
  #
1785
3306
  # resp = client.untag_resource({
@@ -1796,6 +3317,47 @@ module Aws::AppConfig
1796
3317
  req.send_request(options)
1797
3318
  end
1798
3319
 
3320
+ # Updates the value of the `DeletionProtection` parameter.
3321
+ #
3322
+ # @option params [Types::DeletionProtectionSettings] :deletion_protection
3323
+ # A parameter to configure deletion protection. Deletion protection
3324
+ # prevents a user from deleting a configuration profile or an
3325
+ # environment if AppConfig has called either [GetLatestConfiguration][1]
3326
+ # or for the configuration profile or from the environment during the
3327
+ # specified interval. The default interval for
3328
+ # `ProtectionPeriodInMinutes` is 60.
3329
+ #
3330
+ #
3331
+ #
3332
+ # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html
3333
+ #
3334
+ # @return [Types::AccountSettings] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3335
+ #
3336
+ # * {Types::AccountSettings#deletion_protection #deletion_protection} => Types::DeletionProtectionSettings
3337
+ #
3338
+ # @example Request syntax with placeholder values
3339
+ #
3340
+ # resp = client.update_account_settings({
3341
+ # deletion_protection: {
3342
+ # enabled: false,
3343
+ # protection_period_in_minutes: 1,
3344
+ # },
3345
+ # })
3346
+ #
3347
+ # @example Response structure
3348
+ #
3349
+ # resp.deletion_protection.enabled #=> Boolean
3350
+ # resp.deletion_protection.protection_period_in_minutes #=> Integer
3351
+ #
3352
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateAccountSettings AWS API Documentation
3353
+ #
3354
+ # @overload update_account_settings(params = {})
3355
+ # @param [Hash] params ({})
3356
+ def update_account_settings(params = {}, options = {})
3357
+ req = build_request(:update_account_settings, params)
3358
+ req.send_request(options)
3359
+ end
3360
+
1799
3361
  # Updates an application.
1800
3362
  #
1801
3363
  # @option params [required, String] :application_id
@@ -1813,6 +3375,24 @@ module Aws::AppConfig
1813
3375
  # * {Types::Application#name #name} => String
1814
3376
  # * {Types::Application#description #description} => String
1815
3377
  #
3378
+ #
3379
+ # @example Example: To update an application
3380
+ #
3381
+ # # The following update-application example updates the name of the specified application.
3382
+ #
3383
+ # resp = client.update_application({
3384
+ # application_id: "339ohji",
3385
+ # description: "",
3386
+ # name: "Example-Application",
3387
+ # })
3388
+ #
3389
+ # resp.to_h outputs the following:
3390
+ # {
3391
+ # description: "An application used for creating an example.",
3392
+ # id: "339ohji",
3393
+ # name: "Example-Application",
3394
+ # }
3395
+ #
1816
3396
  # @example Request syntax with placeholder values
1817
3397
  #
1818
3398
  # resp = client.update_application({
@@ -1852,11 +3432,24 @@ module Aws::AppConfig
1852
3432
  #
1853
3433
  # @option params [String] :retrieval_role_arn
1854
3434
  # The ARN of an IAM role with permission to access the configuration at
1855
- # the specified LocationUri.
3435
+ # the specified `LocationUri`.
3436
+ #
3437
+ # A retrieval role ARN is not required for configurations stored in
3438
+ # CodePipeline or the AppConfig hosted configuration store. It is
3439
+ # required for all other sources that store your configuration.
1856
3440
  #
1857
3441
  # @option params [Array<Types::Validator>] :validators
1858
3442
  # A list of methods for validating the configuration.
1859
3443
  #
3444
+ # @option params [String] :kms_key_identifier
3445
+ # The identifier for a Key Management Service key to encrypt new
3446
+ # configuration data versions in the AppConfig hosted configuration
3447
+ # store. This attribute is only used for `hosted` configuration types.
3448
+ # The identifier can be an KMS key ID, alias, or the Amazon Resource
3449
+ # Name (ARN) of the key ID or alias. To encrypt data managed in other
3450
+ # configuration stores, see the documentation for how to specify an KMS
3451
+ # key for that particular service.
3452
+ #
1860
3453
  # @return [Types::ConfigurationProfile] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1861
3454
  #
1862
3455
  # * {Types::ConfigurationProfile#application_id #application_id} => String
@@ -1866,13 +3459,37 @@ module Aws::AppConfig
1866
3459
  # * {Types::ConfigurationProfile#location_uri #location_uri} => String
1867
3460
  # * {Types::ConfigurationProfile#retrieval_role_arn #retrieval_role_arn} => String
1868
3461
  # * {Types::ConfigurationProfile#validators #validators} => Array&lt;Types::Validator&gt;
3462
+ # * {Types::ConfigurationProfile#type #type} => String
3463
+ # * {Types::ConfigurationProfile#kms_key_arn #kms_key_arn} => String
3464
+ # * {Types::ConfigurationProfile#kms_key_identifier #kms_key_identifier} => String
3465
+ #
3466
+ #
3467
+ # @example Example: To update a configuration profile
3468
+ #
3469
+ # # The following update-configuration-profile example updates the description of the specified configuration profile.
3470
+ #
3471
+ # resp = client.update_configuration_profile({
3472
+ # application_id: "339ohji",
3473
+ # configuration_profile_id: "ur8hx2f",
3474
+ # description: "Configuration profile used for examples.",
3475
+ # })
3476
+ #
3477
+ # resp.to_h outputs the following:
3478
+ # {
3479
+ # application_id: "339ohji",
3480
+ # description: "Configuration profile used for examples.",
3481
+ # id: "ur8hx2f",
3482
+ # location_uri: "ssm-parameter://Example-Parameter",
3483
+ # name: "Example-Configuration-Profile",
3484
+ # retrieval_role_arn: "arn:aws:iam::111122223333:role/Example-App-Config-Role",
3485
+ # }
1869
3486
  #
1870
3487
  # @example Request syntax with placeholder values
1871
3488
  #
1872
3489
  # resp = client.update_configuration_profile({
1873
3490
  # application_id: "Id", # required
1874
3491
  # configuration_profile_id: "Id", # required
1875
- # name: "Name",
3492
+ # name: "LongName",
1876
3493
  # description: "Description",
1877
3494
  # retrieval_role_arn: "RoleArn",
1878
3495
  # validators: [
@@ -1881,6 +3498,7 @@ module Aws::AppConfig
1881
3498
  # content: "StringWithLengthBetween0And32768", # required
1882
3499
  # },
1883
3500
  # ],
3501
+ # kms_key_identifier: "KmsKeyIdentifierOrEmpty",
1884
3502
  # })
1885
3503
  #
1886
3504
  # @example Response structure
@@ -1894,6 +3512,9 @@ module Aws::AppConfig
1894
3512
  # resp.validators #=> Array
1895
3513
  # resp.validators[0].type #=> String, one of "JSON_SCHEMA", "LAMBDA"
1896
3514
  # resp.validators[0].content #=> String
3515
+ # resp.type #=> String
3516
+ # resp.kms_key_arn #=> String
3517
+ # resp.kms_key_identifier #=> String
1897
3518
  #
1898
3519
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateConfigurationProfile AWS API Documentation
1899
3520
  #
@@ -1916,19 +3537,19 @@ module Aws::AppConfig
1916
3537
  # Total amount of time for a deployment to last.
1917
3538
  #
1918
3539
  # @option params [Integer] :final_bake_time_in_minutes
1919
- # The amount of time AppConfig monitors for alarms before considering
1920
- # the deployment to be complete and no longer eligible for automatic
1921
- # roll back.
3540
+ # The amount of time that AppConfig monitors for alarms before
3541
+ # considering the deployment to be complete and no longer eligible for
3542
+ # automatic rollback.
1922
3543
  #
1923
3544
  # @option params [Float] :growth_factor
1924
3545
  # The percentage of targets to receive a deployed configuration during
1925
3546
  # each interval.
1926
3547
  #
1927
3548
  # @option params [String] :growth_type
1928
- # The algorithm used to define how percentage grows over time. AWS
1929
- # AppConfig supports the following growth types:
3549
+ # The algorithm used to define how percentage grows over time. AppConfig
3550
+ # supports the following growth types:
1930
3551
  #
1931
- # **Linear**\: For this type, AppConfig processes the deployment by
3552
+ # **Linear**: For this type, AppConfig processes the deployment by
1932
3553
  # increments of the growth factor evenly distributed over the deployment
1933
3554
  # time. For example, a linear deployment that uses a growth factor of 20
1934
3555
  # initially makes the configuration available to 20 percent of the
@@ -1936,7 +3557,7 @@ module Aws::AppConfig
1936
3557
  # updates the percentage to 40 percent. This continues until 100% of the
1937
3558
  # targets are set to receive the deployed configuration.
1938
3559
  #
1939
- # **Exponential**\: For this type, AppConfig processes the deployment
3560
+ # **Exponential**: For this type, AppConfig processes the deployment
1940
3561
  # exponentially using the following formula: `G*(2^N)`. In this formula,
1941
3562
  # `G` is the growth factor specified by the user and `N` is the number
1942
3563
  # of steps until the configuration is deployed to all targets. For
@@ -1964,6 +3585,28 @@ module Aws::AppConfig
1964
3585
  # * {Types::DeploymentStrategy#final_bake_time_in_minutes #final_bake_time_in_minutes} => Integer
1965
3586
  # * {Types::DeploymentStrategy#replicate_to #replicate_to} => String
1966
3587
  #
3588
+ #
3589
+ # @example Example: To update a deployment strategy
3590
+ #
3591
+ # # The following update-deployment-strategy example updates final bake time to 20 minutes in the specified deployment
3592
+ # # strategy. ::
3593
+ #
3594
+ # resp = client.update_deployment_strategy({
3595
+ # deployment_strategy_id: "1225qzk",
3596
+ # final_bake_time_in_minutes: 20,
3597
+ # })
3598
+ #
3599
+ # resp.to_h outputs the following:
3600
+ # {
3601
+ # deployment_duration_in_minutes: 15,
3602
+ # final_bake_time_in_minutes: 20,
3603
+ # growth_factor: 25,
3604
+ # growth_type: "LINEAR",
3605
+ # id: "1225qzk",
3606
+ # name: "Example-Deployment",
3607
+ # replicate_to: "SSM_DOCUMENT",
3608
+ # }
3609
+ #
1967
3610
  # @example Request syntax with placeholder values
1968
3611
  #
1969
3612
  # resp = client.update_deployment_strategy({
@@ -2021,6 +3664,26 @@ module Aws::AppConfig
2021
3664
  # * {Types::Environment#state #state} => String
2022
3665
  # * {Types::Environment#monitors #monitors} => Array&lt;Types::Monitor&gt;
2023
3666
  #
3667
+ #
3668
+ # @example Example: To update an environment
3669
+ #
3670
+ # # The following update-environment example updates an environment's description.
3671
+ #
3672
+ # resp = client.update_environment({
3673
+ # application_id: "339ohji",
3674
+ # description: "An environment for examples.",
3675
+ # environment_id: "54j1r29",
3676
+ # })
3677
+ #
3678
+ # resp.to_h outputs the following:
3679
+ # {
3680
+ # application_id: "339ohji",
3681
+ # description: "An environment for examples.",
3682
+ # id: "54j1r29",
3683
+ # name: "Example-Environment",
3684
+ # state: "ROLLED_BACK",
3685
+ # }
3686
+ #
2024
3687
  # @example Request syntax with placeholder values
2025
3688
  #
2026
3689
  # resp = client.update_environment({
@@ -2030,7 +3693,7 @@ module Aws::AppConfig
2030
3693
  # description: "Description",
2031
3694
  # monitors: [
2032
3695
  # {
2033
- # alarm_arn: "Arn",
3696
+ # alarm_arn: "StringWithLengthBetween1And2048", # required
2034
3697
  # alarm_role_arn: "RoleArn",
2035
3698
  # },
2036
3699
  # ],
@@ -2042,7 +3705,7 @@ module Aws::AppConfig
2042
3705
  # resp.id #=> String
2043
3706
  # resp.name #=> String
2044
3707
  # resp.description #=> String
2045
- # resp.state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK"
3708
+ # resp.state #=> String, one of "READY_FOR_DEPLOYMENT", "DEPLOYING", "ROLLING_BACK", "ROLLED_BACK", "REVERTED"
2046
3709
  # resp.monitors #=> Array
2047
3710
  # resp.monitors[0].alarm_arn #=> String
2048
3711
  # resp.monitors[0].alarm_role_arn #=> String
@@ -2056,6 +3719,141 @@ module Aws::AppConfig
2056
3719
  req.send_request(options)
2057
3720
  end
2058
3721
 
3722
+ # Updates an AppConfig extension. For more information about extensions,
3723
+ # see [Extending workflows][1] in the *AppConfig User Guide*.
3724
+ #
3725
+ #
3726
+ #
3727
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
3728
+ #
3729
+ # @option params [required, String] :extension_identifier
3730
+ # The name, the ID, or the Amazon Resource Name (ARN) of the extension.
3731
+ #
3732
+ # @option params [String] :description
3733
+ # Information about the extension.
3734
+ #
3735
+ # @option params [Hash<String,Array>] :actions
3736
+ # The actions defined in the extension.
3737
+ #
3738
+ # @option params [Hash<String,Types::Parameter>] :parameters
3739
+ # One or more parameters for the actions called by the extension.
3740
+ #
3741
+ # @option params [Integer] :version_number
3742
+ # The extension version number.
3743
+ #
3744
+ # @return [Types::Extension] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3745
+ #
3746
+ # * {Types::Extension#id #id} => String
3747
+ # * {Types::Extension#name #name} => String
3748
+ # * {Types::Extension#version_number #version_number} => Integer
3749
+ # * {Types::Extension#arn #arn} => String
3750
+ # * {Types::Extension#description #description} => String
3751
+ # * {Types::Extension#actions #actions} => Hash&lt;String,Array&lt;Types::Action&gt;&gt;
3752
+ # * {Types::Extension#parameters #parameters} => Hash&lt;String,Types::Parameter&gt;
3753
+ #
3754
+ # @example Request syntax with placeholder values
3755
+ #
3756
+ # resp = client.update_extension({
3757
+ # extension_identifier: "Identifier", # required
3758
+ # description: "Description",
3759
+ # actions: {
3760
+ # "PRE_CREATE_HOSTED_CONFIGURATION_VERSION" => [
3761
+ # {
3762
+ # name: "Name",
3763
+ # description: "Description",
3764
+ # uri: "Uri",
3765
+ # role_arn: "Arn",
3766
+ # },
3767
+ # ],
3768
+ # },
3769
+ # parameters: {
3770
+ # "ExtensionOrParameterName" => {
3771
+ # description: "Description",
3772
+ # required: false,
3773
+ # dynamic: false,
3774
+ # },
3775
+ # },
3776
+ # version_number: 1,
3777
+ # })
3778
+ #
3779
+ # @example Response structure
3780
+ #
3781
+ # resp.id #=> String
3782
+ # resp.name #=> String
3783
+ # resp.version_number #=> Integer
3784
+ # resp.arn #=> String
3785
+ # resp.description #=> String
3786
+ # resp.actions #=> Hash
3787
+ # resp.actions["ActionPoint"] #=> Array
3788
+ # resp.actions["ActionPoint"][0].name #=> String
3789
+ # resp.actions["ActionPoint"][0].description #=> String
3790
+ # resp.actions["ActionPoint"][0].uri #=> String
3791
+ # resp.actions["ActionPoint"][0].role_arn #=> String
3792
+ # resp.parameters #=> Hash
3793
+ # resp.parameters["ExtensionOrParameterName"].description #=> String
3794
+ # resp.parameters["ExtensionOrParameterName"].required #=> Boolean
3795
+ # resp.parameters["ExtensionOrParameterName"].dynamic #=> Boolean
3796
+ #
3797
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateExtension AWS API Documentation
3798
+ #
3799
+ # @overload update_extension(params = {})
3800
+ # @param [Hash] params ({})
3801
+ def update_extension(params = {}, options = {})
3802
+ req = build_request(:update_extension, params)
3803
+ req.send_request(options)
3804
+ end
3805
+
3806
+ # Updates an association. For more information about extensions and
3807
+ # associations, see [Extending workflows][1] in the *AppConfig User
3808
+ # Guide*.
3809
+ #
3810
+ #
3811
+ #
3812
+ # [1]: https://docs.aws.amazon.com/appconfig/latest/userguide/working-with-appconfig-extensions.html
3813
+ #
3814
+ # @option params [required, String] :extension_association_id
3815
+ # The system-generated ID for the association.
3816
+ #
3817
+ # @option params [Hash<String,String>] :parameters
3818
+ # The parameter names and values defined in the extension.
3819
+ #
3820
+ # @return [Types::ExtensionAssociation] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3821
+ #
3822
+ # * {Types::ExtensionAssociation#id #id} => String
3823
+ # * {Types::ExtensionAssociation#extension_arn #extension_arn} => String
3824
+ # * {Types::ExtensionAssociation#resource_arn #resource_arn} => String
3825
+ # * {Types::ExtensionAssociation#arn #arn} => String
3826
+ # * {Types::ExtensionAssociation#parameters #parameters} => Hash&lt;String,String&gt;
3827
+ # * {Types::ExtensionAssociation#extension_version_number #extension_version_number} => Integer
3828
+ #
3829
+ # @example Request syntax with placeholder values
3830
+ #
3831
+ # resp = client.update_extension_association({
3832
+ # extension_association_id: "Id", # required
3833
+ # parameters: {
3834
+ # "ExtensionOrParameterName" => "StringWithLengthBetween1And2048",
3835
+ # },
3836
+ # })
3837
+ #
3838
+ # @example Response structure
3839
+ #
3840
+ # resp.id #=> String
3841
+ # resp.extension_arn #=> String
3842
+ # resp.resource_arn #=> String
3843
+ # resp.arn #=> String
3844
+ # resp.parameters #=> Hash
3845
+ # resp.parameters["ExtensionOrParameterName"] #=> String
3846
+ # resp.extension_version_number #=> Integer
3847
+ #
3848
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/UpdateExtensionAssociation AWS API Documentation
3849
+ #
3850
+ # @overload update_extension_association(params = {})
3851
+ # @param [Hash] params ({})
3852
+ def update_extension_association(params = {}, options = {})
3853
+ req = build_request(:update_extension_association, params)
3854
+ req.send_request(options)
3855
+ end
3856
+
2059
3857
  # Uses the validators in a configuration profile to validate a
2060
3858
  # configuration.
2061
3859
  #
@@ -2070,6 +3868,17 @@ module Aws::AppConfig
2070
3868
  #
2071
3869
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2072
3870
  #
3871
+ #
3872
+ # @example Example: To validate a configuration
3873
+ #
3874
+ # # The following validate-configuration example uses the validators in a configuration profile to validate a configuration.
3875
+ #
3876
+ # resp = client.validate_configuration({
3877
+ # application_id: "abc1234",
3878
+ # configuration_profile_id: "ur8hx2f",
3879
+ # configuration_version: "1",
3880
+ # })
3881
+ #
2073
3882
  # @example Request syntax with placeholder values
2074
3883
  #
2075
3884
  # resp = client.validate_configuration({
@@ -2093,21 +3902,141 @@ module Aws::AppConfig
2093
3902
  # @api private
2094
3903
  def build_request(operation_name, params = {})
2095
3904
  handlers = @handlers.for(operation_name)
3905
+ tracer = config.telemetry_provider.tracer_provider.tracer(
3906
+ Aws::Telemetry.module_to_tracer_name('Aws::AppConfig')
3907
+ )
2096
3908
  context = Seahorse::Client::RequestContext.new(
2097
3909
  operation_name: operation_name,
2098
3910
  operation: config.api.operation(operation_name),
2099
3911
  client: self,
2100
3912
  params: params,
2101
- config: config)
3913
+ config: config,
3914
+ tracer: tracer
3915
+ )
2102
3916
  context[:gem_name] = 'aws-sdk-appconfig'
2103
- context[:gem_version] = '1.11.0'
3917
+ context[:gem_version] = '1.67.0'
2104
3918
  Seahorse::Client::Request.new(handlers, context)
2105
3919
  end
2106
3920
 
3921
+ # Polls an API operation until a resource enters a desired state.
3922
+ #
3923
+ # ## Basic Usage
3924
+ #
3925
+ # A waiter will call an API operation until:
3926
+ #
3927
+ # * It is successful
3928
+ # * It enters a terminal state
3929
+ # * It makes the maximum number of attempts
3930
+ #
3931
+ # In between attempts, the waiter will sleep.
3932
+ #
3933
+ # # polls in a loop, sleeping between attempts
3934
+ # client.wait_until(waiter_name, params)
3935
+ #
3936
+ # ## Configuration
3937
+ #
3938
+ # You can configure the maximum number of polling attempts, and the
3939
+ # delay (in seconds) between each polling attempt. You can pass
3940
+ # configuration as the final arguments hash.
3941
+ #
3942
+ # # poll for ~25 seconds
3943
+ # client.wait_until(waiter_name, params, {
3944
+ # max_attempts: 5,
3945
+ # delay: 5,
3946
+ # })
3947
+ #
3948
+ # ## Callbacks
3949
+ #
3950
+ # You can be notified before each polling attempt and before each
3951
+ # delay. If you throw `:success` or `:failure` from these callbacks,
3952
+ # it will terminate the waiter.
3953
+ #
3954
+ # started_at = Time.now
3955
+ # client.wait_until(waiter_name, params, {
3956
+ #
3957
+ # # disable max attempts
3958
+ # max_attempts: nil,
3959
+ #
3960
+ # # poll for 1 hour, instead of a number of attempts
3961
+ # before_wait: -> (attempts, response) do
3962
+ # throw :failure if Time.now - started_at > 3600
3963
+ # end
3964
+ # })
3965
+ #
3966
+ # ## Handling Errors
3967
+ #
3968
+ # When a waiter is unsuccessful, it will raise an error.
3969
+ # All of the failure errors extend from
3970
+ # {Aws::Waiters::Errors::WaiterFailed}.
3971
+ #
3972
+ # begin
3973
+ # client.wait_until(...)
3974
+ # rescue Aws::Waiters::Errors::WaiterFailed
3975
+ # # resource did not enter the desired state in time
3976
+ # end
3977
+ #
3978
+ # ## Valid Waiters
3979
+ #
3980
+ # The following table lists the valid waiter names, the operations they call,
3981
+ # and the default `:delay` and `:max_attempts` values.
3982
+ #
3983
+ # | waiter_name | params | :delay | :max_attempts |
3984
+ # | -------------------------------- | ------------------------ | -------- | ------------- |
3985
+ # | deployment_complete | {Client#get_deployment} | 30 | 999 |
3986
+ # | environment_ready_for_deployment | {Client#get_environment} | 30 | 999 |
3987
+ #
3988
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
3989
+ # because the waiter has entered a state that it will not transition
3990
+ # out of, preventing success.
3991
+ #
3992
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
3993
+ # maximum number of attempts have been made, and the waiter is not
3994
+ # yet successful.
3995
+ #
3996
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
3997
+ # while polling for a resource that is not expected.
3998
+ #
3999
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
4000
+ # for an unknown state.
4001
+ #
4002
+ # @return [Boolean] Returns `true` if the waiter was successful.
4003
+ # @param [Symbol] waiter_name
4004
+ # @param [Hash] params ({})
4005
+ # @param [Hash] options ({})
4006
+ # @option options [Integer] :max_attempts
4007
+ # @option options [Integer] :delay
4008
+ # @option options [Proc] :before_attempt
4009
+ # @option options [Proc] :before_wait
4010
+ def wait_until(waiter_name, params = {}, options = {})
4011
+ w = waiter(waiter_name, options)
4012
+ yield(w.waiter) if block_given? # deprecated
4013
+ w.wait(params)
4014
+ end
4015
+
2107
4016
  # @api private
2108
4017
  # @deprecated
2109
4018
  def waiter_names
2110
- []
4019
+ waiters.keys
4020
+ end
4021
+
4022
+ private
4023
+
4024
+ # @param [Symbol] waiter_name
4025
+ # @param [Hash] options ({})
4026
+ def waiter(waiter_name, options = {})
4027
+ waiter_class = waiters[waiter_name]
4028
+ if waiter_class
4029
+ waiter_class.new(options.merge(client: self))
4030
+ else
4031
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
4032
+ end
4033
+ end
4034
+
4035
+ def waiters
4036
+ {
4037
+ deployment_complete: Waiters::DeploymentComplete,
4038
+ environment_ready_for_deployment: Waiters::EnvironmentReadyForDeployment
4039
+ }
2111
4040
  end
2112
4041
 
2113
4042
  class << self