aws-sdk-ecr 1.3.0 → 1.69.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.
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -15,16 +17,38 @@ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
17
  require 'aws-sdk-core/plugins/retry_errors.rb'
16
18
  require 'aws-sdk-core/plugins/global_configuration.rb'
17
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'
18
22
  require 'aws-sdk-core/plugins/response_paging.rb'
19
23
  require 'aws-sdk-core/plugins/stub_responses.rb'
20
24
  require 'aws-sdk-core/plugins/idempotency_token.rb'
21
25
  require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
22
- require 'aws-sdk-core/plugins/signature_v4.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/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
23
35
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
24
36
 
25
37
  Aws::Plugins::GlobalConfiguration.add_identifier(:ecr)
26
38
 
27
39
  module Aws::ECR
40
+ # An API client for ECR. To construct a client, you need to configure a `:region` and `:credentials`.
41
+ #
42
+ # client = Aws::ECR::Client.new(
43
+ # region: region_name,
44
+ # credentials: credentials,
45
+ # # ...
46
+ # )
47
+ #
48
+ # For details on configuring region and credentials see
49
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
50
+ #
51
+ # See {#initialize} for a full list of supported configuration options.
28
52
  class Client < Seahorse::Client::Base
29
53
 
30
54
  include Aws::ClientStubs
@@ -43,111 +67,330 @@ module Aws::ECR
43
67
  add_plugin(Aws::Plugins::RetryErrors)
44
68
  add_plugin(Aws::Plugins::GlobalConfiguration)
45
69
  add_plugin(Aws::Plugins::RegionalEndpoint)
70
+ add_plugin(Aws::Plugins::EndpointDiscovery)
71
+ add_plugin(Aws::Plugins::EndpointPattern)
46
72
  add_plugin(Aws::Plugins::ResponsePaging)
47
73
  add_plugin(Aws::Plugins::StubResponses)
48
74
  add_plugin(Aws::Plugins::IdempotencyToken)
49
75
  add_plugin(Aws::Plugins::JsonvalueConverter)
50
- add_plugin(Aws::Plugins::SignatureV4)
76
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
77
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
78
+ add_plugin(Aws::Plugins::TransferEncoding)
79
+ add_plugin(Aws::Plugins::HttpChecksum)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
51
85
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
86
+ add_plugin(Aws::ECR::Plugins::Endpoints)
52
87
 
53
- # @option options [required, Aws::CredentialProvider] :credentials
54
- # Your AWS credentials. This can be an instance of any one of the
55
- # following classes:
88
+ # @overload initialize(options)
89
+ # @param [Hash] options
90
+ # @option options [required, Aws::CredentialProvider] :credentials
91
+ # Your AWS credentials. This can be an instance of any one of the
92
+ # following classes:
93
+ #
94
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
95
+ # credentials.
96
+ #
97
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
98
+ # shared file, such as `~/.aws/config`.
99
+ #
100
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
101
+ #
102
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
103
+ # assume a role after providing credentials via the web.
104
+ #
105
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
106
+ # access token generated from `aws login`.
107
+ #
108
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
109
+ # process that outputs to stdout.
110
+ #
111
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
112
+ # from an EC2 IMDS on an EC2 instance.
113
+ #
114
+ # * `Aws::ECSCredentials` - Used for loading credentials from
115
+ # instances running in ECS.
116
+ #
117
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
118
+ # from the Cognito Identity service.
119
+ #
120
+ # When `:credentials` are not configured directly, the following
121
+ # locations will be searched for credentials:
122
+ #
123
+ # * `Aws.config[:credentials]`
124
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
125
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
126
+ # * `~/.aws/credentials`
127
+ # * `~/.aws/config`
128
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
129
+ # are very aggressive. Construct and pass an instance of
130
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
131
+ # enable retries and extended timeouts. Instance profile credential
132
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
133
+ # to true.
134
+ #
135
+ # @option options [required, String] :region
136
+ # The AWS region to connect to. The configured `:region` is
137
+ # used to determine the service `:endpoint`. When not passed,
138
+ # a default `:region` is searched for in the following locations:
139
+ #
140
+ # * `Aws.config[:region]`
141
+ # * `ENV['AWS_REGION']`
142
+ # * `ENV['AMAZON_REGION']`
143
+ # * `ENV['AWS_DEFAULT_REGION']`
144
+ # * `~/.aws/credentials`
145
+ # * `~/.aws/config`
146
+ #
147
+ # @option options [String] :access_key_id
148
+ #
149
+ # @option options [Boolean] :active_endpoint_cache (false)
150
+ # When set to `true`, a thread polling for endpoints will be running in
151
+ # the background every 60 secs (default). Defaults to `false`.
152
+ #
153
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
154
+ # Used only in `adaptive` retry mode. When true, the request will sleep
155
+ # until there is sufficent client side capacity to retry the request.
156
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
157
+ # not retry instead of sleeping.
158
+ #
159
+ # @option options [Boolean] :client_side_monitoring (false)
160
+ # When `true`, client-side metrics will be collected for all API requests from
161
+ # this client.
162
+ #
163
+ # @option options [String] :client_side_monitoring_client_id ("")
164
+ # Allows you to provide an identifier for this client which will be attached to
165
+ # all generated client side metrics. Defaults to an empty string.
166
+ #
167
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
168
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
169
+ # side monitoring agent is running on, where client metrics will be published via UDP.
170
+ #
171
+ # @option options [Integer] :client_side_monitoring_port (31000)
172
+ # Required for publishing client metrics. The port that the client side monitoring
173
+ # agent is running on, where client metrics will be published via UDP.
174
+ #
175
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
176
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
177
+ # will use the Client Side Monitoring Agent Publisher.
178
+ #
179
+ # @option options [Boolean] :convert_params (true)
180
+ # When `true`, an attempt is made to coerce request parameters into
181
+ # the required types.
182
+ #
183
+ # @option options [Boolean] :correct_clock_skew (true)
184
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
185
+ # a clock skew correction and retry requests with skewed client clocks.
186
+ #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
191
+ # @option options [Boolean] :disable_host_prefix_injection (false)
192
+ # Set to true to disable SDK automatically adding host prefix
193
+ # to default service endpoint when available.
194
+ #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
199
+ # @option options [String] :endpoint
200
+ # The client endpoint is normally constructed from the `:region`
201
+ # option. You should only configure an `:endpoint` when connecting
202
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
203
+ #
204
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
205
+ # Used for the maximum size limit of the LRU cache storing endpoints data
206
+ # for endpoint discovery enabled operations. Defaults to 1000.
207
+ #
208
+ # @option options [Integer] :endpoint_cache_max_threads (10)
209
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
210
+ #
211
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
212
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
213
+ # Use this option to config the time interval in seconds for making
214
+ # requests fetching endpoints information. Defaults to 60 sec.
215
+ #
216
+ # @option options [Boolean] :endpoint_discovery (false)
217
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
218
+ #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
223
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
224
+ # The log formatter.
225
+ #
226
+ # @option options [Symbol] :log_level (:info)
227
+ # The log level to send messages to the `:logger` at.
228
+ #
229
+ # @option options [Logger] :logger
230
+ # The Logger instance to send log messages to. If this option
231
+ # is not set, logging will be disabled.
232
+ #
233
+ # @option options [Integer] :max_attempts (3)
234
+ # An integer representing the maximum number attempts that will be made for
235
+ # a single request, including the initial attempt. For example,
236
+ # setting this value to 5 will result in a request being retried up to
237
+ # 4 times. Used in `standard` and `adaptive` retry modes.
238
+ #
239
+ # @option options [String] :profile ("default")
240
+ # Used when loading credentials from the shared credentials file
241
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
242
+ #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
248
+ # @option options [Proc] :retry_backoff
249
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
250
+ # This option is only used in the `legacy` retry mode.
251
+ #
252
+ # @option options [Float] :retry_base_delay (0.3)
253
+ # The base delay in seconds used by the default backoff function. This option
254
+ # is only used in the `legacy` retry mode.
56
255
  #
57
- # * `Aws::Credentials` - Used for configuring static, non-refreshing
58
- # credentials.
256
+ # @option options [Symbol] :retry_jitter (:none)
257
+ # A delay randomiser function used by the default backoff function.
258
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
259
+ # otherwise a Proc that takes and returns a number. This option is only used
260
+ # in the `legacy` retry mode.
59
261
  #
60
- # * `Aws::InstanceProfileCredentials` - Used for loading credentials
61
- # from an EC2 IMDS on an EC2 instance.
262
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
62
263
  #
63
- # * `Aws::SharedCredentials` - Used for loading credentials from a
64
- # shared file, such as `~/.aws/config`.
264
+ # @option options [Integer] :retry_limit (3)
265
+ # The maximum number of times to retry failed requests. Only
266
+ # ~ 500 level server errors and certain ~ 400 level client errors
267
+ # are retried. Generally, these are throttling errors, data
268
+ # checksum errors, networking errors, timeout errors, auth errors,
269
+ # endpoint discovery, and errors from expired credentials.
270
+ # This option is only used in the `legacy` retry mode.
271
+ #
272
+ # @option options [Integer] :retry_max_delay (0)
273
+ # The maximum number of seconds to delay between retries (0 for no limit)
274
+ # used by the default backoff function. This option is only used in the
275
+ # `legacy` retry mode.
65
276
  #
66
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
277
+ # @option options [String] :retry_mode ("legacy")
278
+ # Specifies which retry algorithm to use. Values are:
67
279
  #
68
- # When `:credentials` are not configured directly, the following
69
- # locations will be searched for credentials:
280
+ # * `legacy` - The pre-existing retry behavior. This is default value if
281
+ # no retry mode is provided.
70
282
  #
71
- # * `Aws.config[:credentials]`
72
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
73
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
74
- # * `~/.aws/credentials`
75
- # * `~/.aws/config`
76
- # * EC2 IMDS instance profile - When used by default, the timeouts are
77
- # very aggressive. Construct and pass an instance of
78
- # `Aws::InstanceProfileCredentails` to enable retries and extended
79
- # timeouts.
283
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
284
+ # This includes support for retry quotas, which limit the number of
285
+ # unsuccessful retries a client can make.
80
286
  #
81
- # @option options [required, String] :region
82
- # The AWS region to connect to. The configured `:region` is
83
- # used to determine the service `:endpoint`. When not passed,
84
- # a default `:region` is search for in the following locations:
287
+ # * `adaptive` - An experimental retry mode that includes all the
288
+ # functionality of `standard` mode along with automatic client side
289
+ # throttling. This is a provisional mode that may change behavior
290
+ # in the future.
291
+ #
292
+ #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
85
297
  #
86
- # * `Aws.config[:region]`
87
- # * `ENV['AWS_REGION']`
88
- # * `ENV['AMAZON_REGION']`
89
- # * `ENV['AWS_DEFAULT_REGION']`
90
- # * `~/.aws/credentials`
91
- # * `~/.aws/config`
298
+ # @option options [String] :secret_access_key
299
+ #
300
+ # @option options [String] :session_token
92
301
  #
93
- # @option options [String] :access_key_id
302
+ # @option options [Boolean] :simple_json (false)
303
+ # Disables request parameter conversion, validation, and formatting.
304
+ # Also disable response data type conversions. This option is useful
305
+ # when you want to ensure the highest level of performance by
306
+ # avoiding overhead of walking request parameters and response data
307
+ # structures.
94
308
  #
95
- # @option options [Boolean] :convert_params (true)
96
- # When `true`, an attempt is made to coerce request parameters into
97
- # the required types.
309
+ # When `:simple_json` is enabled, the request parameters hash must
310
+ # be formatted exactly as the DynamoDB API expects.
311
+ #
312
+ # @option options [Boolean] :stub_responses (false)
313
+ # Causes the client to return stubbed responses. By default
314
+ # fake responses are generated and returned. You can specify
315
+ # the response data to return or errors to raise by calling
316
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
98
317
  #
99
- # @option options [String] :endpoint
100
- # The client endpoint is normally constructed from the `:region`
101
- # option. You should only configure an `:endpoint` when connecting
102
- # to test endpoints. This should be avalid HTTP(S) URI.
318
+ # ** Please note ** When response stubbing is enabled, no HTTP
319
+ # requests are made, and retries are disabled.
103
320
  #
104
- # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
105
- # The log formatter.
321
+ # @option options [Aws::TokenProvider] :token_provider
322
+ # A Bearer Token Provider. This can be an instance of any one of the
323
+ # following classes:
106
324
  #
107
- # @option options [Symbol] :log_level (:info)
108
- # The log level to send messages to the `:logger` at.
325
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
326
+ # tokens.
327
+ #
328
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
329
+ # access token generated from `aws login`.
330
+ #
331
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
332
+ # will be used to search for tokens configured for your profile in shared configuration files.
333
+ #
334
+ # @option options [Boolean] :use_dualstack_endpoint
335
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
336
+ # will be used if available.
109
337
  #
110
- # @option options [Logger] :logger
111
- # The Logger instance to send log messages to. If this option
112
- # is not set, logging will be disabled.
338
+ # @option options [Boolean] :use_fips_endpoint
339
+ # When set to `true`, fips compatible endpoints will be used if available.
340
+ # When a `fips` region is used, the region is normalized and this config
341
+ # is set to `true`.
113
342
  #
114
- # @option options [String] :profile ("default")
115
- # Used when loading credentials from the shared credentials file
116
- # at HOME/.aws/credentials. When not specified, 'default' is used.
343
+ # @option options [Boolean] :validate_params (true)
344
+ # When `true`, request parameters are validated before
345
+ # sending the request.
117
346
  #
