aws-sdk-ecr 1.3.0 → 1.69.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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