1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package ecr
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opBatchCheckLayerAvailability = "BatchCheckLayerAvailability"
17
18// BatchCheckLayerAvailabilityRequest generates a "aws/request.Request" representing the
19// client's request for the BatchCheckLayerAvailability operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See BatchCheckLayerAvailability for more information on using the BatchCheckLayerAvailability
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the BatchCheckLayerAvailabilityRequest method.
34//    req, resp := client.BatchCheckLayerAvailabilityRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchCheckLayerAvailability
42func (c *ECR) BatchCheckLayerAvailabilityRequest(input *BatchCheckLayerAvailabilityInput) (req *request.Request, output *BatchCheckLayerAvailabilityOutput) {
43	op := &request.Operation{
44		Name:       opBatchCheckLayerAvailability,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &BatchCheckLayerAvailabilityInput{}
51	}
52
53	output = &BatchCheckLayerAvailabilityOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// BatchCheckLayerAvailability API operation for Amazon EC2 Container Registry.
59//
60// Checks the availability of one or more image layers in a repository.
61//
62// When an image is pushed to a repository, each image layer is checked to verify
63// if it has been uploaded before. If it has been uploaded, then the image layer
64// is skipped.
65//
66// This operation is used by the Amazon ECR proxy and is not generally used
67// by customers for pulling and pushing images. In most cases, you should use
68// the docker CLI to pull, tag, and push images.
69//
70// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
71// with awserr.Error's Code and Message methods to get detailed information about
72// the error.
73//
74// See the AWS API reference guide for Amazon EC2 Container Registry's
75// API operation BatchCheckLayerAvailability for usage and error information.
76//
77// Returned Error Types:
78//   * RepositoryNotFoundException
79//   The specified repository could not be found. Check the spelling of the specified
80//   repository and ensure that you are performing operations on the correct registry.
81//
82//   * InvalidParameterException
83//   The specified parameter is invalid. Review the available parameters for the
84//   API request.
85//
86//   * ServerException
87//   These errors are usually caused by a server-side issue.
88//
89// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchCheckLayerAvailability
90func (c *ECR) BatchCheckLayerAvailability(input *BatchCheckLayerAvailabilityInput) (*BatchCheckLayerAvailabilityOutput, error) {
91	req, out := c.BatchCheckLayerAvailabilityRequest(input)
92	return out, req.Send()
93}
94
95// BatchCheckLayerAvailabilityWithContext is the same as BatchCheckLayerAvailability with the addition of
96// the ability to pass a context and additional request options.
97//
98// See BatchCheckLayerAvailability for details on how to use this API operation.
99//
100// The context must be non-nil and will be used for request cancellation. If
101// the context is nil a panic will occur. In the future the SDK may create
102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
103// for more information on using Contexts.
104func (c *ECR) BatchCheckLayerAvailabilityWithContext(ctx aws.Context, input *BatchCheckLayerAvailabilityInput, opts ...request.Option) (*BatchCheckLayerAvailabilityOutput, error) {
105	req, out := c.BatchCheckLayerAvailabilityRequest(input)
106	req.SetContext(ctx)
107	req.ApplyOptions(opts...)
108	return out, req.Send()
109}
110
111const opBatchDeleteImage = "BatchDeleteImage"
112
113// BatchDeleteImageRequest generates a "aws/request.Request" representing the
114// client's request for the BatchDeleteImage operation. The "output" return
115// value will be populated with the request's response once the request completes
116// successfully.
117//
118// Use "Send" method on the returned Request to send the API call to the service.
119// the "output" return value is not valid until after Send returns without error.
120//
121// See BatchDeleteImage for more information on using the BatchDeleteImage
122// API call, and error handling.
123//
124// This method is useful when you want to inject custom logic or configuration
125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
126//
127//
128//    // Example sending a request using the BatchDeleteImageRequest method.
129//    req, resp := client.BatchDeleteImageRequest(params)
130//
131//    err := req.Send()
132//    if err == nil { // resp is now filled
133//        fmt.Println(resp)
134//    }
135//
136// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchDeleteImage
137func (c *ECR) BatchDeleteImageRequest(input *BatchDeleteImageInput) (req *request.Request, output *BatchDeleteImageOutput) {
138	op := &request.Operation{
139		Name:       opBatchDeleteImage,
140		HTTPMethod: "POST",
141		HTTPPath:   "/",
142	}
143
144	if input == nil {
145		input = &BatchDeleteImageInput{}
146	}
147
148	output = &BatchDeleteImageOutput{}
149	req = c.newRequest(op, input, output)
150	return
151}
152
153// BatchDeleteImage API operation for Amazon EC2 Container Registry.
154//
155// Deletes a list of specified images within a repository. Images are specified
156// with either an imageTag or imageDigest.
157//
158// You can remove a tag from an image by specifying the image's tag in your
159// request. When you remove the last tag from an image, the image is deleted
160// from your repository.
161//
162// You can completely delete an image (and all of its tags) by specifying the
163// image's digest in your request.
164//
165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
166// with awserr.Error's Code and Message methods to get detailed information about
167// the error.
168//
169// See the AWS API reference guide for Amazon EC2 Container Registry's
170// API operation BatchDeleteImage for usage and error information.
171//
172// Returned Error Types:
173//   * ServerException
174//   These errors are usually caused by a server-side issue.
175//
176//   * InvalidParameterException
177//   The specified parameter is invalid. Review the available parameters for the
178//   API request.
179//
180//   * RepositoryNotFoundException
181//   The specified repository could not be found. Check the spelling of the specified
182//   repository and ensure that you are performing operations on the correct registry.
183//
184// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchDeleteImage
185func (c *ECR) BatchDeleteImage(input *BatchDeleteImageInput) (*BatchDeleteImageOutput, error) {
186	req, out := c.BatchDeleteImageRequest(input)
187	return out, req.Send()
188}
189
190// BatchDeleteImageWithContext is the same as BatchDeleteImage with the addition of
191// the ability to pass a context and additional request options.
192//
193// See BatchDeleteImage for details on how to use this API operation.
194//
195// The context must be non-nil and will be used for request cancellation. If
196// the context is nil a panic will occur. In the future the SDK may create
197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
198// for more information on using Contexts.
199func (c *ECR) BatchDeleteImageWithContext(ctx aws.Context, input *BatchDeleteImageInput, opts ...request.Option) (*BatchDeleteImageOutput, error) {
200	req, out := c.BatchDeleteImageRequest(input)
201	req.SetContext(ctx)
202	req.ApplyOptions(opts...)
203	return out, req.Send()
204}
205
206const opBatchGetImage = "BatchGetImage"
207
208// BatchGetImageRequest generates a "aws/request.Request" representing the
209// client's request for the BatchGetImage operation. The "output" return
210// value will be populated with the request's response once the request completes
211// successfully.
212//
213// Use "Send" method on the returned Request to send the API call to the service.
214// the "output" return value is not valid until after Send returns without error.
215//
216// See BatchGetImage for more information on using the BatchGetImage
217// API call, and error handling.
218//
219// This method is useful when you want to inject custom logic or configuration
220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
221//
222//
223//    // Example sending a request using the BatchGetImageRequest method.
224//    req, resp := client.BatchGetImageRequest(params)
225//
226//    err := req.Send()
227//    if err == nil { // resp is now filled
228//        fmt.Println(resp)
229//    }
230//
231// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchGetImage
232func (c *ECR) BatchGetImageRequest(input *BatchGetImageInput) (req *request.Request, output *BatchGetImageOutput) {
233	op := &request.Operation{
234		Name:       opBatchGetImage,
235		HTTPMethod: "POST",
236		HTTPPath:   "/",
237	}
238
239	if input == nil {
240		input = &BatchGetImageInput{}
241	}
242
243	output = &BatchGetImageOutput{}
244	req = c.newRequest(op, input, output)
245	return
246}
247
248// BatchGetImage API operation for Amazon EC2 Container Registry.
249//
250// Gets detailed information for an image. Images are specified with either
251// an imageTag or imageDigest.
252//
253// When an image is pulled, the BatchGetImage API is called once to retrieve
254// the image manifest.
255//
256// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
257// with awserr.Error's Code and Message methods to get detailed information about
258// the error.
259//
260// See the AWS API reference guide for Amazon EC2 Container Registry's
261// API operation BatchGetImage for usage and error information.
262//
263// Returned Error Types:
264//   * ServerException
265//   These errors are usually caused by a server-side issue.
266//
267//   * InvalidParameterException
268//   The specified parameter is invalid. Review the available parameters for the
269//   API request.
270//
271//   * RepositoryNotFoundException
272//   The specified repository could not be found. Check the spelling of the specified
273//   repository and ensure that you are performing operations on the correct registry.
274//
275// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchGetImage
276func (c *ECR) BatchGetImage(input *BatchGetImageInput) (*BatchGetImageOutput, error) {
277	req, out := c.BatchGetImageRequest(input)
278	return out, req.Send()
279}
280
281// BatchGetImageWithContext is the same as BatchGetImage with the addition of
282// the ability to pass a context and additional request options.
283//
284// See BatchGetImage for details on how to use this API operation.
285//
286// The context must be non-nil and will be used for request cancellation. If
287// the context is nil a panic will occur. In the future the SDK may create
288// sub-contexts for http.Requests. See https://golang.org/pkg/context/
289// for more information on using Contexts.
290func (c *ECR) BatchGetImageWithContext(ctx aws.Context, input *BatchGetImageInput, opts ...request.Option) (*BatchGetImageOutput, error) {
291	req, out := c.BatchGetImageRequest(input)
292	req.SetContext(ctx)
293	req.ApplyOptions(opts...)
294	return out, req.Send()
295}
296
297const opCompleteLayerUpload = "CompleteLayerUpload"
298
299// CompleteLayerUploadRequest generates a "aws/request.Request" representing the
300// client's request for the CompleteLayerUpload operation. The "output" return
301// value will be populated with the request's response once the request completes
302// successfully.
303//
304// Use "Send" method on the returned Request to send the API call to the service.
305// the "output" return value is not valid until after Send returns without error.
306//
307// See CompleteLayerUpload for more information on using the CompleteLayerUpload
308// API call, and error handling.
309//
310// This method is useful when you want to inject custom logic or configuration
311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
312//
313//
314//    // Example sending a request using the CompleteLayerUploadRequest method.
315//    req, resp := client.CompleteLayerUploadRequest(params)
316//
317//    err := req.Send()
318//    if err == nil { // resp is now filled
319//        fmt.Println(resp)
320//    }
321//
322// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CompleteLayerUpload
323func (c *ECR) CompleteLayerUploadRequest(input *CompleteLayerUploadInput) (req *request.Request, output *CompleteLayerUploadOutput) {
324	op := &request.Operation{
325		Name:       opCompleteLayerUpload,
326		HTTPMethod: "POST",
327		HTTPPath:   "/",
328	}
329
330	if input == nil {
331		input = &CompleteLayerUploadInput{}
332	}
333
334	output = &CompleteLayerUploadOutput{}
335	req = c.newRequest(op, input, output)
336	return
337}
338
339// CompleteLayerUpload API operation for Amazon EC2 Container Registry.
340//
341// Informs Amazon ECR that the image layer upload has completed for a specified
342// registry, repository name, and upload ID. You can optionally provide a sha256
343// digest of the image layer for data validation purposes.
344//
345// When an image is pushed, the CompleteLayerUpload API is called once per each
346// new image layer to verify that the upload has completed.
347//
348// This operation is used by the Amazon ECR proxy and is not generally used
349// by customers for pulling and pushing images. In most cases, you should use
350// the docker CLI to pull, tag, and push images.
351//
352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
353// with awserr.Error's Code and Message methods to get detailed information about
354// the error.
355//
356// See the AWS API reference guide for Amazon EC2 Container Registry's
357// API operation CompleteLayerUpload for usage and error information.
358//
359// Returned Error Types:
360//   * ServerException
361//   These errors are usually caused by a server-side issue.
362//
363//   * InvalidParameterException
364//   The specified parameter is invalid. Review the available parameters for the
365//   API request.
366//
367//   * RepositoryNotFoundException
368//   The specified repository could not be found. Check the spelling of the specified
369//   repository and ensure that you are performing operations on the correct registry.
370//
371//   * UploadNotFoundException
372//   The upload could not be found, or the specified upload ID is not valid for
373//   this repository.
374//
375//   * InvalidLayerException
376//   The layer digest calculation performed by Amazon ECR upon receipt of the
377//   image layer does not match the digest specified.
378//
379//   * LayerPartTooSmallException
380//   Layer parts must be at least 5 MiB in size.
381//
382//   * LayerAlreadyExistsException
383//   The image layer already exists in the associated repository.
384//
385//   * EmptyUploadException
386//   The specified layer upload does not contain any layer parts.
387//
388//   * KmsException
389//   The operation failed due to a KMS exception.
390//
391// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CompleteLayerUpload
392func (c *ECR) CompleteLayerUpload(input *CompleteLayerUploadInput) (*CompleteLayerUploadOutput, error) {
393	req, out := c.CompleteLayerUploadRequest(input)
394	return out, req.Send()
395}
396
397// CompleteLayerUploadWithContext is the same as CompleteLayerUpload with the addition of
398// the ability to pass a context and additional request options.
399//
400// See CompleteLayerUpload for details on how to use this API operation.
401//
402// The context must be non-nil and will be used for request cancellation. If
403// the context is nil a panic will occur. In the future the SDK may create
404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
405// for more information on using Contexts.
406func (c *ECR) CompleteLayerUploadWithContext(ctx aws.Context, input *CompleteLayerUploadInput, opts ...request.Option) (*CompleteLayerUploadOutput, error) {
407	req, out := c.CompleteLayerUploadRequest(input)
408	req.SetContext(ctx)
409	req.ApplyOptions(opts...)
410	return out, req.Send()
411}
412
413const opCreateRepository = "CreateRepository"
414
415// CreateRepositoryRequest generates a "aws/request.Request" representing the
416// client's request for the CreateRepository operation. The "output" return
417// value will be populated with the request's response once the request completes
418// successfully.
419//
420// Use "Send" method on the returned Request to send the API call to the service.
421// the "output" return value is not valid until after Send returns without error.
422//
423// See CreateRepository for more information on using the CreateRepository
424// API call, and error handling.
425//
426// This method is useful when you want to inject custom logic or configuration
427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
428//
429//
430//    // Example sending a request using the CreateRepositoryRequest method.
431//    req, resp := client.CreateRepositoryRequest(params)
432//
433//    err := req.Send()
434//    if err == nil { // resp is now filled
435//        fmt.Println(resp)
436//    }
437//
438// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepository
439func (c *ECR) CreateRepositoryRequest(input *CreateRepositoryInput) (req *request.Request, output *CreateRepositoryOutput) {
440	op := &request.Operation{
441		Name:       opCreateRepository,
442		HTTPMethod: "POST",
443		HTTPPath:   "/",
444	}
445
446	if input == nil {
447		input = &CreateRepositoryInput{}
448	}
449
450	output = &CreateRepositoryOutput{}
451	req = c.newRequest(op, input, output)
452	return
453}
454
455// CreateRepository API operation for Amazon EC2 Container Registry.
456//
457// Creates a repository. For more information, see Amazon ECR Repositories (https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html)
458// in the Amazon Elastic Container Registry User Guide.
459//
460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
461// with awserr.Error's Code and Message methods to get detailed information about
462// the error.
463//
464// See the AWS API reference guide for Amazon EC2 Container Registry's
465// API operation CreateRepository for usage and error information.
466//
467// Returned Error Types:
468//   * ServerException
469//   These errors are usually caused by a server-side issue.
470//
471//   * InvalidParameterException
472//   The specified parameter is invalid. Review the available parameters for the
473//   API request.
474//
475//   * InvalidTagParameterException
476//   An invalid parameter has been specified. Tag keys can have a maximum character
477//   length of 128 characters, and tag values can have a maximum length of 256
478//   characters.
479//
480//   * TooManyTagsException
481//   The list of tags on the repository is over the limit. The maximum number
482//   of tags that can be applied to a repository is 50.
483//
484//   * RepositoryAlreadyExistsException
485//   The specified repository already exists in the specified registry.
486//
487//   * LimitExceededException
488//   The operation did not succeed because it would have exceeded a service limit
489//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
490//   in the Amazon Elastic Container Registry User Guide.
491//
492//   * KmsException
493//   The operation failed due to a KMS exception.
494//
495// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepository
496func (c *ECR) CreateRepository(input *CreateRepositoryInput) (*CreateRepositoryOutput, error) {
497	req, out := c.CreateRepositoryRequest(input)
498	return out, req.Send()
499}
500
501// CreateRepositoryWithContext is the same as CreateRepository with the addition of
502// the ability to pass a context and additional request options.
503//
504// See CreateRepository for details on how to use this API operation.
505//
506// The context must be non-nil and will be used for request cancellation. If
507// the context is nil a panic will occur. In the future the SDK may create
508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
509// for more information on using Contexts.
510func (c *ECR) CreateRepositoryWithContext(ctx aws.Context, input *CreateRepositoryInput, opts ...request.Option) (*CreateRepositoryOutput, error) {
511	req, out := c.CreateRepositoryRequest(input)
512	req.SetContext(ctx)
513	req.ApplyOptions(opts...)
514	return out, req.Send()
515}
516
517const opDeleteLifecyclePolicy = "DeleteLifecyclePolicy"
518
519// DeleteLifecyclePolicyRequest generates a "aws/request.Request" representing the
520// client's request for the DeleteLifecyclePolicy operation. The "output" return
521// value will be populated with the request's response once the request completes
522// successfully.
523//
524// Use "Send" method on the returned Request to send the API call to the service.
525// the "output" return value is not valid until after Send returns without error.
526//
527// See DeleteLifecyclePolicy for more information on using the DeleteLifecyclePolicy
528// API call, and error handling.
529//
530// This method is useful when you want to inject custom logic or configuration
531// into the SDK's request lifecycle. Such as custom headers, or retry logic.
532//
533//
534//    // Example sending a request using the DeleteLifecyclePolicyRequest method.
535//    req, resp := client.DeleteLifecyclePolicyRequest(params)
536//
537//    err := req.Send()
538//    if err == nil { // resp is now filled
539//        fmt.Println(resp)
540//    }
541//
542// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteLifecyclePolicy
543func (c *ECR) DeleteLifecyclePolicyRequest(input *DeleteLifecyclePolicyInput) (req *request.Request, output *DeleteLifecyclePolicyOutput) {
544	op := &request.Operation{
545		Name:       opDeleteLifecyclePolicy,
546		HTTPMethod: "POST",
547		HTTPPath:   "/",
548	}
549
550	if input == nil {
551		input = &DeleteLifecyclePolicyInput{}
552	}
553
554	output = &DeleteLifecyclePolicyOutput{}
555	req = c.newRequest(op, input, output)
556	return
557}
558
559// DeleteLifecyclePolicy API operation for Amazon EC2 Container Registry.
560//
561// Deletes the lifecycle policy associated with the specified repository.
562//
563// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
564// with awserr.Error's Code and Message methods to get detailed information about
565// the error.
566//
567// See the AWS API reference guide for Amazon EC2 Container Registry's
568// API operation DeleteLifecyclePolicy for usage and error information.
569//
570// Returned Error Types:
571//   * ServerException
572//   These errors are usually caused by a server-side issue.
573//
574//   * InvalidParameterException
575//   The specified parameter is invalid. Review the available parameters for the
576//   API request.
577//
578//   * RepositoryNotFoundException
579//   The specified repository could not be found. Check the spelling of the specified
580//   repository and ensure that you are performing operations on the correct registry.
581//
582//   * LifecyclePolicyNotFoundException
583//   The lifecycle policy could not be found, and no policy is set to the repository.
584//
585// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteLifecyclePolicy
586func (c *ECR) DeleteLifecyclePolicy(input *DeleteLifecyclePolicyInput) (*DeleteLifecyclePolicyOutput, error) {
587	req, out := c.DeleteLifecyclePolicyRequest(input)
588	return out, req.Send()
589}
590
591// DeleteLifecyclePolicyWithContext is the same as DeleteLifecyclePolicy with the addition of
592// the ability to pass a context and additional request options.
593//
594// See DeleteLifecyclePolicy for details on how to use this API operation.
595//
596// The context must be non-nil and will be used for request cancellation. If
597// the context is nil a panic will occur. In the future the SDK may create
598// sub-contexts for http.Requests. See https://golang.org/pkg/context/
599// for more information on using Contexts.
600func (c *ECR) DeleteLifecyclePolicyWithContext(ctx aws.Context, input *DeleteLifecyclePolicyInput, opts ...request.Option) (*DeleteLifecyclePolicyOutput, error) {
601	req, out := c.DeleteLifecyclePolicyRequest(input)
602	req.SetContext(ctx)
603	req.ApplyOptions(opts...)
604	return out, req.Send()
605}
606
607const opDeleteRegistryPolicy = "DeleteRegistryPolicy"
608
609// DeleteRegistryPolicyRequest generates a "aws/request.Request" representing the
610// client's request for the DeleteRegistryPolicy operation. The "output" return
611// value will be populated with the request's response once the request completes
612// successfully.
613//
614// Use "Send" method on the returned Request to send the API call to the service.
615// the "output" return value is not valid until after Send returns without error.
616//
617// See DeleteRegistryPolicy for more information on using the DeleteRegistryPolicy
618// API call, and error handling.
619//
620// This method is useful when you want to inject custom logic or configuration
621// into the SDK's request lifecycle. Such as custom headers, or retry logic.
622//
623//
624//    // Example sending a request using the DeleteRegistryPolicyRequest method.
625//    req, resp := client.DeleteRegistryPolicyRequest(params)
626//
627//    err := req.Send()
628//    if err == nil { // resp is now filled
629//        fmt.Println(resp)
630//    }
631//
632// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRegistryPolicy
633func (c *ECR) DeleteRegistryPolicyRequest(input *DeleteRegistryPolicyInput) (req *request.Request, output *DeleteRegistryPolicyOutput) {
634	op := &request.Operation{
635		Name:       opDeleteRegistryPolicy,
636		HTTPMethod: "POST",
637		HTTPPath:   "/",
638	}
639
640	if input == nil {
641		input = &DeleteRegistryPolicyInput{}
642	}
643
644	output = &DeleteRegistryPolicyOutput{}
645	req = c.newRequest(op, input, output)
646	return
647}
648
649// DeleteRegistryPolicy API operation for Amazon EC2 Container Registry.
650//
651// Deletes the registry permissions policy.
652//
653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
654// with awserr.Error's Code and Message methods to get detailed information about
655// the error.
656//
657// See the AWS API reference guide for Amazon EC2 Container Registry's
658// API operation DeleteRegistryPolicy for usage and error information.
659//
660// Returned Error Types:
661//   * ServerException
662//   These errors are usually caused by a server-side issue.
663//
664//   * InvalidParameterException
665//   The specified parameter is invalid. Review the available parameters for the
666//   API request.
667//
668//   * RegistryPolicyNotFoundException
669//   The registry doesn't have an associated registry policy.
670//
671// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRegistryPolicy
672func (c *ECR) DeleteRegistryPolicy(input *DeleteRegistryPolicyInput) (*DeleteRegistryPolicyOutput, error) {
673	req, out := c.DeleteRegistryPolicyRequest(input)
674	return out, req.Send()
675}
676
677// DeleteRegistryPolicyWithContext is the same as DeleteRegistryPolicy with the addition of
678// the ability to pass a context and additional request options.
679//
680// See DeleteRegistryPolicy for details on how to use this API operation.
681//
682// The context must be non-nil and will be used for request cancellation. If
683// the context is nil a panic will occur. In the future the SDK may create
684// sub-contexts for http.Requests. See https://golang.org/pkg/context/
685// for more information on using Contexts.
686func (c *ECR) DeleteRegistryPolicyWithContext(ctx aws.Context, input *DeleteRegistryPolicyInput, opts ...request.Option) (*DeleteRegistryPolicyOutput, error) {
687	req, out := c.DeleteRegistryPolicyRequest(input)
688	req.SetContext(ctx)
689	req.ApplyOptions(opts...)
690	return out, req.Send()
691}
692
693const opDeleteRepository = "DeleteRepository"
694
695// DeleteRepositoryRequest generates a "aws/request.Request" representing the
696// client's request for the DeleteRepository operation. The "output" return
697// value will be populated with the request's response once the request completes
698// successfully.
699//
700// Use "Send" method on the returned Request to send the API call to the service.
701// the "output" return value is not valid until after Send returns without error.
702//
703// See DeleteRepository for more information on using the DeleteRepository
704// API call, and error handling.
705//
706// This method is useful when you want to inject custom logic or configuration
707// into the SDK's request lifecycle. Such as custom headers, or retry logic.
708//
709//
710//    // Example sending a request using the DeleteRepositoryRequest method.
711//    req, resp := client.DeleteRepositoryRequest(params)
712//
713//    err := req.Send()
714//    if err == nil { // resp is now filled
715//        fmt.Println(resp)
716//    }
717//
718// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepository
719func (c *ECR) DeleteRepositoryRequest(input *DeleteRepositoryInput) (req *request.Request, output *DeleteRepositoryOutput) {
720	op := &request.Operation{
721		Name:       opDeleteRepository,
722		HTTPMethod: "POST",
723		HTTPPath:   "/",
724	}
725
726	if input == nil {
727		input = &DeleteRepositoryInput{}
728	}
729
730	output = &DeleteRepositoryOutput{}
731	req = c.newRequest(op, input, output)
732	return
733}
734
735// DeleteRepository API operation for Amazon EC2 Container Registry.
736//
737// Deletes a repository. If the repository contains images, you must either
738// delete all images in the repository or use the force option to delete the
739// repository.
740//
741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
742// with awserr.Error's Code and Message methods to get detailed information about
743// the error.
744//
745// See the AWS API reference guide for Amazon EC2 Container Registry's
746// API operation DeleteRepository for usage and error information.
747//
748// Returned Error Types:
749//   * ServerException
750//   These errors are usually caused by a server-side issue.
751//
752//   * InvalidParameterException
753//   The specified parameter is invalid. Review the available parameters for the
754//   API request.
755//
756//   * RepositoryNotFoundException
757//   The specified repository could not be found. Check the spelling of the specified
758//   repository and ensure that you are performing operations on the correct registry.
759//
760//   * RepositoryNotEmptyException
761//   The specified repository contains images. To delete a repository that contains
762//   images, you must force the deletion with the force parameter.
763//
764//   * KmsException
765//   The operation failed due to a KMS exception.
766//
767// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepository
768func (c *ECR) DeleteRepository(input *DeleteRepositoryInput) (*DeleteRepositoryOutput, error) {
769	req, out := c.DeleteRepositoryRequest(input)
770	return out, req.Send()
771}
772
773// DeleteRepositoryWithContext is the same as DeleteRepository with the addition of
774// the ability to pass a context and additional request options.
775//
776// See DeleteRepository for details on how to use this API operation.
777//
778// The context must be non-nil and will be used for request cancellation. If
779// the context is nil a panic will occur. In the future the SDK may create
780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
781// for more information on using Contexts.
782func (c *ECR) DeleteRepositoryWithContext(ctx aws.Context, input *DeleteRepositoryInput, opts ...request.Option) (*DeleteRepositoryOutput, error) {
783	req, out := c.DeleteRepositoryRequest(input)
784	req.SetContext(ctx)
785	req.ApplyOptions(opts...)
786	return out, req.Send()
787}
788
789const opDeleteRepositoryPolicy = "DeleteRepositoryPolicy"
790
791// DeleteRepositoryPolicyRequest generates a "aws/request.Request" representing the
792// client's request for the DeleteRepositoryPolicy operation. The "output" return
793// value will be populated with the request's response once the request completes
794// successfully.
795//
796// Use "Send" method on the returned Request to send the API call to the service.
797// the "output" return value is not valid until after Send returns without error.
798//
799// See DeleteRepositoryPolicy for more information on using the DeleteRepositoryPolicy
800// API call, and error handling.
801//
802// This method is useful when you want to inject custom logic or configuration
803// into the SDK's request lifecycle. Such as custom headers, or retry logic.
804//
805//
806//    // Example sending a request using the DeleteRepositoryPolicyRequest method.
807//    req, resp := client.DeleteRepositoryPolicyRequest(params)
808//
809//    err := req.Send()
810//    if err == nil { // resp is now filled
811//        fmt.Println(resp)
812//    }
813//
814// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryPolicy
815func (c *ECR) DeleteRepositoryPolicyRequest(input *DeleteRepositoryPolicyInput) (req *request.Request, output *DeleteRepositoryPolicyOutput) {
816	op := &request.Operation{
817		Name:       opDeleteRepositoryPolicy,
818		HTTPMethod: "POST",
819		HTTPPath:   "/",
820	}
821
822	if input == nil {
823		input = &DeleteRepositoryPolicyInput{}
824	}
825
826	output = &DeleteRepositoryPolicyOutput{}
827	req = c.newRequest(op, input, output)
828	return
829}
830
831// DeleteRepositoryPolicy API operation for Amazon EC2 Container Registry.
832//
833// Deletes the repository policy associated with the specified repository.
834//
835// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
836// with awserr.Error's Code and Message methods to get detailed information about
837// the error.
838//
839// See the AWS API reference guide for Amazon EC2 Container Registry's
840// API operation DeleteRepositoryPolicy for usage and error information.
841//
842// Returned Error Types:
843//   * ServerException
844//   These errors are usually caused by a server-side issue.
845//
846//   * InvalidParameterException
847//   The specified parameter is invalid. Review the available parameters for the
848//   API request.
849//
850//   * RepositoryNotFoundException
851//   The specified repository could not be found. Check the spelling of the specified
852//   repository and ensure that you are performing operations on the correct registry.
853//
854//   * RepositoryPolicyNotFoundException
855//   The specified repository and registry combination does not have an associated
856//   repository policy.
857//
858// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryPolicy
859func (c *ECR) DeleteRepositoryPolicy(input *DeleteRepositoryPolicyInput) (*DeleteRepositoryPolicyOutput, error) {
860	req, out := c.DeleteRepositoryPolicyRequest(input)
861	return out, req.Send()
862}
863
864// DeleteRepositoryPolicyWithContext is the same as DeleteRepositoryPolicy with the addition of
865// the ability to pass a context and additional request options.
866//
867// See DeleteRepositoryPolicy for details on how to use this API operation.
868//
869// The context must be non-nil and will be used for request cancellation. If
870// the context is nil a panic will occur. In the future the SDK may create
871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
872// for more information on using Contexts.
873func (c *ECR) DeleteRepositoryPolicyWithContext(ctx aws.Context, input *DeleteRepositoryPolicyInput, opts ...request.Option) (*DeleteRepositoryPolicyOutput, error) {
874	req, out := c.DeleteRepositoryPolicyRequest(input)
875	req.SetContext(ctx)
876	req.ApplyOptions(opts...)
877	return out, req.Send()
878}
879
880const opDescribeImageScanFindings = "DescribeImageScanFindings"
881
882// DescribeImageScanFindingsRequest generates a "aws/request.Request" representing the
883// client's request for the DescribeImageScanFindings operation. The "output" return
884// value will be populated with the request's response once the request completes
885// successfully.
886//
887// Use "Send" method on the returned Request to send the API call to the service.
888// the "output" return value is not valid until after Send returns without error.
889//
890// See DescribeImageScanFindings for more information on using the DescribeImageScanFindings
891// API call, and error handling.
892//
893// This method is useful when you want to inject custom logic or configuration
894// into the SDK's request lifecycle. Such as custom headers, or retry logic.
895//
896//
897//    // Example sending a request using the DescribeImageScanFindingsRequest method.
898//    req, resp := client.DescribeImageScanFindingsRequest(params)
899//
900//    err := req.Send()
901//    if err == nil { // resp is now filled
902//        fmt.Println(resp)
903//    }
904//
905// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageScanFindings
906func (c *ECR) DescribeImageScanFindingsRequest(input *DescribeImageScanFindingsInput) (req *request.Request, output *DescribeImageScanFindingsOutput) {
907	op := &request.Operation{
908		Name:       opDescribeImageScanFindings,
909		HTTPMethod: "POST",
910		HTTPPath:   "/",
911		Paginator: &request.Paginator{
912			InputTokens:     []string{"nextToken"},
913			OutputTokens:    []string{"nextToken"},
914			LimitToken:      "maxResults",
915			TruncationToken: "",
916		},
917	}
918
919	if input == nil {
920		input = &DescribeImageScanFindingsInput{}
921	}
922
923	output = &DescribeImageScanFindingsOutput{}
924	req = c.newRequest(op, input, output)
925	return
926}
927
928// DescribeImageScanFindings API operation for Amazon EC2 Container Registry.
929//
930// Returns the scan findings for the specified image.
931//
932// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
933// with awserr.Error's Code and Message methods to get detailed information about
934// the error.
935//
936// See the AWS API reference guide for Amazon EC2 Container Registry's
937// API operation DescribeImageScanFindings for usage and error information.
938//
939// Returned Error Types:
940//   * ServerException
941//   These errors are usually caused by a server-side issue.
942//
943//   * InvalidParameterException
944//   The specified parameter is invalid. Review the available parameters for the
945//   API request.
946//
947//   * RepositoryNotFoundException
948//   The specified repository could not be found. Check the spelling of the specified
949//   repository and ensure that you are performing operations on the correct registry.
950//
951//   * ImageNotFoundException
952//   The image requested does not exist in the specified repository.
953//
954//   * ScanNotFoundException
955//   The specified image scan could not be found. Ensure that image scanning is
956//   enabled on the repository and try again.
957//
958// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImageScanFindings
959func (c *ECR) DescribeImageScanFindings(input *DescribeImageScanFindingsInput) (*DescribeImageScanFindingsOutput, error) {
960	req, out := c.DescribeImageScanFindingsRequest(input)
961	return out, req.Send()
962}
963
964// DescribeImageScanFindingsWithContext is the same as DescribeImageScanFindings with the addition of
965// the ability to pass a context and additional request options.
966//
967// See DescribeImageScanFindings for details on how to use this API operation.
968//
969// The context must be non-nil and will be used for request cancellation. If
970// the context is nil a panic will occur. In the future the SDK may create
971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
972// for more information on using Contexts.
973func (c *ECR) DescribeImageScanFindingsWithContext(ctx aws.Context, input *DescribeImageScanFindingsInput, opts ...request.Option) (*DescribeImageScanFindingsOutput, error) {
974	req, out := c.DescribeImageScanFindingsRequest(input)
975	req.SetContext(ctx)
976	req.ApplyOptions(opts...)
977	return out, req.Send()
978}
979
980// DescribeImageScanFindingsPages iterates over the pages of a DescribeImageScanFindings operation,
981// calling the "fn" function with the response data for each page. To stop
982// iterating, return false from the fn function.
983//
984// See DescribeImageScanFindings method for more information on how to use this operation.
985//
986// Note: This operation can generate multiple requests to a service.
987//
988//    // Example iterating over at most 3 pages of a DescribeImageScanFindings operation.
989//    pageNum := 0
990//    err := client.DescribeImageScanFindingsPages(params,
991//        func(page *ecr.DescribeImageScanFindingsOutput, lastPage bool) bool {
992//            pageNum++
993//            fmt.Println(page)
994//            return pageNum <= 3
995//        })
996//
997func (c *ECR) DescribeImageScanFindingsPages(input *DescribeImageScanFindingsInput, fn func(*DescribeImageScanFindingsOutput, bool) bool) error {
998	return c.DescribeImageScanFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
999}
1000
1001// DescribeImageScanFindingsPagesWithContext same as DescribeImageScanFindingsPages except
1002// it takes a Context and allows setting request options on the pages.
1003//
1004// The context must be non-nil and will be used for request cancellation. If
1005// the context is nil a panic will occur. In the future the SDK may create
1006// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1007// for more information on using Contexts.
1008func (c *ECR) DescribeImageScanFindingsPagesWithContext(ctx aws.Context, input *DescribeImageScanFindingsInput, fn func(*DescribeImageScanFindingsOutput, bool) bool, opts ...request.Option) error {
1009	p := request.Pagination{
1010		NewRequest: func() (*request.Request, error) {
1011			var inCpy *DescribeImageScanFindingsInput
1012			if input != nil {
1013				tmp := *input
1014				inCpy = &tmp
1015			}
1016			req, _ := c.DescribeImageScanFindingsRequest(inCpy)
1017			req.SetContext(ctx)
1018			req.ApplyOptions(opts...)
1019			return req, nil
1020		},
1021	}
1022
1023	for p.Next() {
1024		if !fn(p.Page().(*DescribeImageScanFindingsOutput), !p.HasNextPage()) {
1025			break
1026		}
1027	}
1028
1029	return p.Err()
1030}
1031
1032const opDescribeImages = "DescribeImages"
1033
1034// DescribeImagesRequest generates a "aws/request.Request" representing the
1035// client's request for the DescribeImages operation. The "output" return
1036// value will be populated with the request's response once the request completes
1037// successfully.
1038//
1039// Use "Send" method on the returned Request to send the API call to the service.
1040// the "output" return value is not valid until after Send returns without error.
1041//
1042// See DescribeImages for more information on using the DescribeImages
1043// API call, and error handling.
1044//
1045// This method is useful when you want to inject custom logic or configuration
1046// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1047//
1048//
1049//    // Example sending a request using the DescribeImagesRequest method.
1050//    req, resp := client.DescribeImagesRequest(params)
1051//
1052//    err := req.Send()
1053//    if err == nil { // resp is now filled
1054//        fmt.Println(resp)
1055//    }
1056//
1057// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImages
1058func (c *ECR) DescribeImagesRequest(input *DescribeImagesInput) (req *request.Request, output *DescribeImagesOutput) {
1059	op := &request.Operation{
1060		Name:       opDescribeImages,
1061		HTTPMethod: "POST",
1062		HTTPPath:   "/",
1063		Paginator: &request.Paginator{
1064			InputTokens:     []string{"nextToken"},
1065			OutputTokens:    []string{"nextToken"},
1066			LimitToken:      "maxResults",
1067			TruncationToken: "",
1068		},
1069	}
1070
1071	if input == nil {
1072		input = &DescribeImagesInput{}
1073	}
1074
1075	output = &DescribeImagesOutput{}
1076	req = c.newRequest(op, input, output)
1077	return
1078}
1079
1080// DescribeImages API operation for Amazon EC2 Container Registry.
1081//
1082// Returns metadata about the images in a repository.
1083//
1084// Beginning with Docker version 1.9, the Docker client compresses image layers
1085// before pushing them to a V2 Docker registry. The output of the docker images
1086// command shows the uncompressed image size, so it may return a larger image
1087// size than the image sizes returned by DescribeImages.
1088//
1089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1090// with awserr.Error's Code and Message methods to get detailed information about
1091// the error.
1092//
1093// See the AWS API reference guide for Amazon EC2 Container Registry's
1094// API operation DescribeImages for usage and error information.
1095//
1096// Returned Error Types:
1097//   * ServerException
1098//   These errors are usually caused by a server-side issue.
1099//
1100//   * InvalidParameterException
1101//   The specified parameter is invalid. Review the available parameters for the
1102//   API request.
1103//
1104//   * RepositoryNotFoundException
1105//   The specified repository could not be found. Check the spelling of the specified
1106//   repository and ensure that you are performing operations on the correct registry.
1107//
1108//   * ImageNotFoundException
1109//   The image requested does not exist in the specified repository.
1110//
1111// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImages
1112func (c *ECR) DescribeImages(input *DescribeImagesInput) (*DescribeImagesOutput, error) {
1113	req, out := c.DescribeImagesRequest(input)
1114	return out, req.Send()
1115}
1116
1117// DescribeImagesWithContext is the same as DescribeImages with the addition of
1118// the ability to pass a context and additional request options.
1119//
1120// See DescribeImages for details on how to use this API operation.
1121//
1122// The context must be non-nil and will be used for request cancellation. If
1123// the context is nil a panic will occur. In the future the SDK may create
1124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1125// for more information on using Contexts.
1126func (c *ECR) DescribeImagesWithContext(ctx aws.Context, input *DescribeImagesInput, opts ...request.Option) (*DescribeImagesOutput, error) {
1127	req, out := c.DescribeImagesRequest(input)
1128	req.SetContext(ctx)
1129	req.ApplyOptions(opts...)
1130	return out, req.Send()
1131}
1132
1133// DescribeImagesPages iterates over the pages of a DescribeImages operation,
1134// calling the "fn" function with the response data for each page. To stop
1135// iterating, return false from the fn function.
1136//
1137// See DescribeImages method for more information on how to use this operation.
1138//
1139// Note: This operation can generate multiple requests to a service.
1140//
1141//    // Example iterating over at most 3 pages of a DescribeImages operation.
1142//    pageNum := 0
1143//    err := client.DescribeImagesPages(params,
1144//        func(page *ecr.DescribeImagesOutput, lastPage bool) bool {
1145//            pageNum++
1146//            fmt.Println(page)
1147//            return pageNum <= 3
1148//        })
1149//
1150func (c *ECR) DescribeImagesPages(input *DescribeImagesInput, fn func(*DescribeImagesOutput, bool) bool) error {
1151	return c.DescribeImagesPagesWithContext(aws.BackgroundContext(), input, fn)
1152}
1153
1154// DescribeImagesPagesWithContext same as DescribeImagesPages except
1155// it takes a Context and allows setting request options on the pages.
1156//
1157// The context must be non-nil and will be used for request cancellation. If
1158// the context is nil a panic will occur. In the future the SDK may create
1159// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1160// for more information on using Contexts.
1161func (c *ECR) DescribeImagesPagesWithContext(ctx aws.Context, input *DescribeImagesInput, fn func(*DescribeImagesOutput, bool) bool, opts ...request.Option) error {
1162	p := request.Pagination{
1163		NewRequest: func() (*request.Request, error) {
1164			var inCpy *DescribeImagesInput
1165			if input != nil {
1166				tmp := *input
1167				inCpy = &tmp
1168			}
1169			req, _ := c.DescribeImagesRequest(inCpy)
1170			req.SetContext(ctx)
1171			req.ApplyOptions(opts...)
1172			return req, nil
1173		},
1174	}
1175
1176	for p.Next() {
1177		if !fn(p.Page().(*DescribeImagesOutput), !p.HasNextPage()) {
1178			break
1179		}
1180	}
1181
1182	return p.Err()
1183}
1184
1185const opDescribeRegistry = "DescribeRegistry"
1186
1187// DescribeRegistryRequest generates a "aws/request.Request" representing the
1188// client's request for the DescribeRegistry operation. The "output" return
1189// value will be populated with the request's response once the request completes
1190// successfully.
1191//
1192// Use "Send" method on the returned Request to send the API call to the service.
1193// the "output" return value is not valid until after Send returns without error.
1194//
1195// See DescribeRegistry for more information on using the DescribeRegistry
1196// API call, and error handling.
1197//
1198// This method is useful when you want to inject custom logic or configuration
1199// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1200//
1201//
1202//    // Example sending a request using the DescribeRegistryRequest method.
1203//    req, resp := client.DescribeRegistryRequest(params)
1204//
1205//    err := req.Send()
1206//    if err == nil { // resp is now filled
1207//        fmt.Println(resp)
1208//    }
1209//
1210// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRegistry
1211func (c *ECR) DescribeRegistryRequest(input *DescribeRegistryInput) (req *request.Request, output *DescribeRegistryOutput) {
1212	op := &request.Operation{
1213		Name:       opDescribeRegistry,
1214		HTTPMethod: "POST",
1215		HTTPPath:   "/",
1216	}
1217
1218	if input == nil {
1219		input = &DescribeRegistryInput{}
1220	}
1221
1222	output = &DescribeRegistryOutput{}
1223	req = c.newRequest(op, input, output)
1224	return
1225}
1226
1227// DescribeRegistry API operation for Amazon EC2 Container Registry.
1228//
1229// Describes the settings for a registry. The replication configuration for
1230// a repository can be created or updated with the PutReplicationConfiguration
1231// API action.
1232//
1233// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1234// with awserr.Error's Code and Message methods to get detailed information about
1235// the error.
1236//
1237// See the AWS API reference guide for Amazon EC2 Container Registry's
1238// API operation DescribeRegistry for usage and error information.
1239//
1240// Returned Error Types:
1241//   * ServerException
1242//   These errors are usually caused by a server-side issue.
1243//
1244//   * InvalidParameterException
1245//   The specified parameter is invalid. Review the available parameters for the
1246//   API request.
1247//
1248//   * ValidationException
1249//   There was an exception validating this request.
1250//
1251// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRegistry
1252func (c *ECR) DescribeRegistry(input *DescribeRegistryInput) (*DescribeRegistryOutput, error) {
1253	req, out := c.DescribeRegistryRequest(input)
1254	return out, req.Send()
1255}
1256
1257// DescribeRegistryWithContext is the same as DescribeRegistry with the addition of
1258// the ability to pass a context and additional request options.
1259//
1260// See DescribeRegistry for details on how to use this API operation.
1261//
1262// The context must be non-nil and will be used for request cancellation. If
1263// the context is nil a panic will occur. In the future the SDK may create
1264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1265// for more information on using Contexts.
1266func (c *ECR) DescribeRegistryWithContext(ctx aws.Context, input *DescribeRegistryInput, opts ...request.Option) (*DescribeRegistryOutput, error) {
1267	req, out := c.DescribeRegistryRequest(input)
1268	req.SetContext(ctx)
1269	req.ApplyOptions(opts...)
1270	return out, req.Send()
1271}
1272
1273const opDescribeRepositories = "DescribeRepositories"
1274
1275// DescribeRepositoriesRequest generates a "aws/request.Request" representing the
1276// client's request for the DescribeRepositories operation. The "output" return
1277// value will be populated with the request's response once the request completes
1278// successfully.
1279//
1280// Use "Send" method on the returned Request to send the API call to the service.
1281// the "output" return value is not valid until after Send returns without error.
1282//
1283// See DescribeRepositories for more information on using the DescribeRepositories
1284// API call, and error handling.
1285//
1286// This method is useful when you want to inject custom logic or configuration
1287// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1288//
1289//
1290//    // Example sending a request using the DescribeRepositoriesRequest method.
1291//    req, resp := client.DescribeRepositoriesRequest(params)
1292//
1293//    err := req.Send()
1294//    if err == nil { // resp is now filled
1295//        fmt.Println(resp)
1296//    }
1297//
1298// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositories
1299func (c *ECR) DescribeRepositoriesRequest(input *DescribeRepositoriesInput) (req *request.Request, output *DescribeRepositoriesOutput) {
1300	op := &request.Operation{
1301		Name:       opDescribeRepositories,
1302		HTTPMethod: "POST",
1303		HTTPPath:   "/",
1304		Paginator: &request.Paginator{
1305			InputTokens:     []string{"nextToken"},
1306			OutputTokens:    []string{"nextToken"},
1307			LimitToken:      "maxResults",
1308			TruncationToken: "",
1309		},
1310	}
1311
1312	if input == nil {
1313		input = &DescribeRepositoriesInput{}
1314	}
1315
1316	output = &DescribeRepositoriesOutput{}
1317	req = c.newRequest(op, input, output)
1318	return
1319}
1320
1321// DescribeRepositories API operation for Amazon EC2 Container Registry.
1322//
1323// Describes image repositories in a registry.
1324//
1325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1326// with awserr.Error's Code and Message methods to get detailed information about
1327// the error.
1328//
1329// See the AWS API reference guide for Amazon EC2 Container Registry's
1330// API operation DescribeRepositories for usage and error information.
1331//
1332// Returned Error Types:
1333//   * ServerException
1334//   These errors are usually caused by a server-side issue.
1335//
1336//   * InvalidParameterException
1337//   The specified parameter is invalid. Review the available parameters for the
1338//   API request.
1339//
1340//   * RepositoryNotFoundException
1341//   The specified repository could not be found. Check the spelling of the specified
1342//   repository and ensure that you are performing operations on the correct registry.
1343//
1344// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositories
1345func (c *ECR) DescribeRepositories(input *DescribeRepositoriesInput) (*DescribeRepositoriesOutput, error) {
1346	req, out := c.DescribeRepositoriesRequest(input)
1347	return out, req.Send()
1348}
1349
1350// DescribeRepositoriesWithContext is the same as DescribeRepositories with the addition of
1351// the ability to pass a context and additional request options.
1352//
1353// See DescribeRepositories for details on how to use this API operation.
1354//
1355// The context must be non-nil and will be used for request cancellation. If
1356// the context is nil a panic will occur. In the future the SDK may create
1357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1358// for more information on using Contexts.
1359func (c *ECR) DescribeRepositoriesWithContext(ctx aws.Context, input *DescribeRepositoriesInput, opts ...request.Option) (*DescribeRepositoriesOutput, error) {
1360	req, out := c.DescribeRepositoriesRequest(input)
1361	req.SetContext(ctx)
1362	req.ApplyOptions(opts...)
1363	return out, req.Send()
1364}
1365
1366// DescribeRepositoriesPages iterates over the pages of a DescribeRepositories operation,
1367// calling the "fn" function with the response data for each page. To stop
1368// iterating, return false from the fn function.
1369//
1370// See DescribeRepositories method for more information on how to use this operation.
1371//
1372// Note: This operation can generate multiple requests to a service.
1373//
1374//    // Example iterating over at most 3 pages of a DescribeRepositories operation.
1375//    pageNum := 0
1376//    err := client.DescribeRepositoriesPages(params,
1377//        func(page *ecr.DescribeRepositoriesOutput, lastPage bool) bool {
1378//            pageNum++
1379//            fmt.Println(page)
1380//            return pageNum <= 3
1381//        })
1382//
1383func (c *ECR) DescribeRepositoriesPages(input *DescribeRepositoriesInput, fn func(*DescribeRepositoriesOutput, bool) bool) error {
1384	return c.DescribeRepositoriesPagesWithContext(aws.BackgroundContext(), input, fn)
1385}
1386
1387// DescribeRepositoriesPagesWithContext same as DescribeRepositoriesPages except
1388// it takes a Context and allows setting request options on the pages.
1389//
1390// The context must be non-nil and will be used for request cancellation. If
1391// the context is nil a panic will occur. In the future the SDK may create
1392// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1393// for more information on using Contexts.
1394func (c *ECR) DescribeRepositoriesPagesWithContext(ctx aws.Context, input *DescribeRepositoriesInput, fn func(*DescribeRepositoriesOutput, bool) bool, opts ...request.Option) error {
1395	p := request.Pagination{
1396		NewRequest: func() (*request.Request, error) {
1397			var inCpy *DescribeRepositoriesInput
1398			if input != nil {
1399				tmp := *input
1400				inCpy = &tmp
1401			}
1402			req, _ := c.DescribeRepositoriesRequest(inCpy)
1403			req.SetContext(ctx)
1404			req.ApplyOptions(opts...)
1405			return req, nil
1406		},
1407	}
1408
1409	for p.Next() {
1410		if !fn(p.Page().(*DescribeRepositoriesOutput), !p.HasNextPage()) {
1411			break
1412		}
1413	}
1414
1415	return p.Err()
1416}
1417
1418const opGetAuthorizationToken = "GetAuthorizationToken"
1419
1420// GetAuthorizationTokenRequest generates a "aws/request.Request" representing the
1421// client's request for the GetAuthorizationToken operation. The "output" return
1422// value will be populated with the request's response once the request completes
1423// successfully.
1424//
1425// Use "Send" method on the returned Request to send the API call to the service.
1426// the "output" return value is not valid until after Send returns without error.
1427//
1428// See GetAuthorizationToken for more information on using the GetAuthorizationToken
1429// API call, and error handling.
1430//
1431// This method is useful when you want to inject custom logic or configuration
1432// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1433//
1434//
1435//    // Example sending a request using the GetAuthorizationTokenRequest method.
1436//    req, resp := client.GetAuthorizationTokenRequest(params)
1437//
1438//    err := req.Send()
1439//    if err == nil { // resp is now filled
1440//        fmt.Println(resp)
1441//    }
1442//
1443// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetAuthorizationToken
1444func (c *ECR) GetAuthorizationTokenRequest(input *GetAuthorizationTokenInput) (req *request.Request, output *GetAuthorizationTokenOutput) {
1445	op := &request.Operation{
1446		Name:       opGetAuthorizationToken,
1447		HTTPMethod: "POST",
1448		HTTPPath:   "/",
1449	}
1450
1451	if input == nil {
1452		input = &GetAuthorizationTokenInput{}
1453	}
1454
1455	output = &GetAuthorizationTokenOutput{}
1456	req = c.newRequest(op, input, output)
1457	return
1458}
1459
1460// GetAuthorizationToken API operation for Amazon EC2 Container Registry.
1461//
1462// Retrieves an authorization token. An authorization token represents your
1463// IAM authentication credentials and can be used to access any Amazon ECR registry
1464// that your IAM principal has access to. The authorization token is valid for
1465// 12 hours.
1466//
1467// The authorizationToken returned is a base64 encoded string that can be decoded
1468// and used in a docker login command to authenticate to a registry. The AWS
1469// CLI offers an get-login-password command that simplifies the login process.
1470// For more information, see Registry Authentication (https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth)
1471// in the Amazon Elastic Container Registry User Guide.
1472//
1473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1474// with awserr.Error's Code and Message methods to get detailed information about
1475// the error.
1476//
1477// See the AWS API reference guide for Amazon EC2 Container Registry's
1478// API operation GetAuthorizationToken for usage and error information.
1479//
1480// Returned Error Types:
1481//   * ServerException
1482//   These errors are usually caused by a server-side issue.
1483//
1484//   * InvalidParameterException
1485//   The specified parameter is invalid. Review the available parameters for the
1486//   API request.
1487//
1488// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetAuthorizationToken
1489func (c *ECR) GetAuthorizationToken(input *GetAuthorizationTokenInput) (*GetAuthorizationTokenOutput, error) {
1490	req, out := c.GetAuthorizationTokenRequest(input)
1491	return out, req.Send()
1492}
1493
1494// GetAuthorizationTokenWithContext is the same as GetAuthorizationToken with the addition of
1495// the ability to pass a context and additional request options.
1496//
1497// See GetAuthorizationToken for details on how to use this API operation.
1498//
1499// The context must be non-nil and will be used for request cancellation. If
1500// the context is nil a panic will occur. In the future the SDK may create
1501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1502// for more information on using Contexts.
1503func (c *ECR) GetAuthorizationTokenWithContext(ctx aws.Context, input *GetAuthorizationTokenInput, opts ...request.Option) (*GetAuthorizationTokenOutput, error) {
1504	req, out := c.GetAuthorizationTokenRequest(input)
1505	req.SetContext(ctx)
1506	req.ApplyOptions(opts...)
1507	return out, req.Send()
1508}
1509
1510const opGetDownloadUrlForLayer = "GetDownloadUrlForLayer"
1511
1512// GetDownloadUrlForLayerRequest generates a "aws/request.Request" representing the
1513// client's request for the GetDownloadUrlForLayer operation. The "output" return
1514// value will be populated with the request's response once the request completes
1515// successfully.
1516//
1517// Use "Send" method on the returned Request to send the API call to the service.
1518// the "output" return value is not valid until after Send returns without error.
1519//
1520// See GetDownloadUrlForLayer for more information on using the GetDownloadUrlForLayer
1521// API call, and error handling.
1522//
1523// This method is useful when you want to inject custom logic or configuration
1524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1525//
1526//
1527//    // Example sending a request using the GetDownloadUrlForLayerRequest method.
1528//    req, resp := client.GetDownloadUrlForLayerRequest(params)
1529//
1530//    err := req.Send()
1531//    if err == nil { // resp is now filled
1532//        fmt.Println(resp)
1533//    }
1534//
1535// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetDownloadUrlForLayer
1536func (c *ECR) GetDownloadUrlForLayerRequest(input *GetDownloadUrlForLayerInput) (req *request.Request, output *GetDownloadUrlForLayerOutput) {
1537	op := &request.Operation{
1538		Name:       opGetDownloadUrlForLayer,
1539		HTTPMethod: "POST",
1540		HTTPPath:   "/",
1541	}
1542
1543	if input == nil {
1544		input = &GetDownloadUrlForLayerInput{}
1545	}
1546
1547	output = &GetDownloadUrlForLayerOutput{}
1548	req = c.newRequest(op, input, output)
1549	return
1550}
1551
1552// GetDownloadUrlForLayer API operation for Amazon EC2 Container Registry.
1553//
1554// Retrieves the pre-signed Amazon S3 download URL corresponding to an image
1555// layer. You can only get URLs for image layers that are referenced in an image.
1556//
1557// When an image is pulled, the GetDownloadUrlForLayer API is called once per
1558// image layer that is not already cached.
1559//
1560// This operation is used by the Amazon ECR proxy and is not generally used
1561// by customers for pulling and pushing images. In most cases, you should use
1562// the docker CLI to pull, tag, and push images.
1563//
1564// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1565// with awserr.Error's Code and Message methods to get detailed information about
1566// the error.
1567//
1568// See the AWS API reference guide for Amazon EC2 Container Registry's
1569// API operation GetDownloadUrlForLayer for usage and error information.
1570//
1571// Returned Error Types:
1572//   * ServerException
1573//   These errors are usually caused by a server-side issue.
1574//
1575//   * InvalidParameterException
1576//   The specified parameter is invalid. Review the available parameters for the
1577//   API request.
1578//
1579//   * LayersNotFoundException
1580//   The specified layers could not be found, or the specified layer is not valid
1581//   for this repository.
1582//
1583//   * LayerInaccessibleException
1584//   The specified layer is not available because it is not associated with an
1585//   image. Unassociated image layers may be cleaned up at any time.
1586//
1587//   * RepositoryNotFoundException
1588//   The specified repository could not be found. Check the spelling of the specified
1589//   repository and ensure that you are performing operations on the correct registry.
1590//
1591// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetDownloadUrlForLayer
1592func (c *ECR) GetDownloadUrlForLayer(input *GetDownloadUrlForLayerInput) (*GetDownloadUrlForLayerOutput, error) {
1593	req, out := c.GetDownloadUrlForLayerRequest(input)
1594	return out, req.Send()
1595}
1596
1597// GetDownloadUrlForLayerWithContext is the same as GetDownloadUrlForLayer with the addition of
1598// the ability to pass a context and additional request options.
1599//
1600// See GetDownloadUrlForLayer for details on how to use this API operation.
1601//
1602// The context must be non-nil and will be used for request cancellation. If
1603// the context is nil a panic will occur. In the future the SDK may create
1604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1605// for more information on using Contexts.
1606func (c *ECR) GetDownloadUrlForLayerWithContext(ctx aws.Context, input *GetDownloadUrlForLayerInput, opts ...request.Option) (*GetDownloadUrlForLayerOutput, error) {
1607	req, out := c.GetDownloadUrlForLayerRequest(input)
1608	req.SetContext(ctx)
1609	req.ApplyOptions(opts...)
1610	return out, req.Send()
1611}
1612
1613const opGetLifecyclePolicy = "GetLifecyclePolicy"
1614
1615// GetLifecyclePolicyRequest generates a "aws/request.Request" representing the
1616// client's request for the GetLifecyclePolicy operation. The "output" return
1617// value will be populated with the request's response once the request completes
1618// successfully.
1619//
1620// Use "Send" method on the returned Request to send the API call to the service.
1621// the "output" return value is not valid until after Send returns without error.
1622//
1623// See GetLifecyclePolicy for more information on using the GetLifecyclePolicy
1624// API call, and error handling.
1625//
1626// This method is useful when you want to inject custom logic or configuration
1627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1628//
1629//
1630//    // Example sending a request using the GetLifecyclePolicyRequest method.
1631//    req, resp := client.GetLifecyclePolicyRequest(params)
1632//
1633//    err := req.Send()
1634//    if err == nil { // resp is now filled
1635//        fmt.Println(resp)
1636//    }
1637//
1638// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicy
1639func (c *ECR) GetLifecyclePolicyRequest(input *GetLifecyclePolicyInput) (req *request.Request, output *GetLifecyclePolicyOutput) {
1640	op := &request.Operation{
1641		Name:       opGetLifecyclePolicy,
1642		HTTPMethod: "POST",
1643		HTTPPath:   "/",
1644	}
1645
1646	if input == nil {
1647		input = &GetLifecyclePolicyInput{}
1648	}
1649
1650	output = &GetLifecyclePolicyOutput{}
1651	req = c.newRequest(op, input, output)
1652	return
1653}
1654
1655// GetLifecyclePolicy API operation for Amazon EC2 Container Registry.
1656//
1657// Retrieves the lifecycle policy for the specified repository.
1658//
1659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1660// with awserr.Error's Code and Message methods to get detailed information about
1661// the error.
1662//
1663// See the AWS API reference guide for Amazon EC2 Container Registry's
1664// API operation GetLifecyclePolicy for usage and error information.
1665//
1666// Returned Error Types:
1667//   * ServerException
1668//   These errors are usually caused by a server-side issue.
1669//
1670//   * InvalidParameterException
1671//   The specified parameter is invalid. Review the available parameters for the
1672//   API request.
1673//
1674//   * RepositoryNotFoundException
1675//   The specified repository could not be found. Check the spelling of the specified
1676//   repository and ensure that you are performing operations on the correct registry.
1677//
1678//   * LifecyclePolicyNotFoundException
1679//   The lifecycle policy could not be found, and no policy is set to the repository.
1680//
1681// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicy
1682func (c *ECR) GetLifecyclePolicy(input *GetLifecyclePolicyInput) (*GetLifecyclePolicyOutput, error) {
1683	req, out := c.GetLifecyclePolicyRequest(input)
1684	return out, req.Send()
1685}
1686
1687// GetLifecyclePolicyWithContext is the same as GetLifecyclePolicy with the addition of
1688// the ability to pass a context and additional request options.
1689//
1690// See GetLifecyclePolicy for details on how to use this API operation.
1691//
1692// The context must be non-nil and will be used for request cancellation. If
1693// the context is nil a panic will occur. In the future the SDK may create
1694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1695// for more information on using Contexts.
1696func (c *ECR) GetLifecyclePolicyWithContext(ctx aws.Context, input *GetLifecyclePolicyInput, opts ...request.Option) (*GetLifecyclePolicyOutput, error) {
1697	req, out := c.GetLifecyclePolicyRequest(input)
1698	req.SetContext(ctx)
1699	req.ApplyOptions(opts...)
1700	return out, req.Send()
1701}
1702
1703const opGetLifecyclePolicyPreview = "GetLifecyclePolicyPreview"
1704
1705// GetLifecyclePolicyPreviewRequest generates a "aws/request.Request" representing the
1706// client's request for the GetLifecyclePolicyPreview operation. The "output" return
1707// value will be populated with the request's response once the request completes
1708// successfully.
1709//
1710// Use "Send" method on the returned Request to send the API call to the service.
1711// the "output" return value is not valid until after Send returns without error.
1712//
1713// See GetLifecyclePolicyPreview for more information on using the GetLifecyclePolicyPreview
1714// API call, and error handling.
1715//
1716// This method is useful when you want to inject custom logic or configuration
1717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1718//
1719//
1720//    // Example sending a request using the GetLifecyclePolicyPreviewRequest method.
1721//    req, resp := client.GetLifecyclePolicyPreviewRequest(params)
1722//
1723//    err := req.Send()
1724//    if err == nil { // resp is now filled
1725//        fmt.Println(resp)
1726//    }
1727//
1728// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyPreview
1729func (c *ECR) GetLifecyclePolicyPreviewRequest(input *GetLifecyclePolicyPreviewInput) (req *request.Request, output *GetLifecyclePolicyPreviewOutput) {
1730	op := &request.Operation{
1731		Name:       opGetLifecyclePolicyPreview,
1732		HTTPMethod: "POST",
1733		HTTPPath:   "/",
1734		Paginator: &request.Paginator{
1735			InputTokens:     []string{"nextToken"},
1736			OutputTokens:    []string{"nextToken"},
1737			LimitToken:      "maxResults",
1738			TruncationToken: "",
1739		},
1740	}
1741
1742	if input == nil {
1743		input = &GetLifecyclePolicyPreviewInput{}
1744	}
1745
1746	output = &GetLifecyclePolicyPreviewOutput{}
1747	req = c.newRequest(op, input, output)
1748	return
1749}
1750
1751// GetLifecyclePolicyPreview API operation for Amazon EC2 Container Registry.
1752//
1753// Retrieves the results of the lifecycle policy preview request for the specified
1754// repository.
1755//
1756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1757// with awserr.Error's Code and Message methods to get detailed information about
1758// the error.
1759//
1760// See the AWS API reference guide for Amazon EC2 Container Registry's
1761// API operation GetLifecyclePolicyPreview for usage and error information.
1762//
1763// Returned Error Types:
1764//   * ServerException
1765//   These errors are usually caused by a server-side issue.
1766//
1767//   * InvalidParameterException
1768//   The specified parameter is invalid. Review the available parameters for the
1769//   API request.
1770//
1771//   * RepositoryNotFoundException
1772//   The specified repository could not be found. Check the spelling of the specified
1773//   repository and ensure that you are performing operations on the correct registry.
1774//
1775//   * LifecyclePolicyPreviewNotFoundException
1776//   There is no dry run for this repository.
1777//
1778// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyPreview
1779func (c *ECR) GetLifecyclePolicyPreview(input *GetLifecyclePolicyPreviewInput) (*GetLifecyclePolicyPreviewOutput, error) {
1780	req, out := c.GetLifecyclePolicyPreviewRequest(input)
1781	return out, req.Send()
1782}
1783
1784// GetLifecyclePolicyPreviewWithContext is the same as GetLifecyclePolicyPreview with the addition of
1785// the ability to pass a context and additional request options.
1786//
1787// See GetLifecyclePolicyPreview for details on how to use this API operation.
1788//
1789// The context must be non-nil and will be used for request cancellation. If
1790// the context is nil a panic will occur. In the future the SDK may create
1791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1792// for more information on using Contexts.
1793func (c *ECR) GetLifecyclePolicyPreviewWithContext(ctx aws.Context, input *GetLifecyclePolicyPreviewInput, opts ...request.Option) (*GetLifecyclePolicyPreviewOutput, error) {
1794	req, out := c.GetLifecyclePolicyPreviewRequest(input)
1795	req.SetContext(ctx)
1796	req.ApplyOptions(opts...)
1797	return out, req.Send()
1798}
1799
1800// GetLifecyclePolicyPreviewPages iterates over the pages of a GetLifecyclePolicyPreview operation,
1801// calling the "fn" function with the response data for each page. To stop
1802// iterating, return false from the fn function.
1803//
1804// See GetLifecyclePolicyPreview method for more information on how to use this operation.
1805//
1806// Note: This operation can generate multiple requests to a service.
1807//
1808//    // Example iterating over at most 3 pages of a GetLifecyclePolicyPreview operation.
1809//    pageNum := 0
1810//    err := client.GetLifecyclePolicyPreviewPages(params,
1811//        func(page *ecr.GetLifecyclePolicyPreviewOutput, lastPage bool) bool {
1812//            pageNum++
1813//            fmt.Println(page)
1814//            return pageNum <= 3
1815//        })
1816//
1817func (c *ECR) GetLifecyclePolicyPreviewPages(input *GetLifecyclePolicyPreviewInput, fn func(*GetLifecyclePolicyPreviewOutput, bool) bool) error {
1818	return c.GetLifecyclePolicyPreviewPagesWithContext(aws.BackgroundContext(), input, fn)
1819}
1820
1821// GetLifecyclePolicyPreviewPagesWithContext same as GetLifecyclePolicyPreviewPages except
1822// it takes a Context and allows setting request options on the pages.
1823//
1824// The context must be non-nil and will be used for request cancellation. If
1825// the context is nil a panic will occur. In the future the SDK may create
1826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1827// for more information on using Contexts.
1828func (c *ECR) GetLifecyclePolicyPreviewPagesWithContext(ctx aws.Context, input *GetLifecyclePolicyPreviewInput, fn func(*GetLifecyclePolicyPreviewOutput, bool) bool, opts ...request.Option) error {
1829	p := request.Pagination{
1830		NewRequest: func() (*request.Request, error) {
1831			var inCpy *GetLifecyclePolicyPreviewInput
1832			if input != nil {
1833				tmp := *input
1834				inCpy = &tmp
1835			}
1836			req, _ := c.GetLifecyclePolicyPreviewRequest(inCpy)
1837			req.SetContext(ctx)
1838			req.ApplyOptions(opts...)
1839			return req, nil
1840		},
1841	}
1842
1843	for p.Next() {
1844		if !fn(p.Page().(*GetLifecyclePolicyPreviewOutput), !p.HasNextPage()) {
1845			break
1846		}
1847	}
1848
1849	return p.Err()
1850}
1851
1852const opGetRegistryPolicy = "GetRegistryPolicy"
1853
1854// GetRegistryPolicyRequest generates a "aws/request.Request" representing the
1855// client's request for the GetRegistryPolicy operation. The "output" return
1856// value will be populated with the request's response once the request completes
1857// successfully.
1858//
1859// Use "Send" method on the returned Request to send the API call to the service.
1860// the "output" return value is not valid until after Send returns without error.
1861//
1862// See GetRegistryPolicy for more information on using the GetRegistryPolicy
1863// API call, and error handling.
1864//
1865// This method is useful when you want to inject custom logic or configuration
1866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1867//
1868//
1869//    // Example sending a request using the GetRegistryPolicyRequest method.
1870//    req, resp := client.GetRegistryPolicyRequest(params)
1871//
1872//    err := req.Send()
1873//    if err == nil { // resp is now filled
1874//        fmt.Println(resp)
1875//    }
1876//
1877// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRegistryPolicy
1878func (c *ECR) GetRegistryPolicyRequest(input *GetRegistryPolicyInput) (req *request.Request, output *GetRegistryPolicyOutput) {
1879	op := &request.Operation{
1880		Name:       opGetRegistryPolicy,
1881		HTTPMethod: "POST",
1882		HTTPPath:   "/",
1883	}
1884
1885	if input == nil {
1886		input = &GetRegistryPolicyInput{}
1887	}
1888
1889	output = &GetRegistryPolicyOutput{}
1890	req = c.newRequest(op, input, output)
1891	return
1892}
1893
1894// GetRegistryPolicy API operation for Amazon EC2 Container Registry.
1895//
1896// Retrieves the permissions policy for a registry.
1897//
1898// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1899// with awserr.Error's Code and Message methods to get detailed information about
1900// the error.
1901//
1902// See the AWS API reference guide for Amazon EC2 Container Registry's
1903// API operation GetRegistryPolicy for usage and error information.
1904//
1905// Returned Error Types:
1906//   * ServerException
1907//   These errors are usually caused by a server-side issue.
1908//
1909//   * InvalidParameterException
1910//   The specified parameter is invalid. Review the available parameters for the
1911//   API request.
1912//
1913//   * RegistryPolicyNotFoundException
1914//   The registry doesn't have an associated registry policy.
1915//
1916// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRegistryPolicy
1917func (c *ECR) GetRegistryPolicy(input *GetRegistryPolicyInput) (*GetRegistryPolicyOutput, error) {
1918	req, out := c.GetRegistryPolicyRequest(input)
1919	return out, req.Send()
1920}
1921
1922// GetRegistryPolicyWithContext is the same as GetRegistryPolicy with the addition of
1923// the ability to pass a context and additional request options.
1924//
1925// See GetRegistryPolicy for details on how to use this API operation.
1926//
1927// The context must be non-nil and will be used for request cancellation. If
1928// the context is nil a panic will occur. In the future the SDK may create
1929// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1930// for more information on using Contexts.
1931func (c *ECR) GetRegistryPolicyWithContext(ctx aws.Context, input *GetRegistryPolicyInput, opts ...request.Option) (*GetRegistryPolicyOutput, error) {
1932	req, out := c.GetRegistryPolicyRequest(input)
1933	req.SetContext(ctx)
1934	req.ApplyOptions(opts...)
1935	return out, req.Send()
1936}
1937
1938const opGetRepositoryPolicy = "GetRepositoryPolicy"
1939
1940// GetRepositoryPolicyRequest generates a "aws/request.Request" representing the
1941// client's request for the GetRepositoryPolicy operation. The "output" return
1942// value will be populated with the request's response once the request completes
1943// successfully.
1944//
1945// Use "Send" method on the returned Request to send the API call to the service.
1946// the "output" return value is not valid until after Send returns without error.
1947//
1948// See GetRepositoryPolicy for more information on using the GetRepositoryPolicy
1949// API call, and error handling.
1950//
1951// This method is useful when you want to inject custom logic or configuration
1952// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1953//
1954//
1955//    // Example sending a request using the GetRepositoryPolicyRequest method.
1956//    req, resp := client.GetRepositoryPolicyRequest(params)
1957//
1958//    err := req.Send()
1959//    if err == nil { // resp is now filled
1960//        fmt.Println(resp)
1961//    }
1962//
1963// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRepositoryPolicy
1964func (c *ECR) GetRepositoryPolicyRequest(input *GetRepositoryPolicyInput) (req *request.Request, output *GetRepositoryPolicyOutput) {
1965	op := &request.Operation{
1966		Name:       opGetRepositoryPolicy,
1967		HTTPMethod: "POST",
1968		HTTPPath:   "/",
1969	}
1970
1971	if input == nil {
1972		input = &GetRepositoryPolicyInput{}
1973	}
1974
1975	output = &GetRepositoryPolicyOutput{}
1976	req = c.newRequest(op, input, output)
1977	return
1978}
1979
1980// GetRepositoryPolicy API operation for Amazon EC2 Container Registry.
1981//
1982// Retrieves the repository policy for the specified repository.
1983//
1984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1985// with awserr.Error's Code and Message methods to get detailed information about
1986// the error.
1987//
1988// See the AWS API reference guide for Amazon EC2 Container Registry's
1989// API operation GetRepositoryPolicy for usage and error information.
1990//
1991// Returned Error Types:
1992//   * ServerException
1993//   These errors are usually caused by a server-side issue.
1994//
1995//   * InvalidParameterException
1996//   The specified parameter is invalid. Review the available parameters for the
1997//   API request.
1998//
1999//   * RepositoryNotFoundException
2000//   The specified repository could not be found. Check the spelling of the specified
2001//   repository and ensure that you are performing operations on the correct registry.
2002//
2003//   * RepositoryPolicyNotFoundException
2004//   The specified repository and registry combination does not have an associated
2005//   repository policy.
2006//
2007// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRepositoryPolicy
2008func (c *ECR) GetRepositoryPolicy(input *GetRepositoryPolicyInput) (*GetRepositoryPolicyOutput, error) {
2009	req, out := c.GetRepositoryPolicyRequest(input)
2010	return out, req.Send()
2011}
2012
2013// GetRepositoryPolicyWithContext is the same as GetRepositoryPolicy with the addition of
2014// the ability to pass a context and additional request options.
2015//
2016// See GetRepositoryPolicy for details on how to use this API operation.
2017//
2018// The context must be non-nil and will be used for request cancellation. If
2019// the context is nil a panic will occur. In the future the SDK may create
2020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2021// for more information on using Contexts.
2022func (c *ECR) GetRepositoryPolicyWithContext(ctx aws.Context, input *GetRepositoryPolicyInput, opts ...request.Option) (*GetRepositoryPolicyOutput, error) {
2023	req, out := c.GetRepositoryPolicyRequest(input)
2024	req.SetContext(ctx)
2025	req.ApplyOptions(opts...)
2026	return out, req.Send()
2027}
2028
2029const opInitiateLayerUpload = "InitiateLayerUpload"
2030
2031// InitiateLayerUploadRequest generates a "aws/request.Request" representing the
2032// client's request for the InitiateLayerUpload operation. The "output" return
2033// value will be populated with the request's response once the request completes
2034// successfully.
2035//
2036// Use "Send" method on the returned Request to send the API call to the service.
2037// the "output" return value is not valid until after Send returns without error.
2038//
2039// See InitiateLayerUpload for more information on using the InitiateLayerUpload
2040// API call, and error handling.
2041//
2042// This method is useful when you want to inject custom logic or configuration
2043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2044//
2045//
2046//    // Example sending a request using the InitiateLayerUploadRequest method.
2047//    req, resp := client.InitiateLayerUploadRequest(params)
2048//
2049//    err := req.Send()
2050//    if err == nil { // resp is now filled
2051//        fmt.Println(resp)
2052//    }
2053//
2054// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/InitiateLayerUpload
2055func (c *ECR) InitiateLayerUploadRequest(input *InitiateLayerUploadInput) (req *request.Request, output *InitiateLayerUploadOutput) {
2056	op := &request.Operation{
2057		Name:       opInitiateLayerUpload,
2058		HTTPMethod: "POST",
2059		HTTPPath:   "/",
2060	}
2061
2062	if input == nil {
2063		input = &InitiateLayerUploadInput{}
2064	}
2065
2066	output = &InitiateLayerUploadOutput{}
2067	req = c.newRequest(op, input, output)
2068	return
2069}
2070
2071// InitiateLayerUpload API operation for Amazon EC2 Container Registry.
2072//
2073// Notifies Amazon ECR that you intend to upload an image layer.
2074//
2075// When an image is pushed, the InitiateLayerUpload API is called once per image
2076// layer that has not already been uploaded. Whether or not an image layer has
2077// been uploaded is determined by the BatchCheckLayerAvailability API action.
2078//
2079// This operation is used by the Amazon ECR proxy and is not generally used
2080// by customers for pulling and pushing images. In most cases, you should use
2081// the docker CLI to pull, tag, and push images.
2082//
2083// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2084// with awserr.Error's Code and Message methods to get detailed information about
2085// the error.
2086//
2087// See the AWS API reference guide for Amazon EC2 Container Registry's
2088// API operation InitiateLayerUpload for usage and error information.
2089//
2090// Returned Error Types:
2091//   * ServerException
2092//   These errors are usually caused by a server-side issue.
2093//
2094//   * InvalidParameterException
2095//   The specified parameter is invalid. Review the available parameters for the
2096//   API request.
2097//
2098//   * RepositoryNotFoundException
2099//   The specified repository could not be found. Check the spelling of the specified
2100//   repository and ensure that you are performing operations on the correct registry.
2101//
2102//   * KmsException
2103//   The operation failed due to a KMS exception.
2104//
2105// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/InitiateLayerUpload
2106func (c *ECR) InitiateLayerUpload(input *InitiateLayerUploadInput) (*InitiateLayerUploadOutput, error) {
2107	req, out := c.InitiateLayerUploadRequest(input)
2108	return out, req.Send()
2109}
2110
2111// InitiateLayerUploadWithContext is the same as InitiateLayerUpload with the addition of
2112// the ability to pass a context and additional request options.
2113//
2114// See InitiateLayerUpload for details on how to use this API operation.
2115//
2116// The context must be non-nil and will be used for request cancellation. If
2117// the context is nil a panic will occur. In the future the SDK may create
2118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2119// for more information on using Contexts.
2120func (c *ECR) InitiateLayerUploadWithContext(ctx aws.Context, input *InitiateLayerUploadInput, opts ...request.Option) (*InitiateLayerUploadOutput, error) {
2121	req, out := c.InitiateLayerUploadRequest(input)
2122	req.SetContext(ctx)
2123	req.ApplyOptions(opts...)
2124	return out, req.Send()
2125}
2126
2127const opListImages = "ListImages"
2128
2129// ListImagesRequest generates a "aws/request.Request" representing the
2130// client's request for the ListImages operation. The "output" return
2131// value will be populated with the request's response once the request completes
2132// successfully.
2133//
2134// Use "Send" method on the returned Request to send the API call to the service.
2135// the "output" return value is not valid until after Send returns without error.
2136//
2137// See ListImages for more information on using the ListImages
2138// API call, and error handling.
2139//
2140// This method is useful when you want to inject custom logic or configuration
2141// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2142//
2143//
2144//    // Example sending a request using the ListImagesRequest method.
2145//    req, resp := client.ListImagesRequest(params)
2146//
2147//    err := req.Send()
2148//    if err == nil { // resp is now filled
2149//        fmt.Println(resp)
2150//    }
2151//
2152// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListImages
2153func (c *ECR) ListImagesRequest(input *ListImagesInput) (req *request.Request, output *ListImagesOutput) {
2154	op := &request.Operation{
2155		Name:       opListImages,
2156		HTTPMethod: "POST",
2157		HTTPPath:   "/",
2158		Paginator: &request.Paginator{
2159			InputTokens:     []string{"nextToken"},
2160			OutputTokens:    []string{"nextToken"},
2161			LimitToken:      "maxResults",
2162			TruncationToken: "",
2163		},
2164	}
2165
2166	if input == nil {
2167		input = &ListImagesInput{}
2168	}
2169
2170	output = &ListImagesOutput{}
2171	req = c.newRequest(op, input, output)
2172	return
2173}
2174
2175// ListImages API operation for Amazon EC2 Container Registry.
2176//
2177// Lists all the image IDs for the specified repository.
2178//
2179// You can filter images based on whether or not they are tagged by using the
2180// tagStatus filter and specifying either TAGGED, UNTAGGED or ANY. For example,
2181// you can filter your results to return only UNTAGGED images and then pipe
2182// that result to a BatchDeleteImage operation to delete them. Or, you can filter
2183// your results to return only TAGGED images to list all of the tags in your
2184// repository.
2185//
2186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2187// with awserr.Error's Code and Message methods to get detailed information about
2188// the error.
2189//
2190// See the AWS API reference guide for Amazon EC2 Container Registry's
2191// API operation ListImages for usage and error information.
2192//
2193// Returned Error Types:
2194//   * ServerException
2195//   These errors are usually caused by a server-side issue.
2196//
2197//   * InvalidParameterException
2198//   The specified parameter is invalid. Review the available parameters for the
2199//   API request.
2200//
2201//   * RepositoryNotFoundException
2202//   The specified repository could not be found. Check the spelling of the specified
2203//   repository and ensure that you are performing operations on the correct registry.
2204//
2205// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListImages
2206func (c *ECR) ListImages(input *ListImagesInput) (*ListImagesOutput, error) {
2207	req, out := c.ListImagesRequest(input)
2208	return out, req.Send()
2209}
2210
2211// ListImagesWithContext is the same as ListImages with the addition of
2212// the ability to pass a context and additional request options.
2213//
2214// See ListImages for details on how to use this API operation.
2215//
2216// The context must be non-nil and will be used for request cancellation. If
2217// the context is nil a panic will occur. In the future the SDK may create
2218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2219// for more information on using Contexts.
2220func (c *ECR) ListImagesWithContext(ctx aws.Context, input *ListImagesInput, opts ...request.Option) (*ListImagesOutput, error) {
2221	req, out := c.ListImagesRequest(input)
2222	req.SetContext(ctx)
2223	req.ApplyOptions(opts...)
2224	return out, req.Send()
2225}
2226
2227// ListImagesPages iterates over the pages of a ListImages operation,
2228// calling the "fn" function with the response data for each page. To stop
2229// iterating, return false from the fn function.
2230//
2231// See ListImages method for more information on how to use this operation.
2232//
2233// Note: This operation can generate multiple requests to a service.
2234//
2235//    // Example iterating over at most 3 pages of a ListImages operation.
2236//    pageNum := 0
2237//    err := client.ListImagesPages(params,
2238//        func(page *ecr.ListImagesOutput, lastPage bool) bool {
2239//            pageNum++
2240//            fmt.Println(page)
2241//            return pageNum <= 3
2242//        })
2243//
2244func (c *ECR) ListImagesPages(input *ListImagesInput, fn func(*ListImagesOutput, bool) bool) error {
2245	return c.ListImagesPagesWithContext(aws.BackgroundContext(), input, fn)
2246}
2247
2248// ListImagesPagesWithContext same as ListImagesPages except
2249// it takes a Context and allows setting request options on the pages.
2250//
2251// The context must be non-nil and will be used for request cancellation. If
2252// the context is nil a panic will occur. In the future the SDK may create
2253// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2254// for more information on using Contexts.
2255func (c *ECR) ListImagesPagesWithContext(ctx aws.Context, input *ListImagesInput, fn func(*ListImagesOutput, bool) bool, opts ...request.Option) error {
2256	p := request.Pagination{
2257		NewRequest: func() (*request.Request, error) {
2258			var inCpy *ListImagesInput
2259			if input != nil {
2260				tmp := *input
2261				inCpy = &tmp
2262			}
2263			req, _ := c.ListImagesRequest(inCpy)
2264			req.SetContext(ctx)
2265			req.ApplyOptions(opts...)
2266			return req, nil
2267		},
2268	}
2269
2270	for p.Next() {
2271		if !fn(p.Page().(*ListImagesOutput), !p.HasNextPage()) {
2272			break
2273		}
2274	}
2275
2276	return p.Err()
2277}
2278
2279const opListTagsForResource = "ListTagsForResource"
2280
2281// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2282// client's request for the ListTagsForResource operation. The "output" return
2283// value will be populated with the request's response once the request completes
2284// successfully.
2285//
2286// Use "Send" method on the returned Request to send the API call to the service.
2287// the "output" return value is not valid until after Send returns without error.
2288//
2289// See ListTagsForResource for more information on using the ListTagsForResource
2290// API call, and error handling.
2291//
2292// This method is useful when you want to inject custom logic or configuration
2293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2294//
2295//
2296//    // Example sending a request using the ListTagsForResourceRequest method.
2297//    req, resp := client.ListTagsForResourceRequest(params)
2298//
2299//    err := req.Send()
2300//    if err == nil { // resp is now filled
2301//        fmt.Println(resp)
2302//    }
2303//
2304// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListTagsForResource
2305func (c *ECR) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2306	op := &request.Operation{
2307		Name:       opListTagsForResource,
2308		HTTPMethod: "POST",
2309		HTTPPath:   "/",
2310	}
2311
2312	if input == nil {
2313		input = &ListTagsForResourceInput{}
2314	}
2315
2316	output = &ListTagsForResourceOutput{}
2317	req = c.newRequest(op, input, output)
2318	return
2319}
2320
2321// ListTagsForResource API operation for Amazon EC2 Container Registry.
2322//
2323// List the tags for an Amazon ECR resource.
2324//
2325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2326// with awserr.Error's Code and Message methods to get detailed information about
2327// the error.
2328//
2329// See the AWS API reference guide for Amazon EC2 Container Registry's
2330// API operation ListTagsForResource for usage and error information.
2331//
2332// Returned Error Types:
2333//   * InvalidParameterException
2334//   The specified parameter is invalid. Review the available parameters for the
2335//   API request.
2336//
2337//   * RepositoryNotFoundException
2338//   The specified repository could not be found. Check the spelling of the specified
2339//   repository and ensure that you are performing operations on the correct registry.
2340//
2341//   * ServerException
2342//   These errors are usually caused by a server-side issue.
2343//
2344// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListTagsForResource
2345func (c *ECR) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2346	req, out := c.ListTagsForResourceRequest(input)
2347	return out, req.Send()
2348}
2349
2350// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2351// the ability to pass a context and additional request options.
2352//
2353// See ListTagsForResource for details on how to use this API operation.
2354//
2355// The context must be non-nil and will be used for request cancellation. If
2356// the context is nil a panic will occur. In the future the SDK may create
2357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2358// for more information on using Contexts.
2359func (c *ECR) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2360	req, out := c.ListTagsForResourceRequest(input)
2361	req.SetContext(ctx)
2362	req.ApplyOptions(opts...)
2363	return out, req.Send()
2364}
2365
2366const opPutImage = "PutImage"
2367
2368// PutImageRequest generates a "aws/request.Request" representing the
2369// client's request for the PutImage operation. The "output" return
2370// value will be populated with the request's response once the request completes
2371// successfully.
2372//
2373// Use "Send" method on the returned Request to send the API call to the service.
2374// the "output" return value is not valid until after Send returns without error.
2375//
2376// See PutImage for more information on using the PutImage
2377// API call, and error handling.
2378//
2379// This method is useful when you want to inject custom logic or configuration
2380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2381//
2382//
2383//    // Example sending a request using the PutImageRequest method.
2384//    req, resp := client.PutImageRequest(params)
2385//
2386//    err := req.Send()
2387//    if err == nil { // resp is now filled
2388//        fmt.Println(resp)
2389//    }
2390//
2391// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImage
2392func (c *ECR) PutImageRequest(input *PutImageInput) (req *request.Request, output *PutImageOutput) {
2393	op := &request.Operation{
2394		Name:       opPutImage,
2395		HTTPMethod: "POST",
2396		HTTPPath:   "/",
2397	}
2398
2399	if input == nil {
2400		input = &PutImageInput{}
2401	}
2402
2403	output = &PutImageOutput{}
2404	req = c.newRequest(op, input, output)
2405	return
2406}
2407
2408// PutImage API operation for Amazon EC2 Container Registry.
2409//
2410// Creates or updates the image manifest and tags associated with an image.
2411//
2412// When an image is pushed and all new image layers have been uploaded, the
2413// PutImage API is called once to create or update the image manifest and the
2414// tags associated with the image.
2415//
2416// This operation is used by the Amazon ECR proxy and is not generally used
2417// by customers for pulling and pushing images. In most cases, you should use
2418// the docker CLI to pull, tag, and push images.
2419//
2420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2421// with awserr.Error's Code and Message methods to get detailed information about
2422// the error.
2423//
2424// See the AWS API reference guide for Amazon EC2 Container Registry's
2425// API operation PutImage for usage and error information.
2426//
2427// Returned Error Types:
2428//   * ServerException
2429//   These errors are usually caused by a server-side issue.
2430//
2431//   * InvalidParameterException
2432//   The specified parameter is invalid. Review the available parameters for the
2433//   API request.
2434//
2435//   * RepositoryNotFoundException
2436//   The specified repository could not be found. Check the spelling of the specified
2437//   repository and ensure that you are performing operations on the correct registry.
2438//
2439//   * ImageAlreadyExistsException
2440//   The specified image has already been pushed, and there were no changes to
2441//   the manifest or image tag after the last push.
2442//
2443//   * LayersNotFoundException
2444//   The specified layers could not be found, or the specified layer is not valid
2445//   for this repository.
2446//
2447//   * ReferencedImagesNotFoundException
2448//   The manifest list is referencing an image that does not exist.
2449//
2450//   * LimitExceededException
2451//   The operation did not succeed because it would have exceeded a service limit
2452//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
2453//   in the Amazon Elastic Container Registry User Guide.
2454//
2455//   * ImageTagAlreadyExistsException
2456//   The specified image is tagged with a tag that already exists. The repository
2457//   is configured for tag immutability.
2458//
2459//   * ImageDigestDoesNotMatchException
2460//   The specified image digest does not match the digest that Amazon ECR calculated
2461//   for the image.
2462//
2463//   * KmsException
2464//   The operation failed due to a KMS exception.
2465//
2466// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImage
2467func (c *ECR) PutImage(input *PutImageInput) (*PutImageOutput, error) {
2468	req, out := c.PutImageRequest(input)
2469	return out, req.Send()
2470}
2471
2472// PutImageWithContext is the same as PutImage with the addition of
2473// the ability to pass a context and additional request options.
2474//
2475// See PutImage for details on how to use this API operation.
2476//
2477// The context must be non-nil and will be used for request cancellation. If
2478// the context is nil a panic will occur. In the future the SDK may create
2479// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2480// for more information on using Contexts.
2481func (c *ECR) PutImageWithContext(ctx aws.Context, input *PutImageInput, opts ...request.Option) (*PutImageOutput, error) {
2482	req, out := c.PutImageRequest(input)
2483	req.SetContext(ctx)
2484	req.ApplyOptions(opts...)
2485	return out, req.Send()
2486}
2487
2488const opPutImageScanningConfiguration = "PutImageScanningConfiguration"
2489
2490// PutImageScanningConfigurationRequest generates a "aws/request.Request" representing the
2491// client's request for the PutImageScanningConfiguration operation. The "output" return
2492// value will be populated with the request's response once the request completes
2493// successfully.
2494//
2495// Use "Send" method on the returned Request to send the API call to the service.
2496// the "output" return value is not valid until after Send returns without error.
2497//
2498// See PutImageScanningConfiguration for more information on using the PutImageScanningConfiguration
2499// API call, and error handling.
2500//
2501// This method is useful when you want to inject custom logic or configuration
2502// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2503//
2504//
2505//    // Example sending a request using the PutImageScanningConfigurationRequest method.
2506//    req, resp := client.PutImageScanningConfigurationRequest(params)
2507//
2508//    err := req.Send()
2509//    if err == nil { // resp is now filled
2510//        fmt.Println(resp)
2511//    }
2512//
2513// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageScanningConfiguration
2514func (c *ECR) PutImageScanningConfigurationRequest(input *PutImageScanningConfigurationInput) (req *request.Request, output *PutImageScanningConfigurationOutput) {
2515	op := &request.Operation{
2516		Name:       opPutImageScanningConfiguration,
2517		HTTPMethod: "POST",
2518		HTTPPath:   "/",
2519	}
2520
2521	if input == nil {
2522		input = &PutImageScanningConfigurationInput{}
2523	}
2524
2525	output = &PutImageScanningConfigurationOutput{}
2526	req = c.newRequest(op, input, output)
2527	return
2528}
2529
2530// PutImageScanningConfiguration API operation for Amazon EC2 Container Registry.
2531//
2532// Updates the image scanning configuration for the specified repository.
2533//
2534// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2535// with awserr.Error's Code and Message methods to get detailed information about
2536// the error.
2537//
2538// See the AWS API reference guide for Amazon EC2 Container Registry's
2539// API operation PutImageScanningConfiguration for usage and error information.
2540//
2541// Returned Error Types:
2542//   * ServerException
2543//   These errors are usually caused by a server-side issue.
2544//
2545//   * InvalidParameterException
2546//   The specified parameter is invalid. Review the available parameters for the
2547//   API request.
2548//
2549//   * RepositoryNotFoundException
2550//   The specified repository could not be found. Check the spelling of the specified
2551//   repository and ensure that you are performing operations on the correct registry.
2552//
2553// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageScanningConfiguration
2554func (c *ECR) PutImageScanningConfiguration(input *PutImageScanningConfigurationInput) (*PutImageScanningConfigurationOutput, error) {
2555	req, out := c.PutImageScanningConfigurationRequest(input)
2556	return out, req.Send()
2557}
2558
2559// PutImageScanningConfigurationWithContext is the same as PutImageScanningConfiguration with the addition of
2560// the ability to pass a context and additional request options.
2561//
2562// See PutImageScanningConfiguration for details on how to use this API operation.
2563//
2564// The context must be non-nil and will be used for request cancellation. If
2565// the context is nil a panic will occur. In the future the SDK may create
2566// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2567// for more information on using Contexts.
2568func (c *ECR) PutImageScanningConfigurationWithContext(ctx aws.Context, input *PutImageScanningConfigurationInput, opts ...request.Option) (*PutImageScanningConfigurationOutput, error) {
2569	req, out := c.PutImageScanningConfigurationRequest(input)
2570	req.SetContext(ctx)
2571	req.ApplyOptions(opts...)
2572	return out, req.Send()
2573}
2574
2575const opPutImageTagMutability = "PutImageTagMutability"
2576
2577// PutImageTagMutabilityRequest generates a "aws/request.Request" representing the
2578// client's request for the PutImageTagMutability operation. The "output" return
2579// value will be populated with the request's response once the request completes
2580// successfully.
2581//
2582// Use "Send" method on the returned Request to send the API call to the service.
2583// the "output" return value is not valid until after Send returns without error.
2584//
2585// See PutImageTagMutability for more information on using the PutImageTagMutability
2586// API call, and error handling.
2587//
2588// This method is useful when you want to inject custom logic or configuration
2589// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2590//
2591//
2592//    // Example sending a request using the PutImageTagMutabilityRequest method.
2593//    req, resp := client.PutImageTagMutabilityRequest(params)
2594//
2595//    err := req.Send()
2596//    if err == nil { // resp is now filled
2597//        fmt.Println(resp)
2598//    }
2599//
2600// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageTagMutability
2601func (c *ECR) PutImageTagMutabilityRequest(input *PutImageTagMutabilityInput) (req *request.Request, output *PutImageTagMutabilityOutput) {
2602	op := &request.Operation{
2603		Name:       opPutImageTagMutability,
2604		HTTPMethod: "POST",
2605		HTTPPath:   "/",
2606	}
2607
2608	if input == nil {
2609		input = &PutImageTagMutabilityInput{}
2610	}
2611
2612	output = &PutImageTagMutabilityOutput{}
2613	req = c.newRequest(op, input, output)
2614	return
2615}
2616
2617// PutImageTagMutability API operation for Amazon EC2 Container Registry.
2618//
2619// Updates the image tag mutability settings for the specified repository. For
2620// more information, see Image Tag Mutability (https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-tag-mutability.html)
2621// in the Amazon Elastic Container Registry User Guide.
2622//
2623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2624// with awserr.Error's Code and Message methods to get detailed information about
2625// the error.
2626//
2627// See the AWS API reference guide for Amazon EC2 Container Registry's
2628// API operation PutImageTagMutability for usage and error information.
2629//
2630// Returned Error Types:
2631//   * ServerException
2632//   These errors are usually caused by a server-side issue.
2633//
2634//   * InvalidParameterException
2635//   The specified parameter is invalid. Review the available parameters for the
2636//   API request.
2637//
2638//   * RepositoryNotFoundException
2639//   The specified repository could not be found. Check the spelling of the specified
2640//   repository and ensure that you are performing operations on the correct registry.
2641//
2642// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageTagMutability
2643func (c *ECR) PutImageTagMutability(input *PutImageTagMutabilityInput) (*PutImageTagMutabilityOutput, error) {
2644	req, out := c.PutImageTagMutabilityRequest(input)
2645	return out, req.Send()
2646}
2647
2648// PutImageTagMutabilityWithContext is the same as PutImageTagMutability with the addition of
2649// the ability to pass a context and additional request options.
2650//
2651// See PutImageTagMutability for details on how to use this API operation.
2652//
2653// The context must be non-nil and will be used for request cancellation. If
2654// the context is nil a panic will occur. In the future the SDK may create
2655// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2656// for more information on using Contexts.
2657func (c *ECR) PutImageTagMutabilityWithContext(ctx aws.Context, input *PutImageTagMutabilityInput, opts ...request.Option) (*PutImageTagMutabilityOutput, error) {
2658	req, out := c.PutImageTagMutabilityRequest(input)
2659	req.SetContext(ctx)
2660	req.ApplyOptions(opts...)
2661	return out, req.Send()
2662}
2663
2664const opPutLifecyclePolicy = "PutLifecyclePolicy"
2665
2666// PutLifecyclePolicyRequest generates a "aws/request.Request" representing the
2667// client's request for the PutLifecyclePolicy operation. The "output" return
2668// value will be populated with the request's response once the request completes
2669// successfully.
2670//
2671// Use "Send" method on the returned Request to send the API call to the service.
2672// the "output" return value is not valid until after Send returns without error.
2673//
2674// See PutLifecyclePolicy for more information on using the PutLifecyclePolicy
2675// API call, and error handling.
2676//
2677// This method is useful when you want to inject custom logic or configuration
2678// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2679//
2680//
2681//    // Example sending a request using the PutLifecyclePolicyRequest method.
2682//    req, resp := client.PutLifecyclePolicyRequest(params)
2683//
2684//    err := req.Send()
2685//    if err == nil { // resp is now filled
2686//        fmt.Println(resp)
2687//    }
2688//
2689// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutLifecyclePolicy
2690func (c *ECR) PutLifecyclePolicyRequest(input *PutLifecyclePolicyInput) (req *request.Request, output *PutLifecyclePolicyOutput) {
2691	op := &request.Operation{
2692		Name:       opPutLifecyclePolicy,
2693		HTTPMethod: "POST",
2694		HTTPPath:   "/",
2695	}
2696
2697	if input == nil {
2698		input = &PutLifecyclePolicyInput{}
2699	}
2700
2701	output = &PutLifecyclePolicyOutput{}
2702	req = c.newRequest(op, input, output)
2703	return
2704}
2705
2706// PutLifecyclePolicy API operation for Amazon EC2 Container Registry.
2707//
2708// Creates or updates the lifecycle policy for the specified repository. For
2709// more information, see Lifecycle Policy Template (https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html).
2710//
2711// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2712// with awserr.Error's Code and Message methods to get detailed information about
2713// the error.
2714//
2715// See the AWS API reference guide for Amazon EC2 Container Registry's
2716// API operation PutLifecyclePolicy for usage and error information.
2717//
2718// Returned Error Types:
2719//   * ServerException
2720//   These errors are usually caused by a server-side issue.
2721//
2722//   * InvalidParameterException
2723//   The specified parameter is invalid. Review the available parameters for the
2724//   API request.
2725//
2726//   * RepositoryNotFoundException
2727//   The specified repository could not be found. Check the spelling of the specified
2728//   repository and ensure that you are performing operations on the correct registry.
2729//
2730// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutLifecyclePolicy
2731func (c *ECR) PutLifecyclePolicy(input *PutLifecyclePolicyInput) (*PutLifecyclePolicyOutput, error) {
2732	req, out := c.PutLifecyclePolicyRequest(input)
2733	return out, req.Send()
2734}
2735
2736// PutLifecyclePolicyWithContext is the same as PutLifecyclePolicy with the addition of
2737// the ability to pass a context and additional request options.
2738//
2739// See PutLifecyclePolicy for details on how to use this API operation.
2740//
2741// The context must be non-nil and will be used for request cancellation. If
2742// the context is nil a panic will occur. In the future the SDK may create
2743// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2744// for more information on using Contexts.
2745func (c *ECR) PutLifecyclePolicyWithContext(ctx aws.Context, input *PutLifecyclePolicyInput, opts ...request.Option) (*PutLifecyclePolicyOutput, error) {
2746	req, out := c.PutLifecyclePolicyRequest(input)
2747	req.SetContext(ctx)
2748	req.ApplyOptions(opts...)
2749	return out, req.Send()
2750}
2751
2752const opPutRegistryPolicy = "PutRegistryPolicy"
2753
2754// PutRegistryPolicyRequest generates a "aws/request.Request" representing the
2755// client's request for the PutRegistryPolicy operation. The "output" return
2756// value will be populated with the request's response once the request completes
2757// successfully.
2758//
2759// Use "Send" method on the returned Request to send the API call to the service.
2760// the "output" return value is not valid until after Send returns without error.
2761//
2762// See PutRegistryPolicy for more information on using the PutRegistryPolicy
2763// API call, and error handling.
2764//
2765// This method is useful when you want to inject custom logic or configuration
2766// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2767//
2768//
2769//    // Example sending a request using the PutRegistryPolicyRequest method.
2770//    req, resp := client.PutRegistryPolicyRequest(params)
2771//
2772//    err := req.Send()
2773//    if err == nil { // resp is now filled
2774//        fmt.Println(resp)
2775//    }
2776//
2777// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutRegistryPolicy
2778func (c *ECR) PutRegistryPolicyRequest(input *PutRegistryPolicyInput) (req *request.Request, output *PutRegistryPolicyOutput) {
2779	op := &request.Operation{
2780		Name:       opPutRegistryPolicy,
2781		HTTPMethod: "POST",
2782		HTTPPath:   "/",
2783	}
2784
2785	if input == nil {
2786		input = &PutRegistryPolicyInput{}
2787	}
2788
2789	output = &PutRegistryPolicyOutput{}
2790	req = c.newRequest(op, input, output)
2791	return
2792}
2793
2794// PutRegistryPolicy API operation for Amazon EC2 Container Registry.
2795//
2796// Creates or updates the permissions policy for your registry.
2797//
2798// A registry policy is used to specify permissions for another AWS account
2799// and is used when configuring cross-account replication. For more information,
2800// see Registry permissions (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html)
2801// in the Amazon Elastic Container Registry User Guide.
2802//
2803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2804// with awserr.Error's Code and Message methods to get detailed information about
2805// the error.
2806//
2807// See the AWS API reference guide for Amazon EC2 Container Registry's
2808// API operation PutRegistryPolicy for usage and error information.
2809//
2810// Returned Error Types:
2811//   * ServerException
2812//   These errors are usually caused by a server-side issue.
2813//
2814//   * InvalidParameterException
2815//   The specified parameter is invalid. Review the available parameters for the
2816//   API request.
2817//
2818// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutRegistryPolicy
2819func (c *ECR) PutRegistryPolicy(input *PutRegistryPolicyInput) (*PutRegistryPolicyOutput, error) {
2820	req, out := c.PutRegistryPolicyRequest(input)
2821	return out, req.Send()
2822}
2823
2824// PutRegistryPolicyWithContext is the same as PutRegistryPolicy with the addition of
2825// the ability to pass a context and additional request options.
2826//
2827// See PutRegistryPolicy for details on how to use this API operation.
2828//
2829// The context must be non-nil and will be used for request cancellation. If
2830// the context is nil a panic will occur. In the future the SDK may create
2831// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2832// for more information on using Contexts.
2833func (c *ECR) PutRegistryPolicyWithContext(ctx aws.Context, input *PutRegistryPolicyInput, opts ...request.Option) (*PutRegistryPolicyOutput, error) {
2834	req, out := c.PutRegistryPolicyRequest(input)
2835	req.SetContext(ctx)
2836	req.ApplyOptions(opts...)
2837	return out, req.Send()
2838}
2839
2840const opPutReplicationConfiguration = "PutReplicationConfiguration"
2841
2842// PutReplicationConfigurationRequest generates a "aws/request.Request" representing the
2843// client's request for the PutReplicationConfiguration operation. The "output" return
2844// value will be populated with the request's response once the request completes
2845// successfully.
2846//
2847// Use "Send" method on the returned Request to send the API call to the service.
2848// the "output" return value is not valid until after Send returns without error.
2849//
2850// See PutReplicationConfiguration for more information on using the PutReplicationConfiguration
2851// API call, and error handling.
2852//
2853// This method is useful when you want to inject custom logic or configuration
2854// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2855//
2856//
2857//    // Example sending a request using the PutReplicationConfigurationRequest method.
2858//    req, resp := client.PutReplicationConfigurationRequest(params)
2859//
2860//    err := req.Send()
2861//    if err == nil { // resp is now filled
2862//        fmt.Println(resp)
2863//    }
2864//
2865// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutReplicationConfiguration
2866func (c *ECR) PutReplicationConfigurationRequest(input *PutReplicationConfigurationInput) (req *request.Request, output *PutReplicationConfigurationOutput) {
2867	op := &request.Operation{
2868		Name:       opPutReplicationConfiguration,
2869		HTTPMethod: "POST",
2870		HTTPPath:   "/",
2871	}
2872
2873	if input == nil {
2874		input = &PutReplicationConfigurationInput{}
2875	}
2876
2877	output = &PutReplicationConfigurationOutput{}
2878	req = c.newRequest(op, input, output)
2879	return
2880}
2881
2882// PutReplicationConfiguration API operation for Amazon EC2 Container Registry.
2883//
2884// Creates or updates the replication configuration for a registry. The existing
2885// replication configuration for a repository can be retrieved with the DescribeRegistry
2886// API action. The first time the PutReplicationConfiguration API is called,
2887// a service-linked IAM role is created in your account for the replication
2888// process. For more information, see Using Service-Linked Roles for Amazon
2889// ECR (https://docs.aws.amazon.com/AmazonECR/latest/userguide/using-service-linked-roles.html)
2890// in the Amazon Elastic Container Registry User Guide.
2891//
2892// When configuring cross-account replication, the destination account must
2893// grant the source account permission to replicate. This permission is controlled
2894// using a registry permissions policy. For more information, see PutRegistryPolicy.
2895//
2896// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2897// with awserr.Error's Code and Message methods to get detailed information about
2898// the error.
2899//
2900// See the AWS API reference guide for Amazon EC2 Container Registry's
2901// API operation PutReplicationConfiguration for usage and error information.
2902//
2903// Returned Error Types:
2904//   * ServerException
2905//   These errors are usually caused by a server-side issue.
2906//
2907//   * InvalidParameterException
2908//   The specified parameter is invalid. Review the available parameters for the
2909//   API request.
2910//
2911//   * ValidationException
2912//   There was an exception validating this request.
2913//
2914// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutReplicationConfiguration
2915func (c *ECR) PutReplicationConfiguration(input *PutReplicationConfigurationInput) (*PutReplicationConfigurationOutput, error) {
2916	req, out := c.PutReplicationConfigurationRequest(input)
2917	return out, req.Send()
2918}
2919
2920// PutReplicationConfigurationWithContext is the same as PutReplicationConfiguration with the addition of
2921// the ability to pass a context and additional request options.
2922//
2923// See PutReplicationConfiguration for details on how to use this API operation.
2924//
2925// The context must be non-nil and will be used for request cancellation. If
2926// the context is nil a panic will occur. In the future the SDK may create
2927// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2928// for more information on using Contexts.
2929func (c *ECR) PutReplicationConfigurationWithContext(ctx aws.Context, input *PutReplicationConfigurationInput, opts ...request.Option) (*PutReplicationConfigurationOutput, error) {
2930	req, out := c.PutReplicationConfigurationRequest(input)
2931	req.SetContext(ctx)
2932	req.ApplyOptions(opts...)
2933	return out, req.Send()
2934}
2935
2936const opSetRepositoryPolicy = "SetRepositoryPolicy"
2937
2938// SetRepositoryPolicyRequest generates a "aws/request.Request" representing the
2939// client's request for the SetRepositoryPolicy operation. The "output" return
2940// value will be populated with the request's response once the request completes
2941// successfully.
2942//
2943// Use "Send" method on the returned Request to send the API call to the service.
2944// the "output" return value is not valid until after Send returns without error.
2945//
2946// See SetRepositoryPolicy for more information on using the SetRepositoryPolicy
2947// API call, and error handling.
2948//
2949// This method is useful when you want to inject custom logic or configuration
2950// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2951//
2952//
2953//    // Example sending a request using the SetRepositoryPolicyRequest method.
2954//    req, resp := client.SetRepositoryPolicyRequest(params)
2955//
2956//    err := req.Send()
2957//    if err == nil { // resp is now filled
2958//        fmt.Println(resp)
2959//    }
2960//
2961// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/SetRepositoryPolicy
2962func (c *ECR) SetRepositoryPolicyRequest(input *SetRepositoryPolicyInput) (req *request.Request, output *SetRepositoryPolicyOutput) {
2963	op := &request.Operation{
2964		Name:       opSetRepositoryPolicy,
2965		HTTPMethod: "POST",
2966		HTTPPath:   "/",
2967	}
2968
2969	if input == nil {
2970		input = &SetRepositoryPolicyInput{}
2971	}
2972
2973	output = &SetRepositoryPolicyOutput{}
2974	req = c.newRequest(op, input, output)
2975	return
2976}
2977
2978// SetRepositoryPolicy API operation for Amazon EC2 Container Registry.
2979//
2980// Applies a repository policy to the specified repository to control access
2981// permissions. For more information, see Amazon ECR Repository Policies (https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html)
2982// in the Amazon Elastic Container Registry User Guide.
2983//
2984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2985// with awserr.Error's Code and Message methods to get detailed information about
2986// the error.
2987//
2988// See the AWS API reference guide for Amazon EC2 Container Registry's
2989// API operation SetRepositoryPolicy for usage and error information.
2990//
2991// Returned Error Types:
2992//   * ServerException
2993//   These errors are usually caused by a server-side issue.
2994//
2995//   * InvalidParameterException
2996//   The specified parameter is invalid. Review the available parameters for the
2997//   API request.
2998//
2999//   * RepositoryNotFoundException
3000//   The specified repository could not be found. Check the spelling of the specified
3001//   repository and ensure that you are performing operations on the correct registry.
3002//
3003// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/SetRepositoryPolicy
3004func (c *ECR) SetRepositoryPolicy(input *SetRepositoryPolicyInput) (*SetRepositoryPolicyOutput, error) {
3005	req, out := c.SetRepositoryPolicyRequest(input)
3006	return out, req.Send()
3007}
3008
3009// SetRepositoryPolicyWithContext is the same as SetRepositoryPolicy with the addition of
3010// the ability to pass a context and additional request options.
3011//
3012// See SetRepositoryPolicy for details on how to use this API operation.
3013//
3014// The context must be non-nil and will be used for request cancellation. If
3015// the context is nil a panic will occur. In the future the SDK may create
3016// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3017// for more information on using Contexts.
3018func (c *ECR) SetRepositoryPolicyWithContext(ctx aws.Context, input *SetRepositoryPolicyInput, opts ...request.Option) (*SetRepositoryPolicyOutput, error) {
3019	req, out := c.SetRepositoryPolicyRequest(input)
3020	req.SetContext(ctx)
3021	req.ApplyOptions(opts...)
3022	return out, req.Send()
3023}
3024
3025const opStartImageScan = "StartImageScan"
3026
3027// StartImageScanRequest generates a "aws/request.Request" representing the
3028// client's request for the StartImageScan operation. The "output" return
3029// value will be populated with the request's response once the request completes
3030// successfully.
3031//
3032// Use "Send" method on the returned Request to send the API call to the service.
3033// the "output" return value is not valid until after Send returns without error.
3034//
3035// See StartImageScan for more information on using the StartImageScan
3036// API call, and error handling.
3037//
3038// This method is useful when you want to inject custom logic or configuration
3039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3040//
3041//
3042//    // Example sending a request using the StartImageScanRequest method.
3043//    req, resp := client.StartImageScanRequest(params)
3044//
3045//    err := req.Send()
3046//    if err == nil { // resp is now filled
3047//        fmt.Println(resp)
3048//    }
3049//
3050// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartImageScan
3051func (c *ECR) StartImageScanRequest(input *StartImageScanInput) (req *request.Request, output *StartImageScanOutput) {
3052	op := &request.Operation{
3053		Name:       opStartImageScan,
3054		HTTPMethod: "POST",
3055		HTTPPath:   "/",
3056	}
3057
3058	if input == nil {
3059		input = &StartImageScanInput{}
3060	}
3061
3062	output = &StartImageScanOutput{}
3063	req = c.newRequest(op, input, output)
3064	return
3065}
3066
3067// StartImageScan API operation for Amazon EC2 Container Registry.
3068//
3069// Starts an image vulnerability scan. An image scan can only be started once
3070// per day on an individual image. This limit includes if an image was scanned
3071// on initial push. For more information, see Image Scanning (https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html)
3072// in the Amazon Elastic Container Registry User Guide.
3073//
3074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3075// with awserr.Error's Code and Message methods to get detailed information about
3076// the error.
3077//
3078// See the AWS API reference guide for Amazon EC2 Container Registry's
3079// API operation StartImageScan for usage and error information.
3080//
3081// Returned Error Types:
3082//   * ServerException
3083//   These errors are usually caused by a server-side issue.
3084//
3085//   * InvalidParameterException
3086//   The specified parameter is invalid. Review the available parameters for the
3087//   API request.
3088//
3089//   * UnsupportedImageTypeException
3090//   The image is of a type that cannot be scanned.
3091//
3092//   * LimitExceededException
3093//   The operation did not succeed because it would have exceeded a service limit
3094//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
3095//   in the Amazon Elastic Container Registry User Guide.
3096//
3097//   * RepositoryNotFoundException
3098//   The specified repository could not be found. Check the spelling of the specified
3099//   repository and ensure that you are performing operations on the correct registry.
3100//
3101//   * ImageNotFoundException
3102//   The image requested does not exist in the specified repository.
3103//
3104// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartImageScan
3105func (c *ECR) StartImageScan(input *StartImageScanInput) (*StartImageScanOutput, error) {
3106	req, out := c.StartImageScanRequest(input)
3107	return out, req.Send()
3108}
3109
3110// StartImageScanWithContext is the same as StartImageScan with the addition of
3111// the ability to pass a context and additional request options.
3112//
3113// See StartImageScan for details on how to use this API operation.
3114//
3115// The context must be non-nil and will be used for request cancellation. If
3116// the context is nil a panic will occur. In the future the SDK may create
3117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3118// for more information on using Contexts.
3119func (c *ECR) StartImageScanWithContext(ctx aws.Context, input *StartImageScanInput, opts ...request.Option) (*StartImageScanOutput, error) {
3120	req, out := c.StartImageScanRequest(input)
3121	req.SetContext(ctx)
3122	req.ApplyOptions(opts...)
3123	return out, req.Send()
3124}
3125
3126const opStartLifecyclePolicyPreview = "StartLifecyclePolicyPreview"
3127
3128// StartLifecyclePolicyPreviewRequest generates a "aws/request.Request" representing the
3129// client's request for the StartLifecyclePolicyPreview operation. The "output" return
3130// value will be populated with the request's response once the request completes
3131// successfully.
3132//
3133// Use "Send" method on the returned Request to send the API call to the service.
3134// the "output" return value is not valid until after Send returns without error.
3135//
3136// See StartLifecyclePolicyPreview for more information on using the StartLifecyclePolicyPreview
3137// API call, and error handling.
3138//
3139// This method is useful when you want to inject custom logic or configuration
3140// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3141//
3142//
3143//    // Example sending a request using the StartLifecyclePolicyPreviewRequest method.
3144//    req, resp := client.StartLifecyclePolicyPreviewRequest(params)
3145//
3146//    err := req.Send()
3147//    if err == nil { // resp is now filled
3148//        fmt.Println(resp)
3149//    }
3150//
3151// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartLifecyclePolicyPreview
3152func (c *ECR) StartLifecyclePolicyPreviewRequest(input *StartLifecyclePolicyPreviewInput) (req *request.Request, output *StartLifecyclePolicyPreviewOutput) {
3153	op := &request.Operation{
3154		Name:       opStartLifecyclePolicyPreview,
3155		HTTPMethod: "POST",
3156		HTTPPath:   "/",
3157	}
3158
3159	if input == nil {
3160		input = &StartLifecyclePolicyPreviewInput{}
3161	}
3162
3163	output = &StartLifecyclePolicyPreviewOutput{}
3164	req = c.newRequest(op, input, output)
3165	return
3166}
3167
3168// StartLifecyclePolicyPreview API operation for Amazon EC2 Container Registry.
3169//
3170// Starts a preview of a lifecycle policy for the specified repository. This
3171// allows you to see the results before associating the lifecycle policy with
3172// the repository.
3173//
3174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3175// with awserr.Error's Code and Message methods to get detailed information about
3176// the error.
3177//
3178// See the AWS API reference guide for Amazon EC2 Container Registry's
3179// API operation StartLifecyclePolicyPreview for usage and error information.
3180//
3181// Returned Error Types:
3182//   * ServerException
3183//   These errors are usually caused by a server-side issue.
3184//
3185//   * InvalidParameterException
3186//   The specified parameter is invalid. Review the available parameters for the
3187//   API request.
3188//
3189//   * RepositoryNotFoundException
3190//   The specified repository could not be found. Check the spelling of the specified
3191//   repository and ensure that you are performing operations on the correct registry.
3192//
3193//   * LifecyclePolicyNotFoundException
3194//   The lifecycle policy could not be found, and no policy is set to the repository.
3195//
3196//   * LifecyclePolicyPreviewInProgressException
3197//   The previous lifecycle policy preview request has not completed. Wait and
3198//   try again.
3199//
3200// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartLifecyclePolicyPreview
3201func (c *ECR) StartLifecyclePolicyPreview(input *StartLifecyclePolicyPreviewInput) (*StartLifecyclePolicyPreviewOutput, error) {
3202	req, out := c.StartLifecyclePolicyPreviewRequest(input)
3203	return out, req.Send()
3204}
3205
3206// StartLifecyclePolicyPreviewWithContext is the same as StartLifecyclePolicyPreview with the addition of
3207// the ability to pass a context and additional request options.
3208//
3209// See StartLifecyclePolicyPreview for details on how to use this API operation.
3210//
3211// The context must be non-nil and will be used for request cancellation. If
3212// the context is nil a panic will occur. In the future the SDK may create
3213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3214// for more information on using Contexts.
3215func (c *ECR) StartLifecyclePolicyPreviewWithContext(ctx aws.Context, input *StartLifecyclePolicyPreviewInput, opts ...request.Option) (*StartLifecyclePolicyPreviewOutput, error) {
3216	req, out := c.StartLifecyclePolicyPreviewRequest(input)
3217	req.SetContext(ctx)
3218	req.ApplyOptions(opts...)
3219	return out, req.Send()
3220}
3221
3222const opTagResource = "TagResource"
3223
3224// TagResourceRequest generates a "aws/request.Request" representing the
3225// client's request for the TagResource operation. The "output" return
3226// value will be populated with the request's response once the request completes
3227// successfully.
3228//
3229// Use "Send" method on the returned Request to send the API call to the service.
3230// the "output" return value is not valid until after Send returns without error.
3231//
3232// See TagResource for more information on using the TagResource
3233// API call, and error handling.
3234//
3235// This method is useful when you want to inject custom logic or configuration
3236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3237//
3238//
3239//    // Example sending a request using the TagResourceRequest method.
3240//    req, resp := client.TagResourceRequest(params)
3241//
3242//    err := req.Send()
3243//    if err == nil { // resp is now filled
3244//        fmt.Println(resp)
3245//    }
3246//
3247// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/TagResource
3248func (c *ECR) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3249	op := &request.Operation{
3250		Name:       opTagResource,
3251		HTTPMethod: "POST",
3252		HTTPPath:   "/",
3253	}
3254
3255	if input == nil {
3256		input = &TagResourceInput{}
3257	}
3258
3259	output = &TagResourceOutput{}
3260	req = c.newRequest(op, input, output)
3261	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3262	return
3263}
3264
3265// TagResource API operation for Amazon EC2 Container Registry.
3266//
3267// Adds specified tags to a resource with the specified ARN. Existing tags on
3268// a resource are not changed if they are not specified in the request parameters.
3269//
3270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3271// with awserr.Error's Code and Message methods to get detailed information about
3272// the error.
3273//
3274// See the AWS API reference guide for Amazon EC2 Container Registry's
3275// API operation TagResource for usage and error information.
3276//
3277// Returned Error Types:
3278//   * InvalidParameterException
3279//   The specified parameter is invalid. Review the available parameters for the
3280//   API request.
3281//
3282//   * InvalidTagParameterException
3283//   An invalid parameter has been specified. Tag keys can have a maximum character
3284//   length of 128 characters, and tag values can have a maximum length of 256
3285//   characters.
3286//
3287//   * TooManyTagsException
3288//   The list of tags on the repository is over the limit. The maximum number
3289//   of tags that can be applied to a repository is 50.
3290//
3291//   * RepositoryNotFoundException
3292//   The specified repository could not be found. Check the spelling of the specified
3293//   repository and ensure that you are performing operations on the correct registry.
3294//
3295//   * ServerException
3296//   These errors are usually caused by a server-side issue.
3297//
3298// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/TagResource
3299func (c *ECR) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3300	req, out := c.TagResourceRequest(input)
3301	return out, req.Send()
3302}
3303
3304// TagResourceWithContext is the same as TagResource with the addition of
3305// the ability to pass a context and additional request options.
3306//
3307// See TagResource for details on how to use this API operation.
3308//
3309// The context must be non-nil and will be used for request cancellation. If
3310// the context is nil a panic will occur. In the future the SDK may create
3311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3312// for more information on using Contexts.
3313func (c *ECR) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3314	req, out := c.TagResourceRequest(input)
3315	req.SetContext(ctx)
3316	req.ApplyOptions(opts...)
3317	return out, req.Send()
3318}
3319
3320const opUntagResource = "UntagResource"
3321
3322// UntagResourceRequest generates a "aws/request.Request" representing the
3323// client's request for the UntagResource operation. The "output" return
3324// value will be populated with the request's response once the request completes
3325// successfully.
3326//
3327// Use "Send" method on the returned Request to send the API call to the service.
3328// the "output" return value is not valid until after Send returns without error.
3329//
3330// See UntagResource for more information on using the UntagResource
3331// API call, and error handling.
3332//
3333// This method is useful when you want to inject custom logic or configuration
3334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3335//
3336//
3337//    // Example sending a request using the UntagResourceRequest method.
3338//    req, resp := client.UntagResourceRequest(params)
3339//
3340//    err := req.Send()
3341//    if err == nil { // resp is now filled
3342//        fmt.Println(resp)
3343//    }
3344//
3345// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UntagResource
3346func (c *ECR) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3347	op := &request.Operation{
3348		Name:       opUntagResource,
3349		HTTPMethod: "POST",
3350		HTTPPath:   "/",
3351	}
3352
3353	if input == nil {
3354		input = &UntagResourceInput{}
3355	}
3356
3357	output = &UntagResourceOutput{}
3358	req = c.newRequest(op, input, output)
3359	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3360	return
3361}
3362
3363// UntagResource API operation for Amazon EC2 Container Registry.
3364//
3365// Deletes specified tags from a resource.
3366//
3367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3368// with awserr.Error's Code and Message methods to get detailed information about
3369// the error.
3370//
3371// See the AWS API reference guide for Amazon EC2 Container Registry's
3372// API operation UntagResource for usage and error information.
3373//
3374// Returned Error Types:
3375//   * InvalidParameterException
3376//   The specified parameter is invalid. Review the available parameters for the
3377//   API request.
3378//
3379//   * InvalidTagParameterException
3380//   An invalid parameter has been specified. Tag keys can have a maximum character
3381//   length of 128 characters, and tag values can have a maximum length of 256
3382//   characters.
3383//
3384//   * TooManyTagsException
3385//   The list of tags on the repository is over the limit. The maximum number
3386//   of tags that can be applied to a repository is 50.
3387//
3388//   * RepositoryNotFoundException
3389//   The specified repository could not be found. Check the spelling of the specified
3390//   repository and ensure that you are performing operations on the correct registry.
3391//
3392//   * ServerException
3393//   These errors are usually caused by a server-side issue.
3394//
3395// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UntagResource
3396func (c *ECR) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3397	req, out := c.UntagResourceRequest(input)
3398	return out, req.Send()
3399}
3400
3401// UntagResourceWithContext is the same as UntagResource with the addition of
3402// the ability to pass a context and additional request options.
3403//
3404// See UntagResource for details on how to use this API operation.
3405//
3406// The context must be non-nil and will be used for request cancellation. If
3407// the context is nil a panic will occur. In the future the SDK may create
3408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3409// for more information on using Contexts.
3410func (c *ECR) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3411	req, out := c.UntagResourceRequest(input)
3412	req.SetContext(ctx)
3413	req.ApplyOptions(opts...)
3414	return out, req.Send()
3415}
3416
3417const opUploadLayerPart = "UploadLayerPart"
3418
3419// UploadLayerPartRequest generates a "aws/request.Request" representing the
3420// client's request for the UploadLayerPart operation. The "output" return
3421// value will be populated with the request's response once the request completes
3422// successfully.
3423//
3424// Use "Send" method on the returned Request to send the API call to the service.
3425// the "output" return value is not valid until after Send returns without error.
3426//
3427// See UploadLayerPart for more information on using the UploadLayerPart
3428// API call, and error handling.
3429//
3430// This method is useful when you want to inject custom logic or configuration
3431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3432//
3433//
3434//    // Example sending a request using the UploadLayerPartRequest method.
3435//    req, resp := client.UploadLayerPartRequest(params)
3436//
3437//    err := req.Send()
3438//    if err == nil { // resp is now filled
3439//        fmt.Println(resp)
3440//    }
3441//
3442// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UploadLayerPart
3443func (c *ECR) UploadLayerPartRequest(input *UploadLayerPartInput) (req *request.Request, output *UploadLayerPartOutput) {
3444	op := &request.Operation{
3445		Name:       opUploadLayerPart,
3446		HTTPMethod: "POST",
3447		HTTPPath:   "/",
3448	}
3449
3450	if input == nil {
3451		input = &UploadLayerPartInput{}
3452	}
3453
3454	output = &UploadLayerPartOutput{}
3455	req = c.newRequest(op, input, output)
3456	return
3457}
3458
3459// UploadLayerPart API operation for Amazon EC2 Container Registry.
3460//
3461// Uploads an image layer part to Amazon ECR.
3462//
3463// When an image is pushed, each new image layer is uploaded in parts. The maximum
3464// size of each image layer part can be 20971520 bytes (or about 20MB). The
3465// UploadLayerPart API is called once per each new image layer part.
3466//
3467// This operation is used by the Amazon ECR proxy and is not generally used
3468// by customers for pulling and pushing images. In most cases, you should use
3469// the docker CLI to pull, tag, and push images.
3470//
3471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3472// with awserr.Error's Code and Message methods to get detailed information about
3473// the error.
3474//
3475// See the AWS API reference guide for Amazon EC2 Container Registry's
3476// API operation UploadLayerPart for usage and error information.
3477//
3478// Returned Error Types:
3479//   * ServerException
3480//   These errors are usually caused by a server-side issue.
3481//
3482//   * InvalidParameterException
3483//   The specified parameter is invalid. Review the available parameters for the
3484//   API request.
3485//
3486//   * InvalidLayerPartException
3487//   The layer part size is not valid, or the first byte specified is not consecutive
3488//   to the last byte of a previous layer part upload.
3489//
3490//   * RepositoryNotFoundException
3491//   The specified repository could not be found. Check the spelling of the specified
3492//   repository and ensure that you are performing operations on the correct registry.
3493//
3494//   * UploadNotFoundException
3495//   The upload could not be found, or the specified upload ID is not valid for
3496//   this repository.
3497//
3498//   * LimitExceededException
3499//   The operation did not succeed because it would have exceeded a service limit
3500//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
3501//   in the Amazon Elastic Container Registry User Guide.
3502//
3503//   * KmsException
3504//   The operation failed due to a KMS exception.
3505//
3506// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UploadLayerPart
3507func (c *ECR) UploadLayerPart(input *UploadLayerPartInput) (*UploadLayerPartOutput, error) {
3508	req, out := c.UploadLayerPartRequest(input)
3509	return out, req.Send()
3510}
3511
3512// UploadLayerPartWithContext is the same as UploadLayerPart with the addition of
3513// the ability to pass a context and additional request options.
3514//
3515// See UploadLayerPart for details on how to use this API operation.
3516//
3517// The context must be non-nil and will be used for request cancellation. If
3518// the context is nil a panic will occur. In the future the SDK may create
3519// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3520// for more information on using Contexts.
3521func (c *ECR) UploadLayerPartWithContext(ctx aws.Context, input *UploadLayerPartInput, opts ...request.Option) (*UploadLayerPartOutput, error) {
3522	req, out := c.UploadLayerPartRequest(input)
3523	req.SetContext(ctx)
3524	req.ApplyOptions(opts...)
3525	return out, req.Send()
3526}
3527
3528// This data type is used in the ImageScanFinding data type.
3529type Attribute struct {
3530	_ struct{} `type:"structure"`
3531
3532	// The attribute key.
3533	//
3534	// Key is a required field
3535	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
3536
3537	// The value assigned to the attribute key.
3538	Value *string `locationName:"value" min:"1" type:"string"`
3539}
3540
3541// String returns the string representation
3542func (s Attribute) String() string {
3543	return awsutil.Prettify(s)
3544}
3545
3546// GoString returns the string representation
3547func (s Attribute) GoString() string {
3548	return s.String()
3549}
3550
3551// SetKey sets the Key field's value.
3552func (s *Attribute) SetKey(v string) *Attribute {
3553	s.Key = &v
3554	return s
3555}
3556
3557// SetValue sets the Value field's value.
3558func (s *Attribute) SetValue(v string) *Attribute {
3559	s.Value = &v
3560	return s
3561}
3562
3563// An object representing authorization data for an Amazon ECR registry.
3564type AuthorizationData struct {
3565	_ struct{} `type:"structure"`
3566
3567	// A base64-encoded string that contains authorization data for the specified
3568	// Amazon ECR registry. When the string is decoded, it is presented in the format
3569	// user:password for private registry authentication using docker login.
3570	AuthorizationToken *string `locationName:"authorizationToken" type:"string"`
3571
3572	// The Unix time in seconds and milliseconds when the authorization token expires.
3573	// Authorization tokens are valid for 12 hours.
3574	ExpiresAt *time.Time `locationName:"expiresAt" type:"timestamp"`
3575
3576	// The registry URL to use for this authorization token in a docker login command.
3577	// The Amazon ECR registry URL format is https://aws_account_id.dkr.ecr.region.amazonaws.com.
3578	// For example, https://012345678910.dkr.ecr.us-east-1.amazonaws.com..
3579	ProxyEndpoint *string `locationName:"proxyEndpoint" type:"string"`
3580}
3581
3582// String returns the string representation
3583func (s AuthorizationData) String() string {
3584	return awsutil.Prettify(s)
3585}
3586
3587// GoString returns the string representation
3588func (s AuthorizationData) GoString() string {
3589	return s.String()
3590}
3591
3592// SetAuthorizationToken sets the AuthorizationToken field's value.
3593func (s *AuthorizationData) SetAuthorizationToken(v string) *AuthorizationData {
3594	s.AuthorizationToken = &v
3595	return s
3596}
3597
3598// SetExpiresAt sets the ExpiresAt field's value.
3599func (s *AuthorizationData) SetExpiresAt(v time.Time) *AuthorizationData {
3600	s.ExpiresAt = &v
3601	return s
3602}
3603
3604// SetProxyEndpoint sets the ProxyEndpoint field's value.
3605func (s *AuthorizationData) SetProxyEndpoint(v string) *AuthorizationData {
3606	s.ProxyEndpoint = &v
3607	return s
3608}
3609
3610type BatchCheckLayerAvailabilityInput struct {
3611	_ struct{} `type:"structure"`
3612
3613	// The digests of the image layers to check.
3614	//
3615	// LayerDigests is a required field
3616	LayerDigests []*string `locationName:"layerDigests" min:"1" type:"list" required:"true"`
3617
3618	// The AWS account ID associated with the registry that contains the image layers
3619	// to check. If you do not specify a registry, the default registry is assumed.
3620	RegistryId *string `locationName:"registryId" type:"string"`
3621
3622	// The name of the repository that is associated with the image layers to check.
3623	//
3624	// RepositoryName is a required field
3625	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3626}
3627
3628// String returns the string representation
3629func (s BatchCheckLayerAvailabilityInput) String() string {
3630	return awsutil.Prettify(s)
3631}
3632
3633// GoString returns the string representation
3634func (s BatchCheckLayerAvailabilityInput) GoString() string {
3635	return s.String()
3636}
3637
3638// Validate inspects the fields of the type to determine if they are valid.
3639func (s *BatchCheckLayerAvailabilityInput) Validate() error {
3640	invalidParams := request.ErrInvalidParams{Context: "BatchCheckLayerAvailabilityInput"}
3641	if s.LayerDigests == nil {
3642		invalidParams.Add(request.NewErrParamRequired("LayerDigests"))
3643	}
3644	if s.LayerDigests != nil && len(s.LayerDigests) < 1 {
3645		invalidParams.Add(request.NewErrParamMinLen("LayerDigests", 1))
3646	}
3647	if s.RepositoryName == nil {
3648		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3649	}
3650	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3651		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3652	}
3653
3654	if invalidParams.Len() > 0 {
3655		return invalidParams
3656	}
3657	return nil
3658}
3659
3660// SetLayerDigests sets the LayerDigests field's value.
3661func (s *BatchCheckLayerAvailabilityInput) SetLayerDigests(v []*string) *BatchCheckLayerAvailabilityInput {
3662	s.LayerDigests = v
3663	return s
3664}
3665
3666// SetRegistryId sets the RegistryId field's value.
3667func (s *BatchCheckLayerAvailabilityInput) SetRegistryId(v string) *BatchCheckLayerAvailabilityInput {
3668	s.RegistryId = &v
3669	return s
3670}
3671
3672// SetRepositoryName sets the RepositoryName field's value.
3673func (s *BatchCheckLayerAvailabilityInput) SetRepositoryName(v string) *BatchCheckLayerAvailabilityInput {
3674	s.RepositoryName = &v
3675	return s
3676}
3677
3678type BatchCheckLayerAvailabilityOutput struct {
3679	_ struct{} `type:"structure"`
3680
3681	// Any failures associated with the call.
3682	Failures []*LayerFailure `locationName:"failures" type:"list"`
3683
3684	// A list of image layer objects corresponding to the image layer references
3685	// in the request.
3686	Layers []*Layer `locationName:"layers" type:"list"`
3687}
3688
3689// String returns the string representation
3690func (s BatchCheckLayerAvailabilityOutput) String() string {
3691	return awsutil.Prettify(s)
3692}
3693
3694// GoString returns the string representation
3695func (s BatchCheckLayerAvailabilityOutput) GoString() string {
3696	return s.String()
3697}
3698
3699// SetFailures sets the Failures field's value.
3700func (s *BatchCheckLayerAvailabilityOutput) SetFailures(v []*LayerFailure) *BatchCheckLayerAvailabilityOutput {
3701	s.Failures = v
3702	return s
3703}
3704
3705// SetLayers sets the Layers field's value.
3706func (s *BatchCheckLayerAvailabilityOutput) SetLayers(v []*Layer) *BatchCheckLayerAvailabilityOutput {
3707	s.Layers = v
3708	return s
3709}
3710
3711// Deletes specified images within a specified repository. Images are specified
3712// with either the imageTag or imageDigest.
3713type BatchDeleteImageInput struct {
3714	_ struct{} `type:"structure"`
3715
3716	// A list of image ID references that correspond to images to delete. The format
3717	// of the imageIds reference is imageTag=tag or imageDigest=digest.
3718	//
3719	// ImageIds is a required field
3720	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list" required:"true"`
3721
3722	// The AWS account ID associated with the registry that contains the image to
3723	// delete. If you do not specify a registry, the default registry is assumed.
3724	RegistryId *string `locationName:"registryId" type:"string"`
3725
3726	// The repository that contains the image to delete.
3727	//
3728	// RepositoryName is a required field
3729	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3730}
3731
3732// String returns the string representation
3733func (s BatchDeleteImageInput) String() string {
3734	return awsutil.Prettify(s)
3735}
3736
3737// GoString returns the string representation
3738func (s BatchDeleteImageInput) GoString() string {
3739	return s.String()
3740}
3741
3742// Validate inspects the fields of the type to determine if they are valid.
3743func (s *BatchDeleteImageInput) Validate() error {
3744	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteImageInput"}
3745	if s.ImageIds == nil {
3746		invalidParams.Add(request.NewErrParamRequired("ImageIds"))
3747	}
3748	if s.ImageIds != nil && len(s.ImageIds) < 1 {
3749		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
3750	}
3751	if s.RepositoryName == nil {
3752		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3753	}
3754	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3755		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3756	}
3757	if s.ImageIds != nil {
3758		for i, v := range s.ImageIds {
3759			if v == nil {
3760				continue
3761			}
3762			if err := v.Validate(); err != nil {
3763				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ImageIds", i), err.(request.ErrInvalidParams))
3764			}
3765		}
3766	}
3767
3768	if invalidParams.Len() > 0 {
3769		return invalidParams
3770	}
3771	return nil
3772}
3773
3774// SetImageIds sets the ImageIds field's value.
3775func (s *BatchDeleteImageInput) SetImageIds(v []*ImageIdentifier) *BatchDeleteImageInput {
3776	s.ImageIds = v
3777	return s
3778}
3779
3780// SetRegistryId sets the RegistryId field's value.
3781func (s *BatchDeleteImageInput) SetRegistryId(v string) *BatchDeleteImageInput {
3782	s.RegistryId = &v
3783	return s
3784}
3785
3786// SetRepositoryName sets the RepositoryName field's value.
3787func (s *BatchDeleteImageInput) SetRepositoryName(v string) *BatchDeleteImageInput {
3788	s.RepositoryName = &v
3789	return s
3790}
3791
3792type BatchDeleteImageOutput struct {
3793	_ struct{} `type:"structure"`
3794
3795	// Any failures associated with the call.
3796	Failures []*ImageFailure `locationName:"failures" type:"list"`
3797
3798	// The image IDs of the deleted images.
3799	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list"`
3800}
3801
3802// String returns the string representation
3803func (s BatchDeleteImageOutput) String() string {
3804	return awsutil.Prettify(s)
3805}
3806
3807// GoString returns the string representation
3808func (s BatchDeleteImageOutput) GoString() string {
3809	return s.String()
3810}
3811
3812// SetFailures sets the Failures field's value.
3813func (s *BatchDeleteImageOutput) SetFailures(v []*ImageFailure) *BatchDeleteImageOutput {
3814	s.Failures = v
3815	return s
3816}
3817
3818// SetImageIds sets the ImageIds field's value.
3819func (s *BatchDeleteImageOutput) SetImageIds(v []*ImageIdentifier) *BatchDeleteImageOutput {
3820	s.ImageIds = v
3821	return s
3822}
3823
3824type BatchGetImageInput struct {
3825	_ struct{} `type:"structure"`
3826
3827	// The accepted media types for the request.
3828	//
3829	// Valid values: application/vnd.docker.distribution.manifest.v1+json | application/vnd.docker.distribution.manifest.v2+json
3830	// | application/vnd.oci.image.manifest.v1+json
3831	AcceptedMediaTypes []*string `locationName:"acceptedMediaTypes" min:"1" type:"list"`
3832
3833	// A list of image ID references that correspond to images to describe. The
3834	// format of the imageIds reference is imageTag=tag or imageDigest=digest.
3835	//
3836	// ImageIds is a required field
3837	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list" required:"true"`
3838
3839	// The AWS account ID associated with the registry that contains the images
3840	// to describe. If you do not specify a registry, the default registry is assumed.
3841	RegistryId *string `locationName:"registryId" type:"string"`
3842
3843	// The repository that contains the images to describe.
3844	//
3845	// RepositoryName is a required field
3846	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3847}
3848
3849// String returns the string representation
3850func (s BatchGetImageInput) String() string {
3851	return awsutil.Prettify(s)
3852}
3853
3854// GoString returns the string representation
3855func (s BatchGetImageInput) GoString() string {
3856	return s.String()
3857}
3858
3859// Validate inspects the fields of the type to determine if they are valid.
3860func (s *BatchGetImageInput) Validate() error {
3861	invalidParams := request.ErrInvalidParams{Context: "BatchGetImageInput"}
3862	if s.AcceptedMediaTypes != nil && len(s.AcceptedMediaTypes) < 1 {
3863		invalidParams.Add(request.NewErrParamMinLen("AcceptedMediaTypes", 1))
3864	}
3865	if s.ImageIds == nil {
3866		invalidParams.Add(request.NewErrParamRequired("ImageIds"))
3867	}
3868	if s.ImageIds != nil && len(s.ImageIds) < 1 {
3869		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
3870	}
3871	if s.RepositoryName == nil {
3872		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3873	}
3874	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3875		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3876	}
3877	if s.ImageIds != nil {
3878		for i, v := range s.ImageIds {
3879			if v == nil {
3880				continue
3881			}
3882			if err := v.Validate(); err != nil {
3883				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ImageIds", i), err.(request.ErrInvalidParams))
3884			}
3885		}
3886	}
3887
3888	if invalidParams.Len() > 0 {
3889		return invalidParams
3890	}
3891	return nil
3892}
3893
3894// SetAcceptedMediaTypes sets the AcceptedMediaTypes field's value.
3895func (s *BatchGetImageInput) SetAcceptedMediaTypes(v []*string) *BatchGetImageInput {
3896	s.AcceptedMediaTypes = v
3897	return s
3898}
3899
3900// SetImageIds sets the ImageIds field's value.
3901func (s *BatchGetImageInput) SetImageIds(v []*ImageIdentifier) *BatchGetImageInput {
3902	s.ImageIds = v
3903	return s
3904}
3905
3906// SetRegistryId sets the RegistryId field's value.
3907func (s *BatchGetImageInput) SetRegistryId(v string) *BatchGetImageInput {
3908	s.RegistryId = &v
3909	return s
3910}
3911
3912// SetRepositoryName sets the RepositoryName field's value.
3913func (s *BatchGetImageInput) SetRepositoryName(v string) *BatchGetImageInput {
3914	s.RepositoryName = &v
3915	return s
3916}
3917
3918type BatchGetImageOutput struct {
3919	_ struct{} `type:"structure"`
3920
3921	// Any failures associated with the call.
3922	Failures []*ImageFailure `locationName:"failures" type:"list"`
3923
3924	// A list of image objects corresponding to the image references in the request.
3925	Images []*Image `locationName:"images" type:"list"`
3926}
3927
3928// String returns the string representation
3929func (s BatchGetImageOutput) String() string {
3930	return awsutil.Prettify(s)
3931}
3932
3933// GoString returns the string representation
3934func (s BatchGetImageOutput) GoString() string {
3935	return s.String()
3936}
3937
3938// SetFailures sets the Failures field's value.
3939func (s *BatchGetImageOutput) SetFailures(v []*ImageFailure) *BatchGetImageOutput {
3940	s.Failures = v
3941	return s
3942}
3943
3944// SetImages sets the Images field's value.
3945func (s *BatchGetImageOutput) SetImages(v []*Image) *BatchGetImageOutput {
3946	s.Images = v
3947	return s
3948}
3949
3950type CompleteLayerUploadInput struct {
3951	_ struct{} `type:"structure"`
3952
3953	// The sha256 digest of the image layer.
3954	//
3955	// LayerDigests is a required field
3956	LayerDigests []*string `locationName:"layerDigests" min:"1" type:"list" required:"true"`
3957
3958	// The AWS account ID associated with the registry to which to upload layers.
3959	// If you do not specify a registry, the default registry is assumed.
3960	RegistryId *string `locationName:"registryId" type:"string"`
3961
3962	// The name of the repository to associate with the image layer.
3963	//
3964	// RepositoryName is a required field
3965	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3966
3967	// The upload ID from a previous InitiateLayerUpload operation to associate
3968	// with the image layer.
3969	//
3970	// UploadId is a required field
3971	UploadId *string `locationName:"uploadId" type:"string" required:"true"`
3972}
3973
3974// String returns the string representation
3975func (s CompleteLayerUploadInput) String() string {
3976	return awsutil.Prettify(s)
3977}
3978
3979// GoString returns the string representation
3980func (s CompleteLayerUploadInput) GoString() string {
3981	return s.String()
3982}
3983
3984// Validate inspects the fields of the type to determine if they are valid.
3985func (s *CompleteLayerUploadInput) Validate() error {
3986	invalidParams := request.ErrInvalidParams{Context: "CompleteLayerUploadInput"}
3987	if s.LayerDigests == nil {
3988		invalidParams.Add(request.NewErrParamRequired("LayerDigests"))
3989	}
3990	if s.LayerDigests != nil && len(s.LayerDigests) < 1 {
3991		invalidParams.Add(request.NewErrParamMinLen("LayerDigests", 1))
3992	}
3993	if s.RepositoryName == nil {
3994		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3995	}
3996	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3997		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3998	}
3999	if s.UploadId == nil {
4000		invalidParams.Add(request.NewErrParamRequired("UploadId"))
4001	}
4002
4003	if invalidParams.Len() > 0 {
4004		return invalidParams
4005	}
4006	return nil
4007}
4008
4009// SetLayerDigests sets the LayerDigests field's value.
4010func (s *CompleteLayerUploadInput) SetLayerDigests(v []*string) *CompleteLayerUploadInput {
4011	s.LayerDigests = v
4012	return s
4013}
4014
4015// SetRegistryId sets the RegistryId field's value.
4016func (s *CompleteLayerUploadInput) SetRegistryId(v string) *CompleteLayerUploadInput {
4017	s.RegistryId = &v
4018	return s
4019}
4020
4021// SetRepositoryName sets the RepositoryName field's value.
4022func (s *CompleteLayerUploadInput) SetRepositoryName(v string) *CompleteLayerUploadInput {
4023	s.RepositoryName = &v
4024	return s
4025}
4026
4027// SetUploadId sets the UploadId field's value.
4028func (s *CompleteLayerUploadInput) SetUploadId(v string) *CompleteLayerUploadInput {
4029	s.UploadId = &v
4030	return s
4031}
4032
4033type CompleteLayerUploadOutput struct {
4034	_ struct{} `type:"structure"`
4035
4036	// The sha256 digest of the image layer.
4037	LayerDigest *string `locationName:"layerDigest" type:"string"`
4038
4039	// The registry ID associated with the request.
4040	RegistryId *string `locationName:"registryId" type:"string"`
4041
4042	// The repository name associated with the request.
4043	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
4044
4045	// The upload ID associated with the layer.
4046	UploadId *string `locationName:"uploadId" type:"string"`
4047}
4048
4049// String returns the string representation
4050func (s CompleteLayerUploadOutput) String() string {
4051	return awsutil.Prettify(s)
4052}
4053
4054// GoString returns the string representation
4055func (s CompleteLayerUploadOutput) GoString() string {
4056	return s.String()
4057}
4058
4059// SetLayerDigest sets the LayerDigest field's value.
4060func (s *CompleteLayerUploadOutput) SetLayerDigest(v string) *CompleteLayerUploadOutput {
4061	s.LayerDigest = &v
4062	return s
4063}
4064
4065// SetRegistryId sets the RegistryId field's value.
4066func (s *CompleteLayerUploadOutput) SetRegistryId(v string) *CompleteLayerUploadOutput {
4067	s.RegistryId = &v
4068	return s
4069}
4070
4071// SetRepositoryName sets the RepositoryName field's value.
4072func (s *CompleteLayerUploadOutput) SetRepositoryName(v string) *CompleteLayerUploadOutput {
4073	s.RepositoryName = &v
4074	return s
4075}
4076
4077// SetUploadId sets the UploadId field's value.
4078func (s *CompleteLayerUploadOutput) SetUploadId(v string) *CompleteLayerUploadOutput {
4079	s.UploadId = &v
4080	return s
4081}
4082
4083type CreateRepositoryInput struct {
4084	_ struct{} `type:"structure"`
4085
4086	// The encryption configuration for the repository. This determines how the
4087	// contents of your repository are encrypted at rest.
4088	EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"`
4089
4090	// The image scanning configuration for the repository. This determines whether
4091	// images are scanned for known vulnerabilities after being pushed to the repository.
4092	ImageScanningConfiguration *ImageScanningConfiguration `locationName:"imageScanningConfiguration" type:"structure"`
4093
4094	// The tag mutability setting for the repository. If this parameter is omitted,
4095	// the default setting of MUTABLE will be used which will allow image tags to
4096	// be overwritten. If IMMUTABLE is specified, all image tags within the repository
4097	// will be immutable which will prevent them from being overwritten.
4098	ImageTagMutability *string `locationName:"imageTagMutability" type:"string" enum:"ImageTagMutability"`
4099
4100	// The name to use for the repository. The repository name may be specified
4101	// on its own (such as nginx-web-app) or it can be prepended with a namespace
4102	// to group the repository into a category (such as project-a/nginx-web-app).
4103	//
4104	// RepositoryName is a required field
4105	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4106
4107	// The metadata that you apply to the repository to help you categorize and
4108	// organize them. Each tag consists of a key and an optional value, both of
4109	// which you define. Tag keys can have a maximum character length of 128 characters,
4110	// and tag values can have a maximum length of 256 characters.
4111	Tags []*Tag `locationName:"tags" type:"list"`
4112}
4113
4114// String returns the string representation
4115func (s CreateRepositoryInput) String() string {
4116	return awsutil.Prettify(s)
4117}
4118
4119// GoString returns the string representation
4120func (s CreateRepositoryInput) GoString() string {
4121	return s.String()
4122}
4123
4124// Validate inspects the fields of the type to determine if they are valid.
4125func (s *CreateRepositoryInput) Validate() error {
4126	invalidParams := request.ErrInvalidParams{Context: "CreateRepositoryInput"}
4127	if s.RepositoryName == nil {
4128		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4129	}
4130	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4131		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4132	}
4133	if s.EncryptionConfiguration != nil {
4134		if err := s.EncryptionConfiguration.Validate(); err != nil {
4135			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
4136		}
4137	}
4138
4139	if invalidParams.Len() > 0 {
4140		return invalidParams
4141	}
4142	return nil
4143}
4144
4145// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
4146func (s *CreateRepositoryInput) SetEncryptionConfiguration(v *EncryptionConfiguration) *CreateRepositoryInput {
4147	s.EncryptionConfiguration = v
4148	return s
4149}
4150
4151// SetImageScanningConfiguration sets the ImageScanningConfiguration field's value.
4152func (s *CreateRepositoryInput) SetImageScanningConfiguration(v *ImageScanningConfiguration) *CreateRepositoryInput {
4153	s.ImageScanningConfiguration = v
4154	return s
4155}
4156
4157// SetImageTagMutability sets the ImageTagMutability field's value.
4158func (s *CreateRepositoryInput) SetImageTagMutability(v string) *CreateRepositoryInput {
4159	s.ImageTagMutability = &v
4160	return s
4161}
4162
4163// SetRepositoryName sets the RepositoryName field's value.
4164func (s *CreateRepositoryInput) SetRepositoryName(v string) *CreateRepositoryInput {
4165	s.RepositoryName = &v
4166	return s
4167}
4168
4169// SetTags sets the Tags field's value.
4170func (s *CreateRepositoryInput) SetTags(v []*Tag) *CreateRepositoryInput {
4171	s.Tags = v
4172	return s
4173}
4174
4175type CreateRepositoryOutput struct {
4176	_ struct{} `type:"structure"`
4177
4178	// The repository that was created.
4179	Repository *Repository `locationName:"repository" type:"structure"`
4180}
4181
4182// String returns the string representation
4183func (s CreateRepositoryOutput) String() string {
4184	return awsutil.Prettify(s)
4185}
4186
4187// GoString returns the string representation
4188func (s CreateRepositoryOutput) GoString() string {
4189	return s.String()
4190}
4191
4192// SetRepository sets the Repository field's value.
4193func (s *CreateRepositoryOutput) SetRepository(v *Repository) *CreateRepositoryOutput {
4194	s.Repository = v
4195	return s
4196}
4197
4198type DeleteLifecyclePolicyInput struct {
4199	_ struct{} `type:"structure"`
4200
4201	// The AWS account ID associated with the registry that contains the repository.
4202	// If you do not specify a registry, the default registry is assumed.
4203	RegistryId *string `locationName:"registryId" type:"string"`
4204
4205	// The name of the repository.
4206	//
4207	// RepositoryName is a required field
4208	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4209}
4210
4211// String returns the string representation
4212func (s DeleteLifecyclePolicyInput) String() string {
4213	return awsutil.Prettify(s)
4214}
4215
4216// GoString returns the string representation
4217func (s DeleteLifecyclePolicyInput) GoString() string {
4218	return s.String()
4219}
4220
4221// Validate inspects the fields of the type to determine if they are valid.
4222func (s *DeleteLifecyclePolicyInput) Validate() error {
4223	invalidParams := request.ErrInvalidParams{Context: "DeleteLifecyclePolicyInput"}
4224	if s.RepositoryName == nil {
4225		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4226	}
4227	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4228		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4229	}
4230
4231	if invalidParams.Len() > 0 {
4232		return invalidParams
4233	}
4234	return nil
4235}
4236
4237// SetRegistryId sets the RegistryId field's value.
4238func (s *DeleteLifecyclePolicyInput) SetRegistryId(v string) *DeleteLifecyclePolicyInput {
4239	s.RegistryId = &v
4240	return s
4241}
4242
4243// SetRepositoryName sets the RepositoryName field's value.
4244func (s *DeleteLifecyclePolicyInput) SetRepositoryName(v string) *DeleteLifecyclePolicyInput {
4245	s.RepositoryName = &v
4246	return s
4247}
4248
4249type DeleteLifecyclePolicyOutput struct {
4250	_ struct{} `type:"structure"`
4251
4252	// The time stamp of the last time that the lifecycle policy was run.
4253	LastEvaluatedAt *time.Time `locationName:"lastEvaluatedAt" type:"timestamp"`
4254
4255	// The JSON lifecycle policy text.
4256	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string"`
4257
4258	// The registry ID associated with the request.
4259	RegistryId *string `locationName:"registryId" type:"string"`
4260
4261	// The repository name associated with the request.
4262	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
4263}
4264
4265// String returns the string representation
4266func (s DeleteLifecyclePolicyOutput) String() string {
4267	return awsutil.Prettify(s)
4268}
4269
4270// GoString returns the string representation
4271func (s DeleteLifecyclePolicyOutput) GoString() string {
4272	return s.String()
4273}
4274
4275// SetLastEvaluatedAt sets the LastEvaluatedAt field's value.
4276func (s *DeleteLifecyclePolicyOutput) SetLastEvaluatedAt(v time.Time) *DeleteLifecyclePolicyOutput {
4277	s.LastEvaluatedAt = &v
4278	return s
4279}
4280
4281// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
4282func (s *DeleteLifecyclePolicyOutput) SetLifecyclePolicyText(v string) *DeleteLifecyclePolicyOutput {
4283	s.LifecyclePolicyText = &v
4284	return s
4285}
4286
4287// SetRegistryId sets the RegistryId field's value.
4288func (s *DeleteLifecyclePolicyOutput) SetRegistryId(v string) *DeleteLifecyclePolicyOutput {
4289	s.RegistryId = &v
4290	return s
4291}
4292
4293// SetRepositoryName sets the RepositoryName field's value.
4294func (s *DeleteLifecyclePolicyOutput) SetRepositoryName(v string) *DeleteLifecyclePolicyOutput {
4295	s.RepositoryName = &v
4296	return s
4297}
4298
4299type DeleteRegistryPolicyInput struct {
4300	_ struct{} `type:"structure"`
4301}
4302
4303// String returns the string representation
4304func (s DeleteRegistryPolicyInput) String() string {
4305	return awsutil.Prettify(s)
4306}
4307
4308// GoString returns the string representation
4309func (s DeleteRegistryPolicyInput) GoString() string {
4310	return s.String()
4311}
4312
4313type DeleteRegistryPolicyOutput struct {
4314	_ struct{} `type:"structure"`
4315
4316	// The contents of the registry permissions policy that was deleted.
4317	PolicyText *string `locationName:"policyText" type:"string"`
4318
4319	// The registry ID associated with the request.
4320	RegistryId *string `locationName:"registryId" type:"string"`
4321}
4322
4323// String returns the string representation
4324func (s DeleteRegistryPolicyOutput) String() string {
4325	return awsutil.Prettify(s)
4326}
4327
4328// GoString returns the string representation
4329func (s DeleteRegistryPolicyOutput) GoString() string {
4330	return s.String()
4331}
4332
4333// SetPolicyText sets the PolicyText field's value.
4334func (s *DeleteRegistryPolicyOutput) SetPolicyText(v string) *DeleteRegistryPolicyOutput {
4335	s.PolicyText = &v
4336	return s
4337}
4338
4339// SetRegistryId sets the RegistryId field's value.
4340func (s *DeleteRegistryPolicyOutput) SetRegistryId(v string) *DeleteRegistryPolicyOutput {
4341	s.RegistryId = &v
4342	return s
4343}
4344
4345type DeleteRepositoryInput struct {
4346	_ struct{} `type:"structure"`
4347
4348	// If a repository contains images, forces the deletion.
4349	Force *bool `locationName:"force" type:"boolean"`
4350
4351	// The AWS account ID associated with the registry that contains the repository
4352	// to delete. If you do not specify a registry, the default registry is assumed.
4353	RegistryId *string `locationName:"registryId" type:"string"`
4354
4355	// The name of the repository to delete.
4356	//
4357	// RepositoryName is a required field
4358	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4359}
4360
4361// String returns the string representation
4362func (s DeleteRepositoryInput) String() string {
4363	return awsutil.Prettify(s)
4364}
4365
4366// GoString returns the string representation
4367func (s DeleteRepositoryInput) GoString() string {
4368	return s.String()
4369}
4370
4371// Validate inspects the fields of the type to determine if they are valid.
4372func (s *DeleteRepositoryInput) Validate() error {
4373	invalidParams := request.ErrInvalidParams{Context: "DeleteRepositoryInput"}
4374	if s.RepositoryName == nil {
4375		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4376	}
4377	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4378		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4379	}
4380
4381	if invalidParams.Len() > 0 {
4382		return invalidParams
4383	}
4384	return nil
4385}
4386
4387// SetForce sets the Force field's value.
4388func (s *DeleteRepositoryInput) SetForce(v bool) *DeleteRepositoryInput {
4389	s.Force = &v
4390	return s
4391}
4392
4393// SetRegistryId sets the RegistryId field's value.
4394func (s *DeleteRepositoryInput) SetRegistryId(v string) *DeleteRepositoryInput {
4395	s.RegistryId = &v
4396	return s
4397}
4398
4399// SetRepositoryName sets the RepositoryName field's value.
4400func (s *DeleteRepositoryInput) SetRepositoryName(v string) *DeleteRepositoryInput {
4401	s.RepositoryName = &v
4402	return s
4403}
4404
4405type DeleteRepositoryOutput struct {
4406	_ struct{} `type:"structure"`
4407
4408	// The repository that was deleted.
4409	Repository *Repository `locationName:"repository" type:"structure"`
4410}
4411
4412// String returns the string representation
4413func (s DeleteRepositoryOutput) String() string {
4414	return awsutil.Prettify(s)
4415}
4416
4417// GoString returns the string representation
4418func (s DeleteRepositoryOutput) GoString() string {
4419	return s.String()
4420}
4421
4422// SetRepository sets the Repository field's value.
4423func (s *DeleteRepositoryOutput) SetRepository(v *Repository) *DeleteRepositoryOutput {
4424	s.Repository = v
4425	return s
4426}
4427
4428type DeleteRepositoryPolicyInput struct {
4429	_ struct{} `type:"structure"`
4430
4431	// The AWS account ID associated with the registry that contains the repository
4432	// policy to delete. If you do not specify a registry, the default registry
4433	// is assumed.
4434	RegistryId *string `locationName:"registryId" type:"string"`
4435
4436	// The name of the repository that is associated with the repository policy
4437	// to delete.
4438	//
4439	// RepositoryName is a required field
4440	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4441}
4442
4443// String returns the string representation
4444func (s DeleteRepositoryPolicyInput) String() string {
4445	return awsutil.Prettify(s)
4446}
4447
4448// GoString returns the string representation
4449func (s DeleteRepositoryPolicyInput) GoString() string {
4450	return s.String()
4451}
4452
4453// Validate inspects the fields of the type to determine if they are valid.
4454func (s *DeleteRepositoryPolicyInput) Validate() error {
4455	invalidParams := request.ErrInvalidParams{Context: "DeleteRepositoryPolicyInput"}
4456	if s.RepositoryName == nil {
4457		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4458	}
4459	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4460		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4461	}
4462
4463	if invalidParams.Len() > 0 {
4464		return invalidParams
4465	}
4466	return nil
4467}
4468
4469// SetRegistryId sets the RegistryId field's value.
4470func (s *DeleteRepositoryPolicyInput) SetRegistryId(v string) *DeleteRepositoryPolicyInput {
4471	s.RegistryId = &v
4472	return s
4473}
4474
4475// SetRepositoryName sets the RepositoryName field's value.
4476func (s *DeleteRepositoryPolicyInput) SetRepositoryName(v string) *DeleteRepositoryPolicyInput {
4477	s.RepositoryName = &v
4478	return s
4479}
4480
4481type DeleteRepositoryPolicyOutput struct {
4482	_ struct{} `type:"structure"`
4483
4484	// The JSON repository policy that was deleted from the repository.
4485	PolicyText *string `locationName:"policyText" type:"string"`
4486
4487	// The registry ID associated with the request.
4488	RegistryId *string `locationName:"registryId" type:"string"`
4489
4490	// The repository name associated with the request.
4491	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
4492}
4493
4494// String returns the string representation
4495func (s DeleteRepositoryPolicyOutput) String() string {
4496	return awsutil.Prettify(s)
4497}
4498
4499// GoString returns the string representation
4500func (s DeleteRepositoryPolicyOutput) GoString() string {
4501	return s.String()
4502}
4503
4504// SetPolicyText sets the PolicyText field's value.
4505func (s *DeleteRepositoryPolicyOutput) SetPolicyText(v string) *DeleteRepositoryPolicyOutput {
4506	s.PolicyText = &v
4507	return s
4508}
4509
4510// SetRegistryId sets the RegistryId field's value.
4511func (s *DeleteRepositoryPolicyOutput) SetRegistryId(v string) *DeleteRepositoryPolicyOutput {
4512	s.RegistryId = &v
4513	return s
4514}
4515
4516// SetRepositoryName sets the RepositoryName field's value.
4517func (s *DeleteRepositoryPolicyOutput) SetRepositoryName(v string) *DeleteRepositoryPolicyOutput {
4518	s.RepositoryName = &v
4519	return s
4520}
4521
4522type DescribeImageScanFindingsInput struct {
4523	_ struct{} `type:"structure"`
4524
4525	// An object with identifying information for an Amazon ECR image.
4526	//
4527	// ImageId is a required field
4528	ImageId *ImageIdentifier `locationName:"imageId" type:"structure" required:"true"`
4529
4530	// The maximum number of image scan results returned by DescribeImageScanFindings
4531	// in paginated output. When this parameter is used, DescribeImageScanFindings
4532	// only returns maxResults results in a single page along with a nextToken response
4533	// element. The remaining results of the initial request can be seen by sending
4534	// another DescribeImageScanFindings request with the returned nextToken value.
4535	// This value can be between 1 and 1000. If this parameter is not used, then
4536	// DescribeImageScanFindings returns up to 100 results and a nextToken value,
4537	// if applicable.
4538	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
4539
4540	// The nextToken value returned from a previous paginated DescribeImageScanFindings
4541	// request where maxResults was used and the results exceeded the value of that
4542	// parameter. Pagination continues from the end of the previous results that
4543	// returned the nextToken value. This value is null when there are no more results
4544	// to return.
4545	NextToken *string `locationName:"nextToken" type:"string"`
4546
4547	// The AWS account ID associated with the registry that contains the repository
4548	// in which to describe the image scan findings for. If you do not specify a
4549	// registry, the default registry is assumed.
4550	RegistryId *string `locationName:"registryId" type:"string"`
4551
4552	// The repository for the image for which to describe the scan findings.
4553	//
4554	// RepositoryName is a required field
4555	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4556}
4557
4558// String returns the string representation
4559func (s DescribeImageScanFindingsInput) String() string {
4560	return awsutil.Prettify(s)
4561}
4562
4563// GoString returns the string representation
4564func (s DescribeImageScanFindingsInput) GoString() string {
4565	return s.String()
4566}
4567
4568// Validate inspects the fields of the type to determine if they are valid.
4569func (s *DescribeImageScanFindingsInput) Validate() error {
4570	invalidParams := request.ErrInvalidParams{Context: "DescribeImageScanFindingsInput"}
4571	if s.ImageId == nil {
4572		invalidParams.Add(request.NewErrParamRequired("ImageId"))
4573	}
4574	if s.MaxResults != nil && *s.MaxResults < 1 {
4575		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4576	}
4577	if s.RepositoryName == nil {
4578		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4579	}
4580	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4581		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4582	}
4583	if s.ImageId != nil {
4584		if err := s.ImageId.Validate(); err != nil {
4585			invalidParams.AddNested("ImageId", err.(request.ErrInvalidParams))
4586		}
4587	}
4588
4589	if invalidParams.Len() > 0 {
4590		return invalidParams
4591	}
4592	return nil
4593}
4594
4595// SetImageId sets the ImageId field's value.
4596func (s *DescribeImageScanFindingsInput) SetImageId(v *ImageIdentifier) *DescribeImageScanFindingsInput {
4597	s.ImageId = v
4598	return s
4599}
4600
4601// SetMaxResults sets the MaxResults field's value.
4602func (s *DescribeImageScanFindingsInput) SetMaxResults(v int64) *DescribeImageScanFindingsInput {
4603	s.MaxResults = &v
4604	return s
4605}
4606
4607// SetNextToken sets the NextToken field's value.
4608func (s *DescribeImageScanFindingsInput) SetNextToken(v string) *DescribeImageScanFindingsInput {
4609	s.NextToken = &v
4610	return s
4611}
4612
4613// SetRegistryId sets the RegistryId field's value.
4614func (s *DescribeImageScanFindingsInput) SetRegistryId(v string) *DescribeImageScanFindingsInput {
4615	s.RegistryId = &v
4616	return s
4617}
4618
4619// SetRepositoryName sets the RepositoryName field's value.
4620func (s *DescribeImageScanFindingsInput) SetRepositoryName(v string) *DescribeImageScanFindingsInput {
4621	s.RepositoryName = &v
4622	return s
4623}
4624
4625type DescribeImageScanFindingsOutput struct {
4626	_ struct{} `type:"structure"`
4627
4628	// An object with identifying information for an Amazon ECR image.
4629	ImageId *ImageIdentifier `locationName:"imageId" type:"structure"`
4630
4631	// The information contained in the image scan findings.
4632	ImageScanFindings *ImageScanFindings `locationName:"imageScanFindings" type:"structure"`
4633
4634	// The current state of the scan.
4635	ImageScanStatus *ImageScanStatus `locationName:"imageScanStatus" type:"structure"`
4636
4637	// The nextToken value to include in a future DescribeImageScanFindings request.
4638	// When the results of a DescribeImageScanFindings request exceed maxResults,
4639	// this value can be used to retrieve the next page of results. This value is
4640	// null when there are no more results to return.
4641	NextToken *string `locationName:"nextToken" type:"string"`
4642
4643	// The registry ID associated with the request.
4644	RegistryId *string `locationName:"registryId" type:"string"`
4645
4646	// The repository name associated with the request.
4647	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
4648}
4649
4650// String returns the string representation
4651func (s DescribeImageScanFindingsOutput) String() string {
4652	return awsutil.Prettify(s)
4653}
4654
4655// GoString returns the string representation
4656func (s DescribeImageScanFindingsOutput) GoString() string {
4657	return s.String()
4658}
4659
4660// SetImageId sets the ImageId field's value.
4661func (s *DescribeImageScanFindingsOutput) SetImageId(v *ImageIdentifier) *DescribeImageScanFindingsOutput {
4662	s.ImageId = v
4663	return s
4664}
4665
4666// SetImageScanFindings sets the ImageScanFindings field's value.
4667func (s *DescribeImageScanFindingsOutput) SetImageScanFindings(v *ImageScanFindings) *DescribeImageScanFindingsOutput {
4668	s.ImageScanFindings = v
4669	return s
4670}
4671
4672// SetImageScanStatus sets the ImageScanStatus field's value.
4673func (s *DescribeImageScanFindingsOutput) SetImageScanStatus(v *ImageScanStatus) *DescribeImageScanFindingsOutput {
4674	s.ImageScanStatus = v
4675	return s
4676}
4677
4678// SetNextToken sets the NextToken field's value.
4679func (s *DescribeImageScanFindingsOutput) SetNextToken(v string) *DescribeImageScanFindingsOutput {
4680	s.NextToken = &v
4681	return s
4682}
4683
4684// SetRegistryId sets the RegistryId field's value.
4685func (s *DescribeImageScanFindingsOutput) SetRegistryId(v string) *DescribeImageScanFindingsOutput {
4686	s.RegistryId = &v
4687	return s
4688}
4689
4690// SetRepositoryName sets the RepositoryName field's value.
4691func (s *DescribeImageScanFindingsOutput) SetRepositoryName(v string) *DescribeImageScanFindingsOutput {
4692	s.RepositoryName = &v
4693	return s
4694}
4695
4696// An object representing a filter on a DescribeImages operation.
4697type DescribeImagesFilter struct {
4698	_ struct{} `type:"structure"`
4699
4700	// The tag status with which to filter your DescribeImages results. You can
4701	// filter results based on whether they are TAGGED or UNTAGGED.
4702	TagStatus *string `locationName:"tagStatus" type:"string" enum:"TagStatus"`
4703}
4704
4705// String returns the string representation
4706func (s DescribeImagesFilter) String() string {
4707	return awsutil.Prettify(s)
4708}
4709
4710// GoString returns the string representation
4711func (s DescribeImagesFilter) GoString() string {
4712	return s.String()
4713}
4714
4715// SetTagStatus sets the TagStatus field's value.
4716func (s *DescribeImagesFilter) SetTagStatus(v string) *DescribeImagesFilter {
4717	s.TagStatus = &v
4718	return s
4719}
4720
4721type DescribeImagesInput struct {
4722	_ struct{} `type:"structure"`
4723
4724	// The filter key and value with which to filter your DescribeImages results.
4725	Filter *DescribeImagesFilter `locationName:"filter" type:"structure"`
4726
4727	// The list of image IDs for the requested repository.
4728	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list"`
4729
4730	// The maximum number of repository results returned by DescribeImages in paginated
4731	// output. When this parameter is used, DescribeImages only returns maxResults
4732	// results in a single page along with a nextToken response element. The remaining
4733	// results of the initial request can be seen by sending another DescribeImages
4734	// request with the returned nextToken value. This value can be between 1 and
4735	// 1000. If this parameter is not used, then DescribeImages returns up to 100
4736	// results and a nextToken value, if applicable. This option cannot be used
4737	// when you specify images with imageIds.
4738	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
4739
4740	// The nextToken value returned from a previous paginated DescribeImages request
4741	// where maxResults was used and the results exceeded the value of that parameter.
4742	// Pagination continues from the end of the previous results that returned the
4743	// nextToken value. This value is null when there are no more results to return.
4744	// This option cannot be used when you specify images with imageIds.
4745	NextToken *string `locationName:"nextToken" type:"string"`
4746
4747	// The AWS account ID associated with the registry that contains the repository
4748	// in which to describe images. If you do not specify a registry, the default
4749	// registry is assumed.
4750	RegistryId *string `locationName:"registryId" type:"string"`
4751
4752	// The repository that contains the images to describe.
4753	//
4754	// RepositoryName is a required field
4755	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4756}
4757
4758// String returns the string representation
4759func (s DescribeImagesInput) String() string {
4760	return awsutil.Prettify(s)
4761}
4762
4763// GoString returns the string representation
4764func (s DescribeImagesInput) GoString() string {
4765	return s.String()
4766}
4767
4768// Validate inspects the fields of the type to determine if they are valid.
4769func (s *DescribeImagesInput) Validate() error {
4770	invalidParams := request.ErrInvalidParams{Context: "DescribeImagesInput"}
4771	if s.ImageIds != nil && len(s.ImageIds) < 1 {
4772		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
4773	}
4774	if s.MaxResults != nil && *s.MaxResults < 1 {
4775		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4776	}
4777	if s.RepositoryName == nil {
4778		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4779	}
4780	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4781		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4782	}
4783	if s.ImageIds != nil {
4784		for i, v := range s.ImageIds {
4785			if v == nil {
4786				continue
4787			}
4788			if err := v.Validate(); err != nil {
4789				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ImageIds", i), err.(request.ErrInvalidParams))
4790			}
4791		}
4792	}
4793
4794	if invalidParams.Len() > 0 {
4795		return invalidParams
4796	}
4797	return nil
4798}
4799
4800// SetFilter sets the Filter field's value.
4801func (s *DescribeImagesInput) SetFilter(v *DescribeImagesFilter) *DescribeImagesInput {
4802	s.Filter = v
4803	return s
4804}
4805
4806// SetImageIds sets the ImageIds field's value.
4807func (s *DescribeImagesInput) SetImageIds(v []*ImageIdentifier) *DescribeImagesInput {
4808	s.ImageIds = v
4809	return s
4810}
4811
4812// SetMaxResults sets the MaxResults field's value.
4813func (s *DescribeImagesInput) SetMaxResults(v int64) *DescribeImagesInput {
4814	s.MaxResults = &v
4815	return s
4816}
4817
4818// SetNextToken sets the NextToken field's value.
4819func (s *DescribeImagesInput) SetNextToken(v string) *DescribeImagesInput {
4820	s.NextToken = &v
4821	return s
4822}
4823
4824// SetRegistryId sets the RegistryId field's value.
4825func (s *DescribeImagesInput) SetRegistryId(v string) *DescribeImagesInput {
4826	s.RegistryId = &v
4827	return s
4828}
4829
4830// SetRepositoryName sets the RepositoryName field's value.
4831func (s *DescribeImagesInput) SetRepositoryName(v string) *DescribeImagesInput {
4832	s.RepositoryName = &v
4833	return s
4834}
4835
4836type DescribeImagesOutput struct {
4837	_ struct{} `type:"structure"`
4838
4839	// A list of ImageDetail objects that contain data about the image.
4840	ImageDetails []*ImageDetail `locationName:"imageDetails" type:"list"`
4841
4842	// The nextToken value to include in a future DescribeImages request. When the
4843	// results of a DescribeImages request exceed maxResults, this value can be
4844	// used to retrieve the next page of results. This value is null when there
4845	// are no more results to return.
4846	NextToken *string `locationName:"nextToken" type:"string"`
4847}
4848
4849// String returns the string representation
4850func (s DescribeImagesOutput) String() string {
4851	return awsutil.Prettify(s)
4852}
4853
4854// GoString returns the string representation
4855func (s DescribeImagesOutput) GoString() string {
4856	return s.String()
4857}
4858
4859// SetImageDetails sets the ImageDetails field's value.
4860func (s *DescribeImagesOutput) SetImageDetails(v []*ImageDetail) *DescribeImagesOutput {
4861	s.ImageDetails = v
4862	return s
4863}
4864
4865// SetNextToken sets the NextToken field's value.
4866func (s *DescribeImagesOutput) SetNextToken(v string) *DescribeImagesOutput {
4867	s.NextToken = &v
4868	return s
4869}
4870
4871type DescribeRegistryInput struct {
4872	_ struct{} `type:"structure"`
4873}
4874
4875// String returns the string representation
4876func (s DescribeRegistryInput) String() string {
4877	return awsutil.Prettify(s)
4878}
4879
4880// GoString returns the string representation
4881func (s DescribeRegistryInput) GoString() string {
4882	return s.String()
4883}
4884
4885type DescribeRegistryOutput struct {
4886	_ struct{} `type:"structure"`
4887
4888	// The ID of the registry.
4889	RegistryId *string `locationName:"registryId" type:"string"`
4890
4891	// The replication configuration for the registry.
4892	ReplicationConfiguration *ReplicationConfiguration `locationName:"replicationConfiguration" type:"structure"`
4893}
4894
4895// String returns the string representation
4896func (s DescribeRegistryOutput) String() string {
4897	return awsutil.Prettify(s)
4898}
4899
4900// GoString returns the string representation
4901func (s DescribeRegistryOutput) GoString() string {
4902	return s.String()
4903}
4904
4905// SetRegistryId sets the RegistryId field's value.
4906func (s *DescribeRegistryOutput) SetRegistryId(v string) *DescribeRegistryOutput {
4907	s.RegistryId = &v
4908	return s
4909}
4910
4911// SetReplicationConfiguration sets the ReplicationConfiguration field's value.
4912func (s *DescribeRegistryOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *DescribeRegistryOutput {
4913	s.ReplicationConfiguration = v
4914	return s
4915}
4916
4917type DescribeRepositoriesInput struct {
4918	_ struct{} `type:"structure"`
4919
4920	// The maximum number of repository results returned by DescribeRepositories
4921	// in paginated output. When this parameter is used, DescribeRepositories only
4922	// returns maxResults results in a single page along with a nextToken response
4923	// element. The remaining results of the initial request can be seen by sending
4924	// another DescribeRepositories request with the returned nextToken value. This
4925	// value can be between 1 and 1000. If this parameter is not used, then DescribeRepositories
4926	// returns up to 100 results and a nextToken value, if applicable. This option
4927	// cannot be used when you specify repositories with repositoryNames.
4928	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
4929
4930	// The nextToken value returned from a previous paginated DescribeRepositories
4931	// request where maxResults was used and the results exceeded the value of that
4932	// parameter. Pagination continues from the end of the previous results that
4933	// returned the nextToken value. This value is null when there are no more results
4934	// to return. This option cannot be used when you specify repositories with
4935	// repositoryNames.
4936	//
4937	// This token should be treated as an opaque identifier that is only used to
4938	// retrieve the next items in a list and not for other programmatic purposes.
4939	NextToken *string `locationName:"nextToken" type:"string"`
4940
4941	// The AWS account ID associated with the registry that contains the repositories
4942	// to be described. If you do not specify a registry, the default registry is
4943	// assumed.
4944	RegistryId *string `locationName:"registryId" type:"string"`
4945
4946	// A list of repositories to describe. If this parameter is omitted, then all
4947	// repositories in a registry are described.
4948	RepositoryNames []*string `locationName:"repositoryNames" min:"1" type:"list"`
4949}
4950
4951// String returns the string representation
4952func (s DescribeRepositoriesInput) String() string {
4953	return awsutil.Prettify(s)
4954}
4955
4956// GoString returns the string representation
4957func (s DescribeRepositoriesInput) GoString() string {
4958	return s.String()
4959}
4960
4961// Validate inspects the fields of the type to determine if they are valid.
4962func (s *DescribeRepositoriesInput) Validate() error {
4963	invalidParams := request.ErrInvalidParams{Context: "DescribeRepositoriesInput"}
4964	if s.MaxResults != nil && *s.MaxResults < 1 {
4965		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4966	}
4967	if s.RepositoryNames != nil && len(s.RepositoryNames) < 1 {
4968		invalidParams.Add(request.NewErrParamMinLen("RepositoryNames", 1))
4969	}
4970
4971	if invalidParams.Len() > 0 {
4972		return invalidParams
4973	}
4974	return nil
4975}
4976
4977// SetMaxResults sets the MaxResults field's value.
4978func (s *DescribeRepositoriesInput) SetMaxResults(v int64) *DescribeRepositoriesInput {
4979	s.MaxResults = &v
4980	return s
4981}
4982
4983// SetNextToken sets the NextToken field's value.
4984func (s *DescribeRepositoriesInput) SetNextToken(v string) *DescribeRepositoriesInput {
4985	s.NextToken = &v
4986	return s
4987}
4988
4989// SetRegistryId sets the RegistryId field's value.
4990func (s *DescribeRepositoriesInput) SetRegistryId(v string) *DescribeRepositoriesInput {
4991	s.RegistryId = &v
4992	return s
4993}
4994
4995// SetRepositoryNames sets the RepositoryNames field's value.
4996func (s *DescribeRepositoriesInput) SetRepositoryNames(v []*string) *DescribeRepositoriesInput {
4997	s.RepositoryNames = v
4998	return s
4999}
5000
5001type DescribeRepositoriesOutput struct {
5002	_ struct{} `type:"structure"`
5003
5004	// The nextToken value to include in a future DescribeRepositories request.
5005	// When the results of a DescribeRepositories request exceed maxResults, this
5006	// value can be used to retrieve the next page of results. This value is null
5007	// when there are no more results to return.
5008	NextToken *string `locationName:"nextToken" type:"string"`
5009
5010	// A list of repository objects corresponding to valid repositories.
5011	Repositories []*Repository `locationName:"repositories" type:"list"`
5012}
5013
5014// String returns the string representation
5015func (s DescribeRepositoriesOutput) String() string {
5016	return awsutil.Prettify(s)
5017}
5018
5019// GoString returns the string representation
5020func (s DescribeRepositoriesOutput) GoString() string {
5021	return s.String()
5022}
5023
5024// SetNextToken sets the NextToken field's value.
5025func (s *DescribeRepositoriesOutput) SetNextToken(v string) *DescribeRepositoriesOutput {
5026	s.NextToken = &v
5027	return s
5028}
5029
5030// SetRepositories sets the Repositories field's value.
5031func (s *DescribeRepositoriesOutput) SetRepositories(v []*Repository) *DescribeRepositoriesOutput {
5032	s.Repositories = v
5033	return s
5034}
5035
5036// The specified layer upload does not contain any layer parts.
5037type EmptyUploadException struct {
5038	_            struct{}                  `type:"structure"`
5039	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5040
5041	// The error message associated with the exception.
5042	Message_ *string `locationName:"message" type:"string"`
5043}
5044
5045// String returns the string representation
5046func (s EmptyUploadException) String() string {
5047	return awsutil.Prettify(s)
5048}
5049
5050// GoString returns the string representation
5051func (s EmptyUploadException) GoString() string {
5052	return s.String()
5053}
5054
5055func newErrorEmptyUploadException(v protocol.ResponseMetadata) error {
5056	return &EmptyUploadException{
5057		RespMetadata: v,
5058	}
5059}
5060
5061// Code returns the exception type name.
5062func (s *EmptyUploadException) Code() string {
5063	return "EmptyUploadException"
5064}
5065
5066// Message returns the exception's message.
5067func (s *EmptyUploadException) Message() string {
5068	if s.Message_ != nil {
5069		return *s.Message_
5070	}
5071	return ""
5072}
5073
5074// OrigErr always returns nil, satisfies awserr.Error interface.
5075func (s *EmptyUploadException) OrigErr() error {
5076	return nil
5077}
5078
5079func (s *EmptyUploadException) Error() string {
5080	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5081}
5082
5083// Status code returns the HTTP status code for the request's response error.
5084func (s *EmptyUploadException) StatusCode() int {
5085	return s.RespMetadata.StatusCode
5086}
5087
5088// RequestID returns the service's response RequestID for request.
5089func (s *EmptyUploadException) RequestID() string {
5090	return s.RespMetadata.RequestID
5091}
5092
5093// The encryption configuration for the repository. This determines how the
5094// contents of your repository are encrypted at rest.
5095//
5096// By default, when no encryption configuration is set or the AES256 encryption
5097// type is used, Amazon ECR uses server-side encryption with Amazon S3-managed
5098// encryption keys which encrypts your data at rest using an AES-256 encryption
5099// algorithm. This does not require any action on your part.
5100//
5101// For more control over the encryption of the contents of your repository,
5102// you can use server-side encryption with customer master keys (CMKs) stored
5103// in AWS Key Management Service (AWS KMS) to encrypt your images. For more
5104// information, see Amazon ECR encryption at rest (https://docs.aws.amazon.com/AmazonECR/latest/userguide/encryption-at-rest.html)
5105// in the Amazon Elastic Container Registry User Guide.
5106type EncryptionConfiguration struct {
5107	_ struct{} `type:"structure"`
5108
5109	// The encryption type to use.
5110	//
5111	// If you use the KMS encryption type, the contents of the repository will be
5112	// encrypted using server-side encryption with customer master keys (CMKs) stored
5113	// in AWS KMS. When you use AWS KMS to encrypt your data, you can either use
5114	// the default AWS managed CMK for Amazon ECR, or specify your own CMK, which
5115	// you already created. For more information, see Protecting Data Using Server-Side
5116	// Encryption with CMKs Stored in AWS Key Management Service (SSE-KMS) (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html)
5117	// in the Amazon Simple Storage Service Console Developer Guide..
5118	//
5119	// If you use the AES256 encryption type, Amazon ECR uses server-side encryption
5120	// with Amazon S3-managed encryption keys which encrypts the images in the repository
5121	// using an AES-256 encryption algorithm. For more information, see Protecting
5122	// Data Using Server-Side Encryption with Amazon S3-Managed Encryption Keys
5123	// (SSE-S3) (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html)
5124	// in the Amazon Simple Storage Service Console Developer Guide..
5125	//
5126	// EncryptionType is a required field
5127	EncryptionType *string `locationName:"encryptionType" type:"string" required:"true" enum:"EncryptionType"`
5128
5129	// If you use the KMS encryption type, specify the CMK to use for encryption.
5130	// The alias, key ID, or full ARN of the CMK can be specified. The key must
5131	// exist in the same Region as the repository. If no key is specified, the default
5132	// AWS managed CMK for Amazon ECR will be used.
5133	KmsKey *string `locationName:"kmsKey" min:"1" type:"string"`
5134}
5135
5136// String returns the string representation
5137func (s EncryptionConfiguration) String() string {
5138	return awsutil.Prettify(s)
5139}
5140
5141// GoString returns the string representation
5142func (s EncryptionConfiguration) GoString() string {
5143	return s.String()
5144}
5145
5146// Validate inspects the fields of the type to determine if they are valid.
5147func (s *EncryptionConfiguration) Validate() error {
5148	invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"}
5149	if s.EncryptionType == nil {
5150		invalidParams.Add(request.NewErrParamRequired("EncryptionType"))
5151	}
5152	if s.KmsKey != nil && len(*s.KmsKey) < 1 {
5153		invalidParams.Add(request.NewErrParamMinLen("KmsKey", 1))
5154	}
5155
5156	if invalidParams.Len() > 0 {
5157		return invalidParams
5158	}
5159	return nil
5160}
5161
5162// SetEncryptionType sets the EncryptionType field's value.
5163func (s *EncryptionConfiguration) SetEncryptionType(v string) *EncryptionConfiguration {
5164	s.EncryptionType = &v
5165	return s
5166}
5167
5168// SetKmsKey sets the KmsKey field's value.
5169func (s *EncryptionConfiguration) SetKmsKey(v string) *EncryptionConfiguration {
5170	s.KmsKey = &v
5171	return s
5172}
5173
5174type GetAuthorizationTokenInput struct {
5175	_ struct{} `type:"structure"`
5176
5177	// A list of AWS account IDs that are associated with the registries for which
5178	// to get AuthorizationData objects. If you do not specify a registry, the default
5179	// registry is assumed.
5180	//
5181	// Deprecated: This field is deprecated. The returned authorization token can be used to access any Amazon ECR registry that the IAM principal has access to, specifying a registry ID doesn't change the permissions scope of the authorization token.
5182	RegistryIds []*string `locationName:"registryIds" min:"1" deprecated:"true" type:"list"`
5183}
5184
5185// String returns the string representation
5186func (s GetAuthorizationTokenInput) String() string {
5187	return awsutil.Prettify(s)
5188}
5189
5190// GoString returns the string representation
5191func (s GetAuthorizationTokenInput) GoString() string {
5192	return s.String()
5193}
5194
5195// Validate inspects the fields of the type to determine if they are valid.
5196func (s *GetAuthorizationTokenInput) Validate() error {
5197	invalidParams := request.ErrInvalidParams{Context: "GetAuthorizationTokenInput"}
5198	if s.RegistryIds != nil && len(s.RegistryIds) < 1 {
5199		invalidParams.Add(request.NewErrParamMinLen("RegistryIds", 1))
5200	}
5201
5202	if invalidParams.Len() > 0 {
5203		return invalidParams
5204	}
5205	return nil
5206}
5207
5208// SetRegistryIds sets the RegistryIds field's value.
5209func (s *GetAuthorizationTokenInput) SetRegistryIds(v []*string) *GetAuthorizationTokenInput {
5210	s.RegistryIds = v
5211	return s
5212}
5213
5214type GetAuthorizationTokenOutput struct {
5215	_ struct{} `type:"structure"`
5216
5217	// A list of authorization token data objects that correspond to the registryIds
5218	// values in the request.
5219	AuthorizationData []*AuthorizationData `locationName:"authorizationData" type:"list"`
5220}
5221
5222// String returns the string representation
5223func (s GetAuthorizationTokenOutput) String() string {
5224	return awsutil.Prettify(s)
5225}
5226
5227// GoString returns the string representation
5228func (s GetAuthorizationTokenOutput) GoString() string {
5229	return s.String()
5230}
5231
5232// SetAuthorizationData sets the AuthorizationData field's value.
5233func (s *GetAuthorizationTokenOutput) SetAuthorizationData(v []*AuthorizationData) *GetAuthorizationTokenOutput {
5234	s.AuthorizationData = v
5235	return s
5236}
5237
5238type GetDownloadUrlForLayerInput struct {
5239	_ struct{} `type:"structure"`
5240
5241	// The digest of the image layer to download.
5242	//
5243	// LayerDigest is a required field
5244	LayerDigest *string `locationName:"layerDigest" type:"string" required:"true"`
5245
5246	// The AWS account ID associated with the registry that contains the image layer
5247	// to download. If you do not specify a registry, the default registry is assumed.
5248	RegistryId *string `locationName:"registryId" type:"string"`
5249
5250	// The name of the repository that is associated with the image layer to download.
5251	//
5252	// RepositoryName is a required field
5253	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
5254}
5255
5256// String returns the string representation
5257func (s GetDownloadUrlForLayerInput) String() string {
5258	return awsutil.Prettify(s)
5259}
5260
5261// GoString returns the string representation
5262func (s GetDownloadUrlForLayerInput) GoString() string {
5263	return s.String()
5264}
5265
5266// Validate inspects the fields of the type to determine if they are valid.
5267func (s *GetDownloadUrlForLayerInput) Validate() error {
5268	invalidParams := request.ErrInvalidParams{Context: "GetDownloadUrlForLayerInput"}
5269	if s.LayerDigest == nil {
5270		invalidParams.Add(request.NewErrParamRequired("LayerDigest"))
5271	}
5272	if s.RepositoryName == nil {
5273		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
5274	}
5275	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
5276		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
5277	}
5278
5279	if invalidParams.Len() > 0 {
5280		return invalidParams
5281	}
5282	return nil
5283}
5284
5285// SetLayerDigest sets the LayerDigest field's value.
5286func (s *GetDownloadUrlForLayerInput) SetLayerDigest(v string) *GetDownloadUrlForLayerInput {
5287	s.LayerDigest = &v
5288	return s
5289}
5290
5291// SetRegistryId sets the RegistryId field's value.
5292func (s *GetDownloadUrlForLayerInput) SetRegistryId(v string) *GetDownloadUrlForLayerInput {
5293	s.RegistryId = &v
5294	return s
5295}
5296
5297// SetRepositoryName sets the RepositoryName field's value.
5298func (s *GetDownloadUrlForLayerInput) SetRepositoryName(v string) *GetDownloadUrlForLayerInput {
5299	s.RepositoryName = &v
5300	return s
5301}
5302
5303type GetDownloadUrlForLayerOutput struct {
5304	_ struct{} `type:"structure"`
5305
5306	// The pre-signed Amazon S3 download URL for the requested layer.
5307	DownloadUrl *string `locationName:"downloadUrl" type:"string"`
5308
5309	// The digest of the image layer to download.
5310	LayerDigest *string `locationName:"layerDigest" type:"string"`
5311}
5312
5313// String returns the string representation
5314func (s GetDownloadUrlForLayerOutput) String() string {
5315	return awsutil.Prettify(s)
5316}
5317
5318// GoString returns the string representation
5319func (s GetDownloadUrlForLayerOutput) GoString() string {
5320	return s.String()
5321}
5322
5323// SetDownloadUrl sets the DownloadUrl field's value.
5324func (s *GetDownloadUrlForLayerOutput) SetDownloadUrl(v string) *GetDownloadUrlForLayerOutput {
5325	s.DownloadUrl = &v
5326	return s
5327}
5328
5329// SetLayerDigest sets the LayerDigest field's value.
5330func (s *GetDownloadUrlForLayerOutput) SetLayerDigest(v string) *GetDownloadUrlForLayerOutput {
5331	s.LayerDigest = &v
5332	return s
5333}
5334
5335type GetLifecyclePolicyInput struct {
5336	_ struct{} `type:"structure"`
5337
5338	// The AWS account ID associated with the registry that contains the repository.
5339	// If you do not specify a registry, the default registry is assumed.
5340	RegistryId *string `locationName:"registryId" type:"string"`
5341
5342	// The name of the repository.
5343	//
5344	// RepositoryName is a required field
5345	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
5346}
5347
5348// String returns the string representation
5349func (s GetLifecyclePolicyInput) String() string {
5350	return awsutil.Prettify(s)
5351}
5352
5353// GoString returns the string representation
5354func (s GetLifecyclePolicyInput) GoString() string {
5355	return s.String()
5356}
5357
5358// Validate inspects the fields of the type to determine if they are valid.
5359func (s *GetLifecyclePolicyInput) Validate() error {
5360	invalidParams := request.ErrInvalidParams{Context: "GetLifecyclePolicyInput"}
5361	if s.RepositoryName == nil {
5362		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
5363	}
5364	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
5365		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
5366	}
5367
5368	if invalidParams.Len() > 0 {
5369		return invalidParams
5370	}
5371	return nil
5372}
5373
5374// SetRegistryId sets the RegistryId field's value.
5375func (s *GetLifecyclePolicyInput) SetRegistryId(v string) *GetLifecyclePolicyInput {
5376	s.RegistryId = &v
5377	return s
5378}
5379
5380// SetRepositoryName sets the RepositoryName field's value.
5381func (s *GetLifecyclePolicyInput) SetRepositoryName(v string) *GetLifecyclePolicyInput {
5382	s.RepositoryName = &v
5383	return s
5384}
5385
5386type GetLifecyclePolicyOutput struct {
5387	_ struct{} `type:"structure"`
5388
5389	// The time stamp of the last time that the lifecycle policy was run.
5390	LastEvaluatedAt *time.Time `locationName:"lastEvaluatedAt" type:"timestamp"`
5391
5392	// The JSON lifecycle policy text.
5393	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string"`
5394
5395	// The registry ID associated with the request.
5396	RegistryId *string `locationName:"registryId" type:"string"`
5397
5398	// The repository name associated with the request.
5399	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
5400}
5401
5402// String returns the string representation
5403func (s GetLifecyclePolicyOutput) String() string {
5404	return awsutil.Prettify(s)
5405}
5406
5407// GoString returns the string representation
5408func (s GetLifecyclePolicyOutput) GoString() string {
5409	return s.String()
5410}
5411
5412// SetLastEvaluatedAt sets the LastEvaluatedAt field's value.
5413func (s *GetLifecyclePolicyOutput) SetLastEvaluatedAt(v time.Time) *GetLifecyclePolicyOutput {
5414	s.LastEvaluatedAt = &v
5415	return s
5416}
5417
5418// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
5419func (s *GetLifecyclePolicyOutput) SetLifecyclePolicyText(v string) *GetLifecyclePolicyOutput {
5420	s.LifecyclePolicyText = &v
5421	return s
5422}
5423
5424// SetRegistryId sets the RegistryId field's value.
5425func (s *GetLifecyclePolicyOutput) SetRegistryId(v string) *GetLifecyclePolicyOutput {
5426	s.RegistryId = &v
5427	return s
5428}
5429
5430// SetRepositoryName sets the RepositoryName field's value.
5431func (s *GetLifecyclePolicyOutput) SetRepositoryName(v string) *GetLifecyclePolicyOutput {
5432	s.RepositoryName = &v
5433	return s
5434}
5435
5436type GetLifecyclePolicyPreviewInput struct {
5437	_ struct{} `type:"structure"`
5438
5439	// An optional parameter that filters results based on image tag status and
5440	// all tags, if tagged.
5441	Filter *LifecyclePolicyPreviewFilter `locationName:"filter" type:"structure"`
5442
5443	// The list of imageIDs to be included.
5444	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list"`
5445
5446	// The maximum number of repository results returned by GetLifecyclePolicyPreviewRequest
5447	// in paginated output. When this parameter is used, GetLifecyclePolicyPreviewRequest
5448	// only returns maxResults results in a single page along with a nextToken response
5449	// element. The remaining results of the initial request can be seen by sending
5450	// another GetLifecyclePolicyPreviewRequest request with the returned nextToken
5451	// value. This value can be between 1 and 1000. If this parameter is not used,
5452	// then GetLifecyclePolicyPreviewRequest returns up to 100 results and a nextToken
5453	// value, if applicable. This option cannot be used when you specify images
5454	// with imageIds.
5455	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
5456
5457	// The nextToken value returned from a previous paginated GetLifecyclePolicyPreviewRequest
5458	// request where maxResults was used and the results exceeded the value of that
5459	// parameter. Pagination continues from the end of the previous results that
5460	// returned the nextToken value. This value is null when there are no more results
5461	// to return. This option cannot be used when you specify images with imageIds.
5462	NextToken *string `locationName:"nextToken" type:"string"`
5463
5464	// The AWS account ID associated with the registry that contains the repository.
5465	// If you do not specify a registry, the default registry is assumed.
5466	RegistryId *string `locationName:"registryId" type:"string"`
5467
5468	// The name of the repository.
5469	//
5470	// RepositoryName is a required field
5471	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
5472}
5473
5474// String returns the string representation
5475func (s GetLifecyclePolicyPreviewInput) String() string {
5476	return awsutil.Prettify(s)
5477}
5478
5479// GoString returns the string representation
5480func (s GetLifecyclePolicyPreviewInput) GoString() string {
5481	return s.String()
5482}
5483
5484// Validate inspects the fields of the type to determine if they are valid.
5485func (s *GetLifecyclePolicyPreviewInput) Validate() error {
5486	invalidParams := request.ErrInvalidParams{Context: "GetLifecyclePolicyPreviewInput"}
5487	if s.ImageIds != nil && len(s.ImageIds) < 1 {
5488		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
5489	}
5490	if s.MaxResults != nil && *s.MaxResults < 1 {
5491		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5492	}
5493	if s.RepositoryName == nil {
5494		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
5495	}
5496	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
5497		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
5498	}
5499	if s.ImageIds != nil {
5500		for i, v := range s.ImageIds {
5501			if v == nil {
5502				continue
5503			}
5504			if err := v.Validate(); err != nil {
5505				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ImageIds", i), err.(request.ErrInvalidParams))
5506			}
5507		}
5508	}
5509
5510	if invalidParams.Len() > 0 {
5511		return invalidParams
5512	}
5513	return nil
5514}
5515
5516// SetFilter sets the Filter field's value.
5517func (s *GetLifecyclePolicyPreviewInput) SetFilter(v *LifecyclePolicyPreviewFilter) *GetLifecyclePolicyPreviewInput {
5518	s.Filter = v
5519	return s
5520}
5521
5522// SetImageIds sets the ImageIds field's value.
5523func (s *GetLifecyclePolicyPreviewInput) SetImageIds(v []*ImageIdentifier) *GetLifecyclePolicyPreviewInput {
5524	s.ImageIds = v
5525	return s
5526}
5527
5528// SetMaxResults sets the MaxResults field's value.
5529func (s *GetLifecyclePolicyPreviewInput) SetMaxResults(v int64) *GetLifecyclePolicyPreviewInput {
5530	s.MaxResults = &v
5531	return s
5532}
5533
5534// SetNextToken sets the NextToken field's value.
5535func (s *GetLifecyclePolicyPreviewInput) SetNextToken(v string) *GetLifecyclePolicyPreviewInput {
5536	s.NextToken = &v
5537	return s
5538}
5539
5540// SetRegistryId sets the RegistryId field's value.
5541func (s *GetLifecyclePolicyPreviewInput) SetRegistryId(v string) *GetLifecyclePolicyPreviewInput {
5542	s.RegistryId = &v
5543	return s
5544}
5545
5546// SetRepositoryName sets the RepositoryName field's value.
5547func (s *GetLifecyclePolicyPreviewInput) SetRepositoryName(v string) *GetLifecyclePolicyPreviewInput {
5548	s.RepositoryName = &v
5549	return s
5550}
5551
5552type GetLifecyclePolicyPreviewOutput struct {
5553	_ struct{} `type:"structure"`
5554
5555	// The JSON lifecycle policy text.
5556	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string"`
5557
5558	// The nextToken value to include in a future GetLifecyclePolicyPreview request.
5559	// When the results of a GetLifecyclePolicyPreview request exceed maxResults,
5560	// this value can be used to retrieve the next page of results. This value is
5561	// null when there are no more results to return.
5562	NextToken *string `locationName:"nextToken" type:"string"`
5563
5564	// The results of the lifecycle policy preview request.
5565	PreviewResults []*LifecyclePolicyPreviewResult `locationName:"previewResults" type:"list"`
5566
5567	// The registry ID associated with the request.
5568	RegistryId *string `locationName:"registryId" type:"string"`
5569
5570	// The repository name associated with the request.
5571	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
5572
5573	// The status of the lifecycle policy preview request.
5574	Status *string `locationName:"status" type:"string" enum:"LifecyclePolicyPreviewStatus"`
5575
5576	// The list of images that is returned as a result of the action.
5577	Summary *LifecyclePolicyPreviewSummary `locationName:"summary" type:"structure"`
5578}
5579
5580// String returns the string representation
5581func (s GetLifecyclePolicyPreviewOutput) String() string {
5582	return awsutil.Prettify(s)
5583}
5584
5585// GoString returns the string representation
5586func (s GetLifecyclePolicyPreviewOutput) GoString() string {
5587	return s.String()
5588}
5589
5590// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
5591func (s *GetLifecyclePolicyPreviewOutput) SetLifecyclePolicyText(v string) *GetLifecyclePolicyPreviewOutput {
5592	s.LifecyclePolicyText = &v
5593	return s
5594}
5595
5596// SetNextToken sets the NextToken field's value.
5597func (s *GetLifecyclePolicyPreviewOutput) SetNextToken(v string) *GetLifecyclePolicyPreviewOutput {
5598	s.NextToken = &v
5599	return s
5600}
5601
5602// SetPreviewResults sets the PreviewResults field's value.
5603func (s *GetLifecyclePolicyPreviewOutput) SetPreviewResults(v []*LifecyclePolicyPreviewResult) *GetLifecyclePolicyPreviewOutput {
5604	s.PreviewResults = v
5605	return s
5606}
5607
5608// SetRegistryId sets the RegistryId field's value.
5609func (s *GetLifecyclePolicyPreviewOutput) SetRegistryId(v string) *GetLifecyclePolicyPreviewOutput {
5610	s.RegistryId = &v
5611	return s
5612}
5613
5614// SetRepositoryName sets the RepositoryName field's value.
5615func (s *GetLifecyclePolicyPreviewOutput) SetRepositoryName(v string) *GetLifecyclePolicyPreviewOutput {
5616	s.RepositoryName = &v
5617	return s
5618}
5619
5620// SetStatus sets the Status field's value.
5621func (s *GetLifecyclePolicyPreviewOutput) SetStatus(v string) *GetLifecyclePolicyPreviewOutput {
5622	s.Status = &v
5623	return s
5624}
5625
5626// SetSummary sets the Summary field's value.
5627func (s *GetLifecyclePolicyPreviewOutput) SetSummary(v *LifecyclePolicyPreviewSummary) *GetLifecyclePolicyPreviewOutput {
5628	s.Summary = v
5629	return s
5630}
5631
5632type GetRegistryPolicyInput struct {
5633	_ struct{} `type:"structure"`
5634}
5635
5636// String returns the string representation
5637func (s GetRegistryPolicyInput) String() string {
5638	return awsutil.Prettify(s)
5639}
5640
5641// GoString returns the string representation
5642func (s GetRegistryPolicyInput) GoString() string {
5643	return s.String()
5644}
5645
5646type GetRegistryPolicyOutput struct {
5647	_ struct{} `type:"structure"`
5648
5649	// The JSON text of the permissions policy for a registry.
5650	PolicyText *string `locationName:"policyText" type:"string"`
5651
5652	// The ID of the registry.
5653	RegistryId *string `locationName:"registryId" type:"string"`
5654}
5655
5656// String returns the string representation
5657func (s GetRegistryPolicyOutput) String() string {
5658	return awsutil.Prettify(s)
5659}
5660
5661// GoString returns the string representation
5662func (s GetRegistryPolicyOutput) GoString() string {
5663	return s.String()
5664}
5665
5666// SetPolicyText sets the PolicyText field's value.
5667func (s *GetRegistryPolicyOutput) SetPolicyText(v string) *GetRegistryPolicyOutput {
5668	s.PolicyText = &v
5669	return s
5670}
5671
5672// SetRegistryId sets the RegistryId field's value.
5673func (s *GetRegistryPolicyOutput) SetRegistryId(v string) *GetRegistryPolicyOutput {
5674	s.RegistryId = &v
5675	return s
5676}
5677
5678type GetRepositoryPolicyInput struct {
5679	_ struct{} `type:"structure"`
5680
5681	// The AWS account ID associated with the registry that contains the repository.
5682	// If you do not specify a registry, the default registry is assumed.
5683	RegistryId *string `locationName:"registryId" type:"string"`
5684
5685	// The name of the repository with the policy to retrieve.
5686	//
5687	// RepositoryName is a required field
5688	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
5689}
5690
5691// String returns the string representation
5692func (s GetRepositoryPolicyInput) String() string {
5693	return awsutil.Prettify(s)
5694}
5695
5696// GoString returns the string representation
5697func (s GetRepositoryPolicyInput) GoString() string {
5698	return s.String()
5699}
5700
5701// Validate inspects the fields of the type to determine if they are valid.
5702func (s *GetRepositoryPolicyInput) Validate() error {
5703	invalidParams := request.ErrInvalidParams{Context: "GetRepositoryPolicyInput"}
5704	if s.RepositoryName == nil {
5705		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
5706	}
5707	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
5708		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
5709	}
5710
5711	if invalidParams.Len() > 0 {
5712		return invalidParams
5713	}
5714	return nil
5715}
5716
5717// SetRegistryId sets the RegistryId field's value.
5718func (s *GetRepositoryPolicyInput) SetRegistryId(v string) *GetRepositoryPolicyInput {
5719	s.RegistryId = &v
5720	return s
5721}
5722
5723// SetRepositoryName sets the RepositoryName field's value.
5724func (s *GetRepositoryPolicyInput) SetRepositoryName(v string) *GetRepositoryPolicyInput {
5725	s.RepositoryName = &v
5726	return s
5727}
5728
5729type GetRepositoryPolicyOutput struct {
5730	_ struct{} `type:"structure"`
5731
5732	// The JSON repository policy text associated with the repository.
5733	PolicyText *string `locationName:"policyText" type:"string"`
5734
5735	// The registry ID associated with the request.
5736	RegistryId *string `locationName:"registryId" type:"string"`
5737
5738	// The repository name associated with the request.
5739	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
5740}
5741
5742// String returns the string representation
5743func (s GetRepositoryPolicyOutput) String() string {
5744	return awsutil.Prettify(s)
5745}
5746
5747// GoString returns the string representation
5748func (s GetRepositoryPolicyOutput) GoString() string {
5749	return s.String()
5750}
5751
5752// SetPolicyText sets the PolicyText field's value.
5753func (s *GetRepositoryPolicyOutput) SetPolicyText(v string) *GetRepositoryPolicyOutput {
5754	s.PolicyText = &v
5755	return s
5756}
5757
5758// SetRegistryId sets the RegistryId field's value.
5759func (s *GetRepositoryPolicyOutput) SetRegistryId(v string) *GetRepositoryPolicyOutput {
5760	s.RegistryId = &v
5761	return s
5762}
5763
5764// SetRepositoryName sets the RepositoryName field's value.
5765func (s *GetRepositoryPolicyOutput) SetRepositoryName(v string) *GetRepositoryPolicyOutput {
5766	s.RepositoryName = &v
5767	return s
5768}
5769
5770// An object representing an Amazon ECR image.
5771type Image struct {
5772	_ struct{} `type:"structure"`
5773
5774	// An object containing the image tag and image digest associated with an image.
5775	ImageId *ImageIdentifier `locationName:"imageId" type:"structure"`
5776
5777	// The image manifest associated with the image.
5778	ImageManifest *string `locationName:"imageManifest" min:"1" type:"string"`
5779
5780	// The manifest media type of the image.
5781	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
5782
5783	// The AWS account ID associated with the registry containing the image.
5784	RegistryId *string `locationName:"registryId" type:"string"`
5785
5786	// The name of the repository associated with the image.
5787	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
5788}
5789
5790// String returns the string representation
5791func (s Image) String() string {
5792	return awsutil.Prettify(s)
5793}
5794
5795// GoString returns the string representation
5796func (s Image) GoString() string {
5797	return s.String()
5798}
5799
5800// SetImageId sets the ImageId field's value.
5801func (s *Image) SetImageId(v *ImageIdentifier) *Image {
5802	s.ImageId = v
5803	return s
5804}
5805
5806// SetImageManifest sets the ImageManifest field's value.
5807func (s *Image) SetImageManifest(v string) *Image {
5808	s.ImageManifest = &v
5809	return s
5810}
5811
5812// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
5813func (s *Image) SetImageManifestMediaType(v string) *Image {
5814	s.ImageManifestMediaType = &v
5815	return s
5816}
5817
5818// SetRegistryId sets the RegistryId field's value.
5819func (s *Image) SetRegistryId(v string) *Image {
5820	s.RegistryId = &v
5821	return s
5822}
5823
5824// SetRepositoryName sets the RepositoryName field's value.
5825func (s *Image) SetRepositoryName(v string) *Image {
5826	s.RepositoryName = &v
5827	return s
5828}
5829
5830// The specified image has already been pushed, and there were no changes to
5831// the manifest or image tag after the last push.
5832type ImageAlreadyExistsException struct {
5833	_            struct{}                  `type:"structure"`
5834	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5835
5836	// The error message associated with the exception.
5837	Message_ *string `locationName:"message" type:"string"`
5838}
5839
5840// String returns the string representation
5841func (s ImageAlreadyExistsException) String() string {
5842	return awsutil.Prettify(s)
5843}
5844
5845// GoString returns the string representation
5846func (s ImageAlreadyExistsException) GoString() string {
5847	return s.String()
5848}
5849
5850func newErrorImageAlreadyExistsException(v protocol.ResponseMetadata) error {
5851	return &ImageAlreadyExistsException{
5852		RespMetadata: v,
5853	}
5854}
5855
5856// Code returns the exception type name.
5857func (s *ImageAlreadyExistsException) Code() string {
5858	return "ImageAlreadyExistsException"
5859}
5860
5861// Message returns the exception's message.
5862func (s *ImageAlreadyExistsException) Message() string {
5863	if s.Message_ != nil {
5864		return *s.Message_
5865	}
5866	return ""
5867}
5868
5869// OrigErr always returns nil, satisfies awserr.Error interface.
5870func (s *ImageAlreadyExistsException) OrigErr() error {
5871	return nil
5872}
5873
5874func (s *ImageAlreadyExistsException) Error() string {
5875	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5876}
5877
5878// Status code returns the HTTP status code for the request's response error.
5879func (s *ImageAlreadyExistsException) StatusCode() int {
5880	return s.RespMetadata.StatusCode
5881}
5882
5883// RequestID returns the service's response RequestID for request.
5884func (s *ImageAlreadyExistsException) RequestID() string {
5885	return s.RespMetadata.RequestID
5886}
5887
5888// An object that describes an image returned by a DescribeImages operation.
5889type ImageDetail struct {
5890	_ struct{} `type:"structure"`
5891
5892	// The artifact media type of the image.
5893	ArtifactMediaType *string `locationName:"artifactMediaType" type:"string"`
5894
5895	// The sha256 digest of the image manifest.
5896	ImageDigest *string `locationName:"imageDigest" type:"string"`
5897
5898	// The media type of the image manifest.
5899	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
5900
5901	// The date and time, expressed in standard JavaScript date format, at which
5902	// the current image was pushed to the repository.
5903	ImagePushedAt *time.Time `locationName:"imagePushedAt" type:"timestamp"`
5904
5905	// A summary of the last completed image scan.
5906	ImageScanFindingsSummary *ImageScanFindingsSummary `locationName:"imageScanFindingsSummary" type:"structure"`
5907
5908	// The current state of the scan.
5909	ImageScanStatus *ImageScanStatus `locationName:"imageScanStatus" type:"structure"`
5910
5911	// The size, in bytes, of the image in the repository.
5912	//
5913	// If the image is a manifest list, this will be the max size of all manifests
5914	// in the list.
5915	//
5916	// Beginning with Docker version 1.9, the Docker client compresses image layers
5917	// before pushing them to a V2 Docker registry. The output of the docker images
5918	// command shows the uncompressed image size, so it may return a larger image
5919	// size than the image sizes returned by DescribeImages.
5920	ImageSizeInBytes *int64 `locationName:"imageSizeInBytes" type:"long"`
5921
5922	// The list of tags associated with this image.
5923	ImageTags []*string `locationName:"imageTags" type:"list"`
5924
5925	// The AWS account ID associated with the registry to which this image belongs.
5926	RegistryId *string `locationName:"registryId" type:"string"`
5927
5928	// The name of the repository to which this image belongs.
5929	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
5930}
5931
5932// String returns the string representation
5933func (s ImageDetail) String() string {
5934	return awsutil.Prettify(s)
5935}
5936
5937// GoString returns the string representation
5938func (s ImageDetail) GoString() string {
5939	return s.String()
5940}
5941
5942// SetArtifactMediaType sets the ArtifactMediaType field's value.
5943func (s *ImageDetail) SetArtifactMediaType(v string) *ImageDetail {
5944	s.ArtifactMediaType = &v
5945	return s
5946}
5947
5948// SetImageDigest sets the ImageDigest field's value.
5949func (s *ImageDetail) SetImageDigest(v string) *ImageDetail {
5950	s.ImageDigest = &v
5951	return s
5952}
5953
5954// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
5955func (s *ImageDetail) SetImageManifestMediaType(v string) *ImageDetail {
5956	s.ImageManifestMediaType = &v
5957	return s
5958}
5959
5960// SetImagePushedAt sets the ImagePushedAt field's value.
5961func (s *ImageDetail) SetImagePushedAt(v time.Time) *ImageDetail {
5962	s.ImagePushedAt = &v
5963	return s
5964}
5965
5966// SetImageScanFindingsSummary sets the ImageScanFindingsSummary field's value.
5967func (s *ImageDetail) SetImageScanFindingsSummary(v *ImageScanFindingsSummary) *ImageDetail {
5968	s.ImageScanFindingsSummary = v
5969	return s
5970}
5971
5972// SetImageScanStatus sets the ImageScanStatus field's value.
5973func (s *ImageDetail) SetImageScanStatus(v *ImageScanStatus) *ImageDetail {
5974	s.ImageScanStatus = v
5975	return s
5976}
5977
5978// SetImageSizeInBytes sets the ImageSizeInBytes field's value.
5979func (s *ImageDetail) SetImageSizeInBytes(v int64) *ImageDetail {
5980	s.ImageSizeInBytes = &v
5981	return s
5982}
5983
5984// SetImageTags sets the ImageTags field's value.
5985func (s *ImageDetail) SetImageTags(v []*string) *ImageDetail {
5986	s.ImageTags = v
5987	return s
5988}
5989
5990// SetRegistryId sets the RegistryId field's value.
5991func (s *ImageDetail) SetRegistryId(v string) *ImageDetail {
5992	s.RegistryId = &v
5993	return s
5994}
5995
5996// SetRepositoryName sets the RepositoryName field's value.
5997func (s *ImageDetail) SetRepositoryName(v string) *ImageDetail {
5998	s.RepositoryName = &v
5999	return s
6000}
6001
6002// The specified image digest does not match the digest that Amazon ECR calculated
6003// for the image.
6004type ImageDigestDoesNotMatchException struct {
6005	_            struct{}                  `type:"structure"`
6006	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6007
6008	Message_ *string `locationName:"message" type:"string"`
6009}
6010
6011// String returns the string representation
6012func (s ImageDigestDoesNotMatchException) String() string {
6013	return awsutil.Prettify(s)
6014}
6015
6016// GoString returns the string representation
6017func (s ImageDigestDoesNotMatchException) GoString() string {
6018	return s.String()
6019}
6020
6021func newErrorImageDigestDoesNotMatchException(v protocol.ResponseMetadata) error {
6022	return &ImageDigestDoesNotMatchException{
6023		RespMetadata: v,
6024	}
6025}
6026
6027// Code returns the exception type name.
6028func (s *ImageDigestDoesNotMatchException) Code() string {
6029	return "ImageDigestDoesNotMatchException"
6030}
6031
6032// Message returns the exception's message.
6033func (s *ImageDigestDoesNotMatchException) Message() string {
6034	if s.Message_ != nil {
6035		return *s.Message_
6036	}
6037	return ""
6038}
6039
6040// OrigErr always returns nil, satisfies awserr.Error interface.
6041func (s *ImageDigestDoesNotMatchException) OrigErr() error {
6042	return nil
6043}
6044
6045func (s *ImageDigestDoesNotMatchException) Error() string {
6046	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6047}
6048
6049// Status code returns the HTTP status code for the request's response error.
6050func (s *ImageDigestDoesNotMatchException) StatusCode() int {
6051	return s.RespMetadata.StatusCode
6052}
6053
6054// RequestID returns the service's response RequestID for request.
6055func (s *ImageDigestDoesNotMatchException) RequestID() string {
6056	return s.RespMetadata.RequestID
6057}
6058
6059// An object representing an Amazon ECR image failure.
6060type ImageFailure struct {
6061	_ struct{} `type:"structure"`
6062
6063	// The code associated with the failure.
6064	FailureCode *string `locationName:"failureCode" type:"string" enum:"ImageFailureCode"`
6065
6066	// The reason for the failure.
6067	FailureReason *string `locationName:"failureReason" type:"string"`
6068
6069	// The image ID associated with the failure.
6070	ImageId *ImageIdentifier `locationName:"imageId" type:"structure"`
6071}
6072
6073// String returns the string representation
6074func (s ImageFailure) String() string {
6075	return awsutil.Prettify(s)
6076}
6077
6078// GoString returns the string representation
6079func (s ImageFailure) GoString() string {
6080	return s.String()
6081}
6082
6083// SetFailureCode sets the FailureCode field's value.
6084func (s *ImageFailure) SetFailureCode(v string) *ImageFailure {
6085	s.FailureCode = &v
6086	return s
6087}
6088
6089// SetFailureReason sets the FailureReason field's value.
6090func (s *ImageFailure) SetFailureReason(v string) *ImageFailure {
6091	s.FailureReason = &v
6092	return s
6093}
6094
6095// SetImageId sets the ImageId field's value.
6096func (s *ImageFailure) SetImageId(v *ImageIdentifier) *ImageFailure {
6097	s.ImageId = v
6098	return s
6099}
6100
6101// An object with identifying information for an Amazon ECR image.
6102type ImageIdentifier struct {
6103	_ struct{} `type:"structure"`
6104
6105	// The sha256 digest of the image manifest.
6106	ImageDigest *string `locationName:"imageDigest" type:"string"`
6107
6108	// The tag used for the image.
6109	ImageTag *string `locationName:"imageTag" min:"1" type:"string"`
6110}
6111
6112// String returns the string representation
6113func (s ImageIdentifier) String() string {
6114	return awsutil.Prettify(s)
6115}
6116
6117// GoString returns the string representation
6118func (s ImageIdentifier) GoString() string {
6119	return s.String()
6120}
6121
6122// Validate inspects the fields of the type to determine if they are valid.
6123func (s *ImageIdentifier) Validate() error {
6124	invalidParams := request.ErrInvalidParams{Context: "ImageIdentifier"}
6125	if s.ImageTag != nil && len(*s.ImageTag) < 1 {
6126		invalidParams.Add(request.NewErrParamMinLen("ImageTag", 1))
6127	}
6128
6129	if invalidParams.Len() > 0 {
6130		return invalidParams
6131	}
6132	return nil
6133}
6134
6135// SetImageDigest sets the ImageDigest field's value.
6136func (s *ImageIdentifier) SetImageDigest(v string) *ImageIdentifier {
6137	s.ImageDigest = &v
6138	return s
6139}
6140
6141// SetImageTag sets the ImageTag field's value.
6142func (s *ImageIdentifier) SetImageTag(v string) *ImageIdentifier {
6143	s.ImageTag = &v
6144	return s
6145}
6146
6147// The image requested does not exist in the specified repository.
6148type ImageNotFoundException struct {
6149	_            struct{}                  `type:"structure"`
6150	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6151
6152	Message_ *string `locationName:"message" type:"string"`
6153}
6154
6155// String returns the string representation
6156func (s ImageNotFoundException) String() string {
6157	return awsutil.Prettify(s)
6158}
6159
6160// GoString returns the string representation
6161func (s ImageNotFoundException) GoString() string {
6162	return s.String()
6163}
6164
6165func newErrorImageNotFoundException(v protocol.ResponseMetadata) error {
6166	return &ImageNotFoundException{
6167		RespMetadata: v,
6168	}
6169}
6170
6171// Code returns the exception type name.
6172func (s *ImageNotFoundException) Code() string {
6173	return "ImageNotFoundException"
6174}
6175
6176// Message returns the exception's message.
6177func (s *ImageNotFoundException) Message() string {
6178	if s.Message_ != nil {
6179		return *s.Message_
6180	}
6181	return ""
6182}
6183
6184// OrigErr always returns nil, satisfies awserr.Error interface.
6185func (s *ImageNotFoundException) OrigErr() error {
6186	return nil
6187}
6188
6189func (s *ImageNotFoundException) Error() string {
6190	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6191}
6192
6193// Status code returns the HTTP status code for the request's response error.
6194func (s *ImageNotFoundException) StatusCode() int {
6195	return s.RespMetadata.StatusCode
6196}
6197
6198// RequestID returns the service's response RequestID for request.
6199func (s *ImageNotFoundException) RequestID() string {
6200	return s.RespMetadata.RequestID
6201}
6202
6203// Contains information about an image scan finding.
6204type ImageScanFinding struct {
6205	_ struct{} `type:"structure"`
6206
6207	// A collection of attributes of the host from which the finding is generated.
6208	Attributes []*Attribute `locationName:"attributes" type:"list"`
6209
6210	// The description of the finding.
6211	Description *string `locationName:"description" type:"string"`
6212
6213	// The name associated with the finding, usually a CVE number.
6214	Name *string `locationName:"name" type:"string"`
6215
6216	// The finding severity.
6217	Severity *string `locationName:"severity" type:"string" enum:"FindingSeverity"`
6218
6219	// A link containing additional details about the security vulnerability.
6220	Uri *string `locationName:"uri" type:"string"`
6221}
6222
6223// String returns the string representation
6224func (s ImageScanFinding) String() string {
6225	return awsutil.Prettify(s)
6226}
6227
6228// GoString returns the string representation
6229func (s ImageScanFinding) GoString() string {
6230	return s.String()
6231}
6232
6233// SetAttributes sets the Attributes field's value.
6234func (s *ImageScanFinding) SetAttributes(v []*Attribute) *ImageScanFinding {
6235	s.Attributes = v
6236	return s
6237}
6238
6239// SetDescription sets the Description field's value.
6240func (s *ImageScanFinding) SetDescription(v string) *ImageScanFinding {
6241	s.Description = &v
6242	return s
6243}
6244
6245// SetName sets the Name field's value.
6246func (s *ImageScanFinding) SetName(v string) *ImageScanFinding {
6247	s.Name = &v
6248	return s
6249}
6250
6251// SetSeverity sets the Severity field's value.
6252func (s *ImageScanFinding) SetSeverity(v string) *ImageScanFinding {
6253	s.Severity = &v
6254	return s
6255}
6256
6257// SetUri sets the Uri field's value.
6258func (s *ImageScanFinding) SetUri(v string) *ImageScanFinding {
6259	s.Uri = &v
6260	return s
6261}
6262
6263// The details of an image scan.
6264type ImageScanFindings struct {
6265	_ struct{} `type:"structure"`
6266
6267	// The image vulnerability counts, sorted by severity.
6268	FindingSeverityCounts map[string]*int64 `locationName:"findingSeverityCounts" type:"map"`
6269
6270	// The findings from the image scan.
6271	Findings []*ImageScanFinding `locationName:"findings" type:"list"`
6272
6273	// The time of the last completed image scan.
6274	ImageScanCompletedAt *time.Time `locationName:"imageScanCompletedAt" type:"timestamp"`
6275
6276	// The time when the vulnerability data was last scanned.
6277	VulnerabilitySourceUpdatedAt *time.Time `locationName:"vulnerabilitySourceUpdatedAt" type:"timestamp"`
6278}
6279
6280// String returns the string representation
6281func (s ImageScanFindings) String() string {
6282	return awsutil.Prettify(s)
6283}
6284
6285// GoString returns the string representation
6286func (s ImageScanFindings) GoString() string {
6287	return s.String()
6288}
6289
6290// SetFindingSeverityCounts sets the FindingSeverityCounts field's value.
6291func (s *ImageScanFindings) SetFindingSeverityCounts(v map[string]*int64) *ImageScanFindings {
6292	s.FindingSeverityCounts = v
6293	return s
6294}
6295
6296// SetFindings sets the Findings field's value.
6297func (s *ImageScanFindings) SetFindings(v []*ImageScanFinding) *ImageScanFindings {
6298	s.Findings = v
6299	return s
6300}
6301
6302// SetImageScanCompletedAt sets the ImageScanCompletedAt field's value.
6303func (s *ImageScanFindings) SetImageScanCompletedAt(v time.Time) *ImageScanFindings {
6304	s.ImageScanCompletedAt = &v
6305	return s
6306}
6307
6308// SetVulnerabilitySourceUpdatedAt sets the VulnerabilitySourceUpdatedAt field's value.
6309func (s *ImageScanFindings) SetVulnerabilitySourceUpdatedAt(v time.Time) *ImageScanFindings {
6310	s.VulnerabilitySourceUpdatedAt = &v
6311	return s
6312}
6313
6314// A summary of the last completed image scan.
6315type ImageScanFindingsSummary struct {
6316	_ struct{} `type:"structure"`
6317
6318	// The image vulnerability counts, sorted by severity.
6319	FindingSeverityCounts map[string]*int64 `locationName:"findingSeverityCounts" type:"map"`
6320
6321	// The time of the last completed image scan.
6322	ImageScanCompletedAt *time.Time `locationName:"imageScanCompletedAt" type:"timestamp"`
6323
6324	// The time when the vulnerability data was last scanned.
6325	VulnerabilitySourceUpdatedAt *time.Time `locationName:"vulnerabilitySourceUpdatedAt" type:"timestamp"`
6326}
6327
6328// String returns the string representation
6329func (s ImageScanFindingsSummary) String() string {
6330	return awsutil.Prettify(s)
6331}
6332
6333// GoString returns the string representation
6334func (s ImageScanFindingsSummary) GoString() string {
6335	return s.String()
6336}
6337
6338// SetFindingSeverityCounts sets the FindingSeverityCounts field's value.
6339func (s *ImageScanFindingsSummary) SetFindingSeverityCounts(v map[string]*int64) *ImageScanFindingsSummary {
6340	s.FindingSeverityCounts = v
6341	return s
6342}
6343
6344// SetImageScanCompletedAt sets the ImageScanCompletedAt field's value.
6345func (s *ImageScanFindingsSummary) SetImageScanCompletedAt(v time.Time) *ImageScanFindingsSummary {
6346	s.ImageScanCompletedAt = &v
6347	return s
6348}
6349
6350// SetVulnerabilitySourceUpdatedAt sets the VulnerabilitySourceUpdatedAt field's value.
6351func (s *ImageScanFindingsSummary) SetVulnerabilitySourceUpdatedAt(v time.Time) *ImageScanFindingsSummary {
6352	s.VulnerabilitySourceUpdatedAt = &v
6353	return s
6354}
6355
6356// The current status of an image scan.
6357type ImageScanStatus struct {
6358	_ struct{} `type:"structure"`
6359
6360	// The description of the image scan status.
6361	Description *string `locationName:"description" type:"string"`
6362
6363	// The current state of an image scan.
6364	Status *string `locationName:"status" type:"string" enum:"ScanStatus"`
6365}
6366
6367// String returns the string representation
6368func (s ImageScanStatus) String() string {
6369	return awsutil.Prettify(s)
6370}
6371
6372// GoString returns the string representation
6373func (s ImageScanStatus) GoString() string {
6374	return s.String()
6375}
6376
6377// SetDescription sets the Description field's value.
6378func (s *ImageScanStatus) SetDescription(v string) *ImageScanStatus {
6379	s.Description = &v
6380	return s
6381}
6382
6383// SetStatus sets the Status field's value.
6384func (s *ImageScanStatus) SetStatus(v string) *ImageScanStatus {
6385	s.Status = &v
6386	return s
6387}
6388
6389// The image scanning configuration for a repository.
6390type ImageScanningConfiguration struct {
6391	_ struct{} `type:"structure"`
6392
6393	// The setting that determines whether images are scanned after being pushed
6394	// to a repository. If set to true, images will be scanned after being pushed.
6395	// If this parameter is not specified, it will default to false and images will
6396	// not be scanned unless a scan is manually started with the StartImageScan
6397	// API.
6398	ScanOnPush *bool `locationName:"scanOnPush" type:"boolean"`
6399}
6400
6401// String returns the string representation
6402func (s ImageScanningConfiguration) String() string {
6403	return awsutil.Prettify(s)
6404}
6405
6406// GoString returns the string representation
6407func (s ImageScanningConfiguration) GoString() string {
6408	return s.String()
6409}
6410
6411// SetScanOnPush sets the ScanOnPush field's value.
6412func (s *ImageScanningConfiguration) SetScanOnPush(v bool) *ImageScanningConfiguration {
6413	s.ScanOnPush = &v
6414	return s
6415}
6416
6417// The specified image is tagged with a tag that already exists. The repository
6418// is configured for tag immutability.
6419type ImageTagAlreadyExistsException struct {
6420	_            struct{}                  `type:"structure"`
6421	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6422
6423	Message_ *string `locationName:"message" type:"string"`
6424}
6425
6426// String returns the string representation
6427func (s ImageTagAlreadyExistsException) String() string {
6428	return awsutil.Prettify(s)
6429}
6430
6431// GoString returns the string representation
6432func (s ImageTagAlreadyExistsException) GoString() string {
6433	return s.String()
6434}
6435
6436func newErrorImageTagAlreadyExistsException(v protocol.ResponseMetadata) error {
6437	return &ImageTagAlreadyExistsException{
6438		RespMetadata: v,
6439	}
6440}
6441
6442// Code returns the exception type name.
6443func (s *ImageTagAlreadyExistsException) Code() string {
6444	return "ImageTagAlreadyExistsException"
6445}
6446
6447// Message returns the exception's message.
6448func (s *ImageTagAlreadyExistsException) Message() string {
6449	if s.Message_ != nil {
6450		return *s.Message_
6451	}
6452	return ""
6453}
6454
6455// OrigErr always returns nil, satisfies awserr.Error interface.
6456func (s *ImageTagAlreadyExistsException) OrigErr() error {
6457	return nil
6458}
6459
6460func (s *ImageTagAlreadyExistsException) Error() string {
6461	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6462}
6463
6464// Status code returns the HTTP status code for the request's response error.
6465func (s *ImageTagAlreadyExistsException) StatusCode() int {
6466	return s.RespMetadata.StatusCode
6467}
6468
6469// RequestID returns the service's response RequestID for request.
6470func (s *ImageTagAlreadyExistsException) RequestID() string {
6471	return s.RespMetadata.RequestID
6472}
6473
6474type InitiateLayerUploadInput struct {
6475	_ struct{} `type:"structure"`
6476
6477	// The AWS account ID associated with the registry to which you intend to upload
6478	// layers. If you do not specify a registry, the default registry is assumed.
6479	RegistryId *string `locationName:"registryId" type:"string"`
6480
6481	// The name of the repository to which you intend to upload layers.
6482	//
6483	// RepositoryName is a required field
6484	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
6485}
6486
6487// String returns the string representation
6488func (s InitiateLayerUploadInput) String() string {
6489	return awsutil.Prettify(s)
6490}
6491
6492// GoString returns the string representation
6493func (s InitiateLayerUploadInput) GoString() string {
6494	return s.String()
6495}
6496
6497// Validate inspects the fields of the type to determine if they are valid.
6498func (s *InitiateLayerUploadInput) Validate() error {
6499	invalidParams := request.ErrInvalidParams{Context: "InitiateLayerUploadInput"}
6500	if s.RepositoryName == nil {
6501		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
6502	}
6503	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
6504		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
6505	}
6506
6507	if invalidParams.Len() > 0 {
6508		return invalidParams
6509	}
6510	return nil
6511}
6512
6513// SetRegistryId sets the RegistryId field's value.
6514func (s *InitiateLayerUploadInput) SetRegistryId(v string) *InitiateLayerUploadInput {
6515	s.RegistryId = &v
6516	return s
6517}
6518
6519// SetRepositoryName sets the RepositoryName field's value.
6520func (s *InitiateLayerUploadInput) SetRepositoryName(v string) *InitiateLayerUploadInput {
6521	s.RepositoryName = &v
6522	return s
6523}
6524
6525type InitiateLayerUploadOutput struct {
6526	_ struct{} `type:"structure"`
6527
6528	// The size, in bytes, that Amazon ECR expects future layer part uploads to
6529	// be.
6530	PartSize *int64 `locationName:"partSize" type:"long"`
6531
6532	// The upload ID for the layer upload. This parameter is passed to further UploadLayerPart
6533	// and CompleteLayerUpload operations.
6534	UploadId *string `locationName:"uploadId" type:"string"`
6535}
6536
6537// String returns the string representation
6538func (s InitiateLayerUploadOutput) String() string {
6539	return awsutil.Prettify(s)
6540}
6541
6542// GoString returns the string representation
6543func (s InitiateLayerUploadOutput) GoString() string {
6544	return s.String()
6545}
6546
6547// SetPartSize sets the PartSize field's value.
6548func (s *InitiateLayerUploadOutput) SetPartSize(v int64) *InitiateLayerUploadOutput {
6549	s.PartSize = &v
6550	return s
6551}
6552
6553// SetUploadId sets the UploadId field's value.
6554func (s *InitiateLayerUploadOutput) SetUploadId(v string) *InitiateLayerUploadOutput {
6555	s.UploadId = &v
6556	return s
6557}
6558
6559// The layer digest calculation performed by Amazon ECR upon receipt of the
6560// image layer does not match the digest specified.
6561type InvalidLayerException struct {
6562	_            struct{}                  `type:"structure"`
6563	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6564
6565	// The error message associated with the exception.
6566	Message_ *string `locationName:"message" type:"string"`
6567}
6568
6569// String returns the string representation
6570func (s InvalidLayerException) String() string {
6571	return awsutil.Prettify(s)
6572}
6573
6574// GoString returns the string representation
6575func (s InvalidLayerException) GoString() string {
6576	return s.String()
6577}
6578
6579func newErrorInvalidLayerException(v protocol.ResponseMetadata) error {
6580	return &InvalidLayerException{
6581		RespMetadata: v,
6582	}
6583}
6584
6585// Code returns the exception type name.
6586func (s *InvalidLayerException) Code() string {
6587	return "InvalidLayerException"
6588}
6589
6590// Message returns the exception's message.
6591func (s *InvalidLayerException) Message() string {
6592	if s.Message_ != nil {
6593		return *s.Message_
6594	}
6595	return ""
6596}
6597
6598// OrigErr always returns nil, satisfies awserr.Error interface.
6599func (s *InvalidLayerException) OrigErr() error {
6600	return nil
6601}
6602
6603func (s *InvalidLayerException) Error() string {
6604	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6605}
6606
6607// Status code returns the HTTP status code for the request's response error.
6608func (s *InvalidLayerException) StatusCode() int {
6609	return s.RespMetadata.StatusCode
6610}
6611
6612// RequestID returns the service's response RequestID for request.
6613func (s *InvalidLayerException) RequestID() string {
6614	return s.RespMetadata.RequestID
6615}
6616
6617// The layer part size is not valid, or the first byte specified is not consecutive
6618// to the last byte of a previous layer part upload.
6619type InvalidLayerPartException struct {
6620	_            struct{}                  `type:"structure"`
6621	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6622
6623	// The last valid byte received from the layer part upload that is associated
6624	// with the exception.
6625	LastValidByteReceived *int64 `locationName:"lastValidByteReceived" type:"long"`
6626
6627	// The error message associated with the exception.
6628	Message_ *string `locationName:"message" type:"string"`
6629
6630	// The registry ID associated with the exception.
6631	RegistryId *string `locationName:"registryId" type:"string"`
6632
6633	// The repository name associated with the exception.
6634	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
6635
6636	// The upload ID associated with the exception.
6637	UploadId *string `locationName:"uploadId" type:"string"`
6638}
6639
6640// String returns the string representation
6641func (s InvalidLayerPartException) String() string {
6642	return awsutil.Prettify(s)
6643}
6644
6645// GoString returns the string representation
6646func (s InvalidLayerPartException) GoString() string {
6647	return s.String()
6648}
6649
6650func newErrorInvalidLayerPartException(v protocol.ResponseMetadata) error {
6651	return &InvalidLayerPartException{
6652		RespMetadata: v,
6653	}
6654}
6655
6656// Code returns the exception type name.
6657func (s *InvalidLayerPartException) Code() string {
6658	return "InvalidLayerPartException"
6659}
6660
6661// Message returns the exception's message.
6662func (s *InvalidLayerPartException) Message() string {
6663	if s.Message_ != nil {
6664		return *s.Message_
6665	}
6666	return ""
6667}
6668
6669// OrigErr always returns nil, satisfies awserr.Error interface.
6670func (s *InvalidLayerPartException) OrigErr() error {
6671	return nil
6672}
6673
6674func (s *InvalidLayerPartException) Error() string {
6675	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6676}
6677
6678// Status code returns the HTTP status code for the request's response error.
6679func (s *InvalidLayerPartException) StatusCode() int {
6680	return s.RespMetadata.StatusCode
6681}
6682
6683// RequestID returns the service's response RequestID for request.
6684func (s *InvalidLayerPartException) RequestID() string {
6685	return s.RespMetadata.RequestID
6686}
6687
6688// The specified parameter is invalid. Review the available parameters for the
6689// API request.
6690type InvalidParameterException struct {
6691	_            struct{}                  `type:"structure"`
6692	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6693
6694	// The error message associated with the exception.
6695	Message_ *string `locationName:"message" type:"string"`
6696}
6697
6698// String returns the string representation
6699func (s InvalidParameterException) String() string {
6700	return awsutil.Prettify(s)
6701}
6702
6703// GoString returns the string representation
6704func (s InvalidParameterException) GoString() string {
6705	return s.String()
6706}
6707
6708func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
6709	return &InvalidParameterException{
6710		RespMetadata: v,
6711	}
6712}
6713
6714// Code returns the exception type name.
6715func (s *InvalidParameterException) Code() string {
6716	return "InvalidParameterException"
6717}
6718
6719// Message returns the exception's message.
6720func (s *InvalidParameterException) Message() string {
6721	if s.Message_ != nil {
6722		return *s.Message_
6723	}
6724	return ""
6725}
6726
6727// OrigErr always returns nil, satisfies awserr.Error interface.
6728func (s *InvalidParameterException) OrigErr() error {
6729	return nil
6730}
6731
6732func (s *InvalidParameterException) Error() string {
6733	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6734}
6735
6736// Status code returns the HTTP status code for the request's response error.
6737func (s *InvalidParameterException) StatusCode() int {
6738	return s.RespMetadata.StatusCode
6739}
6740
6741// RequestID returns the service's response RequestID for request.
6742func (s *InvalidParameterException) RequestID() string {
6743	return s.RespMetadata.RequestID
6744}
6745
6746// An invalid parameter has been specified. Tag keys can have a maximum character
6747// length of 128 characters, and tag values can have a maximum length of 256
6748// characters.
6749type InvalidTagParameterException struct {
6750	_            struct{}                  `type:"structure"`
6751	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6752
6753	Message_ *string `locationName:"message" type:"string"`
6754}
6755
6756// String returns the string representation
6757func (s InvalidTagParameterException) String() string {
6758	return awsutil.Prettify(s)
6759}
6760
6761// GoString returns the string representation
6762func (s InvalidTagParameterException) GoString() string {
6763	return s.String()
6764}
6765
6766func newErrorInvalidTagParameterException(v protocol.ResponseMetadata) error {
6767	return &InvalidTagParameterException{
6768		RespMetadata: v,
6769	}
6770}
6771
6772// Code returns the exception type name.
6773func (s *InvalidTagParameterException) Code() string {
6774	return "InvalidTagParameterException"
6775}
6776
6777// Message returns the exception's message.
6778func (s *InvalidTagParameterException) Message() string {
6779	if s.Message_ != nil {
6780		return *s.Message_
6781	}
6782	return ""
6783}
6784
6785// OrigErr always returns nil, satisfies awserr.Error interface.
6786func (s *InvalidTagParameterException) OrigErr() error {
6787	return nil
6788}
6789
6790func (s *InvalidTagParameterException) Error() string {
6791	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6792}
6793
6794// Status code returns the HTTP status code for the request's response error.
6795func (s *InvalidTagParameterException) StatusCode() int {
6796	return s.RespMetadata.StatusCode
6797}
6798
6799// RequestID returns the service's response RequestID for request.
6800func (s *InvalidTagParameterException) RequestID() string {
6801	return s.RespMetadata.RequestID
6802}
6803
6804// The operation failed due to a KMS exception.
6805type KmsException struct {
6806	_            struct{}                  `type:"structure"`
6807	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6808
6809	// The error code returned by AWS KMS.
6810	KmsError *string `locationName:"kmsError" type:"string"`
6811
6812	Message_ *string `locationName:"message" type:"string"`
6813}
6814
6815// String returns the string representation
6816func (s KmsException) String() string {
6817	return awsutil.Prettify(s)
6818}
6819
6820// GoString returns the string representation
6821func (s KmsException) GoString() string {
6822	return s.String()
6823}
6824
6825func newErrorKmsException(v protocol.ResponseMetadata) error {
6826	return &KmsException{
6827		RespMetadata: v,
6828	}
6829}
6830
6831// Code returns the exception type name.
6832func (s *KmsException) Code() string {
6833	return "KmsException"
6834}
6835
6836// Message returns the exception's message.
6837func (s *KmsException) Message() string {
6838	if s.Message_ != nil {
6839		return *s.Message_
6840	}
6841	return ""
6842}
6843
6844// OrigErr always returns nil, satisfies awserr.Error interface.
6845func (s *KmsException) OrigErr() error {
6846	return nil
6847}
6848
6849func (s *KmsException) Error() string {
6850	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6851}
6852
6853// Status code returns the HTTP status code for the request's response error.
6854func (s *KmsException) StatusCode() int {
6855	return s.RespMetadata.StatusCode
6856}
6857
6858// RequestID returns the service's response RequestID for request.
6859func (s *KmsException) RequestID() string {
6860	return s.RespMetadata.RequestID
6861}
6862
6863// An object representing an Amazon ECR image layer.
6864type Layer struct {
6865	_ struct{} `type:"structure"`
6866
6867	// The availability status of the image layer.
6868	LayerAvailability *string `locationName:"layerAvailability" type:"string" enum:"LayerAvailability"`
6869
6870	// The sha256 digest of the image layer.
6871	LayerDigest *string `locationName:"layerDigest" type:"string"`
6872
6873	// The size, in bytes, of the image layer.
6874	LayerSize *int64 `locationName:"layerSize" type:"long"`
6875
6876	// The media type of the layer, such as application/vnd.docker.image.rootfs.diff.tar.gzip
6877	// or application/vnd.oci.image.layer.v1.tar+gzip.
6878	MediaType *string `locationName:"mediaType" type:"string"`
6879}
6880
6881// String returns the string representation
6882func (s Layer) String() string {
6883	return awsutil.Prettify(s)
6884}
6885
6886// GoString returns the string representation
6887func (s Layer) GoString() string {
6888	return s.String()
6889}
6890
6891// SetLayerAvailability sets the LayerAvailability field's value.
6892func (s *Layer) SetLayerAvailability(v string) *Layer {
6893	s.LayerAvailability = &v
6894	return s
6895}
6896
6897// SetLayerDigest sets the LayerDigest field's value.
6898func (s *Layer) SetLayerDigest(v string) *Layer {
6899	s.LayerDigest = &v
6900	return s
6901}
6902
6903// SetLayerSize sets the LayerSize field's value.
6904func (s *Layer) SetLayerSize(v int64) *Layer {
6905	s.LayerSize = &v
6906	return s
6907}
6908
6909// SetMediaType sets the MediaType field's value.
6910func (s *Layer) SetMediaType(v string) *Layer {
6911	s.MediaType = &v
6912	return s
6913}
6914
6915// The image layer already exists in the associated repository.
6916type LayerAlreadyExistsException struct {
6917	_            struct{}                  `type:"structure"`
6918	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6919
6920	// The error message associated with the exception.
6921	Message_ *string `locationName:"message" type:"string"`
6922}
6923
6924// String returns the string representation
6925func (s LayerAlreadyExistsException) String() string {
6926	return awsutil.Prettify(s)
6927}
6928
6929// GoString returns the string representation
6930func (s LayerAlreadyExistsException) GoString() string {
6931	return s.String()
6932}
6933
6934func newErrorLayerAlreadyExistsException(v protocol.ResponseMetadata) error {
6935	return &LayerAlreadyExistsException{
6936		RespMetadata: v,
6937	}
6938}
6939
6940// Code returns the exception type name.
6941func (s *LayerAlreadyExistsException) Code() string {
6942	return "LayerAlreadyExistsException"
6943}
6944
6945// Message returns the exception's message.
6946func (s *LayerAlreadyExistsException) Message() string {
6947	if s.Message_ != nil {
6948		return *s.Message_
6949	}
6950	return ""
6951}
6952
6953// OrigErr always returns nil, satisfies awserr.Error interface.
6954func (s *LayerAlreadyExistsException) OrigErr() error {
6955	return nil
6956}
6957
6958func (s *LayerAlreadyExistsException) Error() string {
6959	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6960}
6961
6962// Status code returns the HTTP status code for the request's response error.
6963func (s *LayerAlreadyExistsException) StatusCode() int {
6964	return s.RespMetadata.StatusCode
6965}
6966
6967// RequestID returns the service's response RequestID for request.
6968func (s *LayerAlreadyExistsException) RequestID() string {
6969	return s.RespMetadata.RequestID
6970}
6971
6972// An object representing an Amazon ECR image layer failure.
6973type LayerFailure struct {
6974	_ struct{} `type:"structure"`
6975
6976	// The failure code associated with the failure.
6977	FailureCode *string `locationName:"failureCode" type:"string" enum:"LayerFailureCode"`
6978
6979	// The reason for the failure.
6980	FailureReason *string `locationName:"failureReason" type:"string"`
6981
6982	// The layer digest associated with the failure.
6983	LayerDigest *string `locationName:"layerDigest" type:"string"`
6984}
6985
6986// String returns the string representation
6987func (s LayerFailure) String() string {
6988	return awsutil.Prettify(s)
6989}
6990
6991// GoString returns the string representation
6992func (s LayerFailure) GoString() string {
6993	return s.String()
6994}
6995
6996// SetFailureCode sets the FailureCode field's value.
6997func (s *LayerFailure) SetFailureCode(v string) *LayerFailure {
6998	s.FailureCode = &v
6999	return s
7000}
7001
7002// SetFailureReason sets the FailureReason field's value.
7003func (s *LayerFailure) SetFailureReason(v string) *LayerFailure {
7004	s.FailureReason = &v
7005	return s
7006}
7007
7008// SetLayerDigest sets the LayerDigest field's value.
7009func (s *LayerFailure) SetLayerDigest(v string) *LayerFailure {
7010	s.LayerDigest = &v
7011	return s
7012}
7013
7014// The specified layer is not available because it is not associated with an
7015// image. Unassociated image layers may be cleaned up at any time.
7016type LayerInaccessibleException struct {
7017	_            struct{}                  `type:"structure"`
7018	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7019
7020	// The error message associated with the exception.
7021	Message_ *string `locationName:"message" type:"string"`
7022}
7023
7024// String returns the string representation
7025func (s LayerInaccessibleException) String() string {
7026	return awsutil.Prettify(s)
7027}
7028
7029// GoString returns the string representation
7030func (s LayerInaccessibleException) GoString() string {
7031	return s.String()
7032}
7033
7034func newErrorLayerInaccessibleException(v protocol.ResponseMetadata) error {
7035	return &LayerInaccessibleException{
7036		RespMetadata: v,
7037	}
7038}
7039
7040// Code returns the exception type name.
7041func (s *LayerInaccessibleException) Code() string {
7042	return "LayerInaccessibleException"
7043}
7044
7045// Message returns the exception's message.
7046func (s *LayerInaccessibleException) Message() string {
7047	if s.Message_ != nil {
7048		return *s.Message_
7049	}
7050	return ""
7051}
7052
7053// OrigErr always returns nil, satisfies awserr.Error interface.
7054func (s *LayerInaccessibleException) OrigErr() error {
7055	return nil
7056}
7057
7058func (s *LayerInaccessibleException) Error() string {
7059	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7060}
7061
7062// Status code returns the HTTP status code for the request's response error.
7063func (s *LayerInaccessibleException) StatusCode() int {
7064	return s.RespMetadata.StatusCode
7065}
7066
7067// RequestID returns the service's response RequestID for request.
7068func (s *LayerInaccessibleException) RequestID() string {
7069	return s.RespMetadata.RequestID
7070}
7071
7072// Layer parts must be at least 5 MiB in size.
7073type LayerPartTooSmallException struct {
7074	_            struct{}                  `type:"structure"`
7075	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7076
7077	// The error message associated with the exception.
7078	Message_ *string `locationName:"message" type:"string"`
7079}
7080
7081// String returns the string representation
7082func (s LayerPartTooSmallException) String() string {
7083	return awsutil.Prettify(s)
7084}
7085
7086// GoString returns the string representation
7087func (s LayerPartTooSmallException) GoString() string {
7088	return s.String()
7089}
7090
7091func newErrorLayerPartTooSmallException(v protocol.ResponseMetadata) error {
7092	return &LayerPartTooSmallException{
7093		RespMetadata: v,
7094	}
7095}
7096
7097// Code returns the exception type name.
7098func (s *LayerPartTooSmallException) Code() string {
7099	return "LayerPartTooSmallException"
7100}
7101
7102// Message returns the exception's message.
7103func (s *LayerPartTooSmallException) Message() string {
7104	if s.Message_ != nil {
7105		return *s.Message_
7106	}
7107	return ""
7108}
7109
7110// OrigErr always returns nil, satisfies awserr.Error interface.
7111func (s *LayerPartTooSmallException) OrigErr() error {
7112	return nil
7113}
7114
7115func (s *LayerPartTooSmallException) Error() string {
7116	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7117}
7118
7119// Status code returns the HTTP status code for the request's response error.
7120func (s *LayerPartTooSmallException) StatusCode() int {
7121	return s.RespMetadata.StatusCode
7122}
7123
7124// RequestID returns the service's response RequestID for request.
7125func (s *LayerPartTooSmallException) RequestID() string {
7126	return s.RespMetadata.RequestID
7127}
7128
7129// The specified layers could not be found, or the specified layer is not valid
7130// for this repository.
7131type LayersNotFoundException struct {
7132	_            struct{}                  `type:"structure"`
7133	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7134
7135	// The error message associated with the exception.
7136	Message_ *string `locationName:"message" type:"string"`
7137}
7138
7139// String returns the string representation
7140func (s LayersNotFoundException) String() string {
7141	return awsutil.Prettify(s)
7142}
7143
7144// GoString returns the string representation
7145func (s LayersNotFoundException) GoString() string {
7146	return s.String()
7147}
7148
7149func newErrorLayersNotFoundException(v protocol.ResponseMetadata) error {
7150	return &LayersNotFoundException{
7151		RespMetadata: v,
7152	}
7153}
7154
7155// Code returns the exception type name.
7156func (s *LayersNotFoundException) Code() string {
7157	return "LayersNotFoundException"
7158}
7159
7160// Message returns the exception's message.
7161func (s *LayersNotFoundException) Message() string {
7162	if s.Message_ != nil {
7163		return *s.Message_
7164	}
7165	return ""
7166}
7167
7168// OrigErr always returns nil, satisfies awserr.Error interface.
7169func (s *LayersNotFoundException) OrigErr() error {
7170	return nil
7171}
7172
7173func (s *LayersNotFoundException) Error() string {
7174	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7175}
7176
7177// Status code returns the HTTP status code for the request's response error.
7178func (s *LayersNotFoundException) StatusCode() int {
7179	return s.RespMetadata.StatusCode
7180}
7181
7182// RequestID returns the service's response RequestID for request.
7183func (s *LayersNotFoundException) RequestID() string {
7184	return s.RespMetadata.RequestID
7185}
7186
7187// The lifecycle policy could not be found, and no policy is set to the repository.
7188type LifecyclePolicyNotFoundException struct {
7189	_            struct{}                  `type:"structure"`
7190	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7191
7192	Message_ *string `locationName:"message" type:"string"`
7193}
7194
7195// String returns the string representation
7196func (s LifecyclePolicyNotFoundException) String() string {
7197	return awsutil.Prettify(s)
7198}
7199
7200// GoString returns the string representation
7201func (s LifecyclePolicyNotFoundException) GoString() string {
7202	return s.String()
7203}
7204
7205func newErrorLifecyclePolicyNotFoundException(v protocol.ResponseMetadata) error {
7206	return &LifecyclePolicyNotFoundException{
7207		RespMetadata: v,
7208	}
7209}
7210
7211// Code returns the exception type name.
7212func (s *LifecyclePolicyNotFoundException) Code() string {
7213	return "LifecyclePolicyNotFoundException"
7214}
7215
7216// Message returns the exception's message.
7217func (s *LifecyclePolicyNotFoundException) Message() string {
7218	if s.Message_ != nil {
7219		return *s.Message_
7220	}
7221	return ""
7222}
7223
7224// OrigErr always returns nil, satisfies awserr.Error interface.
7225func (s *LifecyclePolicyNotFoundException) OrigErr() error {
7226	return nil
7227}
7228
7229func (s *LifecyclePolicyNotFoundException) Error() string {
7230	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7231}
7232
7233// Status code returns the HTTP status code for the request's response error.
7234func (s *LifecyclePolicyNotFoundException) StatusCode() int {
7235	return s.RespMetadata.StatusCode
7236}
7237
7238// RequestID returns the service's response RequestID for request.
7239func (s *LifecyclePolicyNotFoundException) RequestID() string {
7240	return s.RespMetadata.RequestID
7241}
7242
7243// The filter for the lifecycle policy preview.
7244type LifecyclePolicyPreviewFilter struct {
7245	_ struct{} `type:"structure"`
7246
7247	// The tag status of the image.
7248	TagStatus *string `locationName:"tagStatus" type:"string" enum:"TagStatus"`
7249}
7250
7251// String returns the string representation
7252func (s LifecyclePolicyPreviewFilter) String() string {
7253	return awsutil.Prettify(s)
7254}
7255
7256// GoString returns the string representation
7257func (s LifecyclePolicyPreviewFilter) GoString() string {
7258	return s.String()
7259}
7260
7261// SetTagStatus sets the TagStatus field's value.
7262func (s *LifecyclePolicyPreviewFilter) SetTagStatus(v string) *LifecyclePolicyPreviewFilter {
7263	s.TagStatus = &v
7264	return s
7265}
7266
7267// The previous lifecycle policy preview request has not completed. Wait and
7268// try again.
7269type LifecyclePolicyPreviewInProgressException struct {
7270	_            struct{}                  `type:"structure"`
7271	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7272
7273	Message_ *string `locationName:"message" type:"string"`
7274}
7275
7276// String returns the string representation
7277func (s LifecyclePolicyPreviewInProgressException) String() string {
7278	return awsutil.Prettify(s)
7279}
7280
7281// GoString returns the string representation
7282func (s LifecyclePolicyPreviewInProgressException) GoString() string {
7283	return s.String()
7284}
7285
7286func newErrorLifecyclePolicyPreviewInProgressException(v protocol.ResponseMetadata) error {
7287	return &LifecyclePolicyPreviewInProgressException{
7288		RespMetadata: v,
7289	}
7290}
7291
7292// Code returns the exception type name.
7293func (s *LifecyclePolicyPreviewInProgressException) Code() string {
7294	return "LifecyclePolicyPreviewInProgressException"
7295}
7296
7297// Message returns the exception's message.
7298func (s *LifecyclePolicyPreviewInProgressException) Message() string {
7299	if s.Message_ != nil {
7300		return *s.Message_
7301	}
7302	return ""
7303}
7304
7305// OrigErr always returns nil, satisfies awserr.Error interface.
7306func (s *LifecyclePolicyPreviewInProgressException) OrigErr() error {
7307	return nil
7308}
7309
7310func (s *LifecyclePolicyPreviewInProgressException) Error() string {
7311	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7312}
7313
7314// Status code returns the HTTP status code for the request's response error.
7315func (s *LifecyclePolicyPreviewInProgressException) StatusCode() int {
7316	return s.RespMetadata.StatusCode
7317}
7318
7319// RequestID returns the service's response RequestID for request.
7320func (s *LifecyclePolicyPreviewInProgressException) RequestID() string {
7321	return s.RespMetadata.RequestID
7322}
7323
7324// There is no dry run for this repository.
7325type LifecyclePolicyPreviewNotFoundException struct {
7326	_            struct{}                  `type:"structure"`
7327	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7328
7329	Message_ *string `locationName:"message" type:"string"`
7330}
7331
7332// String returns the string representation
7333func (s LifecyclePolicyPreviewNotFoundException) String() string {
7334	return awsutil.Prettify(s)
7335}
7336
7337// GoString returns the string representation
7338func (s LifecyclePolicyPreviewNotFoundException) GoString() string {
7339	return s.String()
7340}
7341
7342func newErrorLifecyclePolicyPreviewNotFoundException(v protocol.ResponseMetadata) error {
7343	return &LifecyclePolicyPreviewNotFoundException{
7344		RespMetadata: v,
7345	}
7346}
7347
7348// Code returns the exception type name.
7349func (s *LifecyclePolicyPreviewNotFoundException) Code() string {
7350	return "LifecyclePolicyPreviewNotFoundException"
7351}
7352
7353// Message returns the exception's message.
7354func (s *LifecyclePolicyPreviewNotFoundException) Message() string {
7355	if s.Message_ != nil {
7356		return *s.Message_
7357	}
7358	return ""
7359}
7360
7361// OrigErr always returns nil, satisfies awserr.Error interface.
7362func (s *LifecyclePolicyPreviewNotFoundException) OrigErr() error {
7363	return nil
7364}
7365
7366func (s *LifecyclePolicyPreviewNotFoundException) Error() string {
7367	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7368}
7369
7370// Status code returns the HTTP status code for the request's response error.
7371func (s *LifecyclePolicyPreviewNotFoundException) StatusCode() int {
7372	return s.RespMetadata.StatusCode
7373}
7374
7375// RequestID returns the service's response RequestID for request.
7376func (s *LifecyclePolicyPreviewNotFoundException) RequestID() string {
7377	return s.RespMetadata.RequestID
7378}
7379
7380// The result of the lifecycle policy preview.
7381type LifecyclePolicyPreviewResult struct {
7382	_ struct{} `type:"structure"`
7383
7384	// The type of action to be taken.
7385	Action *LifecyclePolicyRuleAction `locationName:"action" type:"structure"`
7386
7387	// The priority of the applied rule.
7388	AppliedRulePriority *int64 `locationName:"appliedRulePriority" min:"1" type:"integer"`
7389
7390	// The sha256 digest of the image manifest.
7391	ImageDigest *string `locationName:"imageDigest" type:"string"`
7392
7393	// The date and time, expressed in standard JavaScript date format, at which
7394	// the current image was pushed to the repository.
7395	ImagePushedAt *time.Time `locationName:"imagePushedAt" type:"timestamp"`
7396
7397	// The list of tags associated with this image.
7398	ImageTags []*string `locationName:"imageTags" type:"list"`
7399}
7400
7401// String returns the string representation
7402func (s LifecyclePolicyPreviewResult) String() string {
7403	return awsutil.Prettify(s)
7404}
7405
7406// GoString returns the string representation
7407func (s LifecyclePolicyPreviewResult) GoString() string {
7408	return s.String()
7409}
7410
7411// SetAction sets the Action field's value.
7412func (s *LifecyclePolicyPreviewResult) SetAction(v *LifecyclePolicyRuleAction) *LifecyclePolicyPreviewResult {
7413	s.Action = v
7414	return s
7415}
7416
7417// SetAppliedRulePriority sets the AppliedRulePriority field's value.
7418func (s *LifecyclePolicyPreviewResult) SetAppliedRulePriority(v int64) *LifecyclePolicyPreviewResult {
7419	s.AppliedRulePriority = &v
7420	return s
7421}
7422
7423// SetImageDigest sets the ImageDigest field's value.
7424func (s *LifecyclePolicyPreviewResult) SetImageDigest(v string) *LifecyclePolicyPreviewResult {
7425	s.ImageDigest = &v
7426	return s
7427}
7428
7429// SetImagePushedAt sets the ImagePushedAt field's value.
7430func (s *LifecyclePolicyPreviewResult) SetImagePushedAt(v time.Time) *LifecyclePolicyPreviewResult {
7431	s.ImagePushedAt = &v
7432	return s
7433}
7434
7435// SetImageTags sets the ImageTags field's value.
7436func (s *LifecyclePolicyPreviewResult) SetImageTags(v []*string) *LifecyclePolicyPreviewResult {
7437	s.ImageTags = v
7438	return s
7439}
7440
7441// The summary of the lifecycle policy preview request.
7442type LifecyclePolicyPreviewSummary struct {
7443	_ struct{} `type:"structure"`
7444
7445	// The number of expiring images.
7446	ExpiringImageTotalCount *int64 `locationName:"expiringImageTotalCount" type:"integer"`
7447}
7448
7449// String returns the string representation
7450func (s LifecyclePolicyPreviewSummary) String() string {
7451	return awsutil.Prettify(s)
7452}
7453
7454// GoString returns the string representation
7455func (s LifecyclePolicyPreviewSummary) GoString() string {
7456	return s.String()
7457}
7458
7459// SetExpiringImageTotalCount sets the ExpiringImageTotalCount field's value.
7460func (s *LifecyclePolicyPreviewSummary) SetExpiringImageTotalCount(v int64) *LifecyclePolicyPreviewSummary {
7461	s.ExpiringImageTotalCount = &v
7462	return s
7463}
7464
7465// The type of action to be taken.
7466type LifecyclePolicyRuleAction struct {
7467	_ struct{} `type:"structure"`
7468
7469	// The type of action to be taken.
7470	Type *string `locationName:"type" type:"string" enum:"ImageActionType"`
7471}
7472
7473// String returns the string representation
7474func (s LifecyclePolicyRuleAction) String() string {
7475	return awsutil.Prettify(s)
7476}
7477
7478// GoString returns the string representation
7479func (s LifecyclePolicyRuleAction) GoString() string {
7480	return s.String()
7481}
7482
7483// SetType sets the Type field's value.
7484func (s *LifecyclePolicyRuleAction) SetType(v string) *LifecyclePolicyRuleAction {
7485	s.Type = &v
7486	return s
7487}
7488
7489// The operation did not succeed because it would have exceeded a service limit
7490// for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
7491// in the Amazon Elastic Container Registry User Guide.
7492type LimitExceededException struct {
7493	_            struct{}                  `type:"structure"`
7494	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7495
7496	// The error message associated with the exception.
7497	Message_ *string `locationName:"message" type:"string"`
7498}
7499
7500// String returns the string representation
7501func (s LimitExceededException) String() string {
7502	return awsutil.Prettify(s)
7503}
7504
7505// GoString returns the string representation
7506func (s LimitExceededException) GoString() string {
7507	return s.String()
7508}
7509
7510func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
7511	return &LimitExceededException{
7512		RespMetadata: v,
7513	}
7514}
7515
7516// Code returns the exception type name.
7517func (s *LimitExceededException) Code() string {
7518	return "LimitExceededException"
7519}
7520
7521// Message returns the exception's message.
7522func (s *LimitExceededException) Message() string {
7523	if s.Message_ != nil {
7524		return *s.Message_
7525	}
7526	return ""
7527}
7528
7529// OrigErr always returns nil, satisfies awserr.Error interface.
7530func (s *LimitExceededException) OrigErr() error {
7531	return nil
7532}
7533
7534func (s *LimitExceededException) Error() string {
7535	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7536}
7537
7538// Status code returns the HTTP status code for the request's response error.
7539func (s *LimitExceededException) StatusCode() int {
7540	return s.RespMetadata.StatusCode
7541}
7542
7543// RequestID returns the service's response RequestID for request.
7544func (s *LimitExceededException) RequestID() string {
7545	return s.RespMetadata.RequestID
7546}
7547
7548// An object representing a filter on a ListImages operation.
7549type ListImagesFilter struct {
7550	_ struct{} `type:"structure"`
7551
7552	// The tag status with which to filter your ListImages results. You can filter
7553	// results based on whether they are TAGGED or UNTAGGED.
7554	TagStatus *string `locationName:"tagStatus" type:"string" enum:"TagStatus"`
7555}
7556
7557// String returns the string representation
7558func (s ListImagesFilter) String() string {
7559	return awsutil.Prettify(s)
7560}
7561
7562// GoString returns the string representation
7563func (s ListImagesFilter) GoString() string {
7564	return s.String()
7565}
7566
7567// SetTagStatus sets the TagStatus field's value.
7568func (s *ListImagesFilter) SetTagStatus(v string) *ListImagesFilter {
7569	s.TagStatus = &v
7570	return s
7571}
7572
7573type ListImagesInput struct {
7574	_ struct{} `type:"structure"`
7575
7576	// The filter key and value with which to filter your ListImages results.
7577	Filter *ListImagesFilter `locationName:"filter" type:"structure"`
7578
7579	// The maximum number of image results returned by ListImages in paginated output.
7580	// When this parameter is used, ListImages only returns maxResults results in
7581	// a single page along with a nextToken response element. The remaining results
7582	// of the initial request can be seen by sending another ListImages request
7583	// with the returned nextToken value. This value can be between 1 and 1000.
7584	// If this parameter is not used, then ListImages returns up to 100 results
7585	// and a nextToken value, if applicable.
7586	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
7587
7588	// The nextToken value returned from a previous paginated ListImages request
7589	// where maxResults was used and the results exceeded the value of that parameter.
7590	// Pagination continues from the end of the previous results that returned the
7591	// nextToken value. This value is null when there are no more results to return.
7592	//
7593	// This token should be treated as an opaque identifier that is only used to
7594	// retrieve the next items in a list and not for other programmatic purposes.
7595	NextToken *string `locationName:"nextToken" type:"string"`
7596
7597	// The AWS account ID associated with the registry that contains the repository
7598	// in which to list images. If you do not specify a registry, the default registry
7599	// is assumed.
7600	RegistryId *string `locationName:"registryId" type:"string"`
7601
7602	// The repository with image IDs to be listed.
7603	//
7604	// RepositoryName is a required field
7605	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
7606}
7607
7608// String returns the string representation
7609func (s ListImagesInput) String() string {
7610	return awsutil.Prettify(s)
7611}
7612
7613// GoString returns the string representation
7614func (s ListImagesInput) GoString() string {
7615	return s.String()
7616}
7617
7618// Validate inspects the fields of the type to determine if they are valid.
7619func (s *ListImagesInput) Validate() error {
7620	invalidParams := request.ErrInvalidParams{Context: "ListImagesInput"}
7621	if s.MaxResults != nil && *s.MaxResults < 1 {
7622		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7623	}
7624	if s.RepositoryName == nil {
7625		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
7626	}
7627	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
7628		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
7629	}
7630
7631	if invalidParams.Len() > 0 {
7632		return invalidParams
7633	}
7634	return nil
7635}
7636
7637// SetFilter sets the Filter field's value.
7638func (s *ListImagesInput) SetFilter(v *ListImagesFilter) *ListImagesInput {
7639	s.Filter = v
7640	return s
7641}
7642
7643// SetMaxResults sets the MaxResults field's value.
7644func (s *ListImagesInput) SetMaxResults(v int64) *ListImagesInput {
7645	s.MaxResults = &v
7646	return s
7647}
7648
7649// SetNextToken sets the NextToken field's value.
7650func (s *ListImagesInput) SetNextToken(v string) *ListImagesInput {
7651	s.NextToken = &v
7652	return s
7653}
7654
7655// SetRegistryId sets the RegistryId field's value.
7656func (s *ListImagesInput) SetRegistryId(v string) *ListImagesInput {
7657	s.RegistryId = &v
7658	return s
7659}
7660
7661// SetRepositoryName sets the RepositoryName field's value.
7662func (s *ListImagesInput) SetRepositoryName(v string) *ListImagesInput {
7663	s.RepositoryName = &v
7664	return s
7665}
7666
7667type ListImagesOutput struct {
7668	_ struct{} `type:"structure"`
7669
7670	// The list of image IDs for the requested repository.
7671	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list"`
7672
7673	// The nextToken value to include in a future ListImages request. When the results
7674	// of a ListImages request exceed maxResults, this value can be used to retrieve
7675	// the next page of results. This value is null when there are no more results
7676	// to return.
7677	NextToken *string `locationName:"nextToken" type:"string"`
7678}
7679
7680// String returns the string representation
7681func (s ListImagesOutput) String() string {
7682	return awsutil.Prettify(s)
7683}
7684
7685// GoString returns the string representation
7686func (s ListImagesOutput) GoString() string {
7687	return s.String()
7688}
7689
7690// SetImageIds sets the ImageIds field's value.
7691func (s *ListImagesOutput) SetImageIds(v []*ImageIdentifier) *ListImagesOutput {
7692	s.ImageIds = v
7693	return s
7694}
7695
7696// SetNextToken sets the NextToken field's value.
7697func (s *ListImagesOutput) SetNextToken(v string) *ListImagesOutput {
7698	s.NextToken = &v
7699	return s
7700}
7701
7702type ListTagsForResourceInput struct {
7703	_ struct{} `type:"structure"`
7704
7705	// The Amazon Resource Name (ARN) that identifies the resource for which to
7706	// list the tags. Currently, the only supported resource is an Amazon ECR repository.
7707	//
7708	// ResourceArn is a required field
7709	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
7710}
7711
7712// String returns the string representation
7713func (s ListTagsForResourceInput) String() string {
7714	return awsutil.Prettify(s)
7715}
7716
7717// GoString returns the string representation
7718func (s ListTagsForResourceInput) GoString() string {
7719	return s.String()
7720}
7721
7722// Validate inspects the fields of the type to determine if they are valid.
7723func (s *ListTagsForResourceInput) Validate() error {
7724	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
7725	if s.ResourceArn == nil {
7726		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7727	}
7728
7729	if invalidParams.Len() > 0 {
7730		return invalidParams
7731	}
7732	return nil
7733}
7734
7735// SetResourceArn sets the ResourceArn field's value.
7736func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
7737	s.ResourceArn = &v
7738	return s
7739}
7740
7741type ListTagsForResourceOutput struct {
7742	_ struct{} `type:"structure"`
7743
7744	// The tags for the resource.
7745	Tags []*Tag `locationName:"tags" type:"list"`
7746}
7747
7748// String returns the string representation
7749func (s ListTagsForResourceOutput) String() string {
7750	return awsutil.Prettify(s)
7751}
7752
7753// GoString returns the string representation
7754func (s ListTagsForResourceOutput) GoString() string {
7755	return s.String()
7756}
7757
7758// SetTags sets the Tags field's value.
7759func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
7760	s.Tags = v
7761	return s
7762}
7763
7764type PutImageInput struct {
7765	_ struct{} `type:"structure"`
7766
7767	// The image digest of the image manifest corresponding to the image.
7768	ImageDigest *string `locationName:"imageDigest" type:"string"`
7769
7770	// The image manifest corresponding to the image to be uploaded.
7771	//
7772	// ImageManifest is a required field
7773	ImageManifest *string `locationName:"imageManifest" min:"1" type:"string" required:"true"`
7774
7775	// The media type of the image manifest. If you push an image manifest that
7776	// does not contain the mediaType field, you must specify the imageManifestMediaType
7777	// in the request.
7778	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
7779
7780	// The tag to associate with the image. This parameter is required for images
7781	// that use the Docker Image Manifest V2 Schema 2 or Open Container Initiative
7782	// (OCI) formats.
7783	ImageTag *string `locationName:"imageTag" min:"1" type:"string"`
7784
7785	// The AWS account ID associated with the registry that contains the repository
7786	// in which to put the image. If you do not specify a registry, the default
7787	// registry is assumed.
7788	RegistryId *string `locationName:"registryId" type:"string"`
7789
7790	// The name of the repository in which to put the image.
7791	//
7792	// RepositoryName is a required field
7793	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
7794}
7795
7796// String returns the string representation
7797func (s PutImageInput) String() string {
7798	return awsutil.Prettify(s)
7799}
7800
7801// GoString returns the string representation
7802func (s PutImageInput) GoString() string {
7803	return s.String()
7804}
7805
7806// Validate inspects the fields of the type to determine if they are valid.
7807func (s *PutImageInput) Validate() error {
7808	invalidParams := request.ErrInvalidParams{Context: "PutImageInput"}
7809	if s.ImageManifest == nil {
7810		invalidParams.Add(request.NewErrParamRequired("ImageManifest"))
7811	}
7812	if s.ImageManifest != nil && len(*s.ImageManifest) < 1 {
7813		invalidParams.Add(request.NewErrParamMinLen("ImageManifest", 1))
7814	}
7815	if s.ImageTag != nil && len(*s.ImageTag) < 1 {
7816		invalidParams.Add(request.NewErrParamMinLen("ImageTag", 1))
7817	}
7818	if s.RepositoryName == nil {
7819		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
7820	}
7821	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
7822		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
7823	}
7824
7825	if invalidParams.Len() > 0 {
7826		return invalidParams
7827	}
7828	return nil
7829}
7830
7831// SetImageDigest sets the ImageDigest field's value.
7832func (s *PutImageInput) SetImageDigest(v string) *PutImageInput {
7833	s.ImageDigest = &v
7834	return s
7835}
7836
7837// SetImageManifest sets the ImageManifest field's value.
7838func (s *PutImageInput) SetImageManifest(v string) *PutImageInput {
7839	s.ImageManifest = &v
7840	return s
7841}
7842
7843// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
7844func (s *PutImageInput) SetImageManifestMediaType(v string) *PutImageInput {
7845	s.ImageManifestMediaType = &v
7846	return s
7847}
7848
7849// SetImageTag sets the ImageTag field's value.
7850func (s *PutImageInput) SetImageTag(v string) *PutImageInput {
7851	s.ImageTag = &v
7852	return s
7853}
7854
7855// SetRegistryId sets the RegistryId field's value.
7856func (s *PutImageInput) SetRegistryId(v string) *PutImageInput {
7857	s.RegistryId = &v
7858	return s
7859}
7860
7861// SetRepositoryName sets the RepositoryName field's value.
7862func (s *PutImageInput) SetRepositoryName(v string) *PutImageInput {
7863	s.RepositoryName = &v
7864	return s
7865}
7866
7867type PutImageOutput struct {
7868	_ struct{} `type:"structure"`
7869
7870	// Details of the image uploaded.
7871	Image *Image `locationName:"image" type:"structure"`
7872}
7873
7874// String returns the string representation
7875func (s PutImageOutput) String() string {
7876	return awsutil.Prettify(s)
7877}
7878
7879// GoString returns the string representation
7880func (s PutImageOutput) GoString() string {
7881	return s.String()
7882}
7883
7884// SetImage sets the Image field's value.
7885func (s *PutImageOutput) SetImage(v *Image) *PutImageOutput {
7886	s.Image = v
7887	return s
7888}
7889
7890type PutImageScanningConfigurationInput struct {
7891	_ struct{} `type:"structure"`
7892
7893	// The image scanning configuration for the repository. This setting determines
7894	// whether images are scanned for known vulnerabilities after being pushed to
7895	// the repository.
7896	//
7897	// ImageScanningConfiguration is a required field
7898	ImageScanningConfiguration *ImageScanningConfiguration `locationName:"imageScanningConfiguration" type:"structure" required:"true"`
7899
7900	// The AWS account ID associated with the registry that contains the repository
7901	// in which to update the image scanning configuration setting. If you do not
7902	// specify a registry, the default registry is assumed.
7903	RegistryId *string `locationName:"registryId" type:"string"`
7904
7905	// The name of the repository in which to update the image scanning configuration
7906	// setting.
7907	//
7908	// RepositoryName is a required field
7909	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
7910}
7911
7912// String returns the string representation
7913func (s PutImageScanningConfigurationInput) String() string {
7914	return awsutil.Prettify(s)
7915}
7916
7917// GoString returns the string representation
7918func (s PutImageScanningConfigurationInput) GoString() string {
7919	return s.String()
7920}
7921
7922// Validate inspects the fields of the type to determine if they are valid.
7923func (s *PutImageScanningConfigurationInput) Validate() error {
7924	invalidParams := request.ErrInvalidParams{Context: "PutImageScanningConfigurationInput"}
7925	if s.ImageScanningConfiguration == nil {
7926		invalidParams.Add(request.NewErrParamRequired("ImageScanningConfiguration"))
7927	}
7928	if s.RepositoryName == nil {
7929		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
7930	}
7931	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
7932		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
7933	}
7934
7935	if invalidParams.Len() > 0 {
7936		return invalidParams
7937	}
7938	return nil
7939}
7940
7941// SetImageScanningConfiguration sets the ImageScanningConfiguration field's value.
7942func (s *PutImageScanningConfigurationInput) SetImageScanningConfiguration(v *ImageScanningConfiguration) *PutImageScanningConfigurationInput {
7943	s.ImageScanningConfiguration = v
7944	return s
7945}
7946
7947// SetRegistryId sets the RegistryId field's value.
7948func (s *PutImageScanningConfigurationInput) SetRegistryId(v string) *PutImageScanningConfigurationInput {
7949	s.RegistryId = &v
7950	return s
7951}
7952
7953// SetRepositoryName sets the RepositoryName field's value.
7954func (s *PutImageScanningConfigurationInput) SetRepositoryName(v string) *PutImageScanningConfigurationInput {
7955	s.RepositoryName = &v
7956	return s
7957}
7958
7959type PutImageScanningConfigurationOutput struct {
7960	_ struct{} `type:"structure"`
7961
7962	// The image scanning configuration setting for the repository.
7963	ImageScanningConfiguration *ImageScanningConfiguration `locationName:"imageScanningConfiguration" type:"structure"`
7964
7965	// The registry ID associated with the request.
7966	RegistryId *string `locationName:"registryId" type:"string"`
7967
7968	// The repository name associated with the request.
7969	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
7970}
7971
7972// String returns the string representation
7973func (s PutImageScanningConfigurationOutput) String() string {
7974	return awsutil.Prettify(s)
7975}
7976
7977// GoString returns the string representation
7978func (s PutImageScanningConfigurationOutput) GoString() string {
7979	return s.String()
7980}
7981
7982// SetImageScanningConfiguration sets the ImageScanningConfiguration field's value.
7983func (s *PutImageScanningConfigurationOutput) SetImageScanningConfiguration(v *ImageScanningConfiguration) *PutImageScanningConfigurationOutput {
7984	s.ImageScanningConfiguration = v
7985	return s
7986}
7987
7988// SetRegistryId sets the RegistryId field's value.
7989func (s *PutImageScanningConfigurationOutput) SetRegistryId(v string) *PutImageScanningConfigurationOutput {
7990	s.RegistryId = &v
7991	return s
7992}
7993
7994// SetRepositoryName sets the RepositoryName field's value.
7995func (s *PutImageScanningConfigurationOutput) SetRepositoryName(v string) *PutImageScanningConfigurationOutput {
7996	s.RepositoryName = &v
7997	return s
7998}
7999
8000type PutImageTagMutabilityInput struct {
8001	_ struct{} `type:"structure"`
8002
8003	// The tag mutability setting for the repository. If MUTABLE is specified, image
8004	// tags can be overwritten. If IMMUTABLE is specified, all image tags within
8005	// the repository will be immutable which will prevent them from being overwritten.
8006	//
8007	// ImageTagMutability is a required field
8008	ImageTagMutability *string `locationName:"imageTagMutability" type:"string" required:"true" enum:"ImageTagMutability"`
8009
8010	// The AWS account ID associated with the registry that contains the repository
8011	// in which to update the image tag mutability settings. If you do not specify
8012	// a registry, the default registry is assumed.
8013	RegistryId *string `locationName:"registryId" type:"string"`
8014
8015	// The name of the repository in which to update the image tag mutability settings.
8016	//
8017	// RepositoryName is a required field
8018	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
8019}
8020
8021// String returns the string representation
8022func (s PutImageTagMutabilityInput) String() string {
8023	return awsutil.Prettify(s)
8024}
8025
8026// GoString returns the string representation
8027func (s PutImageTagMutabilityInput) GoString() string {
8028	return s.String()
8029}
8030
8031// Validate inspects the fields of the type to determine if they are valid.
8032func (s *PutImageTagMutabilityInput) Validate() error {
8033	invalidParams := request.ErrInvalidParams{Context: "PutImageTagMutabilityInput"}
8034	if s.ImageTagMutability == nil {
8035		invalidParams.Add(request.NewErrParamRequired("ImageTagMutability"))
8036	}
8037	if s.RepositoryName == nil {
8038		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
8039	}
8040	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
8041		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
8042	}
8043
8044	if invalidParams.Len() > 0 {
8045		return invalidParams
8046	}
8047	return nil
8048}
8049
8050// SetImageTagMutability sets the ImageTagMutability field's value.
8051func (s *PutImageTagMutabilityInput) SetImageTagMutability(v string) *PutImageTagMutabilityInput {
8052	s.ImageTagMutability = &v
8053	return s
8054}
8055
8056// SetRegistryId sets the RegistryId field's value.
8057func (s *PutImageTagMutabilityInput) SetRegistryId(v string) *PutImageTagMutabilityInput {
8058	s.RegistryId = &v
8059	return s
8060}
8061
8062// SetRepositoryName sets the RepositoryName field's value.
8063func (s *PutImageTagMutabilityInput) SetRepositoryName(v string) *PutImageTagMutabilityInput {
8064	s.RepositoryName = &v
8065	return s
8066}
8067
8068type PutImageTagMutabilityOutput struct {
8069	_ struct{} `type:"structure"`
8070
8071	// The image tag mutability setting for the repository.
8072	ImageTagMutability *string `locationName:"imageTagMutability" type:"string" enum:"ImageTagMutability"`
8073
8074	// The registry ID associated with the request.
8075	RegistryId *string `locationName:"registryId" type:"string"`
8076
8077	// The repository name associated with the request.
8078	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
8079}
8080
8081// String returns the string representation
8082func (s PutImageTagMutabilityOutput) String() string {
8083	return awsutil.Prettify(s)
8084}
8085
8086// GoString returns the string representation
8087func (s PutImageTagMutabilityOutput) GoString() string {
8088	return s.String()
8089}
8090
8091// SetImageTagMutability sets the ImageTagMutability field's value.
8092func (s *PutImageTagMutabilityOutput) SetImageTagMutability(v string) *PutImageTagMutabilityOutput {
8093	s.ImageTagMutability = &v
8094	return s
8095}
8096
8097// SetRegistryId sets the RegistryId field's value.
8098func (s *PutImageTagMutabilityOutput) SetRegistryId(v string) *PutImageTagMutabilityOutput {
8099	s.RegistryId = &v
8100	return s
8101}
8102
8103// SetRepositoryName sets the RepositoryName field's value.
8104func (s *PutImageTagMutabilityOutput) SetRepositoryName(v string) *PutImageTagMutabilityOutput {
8105	s.RepositoryName = &v
8106	return s
8107}
8108
8109type PutLifecyclePolicyInput struct {
8110	_ struct{} `type:"structure"`
8111
8112	// The JSON repository policy text to apply to the repository.
8113	//
8114	// LifecyclePolicyText is a required field
8115	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string" required:"true"`
8116
8117	// The AWS account ID associated with the registry that contains the repository.
8118	// If you do not specify a registry, the default registry is assumed.
8119	RegistryId *string `locationName:"registryId" type:"string"`
8120
8121	// The name of the repository to receive the policy.
8122	//
8123	// RepositoryName is a required field
8124	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
8125}
8126
8127// String returns the string representation
8128func (s PutLifecyclePolicyInput) String() string {
8129	return awsutil.Prettify(s)
8130}
8131
8132// GoString returns the string representation
8133func (s PutLifecyclePolicyInput) GoString() string {
8134	return s.String()
8135}
8136
8137// Validate inspects the fields of the type to determine if they are valid.
8138func (s *PutLifecyclePolicyInput) Validate() error {
8139	invalidParams := request.ErrInvalidParams{Context: "PutLifecyclePolicyInput"}
8140	if s.LifecyclePolicyText == nil {
8141		invalidParams.Add(request.NewErrParamRequired("LifecyclePolicyText"))
8142	}
8143	if s.LifecyclePolicyText != nil && len(*s.LifecyclePolicyText) < 100 {
8144		invalidParams.Add(request.NewErrParamMinLen("LifecyclePolicyText", 100))
8145	}
8146	if s.RepositoryName == nil {
8147		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
8148	}
8149	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
8150		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
8151	}
8152
8153	if invalidParams.Len() > 0 {
8154		return invalidParams
8155	}
8156	return nil
8157}
8158
8159// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
8160func (s *PutLifecyclePolicyInput) SetLifecyclePolicyText(v string) *PutLifecyclePolicyInput {
8161	s.LifecyclePolicyText = &v
8162	return s
8163}
8164
8165// SetRegistryId sets the RegistryId field's value.
8166func (s *PutLifecyclePolicyInput) SetRegistryId(v string) *PutLifecyclePolicyInput {
8167	s.RegistryId = &v
8168	return s
8169}
8170
8171// SetRepositoryName sets the RepositoryName field's value.
8172func (s *PutLifecyclePolicyInput) SetRepositoryName(v string) *PutLifecyclePolicyInput {
8173	s.RepositoryName = &v
8174	return s
8175}
8176
8177type PutLifecyclePolicyOutput struct {
8178	_ struct{} `type:"structure"`
8179
8180	// The JSON repository policy text.
8181	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string"`
8182
8183	// The registry ID associated with the request.
8184	RegistryId *string `locationName:"registryId" type:"string"`
8185
8186	// The repository name associated with the request.
8187	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
8188}
8189
8190// String returns the string representation
8191func (s PutLifecyclePolicyOutput) String() string {
8192	return awsutil.Prettify(s)
8193}
8194
8195// GoString returns the string representation
8196func (s PutLifecyclePolicyOutput) GoString() string {
8197	return s.String()
8198}
8199
8200// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
8201func (s *PutLifecyclePolicyOutput) SetLifecyclePolicyText(v string) *PutLifecyclePolicyOutput {
8202	s.LifecyclePolicyText = &v
8203	return s
8204}
8205
8206// SetRegistryId sets the RegistryId field's value.
8207func (s *PutLifecyclePolicyOutput) SetRegistryId(v string) *PutLifecyclePolicyOutput {
8208	s.RegistryId = &v
8209	return s
8210}
8211
8212// SetRepositoryName sets the RepositoryName field's value.
8213func (s *PutLifecyclePolicyOutput) SetRepositoryName(v string) *PutLifecyclePolicyOutput {
8214	s.RepositoryName = &v
8215	return s
8216}
8217
8218type PutRegistryPolicyInput struct {
8219	_ struct{} `type:"structure"`
8220
8221	// The JSON policy text to apply to your registry. The policy text follows the
8222	// same format as IAM policy text. For more information, see Registry permissions
8223	// (https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry-permissions.html)
8224	// in the Amazon Elastic Container Registry User Guide.
8225	//
8226	// PolicyText is a required field
8227	PolicyText *string `locationName:"policyText" type:"string" required:"true"`
8228}
8229
8230// String returns the string representation
8231func (s PutRegistryPolicyInput) String() string {
8232	return awsutil.Prettify(s)
8233}
8234
8235// GoString returns the string representation
8236func (s PutRegistryPolicyInput) GoString() string {
8237	return s.String()
8238}
8239
8240// Validate inspects the fields of the type to determine if they are valid.
8241func (s *PutRegistryPolicyInput) Validate() error {
8242	invalidParams := request.ErrInvalidParams{Context: "PutRegistryPolicyInput"}
8243	if s.PolicyText == nil {
8244		invalidParams.Add(request.NewErrParamRequired("PolicyText"))
8245	}
8246
8247	if invalidParams.Len() > 0 {
8248		return invalidParams
8249	}
8250	return nil
8251}
8252
8253// SetPolicyText sets the PolicyText field's value.
8254func (s *PutRegistryPolicyInput) SetPolicyText(v string) *PutRegistryPolicyInput {
8255	s.PolicyText = &v
8256	return s
8257}
8258
8259type PutRegistryPolicyOutput struct {
8260	_ struct{} `type:"structure"`
8261
8262	// The JSON policy text for your registry.
8263	PolicyText *string `locationName:"policyText" type:"string"`
8264
8265	// The registry ID.
8266	RegistryId *string `locationName:"registryId" type:"string"`
8267}
8268
8269// String returns the string representation
8270func (s PutRegistryPolicyOutput) String() string {
8271	return awsutil.Prettify(s)
8272}
8273
8274// GoString returns the string representation
8275func (s PutRegistryPolicyOutput) GoString() string {
8276	return s.String()
8277}
8278
8279// SetPolicyText sets the PolicyText field's value.
8280func (s *PutRegistryPolicyOutput) SetPolicyText(v string) *PutRegistryPolicyOutput {
8281	s.PolicyText = &v
8282	return s
8283}
8284
8285// SetRegistryId sets the RegistryId field's value.
8286func (s *PutRegistryPolicyOutput) SetRegistryId(v string) *PutRegistryPolicyOutput {
8287	s.RegistryId = &v
8288	return s
8289}
8290
8291type PutReplicationConfigurationInput struct {
8292	_ struct{} `type:"structure"`
8293
8294	// An object representing the replication configuration for a registry.
8295	//
8296	// ReplicationConfiguration is a required field
8297	ReplicationConfiguration *ReplicationConfiguration `locationName:"replicationConfiguration" type:"structure" required:"true"`
8298}
8299
8300// String returns the string representation
8301func (s PutReplicationConfigurationInput) String() string {
8302	return awsutil.Prettify(s)
8303}
8304
8305// GoString returns the string representation
8306func (s PutReplicationConfigurationInput) GoString() string {
8307	return s.String()
8308}
8309
8310// Validate inspects the fields of the type to determine if they are valid.
8311func (s *PutReplicationConfigurationInput) Validate() error {
8312	invalidParams := request.ErrInvalidParams{Context: "PutReplicationConfigurationInput"}
8313	if s.ReplicationConfiguration == nil {
8314		invalidParams.Add(request.NewErrParamRequired("ReplicationConfiguration"))
8315	}
8316	if s.ReplicationConfiguration != nil {
8317		if err := s.ReplicationConfiguration.Validate(); err != nil {
8318			invalidParams.AddNested("ReplicationConfiguration", err.(request.ErrInvalidParams))
8319		}
8320	}
8321
8322	if invalidParams.Len() > 0 {
8323		return invalidParams
8324	}
8325	return nil
8326}
8327
8328// SetReplicationConfiguration sets the ReplicationConfiguration field's value.
8329func (s *PutReplicationConfigurationInput) SetReplicationConfiguration(v *ReplicationConfiguration) *PutReplicationConfigurationInput {
8330	s.ReplicationConfiguration = v
8331	return s
8332}
8333
8334type PutReplicationConfigurationOutput struct {
8335	_ struct{} `type:"structure"`
8336
8337	// The contents of the replication configuration for the registry.
8338	ReplicationConfiguration *ReplicationConfiguration `locationName:"replicationConfiguration" type:"structure"`
8339}
8340
8341// String returns the string representation
8342func (s PutReplicationConfigurationOutput) String() string {
8343	return awsutil.Prettify(s)
8344}
8345
8346// GoString returns the string representation
8347func (s PutReplicationConfigurationOutput) GoString() string {
8348	return s.String()
8349}
8350
8351// SetReplicationConfiguration sets the ReplicationConfiguration field's value.
8352func (s *PutReplicationConfigurationOutput) SetReplicationConfiguration(v *ReplicationConfiguration) *PutReplicationConfigurationOutput {
8353	s.ReplicationConfiguration = v
8354	return s
8355}
8356
8357// The manifest list is referencing an image that does not exist.
8358type ReferencedImagesNotFoundException struct {
8359	_            struct{}                  `type:"structure"`
8360	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8361
8362	Message_ *string `locationName:"message" type:"string"`
8363}
8364
8365// String returns the string representation
8366func (s ReferencedImagesNotFoundException) String() string {
8367	return awsutil.Prettify(s)
8368}
8369
8370// GoString returns the string representation
8371func (s ReferencedImagesNotFoundException) GoString() string {
8372	return s.String()
8373}
8374
8375func newErrorReferencedImagesNotFoundException(v protocol.ResponseMetadata) error {
8376	return &ReferencedImagesNotFoundException{
8377		RespMetadata: v,
8378	}
8379}
8380
8381// Code returns the exception type name.
8382func (s *ReferencedImagesNotFoundException) Code() string {
8383	return "ReferencedImagesNotFoundException"
8384}
8385
8386// Message returns the exception's message.
8387func (s *ReferencedImagesNotFoundException) Message() string {
8388	if s.Message_ != nil {
8389		return *s.Message_
8390	}
8391	return ""
8392}
8393
8394// OrigErr always returns nil, satisfies awserr.Error interface.
8395func (s *ReferencedImagesNotFoundException) OrigErr() error {
8396	return nil
8397}
8398
8399func (s *ReferencedImagesNotFoundException) Error() string {
8400	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8401}
8402
8403// Status code returns the HTTP status code for the request's response error.
8404func (s *ReferencedImagesNotFoundException) StatusCode() int {
8405	return s.RespMetadata.StatusCode
8406}
8407
8408// RequestID returns the service's response RequestID for request.
8409func (s *ReferencedImagesNotFoundException) RequestID() string {
8410	return s.RespMetadata.RequestID
8411}
8412
8413// The registry doesn't have an associated registry policy.
8414type RegistryPolicyNotFoundException struct {
8415	_            struct{}                  `type:"structure"`
8416	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8417
8418	Message_ *string `locationName:"message" type:"string"`
8419}
8420
8421// String returns the string representation
8422func (s RegistryPolicyNotFoundException) String() string {
8423	return awsutil.Prettify(s)
8424}
8425
8426// GoString returns the string representation
8427func (s RegistryPolicyNotFoundException) GoString() string {
8428	return s.String()
8429}
8430
8431func newErrorRegistryPolicyNotFoundException(v protocol.ResponseMetadata) error {
8432	return &RegistryPolicyNotFoundException{
8433		RespMetadata: v,
8434	}
8435}
8436
8437// Code returns the exception type name.
8438func (s *RegistryPolicyNotFoundException) Code() string {
8439	return "RegistryPolicyNotFoundException"
8440}
8441
8442// Message returns the exception's message.
8443func (s *RegistryPolicyNotFoundException) Message() string {
8444	if s.Message_ != nil {
8445		return *s.Message_
8446	}
8447	return ""
8448}
8449
8450// OrigErr always returns nil, satisfies awserr.Error interface.
8451func (s *RegistryPolicyNotFoundException) OrigErr() error {
8452	return nil
8453}
8454
8455func (s *RegistryPolicyNotFoundException) Error() string {
8456	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8457}
8458
8459// Status code returns the HTTP status code for the request's response error.
8460func (s *RegistryPolicyNotFoundException) StatusCode() int {
8461	return s.RespMetadata.StatusCode
8462}
8463
8464// RequestID returns the service's response RequestID for request.
8465func (s *RegistryPolicyNotFoundException) RequestID() string {
8466	return s.RespMetadata.RequestID
8467}
8468
8469// The replication configuration for a registry.
8470type ReplicationConfiguration struct {
8471	_ struct{} `type:"structure"`
8472
8473	// An array of objects representing the replication rules for a replication
8474	// configuration. A replication configuration may contain only one replication
8475	// rule but the rule may contain one or more replication destinations.
8476	//
8477	// Rules is a required field
8478	Rules []*ReplicationRule `locationName:"rules" type:"list" required:"true"`
8479}
8480
8481// String returns the string representation
8482func (s ReplicationConfiguration) String() string {
8483	return awsutil.Prettify(s)
8484}
8485
8486// GoString returns the string representation
8487func (s ReplicationConfiguration) GoString() string {
8488	return s.String()
8489}
8490
8491// Validate inspects the fields of the type to determine if they are valid.
8492func (s *ReplicationConfiguration) Validate() error {
8493	invalidParams := request.ErrInvalidParams{Context: "ReplicationConfiguration"}
8494	if s.Rules == nil {
8495		invalidParams.Add(request.NewErrParamRequired("Rules"))
8496	}
8497	if s.Rules != nil {
8498		for i, v := range s.Rules {
8499			if v == nil {
8500				continue
8501			}
8502			if err := v.Validate(); err != nil {
8503				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
8504			}
8505		}
8506	}
8507
8508	if invalidParams.Len() > 0 {
8509		return invalidParams
8510	}
8511	return nil
8512}
8513
8514// SetRules sets the Rules field's value.
8515func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationConfiguration {
8516	s.Rules = v
8517	return s
8518}
8519
8520// An array of objects representing the details of a replication destination.
8521type ReplicationDestination struct {
8522	_ struct{} `type:"structure"`
8523
8524	// A Region to replicate to.
8525	//
8526	// Region is a required field
8527	Region *string `locationName:"region" min:"2" type:"string" required:"true"`
8528
8529	// The account ID of the destination registry to replicate to.
8530	//
8531	// RegistryId is a required field
8532	RegistryId *string `locationName:"registryId" type:"string" required:"true"`
8533}
8534
8535// String returns the string representation
8536func (s ReplicationDestination) String() string {
8537	return awsutil.Prettify(s)
8538}
8539
8540// GoString returns the string representation
8541func (s ReplicationDestination) GoString() string {
8542	return s.String()
8543}
8544
8545// Validate inspects the fields of the type to determine if they are valid.
8546func (s *ReplicationDestination) Validate() error {
8547	invalidParams := request.ErrInvalidParams{Context: "ReplicationDestination"}
8548	if s.Region == nil {
8549		invalidParams.Add(request.NewErrParamRequired("Region"))
8550	}
8551	if s.Region != nil && len(*s.Region) < 2 {
8552		invalidParams.Add(request.NewErrParamMinLen("Region", 2))
8553	}
8554	if s.RegistryId == nil {
8555		invalidParams.Add(request.NewErrParamRequired("RegistryId"))
8556	}
8557
8558	if invalidParams.Len() > 0 {
8559		return invalidParams
8560	}
8561	return nil
8562}
8563
8564// SetRegion sets the Region field's value.
8565func (s *ReplicationDestination) SetRegion(v string) *ReplicationDestination {
8566	s.Region = &v
8567	return s
8568}
8569
8570// SetRegistryId sets the RegistryId field's value.
8571func (s *ReplicationDestination) SetRegistryId(v string) *ReplicationDestination {
8572	s.RegistryId = &v
8573	return s
8574}
8575
8576// An array of objects representing the replication destinations for a replication
8577// configuration. A replication configuration may contain only one replication
8578// rule but the rule may contain one or more replication destinations.
8579type ReplicationRule struct {
8580	_ struct{} `type:"structure"`
8581
8582	// An array of objects representing the details of a replication destination.
8583	//
8584	// Destinations is a required field
8585	Destinations []*ReplicationDestination `locationName:"destinations" type:"list" required:"true"`
8586}
8587
8588// String returns the string representation
8589func (s ReplicationRule) String() string {
8590	return awsutil.Prettify(s)
8591}
8592
8593// GoString returns the string representation
8594func (s ReplicationRule) GoString() string {
8595	return s.String()
8596}
8597
8598// Validate inspects the fields of the type to determine if they are valid.
8599func (s *ReplicationRule) Validate() error {
8600	invalidParams := request.ErrInvalidParams{Context: "ReplicationRule"}
8601	if s.Destinations == nil {
8602		invalidParams.Add(request.NewErrParamRequired("Destinations"))
8603	}
8604	if s.Destinations != nil {
8605		for i, v := range s.Destinations {
8606			if v == nil {
8607				continue
8608			}
8609			if err := v.Validate(); err != nil {
8610				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Destinations", i), err.(request.ErrInvalidParams))
8611			}
8612		}
8613	}
8614
8615	if invalidParams.Len() > 0 {
8616		return invalidParams
8617	}
8618	return nil
8619}
8620
8621// SetDestinations sets the Destinations field's value.
8622func (s *ReplicationRule) SetDestinations(v []*ReplicationDestination) *ReplicationRule {
8623	s.Destinations = v
8624	return s
8625}
8626
8627// An object representing a repository.
8628type Repository struct {
8629	_ struct{} `type:"structure"`
8630
8631	// The date and time, in JavaScript date format, when the repository was created.
8632	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
8633
8634	// The encryption configuration for the repository. This determines how the
8635	// contents of your repository are encrypted at rest.
8636	EncryptionConfiguration *EncryptionConfiguration `locationName:"encryptionConfiguration" type:"structure"`
8637
8638	// The image scanning configuration for a repository.
8639	ImageScanningConfiguration *ImageScanningConfiguration `locationName:"imageScanningConfiguration" type:"structure"`
8640
8641	// The tag mutability setting for the repository.
8642	ImageTagMutability *string `locationName:"imageTagMutability" type:"string" enum:"ImageTagMutability"`
8643
8644	// The AWS account ID associated with the registry that contains the repository.
8645	RegistryId *string `locationName:"registryId" type:"string"`
8646
8647	// The Amazon Resource Name (ARN) that identifies the repository. The ARN contains
8648	// the arn:aws:ecr namespace, followed by the region of the repository, AWS
8649	// account ID of the repository owner, repository namespace, and repository
8650	// name. For example, arn:aws:ecr:region:012345678910:repository/test.
8651	RepositoryArn *string `locationName:"repositoryArn" type:"string"`
8652
8653	// The name of the repository.
8654	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
8655
8656	// The URI for the repository. You can use this URI for container image push
8657	// and pull operations.
8658	RepositoryUri *string `locationName:"repositoryUri" type:"string"`
8659}
8660
8661// String returns the string representation
8662func (s Repository) String() string {
8663	return awsutil.Prettify(s)
8664}
8665
8666// GoString returns the string representation
8667func (s Repository) GoString() string {
8668	return s.String()
8669}
8670
8671// SetCreatedAt sets the CreatedAt field's value.
8672func (s *Repository) SetCreatedAt(v time.Time) *Repository {
8673	s.CreatedAt = &v
8674	return s
8675}
8676
8677// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
8678func (s *Repository) SetEncryptionConfiguration(v *EncryptionConfiguration) *Repository {
8679	s.EncryptionConfiguration = v
8680	return s
8681}
8682
8683// SetImageScanningConfiguration sets the ImageScanningConfiguration field's value.
8684func (s *Repository) SetImageScanningConfiguration(v *ImageScanningConfiguration) *Repository {
8685	s.ImageScanningConfiguration = v
8686	return s
8687}
8688
8689// SetImageTagMutability sets the ImageTagMutability field's value.
8690func (s *Repository) SetImageTagMutability(v string) *Repository {
8691	s.ImageTagMutability = &v
8692	return s
8693}
8694
8695// SetRegistryId sets the RegistryId field's value.
8696func (s *Repository) SetRegistryId(v string) *Repository {
8697	s.RegistryId = &v
8698	return s
8699}
8700
8701// SetRepositoryArn sets the RepositoryArn field's value.
8702func (s *Repository) SetRepositoryArn(v string) *Repository {
8703	s.RepositoryArn = &v
8704	return s
8705}
8706
8707// SetRepositoryName sets the RepositoryName field's value.
8708func (s *Repository) SetRepositoryName(v string) *Repository {
8709	s.RepositoryName = &v
8710	return s
8711}
8712
8713// SetRepositoryUri sets the RepositoryUri field's value.
8714func (s *Repository) SetRepositoryUri(v string) *Repository {
8715	s.RepositoryUri = &v
8716	return s
8717}
8718
8719// The specified repository already exists in the specified registry.
8720type RepositoryAlreadyExistsException struct {
8721	_            struct{}                  `type:"structure"`
8722	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8723
8724	// The error message associated with the exception.
8725	Message_ *string `locationName:"message" type:"string"`
8726}
8727
8728// String returns the string representation
8729func (s RepositoryAlreadyExistsException) String() string {
8730	return awsutil.Prettify(s)
8731}
8732
8733// GoString returns the string representation
8734func (s RepositoryAlreadyExistsException) GoString() string {
8735	return s.String()
8736}
8737
8738func newErrorRepositoryAlreadyExistsException(v protocol.ResponseMetadata) error {
8739	return &RepositoryAlreadyExistsException{
8740		RespMetadata: v,
8741	}
8742}
8743
8744// Code returns the exception type name.
8745func (s *RepositoryAlreadyExistsException) Code() string {
8746	return "RepositoryAlreadyExistsException"
8747}
8748
8749// Message returns the exception's message.
8750func (s *RepositoryAlreadyExistsException) Message() string {
8751	if s.Message_ != nil {
8752		return *s.Message_
8753	}
8754	return ""
8755}
8756
8757// OrigErr always returns nil, satisfies awserr.Error interface.
8758func (s *RepositoryAlreadyExistsException) OrigErr() error {
8759	return nil
8760}
8761
8762func (s *RepositoryAlreadyExistsException) Error() string {
8763	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8764}
8765
8766// Status code returns the HTTP status code for the request's response error.
8767func (s *RepositoryAlreadyExistsException) StatusCode() int {
8768	return s.RespMetadata.StatusCode
8769}
8770
8771// RequestID returns the service's response RequestID for request.
8772func (s *RepositoryAlreadyExistsException) RequestID() string {
8773	return s.RespMetadata.RequestID
8774}
8775
8776// The specified repository contains images. To delete a repository that contains
8777// images, you must force the deletion with the force parameter.
8778type RepositoryNotEmptyException struct {
8779	_            struct{}                  `type:"structure"`
8780	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8781
8782	// The error message associated with the exception.
8783	Message_ *string `locationName:"message" type:"string"`
8784}
8785
8786// String returns the string representation
8787func (s RepositoryNotEmptyException) String() string {
8788	return awsutil.Prettify(s)
8789}
8790
8791// GoString returns the string representation
8792func (s RepositoryNotEmptyException) GoString() string {
8793	return s.String()
8794}
8795
8796func newErrorRepositoryNotEmptyException(v protocol.ResponseMetadata) error {
8797	return &RepositoryNotEmptyException{
8798		RespMetadata: v,
8799	}
8800}
8801
8802// Code returns the exception type name.
8803func (s *RepositoryNotEmptyException) Code() string {
8804	return "RepositoryNotEmptyException"
8805}
8806
8807// Message returns the exception's message.
8808func (s *RepositoryNotEmptyException) Message() string {
8809	if s.Message_ != nil {
8810		return *s.Message_
8811	}
8812	return ""
8813}
8814
8815// OrigErr always returns nil, satisfies awserr.Error interface.
8816func (s *RepositoryNotEmptyException) OrigErr() error {
8817	return nil
8818}
8819
8820func (s *RepositoryNotEmptyException) Error() string {
8821	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8822}
8823
8824// Status code returns the HTTP status code for the request's response error.
8825func (s *RepositoryNotEmptyException) StatusCode() int {
8826	return s.RespMetadata.StatusCode
8827}
8828
8829// RequestID returns the service's response RequestID for request.
8830func (s *RepositoryNotEmptyException) RequestID() string {
8831	return s.RespMetadata.RequestID
8832}
8833
8834// The specified repository could not be found. Check the spelling of the specified
8835// repository and ensure that you are performing operations on the correct registry.
8836type RepositoryNotFoundException struct {
8837	_            struct{}                  `type:"structure"`
8838	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8839
8840	// The error message associated with the exception.
8841	Message_ *string `locationName:"message" type:"string"`
8842}
8843
8844// String returns the string representation
8845func (s RepositoryNotFoundException) String() string {
8846	return awsutil.Prettify(s)
8847}
8848
8849// GoString returns the string representation
8850func (s RepositoryNotFoundException) GoString() string {
8851	return s.String()
8852}
8853
8854func newErrorRepositoryNotFoundException(v protocol.ResponseMetadata) error {
8855	return &RepositoryNotFoundException{
8856		RespMetadata: v,
8857	}
8858}
8859
8860// Code returns the exception type name.
8861func (s *RepositoryNotFoundException) Code() string {
8862	return "RepositoryNotFoundException"
8863}
8864
8865// Message returns the exception's message.
8866func (s *RepositoryNotFoundException) Message() string {
8867	if s.Message_ != nil {
8868		return *s.Message_
8869	}
8870	return ""
8871}
8872
8873// OrigErr always returns nil, satisfies awserr.Error interface.
8874func (s *RepositoryNotFoundException) OrigErr() error {
8875	return nil
8876}
8877
8878func (s *RepositoryNotFoundException) Error() string {
8879	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8880}
8881
8882// Status code returns the HTTP status code for the request's response error.
8883func (s *RepositoryNotFoundException) StatusCode() int {
8884	return s.RespMetadata.StatusCode
8885}
8886
8887// RequestID returns the service's response RequestID for request.
8888func (s *RepositoryNotFoundException) RequestID() string {
8889	return s.RespMetadata.RequestID
8890}
8891
8892// The specified repository and registry combination does not have an associated
8893// repository policy.
8894type RepositoryPolicyNotFoundException struct {
8895	_            struct{}                  `type:"structure"`
8896	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8897
8898	// The error message associated with the exception.
8899	Message_ *string `locationName:"message" type:"string"`
8900}
8901
8902// String returns the string representation
8903func (s RepositoryPolicyNotFoundException) String() string {
8904	return awsutil.Prettify(s)
8905}
8906
8907// GoString returns the string representation
8908func (s RepositoryPolicyNotFoundException) GoString() string {
8909	return s.String()
8910}
8911
8912func newErrorRepositoryPolicyNotFoundException(v protocol.ResponseMetadata) error {
8913	return &RepositoryPolicyNotFoundException{
8914		RespMetadata: v,
8915	}
8916}
8917
8918// Code returns the exception type name.
8919func (s *RepositoryPolicyNotFoundException) Code() string {
8920	return "RepositoryPolicyNotFoundException"
8921}
8922
8923// Message returns the exception's message.
8924func (s *RepositoryPolicyNotFoundException) Message() string {
8925	if s.Message_ != nil {
8926		return *s.Message_
8927	}
8928	return ""
8929}
8930
8931// OrigErr always returns nil, satisfies awserr.Error interface.
8932func (s *RepositoryPolicyNotFoundException) OrigErr() error {
8933	return nil
8934}
8935
8936func (s *RepositoryPolicyNotFoundException) Error() string {
8937	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8938}
8939
8940// Status code returns the HTTP status code for the request's response error.
8941func (s *RepositoryPolicyNotFoundException) StatusCode() int {
8942	return s.RespMetadata.StatusCode
8943}
8944
8945// RequestID returns the service's response RequestID for request.
8946func (s *RepositoryPolicyNotFoundException) RequestID() string {
8947	return s.RespMetadata.RequestID
8948}
8949
8950// The specified image scan could not be found. Ensure that image scanning is
8951// enabled on the repository and try again.
8952type ScanNotFoundException struct {
8953	_            struct{}                  `type:"structure"`
8954	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8955
8956	Message_ *string `locationName:"message" type:"string"`
8957}
8958
8959// String returns the string representation
8960func (s ScanNotFoundException) String() string {
8961	return awsutil.Prettify(s)
8962}
8963
8964// GoString returns the string representation
8965func (s ScanNotFoundException) GoString() string {
8966	return s.String()
8967}
8968
8969func newErrorScanNotFoundException(v protocol.ResponseMetadata) error {
8970	return &ScanNotFoundException{
8971		RespMetadata: v,
8972	}
8973}
8974
8975// Code returns the exception type name.
8976func (s *ScanNotFoundException) Code() string {
8977	return "ScanNotFoundException"
8978}
8979
8980// Message returns the exception's message.
8981func (s *ScanNotFoundException) Message() string {
8982	if s.Message_ != nil {
8983		return *s.Message_
8984	}
8985	return ""
8986}
8987
8988// OrigErr always returns nil, satisfies awserr.Error interface.
8989func (s *ScanNotFoundException) OrigErr() error {
8990	return nil
8991}
8992
8993func (s *ScanNotFoundException) Error() string {
8994	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8995}
8996
8997// Status code returns the HTTP status code for the request's response error.
8998func (s *ScanNotFoundException) StatusCode() int {
8999	return s.RespMetadata.StatusCode
9000}
9001
9002// RequestID returns the service's response RequestID for request.
9003func (s *ScanNotFoundException) RequestID() string {
9004	return s.RespMetadata.RequestID
9005}
9006
9007// These errors are usually caused by a server-side issue.
9008type ServerException struct {
9009	_            struct{}                  `type:"structure"`
9010	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9011
9012	// The error message associated with the exception.
9013	Message_ *string `locationName:"message" type:"string"`
9014}
9015
9016// String returns the string representation
9017func (s ServerException) String() string {
9018	return awsutil.Prettify(s)
9019}
9020
9021// GoString returns the string representation
9022func (s ServerException) GoString() string {
9023	return s.String()
9024}
9025
9026func newErrorServerException(v protocol.ResponseMetadata) error {
9027	return &ServerException{
9028		RespMetadata: v,
9029	}
9030}
9031
9032// Code returns the exception type name.
9033func (s *ServerException) Code() string {
9034	return "ServerException"
9035}
9036
9037// Message returns the exception's message.
9038func (s *ServerException) Message() string {
9039	if s.Message_ != nil {
9040		return *s.Message_
9041	}
9042	return ""
9043}
9044
9045// OrigErr always returns nil, satisfies awserr.Error interface.
9046func (s *ServerException) OrigErr() error {
9047	return nil
9048}
9049
9050func (s *ServerException) Error() string {
9051	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9052}
9053
9054// Status code returns the HTTP status code for the request's response error.
9055func (s *ServerException) StatusCode() int {
9056	return s.RespMetadata.StatusCode
9057}
9058
9059// RequestID returns the service's response RequestID for request.
9060func (s *ServerException) RequestID() string {
9061	return s.RespMetadata.RequestID
9062}
9063
9064type SetRepositoryPolicyInput struct {
9065	_ struct{} `type:"structure"`
9066
9067	// If the policy you are attempting to set on a repository policy would prevent
9068	// you from setting another policy in the future, you must force the SetRepositoryPolicy
9069	// operation. This is intended to prevent accidental repository lock outs.
9070	Force *bool `locationName:"force" type:"boolean"`
9071
9072	// The JSON repository policy text to apply to the repository. For more information,
9073	// see Amazon ECR Repository Policies (https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html)
9074	// in the Amazon Elastic Container Registry User Guide.
9075	//
9076	// PolicyText is a required field
9077	PolicyText *string `locationName:"policyText" type:"string" required:"true"`
9078
9079	// The AWS account ID associated with the registry that contains the repository.
9080	// If you do not specify a registry, the default registry is assumed.
9081	RegistryId *string `locationName:"registryId" type:"string"`
9082
9083	// The name of the repository to receive the policy.
9084	//
9085	// RepositoryName is a required field
9086	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
9087}
9088
9089// String returns the string representation
9090func (s SetRepositoryPolicyInput) String() string {
9091	return awsutil.Prettify(s)
9092}
9093
9094// GoString returns the string representation
9095func (s SetRepositoryPolicyInput) GoString() string {
9096	return s.String()
9097}
9098
9099// Validate inspects the fields of the type to determine if they are valid.
9100func (s *SetRepositoryPolicyInput) Validate() error {
9101	invalidParams := request.ErrInvalidParams{Context: "SetRepositoryPolicyInput"}
9102	if s.PolicyText == nil {
9103		invalidParams.Add(request.NewErrParamRequired("PolicyText"))
9104	}
9105	if s.RepositoryName == nil {
9106		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
9107	}
9108	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
9109		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
9110	}
9111
9112	if invalidParams.Len() > 0 {
9113		return invalidParams
9114	}
9115	return nil
9116}
9117
9118// SetForce sets the Force field's value.
9119func (s *SetRepositoryPolicyInput) SetForce(v bool) *SetRepositoryPolicyInput {
9120	s.Force = &v
9121	return s
9122}
9123
9124// SetPolicyText sets the PolicyText field's value.
9125func (s *SetRepositoryPolicyInput) SetPolicyText(v string) *SetRepositoryPolicyInput {
9126	s.PolicyText = &v
9127	return s
9128}
9129
9130// SetRegistryId sets the RegistryId field's value.
9131func (s *SetRepositoryPolicyInput) SetRegistryId(v string) *SetRepositoryPolicyInput {
9132	s.RegistryId = &v
9133	return s
9134}
9135
9136// SetRepositoryName sets the RepositoryName field's value.
9137func (s *SetRepositoryPolicyInput) SetRepositoryName(v string) *SetRepositoryPolicyInput {
9138	s.RepositoryName = &v
9139	return s
9140}
9141
9142type SetRepositoryPolicyOutput struct {
9143	_ struct{} `type:"structure"`
9144
9145	// The JSON repository policy text applied to the repository.
9146	PolicyText *string `locationName:"policyText" type:"string"`
9147
9148	// The registry ID associated with the request.
9149	RegistryId *string `locationName:"registryId" type:"string"`
9150
9151	// The repository name associated with the request.
9152	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
9153}
9154
9155// String returns the string representation
9156func (s SetRepositoryPolicyOutput) String() string {
9157	return awsutil.Prettify(s)
9158}
9159
9160// GoString returns the string representation
9161func (s SetRepositoryPolicyOutput) GoString() string {
9162	return s.String()
9163}
9164
9165// SetPolicyText sets the PolicyText field's value.
9166func (s *SetRepositoryPolicyOutput) SetPolicyText(v string) *SetRepositoryPolicyOutput {
9167	s.PolicyText = &v
9168	return s
9169}
9170
9171// SetRegistryId sets the RegistryId field's value.
9172func (s *SetRepositoryPolicyOutput) SetRegistryId(v string) *SetRepositoryPolicyOutput {
9173	s.RegistryId = &v
9174	return s
9175}
9176
9177// SetRepositoryName sets the RepositoryName field's value.
9178func (s *SetRepositoryPolicyOutput) SetRepositoryName(v string) *SetRepositoryPolicyOutput {
9179	s.RepositoryName = &v
9180	return s
9181}
9182
9183type StartImageScanInput struct {
9184	_ struct{} `type:"structure"`
9185
9186	// An object with identifying information for an Amazon ECR image.
9187	//
9188	// ImageId is a required field
9189	ImageId *ImageIdentifier `locationName:"imageId" type:"structure" required:"true"`
9190
9191	// The AWS account ID associated with the registry that contains the repository
9192	// in which to start an image scan request. If you do not specify a registry,
9193	// the default registry is assumed.
9194	RegistryId *string `locationName:"registryId" type:"string"`
9195
9196	// The name of the repository that contains the images to scan.
9197	//
9198	// RepositoryName is a required field
9199	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
9200}
9201
9202// String returns the string representation
9203func (s StartImageScanInput) String() string {
9204	return awsutil.Prettify(s)
9205}
9206
9207// GoString returns the string representation
9208func (s StartImageScanInput) GoString() string {
9209	return s.String()
9210}
9211
9212// Validate inspects the fields of the type to determine if they are valid.
9213func (s *StartImageScanInput) Validate() error {
9214	invalidParams := request.ErrInvalidParams{Context: "StartImageScanInput"}
9215	if s.ImageId == nil {
9216		invalidParams.Add(request.NewErrParamRequired("ImageId"))
9217	}
9218	if s.RepositoryName == nil {
9219		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
9220	}
9221	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
9222		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
9223	}
9224	if s.ImageId != nil {
9225		if err := s.ImageId.Validate(); err != nil {
9226			invalidParams.AddNested("ImageId", err.(request.ErrInvalidParams))
9227		}
9228	}
9229
9230	if invalidParams.Len() > 0 {
9231		return invalidParams
9232	}
9233	return nil
9234}
9235
9236// SetImageId sets the ImageId field's value.
9237func (s *StartImageScanInput) SetImageId(v *ImageIdentifier) *StartImageScanInput {
9238	s.ImageId = v
9239	return s
9240}
9241
9242// SetRegistryId sets the RegistryId field's value.
9243func (s *StartImageScanInput) SetRegistryId(v string) *StartImageScanInput {
9244	s.RegistryId = &v
9245	return s
9246}
9247
9248// SetRepositoryName sets the RepositoryName field's value.
9249func (s *StartImageScanInput) SetRepositoryName(v string) *StartImageScanInput {
9250	s.RepositoryName = &v
9251	return s
9252}
9253
9254type StartImageScanOutput struct {
9255	_ struct{} `type:"structure"`
9256
9257	// An object with identifying information for an Amazon ECR image.
9258	ImageId *ImageIdentifier `locationName:"imageId" type:"structure"`
9259
9260	// The current state of the scan.
9261	ImageScanStatus *ImageScanStatus `locationName:"imageScanStatus" type:"structure"`
9262
9263	// The registry ID associated with the request.
9264	RegistryId *string `locationName:"registryId" type:"string"`
9265
9266	// The repository name associated with the request.
9267	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
9268}
9269
9270// String returns the string representation
9271func (s StartImageScanOutput) String() string {
9272	return awsutil.Prettify(s)
9273}
9274
9275// GoString returns the string representation
9276func (s StartImageScanOutput) GoString() string {
9277	return s.String()
9278}
9279
9280// SetImageId sets the ImageId field's value.
9281func (s *StartImageScanOutput) SetImageId(v *ImageIdentifier) *StartImageScanOutput {
9282	s.ImageId = v
9283	return s
9284}
9285
9286// SetImageScanStatus sets the ImageScanStatus field's value.
9287func (s *StartImageScanOutput) SetImageScanStatus(v *ImageScanStatus) *StartImageScanOutput {
9288	s.ImageScanStatus = v
9289	return s
9290}
9291
9292// SetRegistryId sets the RegistryId field's value.
9293func (s *StartImageScanOutput) SetRegistryId(v string) *StartImageScanOutput {
9294	s.RegistryId = &v
9295	return s
9296}
9297
9298// SetRepositoryName sets the RepositoryName field's value.
9299func (s *StartImageScanOutput) SetRepositoryName(v string) *StartImageScanOutput {
9300	s.RepositoryName = &v
9301	return s
9302}
9303
9304type StartLifecyclePolicyPreviewInput struct {
9305	_ struct{} `type:"structure"`
9306
9307	// The policy to be evaluated against. If you do not specify a policy, the current
9308	// policy for the repository is used.
9309	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string"`
9310
9311	// The AWS account ID associated with the registry that contains the repository.
9312	// If you do not specify a registry, the default registry is assumed.
9313	RegistryId *string `locationName:"registryId" type:"string"`
9314
9315	// The name of the repository to be evaluated.
9316	//
9317	// RepositoryName is a required field
9318	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
9319}
9320
9321// String returns the string representation
9322func (s StartLifecyclePolicyPreviewInput) String() string {
9323	return awsutil.Prettify(s)
9324}
9325
9326// GoString returns the string representation
9327func (s StartLifecyclePolicyPreviewInput) GoString() string {
9328	return s.String()
9329}
9330
9331// Validate inspects the fields of the type to determine if they are valid.
9332func (s *StartLifecyclePolicyPreviewInput) Validate() error {
9333	invalidParams := request.ErrInvalidParams{Context: "StartLifecyclePolicyPreviewInput"}
9334	if s.LifecyclePolicyText != nil && len(*s.LifecyclePolicyText) < 100 {
9335		invalidParams.Add(request.NewErrParamMinLen("LifecyclePolicyText", 100))
9336	}
9337	if s.RepositoryName == nil {
9338		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
9339	}
9340	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
9341		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
9342	}
9343
9344	if invalidParams.Len() > 0 {
9345		return invalidParams
9346	}
9347	return nil
9348}
9349
9350// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
9351func (s *StartLifecyclePolicyPreviewInput) SetLifecyclePolicyText(v string) *StartLifecyclePolicyPreviewInput {
9352	s.LifecyclePolicyText = &v
9353	return s
9354}
9355
9356// SetRegistryId sets the RegistryId field's value.
9357func (s *StartLifecyclePolicyPreviewInput) SetRegistryId(v string) *StartLifecyclePolicyPreviewInput {
9358	s.RegistryId = &v
9359	return s
9360}
9361
9362// SetRepositoryName sets the RepositoryName field's value.
9363func (s *StartLifecyclePolicyPreviewInput) SetRepositoryName(v string) *StartLifecyclePolicyPreviewInput {
9364	s.RepositoryName = &v
9365	return s
9366}
9367
9368type StartLifecyclePolicyPreviewOutput struct {
9369	_ struct{} `type:"structure"`
9370
9371	// The JSON repository policy text.
9372	LifecyclePolicyText *string `locationName:"lifecyclePolicyText" min:"100" type:"string"`
9373
9374	// The registry ID associated with the request.
9375	RegistryId *string `locationName:"registryId" type:"string"`
9376
9377	// The repository name associated with the request.
9378	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
9379
9380	// The status of the lifecycle policy preview request.
9381	Status *string `locationName:"status" type:"string" enum:"LifecyclePolicyPreviewStatus"`
9382}
9383
9384// String returns the string representation
9385func (s StartLifecyclePolicyPreviewOutput) String() string {
9386	return awsutil.Prettify(s)
9387}
9388
9389// GoString returns the string representation
9390func (s StartLifecyclePolicyPreviewOutput) GoString() string {
9391	return s.String()
9392}
9393
9394// SetLifecyclePolicyText sets the LifecyclePolicyText field's value.
9395func (s *StartLifecyclePolicyPreviewOutput) SetLifecyclePolicyText(v string) *StartLifecyclePolicyPreviewOutput {
9396	s.LifecyclePolicyText = &v
9397	return s
9398}
9399
9400// SetRegistryId sets the RegistryId field's value.
9401func (s *StartLifecyclePolicyPreviewOutput) SetRegistryId(v string) *StartLifecyclePolicyPreviewOutput {
9402	s.RegistryId = &v
9403	return s
9404}
9405
9406// SetRepositoryName sets the RepositoryName field's value.
9407func (s *StartLifecyclePolicyPreviewOutput) SetRepositoryName(v string) *StartLifecyclePolicyPreviewOutput {
9408	s.RepositoryName = &v
9409	return s
9410}
9411
9412// SetStatus sets the Status field's value.
9413func (s *StartLifecyclePolicyPreviewOutput) SetStatus(v string) *StartLifecyclePolicyPreviewOutput {
9414	s.Status = &v
9415	return s
9416}
9417
9418// The metadata that you apply to a resource to help you categorize and organize
9419// them. Each tag consists of a key and an optional value, both of which you
9420// define. Tag keys can have a maximum character length of 128 characters, and
9421// tag values can have a maximum length of 256 characters.
9422type Tag struct {
9423	_ struct{} `type:"structure"`
9424
9425	// One part of a key-value pair that make up a tag. A key is a general label
9426	// that acts like a category for more specific tag values.
9427	Key *string `type:"string"`
9428
9429	// The optional part of a key-value pair that make up a tag. A value acts as
9430	// a descriptor within a tag category (key).
9431	Value *string `type:"string"`
9432}
9433
9434// String returns the string representation
9435func (s Tag) String() string {
9436	return awsutil.Prettify(s)
9437}
9438
9439// GoString returns the string representation
9440func (s Tag) GoString() string {
9441	return s.String()
9442}
9443
9444// SetKey sets the Key field's value.
9445func (s *Tag) SetKey(v string) *Tag {
9446	s.Key = &v
9447	return s
9448}
9449
9450// SetValue sets the Value field's value.
9451func (s *Tag) SetValue(v string) *Tag {
9452	s.Value = &v
9453	return s
9454}
9455
9456type TagResourceInput struct {
9457	_ struct{} `type:"structure"`
9458
9459	// The Amazon Resource Name (ARN) of the the resource to which to add tags.
9460	// Currently, the only supported resource is an Amazon ECR repository.
9461	//
9462	// ResourceArn is a required field
9463	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
9464
9465	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
9466	// keys can have a maximum character length of 128 characters, and tag values
9467	// can have a maximum length of 256 characters.
9468	//
9469	// Tags is a required field
9470	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
9471}
9472
9473// String returns the string representation
9474func (s TagResourceInput) String() string {
9475	return awsutil.Prettify(s)
9476}
9477
9478// GoString returns the string representation
9479func (s TagResourceInput) GoString() string {
9480	return s.String()
9481}
9482
9483// Validate inspects the fields of the type to determine if they are valid.
9484func (s *TagResourceInput) Validate() error {
9485	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
9486	if s.ResourceArn == nil {
9487		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9488	}
9489	if s.Tags == nil {
9490		invalidParams.Add(request.NewErrParamRequired("Tags"))
9491	}
9492
9493	if invalidParams.Len() > 0 {
9494		return invalidParams
9495	}
9496	return nil
9497}
9498
9499// SetResourceArn sets the ResourceArn field's value.
9500func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
9501	s.ResourceArn = &v
9502	return s
9503}
9504
9505// SetTags sets the Tags field's value.
9506func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
9507	s.Tags = v
9508	return s
9509}
9510
9511type TagResourceOutput struct {
9512	_ struct{} `type:"structure"`
9513}
9514
9515// String returns the string representation
9516func (s TagResourceOutput) String() string {
9517	return awsutil.Prettify(s)
9518}
9519
9520// GoString returns the string representation
9521func (s TagResourceOutput) GoString() string {
9522	return s.String()
9523}
9524
9525// The list of tags on the repository is over the limit. The maximum number
9526// of tags that can be applied to a repository is 50.
9527type TooManyTagsException struct {
9528	_            struct{}                  `type:"structure"`
9529	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9530
9531	Message_ *string `locationName:"message" type:"string"`
9532}
9533
9534// String returns the string representation
9535func (s TooManyTagsException) String() string {
9536	return awsutil.Prettify(s)
9537}
9538
9539// GoString returns the string representation
9540func (s TooManyTagsException) GoString() string {
9541	return s.String()
9542}
9543
9544func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
9545	return &TooManyTagsException{
9546		RespMetadata: v,
9547	}
9548}
9549
9550// Code returns the exception type name.
9551func (s *TooManyTagsException) Code() string {
9552	return "TooManyTagsException"
9553}
9554
9555// Message returns the exception's message.
9556func (s *TooManyTagsException) Message() string {
9557	if s.Message_ != nil {
9558		return *s.Message_
9559	}
9560	return ""
9561}
9562
9563// OrigErr always returns nil, satisfies awserr.Error interface.
9564func (s *TooManyTagsException) OrigErr() error {
9565	return nil
9566}
9567
9568func (s *TooManyTagsException) Error() string {
9569	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9570}
9571
9572// Status code returns the HTTP status code for the request's response error.
9573func (s *TooManyTagsException) StatusCode() int {
9574	return s.RespMetadata.StatusCode
9575}
9576
9577// RequestID returns the service's response RequestID for request.
9578func (s *TooManyTagsException) RequestID() string {
9579	return s.RespMetadata.RequestID
9580}
9581
9582// The image is of a type that cannot be scanned.
9583type UnsupportedImageTypeException struct {
9584	_            struct{}                  `type:"structure"`
9585	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9586
9587	Message_ *string `locationName:"message" type:"string"`
9588}
9589
9590// String returns the string representation
9591func (s UnsupportedImageTypeException) String() string {
9592	return awsutil.Prettify(s)
9593}
9594
9595// GoString returns the string representation
9596func (s UnsupportedImageTypeException) GoString() string {
9597	return s.String()
9598}
9599
9600func newErrorUnsupportedImageTypeException(v protocol.ResponseMetadata) error {
9601	return &UnsupportedImageTypeException{
9602		RespMetadata: v,
9603	}
9604}
9605
9606// Code returns the exception type name.
9607func (s *UnsupportedImageTypeException) Code() string {
9608	return "UnsupportedImageTypeException"
9609}
9610
9611// Message returns the exception's message.
9612func (s *UnsupportedImageTypeException) Message() string {
9613	if s.Message_ != nil {
9614		return *s.Message_
9615	}
9616	return ""
9617}
9618
9619// OrigErr always returns nil, satisfies awserr.Error interface.
9620func (s *UnsupportedImageTypeException) OrigErr() error {
9621	return nil
9622}
9623
9624func (s *UnsupportedImageTypeException) Error() string {
9625	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9626}
9627
9628// Status code returns the HTTP status code for the request's response error.
9629func (s *UnsupportedImageTypeException) StatusCode() int {
9630	return s.RespMetadata.StatusCode
9631}
9632
9633// RequestID returns the service's response RequestID for request.
9634func (s *UnsupportedImageTypeException) RequestID() string {
9635	return s.RespMetadata.RequestID
9636}
9637
9638type UntagResourceInput struct {
9639	_ struct{} `type:"structure"`
9640
9641	// The Amazon Resource Name (ARN) of the resource from which to remove tags.
9642	// Currently, the only supported resource is an Amazon ECR repository.
9643	//
9644	// ResourceArn is a required field
9645	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
9646
9647	// The keys of the tags to be removed.
9648	//
9649	// TagKeys is a required field
9650	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
9651}
9652
9653// String returns the string representation
9654func (s UntagResourceInput) String() string {
9655	return awsutil.Prettify(s)
9656}
9657
9658// GoString returns the string representation
9659func (s UntagResourceInput) GoString() string {
9660	return s.String()
9661}
9662
9663// Validate inspects the fields of the type to determine if they are valid.
9664func (s *UntagResourceInput) Validate() error {
9665	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9666	if s.ResourceArn == nil {
9667		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9668	}
9669	if s.TagKeys == nil {
9670		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9671	}
9672
9673	if invalidParams.Len() > 0 {
9674		return invalidParams
9675	}
9676	return nil
9677}
9678
9679// SetResourceArn sets the ResourceArn field's value.
9680func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
9681	s.ResourceArn = &v
9682	return s
9683}
9684
9685// SetTagKeys sets the TagKeys field's value.
9686func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9687	s.TagKeys = v
9688	return s
9689}
9690
9691type UntagResourceOutput struct {
9692	_ struct{} `type:"structure"`
9693}
9694
9695// String returns the string representation
9696func (s UntagResourceOutput) String() string {
9697	return awsutil.Prettify(s)
9698}
9699
9700// GoString returns the string representation
9701func (s UntagResourceOutput) GoString() string {
9702	return s.String()
9703}
9704
9705type UploadLayerPartInput struct {
9706	_ struct{} `type:"structure"`
9707
9708	// The base64-encoded layer part payload.
9709	//
9710	// LayerPartBlob is automatically base64 encoded/decoded by the SDK.
9711	//
9712	// LayerPartBlob is a required field
9713	LayerPartBlob []byte `locationName:"layerPartBlob" type:"blob" required:"true"`
9714
9715	// The position of the first byte of the layer part witin the overall image
9716	// layer.
9717	//
9718	// PartFirstByte is a required field
9719	PartFirstByte *int64 `locationName:"partFirstByte" type:"long" required:"true"`
9720
9721	// The position of the last byte of the layer part within the overall image
9722	// layer.
9723	//
9724	// PartLastByte is a required field
9725	PartLastByte *int64 `locationName:"partLastByte" type:"long" required:"true"`
9726
9727	// The AWS account ID associated with the registry to which you are uploading
9728	// layer parts. If you do not specify a registry, the default registry is assumed.
9729	RegistryId *string `locationName:"registryId" type:"string"`
9730
9731	// The name of the repository to which you are uploading layer parts.
9732	//
9733	// RepositoryName is a required field
9734	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
9735
9736	// The upload ID from a previous InitiateLayerUpload operation to associate
9737	// with the layer part upload.
9738	//
9739	// UploadId is a required field
9740	UploadId *string `locationName:"uploadId" type:"string" required:"true"`
9741}
9742
9743// String returns the string representation
9744func (s UploadLayerPartInput) String() string {
9745	return awsutil.Prettify(s)
9746}
9747
9748// GoString returns the string representation
9749func (s UploadLayerPartInput) GoString() string {
9750	return s.String()
9751}
9752
9753// Validate inspects the fields of the type to determine if they are valid.
9754func (s *UploadLayerPartInput) Validate() error {
9755	invalidParams := request.ErrInvalidParams{Context: "UploadLayerPartInput"}
9756	if s.LayerPartBlob == nil {
9757		invalidParams.Add(request.NewErrParamRequired("LayerPartBlob"))
9758	}
9759	if s.PartFirstByte == nil {
9760		invalidParams.Add(request.NewErrParamRequired("PartFirstByte"))
9761	}
9762	if s.PartLastByte == nil {
9763		invalidParams.Add(request.NewErrParamRequired("PartLastByte"))
9764	}
9765	if s.RepositoryName == nil {
9766		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
9767	}
9768	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
9769		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
9770	}
9771	if s.UploadId == nil {
9772		invalidParams.Add(request.NewErrParamRequired("UploadId"))
9773	}
9774
9775	if invalidParams.Len() > 0 {
9776		return invalidParams
9777	}
9778	return nil
9779}
9780
9781// SetLayerPartBlob sets the LayerPartBlob field's value.
9782func (s *UploadLayerPartInput) SetLayerPartBlob(v []byte) *UploadLayerPartInput {
9783	s.LayerPartBlob = v
9784	return s
9785}
9786
9787// SetPartFirstByte sets the PartFirstByte field's value.
9788func (s *UploadLayerPartInput) SetPartFirstByte(v int64) *UploadLayerPartInput {
9789	s.PartFirstByte = &v
9790	return s
9791}
9792
9793// SetPartLastByte sets the PartLastByte field's value.
9794func (s *UploadLayerPartInput) SetPartLastByte(v int64) *UploadLayerPartInput {
9795	s.PartLastByte = &v
9796	return s
9797}
9798
9799// SetRegistryId sets the RegistryId field's value.
9800func (s *UploadLayerPartInput) SetRegistryId(v string) *UploadLayerPartInput {
9801	s.RegistryId = &v
9802	return s
9803}
9804
9805// SetRepositoryName sets the RepositoryName field's value.
9806func (s *UploadLayerPartInput) SetRepositoryName(v string) *UploadLayerPartInput {
9807	s.RepositoryName = &v
9808	return s
9809}
9810
9811// SetUploadId sets the UploadId field's value.
9812func (s *UploadLayerPartInput) SetUploadId(v string) *UploadLayerPartInput {
9813	s.UploadId = &v
9814	return s
9815}
9816
9817type UploadLayerPartOutput struct {
9818	_ struct{} `type:"structure"`
9819
9820	// The integer value of the last byte received in the request.
9821	LastByteReceived *int64 `locationName:"lastByteReceived" type:"long"`
9822
9823	// The registry ID associated with the request.
9824	RegistryId *string `locationName:"registryId" type:"string"`
9825
9826	// The repository name associated with the request.
9827	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
9828
9829	// The upload ID associated with the request.
9830	UploadId *string `locationName:"uploadId" type:"string"`
9831}
9832
9833// String returns the string representation
9834func (s UploadLayerPartOutput) String() string {
9835	return awsutil.Prettify(s)
9836}
9837
9838// GoString returns the string representation
9839func (s UploadLayerPartOutput) GoString() string {
9840	return s.String()
9841}
9842
9843// SetLastByteReceived sets the LastByteReceived field's value.
9844func (s *UploadLayerPartOutput) SetLastByteReceived(v int64) *UploadLayerPartOutput {
9845	s.LastByteReceived = &v
9846	return s
9847}
9848
9849// SetRegistryId sets the RegistryId field's value.
9850func (s *UploadLayerPartOutput) SetRegistryId(v string) *UploadLayerPartOutput {
9851	s.RegistryId = &v
9852	return s
9853}
9854
9855// SetRepositoryName sets the RepositoryName field's value.
9856func (s *UploadLayerPartOutput) SetRepositoryName(v string) *UploadLayerPartOutput {
9857	s.RepositoryName = &v
9858	return s
9859}
9860
9861// SetUploadId sets the UploadId field's value.
9862func (s *UploadLayerPartOutput) SetUploadId(v string) *UploadLayerPartOutput {
9863	s.UploadId = &v
9864	return s
9865}
9866
9867// The upload could not be found, or the specified upload ID is not valid for
9868// this repository.
9869type UploadNotFoundException struct {
9870	_            struct{}                  `type:"structure"`
9871	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9872
9873	// The error message associated with the exception.
9874	Message_ *string `locationName:"message" type:"string"`
9875}
9876
9877// String returns the string representation
9878func (s UploadNotFoundException) String() string {
9879	return awsutil.Prettify(s)
9880}
9881
9882// GoString returns the string representation
9883func (s UploadNotFoundException) GoString() string {
9884	return s.String()
9885}
9886
9887func newErrorUploadNotFoundException(v protocol.ResponseMetadata) error {
9888	return &UploadNotFoundException{
9889		RespMetadata: v,
9890	}
9891}
9892
9893// Code returns the exception type name.
9894func (s *UploadNotFoundException) Code() string {
9895	return "UploadNotFoundException"
9896}
9897
9898// Message returns the exception's message.
9899func (s *UploadNotFoundException) Message() string {
9900	if s.Message_ != nil {
9901		return *s.Message_
9902	}
9903	return ""
9904}
9905
9906// OrigErr always returns nil, satisfies awserr.Error interface.
9907func (s *UploadNotFoundException) OrigErr() error {
9908	return nil
9909}
9910
9911func (s *UploadNotFoundException) Error() string {
9912	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9913}
9914
9915// Status code returns the HTTP status code for the request's response error.
9916func (s *UploadNotFoundException) StatusCode() int {
9917	return s.RespMetadata.StatusCode
9918}
9919
9920// RequestID returns the service's response RequestID for request.
9921func (s *UploadNotFoundException) RequestID() string {
9922	return s.RespMetadata.RequestID
9923}
9924
9925// There was an exception validating this request.
9926type ValidationException struct {
9927	_            struct{}                  `type:"structure"`
9928	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9929
9930	Message_ *string `locationName:"message" type:"string"`
9931}
9932
9933// String returns the string representation
9934func (s ValidationException) String() string {
9935	return awsutil.Prettify(s)
9936}
9937
9938// GoString returns the string representation
9939func (s ValidationException) GoString() string {
9940	return s.String()
9941}
9942
9943func newErrorValidationException(v protocol.ResponseMetadata) error {
9944	return &ValidationException{
9945		RespMetadata: v,
9946	}
9947}
9948
9949// Code returns the exception type name.
9950func (s *ValidationException) Code() string {
9951	return "ValidationException"
9952}
9953
9954// Message returns the exception's message.
9955func (s *ValidationException) Message() string {
9956	if s.Message_ != nil {
9957		return *s.Message_
9958	}
9959	return ""
9960}
9961
9962// OrigErr always returns nil, satisfies awserr.Error interface.
9963func (s *ValidationException) OrigErr() error {
9964	return nil
9965}
9966
9967func (s *ValidationException) Error() string {
9968	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9969}
9970
9971// Status code returns the HTTP status code for the request's response error.
9972func (s *ValidationException) StatusCode() int {
9973	return s.RespMetadata.StatusCode
9974}
9975
9976// RequestID returns the service's response RequestID for request.
9977func (s *ValidationException) RequestID() string {
9978	return s.RespMetadata.RequestID
9979}
9980
9981const (
9982	// EncryptionTypeAes256 is a EncryptionType enum value
9983	EncryptionTypeAes256 = "AES256"
9984
9985	// EncryptionTypeKms is a EncryptionType enum value
9986	EncryptionTypeKms = "KMS"
9987)
9988
9989// EncryptionType_Values returns all elements of the EncryptionType enum
9990func EncryptionType_Values() []string {
9991	return []string{
9992		EncryptionTypeAes256,
9993		EncryptionTypeKms,
9994	}
9995}
9996
9997const (
9998	// FindingSeverityInformational is a FindingSeverity enum value
9999	FindingSeverityInformational = "INFORMATIONAL"
10000
10001	// FindingSeverityLow is a FindingSeverity enum value
10002	FindingSeverityLow = "LOW"
10003
10004	// FindingSeverityMedium is a FindingSeverity enum value
10005	FindingSeverityMedium = "MEDIUM"
10006
10007	// FindingSeverityHigh is a FindingSeverity enum value
10008	FindingSeverityHigh = "HIGH"
10009
10010	// FindingSeverityCritical is a FindingSeverity enum value
10011	FindingSeverityCritical = "CRITICAL"
10012
10013	// FindingSeverityUndefined is a FindingSeverity enum value
10014	FindingSeverityUndefined = "UNDEFINED"
10015)
10016
10017// FindingSeverity_Values returns all elements of the FindingSeverity enum
10018func FindingSeverity_Values() []string {
10019	return []string{
10020		FindingSeverityInformational,
10021		FindingSeverityLow,
10022		FindingSeverityMedium,
10023		FindingSeverityHigh,
10024		FindingSeverityCritical,
10025		FindingSeverityUndefined,
10026	}
10027}
10028
10029const (
10030	// ImageActionTypeExpire is a ImageActionType enum value
10031	ImageActionTypeExpire = "EXPIRE"
10032)
10033
10034// ImageActionType_Values returns all elements of the ImageActionType enum
10035func ImageActionType_Values() []string {
10036	return []string{
10037		ImageActionTypeExpire,
10038	}
10039}
10040
10041const (
10042	// ImageFailureCodeInvalidImageDigest is a ImageFailureCode enum value
10043	ImageFailureCodeInvalidImageDigest = "InvalidImageDigest"
10044
10045	// ImageFailureCodeInvalidImageTag is a ImageFailureCode enum value
10046	ImageFailureCodeInvalidImageTag = "InvalidImageTag"
10047
10048	// ImageFailureCodeImageTagDoesNotMatchDigest is a ImageFailureCode enum value
10049	ImageFailureCodeImageTagDoesNotMatchDigest = "ImageTagDoesNotMatchDigest"
10050
10051	// ImageFailureCodeImageNotFound is a ImageFailureCode enum value
10052	ImageFailureCodeImageNotFound = "ImageNotFound"
10053
10054	// ImageFailureCodeMissingDigestAndTag is a ImageFailureCode enum value
10055	ImageFailureCodeMissingDigestAndTag = "MissingDigestAndTag"
10056
10057	// ImageFailureCodeImageReferencedByManifestList is a ImageFailureCode enum value
10058	ImageFailureCodeImageReferencedByManifestList = "ImageReferencedByManifestList"
10059
10060	// ImageFailureCodeKmsError is a ImageFailureCode enum value
10061	ImageFailureCodeKmsError = "KmsError"
10062)
10063
10064// ImageFailureCode_Values returns all elements of the ImageFailureCode enum
10065func ImageFailureCode_Values() []string {
10066	return []string{
10067		ImageFailureCodeInvalidImageDigest,
10068		ImageFailureCodeInvalidImageTag,
10069		ImageFailureCodeImageTagDoesNotMatchDigest,
10070		ImageFailureCodeImageNotFound,
10071		ImageFailureCodeMissingDigestAndTag,
10072		ImageFailureCodeImageReferencedByManifestList,
10073		ImageFailureCodeKmsError,
10074	}
10075}
10076
10077const (
10078	// ImageTagMutabilityMutable is a ImageTagMutability enum value
10079	ImageTagMutabilityMutable = "MUTABLE"
10080
10081	// ImageTagMutabilityImmutable is a ImageTagMutability enum value
10082	ImageTagMutabilityImmutable = "IMMUTABLE"
10083)
10084
10085// ImageTagMutability_Values returns all elements of the ImageTagMutability enum
10086func ImageTagMutability_Values() []string {
10087	return []string{
10088		ImageTagMutabilityMutable,
10089		ImageTagMutabilityImmutable,
10090	}
10091}
10092
10093const (
10094	// LayerAvailabilityAvailable is a LayerAvailability enum value
10095	LayerAvailabilityAvailable = "AVAILABLE"
10096
10097	// LayerAvailabilityUnavailable is a LayerAvailability enum value
10098	LayerAvailabilityUnavailable = "UNAVAILABLE"
10099)
10100
10101// LayerAvailability_Values returns all elements of the LayerAvailability enum
10102func LayerAvailability_Values() []string {
10103	return []string{
10104		LayerAvailabilityAvailable,
10105		LayerAvailabilityUnavailable,
10106	}
10107}
10108
10109const (
10110	// LayerFailureCodeInvalidLayerDigest is a LayerFailureCode enum value
10111	LayerFailureCodeInvalidLayerDigest = "InvalidLayerDigest"
10112
10113	// LayerFailureCodeMissingLayerDigest is a LayerFailureCode enum value
10114	LayerFailureCodeMissingLayerDigest = "MissingLayerDigest"
10115)
10116
10117// LayerFailureCode_Values returns all elements of the LayerFailureCode enum
10118func LayerFailureCode_Values() []string {
10119	return []string{
10120		LayerFailureCodeInvalidLayerDigest,
10121		LayerFailureCodeMissingLayerDigest,
10122	}
10123}
10124
10125const (
10126	// LifecyclePolicyPreviewStatusInProgress is a LifecyclePolicyPreviewStatus enum value
10127	LifecyclePolicyPreviewStatusInProgress = "IN_PROGRESS"
10128
10129	// LifecyclePolicyPreviewStatusComplete is a LifecyclePolicyPreviewStatus enum value
10130	LifecyclePolicyPreviewStatusComplete = "COMPLETE"
10131
10132	// LifecyclePolicyPreviewStatusExpired is a LifecyclePolicyPreviewStatus enum value
10133	LifecyclePolicyPreviewStatusExpired = "EXPIRED"
10134
10135	// LifecyclePolicyPreviewStatusFailed is a LifecyclePolicyPreviewStatus enum value
10136	LifecyclePolicyPreviewStatusFailed = "FAILED"
10137)
10138
10139// LifecyclePolicyPreviewStatus_Values returns all elements of the LifecyclePolicyPreviewStatus enum
10140func LifecyclePolicyPreviewStatus_Values() []string {
10141	return []string{
10142		LifecyclePolicyPreviewStatusInProgress,
10143		LifecyclePolicyPreviewStatusComplete,
10144		LifecyclePolicyPreviewStatusExpired,
10145		LifecyclePolicyPreviewStatusFailed,
10146	}
10147}
10148
10149const (
10150	// ScanStatusInProgress is a ScanStatus enum value
10151	ScanStatusInProgress = "IN_PROGRESS"
10152
10153	// ScanStatusComplete is a ScanStatus enum value
10154	ScanStatusComplete = "COMPLETE"
10155
10156	// ScanStatusFailed is a ScanStatus enum value
10157	ScanStatusFailed = "FAILED"
10158)
10159
10160// ScanStatus_Values returns all elements of the ScanStatus enum
10161func ScanStatus_Values() []string {
10162	return []string{
10163		ScanStatusInProgress,
10164		ScanStatusComplete,
10165		ScanStatusFailed,
10166	}
10167}
10168
10169const (
10170	// TagStatusTagged is a TagStatus enum value
10171	TagStatusTagged = "TAGGED"
10172
10173	// TagStatusUntagged is a TagStatus enum value
10174	TagStatusUntagged = "UNTAGGED"
10175
10176	// TagStatusAny is a TagStatus enum value
10177	TagStatusAny = "ANY"
10178)
10179
10180// TagStatus_Values returns all elements of the TagStatus enum
10181func TagStatus_Values() []string {
10182	return []string{
10183		TagStatusTagged,
10184		TagStatusUntagged,
10185		TagStatusAny,
10186	}
10187}
10188