118
- # @option options [Integer] :retry_limit (3)
119
- # The maximum number of times to retry failed requests. Only
120
- # ~ 500 level server errors and certain ~ 400 level client errors
121
- # are retried. Generally, these are throttling errors, data
122
- # checksum errors, networking errors, timeout errors and auth
123
- # errors from expired credentials.
347
+ # @option options [Aws::ECR::EndpointProvider] :endpoint_provider
348
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::ECR::EndpointParameters`
124
349
  #
125
- # @option options [String] :secret_access_key
350
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
351
+ # requests through. Formatted like 'http://proxy.com:123'.
126
352
  #
127
- # @option options [String] :session_token
353
+ # @option options [Float] :http_open_timeout (15) The number of
354
+ # seconds to wait when opening a HTTP session before raising a
355
+ # `Timeout::Error`.
128
356
  #
129
- # @option options [Boolean] :simple_json (false)
130
- # Disables request parameter conversion, validation, and formatting.
131
- # Also disable response data type conversions. This option is useful
132
- # when you want to ensure the highest level of performance by
133
- # avoiding overhead of walking request parameters and response data
134
- # structures.
357
+ # @option options [Float] :http_read_timeout (60) The default
358
+ # number of seconds to wait for response data. This value can
359
+ # safely be set per-request on the session.
135
360
  #
136
- # When `:simple_json` is enabled, the request parameters hash must
137
- # be formatted exactly as the DynamoDB API expects.
361
+ # @option options [Float] :http_idle_timeout (5) The number of
362
+ # seconds a connection is allowed to sit idle before it is
363
+ # considered stale. Stale connections are closed and removed
364
+ # from the pool before making a request.
138
365
  #
139
- # @option options [Boolean] :stub_responses (false)
140
- # Causes the client to return stubbed responses. By default
141
- # fake responses are generated and returned. You can specify
142
- # the response data to return or errors to raise by calling
143
- # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
366
+ # @option options [Float] :http_continue_timeout (1) The number of
367
+ # seconds to wait for a 100-continue response before sending the
368
+ # request body. This option has no effect unless the request has
369
+ # "Expect" header set to "100-continue". Defaults to `nil` which
370
+ # disables this behaviour. This value can safely be set per
371
+ # request on the session.
144
372
  #
145
- # ** Please note ** When response stubbing is enabled, no HTTP
146
- # requests are made, and retries are disabled.
373
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
374
+ # in seconds.
147
375
  #
148
- # @option options [Boolean] :validate_params (true)
149
- # When `true`, request parameters are validated before
150
- # sending the request.
376
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
377
+ # HTTP debug output will be sent to the `:logger`.
378
+ #
379
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
380
+ # SSL peer certificates are verified when establishing a
381
+ # connection.
382
+ #
383
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
384
+ # certificate authority bundle file that should be used when
385
+ # verifying peer certificates. If you do not pass
386
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
387
+ # will be used if available.
388
+ #
389
+ # @option options [String] :ssl_ca_directory Full path of the
390
+ # directory that contains the unbundled SSL certificate
391
+ # authority files for verifying peer certificates. If you do
392
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
393
+ # system default will be used if available.
151
394
  #
152
395
  def initialize(*args)
153
396
  super
@@ -155,19 +398,22 @@ module Aws::ECR
155
398
 
156
399
  # @!group API Operations
157
400
 
158
- # Check the availability of multiple image layers in a specified
159
- # registry and repository.
401
+ # Checks the availability of one or more image layers in a repository.
402
+ #
403
+ # When an image is pushed to a repository, each image layer is checked
404
+ # to verify if it has been uploaded before. If it has been uploaded,
405
+ # then the image layer is skipped.
160
406
  #
161
- # <note markdown="1"> This operation is used by the Amazon ECR proxy, and it is not intended
162
- # for general use by customers for pulling and pushing images. In most
163
- # cases, you should use the `docker` CLI to pull, tag, and push images.
407
+ # <note markdown="1"> This operation is used by the Amazon ECR proxy and is not generally
408
+ # used by customers for pulling and pushing images. In most cases, you
409
+ # should use the `docker` CLI to pull, tag, and push images.
164
410
  #
165
411
  # </note>
166
412
  #
167
413
  # @option params [String] :registry_id
168
- # The AWS account ID associated with the registry that contains the
169
- # image layers to check. If you do not specify a registry, the default
170
- # registry is assumed.
414
+ # The Amazon Web Services account ID associated with the registry that
415
+ # contains the image layers to check. If you do not specify a registry,
416
+ # the default registry is assumed.
171
417
  #
172
418
  # @option params [required, String] :repository_name
173
419
  # The name of the repository that is associated with the image layers to
@@ -210,8 +456,8 @@ module Aws::ECR
210
456
  req.send_request(options)
211
457
  end
212
458
 
213
- # Deletes a list of specified images within a specified repository.
214
- # Images are specified with either `imageTag` or `imageDigest`.
459
+ # Deletes a list of specified images within a repository. Images are
460
+ # specified with either an `imageTag` or `imageDigest`.
215
461
  #
216
462
  # You can remove a tag from an image by specifying the image's tag in
217
463
  # your request. When you remove the last tag from an image, the image is
@@ -221,9 +467,9 @@ module Aws::ECR
221
467
  # the image's digest in your request.
222
468
  #
223
469
  # @option params [String] :registry_id
224
- # The AWS account ID associated with the registry that contains the
225
- # image to delete. If you do not specify a registry, the default
226
- # registry is assumed.
470
+ # The Amazon Web Services account ID associated with the registry that
471
+ # contains the image to delete. If you do not specify a registry, the
472
+ # default registry is assumed.
227
473
  #
228
474
  # @option params [required, String] :repository_name
229
475
  # The repository that contains the image to delete.
@@ -286,7 +532,7 @@ module Aws::ECR
286
532
  # resp.failures #=> Array
287
533
  # resp.failures[0].image_id.image_digest #=> String
288
534
  # resp.failures[0].image_id.image_tag #=> String
289
- # resp.failures[0].failure_code #=> String, one of "InvalidImageDigest", "InvalidImageTag", "ImageTagDoesNotMatchDigest", "ImageNotFound", "MissingDigestAndTag"
535
+ # resp.failures[0].failure_code #=> String, one of "InvalidImageDigest", "InvalidImageTag", "ImageTagDoesNotMatchDigest", "ImageNotFound", "MissingDigestAndTag", "ImageReferencedByManifestList", "KmsError", "UpstreamAccessDenied", "UpstreamTooManyRequests", "UpstreamUnavailable"
290
536
  # resp.failures[0].failure_reason #=> String
291
537
  #
292
538
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchDeleteImage AWS API Documentation
@@ -298,14 +544,16 @@ module Aws::ECR
298
544
  req.send_request(options)
299
545
  end
300
546
 
301
- # Gets detailed information for specified images within a specified
302
- # repository. Images are specified with either `imageTag` or
303
- # `imageDigest`.
547
+ # Gets detailed information for an image. Images are specified with
548
+ # either an `imageTag` or `imageDigest`.
549
+ #
550
+ # When an image is pulled, the BatchGetImage API is called once to
551
+ # retrieve the image manifest.
304
552
  #
305
553
  # @option params [String] :registry_id
306
- # The AWS account ID associated with the registry that contains the
307
- # images to describe. If you do not specify a registry, the default
308
- # registry is assumed.
554
+ # The Amazon Web Services account ID associated with the registry that
555
+ # contains the images to describe. If you do not specify a registry, the
556
+ # default registry is assumed.
309
557
  #
310
558
  # @option params [required, String] :repository_name
311
559
  # The repository that contains the images to describe.
@@ -381,10 +629,11 @@ module Aws::ECR
381
629
  # resp.images[0].image_id.image_digest #=> String
382
630
  # resp.images[0].image_id.image_tag #=> String
383
631
  # resp.images[0].image_manifest #=> String
632
+ # resp.images[0].image_manifest_media_type #=> String
384
633
  # resp.failures #=> Array
385
634
  # resp.failures[0].image_id.image_digest #=> String
386
635
  # resp.failures[0].image_id.image_tag #=> String
387
- # resp.failures[0].failure_code #=> String, one of "InvalidImageDigest", "InvalidImageTag", "ImageTagDoesNotMatchDigest", "ImageNotFound", "MissingDigestAndTag"
636
+ # resp.failures[0].failure_code #=> String, one of "InvalidImageDigest", "InvalidImageTag", "ImageTagDoesNotMatchDigest", "ImageNotFound", "MissingDigestAndTag", "ImageReferencedByManifestList", "KmsError", "UpstreamAccessDenied", "UpstreamTooManyRequests", "UpstreamUnavailable"
388
637
  # resp.failures[0].failure_reason #=> String
389
638
  #
390
639
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchGetImage AWS API Documentation
@@ -396,21 +645,64 @@ module Aws::ECR
396
645
  req.send_request(options)
397
646
  end
398
647
 
648
+ # Gets the scanning configuration for one or more repositories.
649
+ #
650
+ # @option params [required, Array<String>] :repository_names
651
+ # One or more repository names to get the scanning configuration for.
652
+ #
653
+ # @return [Types::BatchGetRepositoryScanningConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
654
+ #
655
+ # * {Types::BatchGetRepositoryScanningConfigurationResponse#scanning_configurations #scanning_configurations} => Array&lt;Types::RepositoryScanningConfiguration&gt;
656
+ # * {Types::BatchGetRepositoryScanningConfigurationResponse#failures #failures} => Array&lt;Types::RepositoryScanningConfigurationFailure&gt;
657
+ #
658
+ # @example Request syntax with placeholder values
659
+ #
660
+ # resp = client.batch_get_repository_scanning_configuration({
661
+ # repository_names: ["RepositoryName"], # required
662
+ # })
663
+ #
664
+ # @example Response structure
665
+ #
666
+ # resp.scanning_configurations #=> Array
667
+ # resp.scanning_configurations[0].repository_arn #=> String
668
+ # resp.scanning_configurations[0].repository_name #=> String
669
+ # resp.scanning_configurations[0].scan_on_push #=> Boolean
670
+ # resp.scanning_configurations[0].scan_frequency #=> String, one of "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL"
671
+ # resp.scanning_configurations[0].applied_scan_filters #=> Array
672
+ # resp.scanning_configurations[0].applied_scan_filters[0].filter #=> String
673
+ # resp.scanning_configurations[0].applied_scan_filters[0].filter_type #=> String, one of "WILDCARD"
674
+ # resp.failures #=> Array
675
+ # resp.failures[0].repository_name #=> String
676
+ # resp.failures[0].failure_code #=> String, one of "REPOSITORY_NOT_FOUND"
677
+ # resp.failures[0].failure_reason #=> String
678
+ #
679
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchGetRepositoryScanningConfiguration AWS API Documentation
680
+ #
681
+ # @overload batch_get_repository_scanning_configuration(params = {})
682
+ # @param [Hash] params ({})
683
+ def batch_get_repository_scanning_configuration(params = {}, options = {})
684
+ req = build_request(:batch_get_repository_scanning_configuration, params)
685
+ req.send_request(options)
686
+ end
687
+
399
688
  # Informs Amazon ECR that the image layer upload has completed for a
400
689
  # specified registry, repository name, and upload ID. You can optionally
401
690
  # provide a `sha256` digest of the image layer for data validation
402
691
  # purposes.
403
692
  #
404
- # <note markdown="1"> This operation is used by the Amazon ECR proxy, and it is not intended
405
- # for general use by customers for pulling and pushing images. In most
406
- # cases, you should use the `docker` CLI to pull, tag, and push images.
693
+ # When an image is pushed, the CompleteLayerUpload API is called once
694
+ # per each new image layer to verify that the upload has completed.
695
+ #
696
+ # <note markdown="1"> This operation is used by the Amazon ECR proxy and is not generally
697
+ # used by customers for pulling and pushing images. In most cases, you
698
+ # should use the `docker` CLI to pull, tag, and push images.
407
699
  #
408
700
  # </note>
409
701
  #
410
702
  # @option params [String] :registry_id
411
- # The AWS account ID associated with the registry to which to upload
412
- # layers. If you do not specify a registry, the default registry is
413
- # assumed.
703
+ # The Amazon Web Services account ID associated with the registry to
704
+ # which to upload layers. If you do not specify a registry, the default
705
+ # registry is assumed.
414
706
  #
415
707
  # @option params [required, String] :repository_name
416
708
  # The name of the repository to associate with the image layer.
@@ -454,7 +746,99 @@ module Aws::ECR
454
746
  req.send_request(options)
455
747
  end
456
748
 
457
- # Creates an image repository.
749
+ # Creates a pull through cache rule. A pull through cache rule provides
750
+ # a way to cache images from an upstream registry source in your Amazon
751
+ # ECR private registry. For more information, see [Using pull through
752
+ # cache rules][1] in the *Amazon Elastic Container Registry User Guide*.
753
+ #
754
+ #
755
+ #
756
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache.html
757
+ #
758
+ # @option params [required, String] :ecr_repository_prefix
759
+ # The repository name prefix to use when caching images from the source
760
+ # registry.
761
+ #
762
+ # @option params [required, String] :upstream_registry_url
763
+ # The registry URL of the upstream public registry to use as the source
764
+ # for the pull through cache rule. The following is the syntax to use
765
+ # for each supported upstream registry.
766
+ #
767
+ # * Amazon ECR Public (`ecr-public`) - `public.ecr.aws`
768
+ #
769
+ # * Docker Hub (`docker-hub`) - `registry-1.docker.io`
770
+ #
771
+ # * Quay (`quay`) - `quay.io`
772
+ #
773
+ # * Kubernetes (`k8s`) - `registry.k8s.io`
774
+ #
775
+ # * GitHub Container Registry (`github-container-registry`) - `ghcr.io`
776
+ #
777
+ # * Microsoft Azure Container Registry (`azure-container-registry`) -
778
+ # `<custom>.azurecr.io`
779
+ #
780
+ # @option params [String] :registry_id
781
+ # The Amazon Web Services account ID associated with the registry to
782
+ # create the pull through cache rule for. If you do not specify a
783
+ # registry, the default registry is assumed.
784
+ #
785
+ # @option params [String] :upstream_registry
786
+ # The name of the upstream registry.
787
+ #
788
+ # @option params [String] :credential_arn
789
+ # The Amazon Resource Name (ARN) of the Amazon Web Services Secrets
790
+ # Manager secret that identifies the credentials to authenticate to the
791
+ # upstream registry.
792
+ #
793
+ # @return [Types::CreatePullThroughCacheRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
794
+ #
795
+ # * {Types::CreatePullThroughCacheRuleResponse#ecr_repository_prefix #ecr_repository_prefix} => String
796
+ # * {Types::CreatePullThroughCacheRuleResponse#upstream_registry_url #upstream_registry_url} => String
797
+ # * {Types::CreatePullThroughCacheRuleResponse#created_at #created_at} => Time
798
+ # * {Types::CreatePullThroughCacheRuleResponse#registry_id #registry_id} => String
799
+ # * {Types::CreatePullThroughCacheRuleResponse#upstream_registry #upstream_registry} => String
800
+ # * {Types::CreatePullThroughCacheRuleResponse#credential_arn #credential_arn} => String
801
+ #
802
+ # @example Request syntax with placeholder values
803
+ #
804
+ # resp = client.create_pull_through_cache_rule({
805
+ # ecr_repository_prefix: "PullThroughCacheRuleRepositoryPrefix", # required
806
+ # upstream_registry_url: "Url", # required
807
+ # registry_id: "RegistryId",
808
+ # upstream_registry: "ecr-public", # accepts ecr-public, quay, k8s, docker-hub, github-container-registry, azure-container-registry
809
+ # credential_arn: "CredentialArn",
810
+ # })
811
+ #
812
+ # @example Response structure
813
+ #
814
+ # resp.ecr_repository_prefix #=> String
815
+ # resp.upstream_registry_url #=> String
816
+ # resp.created_at #=> Time
817
+ # resp.registry_id #=> String
818
+ # resp.upstream_registry #=> String, one of "ecr-public", "quay", "k8s", "docker-hub", "github-container-registry", "azure-container-registry"
819
+ # resp.credential_arn #=> String
820
+ #
821
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreatePullThroughCacheRule AWS API Documentation
822
+ #
823
+ # @overload create_pull_through_cache_rule(params = {})
824
+ # @param [Hash] params ({})
825
+ def create_pull_through_cache_rule(params = {}, options = {})
826
+ req = build_request(:create_pull_through_cache_rule, params)
827
+ req.send_request(options)
828
+ end
829
+
830
+ # Creates a repository. For more information, see [Amazon ECR
831
+ # repositories][1] in the *Amazon Elastic Container Registry User
832
+ # Guide*.
833
+ #
834
+ #
835
+ #
836
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html
837
+ #
838
+ # @option params [String] :registry_id
839
+ # The Amazon Web Services account ID associated with the registry to
840
+ # create the repository. If you do not specify a registry, the default
841
+ # registry is assumed.
458
842
  #
459
843
  # @option params [required, String] :repository_name
460
844
  # The name to use for the repository. The repository name may be
@@ -462,6 +846,32 @@ module Aws::ECR
462
846
  # with a namespace to group the repository into a category (such as
463
847
  # `project-a/nginx-web-app`).
464
848
  #
849
+ # The repository name must start with a letter and can only contain
850
+ # lowercase letters, numbers, hyphens, underscores, and forward slashes.
851
+ #
852
+ # @option params [Array<Types::Tag>] :tags
853
+ # The metadata that you apply to the repository to help you categorize
854
+ # and organize them. Each tag consists of a key and an optional value,
855
+ # both of which you define. Tag keys can have a maximum character length
856
+ # of 128 characters, and tag values can have a maximum length of 256
857
+ # characters.
858
+ #
859
+ # @option params [String] :image_tag_mutability
860
+ # The tag mutability setting for the repository. If this parameter is
861
+ # omitted, the default setting of `MUTABLE` will be used which will
862
+ # allow image tags to be overwritten. If `IMMUTABLE` is specified, all
863
+ # image tags within the repository will be immutable which will prevent
864
+ # them from being overwritten.
865
+ #
866
+ # @option params [Types::ImageScanningConfiguration] :image_scanning_configuration
867
+ # The image scanning configuration for the repository. This determines
868
+ # whether images are scanned for known vulnerabilities after being
869
+ # pushed to the repository.
870
+ #
871
+ # @option params [Types::EncryptionConfiguration] :encryption_configuration
872
+ # The encryption configuration for the repository. This determines how
873
+ # the contents of your repository are encrypted at rest.
874
+ #
465
875
  # @return [Types::CreateRepositoryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
466
876
  #
467
877
  # * {Types::CreateRepositoryResponse#repository #repository} => Types::Repository
@@ -488,7 +898,22 @@ module Aws::ECR
488
898
  # @example Request syntax with placeholder values
489
899
  #
490
900
  # resp = client.create_repository({
901
+ # registry_id: "RegistryId",
491
902
  # repository_name: "RepositoryName", # required
903
+ # tags: [
904
+ # {
905
+ # key: "TagKey", # required
906
+ # value: "TagValue", # required
907
+ # },
908
+ # ],
909
+ # image_tag_mutability: "MUTABLE", # accepts MUTABLE, IMMUTABLE
910
+ # image_scanning_configuration: {
911
+ # scan_on_push: false,
912
+ # },
913
+ # encryption_configuration: {
914
+ # encryption_type: "AES256", # required, accepts AES256, KMS
915
+ # kms_key: "KmsKey",
916
+ # },
492
917
  # })
493
918
  #
494
919
  # @example Response structure
@@ -498,6 +923,10 @@ module Aws::ECR
498
923
  # resp.repository.repository_name #=> String
499
924
  # resp.repository.repository_uri #=> String
500
925
  # resp.repository.created_at #=> Time
926
+ # resp.repository.image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
927
+ # resp.repository.image_scanning_configuration.scan_on_push #=> Boolean
928
+ # resp.repository.encryption_configuration.encryption_type #=> String, one of "AES256", "KMS"
929
+ # resp.repository.encryption_configuration.kms_key #=> String
501
930
  #
502
931
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepository AWS API Documentation
503
932
  #
@@ -508,12 +937,12 @@ module Aws::ECR
508
937
  req.send_request(options)
509
938
  end
510
939
 
511
- # Deletes the specified lifecycle policy.
940
+ # Deletes the lifecycle policy associated with the specified repository.
512
941
  #
513
942
  # @option params [String] :registry_id
514
- # The AWS account ID associated with the registry that contains the
515
- # repository. If you do not specify a registry, the default registry is
516
- # assumed.
943
+ # The Amazon Web Services account ID associated with the registry that
944
+ # contains the repository. If you do not specify a registry, the default
945
+ # registry is assumed.
517
946
  #
518
947
  # @option params [required, String] :repository_name
519
948
  # The name of the repository.
@@ -548,19 +977,87 @@ module Aws::ECR
548
977
  req.send_request(options)
549
978
  end
550
979
 
551
- # Deletes an existing image repository. If a repository contains images,
552
- # you must use the `force` option to delete it.
980
+ # Deletes a pull through cache rule.
981
+ #
982
+ # @option params [required, String] :ecr_repository_prefix
983
+ # The Amazon ECR repository prefix associated with the pull through
984
+ # cache rule to delete.
553
985
  #
554
986
  # @option params [String] :registry_id
555
- # The AWS account ID associated with the registry that contains the
556
- # repository to delete. If you do not specify a registry, the default
557
- # registry is assumed.
987
+ # The Amazon Web Services account ID associated with the registry that
988
+ # contains the pull through cache rule. If you do not specify a
989
+ # registry, the default registry is assumed.
990
+ #
991
+ # @return [Types::DeletePullThroughCacheRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
992
+ #
993
+ # * {Types::DeletePullThroughCacheRuleResponse#ecr_repository_prefix #ecr_repository_prefix} => String
994
+ # * {Types::DeletePullThroughCacheRuleResponse#upstream_registry_url #upstream_registry_url} => String
995
+ # * {Types::DeletePullThroughCacheRuleResponse#created_at #created_at} => Time
996
+ # * {Types::DeletePullThroughCacheRuleResponse#registry_id #registry_id} => String
997
+ # * {Types::DeletePullThroughCacheRuleResponse#credential_arn #credential_arn} => String
998
+ #
999
+ # @example Request syntax with placeholder values
1000
+ #
1001
+ # resp = client.delete_pull_through_cache_rule({
1002
+ # ecr_repository_prefix: "PullThroughCacheRuleRepositoryPrefix", # required
1003
+ # registry_id: "RegistryId",
1004
+ # })
1005
+ #
1006
+ # @example Response structure
1007
+ #
1008
+ # resp.ecr_repository_prefix #=> String
1009
+ # resp.upstream_registry_url #=> String
1010
+ # resp.created_at #=> Time
1011
+ # resp.registry_id #=> String
1012
+ # resp.credential_arn #=> String
1013
+ #
1014
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeletePullThroughCacheRule AWS API Documentation
1015
+ #
1016
+ # @overload delete_pull_through_cache_rule(params = {})
1017
+ # @param [Hash] params ({})
1018
+ def delete_pull_through_cache_rule(params = {}, options = {})
1019
+ req = build_request(:delete_pull_through_cache_rule, params)
1020
+ req.send_request(options)
1021
+ end
1022
+
1023
+ # Deletes the registry permissions policy.
1024
+ #
1025
+ # @return [Types::DeleteRegistryPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1026
+ #
1027
+ # * {Types::DeleteRegistryPolicyResponse#registry_id #registry_id} => String
1028
+ # * {Types::DeleteRegistryPolicyResponse#policy_text #policy_text} => String
1029
+ #
1030
+ # @example Response structure
1031
+ #
1032
+ # resp.registry_id #=> String
1033
+ # resp.policy_text #=> String
1034
+ #
1035
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRegistryPolicy AWS API Documentation
1036
+ #
1037
+ # @overload delete_registry_policy(params = {})
1038
+ # @param [Hash] params ({})
1039
+ def delete_registry_policy(params = {}, options = {})
1040
+ req = build_request(:delete_registry_policy, params)
1041
+ req.send_request(options)
1042
+ end
1043
+
1044
+ # Deletes a repository. If the repository isn't empty, you must either
1045
+ # delete the contents of the repository or use the `force` option to
1046
+ # delete the repository and have Amazon ECR delete all of its contents
1047
+ # on your behalf.
1048
+ #
1049
+ # @option params [String] :registry_id
1050
+ # The Amazon Web Services account ID associated with the registry that
1051
+ # contains the repository to delete. If you do not specify a registry,
1052
+ # the default registry is assumed.
558
1053
  #
559
1054
  # @option params [required, String] :repository_name
560
1055
  # The name of the repository to delete.
561
1056
  #
562
1057
  # @option params [Boolean] :force
563
- # If a repository contains images, forces the deletion.
1058
+ # If true, deleting the repository force deletes the contents of the
1059
+ # repository. If false, the repository must be empty before attempting
1060
+ # to delete it.
564
1061
  #
565
1062
  # @return [Types::DeleteRepositoryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
566
1063
  #
@@ -601,6 +1098,10 @@ module Aws::ECR
601
1098
  # resp.repository.repository_name #=> String
602
1099
  # resp.repository.repository_uri #=> String
603
1100
  # resp.repository.created_at #=> Time
1101
+ # resp.repository.image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
1102
+ # resp.repository.image_scanning_configuration.scan_on_push #=> Boolean
1103
+ # resp.repository.encryption_configuration.encryption_type #=> String, one of "AES256", "KMS"
1104
+ # resp.repository.encryption_configuration.kms_key #=> String
604
1105
  #
605
1106
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepository AWS API Documentation
606
1107
  #
@@ -611,12 +1112,13 @@ module Aws::ECR
611
1112
  req.send_request(options)
612
1113
  end
613
1114
 
614
- # Deletes the repository policy from a specified repository.
1115
+ # Deletes the repository policy associated with the specified
1116
+ # repository.
615
1117
  #
616
1118
  # @option params [String] :registry_id
617
- # The AWS account ID associated with the registry that contains the
618
- # repository policy to delete. If you do not specify a registry, the
619
- # default registry is assumed.
1119
+ # The Amazon Web Services account ID associated with the registry that
1120
+ # contains the repository policy to delete. If you do not specify a
1121
+ # registry, the default registry is assumed.
620
1122
  #
621
1123
  # @option params [required, String] :repository_name
622
1124
  # The name of the repository that is associated with the repository
@@ -666,8 +1168,209 @@ module Aws::ECR
666
1168
  req.send_request(options)
667
1169
  end
668
1170
 
669
- # Returns metadata about the images in a repository, including image
670
- # size, image tags, and creation date.
1171
+ # Returns the replication status for a specified image.
1172
+ #
1173
+ # @option params [required, String] :repository_name
1174
+ # The name of the repository that the image is in.
1175
+ #
1176
+ # @option params [required, Types::ImageIdentifier] :image_id
1177
+ # An object with identifying information for an image in an Amazon ECR
1178
+ # repository.
1179
+ #
1180
+ # @option params [String] :registry_id
1181
+ # The Amazon Web Services account ID associated with the registry. If
1182
+ # you do not specify a registry, the default registry is assumed.
1183
+ #
1184
+ # @return [Types::DescribeImageReplicationStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1185
+ #
1186
+ # * {Types::DescribeImageReplicationStatusResponse#repository_name #repository_name} => String
1187
+ # * {Types::DescribeImageReplicationStatusResponse#image_id #image_id} => Types::ImageIdentifier
1188
+ # * {Types::DescribeImageReplicationStatusResponse#replication_statuses #replication_statuses} => Array&lt;Types::ImageReplicationStatus&gt;
1189
+ #
1190
+ # @example Request syntax with placeholder values
1191
+ #
1192
+ # resp = client.describe_image_replication_status({
1193
+ # repository_name: "RepositoryName", # required
1194
+ # image_id: { # required
1195
+ # image_digest: "ImageDigest",
1196
+ # image_tag: "ImageTag",
1197
+ # },
1198
+ # registry_id: "RegistryId",
1199
+ # })
1200
+ #
1201
+ # @example Response structure
1202
+ #
1203
+ # resp.repository_name #=> String
1204
+ # resp.image_id.image_digest #=> String
1205
+ # resp.image_id.image_tag #=> String
1206
+ # resp.replication_statuses #=> Array
1207
+ # resp.replication_statuses[0].region #=> String
1208
+ # resp.replication_statuses[0].registry_id #=> String
1209
+ # resp.replication_statuses[0].status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED"
1210
+ # resp.replication_statuses[0].failure_code #=> String
1211
+ #
1212
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageReplicationStatus AWS API Documentation
1213
+ #
1214
+ # @overload describe_image_replication_status(params = {})
1215
+ # @param [Hash] params ({})
1216
+ def describe_image_replication_status(params = {}, options = {})
1217
+ req = build_request(:describe_image_replication_status, params)
1218
+ req.send_request(options)
1219
+ end
1220
+
1221
+ # Returns the scan findings for the specified image.
1222
+ #
1223
+ # @option params [String] :registry_id
1224
+ # The Amazon Web Services account ID associated with the registry that
1225
+ # contains the repository in which to describe the image scan findings
1226
+ # for. If you do not specify a registry, the default registry is
1227
+ # assumed.
1228
+ #
1229
+ # @option params [required, String] :repository_name
1230
+ # The repository for the image for which to describe the scan findings.
1231
+ #
1232
+ # @option params [required, Types::ImageIdentifier] :image_id
1233
+ # An object with identifying information for an image in an Amazon ECR
1234
+ # repository.
1235
+ #
1236
+ # @option params [String] :next_token
1237
+ # The `nextToken` value returned from a previous paginated
1238
+ # `DescribeImageScanFindings` request where `maxResults` was used and
1239
+ # the results exceeded the value of that parameter. Pagination continues
1240
+ # from the end of the previous results that returned the `nextToken`
1241
+ # value. This value is null when there are no more results to return.
1242
+ #
1243
+ # @option params [Integer] :max_results
1244
+ # The maximum number of image scan results returned by
1245
+ # `DescribeImageScanFindings` in paginated output. When this parameter
1246
+ # is used, `DescribeImageScanFindings` only returns `maxResults` results
1247
+ # in a single page along with a `nextToken` response element. The
1248
+ # remaining results of the initial request can be seen by sending
1249
+ # another `DescribeImageScanFindings` request with the returned
1250
+ # `nextToken` value. This value can be between 1 and 1000. If this
1251
+ # parameter is not used, then `DescribeImageScanFindings` returns up to
1252
+ # 100 results and a `nextToken` value, if applicable.
1253
+ #
1254
+ # @return [Types::DescribeImageScanFindingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1255
+ #
1256
+ # * {Types::DescribeImageScanFindingsResponse#registry_id #registry_id} => String
1257
+ # * {Types::DescribeImageScanFindingsResponse#repository_name #repository_name} => String
1258
+ # * {Types::DescribeImageScanFindingsResponse#image_id #image_id} => Types::ImageIdentifier
1259
+ # * {Types::DescribeImageScanFindingsResponse#image_scan_status #image_scan_status} => Types::ImageScanStatus
1260
+ # * {Types::DescribeImageScanFindingsResponse#image_scan_findings #image_scan_findings} => Types::ImageScanFindings
1261
+ # * {Types::DescribeImageScanFindingsResponse#next_token #next_token} => String
1262
+ #
1263
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1264
+ #
1265
+ # @example Request syntax with placeholder values
1266
+ #
1267
+ # resp = client.describe_image_scan_findings({
1268
+ # registry_id: "RegistryId",
1269
+ # repository_name: "RepositoryName", # required
1270
+ # image_id: { # required
1271
+ # image_digest: "ImageDigest",
1272
+ # image_tag: "ImageTag",
1273
+ # },
1274
+ # next_token: "NextToken",
1275
+ # max_results: 1,
1276
+ # })
1277
+ #
1278
+ # @example Response structure
1279
+ #
1280
+ # resp.registry_id #=> String
1281
+ # resp.repository_name #=> String
1282
+ # resp.image_id.image_digest #=> String
1283
+ # resp.image_id.image_tag #=> String
1284
+ # resp.image_scan_status.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED", "UNSUPPORTED_IMAGE", "ACTIVE", "PENDING", "SCAN_ELIGIBILITY_EXPIRED", "FINDINGS_UNAVAILABLE"
1285
+ # resp.image_scan_status.description #=> String
1286
+ # resp.image_scan_findings.image_scan_completed_at #=> Time
1287
+ # resp.image_scan_findings.vulnerability_source_updated_at #=> Time
1288
+ # resp.image_scan_findings.finding_severity_counts #=> Hash
1289
+ # resp.image_scan_findings.finding_severity_counts["FindingSeverity"] #=> Integer
1290
+ # resp.image_scan_findings.findings #=> Array
1291
+ # resp.image_scan_findings.findings[0].name #=> String
1292
+ # resp.image_scan_findings.findings[0].description #=> String
1293
+ # resp.image_scan_findings.findings[0].uri #=> String
1294
+ # resp.image_scan_findings.findings[0].severity #=> String, one of "INFORMATIONAL", "LOW", "MEDIUM", "HIGH", "CRITICAL", "UNDEFINED"
1295
+ # resp.image_scan_findings.findings[0].attributes #=> Array
1296
+ # resp.image_scan_findings.findings[0].attributes[0].key #=> String
1297
+ # resp.image_scan_findings.findings[0].attributes[0].value #=> <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
1298
+ # resp.image_scan_findings.enhanced_findings #=> Array
1299
+ # resp.image_scan_findings.enhanced_findings[0].aws_account_id #=> String
1300
+ # resp.image_scan_findings.enhanced_findings[0].description #=> String
1301
+ # resp.image_scan_findings.enhanced_findings[0].finding_arn #=> String
1302
+ # resp.image_scan_findings.enhanced_findings[0].first_observed_at #=> Time
1303
+ # resp.image_scan_findings.enhanced_findings[0].last_observed_at #=> Time
1304
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.cvss #=> Array
1305
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.cvss[0].base_score #=> Float
1306
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.cvss[0].scoring_vector #=> String
1307
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.cvss[0].source #=> String
1308
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.cvss[0].version #=> String
1309
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.reference_urls #=> Array
1310
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.reference_urls[0] #=> String
1311
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.related_vulnerabilities #=> Array
1312
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.related_vulnerabilities[0] #=> String
1313
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.source #=> String
1314
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.source_url #=> String
1315
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vendor_created_at #=> Time
1316
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vendor_severity #=> String
1317
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vendor_updated_at #=> Time
1318
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerability_id #=> String
1319
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages #=> Array
1320
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].arch #=> String
1321
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].epoch #=> Integer
1322
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].file_path #=> String
1323
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].name #=> String
1324
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].package_manager #=> String
1325
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].release #=> String
1326
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].source_layer_hash #=> String
1327
+ # resp.image_scan_findings.enhanced_findings[0].package_vulnerability_details.vulnerable_packages[0].version #=> String
1328
+ # resp.image_scan_findings.enhanced_findings[0].remediation.recommendation.url #=> String
1329
+ # resp.image_scan_findings.enhanced_findings[0].remediation.recommendation.text #=> String
1330
+ # resp.image_scan_findings.enhanced_findings[0].resources #=> Array
1331
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.architecture #=> String
1332
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.author #=> String
1333
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.image_hash #=> String
1334
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.image_tags #=> Array
1335
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.image_tags[0] #=> String
1336
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.platform #=> String
1337
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.pushed_at #=> Time
1338
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.registry #=> String
1339
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].details.aws_ecr_container_image.repository_name #=> String
1340
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].id #=> String
1341
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].tags #=> Hash
1342
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].tags["TagKey"] #=> String
1343
+ # resp.image_scan_findings.enhanced_findings[0].resources[0].type #=> String
1344
+ # resp.image_scan_findings.enhanced_findings[0].score #=> Float
1345
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.adjustments #=> Array
1346
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.adjustments[0].metric #=> String
1347
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.adjustments[0].reason #=> String
1348
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.score #=> Float
1349
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.score_source #=> String
1350
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.scoring_vector #=> String
1351
+ # resp.image_scan_findings.enhanced_findings[0].score_details.cvss.version #=> String
1352
+ # resp.image_scan_findings.enhanced_findings[0].severity #=> String
1353
+ # resp.image_scan_findings.enhanced_findings[0].status #=> String
1354
+ # resp.image_scan_findings.enhanced_findings[0].title #=> String
1355
+ # resp.image_scan_findings.enhanced_findings[0].type #=> String
1356
+ # resp.image_scan_findings.enhanced_findings[0].updated_at #=> Time
1357
+ # resp.next_token #=> String
1358
+ #
1359
+ #
1360
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1361
+ #
1362
+ # * image_scan_complete
1363
+ #
1364
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageScanFindings AWS API Documentation
1365
+ #
1366
+ # @overload describe_image_scan_findings(params = {})
1367
+ # @param [Hash] params ({})
1368
+ def describe_image_scan_findings(params = {}, options = {})
1369
+ req = build_request(:describe_image_scan_findings, params)
1370
+ req.send_request(options)
1371
+ end
1372
+
1373
+ # Returns metadata about the images in a repository.
671
1374
  #
672
1375
  # <note markdown="1"> Beginning with Docker version 1.9, the Docker client compresses image
673
1376
  # layers before pushing them to a V2 Docker registry. The output of the
@@ -678,13 +1381,12 @@ module Aws::ECR
678
1381
  # </note>
679
1382
  #
680
1383
  # @option params [String] :registry_id
681
- # The AWS account ID associated with the registry that contains the
682
- # repository in which to describe images. If you do not specify a
683
- # registry, the default registry is assumed.
1384
+ # The Amazon Web Services account ID associated with the registry that
1385
+ # contains the repository in which to describe images. If you do not
1386
+ # specify a registry, the default registry is assumed.
684
1387
  #
685
1388
  # @option params [required, String] :repository_name
686
- # A list of repositories to describe. If this parameter is omitted, then
687
- # all repositories in a registry are described.
1389
+ # The repository that contains the images to describe.
688
1390
  #
689
1391
  # @option params [Array<Types::ImageIdentifier>] :image_ids
690
1392
  # The list of image IDs for the requested repository.
@@ -703,7 +1405,7 @@ module Aws::ECR
703
1405
  # only returns `maxResults` results in a single page along with a
704
1406
  # `nextToken` response element. The remaining results of the initial
705
1407
  # request can be seen by sending another `DescribeImages` request with
706
- # the returned `nextToken` value. This value can be between 1 and 100.
1408
+ # the returned `nextToken` value. This value can be between 1 and 1000.
707
1409
  # If this parameter is not used, then `DescribeImages` returns up to 100
708
1410
  # results and a `nextToken` value, if applicable. This option cannot be
709
1411
  # used when you specify images with `imageIds`.
@@ -717,6 +1419,8 @@ module Aws::ECR
717
1419
  # * {Types::DescribeImagesResponse#image_details #image_details} => Array&lt;Types::ImageDetail&gt;
718
1420
  # * {Types::DescribeImagesResponse#next_token #next_token} => String
719
1421
  #
1422
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1423
+ #
720
1424
  # @example Request syntax with placeholder values
721
1425
  #
722
1426
  # resp = client.describe_images({
@@ -731,7 +1435,7 @@ module Aws::ECR
731
1435
  # next_token: "NextToken",
732
1436
  # max_results: 1,
733
1437
  # filter: {
734
- # tag_status: "TAGGED", # accepts TAGGED, UNTAGGED
1438
+ # tag_status: "TAGGED", # accepts TAGGED, UNTAGGED, ANY
735
1439
  # },
736
1440
  # })
737
1441
  #
@@ -745,6 +1449,15 @@ module Aws::ECR
745
1449
  # resp.image_details[0].image_tags[0] #=> String
746
1450
  # resp.image_details[0].image_size_in_bytes #=> Integer
747
1451
  # resp.image_details[0].image_pushed_at #=> Time
1452
+ # resp.image_details[0].image_scan_status.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED", "UNSUPPORTED_IMAGE", "ACTIVE", "PENDING", "SCAN_ELIGIBILITY_EXPIRED", "FINDINGS_UNAVAILABLE"
1453
+ # resp.image_details[0].image_scan_status.description #=> String
1454
+ # resp.image_details[0].image_scan_findings_summary.image_scan_completed_at #=> Time
1455
+ # resp.image_details[0].image_scan_findings_summary.vulnerability_source_updated_at #=> Time
1456
+ # resp.image_details[0].image_scan_findings_summary.finding_severity_counts #=> Hash
1457
+ # resp.image_details[0].image_scan_findings_summary.finding_severity_counts["FindingSeverity"] #=> Integer
1458
+ # resp.image_details[0].image_manifest_media_type #=> String
1459
+ # resp.image_details[0].artifact_media_type #=> String
1460
+ # resp.image_details[0].last_recorded_pull_time #=> Time
748
1461
  # resp.next_token #=> String
749
1462
  #
750
1463
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImages AWS API Documentation
@@ -756,12 +1469,110 @@ module Aws::ECR
756
1469
  req.send_request(options)
757
1470
  end
758
1471
 
1472
+ # Returns the pull through cache rules for a registry.
1473
+ #
1474
+ # @option params [String] :registry_id
1475
+ # The Amazon Web Services account ID associated with the registry to
1476
+ # return the pull through cache rules for. If you do not specify a
1477
+ # registry, the default registry is assumed.
1478
+ #
1479
+ # @option params [Array<String>] :ecr_repository_prefixes
1480
+ # The Amazon ECR repository prefixes associated with the pull through
1481
+ # cache rules to return. If no repository prefix value is specified, all
1482
+ # pull through cache rules are returned.
1483
+ #
1484
+ # @option params [String] :next_token
1485
+ # The `nextToken` value returned from a previous paginated
1486
+ # `DescribePullThroughCacheRulesRequest` request where `maxResults` was
1487
+ # used and the results exceeded the value of that parameter. Pagination
1488
+ # continues from the end of the previous results that returned the
1489
+ # `nextToken` value. This value is null when there are no more results
1490
+ # to return.
1491
+ #
1492
+ # @option params [Integer] :max_results
1493
+ # The maximum number of pull through cache rules returned by
1494
+ # `DescribePullThroughCacheRulesRequest` in paginated output. When this
1495
+ # parameter is used, `DescribePullThroughCacheRulesRequest` only returns
1496
+ # `maxResults` results in a single page along with a `nextToken`
1497
+ # response element. The remaining results of the initial request can be
1498
+ # seen by sending another `DescribePullThroughCacheRulesRequest` request
1499
+ # with the returned `nextToken` value. This value can be between 1 and
1500
+ # 1000. If this parameter is not used, then
1501
+ # `DescribePullThroughCacheRulesRequest` returns up to 100 results and a
1502
+ # `nextToken` value, if applicable.
1503
+ #
1504
+ # @return [Types::DescribePullThroughCacheRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1505
+ #
1506
+ # * {Types::DescribePullThroughCacheRulesResponse#pull_through_cache_rules #pull_through_cache_rules} => Array&lt;Types::PullThroughCacheRule&gt;
1507
+ # * {Types::DescribePullThroughCacheRulesResponse#next_token #next_token} => String
1508
+ #
1509
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1510
+ #
1511
+ # @example Request syntax with placeholder values
1512
+ #
1513
+ # resp = client.describe_pull_through_cache_rules({
1514
+ # registry_id: "RegistryId",
1515
+ # ecr_repository_prefixes: ["PullThroughCacheRuleRepositoryPrefix"],
1516
+ # next_token: "NextToken",
1517
+ # max_results: 1,
1518
+ # })
1519
+ #
1520
+ # @example Response structure
1521
+ #
1522
+ # resp.pull_through_cache_rules #=> Array
1523
+ # resp.pull_through_cache_rules[0].ecr_repository_prefix #=> String
1524
+ # resp.pull_through_cache_rules[0].upstream_registry_url #=> String
1525
+ # resp.pull_through_cache_rules[0].created_at #=> Time
1526
+ # resp.pull_through_cache_rules[0].registry_id #=> String
1527
+ # resp.pull_through_cache_rules[0].credential_arn #=> String
1528
+ # resp.pull_through_cache_rules[0].upstream_registry #=> String, one of "ecr-public", "quay", "k8s", "docker-hub", "github-container-registry", "azure-container-registry"
1529
+ # resp.pull_through_cache_rules[0].updated_at #=> Time
1530
+ # resp.next_token #=> String
1531
+ #
1532
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribePullThroughCacheRules AWS API Documentation
1533
+ #
1534
+ # @overload describe_pull_through_cache_rules(params = {})
1535
+ # @param [Hash] params ({})
1536
+ def describe_pull_through_cache_rules(params = {}, options = {})
1537
+ req = build_request(:describe_pull_through_cache_rules, params)
1538
+ req.send_request(options)
1539
+ end
1540
+
1541
+ # Describes the settings for a registry. The replication configuration
1542
+ # for a repository can be created or updated with the
1543
+ # PutReplicationConfiguration API action.
1544
+ #
1545
+ # @return [Types::DescribeRegistryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1546
+ #
1547
+ # * {Types::DescribeRegistryResponse#registry_id #registry_id} => String
1548
+ # * {Types::DescribeRegistryResponse#replication_configuration #replication_configuration} => Types::ReplicationConfiguration
1549
+ #
1550
+ # @example Response structure
1551
+ #
1552
+ # resp.registry_id #=> String
1553
+ # resp.replication_configuration.rules #=> Array
1554
+ # resp.replication_configuration.rules[0].destinations #=> Array
1555
+ # resp.replication_configuration.rules[0].destinations[0].region #=> String
1556
+ # resp.replication_configuration.rules[0].destinations[0].registry_id #=> String
1557
+ # resp.replication_configuration.rules[0].repository_filters #=> Array
1558
+ # resp.replication_configuration.rules[0].repository_filters[0].filter #=> String
1559
+ # resp.replication_configuration.rules[0].repository_filters[0].filter_type #=> String, one of "PREFIX_MATCH"
1560
+ #
1561
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRegistry AWS API Documentation
1562
+ #
1563
+ # @overload describe_registry(params = {})
1564
+ # @param [Hash] params ({})
1565
+ def describe_registry(params = {}, options = {})
1566
+ req = build_request(:describe_registry, params)
1567
+ req.send_request(options)
1568
+ end
1569
+
759
1570
  # Describes image repositories in a registry.
760
1571
  #
761
1572
  # @option params [String] :registry_id
762
- # The AWS account ID associated with the registry that contains the
763
- # repositories to be described. If you do not specify a registry, the
764
- # default registry is assumed.
1573
+ # The Amazon Web Services account ID associated with the registry that
1574
+ # contains the repositories to be described. If you do not specify a
1575
+ # registry, the default registry is assumed.
765
1576
  #
766
1577
  # @option params [Array<String>] :repository_names
767
1578
  # A list of repositories to describe. If this parameter is omitted, then
@@ -789,7 +1600,7 @@ module Aws::ECR
789
1600
  # single page along with a `nextToken` response element. The remaining
790
1601
  # results of the initial request can be seen by sending another
791
1602
  # `DescribeRepositories` request with the returned `nextToken` value.
792
- # This value can be between 1 and 100. If this parameter is not used,
1603
+ # This value can be between 1 and 1000. If this parameter is not used,
793
1604
  # then `DescribeRepositories` returns up to 100 results and a
794
1605
  # `nextToken` value, if applicable. This option cannot be used when you
795
1606
  # specify repositories with `repositoryNames`.
@@ -799,6 +1610,8 @@ module Aws::ECR
799
1610
  # * {Types::DescribeRepositoriesResponse#repositories #repositories} => Array&lt;Types::Repository&gt;
800
1611
  # * {Types::DescribeRepositoriesResponse#next_token #next_token} => String
801
1612
  #
1613
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1614
+ #
802
1615
  #
803
1616
  # @example Example: To describe all repositories in the current account
804
1617
  #
@@ -841,6 +1654,10 @@ module Aws::ECR
841
1654
  # resp.repositories[0].repository_name #=> String
842
1655
  # resp.repositories[0].repository_uri #=> String
843
1656
  # resp.repositories[0].created_at #=> Time
1657
+ # resp.repositories[0].image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
1658
+ # resp.repositories[0].image_scanning_configuration.scan_on_push #=> Boolean
1659
+ # resp.repositories[0].encryption_configuration.encryption_type #=> String, one of "AES256", "KMS"
1660
+ # resp.repositories[0].encryption_configuration.kms_key #=> String
844
1661
  # resp.next_token #=> String
845
1662
  #
846
1663
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositories AWS API Documentation
@@ -852,20 +1669,26 @@ module Aws::ECR
852
1669
  req.send_request(options)
853
1670
  end
854
1671
 
855
- # Retrieves a token that is valid for a specified registry for 12 hours.
856
- # This command allows you to use the `docker` CLI to push and pull
857
- # images with Amazon ECR. If you do not specify a registry, the default
858
- # registry is assumed.
1672
+ # Retrieves an authorization token. An authorization token represents
1673
+ # your IAM authentication credentials and can be used to access any
1674
+ # Amazon ECR registry that your IAM principal has access to. The
1675
+ # authorization token is valid for 12 hours.
859
1676
  #
860
- # The `authorizationToken` returned for each registry specified is a
861
- # base64 encoded string that can be decoded and used in a `docker login`
862
- # command to authenticate to a registry. The AWS CLI offers an `aws ecr
863
- # get-login` command that simplifies the login process.
1677
+ # The `authorizationToken` returned is a base64 encoded string that can
1678
+ # be decoded and used in a `docker login` command to authenticate to a
1679
+ # registry. The CLI offers an `get-login-password` command that
1680
+ # simplifies the login process. For more information, see [Registry
1681
+ # authentication][1] in the *Amazon Elastic Container Registry User
1682
+ # Guide*.
1683
+ #
1684
+ #
1685
+ #
1686
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth
864
1687
  #
865
1688
  # @option params [Array<String>] :registry_ids
866
- # A list of AWS account IDs that are associated with the registries for
867
- # which to get authorization tokens. If you do not specify a registry,
868
- # the default registry is assumed.
1689
+ # A list of Amazon Web Services account IDs that are associated with the
1690
+ # registries for which to get AuthorizationData objects. If you do not
1691
+ # specify a registry, the default registry is assumed.
869
1692
  #
870
1693
  # @return [Types::GetAuthorizationTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
871
1694
  #
@@ -883,8 +1706,8 @@ module Aws::ECR
883
1706
  # {
884
1707
  # authorization_data: [
885
1708
  # {
886
- # authorization_token: "QVdTOkN...",
887
- # expires_at: Time.parse("1470951892432"),
1709
+ # authorization_token: "QVdTOkNEXAMPLE",
1710
+ # expires_at: Time.parse("2022-05-17T06:56:13.652000+00:00"),
888
1711
  # proxy_endpoint: "https://012345678901.dkr.ecr.us-west-2.amazonaws.com",
889
1712
  # },
890
1713
  # ],
@@ -916,16 +1739,19 @@ module Aws::ECR
916
1739
  # image layer. You can only get URLs for image layers that are
917
1740
  # referenced in an image.
918
1741
  #
919
- # <note markdown="1"> This operation is used by the Amazon ECR proxy, and it is not intended
920
- # for general use by customers for pulling and pushing images. In most
921
- # cases, you should use the `docker` CLI to pull, tag, and push images.
1742
+ # When an image is pulled, the GetDownloadUrlForLayer API is called once
1743
+ # per image layer that is not already cached.
1744
+ #
1745
+ # <note markdown="1"> This operation is used by the Amazon ECR proxy and is not generally
1746
+ # used by customers for pulling and pushing images. In most cases, you
1747
+ # should use the `docker` CLI to pull, tag, and push images.
922
1748
  #
923
1749
  # </note>
924
1750
  #
925
1751
  # @option params [String] :registry_id
926
- # The AWS account ID associated with the registry that contains the
927
- # image layer to download. If you do not specify a registry, the default
928
- # registry is assumed.
1752
+ # The Amazon Web Services account ID associated with the registry that
1753
+ # contains the image layer to download. If you do not specify a
1754
+ # registry, the default registry is assumed.
929
1755
  #
930
1756
  # @option params [required, String] :repository_name
931
1757
  # The name of the repository that is associated with the image layer to
@@ -961,12 +1787,12 @@ module Aws::ECR
961
1787
  req.send_request(options)
962
1788
  end
963
1789
 
964
- # Retrieves the specified lifecycle policy.
1790
+ # Retrieves the lifecycle policy for the specified repository.
965
1791
  #
966
1792
  # @option params [String] :registry_id
967
- # The AWS account ID associated with the registry that contains the
968
- # repository. If you do not specify a registry, the default registry is
969
- # assumed.
1793
+ # The Amazon Web Services account ID associated with the registry that
1794
+ # contains the repository. If you do not specify a registry, the default
1795
+ # registry is assumed.
970
1796
  #
971
1797
  # @option params [required, String] :repository_name
972
1798
  # The name of the repository.
@@ -1001,13 +1827,13 @@ module Aws::ECR
1001
1827
  req.send_request(options)
1002
1828
  end
1003
1829
 
1004
- # Retrieves the results of the specified lifecycle policy preview
1005
- # request.
1830
+ # Retrieves the results of the lifecycle policy preview request for the
1831
+ # specified repository.
1006
1832
  #
1007
1833
  # @option params [String] :registry_id
1008
- # The AWS account ID associated with the registry that contains the
1009
- # repository. If you do not specify a registry, the default registry is
1010
- # assumed.
1834
+ # The Amazon Web Services account ID associated with the registry that
1835
+ # contains the repository. If you do not specify a registry, the default
1836
+ # registry is assumed.
1011
1837
  #
1012
1838
  # @option params [required, String] :repository_name
1013
1839
  # The name of the repository.
@@ -1032,7 +1858,7 @@ module Aws::ECR
1032
1858
  # response element. The remaining results of the initial request can be
1033
1859
  # seen by sending
 another `GetLifecyclePolicyPreviewRequest` request
1034
1860
  # with the returned `nextToken`
 value. This value can be between 1 and
1035
- # 100. If this
 parameter is not used, then
1861
+ # 1000. If this
 parameter is not used, then
1036
1862
  # `GetLifecyclePolicyPreviewRequest` returns up to
 100 results and a
1037
1863
  # `nextToken` value, if
 applicable. This option cannot be used when you
1038
1864
  # specify images with `imageIds`.
@@ -1051,6 +1877,8 @@ module Aws::ECR
1051
1877
  # * {Types::GetLifecyclePolicyPreviewResponse#preview_results #preview_results} => Array&lt;Types::LifecyclePolicyPreviewResult&gt;
1052
1878
  # * {Types::GetLifecyclePolicyPreviewResponse#summary #summary} => Types::LifecyclePolicyPreviewSummary
1053
1879
  #
1880
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1881
+ #
1054
1882
  # @example Request syntax with placeholder values
1055
1883
  #
1056
1884
  # resp = client.get_lifecycle_policy_preview({
@@ -1065,7 +1893,7 @@ module Aws::ECR
1065
1893
  # next_token: "NextToken",
1066
1894
  # max_results: 1,
1067
1895
  # filter: {
1068
- # tag_status: "TAGGED", # accepts TAGGED, UNTAGGED
1896
+ # tag_status: "TAGGED", # accepts TAGGED, UNTAGGED, ANY
1069
1897
  # },
1070
1898
  # })
1071
1899
  #
@@ -1085,6 +1913,11 @@ module Aws::ECR
1085
1913
  # resp.preview_results[0].applied_rule_priority #=> Integer
1086
1914
  # resp.summary.expiring_image_total_count #=> Integer
1087
1915
  #
1916
+ #
1917
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
1918
+ #
1919
+ # * lifecycle_policy_preview_complete
1920
+ #
1088
1921
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyPreview AWS API Documentation
1089
1922
  #
1090
1923
  # @overload get_lifecycle_policy_preview(params = {})
@@ -1094,12 +1927,59 @@ module Aws::ECR
1094
1927
  req.send_request(options)
1095
1928
  end
1096
1929
 
1097
- # Retrieves the repository policy for a specified repository.
1930
+ # Retrieves the permissions policy for a registry.
1098
1931
  #
1099
- # @option params [String] :registry_id
1100
- # The AWS account ID associated with the registry that contains the
1101
- # repository. If you do not specify a registry, the default registry is
1102
- # assumed.
1932
+ # @return [Types::GetRegistryPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1933
+ #
1934
+ # * {Types::GetRegistryPolicyResponse#registry_id #registry_id} => String
1935
+ # * {Types::GetRegistryPolicyResponse#policy_text #policy_text} => String
1936
+ #
1937
+ # @example Response structure
1938
+ #
1939
+ # resp.registry_id #=> String
1940
+ # resp.policy_text #=> String
1941
+ #
1942
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRegistryPolicy AWS API Documentation
1943
+ #
1944
+ # @overload get_registry_policy(params = {})
1945
+ # @param [Hash] params ({})
1946
+ def get_registry_policy(params = {}, options = {})
1947
+ req = build_request(:get_registry_policy, params)
1948
+ req.send_request(options)
1949
+ end
1950
+
1951
+ # Retrieves the scanning configuration for a registry.
1952
+ #
1953
+ # @return [Types::GetRegistryScanningConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1954
+ #
1955
+ # * {Types::GetRegistryScanningConfigurationResponse#registry_id #registry_id} => String
1956
+ # * {Types::GetRegistryScanningConfigurationResponse#scanning_configuration #scanning_configuration} => Types::RegistryScanningConfiguration
1957
+ #
1958
+ # @example Response structure
1959
+ #
1960
+ # resp.registry_id #=> String
1961
+ # resp.scanning_configuration.scan_type #=> String, one of "BASIC", "ENHANCED"
1962
+ # resp.scanning_configuration.rules #=> Array
1963
+ # resp.scanning_configuration.rules[0].scan_frequency #=> String, one of "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL"
1964
+ # resp.scanning_configuration.rules[0].repository_filters #=> Array
1965
+ # resp.scanning_configuration.rules[0].repository_filters[0].filter #=> String
1966
+ # resp.scanning_configuration.rules[0].repository_filters[0].filter_type #=> String, one of "WILDCARD"
1967
+ #
1968
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRegistryScanningConfiguration AWS API Documentation
1969
+ #
1970
+ # @overload get_registry_scanning_configuration(params = {})
1971
+ # @param [Hash] params ({})
1972
+ def get_registry_scanning_configuration(params = {}, options = {})
1973
+ req = build_request(:get_registry_scanning_configuration, params)
1974
+ req.send_request(options)
1975
+ end
1976
+
1977
+ # Retrieves the repository policy for the specified repository.
1978
+ #
1979
+ # @option params [String] :registry_id
1980
+ # The Amazon Web Services account ID associated with the registry that
1981
+ # contains the repository. If you do not specify a registry, the default
1982
+ # registry is assumed.
1103
1983
  #
1104
1984
  # @option params [required, String] :repository_name
1105
1985
  # The name of the repository with the policy to retrieve.
@@ -1148,18 +2028,23 @@ module Aws::ECR
1148
2028
  req.send_request(options)
1149
2029
  end
1150
2030
 
1151
- # Notify Amazon ECR that you intend to upload an image layer.
2031
+ # Notifies Amazon ECR that you intend to upload an image layer.
2032
+ #
2033
+ # When an image is pushed, the InitiateLayerUpload API is called once
2034
+ # per image layer that has not already been uploaded. Whether or not an
2035
+ # image layer has been uploaded is determined by the
2036
+ # BatchCheckLayerAvailability API action.
1152
2037
  #
1153
- # <note markdown="1"> This operation is used by the Amazon ECR proxy, and it is not intended
1154
- # for general use by customers for pulling and pushing images. In most
1155
- # cases, you should use the `docker` CLI to pull, tag, and push images.
2038
+ # <note markdown="1"> This operation is used by the Amazon ECR proxy and is not generally
2039
+ # used by customers for pulling and pushing images. In most cases, you
2040
+ # should use the `docker` CLI to pull, tag, and push images.
1156
2041
  #
1157
2042
  # </note>
1158
2043
  #
1159
2044
  # @option params [String] :registry_id
1160
- # The AWS account ID associated with the registry to which you intend to
1161
- # upload layers. If you do not specify a registry, the default registry
1162
- # is assumed.
2045
+ # The Amazon Web Services account ID associated with the registry to
2046
+ # which you intend to upload layers. If you do not specify a registry,
2047
+ # the default registry is assumed.
1163
2048
  #
1164
2049
  # @option params [required, String] :repository_name
1165
2050
  # The name of the repository to which you intend to upload layers.
@@ -1190,19 +2075,19 @@ module Aws::ECR
1190
2075
  req.send_request(options)
1191
2076
  end
1192
2077
 
1193
- # Lists all the image IDs for a given repository.
2078
+ # Lists all the image IDs for the specified repository.
1194
2079
  #
1195
- # You can filter images based on whether or not they are tagged by
1196
- # setting the `tagStatus` parameter to `TAGGED` or `UNTAGGED`. For
1197
- # example, you can filter your results to return only `UNTAGGED` images
1198
- # and then pipe that result to a BatchDeleteImage operation to delete
1199
- # them. Or, you can filter your results to return only `TAGGED` images
1200
- # to list all of the tags in your repository.
2080
+ # You can filter images based on whether or not they are tagged by using
2081
+ # the `tagStatus` filter and specifying either `TAGGED`, `UNTAGGED` or
2082
+ # `ANY`. For example, you can filter your results to return only
2083
+ # `UNTAGGED` images and then pipe that result to a BatchDeleteImage
2084
+ # operation to delete them. Or, you can filter your results to return
2085
+ # only `TAGGED` images to list all of the tags in your repository.
1201
2086
  #
1202
2087
  # @option params [String] :registry_id
1203
- # The AWS account ID associated with the registry that contains the
1204
- # repository in which to list images. If you do not specify a registry,
1205
- # the default registry is assumed.
2088
+ # The Amazon Web Services account ID associated with the registry that
2089
+ # contains the repository in which to list images. If you do not specify
2090
+ # a registry, the default registry is assumed.
1206
2091
  #
1207
2092
  # @option params [required, String] :repository_name
1208
2093
  # The repository with image IDs to be listed.
@@ -1226,7 +2111,7 @@ module Aws::ECR
1226
2111
  # returns `maxResults` results in a single page along with a `nextToken`
1227
2112
  # response element. The remaining results of the initial request can be
1228
2113
  # seen by sending another `ListImages` request with the returned
1229
- # `nextToken` value. This value can be between 1 and 100. If this
2114
+ # `nextToken` value. This value can be between 1 and 1000. If this
1230
2115
  # parameter is not used, then `ListImages` returns up to 100 results and
1231
2116
  # a `nextToken` value, if applicable.
1232
2117
  #
@@ -1239,6 +2124,8 @@ module Aws::ECR
1239
2124
  # * {Types::ListImagesResponse#image_ids #image_ids} => Array&lt;Types::ImageIdentifier&gt;
1240
2125
  # * {Types::ListImagesResponse#next_token #next_token} => String
1241
2126
  #
2127
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2128
+ #
1242
2129
  #
1243
2130
  # @example Example: To list all images in a repository
1244
2131
  #
@@ -1266,7 +2153,7 @@ module Aws::ECR
1266
2153
  # next_token: "NextToken",
1267
2154
  # max_results: 1,
1268
2155
  # filter: {
1269
- # tag_status: "TAGGED", # accepts TAGGED, UNTAGGED
2156
+ # tag_status: "TAGGED", # accepts TAGGED, UNTAGGED, ANY
1270
2157
  # },
1271
2158
  # })
1272
2159
  #
@@ -1286,19 +2173,55 @@ module Aws::ECR
1286
2173
  req.send_request(options)
1287
2174
  end
1288
2175
 
2176
+ # List the tags for an Amazon ECR resource.
2177
+ #
2178
+ # @option params [required, String] :resource_arn
2179
+ # The Amazon Resource Name (ARN) that identifies the resource for which
2180
+ # to list the tags. Currently, the only supported resource is an Amazon
2181
+ # ECR repository.
2182
+ #
2183
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2184
+ #
2185
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Array&lt;Types::Tag&gt;
2186
+ #
2187
+ # @example Request syntax with placeholder values
2188
+ #
2189
+ # resp = client.list_tags_for_resource({
2190
+ # resource_arn: "Arn", # required
2191
+ # })
2192
+ #
2193
+ # @example Response structure
2194
+ #
2195
+ # resp.tags #=> Array
2196
+ # resp.tags[0].key #=> String
2197
+ # resp.tags[0].value #=> String
2198
+ #
2199
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListTagsForResource AWS API Documentation
2200
+ #
2201
+ # @overload list_tags_for_resource(params = {})
2202
+ # @param [Hash] params ({})
2203
+ def list_tags_for_resource(params = {}, options = {})
2204
+ req = build_request(:list_tags_for_resource, params)
2205
+ req.send_request(options)
2206
+ end
2207
+
1289
2208
  # Creates or updates the image manifest and tags associated with an
1290
2209
  # image.
1291
2210
  #
1292
- # <note markdown="1"> This operation is used by the Amazon ECR proxy, and it is not intended
1293
- # for general use by customers for pulling and pushing images. In most
1294
- # cases, you should use the `docker` CLI to pull, tag, and push images.
2211
+ # When an image is pushed and all new image layers have been uploaded,
2212
+ # the PutImage API is called once to create or update the image manifest
2213
+ # and the tags associated with the image.
2214
+ #
2215
+ # <note markdown="1"> This operation is used by the Amazon ECR proxy and is not generally
2216
+ # used by customers for pulling and pushing images. In most cases, you
2217
+ # should use the `docker` CLI to pull, tag, and push images.
1295
2218
  #
1296
2219
  # </note>
1297
2220
  #
1298
2221
  # @option params [String] :registry_id
1299
- # The AWS account ID associated with the registry that contains the
1300
- # repository in which to put the image. If you do not specify a
1301
- # registry, the default registry is assumed.
2222
+ # The Amazon Web Services account ID associated with the registry that
2223
+ # contains the repository in which to put the image. If you do not
2224
+ # specify a registry, the default registry is assumed.
1302
2225
  #
1303
2226
  # @option params [required, String] :repository_name
1304
2227
  # The name of the repository in which to put the image.
@@ -1306,9 +2229,18 @@ module Aws::ECR
1306
2229
  # @option params [required, String] :image_manifest
1307
2230
  # The image manifest corresponding to the image to be uploaded.
1308
2231
  #
2232
+ # @option params [String] :image_manifest_media_type
2233
+ # The media type of the image manifest. If you push an image manifest
2234
+ # that does not contain the `mediaType` field, you must specify the
2235
+ # `imageManifestMediaType` in the request.
2236
+ #
1309
2237
  # @option params [String] :image_tag
1310
2238
  # The tag to associate with the image. This parameter is required for
1311
- # images that use the Docker Image Manifest V2 Schema 2 or OCI formats.
2239
+ # images that use the Docker Image Manifest V2 Schema 2 or Open
2240
+ # Container Initiative (OCI) formats.
2241
+ #
2242
+ # @option params [String] :image_digest
2243
+ # The image digest of the image manifest corresponding to the image.
1312
2244
  #
1313
2245
  # @return [Types::PutImageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1314
2246
  #
@@ -1320,7 +2252,9 @@ module Aws::ECR
1320
2252
  # registry_id: "RegistryId",
1321
2253
  # repository_name: "RepositoryName", # required
1322
2254
  # image_manifest: "ImageManifest", # required
2255
+ # image_manifest_media_type: "MediaType",
1323
2256
  # image_tag: "ImageTag",
2257
+ # image_digest: "ImageDigest",
1324
2258
  # })
1325
2259
  #
1326
2260
  # @example Response structure
@@ -1330,6 +2264,7 @@ module Aws::ECR
1330
2264
  # resp.image.image_id.image_digest #=> String
1331
2265
  # resp.image.image_id.image_tag #=> String
1332
2266
  # resp.image.image_manifest #=> String
2267
+ # resp.image.image_manifest_media_type #=> String
1333
2268
  #
1334
2269
  # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImage AWS API Documentation
1335
2270
  #
@@ -1340,19 +2275,124 @@ module Aws::ECR
1340
2275
  req.send_request(options)
1341
2276
  end
1342
2277
 
1343
- # Creates or updates a lifecycle policy. For information about lifecycle
1344
- # policy syntax, see [Lifecycle Policy Template][1].
2278
+ # The `PutImageScanningConfiguration` API is being deprecated, in favor
2279
+ # of specifying the image scanning configuration at the registry level.
2280
+ # For more information, see PutRegistryScanningConfiguration.
2281
+ #
2282
+ # Updates the image scanning configuration for the specified repository.
2283
+ #
2284
+ # @option params [String] :registry_id
2285
+ # The Amazon Web Services account ID associated with the registry that
2286
+ # contains the repository in which to update the image scanning
2287
+ # configuration setting. If you do not specify a registry, the default
2288
+ # registry is assumed.
2289
+ #
2290
+ # @option params [required, String] :repository_name
2291
+ # The name of the repository in which to update the image scanning
2292
+ # configuration setting.
2293
+ #
2294
+ # @option params [required, Types::ImageScanningConfiguration] :image_scanning_configuration
2295
+ # The image scanning configuration for the repository. This setting
2296
+ # determines whether images are scanned for known vulnerabilities after
2297
+ # being pushed to the repository.
2298
+ #
2299
+ # @return [Types::PutImageScanningConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2300
+ #
2301
+ # * {Types::PutImageScanningConfigurationResponse#registry_id #registry_id} => String
2302
+ # * {Types::PutImageScanningConfigurationResponse#repository_name #repository_name} => String
2303
+ # * {Types::PutImageScanningConfigurationResponse#image_scanning_configuration #image_scanning_configuration} => Types::ImageScanningConfiguration
2304
+ #
2305
+ # @example Request syntax with placeholder values
2306
+ #
2307
+ # resp = client.put_image_scanning_configuration({
2308
+ # registry_id: "RegistryId",
2309
+ # repository_name: "RepositoryName", # required
2310
+ # image_scanning_configuration: { # required
2311
+ # scan_on_push: false,
2312
+ # },
2313
+ # })
2314
+ #
2315
+ # @example Response structure
2316
+ #
2317
+ # resp.registry_id #=> String
2318
+ # resp.repository_name #=> String
2319
+ # resp.image_scanning_configuration.scan_on_push #=> Boolean
2320
+ #
2321
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageScanningConfiguration AWS API Documentation
2322
+ #
2323
+ # @overload put_image_scanning_configuration(params = {})
2324
+ # @param [Hash] params ({})
2325
+ def put_image_scanning_configuration(params = {}, options = {})
2326
+ req = build_request(:put_image_scanning_configuration, params)
2327
+ req.send_request(options)
2328
+ end
2329
+
2330
+ # Updates the image tag mutability settings for the specified
2331
+ # repository. For more information, see [Image tag mutability][1] in the
2332
+ # *Amazon Elastic Container Registry User Guide*.
1345
2333
  #
1346
2334
  #
1347
2335
  #
1348
- # [1]: http://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html
2336
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-tag-mutability.html
1349
2337
  #
1350
2338
  # @option params [String] :registry_id
1351
- # The AWS account ID associated with the registry that contains the
1352
- # repository. If you do
 not specify a registry, the default registry is
2339
+ # The Amazon Web Services account ID associated with the registry that
2340
+ # contains the repository do
 notin which to update the image tag mutability
2341
+ # settings. If you do not specify a registry, the default registry is
1353
2342
  # assumed.
1354
2343
  #
1355
2344
  # @option params [required, String] :repository_name
2345
+ # The name of the repository in which to update the image tag mutability
2346
+ # settings.
2347
+ #
2348
+ # @option params [required, String] :image_tag_mutability
2349
+ # The tag mutability setting for the repository. If `MUTABLE` is
2350
+ # specified, image tags can be overwritten. If `IMMUTABLE` is specified,
2351
+ # all image tags within the repository will be immutable which will
2352
+ # prevent them from being overwritten.
2353
+ #
2354
+ # @return [Types::PutImageTagMutabilityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2355
+ #
2356
+ # * {Types::PutImageTagMutabilityResponse#registry_id #registry_id} => String
2357
+ # * {Types::PutImageTagMutabilityResponse#repository_name #repository_name} => String
2358
+ # * {Types::PutImageTagMutabilityResponse#image_tag_mutability #image_tag_mutability} => String
2359
+ #
2360
+ # @example Request syntax with placeholder values
2361
+ #
2362
+ # resp = client.put_image_tag_mutability({
2363
+ # registry_id: "RegistryId",
2364
+ # repository_name: "RepositoryName", # required
2365
+ # image_tag_mutability: "MUTABLE", # required, accepts MUTABLE, IMMUTABLE
2366
+ # })
2367
+ #
2368
+ # @example Response structure
2369
+ #
2370
+ # resp.registry_id #=> String
2371
+ # resp.repository_name #=> String
2372
+ # resp.image_tag_mutability #=> String, one of "MUTABLE", "IMMUTABLE"
2373
+ #
2374
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageTagMutability AWS API Documentation
2375
+ #
2376
+ # @overload put_image_tag_mutability(params = {})
2377
+ # @param [Hash] params ({})
2378
+ def put_image_tag_mutability(params = {}, options = {})
2379
+ req = build_request(:put_image_tag_mutability, params)
2380
+ req.send_request(options)
2381
+ end
2382
+
2383
+ # Creates or updates the lifecycle policy for the specified repository.
2384
+ # For more information, see [Lifecycle policy template][1].
2385
+ #
2386
+ #
2387
+ #
2388
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html
2389
+ #
2390
+ # @option params [String] :registry_id
2391
+ # The Amazon Web Services account ID associated with the registry that
2392
+ # contains the repository. If you do
 not specify a registry, the
2393
+ # default registry is assumed.
2394
+ #
2395
+ # @option params [required, String] :repository_name
1356
2396
  # The name of the repository to receive the policy.
1357
2397
  #
1358
2398
  # @option params [required, String] :lifecycle_policy_text
@@ -1387,19 +2427,206 @@ module Aws::ECR
1387
2427
  req.send_request(options)
1388
2428
  end
1389
2429
 
1390
- # Applies a repository policy on a specified repository to control
1391
- # access permissions.
2430
+ # Creates or updates the permissions policy for your registry.
2431
+ #
2432
+ # A registry policy is used to specify permissions for another Amazon
2433
+ # Web Services account and is used when configuring cross-account
2434
+ # replication. For more information, see [Registry permissions][1] in
2435
+ # the *Amazon Elastic Container Registry User Guide*.
2436
+ #
2437
+ #
2438
+ #
2439
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html
2440
+ #
2441
+ # @option params [required, String] :policy_text
2442
+ # The JSON policy text to apply to your registry. The policy text
2443
+ # follows the same format as IAM policy text. For more information, see
2444
+ # [Registry permissions][1] in the *Amazon Elastic Container Registry
2445
+ # User Guide*.
2446
+ #
2447
+ #
2448
+ #
2449
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html
2450
+ #
2451
+ # @return [Types::PutRegistryPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2452
+ #
2453
+ # * {Types::PutRegistryPolicyResponse#registry_id #registry_id} => String
2454
+ # * {Types::PutRegistryPolicyResponse#policy_text #policy_text} => String
2455
+ #
2456
+ # @example Request syntax with placeholder values
2457
+ #
2458
+ # resp = client.put_registry_policy({
2459
+ # policy_text: "RegistryPolicyText", # required
2460
+ # })
2461
+ #
2462
+ # @example Response structure
2463
+ #
2464
+ # resp.registry_id #=> String
2465
+ # resp.policy_text #=> String
2466
+ #
2467
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutRegistryPolicy AWS API Documentation
2468
+ #
2469
+ # @overload put_registry_policy(params = {})
2470
+ # @param [Hash] params ({})
2471
+ def put_registry_policy(params = {}, options = {})
2472
+ req = build_request(:put_registry_policy, params)
2473
+ req.send_request(options)
2474
+ end
2475
+
2476
+ # Creates or updates the scanning configuration for your private
2477
+ # registry.
2478
+ #
2479
+ # @option params [String] :scan_type
2480
+ # The scanning type to set for the registry.
2481
+ #
2482
+ # When a registry scanning configuration is not defined, by default the
2483
+ # `BASIC` scan type is used. When basic scanning is used, you may
2484
+ # specify filters to determine which individual repositories, or all
2485
+ # repositories, are scanned when new images are pushed to those
2486
+ # repositories. Alternatively, you can do manual scans of images with
2487
+ # basic scanning.
2488
+ #
2489
+ # When the `ENHANCED` scan type is set, Amazon Inspector provides
2490
+ # automated vulnerability scanning. You may choose between continuous
2491
+ # scanning or scan on push and you may specify filters to determine
2492
+ # which individual repositories, or all repositories, are scanned.
2493
+ #
2494
+ # @option params [Array<Types::RegistryScanningRule>] :rules
2495
+ # The scanning rules to use for the registry. A scanning rule is used to
2496
+ # determine which repository filters are used and at what frequency
2497
+ # scanning will occur.
2498
+ #
2499
+ # @return [Types::PutRegistryScanningConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2500
+ #
2501
+ # * {Types::PutRegistryScanningConfigurationResponse#registry_scanning_configuration #registry_scanning_configuration} => Types::RegistryScanningConfiguration
2502
+ #
2503
+ # @example Request syntax with placeholder values
2504
+ #
2505
+ # resp = client.put_registry_scanning_configuration({
2506
+ # scan_type: "BASIC", # accepts BASIC, ENHANCED
2507
+ # rules: [
2508
+ # {
2509
+ # scan_frequency: "SCAN_ON_PUSH", # required, accepts SCAN_ON_PUSH, CONTINUOUS_SCAN, MANUAL
2510
+ # repository_filters: [ # required
2511
+ # {
2512
+ # filter: "ScanningRepositoryFilterValue", # required
2513
+ # filter_type: "WILDCARD", # required, accepts WILDCARD
2514
+ # },
2515
+ # ],
2516
+ # },
2517
+ # ],
2518
+ # })
2519
+ #
2520
+ # @example Response structure
2521
+ #
2522
+ # resp.registry_scanning_configuration.scan_type #=> String, one of "BASIC", "ENHANCED"
2523
+ # resp.registry_scanning_configuration.rules #=> Array
2524
+ # resp.registry_scanning_configuration.rules[0].scan_frequency #=> String, one of "SCAN_ON_PUSH", "CONTINUOUS_SCAN", "MANUAL"
2525
+ # resp.registry_scanning_configuration.rules[0].repository_filters #=> Array
2526
+ # resp.registry_scanning_configuration.rules[0].repository_filters[0].filter #=> String
2527
+ # resp.registry_scanning_configuration.rules[0].repository_filters[0].filter_type #=> String, one of "WILDCARD"
2528
+ #
2529
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutRegistryScanningConfiguration AWS API Documentation
2530
+ #
2531
+ # @overload put_registry_scanning_configuration(params = {})
2532
+ # @param [Hash] params ({})
2533
+ def put_registry_scanning_configuration(params = {}, options = {})
2534
+ req = build_request(:put_registry_scanning_configuration, params)
2535
+ req.send_request(options)
2536
+ end
2537
+
2538
+ # Creates or updates the replication configuration for a registry. The
2539
+ # existing replication configuration for a repository can be retrieved
2540
+ # with the DescribeRegistry API action. The first time the
2541
+ # PutReplicationConfiguration API is called, a service-linked IAM role
2542
+ # is created in your account for the replication process. For more
2543
+ # information, see [Using service-linked roles for Amazon ECR][1] in the
2544
+ # *Amazon Elastic Container Registry User Guide*.
2545
+ #
2546
+ # <note markdown="1"> When configuring cross-account replication, the destination account
2547
+ # must grant the source account permission to replicate. This permission
2548
+ # is controlled using a registry permissions policy. For more
2549
+ # information, see PutRegistryPolicy.
2550
+ #
2551
+ # </note>
2552
+ #
2553
+ #
2554
+ #
2555
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html
2556
+ #
2557
+ # @option params [required, Types::ReplicationConfiguration] :replication_configuration
2558
+ # An object representing the replication configuration for a registry.
2559
+ #
2560
+ # @return [Types::PutReplicationConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2561
+ #
2562
+ # * {Types::PutReplicationConfigurationResponse#replication_configuration #replication_configuration} => Types::ReplicationConfiguration
2563
+ #
2564
+ # @example Request syntax with placeholder values
2565
+ #
2566
+ # resp = client.put_replication_configuration({
2567
+ # replication_configuration: { # required
2568
+ # rules: [ # required
2569
+ # {
2570
+ # destinations: [ # required
2571
+ # {
2572
+ # region: "Region", # required
2573
+ # registry_id: "RegistryId", # required
2574
+ # },
2575
+ # ],
2576
+ # repository_filters: [
2577
+ # {
2578
+ # filter: "RepositoryFilterValue", # required
2579
+ # filter_type: "PREFIX_MATCH", # required, accepts PREFIX_MATCH
2580
+ # },
2581
+ # ],
2582
+ # },
2583
+ # ],
2584
+ # },
2585
+ # })
2586
+ #
2587
+ # @example Response structure
2588
+ #
2589
+ # resp.replication_configuration.rules #=> Array
2590
+ # resp.replication_configuration.rules[0].destinations #=> Array
2591
+ # resp.replication_configuration.rules[0].destinations[0].region #=> String
2592
+ # resp.replication_configuration.rules[0].destinations[0].registry_id #=> String
2593
+ # resp.replication_configuration.rules[0].repository_filters #=> Array
2594
+ # resp.replication_configuration.rules[0].repository_filters[0].filter #=> String
2595
+ # resp.replication_configuration.rules[0].repository_filters[0].filter_type #=> String, one of "PREFIX_MATCH"
2596
+ #
2597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutReplicationConfiguration AWS API Documentation
2598
+ #
2599
+ # @overload put_replication_configuration(params = {})
2600
+ # @param [Hash] params ({})
2601
+ def put_replication_configuration(params = {}, options = {})
2602
+ req = build_request(:put_replication_configuration, params)
2603
+ req.send_request(options)
2604
+ end
2605
+
2606
+ # Applies a repository policy to the specified repository to control
2607
+ # access permissions. For more information, see [Amazon ECR Repository
2608
+ # policies][1] in the *Amazon Elastic Container Registry User Guide*.
2609
+ #
2610
+ #
2611
+ #
2612
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html
1392
2613
  #
1393
2614
  # @option params [String] :registry_id
1394
- # The AWS account ID associated with the registry that contains the
1395
- # repository. If you do not specify a registry, the default registry is
1396
- # assumed.
2615
+ # The Amazon Web Services account ID associated with the registry that
2616
+ # contains the repository. If you do not specify a registry, the default
2617
+ # registry is assumed.
1397
2618
  #
1398
2619
  # @option params [required, String] :repository_name
1399
2620
  # The name of the repository to receive the policy.
1400
2621
  #
1401
2622
  # @option params [required, String] :policy_text
1402
- # The JSON repository policy text to apply to the repository.
2623
+ # The JSON repository policy text to apply to the repository. For more
2624
+ # information, see [Amazon ECR repository policies][1] in the *Amazon
2625
+ # Elastic Container Registry User Guide*.
2626
+ #
2627
+ #
2628
+ #
2629
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html
1403
2630
  #
1404
2631
  # @option params [Boolean] :force
1405
2632
  # If the policy you are attempting to set on a repository policy would
@@ -1437,13 +2664,71 @@ module Aws::ECR
1437
2664
  req.send_request(options)
1438
2665
  end
1439
2666
 
1440
- # Starts a preview of the specified lifecycle policy. This allows you to
1441
- # see the results before creating the lifecycle policy.
2667
+ # Starts an image vulnerability scan. An image scan can only be started
2668
+ # once per 24 hours on an individual image. This limit includes if an
2669
+ # image was scanned on initial push. For more information, see [Image
2670
+ # scanning][1] in the *Amazon Elastic Container Registry User Guide*.
2671
+ #
2672
+ #
2673
+ #
2674
+ # [1]: https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html
1442
2675
  #
1443
2676
  # @option params [String] :registry_id
1444
- # The AWS account ID associated with the registry that contains the
1445
- # repository. If you do not specify a registry, the default registry is
1446
- # assumed.
2677
+ # The Amazon Web Services account ID associated with the registry that
2678
+ # contains the repository in which to start an image scan request. If
2679
+ # you do not specify a registry, the default registry is assumed.
2680
+ #
2681
+ # @option params [required, String] :repository_name
2682
+ # The name of the repository that contains the images to scan.
2683
+ #
2684
+ # @option params [required, Types::ImageIdentifier] :image_id
2685
+ # An object with identifying information for an image in an Amazon ECR
2686
+ # repository.
2687
+ #
2688
+ # @return [Types::StartImageScanResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2689
+ #
2690
+ # * {Types::StartImageScanResponse#registry_id #registry_id} => String
2691
+ # * {Types::StartImageScanResponse#repository_name #repository_name} => String
2692
+ # * {Types::StartImageScanResponse#image_id #image_id} => Types::ImageIdentifier
2693
+ # * {Types::StartImageScanResponse#image_scan_status #image_scan_status} => Types::ImageScanStatus
2694
+ #
2695
+ # @example Request syntax with placeholder values
2696
+ #
2697
+ # resp = client.start_image_scan({
2698
+ # registry_id: "RegistryId",
2699
+ # repository_name: "RepositoryName", # required
2700
+ # image_id: { # required
2701
+ # image_digest: "ImageDigest",
2702
+ # image_tag: "ImageTag",
2703
+ # },
2704
+ # })
2705
+ #
2706
+ # @example Response structure
2707
+ #
2708
+ # resp.registry_id #=> String
2709
+ # resp.repository_name #=> String
2710
+ # resp.image_id.image_digest #=> String
2711
+ # resp.image_id.image_tag #=> String
2712
+ # resp.image_scan_status.status #=> String, one of "IN_PROGRESS", "COMPLETE", "FAILED", "UNSUPPORTED_IMAGE", "ACTIVE", "PENDING", "SCAN_ELIGIBILITY_EXPIRED", "FINDINGS_UNAVAILABLE"
2713
+ # resp.image_scan_status.description #=> String
2714
+ #
2715
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartImageScan AWS API Documentation
2716
+ #
2717
+ # @overload start_image_scan(params = {})
2718
+ # @param [Hash] params ({})
2719
+ def start_image_scan(params = {}, options = {})
2720
+ req = build_request(:start_image_scan, params)
2721
+ req.send_request(options)
2722
+ end
2723
+
2724
+ # Starts a preview of a lifecycle policy for the specified repository.
2725
+ # This allows you to see the results before associating the lifecycle
2726
+ # policy with the repository.
2727
+ #
2728
+ # @option params [String] :registry_id
2729
+ # The Amazon Web Services account ID associated with the registry that
2730
+ # contains the repository. If you do not specify a registry, the default
2731
+ # registry is assumed.
1447
2732
  #
1448
2733
  # @option params [required, String] :repository_name
1449
2734
  # The name of the repository to be evaluated.
@@ -1483,18 +2768,135 @@ module Aws::ECR
1483
2768
  req.send_request(options)
1484
2769
  end
1485
2770
 
2771
+ # Adds specified tags to a resource with the specified ARN. Existing
2772
+ # tags on a resource are not changed if they are not specified in the
2773
+ # request parameters.
2774
+ #
2775
+ # @option params [required, String] :resource_arn
2776
+ # The Amazon Resource Name (ARN) of the the resource to which to add
2777
+ # tags. Currently, the only supported resource is an Amazon ECR
2778
+ # repository.
2779
+ #
2780
+ # @option params [required, Array<Types::Tag>] :tags
2781
+ # The tags to add to the resource. A tag is an array of key-value pairs.
2782
+ # Tag keys can have a maximum character length of 128 characters, and
2783
+ # tag values can have a maximum length of 256 characters.
2784
+ #
2785
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2786
+ #
2787
+ # @example Request syntax with placeholder values
2788
+ #
2789
+ # resp = client.tag_resource({
2790
+ # resource_arn: "Arn", # required
2791
+ # tags: [ # required
2792
+ # {
2793
+ # key: "TagKey", # required
2794
+ # value: "TagValue", # required
2795
+ # },
2796
+ # ],
2797
+ # })
2798
+ #
2799
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/TagResource AWS API Documentation
2800
+ #
2801
+ # @overload tag_resource(params = {})
2802
+ # @param [Hash] params ({})
2803
+ def tag_resource(params = {}, options = {})
2804
+ req = build_request(:tag_resource, params)
2805
+ req.send_request(options)
2806
+ end
2807
+
2808
+ # Deletes specified tags from a resource.
2809
+ #
2810
+ # @option params [required, String] :resource_arn
2811
+ # The Amazon Resource Name (ARN) of the resource from which to remove
2812
+ # tags. Currently, the only supported resource is an Amazon ECR
2813
+ # repository.
2814
+ #
2815
+ # @option params [required, Array<String>] :tag_keys
2816
+ # The keys of the tags to be removed.
2817
+ #
2818
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2819
+ #
2820
+ # @example Request syntax with placeholder values
2821
+ #
2822
+ # resp = client.untag_resource({
2823
+ # resource_arn: "Arn", # required
2824
+ # tag_keys: ["TagKey"], # required
2825
+ # })
2826
+ #
2827
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UntagResource AWS API Documentation
2828
+ #
2829
+ # @overload untag_resource(params = {})
2830
+ # @param [Hash] params ({})
2831
+ def untag_resource(params = {}, options = {})
2832
+ req = build_request(:untag_resource, params)
2833
+ req.send_request(options)
2834
+ end
2835
+
2836
+ # Updates an existing pull through cache rule.
2837
+ #
2838
+ # @option params [String] :registry_id
2839
+ # The Amazon Web Services account ID associated with the registry
2840
+ # associated with the pull through cache rule. If you do not specify a
2841
+ # registry, the default registry is assumed.
2842
+ #
2843
+ # @option params [required, String] :ecr_repository_prefix
2844
+ # The repository name prefix to use when caching images from the source
2845
+ # registry.
2846
+ #
2847
+ # @option params [required, String] :credential_arn
2848
+ # The Amazon Resource Name (ARN) of the Amazon Web Services Secrets
2849
+ # Manager secret that identifies the credentials to authenticate to the
2850
+ # upstream registry.
2851
+ #
2852
+ # @return [Types::UpdatePullThroughCacheRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2853
+ #
2854
+ # * {Types::UpdatePullThroughCacheRuleResponse#ecr_repository_prefix #ecr_repository_prefix} => String
2855
+ # * {Types::UpdatePullThroughCacheRuleResponse#registry_id #registry_id} => String
2856
+ # * {Types::UpdatePullThroughCacheRuleResponse#updated_at #updated_at} => Time
2857
+ # * {Types::UpdatePullThroughCacheRuleResponse#credential_arn #credential_arn} => String
2858
+ #
2859
+ # @example Request syntax with placeholder values
2860
+ #
2861
+ # resp = client.update_pull_through_cache_rule({
2862
+ # registry_id: "RegistryId",
2863
+ # ecr_repository_prefix: "PullThroughCacheRuleRepositoryPrefix", # required
2864
+ # credential_arn: "CredentialArn", # required
2865
+ # })
2866
+ #
2867
+ # @example Response structure
2868
+ #
2869
+ # resp.ecr_repository_prefix #=> String
2870
+ # resp.registry_id #=> String
2871
+ # resp.updated_at #=> Time
2872
+ # resp.credential_arn #=> String
2873
+ #
2874
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UpdatePullThroughCacheRule AWS API Documentation
2875
+ #
2876
+ # @overload update_pull_through_cache_rule(params = {})
2877
+ # @param [Hash] params ({})
2878
+ def update_pull_through_cache_rule(params = {}, options = {})
2879
+ req = build_request(:update_pull_through_cache_rule, params)
2880
+ req.send_request(options)
2881
+ end
2882
+
1486
2883
  # Uploads an image layer part to Amazon ECR.
1487
2884
  #
1488
- # <note markdown="1"> This operation is used by the Amazon ECR proxy, and it is not intended
1489
- # for general use by customers for pulling and pushing images. In most
1490
- # cases, you should use the `docker` CLI to pull, tag, and push images.
2885
+ # When an image is pushed, each new image layer is uploaded in parts.
2886
+ # The maximum size of each image layer part can be 20971520 bytes (or
2887
+ # about 20MB). The UploadLayerPart API is called once per each new image
2888
+ # layer part.
2889
+ #
2890
+ # <note markdown="1"> This operation is used by the Amazon ECR proxy and is not generally
2891
+ # used by customers for pulling and pushing images. In most cases, you
2892
+ # should use the `docker` CLI to pull, tag, and push images.
1491
2893
  #
1492
2894
  # </note>
1493
2895
  #
1494
2896
  # @option params [String] :registry_id
1495
- # The AWS account ID associated with the registry to which you are
1496
- # uploading layer parts. If you do not specify a registry, the default
1497
- # registry is assumed.
2897
+ # The Amazon Web Services account ID associated with the registry to
2898
+ # which you are uploading layer parts. If you do not specify a registry,
2899
+ # the default registry is assumed.
1498
2900
  #
1499
2901
  # @option params [required, String] :repository_name
1500
2902
  # The name of the repository to which you are uploading layer parts.
@@ -1504,12 +2906,14 @@ module Aws::ECR
1504
2906
  # associate with the layer part upload.
1505
2907
  #
1506
2908
  # @option params [required, Integer] :part_first_byte
1507
- # The integer value of the first byte of the layer part.
2909
+ # The position of the first byte of the layer part witin the overall
2910
+ # image layer.
1508
2911
  #
1509
2912
  # @option params [required, Integer] :part_last_byte
1510
- # The integer value of the last byte of the layer part.
2913
+ # The position of the last byte of the layer part within the overall
2914
+ # image layer.
1511
2915
  #
1512
- # @option params [required, String, IO] :layer_part_blob
2916
+ # @option params [required, String, StringIO, File] :layer_part_blob
1513
2917
  # The base64-encoded layer part payload.
1514
2918
  #
1515
2919
  # @return [Types::UploadLayerPartResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -1546,6 +2950,54 @@ module Aws::ECR
1546
2950
  req.send_request(options)
1547
2951
  end
1548
2952
 
2953
+ # Validates an existing pull through cache rule for an upstream registry
2954
+ # that requires authentication. This will retrieve the contents of the
2955
+ # Amazon Web Services Secrets Manager secret, verify the syntax, and
2956
+ # then validate that authentication to the upstream registry is
2957
+ # successful.
2958
+ #
2959
+ # @option params [required, String] :ecr_repository_prefix
2960
+ # The repository name prefix associated with the pull through cache
2961
+ # rule.
2962
+ #
2963
+ # @option params [String] :registry_id
2964
+ # The registry ID associated with the pull through cache rule. If you do
2965
+ # not specify a registry, the default registry is assumed.
2966
+ #
2967
+ # @return [Types::ValidatePullThroughCacheRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2968
+ #
2969
+ # * {Types::ValidatePullThroughCacheRuleResponse#ecr_repository_prefix #ecr_repository_prefix} => String
2970
+ # * {Types::ValidatePullThroughCacheRuleResponse#registry_id #registry_id} => String
2971
+ # * {Types::ValidatePullThroughCacheRuleResponse#upstream_registry_url #upstream_registry_url} => String
2972
+ # * {Types::ValidatePullThroughCacheRuleResponse#credential_arn #credential_arn} => String
2973
+ # * {Types::ValidatePullThroughCacheRuleResponse#is_valid #is_valid} => Boolean
2974
+ # * {Types::ValidatePullThroughCacheRuleResponse#failure #failure} => String
2975
+ #
2976
+ # @example Request syntax with placeholder values
2977
+ #
2978
+ # resp = client.validate_pull_through_cache_rule({
2979
+ # ecr_repository_prefix: "PullThroughCacheRuleRepositoryPrefix", # required
2980
+ # registry_id: "RegistryId",
2981
+ # })
2982
+ #
2983
+ # @example Response structure
2984
+ #
2985
+ # resp.ecr_repository_prefix #=> String
2986
+ # resp.registry_id #=> String
2987
+ # resp.upstream_registry_url #=> String
2988
+ # resp.credential_arn #=> String
2989
+ # resp.is_valid #=> Boolean
2990
+ # resp.failure #=> String
2991
+ #
2992
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ValidatePullThroughCacheRule AWS API Documentation
2993
+ #
2994
+ # @overload validate_pull_through_cache_rule(params = {})
2995
+ # @param [Hash] params ({})
2996
+ def validate_pull_through_cache_rule(params = {}, options = {})
2997
+ req = build_request(:validate_pull_through_cache_rule, params)
2998
+ req.send_request(options)
2999
+ end
3000
+
1549
3001
  # @!endgroup
1550
3002
 
1551
3003
  # @param params ({})
@@ -1559,14 +3011,129 @@ module Aws::ECR
1559
3011
  params: params,
1560
3012
  config: config)
1561
3013
  context[:gem_name] = 'aws-sdk-ecr'
1562
- context[:gem_version] = '1.3.0'
3014
+ context[:gem_version] = '1.69.0'
1563
3015
  Seahorse::Client::Request.new(handlers, context)
1564
3016
  end
1565
3017
 
3018
+ # Polls an API operation until a resource enters a desired state.
3019
+ #
3020
+ # ## Basic Usage
3021
+ #
3022
+ # A waiter will call an API operation until:
3023
+ #
3024
+ # * It is successful
3025
+ # * It enters a terminal state
3026
+ # * It makes the maximum number of attempts
3027
+ #
3028
+ # In between attempts, the waiter will sleep.
3029
+ #
3030
+ # # polls in a loop, sleeping between attempts
3031
+ # client.wait_until(waiter_name, params)
3032
+ #
3033
+ # ## Configuration
3034
+ #
3035
+ # You can configure the maximum number of polling attempts, and the
3036
+ # delay (in seconds) between each polling attempt. You can pass
3037
+ # configuration as the final arguments hash.
3038
+ #
3039
+ # # poll for ~25 seconds
3040
+ # client.wait_until(waiter_name, params, {
3041
+ # max_attempts: 5,
3042
+ # delay: 5,
3043
+ # })
3044
+ #
3045
+ # ## Callbacks
3046
+ #
3047
+ # You can be notified before each polling attempt and before each
3048
+ # delay. If you throw `:success` or `:failure` from these callbacks,
3049
+ # it will terminate the waiter.
3050
+ #
3051
+ # started_at = Time.now
3052
+ # client.wait_until(waiter_name, params, {
3053
+ #
3054
+ # # disable max attempts
3055
+ # max_attempts: nil,
3056
+ #
3057
+ # # poll for 1 hour, instead of a number of attempts
3058
+ # before_wait: -> (attempts, response) do
3059
+ # throw :failure if Time.now - started_at > 3600
3060
+ # end
3061
+ # })
3062
+ #
3063
+ # ## Handling Errors
3064
+ #
3065
+ # When a waiter is unsuccessful, it will raise an error.
3066
+ # All of the failure errors extend from
3067
+ # {Aws::Waiters::Errors::WaiterFailed}.
3068
+ #
3069
+ # begin
3070
+ # client.wait_until(...)
3071
+ # rescue Aws::Waiters::Errors::WaiterFailed
3072
+ # # resource did not enter the desired state in time
3073
+ # end
3074
+ #
3075
+ # ## Valid Waiters
3076
+ #
3077
+ # The following table lists the valid waiter names, the operations they call,
3078
+ # and the default `:delay` and `:max_attempts` values.
3079
+ #
3080
+ # | waiter_name | params | :delay | :max_attempts |
3081
+ # | --------------------------------- | ------------------------------------- | -------- | ------------- |
3082
+ # | image_scan_complete | {Client#describe_image_scan_findings} | 5 | 60 |
3083
+ # | lifecycle_policy_preview_complete | {Client#get_lifecycle_policy_preview} | 5 | 20 |
3084
+ #
3085
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
3086
+ # because the waiter has entered a state that it will not transition
3087
+ # out of, preventing success.
3088
+ #
3089
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
3090
+ # maximum number of attempts have been made, and the waiter is not
3091
+ # yet successful.
3092
+ #
3093
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
3094
+ # while polling for a resource that is not expected.
3095
+ #
3096
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
3097
+ # for an unknown state.
3098
+ #
3099
+ # @return [Boolean] Returns `true` if the waiter was successful.
3100
+ # @param [Symbol] waiter_name
3101
+ # @param [Hash] params ({})
3102
+ # @param [Hash] options ({})
3103
+ # @option options [Integer] :max_attempts
3104
+ # @option options [Integer] :delay
3105
+ # @option options [Proc] :before_attempt
3106
+ # @option options [Proc] :before_wait
3107
+ def wait_until(waiter_name, params = {}, options = {})
3108
+ w = waiter(waiter_name, options)
3109
+ yield(w.waiter) if block_given? # deprecated
3110
+ w.wait(params)
3111
+ end
3112
+
1566
3113
  # @api private
1567
3114
  # @deprecated
1568
3115
  def waiter_names
1569
- []
3116
+ waiters.keys
3117
+ end
3118
+
3119
+ private
3120
+
3121
+ # @param [Symbol] waiter_name
3122
+ # @param [Hash] options ({})
3123
+ def waiter(waiter_name, options = {})
3124
+ waiter_class = waiters[waiter_name]
3125
+ if waiter_class
3126
+ waiter_class.new(options.merge(client: self))
3127
+ else
3128
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
3129
+ end
3130
+ end
3131
+
3132
+ def waiters
3133
+ {
3134
+ image_scan_complete: Waiters::ImageScanComplete,
3135
+ lifecycle_policy_preview_complete: Waiters::LifecyclePolicyPreviewComplete
3136
+ }
1570
3137
  end
1571
3138
 
1572
3139
  class << self