1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package ecrpublic
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-public-2020-10-30/BatchCheckLayerAvailability
42func (c *ECRPublic) 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 Elastic Container Registry Public.
59//
60// Checks the availability of one or more image layers within a repository in
61// a public registry. When an image is pushed to a repository, each image layer
62// is checked to verify if it has been uploaded before. If it has been uploaded,
63// then the image layer is skipped.
64//
65// This operation is used by the Amazon ECR proxy and is not generally used
66// by customers for pulling and pushing images. In most cases, you should use
67// the docker CLI to pull, tag, and push images.
68//
69// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
70// with awserr.Error's Code and Message methods to get detailed information about
71// the error.
72//
73// See the AWS API reference guide for Amazon Elastic Container Registry Public's
74// API operation BatchCheckLayerAvailability for usage and error information.
75//
76// Returned Error Types:
77//   * RepositoryNotFoundException
78//   The specified repository could not be found. Check the spelling of the specified
79//   repository and ensure that you are performing operations on the correct registry.
80//
81//   * InvalidParameterException
82//   The specified parameter is invalid. Review the available parameters for the
83//   API request.
84//
85//   * ServerException
86//   These errors are usually caused by a server-side issue.
87//
88//   * RegistryNotFoundException
89//   The registry does not exist.
90//
91// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/BatchCheckLayerAvailability
92func (c *ECRPublic) BatchCheckLayerAvailability(input *BatchCheckLayerAvailabilityInput) (*BatchCheckLayerAvailabilityOutput, error) {
93	req, out := c.BatchCheckLayerAvailabilityRequest(input)
94	return out, req.Send()
95}
96
97// BatchCheckLayerAvailabilityWithContext is the same as BatchCheckLayerAvailability with the addition of
98// the ability to pass a context and additional request options.
99//
100// See BatchCheckLayerAvailability for details on how to use this API operation.
101//
102// The context must be non-nil and will be used for request cancellation. If
103// the context is nil a panic will occur. In the future the SDK may create
104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
105// for more information on using Contexts.
106func (c *ECRPublic) BatchCheckLayerAvailabilityWithContext(ctx aws.Context, input *BatchCheckLayerAvailabilityInput, opts ...request.Option) (*BatchCheckLayerAvailabilityOutput, error) {
107	req, out := c.BatchCheckLayerAvailabilityRequest(input)
108	req.SetContext(ctx)
109	req.ApplyOptions(opts...)
110	return out, req.Send()
111}
112
113const opBatchDeleteImage = "BatchDeleteImage"
114
115// BatchDeleteImageRequest generates a "aws/request.Request" representing the
116// client's request for the BatchDeleteImage operation. The "output" return
117// value will be populated with the request's response once the request completes
118// successfully.
119//
120// Use "Send" method on the returned Request to send the API call to the service.
121// the "output" return value is not valid until after Send returns without error.
122//
123// See BatchDeleteImage for more information on using the BatchDeleteImage
124// API call, and error handling.
125//
126// This method is useful when you want to inject custom logic or configuration
127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
128//
129//
130//    // Example sending a request using the BatchDeleteImageRequest method.
131//    req, resp := client.BatchDeleteImageRequest(params)
132//
133//    err := req.Send()
134//    if err == nil { // resp is now filled
135//        fmt.Println(resp)
136//    }
137//
138// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/BatchDeleteImage
139func (c *ECRPublic) BatchDeleteImageRequest(input *BatchDeleteImageInput) (req *request.Request, output *BatchDeleteImageOutput) {
140	op := &request.Operation{
141		Name:       opBatchDeleteImage,
142		HTTPMethod: "POST",
143		HTTPPath:   "/",
144	}
145
146	if input == nil {
147		input = &BatchDeleteImageInput{}
148	}
149
150	output = &BatchDeleteImageOutput{}
151	req = c.newRequest(op, input, output)
152	return
153}
154
155// BatchDeleteImage API operation for Amazon Elastic Container Registry Public.
156//
157// Deletes a list of specified images within a repository in a public registry.
158// Images are specified with either an imageTag or imageDigest.
159//
160// You can remove a tag from an image by specifying the image's tag in your
161// request. When you remove the last tag from an image, the image is deleted
162// from your repository.
163//
164// You can completely delete an image (and all of its tags) by specifying the
165// image's digest in your request.
166//
167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
168// with awserr.Error's Code and Message methods to get detailed information about
169// the error.
170//
171// See the AWS API reference guide for Amazon Elastic Container Registry Public's
172// API operation BatchDeleteImage for usage and error information.
173//
174// Returned Error Types:
175//   * ServerException
176//   These errors are usually caused by a server-side issue.
177//
178//   * InvalidParameterException
179//   The specified parameter is invalid. Review the available parameters for the
180//   API request.
181//
182//   * RepositoryNotFoundException
183//   The specified repository could not be found. Check the spelling of the specified
184//   repository and ensure that you are performing operations on the correct registry.
185//
186// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/BatchDeleteImage
187func (c *ECRPublic) BatchDeleteImage(input *BatchDeleteImageInput) (*BatchDeleteImageOutput, error) {
188	req, out := c.BatchDeleteImageRequest(input)
189	return out, req.Send()
190}
191
192// BatchDeleteImageWithContext is the same as BatchDeleteImage with the addition of
193// the ability to pass a context and additional request options.
194//
195// See BatchDeleteImage for details on how to use this API operation.
196//
197// The context must be non-nil and will be used for request cancellation. If
198// the context is nil a panic will occur. In the future the SDK may create
199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
200// for more information on using Contexts.
201func (c *ECRPublic) BatchDeleteImageWithContext(ctx aws.Context, input *BatchDeleteImageInput, opts ...request.Option) (*BatchDeleteImageOutput, error) {
202	req, out := c.BatchDeleteImageRequest(input)
203	req.SetContext(ctx)
204	req.ApplyOptions(opts...)
205	return out, req.Send()
206}
207
208const opCompleteLayerUpload = "CompleteLayerUpload"
209
210// CompleteLayerUploadRequest generates a "aws/request.Request" representing the
211// client's request for the CompleteLayerUpload operation. The "output" return
212// value will be populated with the request's response once the request completes
213// successfully.
214//
215// Use "Send" method on the returned Request to send the API call to the service.
216// the "output" return value is not valid until after Send returns without error.
217//
218// See CompleteLayerUpload for more information on using the CompleteLayerUpload
219// API call, and error handling.
220//
221// This method is useful when you want to inject custom logic or configuration
222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
223//
224//
225//    // Example sending a request using the CompleteLayerUploadRequest method.
226//    req, resp := client.CompleteLayerUploadRequest(params)
227//
228//    err := req.Send()
229//    if err == nil { // resp is now filled
230//        fmt.Println(resp)
231//    }
232//
233// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/CompleteLayerUpload
234func (c *ECRPublic) CompleteLayerUploadRequest(input *CompleteLayerUploadInput) (req *request.Request, output *CompleteLayerUploadOutput) {
235	op := &request.Operation{
236		Name:       opCompleteLayerUpload,
237		HTTPMethod: "POST",
238		HTTPPath:   "/",
239	}
240
241	if input == nil {
242		input = &CompleteLayerUploadInput{}
243	}
244
245	output = &CompleteLayerUploadOutput{}
246	req = c.newRequest(op, input, output)
247	return
248}
249
250// CompleteLayerUpload API operation for Amazon Elastic Container Registry Public.
251//
252// Informs Amazon ECR that the image layer upload has completed for a specified
253// public registry, repository name, and upload ID. You can optionally provide
254// a sha256 digest of the image layer for data validation purposes.
255//
256// When an image is pushed, the CompleteLayerUpload API is called once per each
257// new image layer to verify that the upload has completed.
258//
259// This operation is used by the Amazon ECR proxy and is not generally used
260// by customers for pulling and pushing images. In most cases, you should use
261// the docker CLI to pull, tag, and push images.
262//
263// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
264// with awserr.Error's Code and Message methods to get detailed information about
265// the error.
266//
267// See the AWS API reference guide for Amazon Elastic Container Registry Public's
268// API operation CompleteLayerUpload for usage and error information.
269//
270// Returned Error Types:
271//   * ServerException
272//   These errors are usually caused by a server-side issue.
273//
274//   * InvalidParameterException
275//   The specified parameter is invalid. Review the available parameters for the
276//   API request.
277//
278//   * RepositoryNotFoundException
279//   The specified repository could not be found. Check the spelling of the specified
280//   repository and ensure that you are performing operations on the correct registry.
281//
282//   * UploadNotFoundException
283//   The upload could not be found, or the specified upload ID is not valid for
284//   this repository.
285//
286//   * InvalidLayerException
287//   The layer digest calculation performed by Amazon ECR upon receipt of the
288//   image layer does not match the digest specified.
289//
290//   * LayerPartTooSmallException
291//   Layer parts must be at least 5 MiB in size.
292//
293//   * LayerAlreadyExistsException
294//   The image layer already exists in the associated repository.
295//
296//   * EmptyUploadException
297//   The specified layer upload does not contain any layer parts.
298//
299//   * RegistryNotFoundException
300//   The registry does not exist.
301//
302//   * UnsupportedCommandException
303//   The action is not supported in this Region.
304//
305// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/CompleteLayerUpload
306func (c *ECRPublic) CompleteLayerUpload(input *CompleteLayerUploadInput) (*CompleteLayerUploadOutput, error) {
307	req, out := c.CompleteLayerUploadRequest(input)
308	return out, req.Send()
309}
310
311// CompleteLayerUploadWithContext is the same as CompleteLayerUpload with the addition of
312// the ability to pass a context and additional request options.
313//
314// See CompleteLayerUpload for details on how to use this API operation.
315//
316// The context must be non-nil and will be used for request cancellation. If
317// the context is nil a panic will occur. In the future the SDK may create
318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
319// for more information on using Contexts.
320func (c *ECRPublic) CompleteLayerUploadWithContext(ctx aws.Context, input *CompleteLayerUploadInput, opts ...request.Option) (*CompleteLayerUploadOutput, error) {
321	req, out := c.CompleteLayerUploadRequest(input)
322	req.SetContext(ctx)
323	req.ApplyOptions(opts...)
324	return out, req.Send()
325}
326
327const opCreateRepository = "CreateRepository"
328
329// CreateRepositoryRequest generates a "aws/request.Request" representing the
330// client's request for the CreateRepository operation. The "output" return
331// value will be populated with the request's response once the request completes
332// successfully.
333//
334// Use "Send" method on the returned Request to send the API call to the service.
335// the "output" return value is not valid until after Send returns without error.
336//
337// See CreateRepository for more information on using the CreateRepository
338// API call, and error handling.
339//
340// This method is useful when you want to inject custom logic or configuration
341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
342//
343//
344//    // Example sending a request using the CreateRepositoryRequest method.
345//    req, resp := client.CreateRepositoryRequest(params)
346//
347//    err := req.Send()
348//    if err == nil { // resp is now filled
349//        fmt.Println(resp)
350//    }
351//
352// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/CreateRepository
353func (c *ECRPublic) CreateRepositoryRequest(input *CreateRepositoryInput) (req *request.Request, output *CreateRepositoryOutput) {
354	op := &request.Operation{
355		Name:       opCreateRepository,
356		HTTPMethod: "POST",
357		HTTPPath:   "/",
358	}
359
360	if input == nil {
361		input = &CreateRepositoryInput{}
362	}
363
364	output = &CreateRepositoryOutput{}
365	req = c.newRequest(op, input, output)
366	return
367}
368
369// CreateRepository API operation for Amazon Elastic Container Registry Public.
370//
371// Creates a repository in a public registry. For more information, see Amazon
372// ECR repositories (https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html)
373// in the Amazon Elastic Container Registry User Guide.
374//
375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
376// with awserr.Error's Code and Message methods to get detailed information about
377// the error.
378//
379// See the AWS API reference guide for Amazon Elastic Container Registry Public's
380// API operation CreateRepository for usage and error information.
381//
382// Returned Error Types:
383//   * ServerException
384//   These errors are usually caused by a server-side issue.
385//
386//   * InvalidParameterException
387//   The specified parameter is invalid. Review the available parameters for the
388//   API request.
389//
390//   * InvalidTagParameterException
391//   An invalid parameter has been specified. Tag keys can have a maximum character
392//   length of 128 characters, and tag values can have a maximum length of 256
393//   characters.
394//
395//   * TooManyTagsException
396//   The list of tags on the repository is over the limit. The maximum number
397//   of tags that can be applied to a repository is 50.
398//
399//   * RepositoryAlreadyExistsException
400//   The specified repository already exists in the specified registry.
401//
402//   * LimitExceededException
403//   The operation did not succeed because it would have exceeded a service limit
404//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
405//   in the Amazon Elastic Container Registry User Guide.
406//
407// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/CreateRepository
408func (c *ECRPublic) CreateRepository(input *CreateRepositoryInput) (*CreateRepositoryOutput, error) {
409	req, out := c.CreateRepositoryRequest(input)
410	return out, req.Send()
411}
412
413// CreateRepositoryWithContext is the same as CreateRepository with the addition of
414// the ability to pass a context and additional request options.
415//
416// See CreateRepository for details on how to use this API operation.
417//
418// The context must be non-nil and will be used for request cancellation. If
419// the context is nil a panic will occur. In the future the SDK may create
420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
421// for more information on using Contexts.
422func (c *ECRPublic) CreateRepositoryWithContext(ctx aws.Context, input *CreateRepositoryInput, opts ...request.Option) (*CreateRepositoryOutput, error) {
423	req, out := c.CreateRepositoryRequest(input)
424	req.SetContext(ctx)
425	req.ApplyOptions(opts...)
426	return out, req.Send()
427}
428
429const opDeleteRepository = "DeleteRepository"
430
431// DeleteRepositoryRequest generates a "aws/request.Request" representing the
432// client's request for the DeleteRepository operation. The "output" return
433// value will be populated with the request's response once the request completes
434// successfully.
435//
436// Use "Send" method on the returned Request to send the API call to the service.
437// the "output" return value is not valid until after Send returns without error.
438//
439// See DeleteRepository for more information on using the DeleteRepository
440// API call, and error handling.
441//
442// This method is useful when you want to inject custom logic or configuration
443// into the SDK's request lifecycle. Such as custom headers, or retry logic.
444//
445//
446//    // Example sending a request using the DeleteRepositoryRequest method.
447//    req, resp := client.DeleteRepositoryRequest(params)
448//
449//    err := req.Send()
450//    if err == nil { // resp is now filled
451//        fmt.Println(resp)
452//    }
453//
454// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DeleteRepository
455func (c *ECRPublic) DeleteRepositoryRequest(input *DeleteRepositoryInput) (req *request.Request, output *DeleteRepositoryOutput) {
456	op := &request.Operation{
457		Name:       opDeleteRepository,
458		HTTPMethod: "POST",
459		HTTPPath:   "/",
460	}
461
462	if input == nil {
463		input = &DeleteRepositoryInput{}
464	}
465
466	output = &DeleteRepositoryOutput{}
467	req = c.newRequest(op, input, output)
468	return
469}
470
471// DeleteRepository API operation for Amazon Elastic Container Registry Public.
472//
473// Deletes a repository in a public registry. If the repository contains images,
474// you must either delete all images in the repository or use the force option
475// which deletes all images on your behalf before deleting the repository.
476//
477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
478// with awserr.Error's Code and Message methods to get detailed information about
479// the error.
480//
481// See the AWS API reference guide for Amazon Elastic Container Registry Public's
482// API operation DeleteRepository for usage and error information.
483//
484// Returned Error Types:
485//   * ServerException
486//   These errors are usually caused by a server-side issue.
487//
488//   * InvalidParameterException
489//   The specified parameter is invalid. Review the available parameters for the
490//   API request.
491//
492//   * RepositoryNotFoundException
493//   The specified repository could not be found. Check the spelling of the specified
494//   repository and ensure that you are performing operations on the correct registry.
495//
496//   * RepositoryNotEmptyException
497//   The specified repository contains images. To delete a repository that contains
498//   images, you must force the deletion with the force parameter.
499//
500// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DeleteRepository
501func (c *ECRPublic) DeleteRepository(input *DeleteRepositoryInput) (*DeleteRepositoryOutput, error) {
502	req, out := c.DeleteRepositoryRequest(input)
503	return out, req.Send()
504}
505
506// DeleteRepositoryWithContext is the same as DeleteRepository with the addition of
507// the ability to pass a context and additional request options.
508//
509// See DeleteRepository for details on how to use this API operation.
510//
511// The context must be non-nil and will be used for request cancellation. If
512// the context is nil a panic will occur. In the future the SDK may create
513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
514// for more information on using Contexts.
515func (c *ECRPublic) DeleteRepositoryWithContext(ctx aws.Context, input *DeleteRepositoryInput, opts ...request.Option) (*DeleteRepositoryOutput, error) {
516	req, out := c.DeleteRepositoryRequest(input)
517	req.SetContext(ctx)
518	req.ApplyOptions(opts...)
519	return out, req.Send()
520}
521
522const opDeleteRepositoryPolicy = "DeleteRepositoryPolicy"
523
524// DeleteRepositoryPolicyRequest generates a "aws/request.Request" representing the
525// client's request for the DeleteRepositoryPolicy operation. The "output" return
526// value will be populated with the request's response once the request completes
527// successfully.
528//
529// Use "Send" method on the returned Request to send the API call to the service.
530// the "output" return value is not valid until after Send returns without error.
531//
532// See DeleteRepositoryPolicy for more information on using the DeleteRepositoryPolicy
533// API call, and error handling.
534//
535// This method is useful when you want to inject custom logic or configuration
536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
537//
538//
539//    // Example sending a request using the DeleteRepositoryPolicyRequest method.
540//    req, resp := client.DeleteRepositoryPolicyRequest(params)
541//
542//    err := req.Send()
543//    if err == nil { // resp is now filled
544//        fmt.Println(resp)
545//    }
546//
547// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DeleteRepositoryPolicy
548func (c *ECRPublic) DeleteRepositoryPolicyRequest(input *DeleteRepositoryPolicyInput) (req *request.Request, output *DeleteRepositoryPolicyOutput) {
549	op := &request.Operation{
550		Name:       opDeleteRepositoryPolicy,
551		HTTPMethod: "POST",
552		HTTPPath:   "/",
553	}
554
555	if input == nil {
556		input = &DeleteRepositoryPolicyInput{}
557	}
558
559	output = &DeleteRepositoryPolicyOutput{}
560	req = c.newRequest(op, input, output)
561	return
562}
563
564// DeleteRepositoryPolicy API operation for Amazon Elastic Container Registry Public.
565//
566// Deletes the repository policy associated with the specified repository.
567//
568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
569// with awserr.Error's Code and Message methods to get detailed information about
570// the error.
571//
572// See the AWS API reference guide for Amazon Elastic Container Registry Public's
573// API operation DeleteRepositoryPolicy for usage and error information.
574//
575// Returned Error Types:
576//   * ServerException
577//   These errors are usually caused by a server-side issue.
578//
579//   * InvalidParameterException
580//   The specified parameter is invalid. Review the available parameters for the
581//   API request.
582//
583//   * RepositoryNotFoundException
584//   The specified repository could not be found. Check the spelling of the specified
585//   repository and ensure that you are performing operations on the correct registry.
586//
587//   * RepositoryPolicyNotFoundException
588//   The specified repository and registry combination does not have an associated
589//   repository policy.
590//
591// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DeleteRepositoryPolicy
592func (c *ECRPublic) DeleteRepositoryPolicy(input *DeleteRepositoryPolicyInput) (*DeleteRepositoryPolicyOutput, error) {
593	req, out := c.DeleteRepositoryPolicyRequest(input)
594	return out, req.Send()
595}
596
597// DeleteRepositoryPolicyWithContext is the same as DeleteRepositoryPolicy with the addition of
598// the ability to pass a context and additional request options.
599//
600// See DeleteRepositoryPolicy for details on how to use this API operation.
601//
602// The context must be non-nil and will be used for request cancellation. If
603// the context is nil a panic will occur. In the future the SDK may create
604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
605// for more information on using Contexts.
606func (c *ECRPublic) DeleteRepositoryPolicyWithContext(ctx aws.Context, input *DeleteRepositoryPolicyInput, opts ...request.Option) (*DeleteRepositoryPolicyOutput, error) {
607	req, out := c.DeleteRepositoryPolicyRequest(input)
608	req.SetContext(ctx)
609	req.ApplyOptions(opts...)
610	return out, req.Send()
611}
612
613const opDescribeImageTags = "DescribeImageTags"
614
615// DescribeImageTagsRequest generates a "aws/request.Request" representing the
616// client's request for the DescribeImageTags operation. The "output" return
617// value will be populated with the request's response once the request completes
618// successfully.
619//
620// Use "Send" method on the returned Request to send the API call to the service.
621// the "output" return value is not valid until after Send returns without error.
622//
623// See DescribeImageTags for more information on using the DescribeImageTags
624// API call, and error handling.
625//
626// This method is useful when you want to inject custom logic or configuration
627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
628//
629//
630//    // Example sending a request using the DescribeImageTagsRequest method.
631//    req, resp := client.DescribeImageTagsRequest(params)
632//
633//    err := req.Send()
634//    if err == nil { // resp is now filled
635//        fmt.Println(resp)
636//    }
637//
638// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeImageTags
639func (c *ECRPublic) DescribeImageTagsRequest(input *DescribeImageTagsInput) (req *request.Request, output *DescribeImageTagsOutput) {
640	op := &request.Operation{
641		Name:       opDescribeImageTags,
642		HTTPMethod: "POST",
643		HTTPPath:   "/",
644		Paginator: &request.Paginator{
645			InputTokens:     []string{"nextToken"},
646			OutputTokens:    []string{"nextToken"},
647			LimitToken:      "maxResults",
648			TruncationToken: "",
649		},
650	}
651
652	if input == nil {
653		input = &DescribeImageTagsInput{}
654	}
655
656	output = &DescribeImageTagsOutput{}
657	req = c.newRequest(op, input, output)
658	return
659}
660
661// DescribeImageTags API operation for Amazon Elastic Container Registry Public.
662//
663// Returns the image tag details for a repository in a public registry.
664//
665// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
666// with awserr.Error's Code and Message methods to get detailed information about
667// the error.
668//
669// See the AWS API reference guide for Amazon Elastic Container Registry Public's
670// API operation DescribeImageTags for usage and error information.
671//
672// Returned Error Types:
673//   * ServerException
674//   These errors are usually caused by a server-side issue.
675//
676//   * InvalidParameterException
677//   The specified parameter is invalid. Review the available parameters for the
678//   API request.
679//
680//   * RepositoryNotFoundException
681//   The specified repository could not be found. Check the spelling of the specified
682//   repository and ensure that you are performing operations on the correct registry.
683//
684// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeImageTags
685func (c *ECRPublic) DescribeImageTags(input *DescribeImageTagsInput) (*DescribeImageTagsOutput, error) {
686	req, out := c.DescribeImageTagsRequest(input)
687	return out, req.Send()
688}
689
690// DescribeImageTagsWithContext is the same as DescribeImageTags with the addition of
691// the ability to pass a context and additional request options.
692//
693// See DescribeImageTags for details on how to use this API operation.
694//
695// The context must be non-nil and will be used for request cancellation. If
696// the context is nil a panic will occur. In the future the SDK may create
697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
698// for more information on using Contexts.
699func (c *ECRPublic) DescribeImageTagsWithContext(ctx aws.Context, input *DescribeImageTagsInput, opts ...request.Option) (*DescribeImageTagsOutput, error) {
700	req, out := c.DescribeImageTagsRequest(input)
701	req.SetContext(ctx)
702	req.ApplyOptions(opts...)
703	return out, req.Send()
704}
705
706// DescribeImageTagsPages iterates over the pages of a DescribeImageTags operation,
707// calling the "fn" function with the response data for each page. To stop
708// iterating, return false from the fn function.
709//
710// See DescribeImageTags method for more information on how to use this operation.
711//
712// Note: This operation can generate multiple requests to a service.
713//
714//    // Example iterating over at most 3 pages of a DescribeImageTags operation.
715//    pageNum := 0
716//    err := client.DescribeImageTagsPages(params,
717//        func(page *ecrpublic.DescribeImageTagsOutput, lastPage bool) bool {
718//            pageNum++
719//            fmt.Println(page)
720//            return pageNum <= 3
721//        })
722//
723func (c *ECRPublic) DescribeImageTagsPages(input *DescribeImageTagsInput, fn func(*DescribeImageTagsOutput, bool) bool) error {
724	return c.DescribeImageTagsPagesWithContext(aws.BackgroundContext(), input, fn)
725}
726
727// DescribeImageTagsPagesWithContext same as DescribeImageTagsPages except
728// it takes a Context and allows setting request options on the pages.
729//
730// The context must be non-nil and will be used for request cancellation. If
731// the context is nil a panic will occur. In the future the SDK may create
732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
733// for more information on using Contexts.
734func (c *ECRPublic) DescribeImageTagsPagesWithContext(ctx aws.Context, input *DescribeImageTagsInput, fn func(*DescribeImageTagsOutput, bool) bool, opts ...request.Option) error {
735	p := request.Pagination{
736		NewRequest: func() (*request.Request, error) {
737			var inCpy *DescribeImageTagsInput
738			if input != nil {
739				tmp := *input
740				inCpy = &tmp
741			}
742			req, _ := c.DescribeImageTagsRequest(inCpy)
743			req.SetContext(ctx)
744			req.ApplyOptions(opts...)
745			return req, nil
746		},
747	}
748
749	for p.Next() {
750		if !fn(p.Page().(*DescribeImageTagsOutput), !p.HasNextPage()) {
751			break
752		}
753	}
754
755	return p.Err()
756}
757
758const opDescribeImages = "DescribeImages"
759
760// DescribeImagesRequest generates a "aws/request.Request" representing the
761// client's request for the DescribeImages operation. The "output" return
762// value will be populated with the request's response once the request completes
763// successfully.
764//
765// Use "Send" method on the returned Request to send the API call to the service.
766// the "output" return value is not valid until after Send returns without error.
767//
768// See DescribeImages for more information on using the DescribeImages
769// API call, and error handling.
770//
771// This method is useful when you want to inject custom logic or configuration
772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
773//
774//
775//    // Example sending a request using the DescribeImagesRequest method.
776//    req, resp := client.DescribeImagesRequest(params)
777//
778//    err := req.Send()
779//    if err == nil { // resp is now filled
780//        fmt.Println(resp)
781//    }
782//
783// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeImages
784func (c *ECRPublic) DescribeImagesRequest(input *DescribeImagesInput) (req *request.Request, output *DescribeImagesOutput) {
785	op := &request.Operation{
786		Name:       opDescribeImages,
787		HTTPMethod: "POST",
788		HTTPPath:   "/",
789		Paginator: &request.Paginator{
790			InputTokens:     []string{"nextToken"},
791			OutputTokens:    []string{"nextToken"},
792			LimitToken:      "maxResults",
793			TruncationToken: "",
794		},
795	}
796
797	if input == nil {
798		input = &DescribeImagesInput{}
799	}
800
801	output = &DescribeImagesOutput{}
802	req = c.newRequest(op, input, output)
803	return
804}
805
806// DescribeImages API operation for Amazon Elastic Container Registry Public.
807//
808// Returns metadata about the images in a repository in a public registry.
809//
810// Beginning with Docker version 1.9, the Docker client compresses image layers
811// before pushing them to a V2 Docker registry. The output of the docker images
812// command shows the uncompressed image size, so it may return a larger image
813// size than the image sizes returned by DescribeImages.
814//
815// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
816// with awserr.Error's Code and Message methods to get detailed information about
817// the error.
818//
819// See the AWS API reference guide for Amazon Elastic Container Registry Public's
820// API operation DescribeImages for usage and error information.
821//
822// Returned Error Types:
823//   * ServerException
824//   These errors are usually caused by a server-side issue.
825//
826//   * InvalidParameterException
827//   The specified parameter is invalid. Review the available parameters for the
828//   API request.
829//
830//   * RepositoryNotFoundException
831//   The specified repository could not be found. Check the spelling of the specified
832//   repository and ensure that you are performing operations on the correct registry.
833//
834//   * ImageNotFoundException
835//   The image requested does not exist in the specified repository.
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeImages
838func (c *ECRPublic) DescribeImages(input *DescribeImagesInput) (*DescribeImagesOutput, error) {
839	req, out := c.DescribeImagesRequest(input)
840	return out, req.Send()
841}
842
843// DescribeImagesWithContext is the same as DescribeImages with the addition of
844// the ability to pass a context and additional request options.
845//
846// See DescribeImages for details on how to use this API operation.
847//
848// The context must be non-nil and will be used for request cancellation. If
849// the context is nil a panic will occur. In the future the SDK may create
850// sub-contexts for http.Requests. See https://golang.org/pkg/context/
851// for more information on using Contexts.
852func (c *ECRPublic) DescribeImagesWithContext(ctx aws.Context, input *DescribeImagesInput, opts ...request.Option) (*DescribeImagesOutput, error) {
853	req, out := c.DescribeImagesRequest(input)
854	req.SetContext(ctx)
855	req.ApplyOptions(opts...)
856	return out, req.Send()
857}
858
859// DescribeImagesPages iterates over the pages of a DescribeImages operation,
860// calling the "fn" function with the response data for each page. To stop
861// iterating, return false from the fn function.
862//
863// See DescribeImages method for more information on how to use this operation.
864//
865// Note: This operation can generate multiple requests to a service.
866//
867//    // Example iterating over at most 3 pages of a DescribeImages operation.
868//    pageNum := 0
869//    err := client.DescribeImagesPages(params,
870//        func(page *ecrpublic.DescribeImagesOutput, lastPage bool) bool {
871//            pageNum++
872//            fmt.Println(page)
873//            return pageNum <= 3
874//        })
875//
876func (c *ECRPublic) DescribeImagesPages(input *DescribeImagesInput, fn func(*DescribeImagesOutput, bool) bool) error {
877	return c.DescribeImagesPagesWithContext(aws.BackgroundContext(), input, fn)
878}
879
880// DescribeImagesPagesWithContext same as DescribeImagesPages except
881// it takes a Context and allows setting request options on the pages.
882//
883// The context must be non-nil and will be used for request cancellation. If
884// the context is nil a panic will occur. In the future the SDK may create
885// sub-contexts for http.Requests. See https://golang.org/pkg/context/
886// for more information on using Contexts.
887func (c *ECRPublic) DescribeImagesPagesWithContext(ctx aws.Context, input *DescribeImagesInput, fn func(*DescribeImagesOutput, bool) bool, opts ...request.Option) error {
888	p := request.Pagination{
889		NewRequest: func() (*request.Request, error) {
890			var inCpy *DescribeImagesInput
891			if input != nil {
892				tmp := *input
893				inCpy = &tmp
894			}
895			req, _ := c.DescribeImagesRequest(inCpy)
896			req.SetContext(ctx)
897			req.ApplyOptions(opts...)
898			return req, nil
899		},
900	}
901
902	for p.Next() {
903		if !fn(p.Page().(*DescribeImagesOutput), !p.HasNextPage()) {
904			break
905		}
906	}
907
908	return p.Err()
909}
910
911const opDescribeRegistries = "DescribeRegistries"
912
913// DescribeRegistriesRequest generates a "aws/request.Request" representing the
914// client's request for the DescribeRegistries operation. The "output" return
915// value will be populated with the request's response once the request completes
916// successfully.
917//
918// Use "Send" method on the returned Request to send the API call to the service.
919// the "output" return value is not valid until after Send returns without error.
920//
921// See DescribeRegistries for more information on using the DescribeRegistries
922// API call, and error handling.
923//
924// This method is useful when you want to inject custom logic or configuration
925// into the SDK's request lifecycle. Such as custom headers, or retry logic.
926//
927//
928//    // Example sending a request using the DescribeRegistriesRequest method.
929//    req, resp := client.DescribeRegistriesRequest(params)
930//
931//    err := req.Send()
932//    if err == nil { // resp is now filled
933//        fmt.Println(resp)
934//    }
935//
936// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeRegistries
937func (c *ECRPublic) DescribeRegistriesRequest(input *DescribeRegistriesInput) (req *request.Request, output *DescribeRegistriesOutput) {
938	op := &request.Operation{
939		Name:       opDescribeRegistries,
940		HTTPMethod: "POST",
941		HTTPPath:   "/",
942		Paginator: &request.Paginator{
943			InputTokens:     []string{"nextToken"},
944			OutputTokens:    []string{"nextToken"},
945			LimitToken:      "maxResults",
946			TruncationToken: "",
947		},
948	}
949
950	if input == nil {
951		input = &DescribeRegistriesInput{}
952	}
953
954	output = &DescribeRegistriesOutput{}
955	req = c.newRequest(op, input, output)
956	return
957}
958
959// DescribeRegistries API operation for Amazon Elastic Container Registry Public.
960//
961// Returns details for a public registry.
962//
963// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
964// with awserr.Error's Code and Message methods to get detailed information about
965// the error.
966//
967// See the AWS API reference guide for Amazon Elastic Container Registry Public's
968// API operation DescribeRegistries for usage and error information.
969//
970// Returned Error Types:
971//   * InvalidParameterException
972//   The specified parameter is invalid. Review the available parameters for the
973//   API request.
974//
975//   * UnsupportedCommandException
976//   The action is not supported in this Region.
977//
978//   * ServerException
979//   These errors are usually caused by a server-side issue.
980//
981// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeRegistries
982func (c *ECRPublic) DescribeRegistries(input *DescribeRegistriesInput) (*DescribeRegistriesOutput, error) {
983	req, out := c.DescribeRegistriesRequest(input)
984	return out, req.Send()
985}
986
987// DescribeRegistriesWithContext is the same as DescribeRegistries with the addition of
988// the ability to pass a context and additional request options.
989//
990// See DescribeRegistries for details on how to use this API operation.
991//
992// The context must be non-nil and will be used for request cancellation. If
993// the context is nil a panic will occur. In the future the SDK may create
994// sub-contexts for http.Requests. See https://golang.org/pkg/context/
995// for more information on using Contexts.
996func (c *ECRPublic) DescribeRegistriesWithContext(ctx aws.Context, input *DescribeRegistriesInput, opts ...request.Option) (*DescribeRegistriesOutput, error) {
997	req, out := c.DescribeRegistriesRequest(input)
998	req.SetContext(ctx)
999	req.ApplyOptions(opts...)
1000	return out, req.Send()
1001}
1002
1003// DescribeRegistriesPages iterates over the pages of a DescribeRegistries operation,
1004// calling the "fn" function with the response data for each page. To stop
1005// iterating, return false from the fn function.
1006//
1007// See DescribeRegistries method for more information on how to use this operation.
1008//
1009// Note: This operation can generate multiple requests to a service.
1010//
1011//    // Example iterating over at most 3 pages of a DescribeRegistries operation.
1012//    pageNum := 0
1013//    err := client.DescribeRegistriesPages(params,
1014//        func(page *ecrpublic.DescribeRegistriesOutput, lastPage bool) bool {
1015//            pageNum++
1016//            fmt.Println(page)
1017//            return pageNum <= 3
1018//        })
1019//
1020func (c *ECRPublic) DescribeRegistriesPages(input *DescribeRegistriesInput, fn func(*DescribeRegistriesOutput, bool) bool) error {
1021	return c.DescribeRegistriesPagesWithContext(aws.BackgroundContext(), input, fn)
1022}
1023
1024// DescribeRegistriesPagesWithContext same as DescribeRegistriesPages except
1025// it takes a Context and allows setting request options on the pages.
1026//
1027// The context must be non-nil and will be used for request cancellation. If
1028// the context is nil a panic will occur. In the future the SDK may create
1029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1030// for more information on using Contexts.
1031func (c *ECRPublic) DescribeRegistriesPagesWithContext(ctx aws.Context, input *DescribeRegistriesInput, fn func(*DescribeRegistriesOutput, bool) bool, opts ...request.Option) error {
1032	p := request.Pagination{
1033		NewRequest: func() (*request.Request, error) {
1034			var inCpy *DescribeRegistriesInput
1035			if input != nil {
1036				tmp := *input
1037				inCpy = &tmp
1038			}
1039			req, _ := c.DescribeRegistriesRequest(inCpy)
1040			req.SetContext(ctx)
1041			req.ApplyOptions(opts...)
1042			return req, nil
1043		},
1044	}
1045
1046	for p.Next() {
1047		if !fn(p.Page().(*DescribeRegistriesOutput), !p.HasNextPage()) {
1048			break
1049		}
1050	}
1051
1052	return p.Err()
1053}
1054
1055const opDescribeRepositories = "DescribeRepositories"
1056
1057// DescribeRepositoriesRequest generates a "aws/request.Request" representing the
1058// client's request for the DescribeRepositories operation. The "output" return
1059// value will be populated with the request's response once the request completes
1060// successfully.
1061//
1062// Use "Send" method on the returned Request to send the API call to the service.
1063// the "output" return value is not valid until after Send returns without error.
1064//
1065// See DescribeRepositories for more information on using the DescribeRepositories
1066// API call, and error handling.
1067//
1068// This method is useful when you want to inject custom logic or configuration
1069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1070//
1071//
1072//    // Example sending a request using the DescribeRepositoriesRequest method.
1073//    req, resp := client.DescribeRepositoriesRequest(params)
1074//
1075//    err := req.Send()
1076//    if err == nil { // resp is now filled
1077//        fmt.Println(resp)
1078//    }
1079//
1080// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeRepositories
1081func (c *ECRPublic) DescribeRepositoriesRequest(input *DescribeRepositoriesInput) (req *request.Request, output *DescribeRepositoriesOutput) {
1082	op := &request.Operation{
1083		Name:       opDescribeRepositories,
1084		HTTPMethod: "POST",
1085		HTTPPath:   "/",
1086		Paginator: &request.Paginator{
1087			InputTokens:     []string{"nextToken"},
1088			OutputTokens:    []string{"nextToken"},
1089			LimitToken:      "maxResults",
1090			TruncationToken: "",
1091		},
1092	}
1093
1094	if input == nil {
1095		input = &DescribeRepositoriesInput{}
1096	}
1097
1098	output = &DescribeRepositoriesOutput{}
1099	req = c.newRequest(op, input, output)
1100	return
1101}
1102
1103// DescribeRepositories API operation for Amazon Elastic Container Registry Public.
1104//
1105// Describes repositories in a public registry.
1106//
1107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1108// with awserr.Error's Code and Message methods to get detailed information about
1109// the error.
1110//
1111// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1112// API operation DescribeRepositories for usage and error information.
1113//
1114// Returned Error Types:
1115//   * ServerException
1116//   These errors are usually caused by a server-side issue.
1117//
1118//   * InvalidParameterException
1119//   The specified parameter is invalid. Review the available parameters for the
1120//   API request.
1121//
1122//   * RepositoryNotFoundException
1123//   The specified repository could not be found. Check the spelling of the specified
1124//   repository and ensure that you are performing operations on the correct registry.
1125//
1126// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/DescribeRepositories
1127func (c *ECRPublic) DescribeRepositories(input *DescribeRepositoriesInput) (*DescribeRepositoriesOutput, error) {
1128	req, out := c.DescribeRepositoriesRequest(input)
1129	return out, req.Send()
1130}
1131
1132// DescribeRepositoriesWithContext is the same as DescribeRepositories with the addition of
1133// the ability to pass a context and additional request options.
1134//
1135// See DescribeRepositories for details on how to use this API operation.
1136//
1137// The context must be non-nil and will be used for request cancellation. If
1138// the context is nil a panic will occur. In the future the SDK may create
1139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1140// for more information on using Contexts.
1141func (c *ECRPublic) DescribeRepositoriesWithContext(ctx aws.Context, input *DescribeRepositoriesInput, opts ...request.Option) (*DescribeRepositoriesOutput, error) {
1142	req, out := c.DescribeRepositoriesRequest(input)
1143	req.SetContext(ctx)
1144	req.ApplyOptions(opts...)
1145	return out, req.Send()
1146}
1147
1148// DescribeRepositoriesPages iterates over the pages of a DescribeRepositories operation,
1149// calling the "fn" function with the response data for each page. To stop
1150// iterating, return false from the fn function.
1151//
1152// See DescribeRepositories method for more information on how to use this operation.
1153//
1154// Note: This operation can generate multiple requests to a service.
1155//
1156//    // Example iterating over at most 3 pages of a DescribeRepositories operation.
1157//    pageNum := 0
1158//    err := client.DescribeRepositoriesPages(params,
1159//        func(page *ecrpublic.DescribeRepositoriesOutput, lastPage bool) bool {
1160//            pageNum++
1161//            fmt.Println(page)
1162//            return pageNum <= 3
1163//        })
1164//
1165func (c *ECRPublic) DescribeRepositoriesPages(input *DescribeRepositoriesInput, fn func(*DescribeRepositoriesOutput, bool) bool) error {
1166	return c.DescribeRepositoriesPagesWithContext(aws.BackgroundContext(), input, fn)
1167}
1168
1169// DescribeRepositoriesPagesWithContext same as DescribeRepositoriesPages except
1170// it takes a Context and allows setting request options on the pages.
1171//
1172// The context must be non-nil and will be used for request cancellation. If
1173// the context is nil a panic will occur. In the future the SDK may create
1174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1175// for more information on using Contexts.
1176func (c *ECRPublic) DescribeRepositoriesPagesWithContext(ctx aws.Context, input *DescribeRepositoriesInput, fn func(*DescribeRepositoriesOutput, bool) bool, opts ...request.Option) error {
1177	p := request.Pagination{
1178		NewRequest: func() (*request.Request, error) {
1179			var inCpy *DescribeRepositoriesInput
1180			if input != nil {
1181				tmp := *input
1182				inCpy = &tmp
1183			}
1184			req, _ := c.DescribeRepositoriesRequest(inCpy)
1185			req.SetContext(ctx)
1186			req.ApplyOptions(opts...)
1187			return req, nil
1188		},
1189	}
1190
1191	for p.Next() {
1192		if !fn(p.Page().(*DescribeRepositoriesOutput), !p.HasNextPage()) {
1193			break
1194		}
1195	}
1196
1197	return p.Err()
1198}
1199
1200const opGetAuthorizationToken = "GetAuthorizationToken"
1201
1202// GetAuthorizationTokenRequest generates a "aws/request.Request" representing the
1203// client's request for the GetAuthorizationToken operation. The "output" return
1204// value will be populated with the request's response once the request completes
1205// successfully.
1206//
1207// Use "Send" method on the returned Request to send the API call to the service.
1208// the "output" return value is not valid until after Send returns without error.
1209//
1210// See GetAuthorizationToken for more information on using the GetAuthorizationToken
1211// API call, and error handling.
1212//
1213// This method is useful when you want to inject custom logic or configuration
1214// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1215//
1216//
1217//    // Example sending a request using the GetAuthorizationTokenRequest method.
1218//    req, resp := client.GetAuthorizationTokenRequest(params)
1219//
1220//    err := req.Send()
1221//    if err == nil { // resp is now filled
1222//        fmt.Println(resp)
1223//    }
1224//
1225// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetAuthorizationToken
1226func (c *ECRPublic) GetAuthorizationTokenRequest(input *GetAuthorizationTokenInput) (req *request.Request, output *GetAuthorizationTokenOutput) {
1227	op := &request.Operation{
1228		Name:       opGetAuthorizationToken,
1229		HTTPMethod: "POST",
1230		HTTPPath:   "/",
1231	}
1232
1233	if input == nil {
1234		input = &GetAuthorizationTokenInput{}
1235	}
1236
1237	output = &GetAuthorizationTokenOutput{}
1238	req = c.newRequest(op, input, output)
1239	return
1240}
1241
1242// GetAuthorizationToken API operation for Amazon Elastic Container Registry Public.
1243//
1244// Retrieves an authorization token. An authorization token represents your
1245// IAM authentication credentials and can be used to access any Amazon ECR registry
1246// that your IAM principal has access to. The authorization token is valid for
1247// 12 hours. This API requires the ecr-public:GetAuthorizationToken and sts:GetServiceBearerToken
1248// permissions.
1249//
1250// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1251// with awserr.Error's Code and Message methods to get detailed information about
1252// the error.
1253//
1254// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1255// API operation GetAuthorizationToken for usage and error information.
1256//
1257// Returned Error Types:
1258//   * ServerException
1259//   These errors are usually caused by a server-side issue.
1260//
1261//   * InvalidParameterException
1262//   The specified parameter is invalid. Review the available parameters for the
1263//   API request.
1264//
1265// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetAuthorizationToken
1266func (c *ECRPublic) GetAuthorizationToken(input *GetAuthorizationTokenInput) (*GetAuthorizationTokenOutput, error) {
1267	req, out := c.GetAuthorizationTokenRequest(input)
1268	return out, req.Send()
1269}
1270
1271// GetAuthorizationTokenWithContext is the same as GetAuthorizationToken with the addition of
1272// the ability to pass a context and additional request options.
1273//
1274// See GetAuthorizationToken for details on how to use this API operation.
1275//
1276// The context must be non-nil and will be used for request cancellation. If
1277// the context is nil a panic will occur. In the future the SDK may create
1278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1279// for more information on using Contexts.
1280func (c *ECRPublic) GetAuthorizationTokenWithContext(ctx aws.Context, input *GetAuthorizationTokenInput, opts ...request.Option) (*GetAuthorizationTokenOutput, error) {
1281	req, out := c.GetAuthorizationTokenRequest(input)
1282	req.SetContext(ctx)
1283	req.ApplyOptions(opts...)
1284	return out, req.Send()
1285}
1286
1287const opGetRegistryCatalogData = "GetRegistryCatalogData"
1288
1289// GetRegistryCatalogDataRequest generates a "aws/request.Request" representing the
1290// client's request for the GetRegistryCatalogData operation. The "output" return
1291// value will be populated with the request's response once the request completes
1292// successfully.
1293//
1294// Use "Send" method on the returned Request to send the API call to the service.
1295// the "output" return value is not valid until after Send returns without error.
1296//
1297// See GetRegistryCatalogData for more information on using the GetRegistryCatalogData
1298// API call, and error handling.
1299//
1300// This method is useful when you want to inject custom logic or configuration
1301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1302//
1303//
1304//    // Example sending a request using the GetRegistryCatalogDataRequest method.
1305//    req, resp := client.GetRegistryCatalogDataRequest(params)
1306//
1307//    err := req.Send()
1308//    if err == nil { // resp is now filled
1309//        fmt.Println(resp)
1310//    }
1311//
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetRegistryCatalogData
1313func (c *ECRPublic) GetRegistryCatalogDataRequest(input *GetRegistryCatalogDataInput) (req *request.Request, output *GetRegistryCatalogDataOutput) {
1314	op := &request.Operation{
1315		Name:       opGetRegistryCatalogData,
1316		HTTPMethod: "POST",
1317		HTTPPath:   "/",
1318	}
1319
1320	if input == nil {
1321		input = &GetRegistryCatalogDataInput{}
1322	}
1323
1324	output = &GetRegistryCatalogDataOutput{}
1325	req = c.newRequest(op, input, output)
1326	return
1327}
1328
1329// GetRegistryCatalogData API operation for Amazon Elastic Container Registry Public.
1330//
1331// Retrieves catalog metadata for a public registry.
1332//
1333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1334// with awserr.Error's Code and Message methods to get detailed information about
1335// the error.
1336//
1337// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1338// API operation GetRegistryCatalogData for usage and error information.
1339//
1340// Returned Error Types:
1341//   * ServerException
1342//   These errors are usually caused by a server-side issue.
1343//
1344//   * UnsupportedCommandException
1345//   The action is not supported in this Region.
1346//
1347// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetRegistryCatalogData
1348func (c *ECRPublic) GetRegistryCatalogData(input *GetRegistryCatalogDataInput) (*GetRegistryCatalogDataOutput, error) {
1349	req, out := c.GetRegistryCatalogDataRequest(input)
1350	return out, req.Send()
1351}
1352
1353// GetRegistryCatalogDataWithContext is the same as GetRegistryCatalogData with the addition of
1354// the ability to pass a context and additional request options.
1355//
1356// See GetRegistryCatalogData for details on how to use this API operation.
1357//
1358// The context must be non-nil and will be used for request cancellation. If
1359// the context is nil a panic will occur. In the future the SDK may create
1360// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1361// for more information on using Contexts.
1362func (c *ECRPublic) GetRegistryCatalogDataWithContext(ctx aws.Context, input *GetRegistryCatalogDataInput, opts ...request.Option) (*GetRegistryCatalogDataOutput, error) {
1363	req, out := c.GetRegistryCatalogDataRequest(input)
1364	req.SetContext(ctx)
1365	req.ApplyOptions(opts...)
1366	return out, req.Send()
1367}
1368
1369const opGetRepositoryCatalogData = "GetRepositoryCatalogData"
1370
1371// GetRepositoryCatalogDataRequest generates a "aws/request.Request" representing the
1372// client's request for the GetRepositoryCatalogData operation. The "output" return
1373// value will be populated with the request's response once the request completes
1374// successfully.
1375//
1376// Use "Send" method on the returned Request to send the API call to the service.
1377// the "output" return value is not valid until after Send returns without error.
1378//
1379// See GetRepositoryCatalogData for more information on using the GetRepositoryCatalogData
1380// API call, and error handling.
1381//
1382// This method is useful when you want to inject custom logic or configuration
1383// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1384//
1385//
1386//    // Example sending a request using the GetRepositoryCatalogDataRequest method.
1387//    req, resp := client.GetRepositoryCatalogDataRequest(params)
1388//
1389//    err := req.Send()
1390//    if err == nil { // resp is now filled
1391//        fmt.Println(resp)
1392//    }
1393//
1394// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetRepositoryCatalogData
1395func (c *ECRPublic) GetRepositoryCatalogDataRequest(input *GetRepositoryCatalogDataInput) (req *request.Request, output *GetRepositoryCatalogDataOutput) {
1396	op := &request.Operation{
1397		Name:       opGetRepositoryCatalogData,
1398		HTTPMethod: "POST",
1399		HTTPPath:   "/",
1400	}
1401
1402	if input == nil {
1403		input = &GetRepositoryCatalogDataInput{}
1404	}
1405
1406	output = &GetRepositoryCatalogDataOutput{}
1407	req = c.newRequest(op, input, output)
1408	return
1409}
1410
1411// GetRepositoryCatalogData API operation for Amazon Elastic Container Registry Public.
1412//
1413// Retrieve catalog metadata for a repository in a public registry. This metadata
1414// is displayed publicly in the Amazon ECR Public Gallery.
1415//
1416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1417// with awserr.Error's Code and Message methods to get detailed information about
1418// the error.
1419//
1420// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1421// API operation GetRepositoryCatalogData for usage and error information.
1422//
1423// Returned Error Types:
1424//   * ServerException
1425//   These errors are usually caused by a server-side issue.
1426//
1427//   * InvalidParameterException
1428//   The specified parameter is invalid. Review the available parameters for the
1429//   API request.
1430//
1431//   * RepositoryNotFoundException
1432//   The specified repository could not be found. Check the spelling of the specified
1433//   repository and ensure that you are performing operations on the correct registry.
1434//
1435// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetRepositoryCatalogData
1436func (c *ECRPublic) GetRepositoryCatalogData(input *GetRepositoryCatalogDataInput) (*GetRepositoryCatalogDataOutput, error) {
1437	req, out := c.GetRepositoryCatalogDataRequest(input)
1438	return out, req.Send()
1439}
1440
1441// GetRepositoryCatalogDataWithContext is the same as GetRepositoryCatalogData with the addition of
1442// the ability to pass a context and additional request options.
1443//
1444// See GetRepositoryCatalogData for details on how to use this API operation.
1445//
1446// The context must be non-nil and will be used for request cancellation. If
1447// the context is nil a panic will occur. In the future the SDK may create
1448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1449// for more information on using Contexts.
1450func (c *ECRPublic) GetRepositoryCatalogDataWithContext(ctx aws.Context, input *GetRepositoryCatalogDataInput, opts ...request.Option) (*GetRepositoryCatalogDataOutput, error) {
1451	req, out := c.GetRepositoryCatalogDataRequest(input)
1452	req.SetContext(ctx)
1453	req.ApplyOptions(opts...)
1454	return out, req.Send()
1455}
1456
1457const opGetRepositoryPolicy = "GetRepositoryPolicy"
1458
1459// GetRepositoryPolicyRequest generates a "aws/request.Request" representing the
1460// client's request for the GetRepositoryPolicy operation. The "output" return
1461// value will be populated with the request's response once the request completes
1462// successfully.
1463//
1464// Use "Send" method on the returned Request to send the API call to the service.
1465// the "output" return value is not valid until after Send returns without error.
1466//
1467// See GetRepositoryPolicy for more information on using the GetRepositoryPolicy
1468// API call, and error handling.
1469//
1470// This method is useful when you want to inject custom logic or configuration
1471// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1472//
1473//
1474//    // Example sending a request using the GetRepositoryPolicyRequest method.
1475//    req, resp := client.GetRepositoryPolicyRequest(params)
1476//
1477//    err := req.Send()
1478//    if err == nil { // resp is now filled
1479//        fmt.Println(resp)
1480//    }
1481//
1482// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetRepositoryPolicy
1483func (c *ECRPublic) GetRepositoryPolicyRequest(input *GetRepositoryPolicyInput) (req *request.Request, output *GetRepositoryPolicyOutput) {
1484	op := &request.Operation{
1485		Name:       opGetRepositoryPolicy,
1486		HTTPMethod: "POST",
1487		HTTPPath:   "/",
1488	}
1489
1490	if input == nil {
1491		input = &GetRepositoryPolicyInput{}
1492	}
1493
1494	output = &GetRepositoryPolicyOutput{}
1495	req = c.newRequest(op, input, output)
1496	return
1497}
1498
1499// GetRepositoryPolicy API operation for Amazon Elastic Container Registry Public.
1500//
1501// Retrieves the repository policy for the specified repository.
1502//
1503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1504// with awserr.Error's Code and Message methods to get detailed information about
1505// the error.
1506//
1507// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1508// API operation GetRepositoryPolicy for usage and error information.
1509//
1510// Returned Error Types:
1511//   * ServerException
1512//   These errors are usually caused by a server-side issue.
1513//
1514//   * InvalidParameterException
1515//   The specified parameter is invalid. Review the available parameters for the
1516//   API request.
1517//
1518//   * RepositoryNotFoundException
1519//   The specified repository could not be found. Check the spelling of the specified
1520//   repository and ensure that you are performing operations on the correct registry.
1521//
1522//   * RepositoryPolicyNotFoundException
1523//   The specified repository and registry combination does not have an associated
1524//   repository policy.
1525//
1526// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/GetRepositoryPolicy
1527func (c *ECRPublic) GetRepositoryPolicy(input *GetRepositoryPolicyInput) (*GetRepositoryPolicyOutput, error) {
1528	req, out := c.GetRepositoryPolicyRequest(input)
1529	return out, req.Send()
1530}
1531
1532// GetRepositoryPolicyWithContext is the same as GetRepositoryPolicy with the addition of
1533// the ability to pass a context and additional request options.
1534//
1535// See GetRepositoryPolicy for details on how to use this API operation.
1536//
1537// The context must be non-nil and will be used for request cancellation. If
1538// the context is nil a panic will occur. In the future the SDK may create
1539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1540// for more information on using Contexts.
1541func (c *ECRPublic) GetRepositoryPolicyWithContext(ctx aws.Context, input *GetRepositoryPolicyInput, opts ...request.Option) (*GetRepositoryPolicyOutput, error) {
1542	req, out := c.GetRepositoryPolicyRequest(input)
1543	req.SetContext(ctx)
1544	req.ApplyOptions(opts...)
1545	return out, req.Send()
1546}
1547
1548const opInitiateLayerUpload = "InitiateLayerUpload"
1549
1550// InitiateLayerUploadRequest generates a "aws/request.Request" representing the
1551// client's request for the InitiateLayerUpload operation. The "output" return
1552// value will be populated with the request's response once the request completes
1553// successfully.
1554//
1555// Use "Send" method on the returned Request to send the API call to the service.
1556// the "output" return value is not valid until after Send returns without error.
1557//
1558// See InitiateLayerUpload for more information on using the InitiateLayerUpload
1559// API call, and error handling.
1560//
1561// This method is useful when you want to inject custom logic or configuration
1562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1563//
1564//
1565//    // Example sending a request using the InitiateLayerUploadRequest method.
1566//    req, resp := client.InitiateLayerUploadRequest(params)
1567//
1568//    err := req.Send()
1569//    if err == nil { // resp is now filled
1570//        fmt.Println(resp)
1571//    }
1572//
1573// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/InitiateLayerUpload
1574func (c *ECRPublic) InitiateLayerUploadRequest(input *InitiateLayerUploadInput) (req *request.Request, output *InitiateLayerUploadOutput) {
1575	op := &request.Operation{
1576		Name:       opInitiateLayerUpload,
1577		HTTPMethod: "POST",
1578		HTTPPath:   "/",
1579	}
1580
1581	if input == nil {
1582		input = &InitiateLayerUploadInput{}
1583	}
1584
1585	output = &InitiateLayerUploadOutput{}
1586	req = c.newRequest(op, input, output)
1587	return
1588}
1589
1590// InitiateLayerUpload API operation for Amazon Elastic Container Registry Public.
1591//
1592// Notifies Amazon ECR that you intend to upload an image layer.
1593//
1594// When an image is pushed, the InitiateLayerUpload API is called once per image
1595// layer that has not already been uploaded. Whether or not an image layer has
1596// been uploaded is determined by the BatchCheckLayerAvailability API action.
1597//
1598// This operation is used by the Amazon ECR proxy and is not generally used
1599// by customers for pulling and pushing images. In most cases, you should use
1600// the docker CLI to pull, tag, and push images.
1601//
1602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1603// with awserr.Error's Code and Message methods to get detailed information about
1604// the error.
1605//
1606// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1607// API operation InitiateLayerUpload for usage and error information.
1608//
1609// Returned Error Types:
1610//   * ServerException
1611//   These errors are usually caused by a server-side issue.
1612//
1613//   * InvalidParameterException
1614//   The specified parameter is invalid. Review the available parameters for the
1615//   API request.
1616//
1617//   * RepositoryNotFoundException
1618//   The specified repository could not be found. Check the spelling of the specified
1619//   repository and ensure that you are performing operations on the correct registry.
1620//
1621//   * RegistryNotFoundException
1622//   The registry does not exist.
1623//
1624//   * UnsupportedCommandException
1625//   The action is not supported in this Region.
1626//
1627// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/InitiateLayerUpload
1628func (c *ECRPublic) InitiateLayerUpload(input *InitiateLayerUploadInput) (*InitiateLayerUploadOutput, error) {
1629	req, out := c.InitiateLayerUploadRequest(input)
1630	return out, req.Send()
1631}
1632
1633// InitiateLayerUploadWithContext is the same as InitiateLayerUpload with the addition of
1634// the ability to pass a context and additional request options.
1635//
1636// See InitiateLayerUpload for details on how to use this API operation.
1637//
1638// The context must be non-nil and will be used for request cancellation. If
1639// the context is nil a panic will occur. In the future the SDK may create
1640// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1641// for more information on using Contexts.
1642func (c *ECRPublic) InitiateLayerUploadWithContext(ctx aws.Context, input *InitiateLayerUploadInput, opts ...request.Option) (*InitiateLayerUploadOutput, error) {
1643	req, out := c.InitiateLayerUploadRequest(input)
1644	req.SetContext(ctx)
1645	req.ApplyOptions(opts...)
1646	return out, req.Send()
1647}
1648
1649const opListTagsForResource = "ListTagsForResource"
1650
1651// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1652// client's request for the ListTagsForResource operation. The "output" return
1653// value will be populated with the request's response once the request completes
1654// successfully.
1655//
1656// Use "Send" method on the returned Request to send the API call to the service.
1657// the "output" return value is not valid until after Send returns without error.
1658//
1659// See ListTagsForResource for more information on using the ListTagsForResource
1660// API call, and error handling.
1661//
1662// This method is useful when you want to inject custom logic or configuration
1663// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1664//
1665//
1666//    // Example sending a request using the ListTagsForResourceRequest method.
1667//    req, resp := client.ListTagsForResourceRequest(params)
1668//
1669//    err := req.Send()
1670//    if err == nil { // resp is now filled
1671//        fmt.Println(resp)
1672//    }
1673//
1674// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/ListTagsForResource
1675func (c *ECRPublic) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1676	op := &request.Operation{
1677		Name:       opListTagsForResource,
1678		HTTPMethod: "POST",
1679		HTTPPath:   "/",
1680	}
1681
1682	if input == nil {
1683		input = &ListTagsForResourceInput{}
1684	}
1685
1686	output = &ListTagsForResourceOutput{}
1687	req = c.newRequest(op, input, output)
1688	return
1689}
1690
1691// ListTagsForResource API operation for Amazon Elastic Container Registry Public.
1692//
1693// List the tags for an Amazon ECR Public resource.
1694//
1695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1696// with awserr.Error's Code and Message methods to get detailed information about
1697// the error.
1698//
1699// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1700// API operation ListTagsForResource for usage and error information.
1701//
1702// Returned Error Types:
1703//   * InvalidParameterException
1704//   The specified parameter is invalid. Review the available parameters for the
1705//   API request.
1706//
1707//   * RepositoryNotFoundException
1708//   The specified repository could not be found. Check the spelling of the specified
1709//   repository and ensure that you are performing operations on the correct registry.
1710//
1711//   * ServerException
1712//   These errors are usually caused by a server-side issue.
1713//
1714// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/ListTagsForResource
1715func (c *ECRPublic) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1716	req, out := c.ListTagsForResourceRequest(input)
1717	return out, req.Send()
1718}
1719
1720// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1721// the ability to pass a context and additional request options.
1722//
1723// See ListTagsForResource for details on how to use this API operation.
1724//
1725// The context must be non-nil and will be used for request cancellation. If
1726// the context is nil a panic will occur. In the future the SDK may create
1727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1728// for more information on using Contexts.
1729func (c *ECRPublic) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1730	req, out := c.ListTagsForResourceRequest(input)
1731	req.SetContext(ctx)
1732	req.ApplyOptions(opts...)
1733	return out, req.Send()
1734}
1735
1736const opPutImage = "PutImage"
1737
1738// PutImageRequest generates a "aws/request.Request" representing the
1739// client's request for the PutImage operation. The "output" return
1740// value will be populated with the request's response once the request completes
1741// successfully.
1742//
1743// Use "Send" method on the returned Request to send the API call to the service.
1744// the "output" return value is not valid until after Send returns without error.
1745//
1746// See PutImage for more information on using the PutImage
1747// API call, and error handling.
1748//
1749// This method is useful when you want to inject custom logic or configuration
1750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1751//
1752//
1753//    // Example sending a request using the PutImageRequest method.
1754//    req, resp := client.PutImageRequest(params)
1755//
1756//    err := req.Send()
1757//    if err == nil { // resp is now filled
1758//        fmt.Println(resp)
1759//    }
1760//
1761// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/PutImage
1762func (c *ECRPublic) PutImageRequest(input *PutImageInput) (req *request.Request, output *PutImageOutput) {
1763	op := &request.Operation{
1764		Name:       opPutImage,
1765		HTTPMethod: "POST",
1766		HTTPPath:   "/",
1767	}
1768
1769	if input == nil {
1770		input = &PutImageInput{}
1771	}
1772
1773	output = &PutImageOutput{}
1774	req = c.newRequest(op, input, output)
1775	return
1776}
1777
1778// PutImage API operation for Amazon Elastic Container Registry Public.
1779//
1780// Creates or updates the image manifest and tags associated with an image.
1781//
1782// When an image is pushed and all new image layers have been uploaded, the
1783// PutImage API is called once to create or update the image manifest and the
1784// tags associated with the image.
1785//
1786// This operation is used by the Amazon ECR proxy and is not generally used
1787// by customers for pulling and pushing images. In most cases, you should use
1788// the docker CLI to pull, tag, and push images.
1789//
1790// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1791// with awserr.Error's Code and Message methods to get detailed information about
1792// the error.
1793//
1794// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1795// API operation PutImage for usage and error information.
1796//
1797// Returned Error Types:
1798//   * ServerException
1799//   These errors are usually caused by a server-side issue.
1800//
1801//   * InvalidParameterException
1802//   The specified parameter is invalid. Review the available parameters for the
1803//   API request.
1804//
1805//   * RepositoryNotFoundException
1806//   The specified repository could not be found. Check the spelling of the specified
1807//   repository and ensure that you are performing operations on the correct registry.
1808//
1809//   * ImageAlreadyExistsException
1810//   The specified image has already been pushed, and there were no changes to
1811//   the manifest or image tag after the last push.
1812//
1813//   * LayersNotFoundException
1814//   The specified layers could not be found, or the specified layer is not valid
1815//   for this repository.
1816//
1817//   * ReferencedImagesNotFoundException
1818//   The manifest list is referencing an image that does not exist.
1819//
1820//   * LimitExceededException
1821//   The operation did not succeed because it would have exceeded a service limit
1822//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
1823//   in the Amazon Elastic Container Registry User Guide.
1824//
1825//   * ImageTagAlreadyExistsException
1826//   The specified image is tagged with a tag that already exists. The repository
1827//   is configured for tag immutability.
1828//
1829//   * ImageDigestDoesNotMatchException
1830//   The specified image digest does not match the digest that Amazon ECR calculated
1831//   for the image.
1832//
1833//   * RegistryNotFoundException
1834//   The registry does not exist.
1835//
1836//   * UnsupportedCommandException
1837//   The action is not supported in this Region.
1838//
1839// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/PutImage
1840func (c *ECRPublic) PutImage(input *PutImageInput) (*PutImageOutput, error) {
1841	req, out := c.PutImageRequest(input)
1842	return out, req.Send()
1843}
1844
1845// PutImageWithContext is the same as PutImage with the addition of
1846// the ability to pass a context and additional request options.
1847//
1848// See PutImage for details on how to use this API operation.
1849//
1850// The context must be non-nil and will be used for request cancellation. If
1851// the context is nil a panic will occur. In the future the SDK may create
1852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1853// for more information on using Contexts.
1854func (c *ECRPublic) PutImageWithContext(ctx aws.Context, input *PutImageInput, opts ...request.Option) (*PutImageOutput, error) {
1855	req, out := c.PutImageRequest(input)
1856	req.SetContext(ctx)
1857	req.ApplyOptions(opts...)
1858	return out, req.Send()
1859}
1860
1861const opPutRegistryCatalogData = "PutRegistryCatalogData"
1862
1863// PutRegistryCatalogDataRequest generates a "aws/request.Request" representing the
1864// client's request for the PutRegistryCatalogData operation. The "output" return
1865// value will be populated with the request's response once the request completes
1866// successfully.
1867//
1868// Use "Send" method on the returned Request to send the API call to the service.
1869// the "output" return value is not valid until after Send returns without error.
1870//
1871// See PutRegistryCatalogData for more information on using the PutRegistryCatalogData
1872// API call, and error handling.
1873//
1874// This method is useful when you want to inject custom logic or configuration
1875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1876//
1877//
1878//    // Example sending a request using the PutRegistryCatalogDataRequest method.
1879//    req, resp := client.PutRegistryCatalogDataRequest(params)
1880//
1881//    err := req.Send()
1882//    if err == nil { // resp is now filled
1883//        fmt.Println(resp)
1884//    }
1885//
1886// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/PutRegistryCatalogData
1887func (c *ECRPublic) PutRegistryCatalogDataRequest(input *PutRegistryCatalogDataInput) (req *request.Request, output *PutRegistryCatalogDataOutput) {
1888	op := &request.Operation{
1889		Name:       opPutRegistryCatalogData,
1890		HTTPMethod: "POST",
1891		HTTPPath:   "/",
1892	}
1893
1894	if input == nil {
1895		input = &PutRegistryCatalogDataInput{}
1896	}
1897
1898	output = &PutRegistryCatalogDataOutput{}
1899	req = c.newRequest(op, input, output)
1900	return
1901}
1902
1903// PutRegistryCatalogData API operation for Amazon Elastic Container Registry Public.
1904//
1905// Create or updates the catalog data for a public registry.
1906//
1907// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1908// with awserr.Error's Code and Message methods to get detailed information about
1909// the error.
1910//
1911// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1912// API operation PutRegistryCatalogData for usage and error information.
1913//
1914// Returned Error Types:
1915//   * ServerException
1916//   These errors are usually caused by a server-side issue.
1917//
1918//   * InvalidParameterException
1919//   The specified parameter is invalid. Review the available parameters for the
1920//   API request.
1921//
1922//   * UnsupportedCommandException
1923//   The action is not supported in this Region.
1924//
1925// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/PutRegistryCatalogData
1926func (c *ECRPublic) PutRegistryCatalogData(input *PutRegistryCatalogDataInput) (*PutRegistryCatalogDataOutput, error) {
1927	req, out := c.PutRegistryCatalogDataRequest(input)
1928	return out, req.Send()
1929}
1930
1931// PutRegistryCatalogDataWithContext is the same as PutRegistryCatalogData with the addition of
1932// the ability to pass a context and additional request options.
1933//
1934// See PutRegistryCatalogData for details on how to use this API operation.
1935//
1936// The context must be non-nil and will be used for request cancellation. If
1937// the context is nil a panic will occur. In the future the SDK may create
1938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1939// for more information on using Contexts.
1940func (c *ECRPublic) PutRegistryCatalogDataWithContext(ctx aws.Context, input *PutRegistryCatalogDataInput, opts ...request.Option) (*PutRegistryCatalogDataOutput, error) {
1941	req, out := c.PutRegistryCatalogDataRequest(input)
1942	req.SetContext(ctx)
1943	req.ApplyOptions(opts...)
1944	return out, req.Send()
1945}
1946
1947const opPutRepositoryCatalogData = "PutRepositoryCatalogData"
1948
1949// PutRepositoryCatalogDataRequest generates a "aws/request.Request" representing the
1950// client's request for the PutRepositoryCatalogData operation. The "output" return
1951// value will be populated with the request's response once the request completes
1952// successfully.
1953//
1954// Use "Send" method on the returned Request to send the API call to the service.
1955// the "output" return value is not valid until after Send returns without error.
1956//
1957// See PutRepositoryCatalogData for more information on using the PutRepositoryCatalogData
1958// API call, and error handling.
1959//
1960// This method is useful when you want to inject custom logic or configuration
1961// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1962//
1963//
1964//    // Example sending a request using the PutRepositoryCatalogDataRequest method.
1965//    req, resp := client.PutRepositoryCatalogDataRequest(params)
1966//
1967//    err := req.Send()
1968//    if err == nil { // resp is now filled
1969//        fmt.Println(resp)
1970//    }
1971//
1972// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/PutRepositoryCatalogData
1973func (c *ECRPublic) PutRepositoryCatalogDataRequest(input *PutRepositoryCatalogDataInput) (req *request.Request, output *PutRepositoryCatalogDataOutput) {
1974	op := &request.Operation{
1975		Name:       opPutRepositoryCatalogData,
1976		HTTPMethod: "POST",
1977		HTTPPath:   "/",
1978	}
1979
1980	if input == nil {
1981		input = &PutRepositoryCatalogDataInput{}
1982	}
1983
1984	output = &PutRepositoryCatalogDataOutput{}
1985	req = c.newRequest(op, input, output)
1986	return
1987}
1988
1989// PutRepositoryCatalogData API operation for Amazon Elastic Container Registry Public.
1990//
1991// Creates or updates the catalog data for a repository in a public registry.
1992//
1993// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1994// with awserr.Error's Code and Message methods to get detailed information about
1995// the error.
1996//
1997// See the AWS API reference guide for Amazon Elastic Container Registry Public's
1998// API operation PutRepositoryCatalogData for usage and error information.
1999//
2000// Returned Error Types:
2001//   * ServerException
2002//   These errors are usually caused by a server-side issue.
2003//
2004//   * InvalidParameterException
2005//   The specified parameter is invalid. Review the available parameters for the
2006//   API request.
2007//
2008//   * RepositoryNotFoundException
2009//   The specified repository could not be found. Check the spelling of the specified
2010//   repository and ensure that you are performing operations on the correct registry.
2011//
2012// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/PutRepositoryCatalogData
2013func (c *ECRPublic) PutRepositoryCatalogData(input *PutRepositoryCatalogDataInput) (*PutRepositoryCatalogDataOutput, error) {
2014	req, out := c.PutRepositoryCatalogDataRequest(input)
2015	return out, req.Send()
2016}
2017
2018// PutRepositoryCatalogDataWithContext is the same as PutRepositoryCatalogData with the addition of
2019// the ability to pass a context and additional request options.
2020//
2021// See PutRepositoryCatalogData for details on how to use this API operation.
2022//
2023// The context must be non-nil and will be used for request cancellation. If
2024// the context is nil a panic will occur. In the future the SDK may create
2025// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2026// for more information on using Contexts.
2027func (c *ECRPublic) PutRepositoryCatalogDataWithContext(ctx aws.Context, input *PutRepositoryCatalogDataInput, opts ...request.Option) (*PutRepositoryCatalogDataOutput, error) {
2028	req, out := c.PutRepositoryCatalogDataRequest(input)
2029	req.SetContext(ctx)
2030	req.ApplyOptions(opts...)
2031	return out, req.Send()
2032}
2033
2034const opSetRepositoryPolicy = "SetRepositoryPolicy"
2035
2036// SetRepositoryPolicyRequest generates a "aws/request.Request" representing the
2037// client's request for the SetRepositoryPolicy operation. The "output" return
2038// value will be populated with the request's response once the request completes
2039// successfully.
2040//
2041// Use "Send" method on the returned Request to send the API call to the service.
2042// the "output" return value is not valid until after Send returns without error.
2043//
2044// See SetRepositoryPolicy for more information on using the SetRepositoryPolicy
2045// API call, and error handling.
2046//
2047// This method is useful when you want to inject custom logic or configuration
2048// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2049//
2050//
2051//    // Example sending a request using the SetRepositoryPolicyRequest method.
2052//    req, resp := client.SetRepositoryPolicyRequest(params)
2053//
2054//    err := req.Send()
2055//    if err == nil { // resp is now filled
2056//        fmt.Println(resp)
2057//    }
2058//
2059// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/SetRepositoryPolicy
2060func (c *ECRPublic) SetRepositoryPolicyRequest(input *SetRepositoryPolicyInput) (req *request.Request, output *SetRepositoryPolicyOutput) {
2061	op := &request.Operation{
2062		Name:       opSetRepositoryPolicy,
2063		HTTPMethod: "POST",
2064		HTTPPath:   "/",
2065	}
2066
2067	if input == nil {
2068		input = &SetRepositoryPolicyInput{}
2069	}
2070
2071	output = &SetRepositoryPolicyOutput{}
2072	req = c.newRequest(op, input, output)
2073	return
2074}
2075
2076// SetRepositoryPolicy API operation for Amazon Elastic Container Registry Public.
2077//
2078// Applies a repository policy to the specified public repository to control
2079// access permissions. For more information, see Amazon ECR Repository Policies
2080// (https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html)
2081// in the Amazon Elastic Container Registry User Guide.
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 Elastic Container Registry Public's
2088// API operation SetRepositoryPolicy 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// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/SetRepositoryPolicy
2103func (c *ECRPublic) SetRepositoryPolicy(input *SetRepositoryPolicyInput) (*SetRepositoryPolicyOutput, error) {
2104	req, out := c.SetRepositoryPolicyRequest(input)
2105	return out, req.Send()
2106}
2107
2108// SetRepositoryPolicyWithContext is the same as SetRepositoryPolicy with the addition of
2109// the ability to pass a context and additional request options.
2110//
2111// See SetRepositoryPolicy for details on how to use this API operation.
2112//
2113// The context must be non-nil and will be used for request cancellation. If
2114// the context is nil a panic will occur. In the future the SDK may create
2115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2116// for more information on using Contexts.
2117func (c *ECRPublic) SetRepositoryPolicyWithContext(ctx aws.Context, input *SetRepositoryPolicyInput, opts ...request.Option) (*SetRepositoryPolicyOutput, error) {
2118	req, out := c.SetRepositoryPolicyRequest(input)
2119	req.SetContext(ctx)
2120	req.ApplyOptions(opts...)
2121	return out, req.Send()
2122}
2123
2124const opTagResource = "TagResource"
2125
2126// TagResourceRequest generates a "aws/request.Request" representing the
2127// client's request for the TagResource operation. The "output" return
2128// value will be populated with the request's response once the request completes
2129// successfully.
2130//
2131// Use "Send" method on the returned Request to send the API call to the service.
2132// the "output" return value is not valid until after Send returns without error.
2133//
2134// See TagResource for more information on using the TagResource
2135// API call, and error handling.
2136//
2137// This method is useful when you want to inject custom logic or configuration
2138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2139//
2140//
2141//    // Example sending a request using the TagResourceRequest method.
2142//    req, resp := client.TagResourceRequest(params)
2143//
2144//    err := req.Send()
2145//    if err == nil { // resp is now filled
2146//        fmt.Println(resp)
2147//    }
2148//
2149// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/TagResource
2150func (c *ECRPublic) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2151	op := &request.Operation{
2152		Name:       opTagResource,
2153		HTTPMethod: "POST",
2154		HTTPPath:   "/",
2155	}
2156
2157	if input == nil {
2158		input = &TagResourceInput{}
2159	}
2160
2161	output = &TagResourceOutput{}
2162	req = c.newRequest(op, input, output)
2163	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2164	return
2165}
2166
2167// TagResource API operation for Amazon Elastic Container Registry Public.
2168//
2169// Associates the specified tags to a resource with the specified resourceArn.
2170// If existing tags on a resource are not specified in the request parameters,
2171// they are not changed. When a resource is deleted, the tags associated with
2172// that resource are deleted as well.
2173//
2174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2175// with awserr.Error's Code and Message methods to get detailed information about
2176// the error.
2177//
2178// See the AWS API reference guide for Amazon Elastic Container Registry Public's
2179// API operation TagResource for usage and error information.
2180//
2181// Returned Error Types:
2182//   * InvalidParameterException
2183//   The specified parameter is invalid. Review the available parameters for the
2184//   API request.
2185//
2186//   * InvalidTagParameterException
2187//   An invalid parameter has been specified. Tag keys can have a maximum character
2188//   length of 128 characters, and tag values can have a maximum length of 256
2189//   characters.
2190//
2191//   * TooManyTagsException
2192//   The list of tags on the repository is over the limit. The maximum number
2193//   of tags that can be applied to a repository is 50.
2194//
2195//   * RepositoryNotFoundException
2196//   The specified repository could not be found. Check the spelling of the specified
2197//   repository and ensure that you are performing operations on the correct registry.
2198//
2199//   * ServerException
2200//   These errors are usually caused by a server-side issue.
2201//
2202// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/TagResource
2203func (c *ECRPublic) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2204	req, out := c.TagResourceRequest(input)
2205	return out, req.Send()
2206}
2207
2208// TagResourceWithContext is the same as TagResource with the addition of
2209// the ability to pass a context and additional request options.
2210//
2211// See TagResource for details on how to use this API operation.
2212//
2213// The context must be non-nil and will be used for request cancellation. If
2214// the context is nil a panic will occur. In the future the SDK may create
2215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2216// for more information on using Contexts.
2217func (c *ECRPublic) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2218	req, out := c.TagResourceRequest(input)
2219	req.SetContext(ctx)
2220	req.ApplyOptions(opts...)
2221	return out, req.Send()
2222}
2223
2224const opUntagResource = "UntagResource"
2225
2226// UntagResourceRequest generates a "aws/request.Request" representing the
2227// client's request for the UntagResource operation. The "output" return
2228// value will be populated with the request's response once the request completes
2229// successfully.
2230//
2231// Use "Send" method on the returned Request to send the API call to the service.
2232// the "output" return value is not valid until after Send returns without error.
2233//
2234// See UntagResource for more information on using the UntagResource
2235// API call, and error handling.
2236//
2237// This method is useful when you want to inject custom logic or configuration
2238// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2239//
2240//
2241//    // Example sending a request using the UntagResourceRequest method.
2242//    req, resp := client.UntagResourceRequest(params)
2243//
2244//    err := req.Send()
2245//    if err == nil { // resp is now filled
2246//        fmt.Println(resp)
2247//    }
2248//
2249// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/UntagResource
2250func (c *ECRPublic) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2251	op := &request.Operation{
2252		Name:       opUntagResource,
2253		HTTPMethod: "POST",
2254		HTTPPath:   "/",
2255	}
2256
2257	if input == nil {
2258		input = &UntagResourceInput{}
2259	}
2260
2261	output = &UntagResourceOutput{}
2262	req = c.newRequest(op, input, output)
2263	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2264	return
2265}
2266
2267// UntagResource API operation for Amazon Elastic Container Registry Public.
2268//
2269// Deletes specified tags from a resource.
2270//
2271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2272// with awserr.Error's Code and Message methods to get detailed information about
2273// the error.
2274//
2275// See the AWS API reference guide for Amazon Elastic Container Registry Public's
2276// API operation UntagResource for usage and error information.
2277//
2278// Returned Error Types:
2279//   * InvalidParameterException
2280//   The specified parameter is invalid. Review the available parameters for the
2281//   API request.
2282//
2283//   * InvalidTagParameterException
2284//   An invalid parameter has been specified. Tag keys can have a maximum character
2285//   length of 128 characters, and tag values can have a maximum length of 256
2286//   characters.
2287//
2288//   * TooManyTagsException
2289//   The list of tags on the repository is over the limit. The maximum number
2290//   of tags that can be applied to a repository is 50.
2291//
2292//   * RepositoryNotFoundException
2293//   The specified repository could not be found. Check the spelling of the specified
2294//   repository and ensure that you are performing operations on the correct registry.
2295//
2296//   * ServerException
2297//   These errors are usually caused by a server-side issue.
2298//
2299// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/UntagResource
2300func (c *ECRPublic) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2301	req, out := c.UntagResourceRequest(input)
2302	return out, req.Send()
2303}
2304
2305// UntagResourceWithContext is the same as UntagResource with the addition of
2306// the ability to pass a context and additional request options.
2307//
2308// See UntagResource for details on how to use this API operation.
2309//
2310// The context must be non-nil and will be used for request cancellation. If
2311// the context is nil a panic will occur. In the future the SDK may create
2312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2313// for more information on using Contexts.
2314func (c *ECRPublic) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2315	req, out := c.UntagResourceRequest(input)
2316	req.SetContext(ctx)
2317	req.ApplyOptions(opts...)
2318	return out, req.Send()
2319}
2320
2321const opUploadLayerPart = "UploadLayerPart"
2322
2323// UploadLayerPartRequest generates a "aws/request.Request" representing the
2324// client's request for the UploadLayerPart operation. The "output" return
2325// value will be populated with the request's response once the request completes
2326// successfully.
2327//
2328// Use "Send" method on the returned Request to send the API call to the service.
2329// the "output" return value is not valid until after Send returns without error.
2330//
2331// See UploadLayerPart for more information on using the UploadLayerPart
2332// API call, and error handling.
2333//
2334// This method is useful when you want to inject custom logic or configuration
2335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2336//
2337//
2338//    // Example sending a request using the UploadLayerPartRequest method.
2339//    req, resp := client.UploadLayerPartRequest(params)
2340//
2341//    err := req.Send()
2342//    if err == nil { // resp is now filled
2343//        fmt.Println(resp)
2344//    }
2345//
2346// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/UploadLayerPart
2347func (c *ECRPublic) UploadLayerPartRequest(input *UploadLayerPartInput) (req *request.Request, output *UploadLayerPartOutput) {
2348	op := &request.Operation{
2349		Name:       opUploadLayerPart,
2350		HTTPMethod: "POST",
2351		HTTPPath:   "/",
2352	}
2353
2354	if input == nil {
2355		input = &UploadLayerPartInput{}
2356	}
2357
2358	output = &UploadLayerPartOutput{}
2359	req = c.newRequest(op, input, output)
2360	return
2361}
2362
2363// UploadLayerPart API operation for Amazon Elastic Container Registry Public.
2364//
2365// Uploads an image layer part to Amazon ECR.
2366//
2367// When an image is pushed, each new image layer is uploaded in parts. The maximum
2368// size of each image layer part can be 20971520 bytes (or about 20MB). The
2369// UploadLayerPart API is called once per each new image layer part.
2370//
2371// This operation is used by the Amazon ECR proxy and is not generally used
2372// by customers for pulling and pushing images. In most cases, you should use
2373// the docker CLI to pull, tag, and push images.
2374//
2375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2376// with awserr.Error's Code and Message methods to get detailed information about
2377// the error.
2378//
2379// See the AWS API reference guide for Amazon Elastic Container Registry Public's
2380// API operation UploadLayerPart for usage and error information.
2381//
2382// Returned Error Types:
2383//   * ServerException
2384//   These errors are usually caused by a server-side issue.
2385//
2386//   * InvalidParameterException
2387//   The specified parameter is invalid. Review the available parameters for the
2388//   API request.
2389//
2390//   * InvalidLayerPartException
2391//   The layer part size is not valid, or the first byte specified is not consecutive
2392//   to the last byte of a previous layer part upload.
2393//
2394//   * RepositoryNotFoundException
2395//   The specified repository could not be found. Check the spelling of the specified
2396//   repository and ensure that you are performing operations on the correct registry.
2397//
2398//   * UploadNotFoundException
2399//   The upload could not be found, or the specified upload ID is not valid for
2400//   this repository.
2401//
2402//   * LimitExceededException
2403//   The operation did not succeed because it would have exceeded a service limit
2404//   for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
2405//   in the Amazon Elastic Container Registry User Guide.
2406//
2407//   * RegistryNotFoundException
2408//   The registry does not exist.
2409//
2410//   * UnsupportedCommandException
2411//   The action is not supported in this Region.
2412//
2413// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-public-2020-10-30/UploadLayerPart
2414func (c *ECRPublic) UploadLayerPart(input *UploadLayerPartInput) (*UploadLayerPartOutput, error) {
2415	req, out := c.UploadLayerPartRequest(input)
2416	return out, req.Send()
2417}
2418
2419// UploadLayerPartWithContext is the same as UploadLayerPart with the addition of
2420// the ability to pass a context and additional request options.
2421//
2422// See UploadLayerPart for details on how to use this API operation.
2423//
2424// The context must be non-nil and will be used for request cancellation. If
2425// the context is nil a panic will occur. In the future the SDK may create
2426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2427// for more information on using Contexts.
2428func (c *ECRPublic) UploadLayerPartWithContext(ctx aws.Context, input *UploadLayerPartInput, opts ...request.Option) (*UploadLayerPartOutput, error) {
2429	req, out := c.UploadLayerPartRequest(input)
2430	req.SetContext(ctx)
2431	req.ApplyOptions(opts...)
2432	return out, req.Send()
2433}
2434
2435// An authorization token data object that corresponds to a public registry.
2436type AuthorizationData struct {
2437	_ struct{} `type:"structure"`
2438
2439	// A base64-encoded string that contains authorization data for a public Amazon
2440	// ECR registry. When the string is decoded, it is presented in the format user:password
2441	// for public registry authentication using docker login.
2442	AuthorizationToken *string `locationName:"authorizationToken" type:"string"`
2443
2444	// The Unix time in seconds and milliseconds when the authorization token expires.
2445	// Authorization tokens are valid for 12 hours.
2446	ExpiresAt *time.Time `locationName:"expiresAt" type:"timestamp"`
2447}
2448
2449// String returns the string representation
2450func (s AuthorizationData) String() string {
2451	return awsutil.Prettify(s)
2452}
2453
2454// GoString returns the string representation
2455func (s AuthorizationData) GoString() string {
2456	return s.String()
2457}
2458
2459// SetAuthorizationToken sets the AuthorizationToken field's value.
2460func (s *AuthorizationData) SetAuthorizationToken(v string) *AuthorizationData {
2461	s.AuthorizationToken = &v
2462	return s
2463}
2464
2465// SetExpiresAt sets the ExpiresAt field's value.
2466func (s *AuthorizationData) SetExpiresAt(v time.Time) *AuthorizationData {
2467	s.ExpiresAt = &v
2468	return s
2469}
2470
2471type BatchCheckLayerAvailabilityInput struct {
2472	_ struct{} `type:"structure"`
2473
2474	// The digests of the image layers to check.
2475	//
2476	// LayerDigests is a required field
2477	LayerDigests []*string `locationName:"layerDigests" min:"1" type:"list" required:"true"`
2478
2479	// The AWS account ID associated with the public registry that contains the
2480	// image layers to check. If you do not specify a registry, the default public
2481	// registry is assumed.
2482	RegistryId *string `locationName:"registryId" min:"1" type:"string"`
2483
2484	// The name of the repository that is associated with the image layers to check.
2485	//
2486	// RepositoryName is a required field
2487	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
2488}
2489
2490// String returns the string representation
2491func (s BatchCheckLayerAvailabilityInput) String() string {
2492	return awsutil.Prettify(s)
2493}
2494
2495// GoString returns the string representation
2496func (s BatchCheckLayerAvailabilityInput) GoString() string {
2497	return s.String()
2498}
2499
2500// Validate inspects the fields of the type to determine if they are valid.
2501func (s *BatchCheckLayerAvailabilityInput) Validate() error {
2502	invalidParams := request.ErrInvalidParams{Context: "BatchCheckLayerAvailabilityInput"}
2503	if s.LayerDigests == nil {
2504		invalidParams.Add(request.NewErrParamRequired("LayerDigests"))
2505	}
2506	if s.LayerDigests != nil && len(s.LayerDigests) < 1 {
2507		invalidParams.Add(request.NewErrParamMinLen("LayerDigests", 1))
2508	}
2509	if s.RegistryId != nil && len(*s.RegistryId) < 1 {
2510		invalidParams.Add(request.NewErrParamMinLen("RegistryId", 1))
2511	}
2512	if s.RepositoryName == nil {
2513		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
2514	}
2515	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
2516		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
2517	}
2518
2519	if invalidParams.Len() > 0 {
2520		return invalidParams
2521	}
2522	return nil
2523}
2524
2525// SetLayerDigests sets the LayerDigests field's value.
2526func (s *BatchCheckLayerAvailabilityInput) SetLayerDigests(v []*string) *BatchCheckLayerAvailabilityInput {
2527	s.LayerDigests = v
2528	return s
2529}
2530
2531// SetRegistryId sets the RegistryId field's value.
2532func (s *BatchCheckLayerAvailabilityInput) SetRegistryId(v string) *BatchCheckLayerAvailabilityInput {
2533	s.RegistryId = &v
2534	return s
2535}
2536
2537// SetRepositoryName sets the RepositoryName field's value.
2538func (s *BatchCheckLayerAvailabilityInput) SetRepositoryName(v string) *BatchCheckLayerAvailabilityInput {
2539	s.RepositoryName = &v
2540	return s
2541}
2542
2543type BatchCheckLayerAvailabilityOutput struct {
2544	_ struct{} `type:"structure"`
2545
2546	// Any failures associated with the call.
2547	Failures []*LayerFailure `locationName:"failures" type:"list"`
2548
2549	// A list of image layer objects corresponding to the image layer references
2550	// in the request.
2551	Layers []*Layer `locationName:"layers" type:"list"`
2552}
2553
2554// String returns the string representation
2555func (s BatchCheckLayerAvailabilityOutput) String() string {
2556	return awsutil.Prettify(s)
2557}
2558
2559// GoString returns the string representation
2560func (s BatchCheckLayerAvailabilityOutput) GoString() string {
2561	return s.String()
2562}
2563
2564// SetFailures sets the Failures field's value.
2565func (s *BatchCheckLayerAvailabilityOutput) SetFailures(v []*LayerFailure) *BatchCheckLayerAvailabilityOutput {
2566	s.Failures = v
2567	return s
2568}
2569
2570// SetLayers sets the Layers field's value.
2571func (s *BatchCheckLayerAvailabilityOutput) SetLayers(v []*Layer) *BatchCheckLayerAvailabilityOutput {
2572	s.Layers = v
2573	return s
2574}
2575
2576type BatchDeleteImageInput struct {
2577	_ struct{} `type:"structure"`
2578
2579	// A list of image ID references that correspond to images to delete. The format
2580	// of the imageIds reference is imageTag=tag or imageDigest=digest.
2581	//
2582	// ImageIds is a required field
2583	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list" required:"true"`
2584
2585	// The AWS account ID associated with the registry that contains the image to
2586	// delete. If you do not specify a registry, the default public registry is
2587	// assumed.
2588	RegistryId *string `locationName:"registryId" type:"string"`
2589
2590	// The repository in a public registry that contains the image to delete.
2591	//
2592	// RepositoryName is a required field
2593	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
2594}
2595
2596// String returns the string representation
2597func (s BatchDeleteImageInput) String() string {
2598	return awsutil.Prettify(s)
2599}
2600
2601// GoString returns the string representation
2602func (s BatchDeleteImageInput) GoString() string {
2603	return s.String()
2604}
2605
2606// Validate inspects the fields of the type to determine if they are valid.
2607func (s *BatchDeleteImageInput) Validate() error {
2608	invalidParams := request.ErrInvalidParams{Context: "BatchDeleteImageInput"}
2609	if s.ImageIds == nil {
2610		invalidParams.Add(request.NewErrParamRequired("ImageIds"))
2611	}
2612	if s.ImageIds != nil && len(s.ImageIds) < 1 {
2613		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
2614	}
2615	if s.RepositoryName == nil {
2616		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
2617	}
2618	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
2619		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
2620	}
2621	if s.ImageIds != nil {
2622		for i, v := range s.ImageIds {
2623			if v == nil {
2624				continue
2625			}
2626			if err := v.Validate(); err != nil {
2627				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ImageIds", i), err.(request.ErrInvalidParams))
2628			}
2629		}
2630	}
2631
2632	if invalidParams.Len() > 0 {
2633		return invalidParams
2634	}
2635	return nil
2636}
2637
2638// SetImageIds sets the ImageIds field's value.
2639func (s *BatchDeleteImageInput) SetImageIds(v []*ImageIdentifier) *BatchDeleteImageInput {
2640	s.ImageIds = v
2641	return s
2642}
2643
2644// SetRegistryId sets the RegistryId field's value.
2645func (s *BatchDeleteImageInput) SetRegistryId(v string) *BatchDeleteImageInput {
2646	s.RegistryId = &v
2647	return s
2648}
2649
2650// SetRepositoryName sets the RepositoryName field's value.
2651func (s *BatchDeleteImageInput) SetRepositoryName(v string) *BatchDeleteImageInput {
2652	s.RepositoryName = &v
2653	return s
2654}
2655
2656type BatchDeleteImageOutput struct {
2657	_ struct{} `type:"structure"`
2658
2659	// Any failures associated with the call.
2660	Failures []*ImageFailure `locationName:"failures" type:"list"`
2661
2662	// The image IDs of the deleted images.
2663	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list"`
2664}
2665
2666// String returns the string representation
2667func (s BatchDeleteImageOutput) String() string {
2668	return awsutil.Prettify(s)
2669}
2670
2671// GoString returns the string representation
2672func (s BatchDeleteImageOutput) GoString() string {
2673	return s.String()
2674}
2675
2676// SetFailures sets the Failures field's value.
2677func (s *BatchDeleteImageOutput) SetFailures(v []*ImageFailure) *BatchDeleteImageOutput {
2678	s.Failures = v
2679	return s
2680}
2681
2682// SetImageIds sets the ImageIds field's value.
2683func (s *BatchDeleteImageOutput) SetImageIds(v []*ImageIdentifier) *BatchDeleteImageOutput {
2684	s.ImageIds = v
2685	return s
2686}
2687
2688type CompleteLayerUploadInput struct {
2689	_ struct{} `type:"structure"`
2690
2691	// The sha256 digest of the image layer.
2692	//
2693	// LayerDigests is a required field
2694	LayerDigests []*string `locationName:"layerDigests" min:"1" type:"list" required:"true"`
2695
2696	// The AWS account ID associated with the registry to which to upload layers.
2697	// If you do not specify a registry, the default public registry is assumed.
2698	RegistryId *string `locationName:"registryId" min:"1" type:"string"`
2699
2700	// The name of the repository in a public registry to associate with the image
2701	// layer.
2702	//
2703	// RepositoryName is a required field
2704	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
2705
2706	// The upload ID from a previous InitiateLayerUpload operation to associate
2707	// with the image layer.
2708	//
2709	// UploadId is a required field
2710	UploadId *string `locationName:"uploadId" type:"string" required:"true"`
2711}
2712
2713// String returns the string representation
2714func (s CompleteLayerUploadInput) String() string {
2715	return awsutil.Prettify(s)
2716}
2717
2718// GoString returns the string representation
2719func (s CompleteLayerUploadInput) GoString() string {
2720	return s.String()
2721}
2722
2723// Validate inspects the fields of the type to determine if they are valid.
2724func (s *CompleteLayerUploadInput) Validate() error {
2725	invalidParams := request.ErrInvalidParams{Context: "CompleteLayerUploadInput"}
2726	if s.LayerDigests == nil {
2727		invalidParams.Add(request.NewErrParamRequired("LayerDigests"))
2728	}
2729	if s.LayerDigests != nil && len(s.LayerDigests) < 1 {
2730		invalidParams.Add(request.NewErrParamMinLen("LayerDigests", 1))
2731	}
2732	if s.RegistryId != nil && len(*s.RegistryId) < 1 {
2733		invalidParams.Add(request.NewErrParamMinLen("RegistryId", 1))
2734	}
2735	if s.RepositoryName == nil {
2736		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
2737	}
2738	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
2739		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
2740	}
2741	if s.UploadId == nil {
2742		invalidParams.Add(request.NewErrParamRequired("UploadId"))
2743	}
2744
2745	if invalidParams.Len() > 0 {
2746		return invalidParams
2747	}
2748	return nil
2749}
2750
2751// SetLayerDigests sets the LayerDigests field's value.
2752func (s *CompleteLayerUploadInput) SetLayerDigests(v []*string) *CompleteLayerUploadInput {
2753	s.LayerDigests = v
2754	return s
2755}
2756
2757// SetRegistryId sets the RegistryId field's value.
2758func (s *CompleteLayerUploadInput) SetRegistryId(v string) *CompleteLayerUploadInput {
2759	s.RegistryId = &v
2760	return s
2761}
2762
2763// SetRepositoryName sets the RepositoryName field's value.
2764func (s *CompleteLayerUploadInput) SetRepositoryName(v string) *CompleteLayerUploadInput {
2765	s.RepositoryName = &v
2766	return s
2767}
2768
2769// SetUploadId sets the UploadId field's value.
2770func (s *CompleteLayerUploadInput) SetUploadId(v string) *CompleteLayerUploadInput {
2771	s.UploadId = &v
2772	return s
2773}
2774
2775type CompleteLayerUploadOutput struct {
2776	_ struct{} `type:"structure"`
2777
2778	// The sha256 digest of the image layer.
2779	LayerDigest *string `locationName:"layerDigest" type:"string"`
2780
2781	// The public registry ID associated with the request.
2782	RegistryId *string `locationName:"registryId" type:"string"`
2783
2784	// The repository name associated with the request.
2785	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
2786
2787	// The upload ID associated with the layer.
2788	UploadId *string `locationName:"uploadId" type:"string"`
2789}
2790
2791// String returns the string representation
2792func (s CompleteLayerUploadOutput) String() string {
2793	return awsutil.Prettify(s)
2794}
2795
2796// GoString returns the string representation
2797func (s CompleteLayerUploadOutput) GoString() string {
2798	return s.String()
2799}
2800
2801// SetLayerDigest sets the LayerDigest field's value.
2802func (s *CompleteLayerUploadOutput) SetLayerDigest(v string) *CompleteLayerUploadOutput {
2803	s.LayerDigest = &v
2804	return s
2805}
2806
2807// SetRegistryId sets the RegistryId field's value.
2808func (s *CompleteLayerUploadOutput) SetRegistryId(v string) *CompleteLayerUploadOutput {
2809	s.RegistryId = &v
2810	return s
2811}
2812
2813// SetRepositoryName sets the RepositoryName field's value.
2814func (s *CompleteLayerUploadOutput) SetRepositoryName(v string) *CompleteLayerUploadOutput {
2815	s.RepositoryName = &v
2816	return s
2817}
2818
2819// SetUploadId sets the UploadId field's value.
2820func (s *CompleteLayerUploadOutput) SetUploadId(v string) *CompleteLayerUploadOutput {
2821	s.UploadId = &v
2822	return s
2823}
2824
2825type CreateRepositoryInput struct {
2826	_ struct{} `type:"structure"`
2827
2828	// The details about the repository that are publicly visible in the Amazon
2829	// ECR Public Gallery.
2830	CatalogData *RepositoryCatalogDataInput `locationName:"catalogData" type:"structure"`
2831
2832	// The name to use for the repository. This appears publicly in the Amazon ECR
2833	// Public Gallery. The repository name may be specified on its own (such as
2834	// nginx-web-app) or it can be prepended with a namespace to group the repository
2835	// into a category (such as project-a/nginx-web-app).
2836	//
2837	// RepositoryName is a required field
2838	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
2839
2840	// The metadata that you apply to the repository to help you categorize and
2841	// organize them. Each tag consists of a key and an optional value, both of
2842	// which you define. Tag keys can have a maximum character length of 128 characters,
2843	// and tag values can have a maximum length of 256 characters.
2844	Tags []*Tag `locationName:"tags" type:"list"`
2845}
2846
2847// String returns the string representation
2848func (s CreateRepositoryInput) String() string {
2849	return awsutil.Prettify(s)
2850}
2851
2852// GoString returns the string representation
2853func (s CreateRepositoryInput) GoString() string {
2854	return s.String()
2855}
2856
2857// Validate inspects the fields of the type to determine if they are valid.
2858func (s *CreateRepositoryInput) Validate() error {
2859	invalidParams := request.ErrInvalidParams{Context: "CreateRepositoryInput"}
2860	if s.RepositoryName == nil {
2861		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
2862	}
2863	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
2864		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
2865	}
2866	if s.Tags != nil {
2867		for i, v := range s.Tags {
2868			if v == nil {
2869				continue
2870			}
2871			if err := v.Validate(); err != nil {
2872				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2873			}
2874		}
2875	}
2876
2877	if invalidParams.Len() > 0 {
2878		return invalidParams
2879	}
2880	return nil
2881}
2882
2883// SetCatalogData sets the CatalogData field's value.
2884func (s *CreateRepositoryInput) SetCatalogData(v *RepositoryCatalogDataInput) *CreateRepositoryInput {
2885	s.CatalogData = v
2886	return s
2887}
2888
2889// SetRepositoryName sets the RepositoryName field's value.
2890func (s *CreateRepositoryInput) SetRepositoryName(v string) *CreateRepositoryInput {
2891	s.RepositoryName = &v
2892	return s
2893}
2894
2895// SetTags sets the Tags field's value.
2896func (s *CreateRepositoryInput) SetTags(v []*Tag) *CreateRepositoryInput {
2897	s.Tags = v
2898	return s
2899}
2900
2901type CreateRepositoryOutput struct {
2902	_ struct{} `type:"structure"`
2903
2904	// The catalog data for a repository. This data is publicly visible in the Amazon
2905	// ECR Public Gallery.
2906	CatalogData *RepositoryCatalogData `locationName:"catalogData" type:"structure"`
2907
2908	// The repository that was created.
2909	Repository *Repository `locationName:"repository" type:"structure"`
2910}
2911
2912// String returns the string representation
2913func (s CreateRepositoryOutput) String() string {
2914	return awsutil.Prettify(s)
2915}
2916
2917// GoString returns the string representation
2918func (s CreateRepositoryOutput) GoString() string {
2919	return s.String()
2920}
2921
2922// SetCatalogData sets the CatalogData field's value.
2923func (s *CreateRepositoryOutput) SetCatalogData(v *RepositoryCatalogData) *CreateRepositoryOutput {
2924	s.CatalogData = v
2925	return s
2926}
2927
2928// SetRepository sets the Repository field's value.
2929func (s *CreateRepositoryOutput) SetRepository(v *Repository) *CreateRepositoryOutput {
2930	s.Repository = v
2931	return s
2932}
2933
2934type DeleteRepositoryInput struct {
2935	_ struct{} `type:"structure"`
2936
2937	// If a repository contains images, forces the deletion.
2938	Force *bool `locationName:"force" type:"boolean"`
2939
2940	// The AWS account ID associated with the public registry that contains the
2941	// repository to delete. If you do not specify a registry, the default public
2942	// registry is assumed.
2943	RegistryId *string `locationName:"registryId" type:"string"`
2944
2945	// The name of the repository to delete.
2946	//
2947	// RepositoryName is a required field
2948	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
2949}
2950
2951// String returns the string representation
2952func (s DeleteRepositoryInput) String() string {
2953	return awsutil.Prettify(s)
2954}
2955
2956// GoString returns the string representation
2957func (s DeleteRepositoryInput) GoString() string {
2958	return s.String()
2959}
2960
2961// Validate inspects the fields of the type to determine if they are valid.
2962func (s *DeleteRepositoryInput) Validate() error {
2963	invalidParams := request.ErrInvalidParams{Context: "DeleteRepositoryInput"}
2964	if s.RepositoryName == nil {
2965		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
2966	}
2967	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
2968		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
2969	}
2970
2971	if invalidParams.Len() > 0 {
2972		return invalidParams
2973	}
2974	return nil
2975}
2976
2977// SetForce sets the Force field's value.
2978func (s *DeleteRepositoryInput) SetForce(v bool) *DeleteRepositoryInput {
2979	s.Force = &v
2980	return s
2981}
2982
2983// SetRegistryId sets the RegistryId field's value.
2984func (s *DeleteRepositoryInput) SetRegistryId(v string) *DeleteRepositoryInput {
2985	s.RegistryId = &v
2986	return s
2987}
2988
2989// SetRepositoryName sets the RepositoryName field's value.
2990func (s *DeleteRepositoryInput) SetRepositoryName(v string) *DeleteRepositoryInput {
2991	s.RepositoryName = &v
2992	return s
2993}
2994
2995type DeleteRepositoryOutput struct {
2996	_ struct{} `type:"structure"`
2997
2998	// The repository that was deleted.
2999	Repository *Repository `locationName:"repository" type:"structure"`
3000}
3001
3002// String returns the string representation
3003func (s DeleteRepositoryOutput) String() string {
3004	return awsutil.Prettify(s)
3005}
3006
3007// GoString returns the string representation
3008func (s DeleteRepositoryOutput) GoString() string {
3009	return s.String()
3010}
3011
3012// SetRepository sets the Repository field's value.
3013func (s *DeleteRepositoryOutput) SetRepository(v *Repository) *DeleteRepositoryOutput {
3014	s.Repository = v
3015	return s
3016}
3017
3018type DeleteRepositoryPolicyInput struct {
3019	_ struct{} `type:"structure"`
3020
3021	// The AWS account ID associated with the public registry that contains the
3022	// repository policy to delete. If you do not specify a registry, the default
3023	// public registry is assumed.
3024	RegistryId *string `locationName:"registryId" type:"string"`
3025
3026	// The name of the repository that is associated with the repository policy
3027	// to delete.
3028	//
3029	// RepositoryName is a required field
3030	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3031}
3032
3033// String returns the string representation
3034func (s DeleteRepositoryPolicyInput) String() string {
3035	return awsutil.Prettify(s)
3036}
3037
3038// GoString returns the string representation
3039func (s DeleteRepositoryPolicyInput) GoString() string {
3040	return s.String()
3041}
3042
3043// Validate inspects the fields of the type to determine if they are valid.
3044func (s *DeleteRepositoryPolicyInput) Validate() error {
3045	invalidParams := request.ErrInvalidParams{Context: "DeleteRepositoryPolicyInput"}
3046	if s.RepositoryName == nil {
3047		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3048	}
3049	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3050		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3051	}
3052
3053	if invalidParams.Len() > 0 {
3054		return invalidParams
3055	}
3056	return nil
3057}
3058
3059// SetRegistryId sets the RegistryId field's value.
3060func (s *DeleteRepositoryPolicyInput) SetRegistryId(v string) *DeleteRepositoryPolicyInput {
3061	s.RegistryId = &v
3062	return s
3063}
3064
3065// SetRepositoryName sets the RepositoryName field's value.
3066func (s *DeleteRepositoryPolicyInput) SetRepositoryName(v string) *DeleteRepositoryPolicyInput {
3067	s.RepositoryName = &v
3068	return s
3069}
3070
3071type DeleteRepositoryPolicyOutput struct {
3072	_ struct{} `type:"structure"`
3073
3074	// The JSON repository policy that was deleted from the repository.
3075	PolicyText *string `locationName:"policyText" type:"string"`
3076
3077	// The registry ID associated with the request.
3078	RegistryId *string `locationName:"registryId" type:"string"`
3079
3080	// The repository name associated with the request.
3081	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
3082}
3083
3084// String returns the string representation
3085func (s DeleteRepositoryPolicyOutput) String() string {
3086	return awsutil.Prettify(s)
3087}
3088
3089// GoString returns the string representation
3090func (s DeleteRepositoryPolicyOutput) GoString() string {
3091	return s.String()
3092}
3093
3094// SetPolicyText sets the PolicyText field's value.
3095func (s *DeleteRepositoryPolicyOutput) SetPolicyText(v string) *DeleteRepositoryPolicyOutput {
3096	s.PolicyText = &v
3097	return s
3098}
3099
3100// SetRegistryId sets the RegistryId field's value.
3101func (s *DeleteRepositoryPolicyOutput) SetRegistryId(v string) *DeleteRepositoryPolicyOutput {
3102	s.RegistryId = &v
3103	return s
3104}
3105
3106// SetRepositoryName sets the RepositoryName field's value.
3107func (s *DeleteRepositoryPolicyOutput) SetRepositoryName(v string) *DeleteRepositoryPolicyOutput {
3108	s.RepositoryName = &v
3109	return s
3110}
3111
3112type DescribeImageTagsInput struct {
3113	_ struct{} `type:"structure"`
3114
3115	// The maximum number of repository results returned by DescribeImageTags in
3116	// paginated output. When this parameter is used, DescribeImageTags only returns
3117	// maxResults results in a single page along with a nextToken response element.
3118	// The remaining results of the initial request can be seen by sending another
3119	// DescribeImageTags request with the returned nextToken value. This value can
3120	// be between 1 and 1000. If this parameter is not used, then DescribeImageTags
3121	// returns up to 100 results and a nextToken value, if applicable. This option
3122	// cannot be used when you specify images with imageIds.
3123	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
3124
3125	// The nextToken value returned from a previous paginated DescribeImageTags
3126	// request where maxResults was used and the results exceeded the value of that
3127	// parameter. Pagination continues from the end of the previous results that
3128	// returned the nextToken value. This value is null when there are no more results
3129	// to return. This option cannot be used when you specify images with imageIds.
3130	NextToken *string `locationName:"nextToken" type:"string"`
3131
3132	// The AWS account ID associated with the public registry that contains the
3133	// repository in which to describe images. If you do not specify a registry,
3134	// the default public registry is assumed.
3135	RegistryId *string `locationName:"registryId" type:"string"`
3136
3137	// The name of the repository that contains the image tag details to describe.
3138	//
3139	// RepositoryName is a required field
3140	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3141}
3142
3143// String returns the string representation
3144func (s DescribeImageTagsInput) String() string {
3145	return awsutil.Prettify(s)
3146}
3147
3148// GoString returns the string representation
3149func (s DescribeImageTagsInput) GoString() string {
3150	return s.String()
3151}
3152
3153// Validate inspects the fields of the type to determine if they are valid.
3154func (s *DescribeImageTagsInput) Validate() error {
3155	invalidParams := request.ErrInvalidParams{Context: "DescribeImageTagsInput"}
3156	if s.MaxResults != nil && *s.MaxResults < 1 {
3157		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3158	}
3159	if s.RepositoryName == nil {
3160		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3161	}
3162	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3163		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3164	}
3165
3166	if invalidParams.Len() > 0 {
3167		return invalidParams
3168	}
3169	return nil
3170}
3171
3172// SetMaxResults sets the MaxResults field's value.
3173func (s *DescribeImageTagsInput) SetMaxResults(v int64) *DescribeImageTagsInput {
3174	s.MaxResults = &v
3175	return s
3176}
3177
3178// SetNextToken sets the NextToken field's value.
3179func (s *DescribeImageTagsInput) SetNextToken(v string) *DescribeImageTagsInput {
3180	s.NextToken = &v
3181	return s
3182}
3183
3184// SetRegistryId sets the RegistryId field's value.
3185func (s *DescribeImageTagsInput) SetRegistryId(v string) *DescribeImageTagsInput {
3186	s.RegistryId = &v
3187	return s
3188}
3189
3190// SetRepositoryName sets the RepositoryName field's value.
3191func (s *DescribeImageTagsInput) SetRepositoryName(v string) *DescribeImageTagsInput {
3192	s.RepositoryName = &v
3193	return s
3194}
3195
3196type DescribeImageTagsOutput struct {
3197	_ struct{} `type:"structure"`
3198
3199	// The image tag details for the images in the requested repository.
3200	ImageTagDetails []*ImageTagDetail `locationName:"imageTagDetails" type:"list"`
3201
3202	// The nextToken value to include in a future DescribeImageTags request. When
3203	// the results of a DescribeImageTags request exceed maxResults, this value
3204	// can be used to retrieve the next page of results. This value is null when
3205	// there are no more results to return.
3206	NextToken *string `locationName:"nextToken" type:"string"`
3207}
3208
3209// String returns the string representation
3210func (s DescribeImageTagsOutput) String() string {
3211	return awsutil.Prettify(s)
3212}
3213
3214// GoString returns the string representation
3215func (s DescribeImageTagsOutput) GoString() string {
3216	return s.String()
3217}
3218
3219// SetImageTagDetails sets the ImageTagDetails field's value.
3220func (s *DescribeImageTagsOutput) SetImageTagDetails(v []*ImageTagDetail) *DescribeImageTagsOutput {
3221	s.ImageTagDetails = v
3222	return s
3223}
3224
3225// SetNextToken sets the NextToken field's value.
3226func (s *DescribeImageTagsOutput) SetNextToken(v string) *DescribeImageTagsOutput {
3227	s.NextToken = &v
3228	return s
3229}
3230
3231type DescribeImagesInput struct {
3232	_ struct{} `type:"structure"`
3233
3234	// The list of image IDs for the requested repository.
3235	ImageIds []*ImageIdentifier `locationName:"imageIds" min:"1" type:"list"`
3236
3237	// The maximum number of repository results returned by DescribeImages in paginated
3238	// output. When this parameter is used, DescribeImages only returns maxResults
3239	// results in a single page along with a nextToken response element. The remaining
3240	// results of the initial request can be seen by sending another DescribeImages
3241	// request with the returned nextToken value. This value can be between 1 and
3242	// 1000. If this parameter is not used, then DescribeImages returns up to 100
3243	// results and a nextToken value, if applicable. This option cannot be used
3244	// when you specify images with imageIds.
3245	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
3246
3247	// The nextToken value returned from a previous paginated DescribeImages request
3248	// where maxResults was used and the results exceeded the value of that parameter.
3249	// Pagination continues from the end of the previous results that returned the
3250	// nextToken value. This value is null when there are no more results to return.
3251	// This option cannot be used when you specify images with imageIds.
3252	NextToken *string `locationName:"nextToken" type:"string"`
3253
3254	// The AWS account ID associated with the public registry that contains the
3255	// repository in which to describe images. If you do not specify a registry,
3256	// the default public registry is assumed.
3257	RegistryId *string `locationName:"registryId" type:"string"`
3258
3259	// The repository that contains the images to describe.
3260	//
3261	// RepositoryName is a required field
3262	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3263}
3264
3265// String returns the string representation
3266func (s DescribeImagesInput) String() string {
3267	return awsutil.Prettify(s)
3268}
3269
3270// GoString returns the string representation
3271func (s DescribeImagesInput) GoString() string {
3272	return s.String()
3273}
3274
3275// Validate inspects the fields of the type to determine if they are valid.
3276func (s *DescribeImagesInput) Validate() error {
3277	invalidParams := request.ErrInvalidParams{Context: "DescribeImagesInput"}
3278	if s.ImageIds != nil && len(s.ImageIds) < 1 {
3279		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
3280	}
3281	if s.MaxResults != nil && *s.MaxResults < 1 {
3282		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3283	}
3284	if s.RepositoryName == nil {
3285		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3286	}
3287	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3288		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3289	}
3290	if s.ImageIds != nil {
3291		for i, v := range s.ImageIds {
3292			if v == nil {
3293				continue
3294			}
3295			if err := v.Validate(); err != nil {
3296				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ImageIds", i), err.(request.ErrInvalidParams))
3297			}
3298		}
3299	}
3300
3301	if invalidParams.Len() > 0 {
3302		return invalidParams
3303	}
3304	return nil
3305}
3306
3307// SetImageIds sets the ImageIds field's value.
3308func (s *DescribeImagesInput) SetImageIds(v []*ImageIdentifier) *DescribeImagesInput {
3309	s.ImageIds = v
3310	return s
3311}
3312
3313// SetMaxResults sets the MaxResults field's value.
3314func (s *DescribeImagesInput) SetMaxResults(v int64) *DescribeImagesInput {
3315	s.MaxResults = &v
3316	return s
3317}
3318
3319// SetNextToken sets the NextToken field's value.
3320func (s *DescribeImagesInput) SetNextToken(v string) *DescribeImagesInput {
3321	s.NextToken = &v
3322	return s
3323}
3324
3325// SetRegistryId sets the RegistryId field's value.
3326func (s *DescribeImagesInput) SetRegistryId(v string) *DescribeImagesInput {
3327	s.RegistryId = &v
3328	return s
3329}
3330
3331// SetRepositoryName sets the RepositoryName field's value.
3332func (s *DescribeImagesInput) SetRepositoryName(v string) *DescribeImagesInput {
3333	s.RepositoryName = &v
3334	return s
3335}
3336
3337type DescribeImagesOutput struct {
3338	_ struct{} `type:"structure"`
3339
3340	// A list of ImageDetail objects that contain data about the image.
3341	ImageDetails []*ImageDetail `locationName:"imageDetails" type:"list"`
3342
3343	// The nextToken value to include in a future DescribeImages request. When the
3344	// results of a DescribeImages request exceed maxResults, this value can be
3345	// used to retrieve the next page of results. This value is null when there
3346	// are no more results to return.
3347	NextToken *string `locationName:"nextToken" type:"string"`
3348}
3349
3350// String returns the string representation
3351func (s DescribeImagesOutput) String() string {
3352	return awsutil.Prettify(s)
3353}
3354
3355// GoString returns the string representation
3356func (s DescribeImagesOutput) GoString() string {
3357	return s.String()
3358}
3359
3360// SetImageDetails sets the ImageDetails field's value.
3361func (s *DescribeImagesOutput) SetImageDetails(v []*ImageDetail) *DescribeImagesOutput {
3362	s.ImageDetails = v
3363	return s
3364}
3365
3366// SetNextToken sets the NextToken field's value.
3367func (s *DescribeImagesOutput) SetNextToken(v string) *DescribeImagesOutput {
3368	s.NextToken = &v
3369	return s
3370}
3371
3372type DescribeRegistriesInput struct {
3373	_ struct{} `type:"structure"`
3374
3375	// The maximum number of repository results returned by DescribeRegistries in
3376	// paginated output. When this parameter is used, DescribeRegistries only returns
3377	// maxResults results in a single page along with a nextToken response element.
3378	// The remaining results of the initial request can be seen by sending another
3379	// DescribeRegistries request with the returned nextToken value. This value
3380	// can be between 1 and 1000. If this parameter is not used, then DescribeRegistries
3381	// returns up to 100 results and a nextToken value, if applicable.
3382	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
3383
3384	// The nextToken value returned from a previous paginated DescribeRegistries
3385	// request where maxResults was used and the results exceeded the value of that
3386	// parameter. Pagination continues from the end of the previous results that
3387	// returned the nextToken value. This value is null when there are no more results
3388	// to return.
3389	//
3390	// This token should be treated as an opaque identifier that is only used to
3391	// retrieve the next items in a list and not for other programmatic purposes.
3392	NextToken *string `locationName:"nextToken" type:"string"`
3393}
3394
3395// String returns the string representation
3396func (s DescribeRegistriesInput) String() string {
3397	return awsutil.Prettify(s)
3398}
3399
3400// GoString returns the string representation
3401func (s DescribeRegistriesInput) GoString() string {
3402	return s.String()
3403}
3404
3405// Validate inspects the fields of the type to determine if they are valid.
3406func (s *DescribeRegistriesInput) Validate() error {
3407	invalidParams := request.ErrInvalidParams{Context: "DescribeRegistriesInput"}
3408	if s.MaxResults != nil && *s.MaxResults < 1 {
3409		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3410	}
3411
3412	if invalidParams.Len() > 0 {
3413		return invalidParams
3414	}
3415	return nil
3416}
3417
3418// SetMaxResults sets the MaxResults field's value.
3419func (s *DescribeRegistriesInput) SetMaxResults(v int64) *DescribeRegistriesInput {
3420	s.MaxResults = &v
3421	return s
3422}
3423
3424// SetNextToken sets the NextToken field's value.
3425func (s *DescribeRegistriesInput) SetNextToken(v string) *DescribeRegistriesInput {
3426	s.NextToken = &v
3427	return s
3428}
3429
3430type DescribeRegistriesOutput struct {
3431	_ struct{} `type:"structure"`
3432
3433	// The nextToken value to include in a future DescribeRepositories request.
3434	// When the results of a DescribeRepositories request exceed maxResults, this
3435	// value can be used to retrieve the next page of results. This value is null
3436	// when there are no more results to return.
3437	NextToken *string `locationName:"nextToken" type:"string"`
3438
3439	// An object containing the details for a public registry.
3440	//
3441	// Registries is a required field
3442	Registries []*Registry `locationName:"registries" type:"list" required:"true"`
3443}
3444
3445// String returns the string representation
3446func (s DescribeRegistriesOutput) String() string {
3447	return awsutil.Prettify(s)
3448}
3449
3450// GoString returns the string representation
3451func (s DescribeRegistriesOutput) GoString() string {
3452	return s.String()
3453}
3454
3455// SetNextToken sets the NextToken field's value.
3456func (s *DescribeRegistriesOutput) SetNextToken(v string) *DescribeRegistriesOutput {
3457	s.NextToken = &v
3458	return s
3459}
3460
3461// SetRegistries sets the Registries field's value.
3462func (s *DescribeRegistriesOutput) SetRegistries(v []*Registry) *DescribeRegistriesOutput {
3463	s.Registries = v
3464	return s
3465}
3466
3467type DescribeRepositoriesInput struct {
3468	_ struct{} `type:"structure"`
3469
3470	// The maximum number of repository results returned by DescribeRepositories
3471	// in paginated output. When this parameter is used, DescribeRepositories only
3472	// returns maxResults results in a single page along with a nextToken response
3473	// element. The remaining results of the initial request can be seen by sending
3474	// another DescribeRepositories request with the returned nextToken value. This
3475	// value can be between 1 and 1000. If this parameter is not used, then DescribeRepositories
3476	// returns up to 100 results and a nextToken value, if applicable. This option
3477	// cannot be used when you specify repositories with repositoryNames.
3478	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
3479
3480	// The nextToken value returned from a previous paginated DescribeRepositories
3481	// request where maxResults was used and the results exceeded the value of that
3482	// parameter. Pagination continues from the end of the previous results that
3483	// returned the nextToken value. This value is null when there are no more results
3484	// to return. This option cannot be used when you specify repositories with
3485	// repositoryNames.
3486	//
3487	// This token should be treated as an opaque identifier that is only used to
3488	// retrieve the next items in a list and not for other programmatic purposes.
3489	NextToken *string `locationName:"nextToken" type:"string"`
3490
3491	// The AWS account ID associated with the registry that contains the repositories
3492	// to be described. If you do not specify a registry, the default public registry
3493	// is assumed.
3494	RegistryId *string `locationName:"registryId" type:"string"`
3495
3496	// A list of repositories to describe. If this parameter is omitted, then all
3497	// repositories in a registry are described.
3498	RepositoryNames []*string `locationName:"repositoryNames" min:"1" type:"list"`
3499}
3500
3501// String returns the string representation
3502func (s DescribeRepositoriesInput) String() string {
3503	return awsutil.Prettify(s)
3504}
3505
3506// GoString returns the string representation
3507func (s DescribeRepositoriesInput) GoString() string {
3508	return s.String()
3509}
3510
3511// Validate inspects the fields of the type to determine if they are valid.
3512func (s *DescribeRepositoriesInput) Validate() error {
3513	invalidParams := request.ErrInvalidParams{Context: "DescribeRepositoriesInput"}
3514	if s.MaxResults != nil && *s.MaxResults < 1 {
3515		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3516	}
3517	if s.RepositoryNames != nil && len(s.RepositoryNames) < 1 {
3518		invalidParams.Add(request.NewErrParamMinLen("RepositoryNames", 1))
3519	}
3520
3521	if invalidParams.Len() > 0 {
3522		return invalidParams
3523	}
3524	return nil
3525}
3526
3527// SetMaxResults sets the MaxResults field's value.
3528func (s *DescribeRepositoriesInput) SetMaxResults(v int64) *DescribeRepositoriesInput {
3529	s.MaxResults = &v
3530	return s
3531}
3532
3533// SetNextToken sets the NextToken field's value.
3534func (s *DescribeRepositoriesInput) SetNextToken(v string) *DescribeRepositoriesInput {
3535	s.NextToken = &v
3536	return s
3537}
3538
3539// SetRegistryId sets the RegistryId field's value.
3540func (s *DescribeRepositoriesInput) SetRegistryId(v string) *DescribeRepositoriesInput {
3541	s.RegistryId = &v
3542	return s
3543}
3544
3545// SetRepositoryNames sets the RepositoryNames field's value.
3546func (s *DescribeRepositoriesInput) SetRepositoryNames(v []*string) *DescribeRepositoriesInput {
3547	s.RepositoryNames = v
3548	return s
3549}
3550
3551type DescribeRepositoriesOutput struct {
3552	_ struct{} `type:"structure"`
3553
3554	// The nextToken value to include in a future DescribeRepositories request.
3555	// When the results of a DescribeRepositories request exceed maxResults, this
3556	// value can be used to retrieve the next page of results. This value is null
3557	// when there are no more results to return.
3558	NextToken *string `locationName:"nextToken" type:"string"`
3559
3560	// A list of repository objects corresponding to valid repositories.
3561	Repositories []*Repository `locationName:"repositories" type:"list"`
3562}
3563
3564// String returns the string representation
3565func (s DescribeRepositoriesOutput) String() string {
3566	return awsutil.Prettify(s)
3567}
3568
3569// GoString returns the string representation
3570func (s DescribeRepositoriesOutput) GoString() string {
3571	return s.String()
3572}
3573
3574// SetNextToken sets the NextToken field's value.
3575func (s *DescribeRepositoriesOutput) SetNextToken(v string) *DescribeRepositoriesOutput {
3576	s.NextToken = &v
3577	return s
3578}
3579
3580// SetRepositories sets the Repositories field's value.
3581func (s *DescribeRepositoriesOutput) SetRepositories(v []*Repository) *DescribeRepositoriesOutput {
3582	s.Repositories = v
3583	return s
3584}
3585
3586// The specified layer upload does not contain any layer parts.
3587type EmptyUploadException struct {
3588	_            struct{}                  `type:"structure"`
3589	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3590
3591	Message_ *string `locationName:"message" type:"string"`
3592}
3593
3594// String returns the string representation
3595func (s EmptyUploadException) String() string {
3596	return awsutil.Prettify(s)
3597}
3598
3599// GoString returns the string representation
3600func (s EmptyUploadException) GoString() string {
3601	return s.String()
3602}
3603
3604func newErrorEmptyUploadException(v protocol.ResponseMetadata) error {
3605	return &EmptyUploadException{
3606		RespMetadata: v,
3607	}
3608}
3609
3610// Code returns the exception type name.
3611func (s *EmptyUploadException) Code() string {
3612	return "EmptyUploadException"
3613}
3614
3615// Message returns the exception's message.
3616func (s *EmptyUploadException) Message() string {
3617	if s.Message_ != nil {
3618		return *s.Message_
3619	}
3620	return ""
3621}
3622
3623// OrigErr always returns nil, satisfies awserr.Error interface.
3624func (s *EmptyUploadException) OrigErr() error {
3625	return nil
3626}
3627
3628func (s *EmptyUploadException) Error() string {
3629	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3630}
3631
3632// Status code returns the HTTP status code for the request's response error.
3633func (s *EmptyUploadException) StatusCode() int {
3634	return s.RespMetadata.StatusCode
3635}
3636
3637// RequestID returns the service's response RequestID for request.
3638func (s *EmptyUploadException) RequestID() string {
3639	return s.RespMetadata.RequestID
3640}
3641
3642type GetAuthorizationTokenInput struct {
3643	_ struct{} `type:"structure"`
3644}
3645
3646// String returns the string representation
3647func (s GetAuthorizationTokenInput) String() string {
3648	return awsutil.Prettify(s)
3649}
3650
3651// GoString returns the string representation
3652func (s GetAuthorizationTokenInput) GoString() string {
3653	return s.String()
3654}
3655
3656type GetAuthorizationTokenOutput struct {
3657	_ struct{} `type:"structure"`
3658
3659	// An authorization token data object that corresponds to a public registry.
3660	AuthorizationData *AuthorizationData `locationName:"authorizationData" type:"structure"`
3661}
3662
3663// String returns the string representation
3664func (s GetAuthorizationTokenOutput) String() string {
3665	return awsutil.Prettify(s)
3666}
3667
3668// GoString returns the string representation
3669func (s GetAuthorizationTokenOutput) GoString() string {
3670	return s.String()
3671}
3672
3673// SetAuthorizationData sets the AuthorizationData field's value.
3674func (s *GetAuthorizationTokenOutput) SetAuthorizationData(v *AuthorizationData) *GetAuthorizationTokenOutput {
3675	s.AuthorizationData = v
3676	return s
3677}
3678
3679type GetRegistryCatalogDataInput struct {
3680	_ struct{} `type:"structure"`
3681}
3682
3683// String returns the string representation
3684func (s GetRegistryCatalogDataInput) String() string {
3685	return awsutil.Prettify(s)
3686}
3687
3688// GoString returns the string representation
3689func (s GetRegistryCatalogDataInput) GoString() string {
3690	return s.String()
3691}
3692
3693type GetRegistryCatalogDataOutput struct {
3694	_ struct{} `type:"structure"`
3695
3696	// The catalog metadata for the public registry.
3697	//
3698	// RegistryCatalogData is a required field
3699	RegistryCatalogData *RegistryCatalogData `locationName:"registryCatalogData" type:"structure" required:"true"`
3700}
3701
3702// String returns the string representation
3703func (s GetRegistryCatalogDataOutput) String() string {
3704	return awsutil.Prettify(s)
3705}
3706
3707// GoString returns the string representation
3708func (s GetRegistryCatalogDataOutput) GoString() string {
3709	return s.String()
3710}
3711
3712// SetRegistryCatalogData sets the RegistryCatalogData field's value.
3713func (s *GetRegistryCatalogDataOutput) SetRegistryCatalogData(v *RegistryCatalogData) *GetRegistryCatalogDataOutput {
3714	s.RegistryCatalogData = v
3715	return s
3716}
3717
3718type GetRepositoryCatalogDataInput struct {
3719	_ struct{} `type:"structure"`
3720
3721	// The AWS account ID associated with the registry that contains the repositories
3722	// to be described. If you do not specify a registry, the default public registry
3723	// is assumed.
3724	RegistryId *string `locationName:"registryId" type:"string"`
3725
3726	// The name of the repository to retrieve the catalog metadata for.
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 GetRepositoryCatalogDataInput) String() string {
3734	return awsutil.Prettify(s)
3735}
3736
3737// GoString returns the string representation
3738func (s GetRepositoryCatalogDataInput) GoString() string {
3739	return s.String()
3740}
3741
3742// Validate inspects the fields of the type to determine if they are valid.
3743func (s *GetRepositoryCatalogDataInput) Validate() error {
3744	invalidParams := request.ErrInvalidParams{Context: "GetRepositoryCatalogDataInput"}
3745	if s.RepositoryName == nil {
3746		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3747	}
3748	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3749		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3750	}
3751
3752	if invalidParams.Len() > 0 {
3753		return invalidParams
3754	}
3755	return nil
3756}
3757
3758// SetRegistryId sets the RegistryId field's value.
3759func (s *GetRepositoryCatalogDataInput) SetRegistryId(v string) *GetRepositoryCatalogDataInput {
3760	s.RegistryId = &v
3761	return s
3762}
3763
3764// SetRepositoryName sets the RepositoryName field's value.
3765func (s *GetRepositoryCatalogDataInput) SetRepositoryName(v string) *GetRepositoryCatalogDataInput {
3766	s.RepositoryName = &v
3767	return s
3768}
3769
3770type GetRepositoryCatalogDataOutput struct {
3771	_ struct{} `type:"structure"`
3772
3773	// The catalog metadata for the repository.
3774	CatalogData *RepositoryCatalogData `locationName:"catalogData" type:"structure"`
3775}
3776
3777// String returns the string representation
3778func (s GetRepositoryCatalogDataOutput) String() string {
3779	return awsutil.Prettify(s)
3780}
3781
3782// GoString returns the string representation
3783func (s GetRepositoryCatalogDataOutput) GoString() string {
3784	return s.String()
3785}
3786
3787// SetCatalogData sets the CatalogData field's value.
3788func (s *GetRepositoryCatalogDataOutput) SetCatalogData(v *RepositoryCatalogData) *GetRepositoryCatalogDataOutput {
3789	s.CatalogData = v
3790	return s
3791}
3792
3793type GetRepositoryPolicyInput struct {
3794	_ struct{} `type:"structure"`
3795
3796	// The AWS account ID associated with the public registry that contains the
3797	// repository. If you do not specify a registry, the default public registry
3798	// is assumed.
3799	RegistryId *string `locationName:"registryId" type:"string"`
3800
3801	// The name of the repository with the policy to retrieve.
3802	//
3803	// RepositoryName is a required field
3804	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
3805}
3806
3807// String returns the string representation
3808func (s GetRepositoryPolicyInput) String() string {
3809	return awsutil.Prettify(s)
3810}
3811
3812// GoString returns the string representation
3813func (s GetRepositoryPolicyInput) GoString() string {
3814	return s.String()
3815}
3816
3817// Validate inspects the fields of the type to determine if they are valid.
3818func (s *GetRepositoryPolicyInput) Validate() error {
3819	invalidParams := request.ErrInvalidParams{Context: "GetRepositoryPolicyInput"}
3820	if s.RepositoryName == nil {
3821		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
3822	}
3823	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
3824		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
3825	}
3826
3827	if invalidParams.Len() > 0 {
3828		return invalidParams
3829	}
3830	return nil
3831}
3832
3833// SetRegistryId sets the RegistryId field's value.
3834func (s *GetRepositoryPolicyInput) SetRegistryId(v string) *GetRepositoryPolicyInput {
3835	s.RegistryId = &v
3836	return s
3837}
3838
3839// SetRepositoryName sets the RepositoryName field's value.
3840func (s *GetRepositoryPolicyInput) SetRepositoryName(v string) *GetRepositoryPolicyInput {
3841	s.RepositoryName = &v
3842	return s
3843}
3844
3845type GetRepositoryPolicyOutput struct {
3846	_ struct{} `type:"structure"`
3847
3848	// The repository policy text associated with the repository. The policy text
3849	// will be in JSON format.
3850	PolicyText *string `locationName:"policyText" type:"string"`
3851
3852	// The registry ID associated with the request.
3853	RegistryId *string `locationName:"registryId" type:"string"`
3854
3855	// The repository name associated with the request.
3856	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
3857}
3858
3859// String returns the string representation
3860func (s GetRepositoryPolicyOutput) String() string {
3861	return awsutil.Prettify(s)
3862}
3863
3864// GoString returns the string representation
3865func (s GetRepositoryPolicyOutput) GoString() string {
3866	return s.String()
3867}
3868
3869// SetPolicyText sets the PolicyText field's value.
3870func (s *GetRepositoryPolicyOutput) SetPolicyText(v string) *GetRepositoryPolicyOutput {
3871	s.PolicyText = &v
3872	return s
3873}
3874
3875// SetRegistryId sets the RegistryId field's value.
3876func (s *GetRepositoryPolicyOutput) SetRegistryId(v string) *GetRepositoryPolicyOutput {
3877	s.RegistryId = &v
3878	return s
3879}
3880
3881// SetRepositoryName sets the RepositoryName field's value.
3882func (s *GetRepositoryPolicyOutput) SetRepositoryName(v string) *GetRepositoryPolicyOutput {
3883	s.RepositoryName = &v
3884	return s
3885}
3886
3887// An object representing an Amazon ECR image.
3888type Image struct {
3889	_ struct{} `type:"structure"`
3890
3891	// An object containing the image tag and image digest associated with an image.
3892	ImageId *ImageIdentifier `locationName:"imageId" type:"structure"`
3893
3894	// The image manifest associated with the image.
3895	ImageManifest *string `locationName:"imageManifest" min:"1" type:"string"`
3896
3897	// The manifest media type of the image.
3898	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
3899
3900	// The AWS account ID associated with the registry containing the image.
3901	RegistryId *string `locationName:"registryId" min:"1" type:"string"`
3902
3903	// The name of the repository associated with the image.
3904	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
3905}
3906
3907// String returns the string representation
3908func (s Image) String() string {
3909	return awsutil.Prettify(s)
3910}
3911
3912// GoString returns the string representation
3913func (s Image) GoString() string {
3914	return s.String()
3915}
3916
3917// SetImageId sets the ImageId field's value.
3918func (s *Image) SetImageId(v *ImageIdentifier) *Image {
3919	s.ImageId = v
3920	return s
3921}
3922
3923// SetImageManifest sets the ImageManifest field's value.
3924func (s *Image) SetImageManifest(v string) *Image {
3925	s.ImageManifest = &v
3926	return s
3927}
3928
3929// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
3930func (s *Image) SetImageManifestMediaType(v string) *Image {
3931	s.ImageManifestMediaType = &v
3932	return s
3933}
3934
3935// SetRegistryId sets the RegistryId field's value.
3936func (s *Image) SetRegistryId(v string) *Image {
3937	s.RegistryId = &v
3938	return s
3939}
3940
3941// SetRepositoryName sets the RepositoryName field's value.
3942func (s *Image) SetRepositoryName(v string) *Image {
3943	s.RepositoryName = &v
3944	return s
3945}
3946
3947// The specified image has already been pushed, and there were no changes to
3948// the manifest or image tag after the last push.
3949type ImageAlreadyExistsException struct {
3950	_            struct{}                  `type:"structure"`
3951	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3952
3953	Message_ *string `locationName:"message" type:"string"`
3954}
3955
3956// String returns the string representation
3957func (s ImageAlreadyExistsException) String() string {
3958	return awsutil.Prettify(s)
3959}
3960
3961// GoString returns the string representation
3962func (s ImageAlreadyExistsException) GoString() string {
3963	return s.String()
3964}
3965
3966func newErrorImageAlreadyExistsException(v protocol.ResponseMetadata) error {
3967	return &ImageAlreadyExistsException{
3968		RespMetadata: v,
3969	}
3970}
3971
3972// Code returns the exception type name.
3973func (s *ImageAlreadyExistsException) Code() string {
3974	return "ImageAlreadyExistsException"
3975}
3976
3977// Message returns the exception's message.
3978func (s *ImageAlreadyExistsException) Message() string {
3979	if s.Message_ != nil {
3980		return *s.Message_
3981	}
3982	return ""
3983}
3984
3985// OrigErr always returns nil, satisfies awserr.Error interface.
3986func (s *ImageAlreadyExistsException) OrigErr() error {
3987	return nil
3988}
3989
3990func (s *ImageAlreadyExistsException) Error() string {
3991	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3992}
3993
3994// Status code returns the HTTP status code for the request's response error.
3995func (s *ImageAlreadyExistsException) StatusCode() int {
3996	return s.RespMetadata.StatusCode
3997}
3998
3999// RequestID returns the service's response RequestID for request.
4000func (s *ImageAlreadyExistsException) RequestID() string {
4001	return s.RespMetadata.RequestID
4002}
4003
4004// An object that describes an image returned by a DescribeImages operation.
4005type ImageDetail struct {
4006	_ struct{} `type:"structure"`
4007
4008	// The artifact media type of the image.
4009	ArtifactMediaType *string `locationName:"artifactMediaType" type:"string"`
4010
4011	// The sha256 digest of the image manifest.
4012	ImageDigest *string `locationName:"imageDigest" type:"string"`
4013
4014	// The media type of the image manifest.
4015	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
4016
4017	// The date and time, expressed in standard JavaScript date format, at which
4018	// the current image was pushed to the repository.
4019	ImagePushedAt *time.Time `locationName:"imagePushedAt" type:"timestamp"`
4020
4021	// The size, in bytes, of the image in the repository.
4022	//
4023	// If the image is a manifest list, this will be the max size of all manifests
4024	// in the list.
4025	//
4026	// Beginning with Docker version 1.9, the Docker client compresses image layers
4027	// before pushing them to a V2 Docker registry. The output of the docker images
4028	// command shows the uncompressed image size, so it may return a larger image
4029	// size than the image sizes returned by DescribeImages.
4030	ImageSizeInBytes *int64 `locationName:"imageSizeInBytes" type:"long"`
4031
4032	// The list of tags associated with this image.
4033	ImageTags []*string `locationName:"imageTags" type:"list"`
4034
4035	// The AWS account ID associated with the public registry to which this image
4036	// belongs.
4037	RegistryId *string `locationName:"registryId" type:"string"`
4038
4039	// The name of the repository to which this image belongs.
4040	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
4041}
4042
4043// String returns the string representation
4044func (s ImageDetail) String() string {
4045	return awsutil.Prettify(s)
4046}
4047
4048// GoString returns the string representation
4049func (s ImageDetail) GoString() string {
4050	return s.String()
4051}
4052
4053// SetArtifactMediaType sets the ArtifactMediaType field's value.
4054func (s *ImageDetail) SetArtifactMediaType(v string) *ImageDetail {
4055	s.ArtifactMediaType = &v
4056	return s
4057}
4058
4059// SetImageDigest sets the ImageDigest field's value.
4060func (s *ImageDetail) SetImageDigest(v string) *ImageDetail {
4061	s.ImageDigest = &v
4062	return s
4063}
4064
4065// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
4066func (s *ImageDetail) SetImageManifestMediaType(v string) *ImageDetail {
4067	s.ImageManifestMediaType = &v
4068	return s
4069}
4070
4071// SetImagePushedAt sets the ImagePushedAt field's value.
4072func (s *ImageDetail) SetImagePushedAt(v time.Time) *ImageDetail {
4073	s.ImagePushedAt = &v
4074	return s
4075}
4076
4077// SetImageSizeInBytes sets the ImageSizeInBytes field's value.
4078func (s *ImageDetail) SetImageSizeInBytes(v int64) *ImageDetail {
4079	s.ImageSizeInBytes = &v
4080	return s
4081}
4082
4083// SetImageTags sets the ImageTags field's value.
4084func (s *ImageDetail) SetImageTags(v []*string) *ImageDetail {
4085	s.ImageTags = v
4086	return s
4087}
4088
4089// SetRegistryId sets the RegistryId field's value.
4090func (s *ImageDetail) SetRegistryId(v string) *ImageDetail {
4091	s.RegistryId = &v
4092	return s
4093}
4094
4095// SetRepositoryName sets the RepositoryName field's value.
4096func (s *ImageDetail) SetRepositoryName(v string) *ImageDetail {
4097	s.RepositoryName = &v
4098	return s
4099}
4100
4101// The specified image digest does not match the digest that Amazon ECR calculated
4102// for the image.
4103type ImageDigestDoesNotMatchException struct {
4104	_            struct{}                  `type:"structure"`
4105	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4106
4107	Message_ *string `locationName:"message" type:"string"`
4108}
4109
4110// String returns the string representation
4111func (s ImageDigestDoesNotMatchException) String() string {
4112	return awsutil.Prettify(s)
4113}
4114
4115// GoString returns the string representation
4116func (s ImageDigestDoesNotMatchException) GoString() string {
4117	return s.String()
4118}
4119
4120func newErrorImageDigestDoesNotMatchException(v protocol.ResponseMetadata) error {
4121	return &ImageDigestDoesNotMatchException{
4122		RespMetadata: v,
4123	}
4124}
4125
4126// Code returns the exception type name.
4127func (s *ImageDigestDoesNotMatchException) Code() string {
4128	return "ImageDigestDoesNotMatchException"
4129}
4130
4131// Message returns the exception's message.
4132func (s *ImageDigestDoesNotMatchException) Message() string {
4133	if s.Message_ != nil {
4134		return *s.Message_
4135	}
4136	return ""
4137}
4138
4139// OrigErr always returns nil, satisfies awserr.Error interface.
4140func (s *ImageDigestDoesNotMatchException) OrigErr() error {
4141	return nil
4142}
4143
4144func (s *ImageDigestDoesNotMatchException) Error() string {
4145	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4146}
4147
4148// Status code returns the HTTP status code for the request's response error.
4149func (s *ImageDigestDoesNotMatchException) StatusCode() int {
4150	return s.RespMetadata.StatusCode
4151}
4152
4153// RequestID returns the service's response RequestID for request.
4154func (s *ImageDigestDoesNotMatchException) RequestID() string {
4155	return s.RespMetadata.RequestID
4156}
4157
4158// An object representing an Amazon ECR image failure.
4159type ImageFailure struct {
4160	_ struct{} `type:"structure"`
4161
4162	// The code associated with the failure.
4163	FailureCode *string `locationName:"failureCode" type:"string" enum:"ImageFailureCode"`
4164
4165	// The reason for the failure.
4166	FailureReason *string `locationName:"failureReason" type:"string"`
4167
4168	// The image ID associated with the failure.
4169	ImageId *ImageIdentifier `locationName:"imageId" type:"structure"`
4170}
4171
4172// String returns the string representation
4173func (s ImageFailure) String() string {
4174	return awsutil.Prettify(s)
4175}
4176
4177// GoString returns the string representation
4178func (s ImageFailure) GoString() string {
4179	return s.String()
4180}
4181
4182// SetFailureCode sets the FailureCode field's value.
4183func (s *ImageFailure) SetFailureCode(v string) *ImageFailure {
4184	s.FailureCode = &v
4185	return s
4186}
4187
4188// SetFailureReason sets the FailureReason field's value.
4189func (s *ImageFailure) SetFailureReason(v string) *ImageFailure {
4190	s.FailureReason = &v
4191	return s
4192}
4193
4194// SetImageId sets the ImageId field's value.
4195func (s *ImageFailure) SetImageId(v *ImageIdentifier) *ImageFailure {
4196	s.ImageId = v
4197	return s
4198}
4199
4200// An object with identifying information for an Amazon ECR image.
4201type ImageIdentifier struct {
4202	_ struct{} `type:"structure"`
4203
4204	// The sha256 digest of the image manifest.
4205	ImageDigest *string `locationName:"imageDigest" type:"string"`
4206
4207	// The tag used for the image.
4208	ImageTag *string `locationName:"imageTag" min:"1" type:"string"`
4209}
4210
4211// String returns the string representation
4212func (s ImageIdentifier) String() string {
4213	return awsutil.Prettify(s)
4214}
4215
4216// GoString returns the string representation
4217func (s ImageIdentifier) GoString() string {
4218	return s.String()
4219}
4220
4221// Validate inspects the fields of the type to determine if they are valid.
4222func (s *ImageIdentifier) Validate() error {
4223	invalidParams := request.ErrInvalidParams{Context: "ImageIdentifier"}
4224	if s.ImageTag != nil && len(*s.ImageTag) < 1 {
4225		invalidParams.Add(request.NewErrParamMinLen("ImageTag", 1))
4226	}
4227
4228	if invalidParams.Len() > 0 {
4229		return invalidParams
4230	}
4231	return nil
4232}
4233
4234// SetImageDigest sets the ImageDigest field's value.
4235func (s *ImageIdentifier) SetImageDigest(v string) *ImageIdentifier {
4236	s.ImageDigest = &v
4237	return s
4238}
4239
4240// SetImageTag sets the ImageTag field's value.
4241func (s *ImageIdentifier) SetImageTag(v string) *ImageIdentifier {
4242	s.ImageTag = &v
4243	return s
4244}
4245
4246// The image requested does not exist in the specified repository.
4247type ImageNotFoundException struct {
4248	_            struct{}                  `type:"structure"`
4249	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4250
4251	Message_ *string `locationName:"message" type:"string"`
4252}
4253
4254// String returns the string representation
4255func (s ImageNotFoundException) String() string {
4256	return awsutil.Prettify(s)
4257}
4258
4259// GoString returns the string representation
4260func (s ImageNotFoundException) GoString() string {
4261	return s.String()
4262}
4263
4264func newErrorImageNotFoundException(v protocol.ResponseMetadata) error {
4265	return &ImageNotFoundException{
4266		RespMetadata: v,
4267	}
4268}
4269
4270// Code returns the exception type name.
4271func (s *ImageNotFoundException) Code() string {
4272	return "ImageNotFoundException"
4273}
4274
4275// Message returns the exception's message.
4276func (s *ImageNotFoundException) Message() string {
4277	if s.Message_ != nil {
4278		return *s.Message_
4279	}
4280	return ""
4281}
4282
4283// OrigErr always returns nil, satisfies awserr.Error interface.
4284func (s *ImageNotFoundException) OrigErr() error {
4285	return nil
4286}
4287
4288func (s *ImageNotFoundException) Error() string {
4289	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4290}
4291
4292// Status code returns the HTTP status code for the request's response error.
4293func (s *ImageNotFoundException) StatusCode() int {
4294	return s.RespMetadata.StatusCode
4295}
4296
4297// RequestID returns the service's response RequestID for request.
4298func (s *ImageNotFoundException) RequestID() string {
4299	return s.RespMetadata.RequestID
4300}
4301
4302// The specified image is tagged with a tag that already exists. The repository
4303// is configured for tag immutability.
4304type ImageTagAlreadyExistsException struct {
4305	_            struct{}                  `type:"structure"`
4306	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4307
4308	Message_ *string `locationName:"message" type:"string"`
4309}
4310
4311// String returns the string representation
4312func (s ImageTagAlreadyExistsException) String() string {
4313	return awsutil.Prettify(s)
4314}
4315
4316// GoString returns the string representation
4317func (s ImageTagAlreadyExistsException) GoString() string {
4318	return s.String()
4319}
4320
4321func newErrorImageTagAlreadyExistsException(v protocol.ResponseMetadata) error {
4322	return &ImageTagAlreadyExistsException{
4323		RespMetadata: v,
4324	}
4325}
4326
4327// Code returns the exception type name.
4328func (s *ImageTagAlreadyExistsException) Code() string {
4329	return "ImageTagAlreadyExistsException"
4330}
4331
4332// Message returns the exception's message.
4333func (s *ImageTagAlreadyExistsException) Message() string {
4334	if s.Message_ != nil {
4335		return *s.Message_
4336	}
4337	return ""
4338}
4339
4340// OrigErr always returns nil, satisfies awserr.Error interface.
4341func (s *ImageTagAlreadyExistsException) OrigErr() error {
4342	return nil
4343}
4344
4345func (s *ImageTagAlreadyExistsException) Error() string {
4346	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4347}
4348
4349// Status code returns the HTTP status code for the request's response error.
4350func (s *ImageTagAlreadyExistsException) StatusCode() int {
4351	return s.RespMetadata.StatusCode
4352}
4353
4354// RequestID returns the service's response RequestID for request.
4355func (s *ImageTagAlreadyExistsException) RequestID() string {
4356	return s.RespMetadata.RequestID
4357}
4358
4359// An object representing the image tag details for an image.
4360type ImageTagDetail struct {
4361	_ struct{} `type:"structure"`
4362
4363	// The time stamp indicating when the image tag was created.
4364	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
4365
4366	// An object that describes the details of an image.
4367	ImageDetail *ReferencedImageDetail `locationName:"imageDetail" type:"structure"`
4368
4369	// The tag associated with the image.
4370	ImageTag *string `locationName:"imageTag" min:"1" type:"string"`
4371}
4372
4373// String returns the string representation
4374func (s ImageTagDetail) String() string {
4375	return awsutil.Prettify(s)
4376}
4377
4378// GoString returns the string representation
4379func (s ImageTagDetail) GoString() string {
4380	return s.String()
4381}
4382
4383// SetCreatedAt sets the CreatedAt field's value.
4384func (s *ImageTagDetail) SetCreatedAt(v time.Time) *ImageTagDetail {
4385	s.CreatedAt = &v
4386	return s
4387}
4388
4389// SetImageDetail sets the ImageDetail field's value.
4390func (s *ImageTagDetail) SetImageDetail(v *ReferencedImageDetail) *ImageTagDetail {
4391	s.ImageDetail = v
4392	return s
4393}
4394
4395// SetImageTag sets the ImageTag field's value.
4396func (s *ImageTagDetail) SetImageTag(v string) *ImageTagDetail {
4397	s.ImageTag = &v
4398	return s
4399}
4400
4401type InitiateLayerUploadInput struct {
4402	_ struct{} `type:"structure"`
4403
4404	// The AWS account ID associated with the registry to which you intend to upload
4405	// layers. If you do not specify a registry, the default public registry is
4406	// assumed.
4407	RegistryId *string `locationName:"registryId" min:"1" type:"string"`
4408
4409	// The name of the repository to which you intend to upload layers.
4410	//
4411	// RepositoryName is a required field
4412	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
4413}
4414
4415// String returns the string representation
4416func (s InitiateLayerUploadInput) String() string {
4417	return awsutil.Prettify(s)
4418}
4419
4420// GoString returns the string representation
4421func (s InitiateLayerUploadInput) GoString() string {
4422	return s.String()
4423}
4424
4425// Validate inspects the fields of the type to determine if they are valid.
4426func (s *InitiateLayerUploadInput) Validate() error {
4427	invalidParams := request.ErrInvalidParams{Context: "InitiateLayerUploadInput"}
4428	if s.RegistryId != nil && len(*s.RegistryId) < 1 {
4429		invalidParams.Add(request.NewErrParamMinLen("RegistryId", 1))
4430	}
4431	if s.RepositoryName == nil {
4432		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
4433	}
4434	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
4435		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
4436	}
4437
4438	if invalidParams.Len() > 0 {
4439		return invalidParams
4440	}
4441	return nil
4442}
4443
4444// SetRegistryId sets the RegistryId field's value.
4445func (s *InitiateLayerUploadInput) SetRegistryId(v string) *InitiateLayerUploadInput {
4446	s.RegistryId = &v
4447	return s
4448}
4449
4450// SetRepositoryName sets the RepositoryName field's value.
4451func (s *InitiateLayerUploadInput) SetRepositoryName(v string) *InitiateLayerUploadInput {
4452	s.RepositoryName = &v
4453	return s
4454}
4455
4456type InitiateLayerUploadOutput struct {
4457	_ struct{} `type:"structure"`
4458
4459	// The size, in bytes, that Amazon ECR expects future layer part uploads to
4460	// be.
4461	PartSize *int64 `locationName:"partSize" type:"long"`
4462
4463	// The upload ID for the layer upload. This parameter is passed to further UploadLayerPart
4464	// and CompleteLayerUpload operations.
4465	UploadId *string `locationName:"uploadId" type:"string"`
4466}
4467
4468// String returns the string representation
4469func (s InitiateLayerUploadOutput) String() string {
4470	return awsutil.Prettify(s)
4471}
4472
4473// GoString returns the string representation
4474func (s InitiateLayerUploadOutput) GoString() string {
4475	return s.String()
4476}
4477
4478// SetPartSize sets the PartSize field's value.
4479func (s *InitiateLayerUploadOutput) SetPartSize(v int64) *InitiateLayerUploadOutput {
4480	s.PartSize = &v
4481	return s
4482}
4483
4484// SetUploadId sets the UploadId field's value.
4485func (s *InitiateLayerUploadOutput) SetUploadId(v string) *InitiateLayerUploadOutput {
4486	s.UploadId = &v
4487	return s
4488}
4489
4490// The layer digest calculation performed by Amazon ECR upon receipt of the
4491// image layer does not match the digest specified.
4492type InvalidLayerException struct {
4493	_            struct{}                  `type:"structure"`
4494	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4495
4496	Message_ *string `locationName:"message" type:"string"`
4497}
4498
4499// String returns the string representation
4500func (s InvalidLayerException) String() string {
4501	return awsutil.Prettify(s)
4502}
4503
4504// GoString returns the string representation
4505func (s InvalidLayerException) GoString() string {
4506	return s.String()
4507}
4508
4509func newErrorInvalidLayerException(v protocol.ResponseMetadata) error {
4510	return &InvalidLayerException{
4511		RespMetadata: v,
4512	}
4513}
4514
4515// Code returns the exception type name.
4516func (s *InvalidLayerException) Code() string {
4517	return "InvalidLayerException"
4518}
4519
4520// Message returns the exception's message.
4521func (s *InvalidLayerException) Message() string {
4522	if s.Message_ != nil {
4523		return *s.Message_
4524	}
4525	return ""
4526}
4527
4528// OrigErr always returns nil, satisfies awserr.Error interface.
4529func (s *InvalidLayerException) OrigErr() error {
4530	return nil
4531}
4532
4533func (s *InvalidLayerException) Error() string {
4534	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4535}
4536
4537// Status code returns the HTTP status code for the request's response error.
4538func (s *InvalidLayerException) StatusCode() int {
4539	return s.RespMetadata.StatusCode
4540}
4541
4542// RequestID returns the service's response RequestID for request.
4543func (s *InvalidLayerException) RequestID() string {
4544	return s.RespMetadata.RequestID
4545}
4546
4547// The layer part size is not valid, or the first byte specified is not consecutive
4548// to the last byte of a previous layer part upload.
4549type InvalidLayerPartException struct {
4550	_            struct{}                  `type:"structure"`
4551	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4552
4553	// The position of the last byte of the layer part.
4554	LastValidByteReceived *int64 `locationName:"lastValidByteReceived" type:"long"`
4555
4556	Message_ *string `locationName:"message" type:"string"`
4557
4558	// The AWS account ID associated with the layer part.
4559	RegistryId *string `locationName:"registryId" type:"string"`
4560
4561	// The name of the repository.
4562	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
4563
4564	// The upload ID associated with the layer part.
4565	UploadId *string `locationName:"uploadId" type:"string"`
4566}
4567
4568// String returns the string representation
4569func (s InvalidLayerPartException) String() string {
4570	return awsutil.Prettify(s)
4571}
4572
4573// GoString returns the string representation
4574func (s InvalidLayerPartException) GoString() string {
4575	return s.String()
4576}
4577
4578func newErrorInvalidLayerPartException(v protocol.ResponseMetadata) error {
4579	return &InvalidLayerPartException{
4580		RespMetadata: v,
4581	}
4582}
4583
4584// Code returns the exception type name.
4585func (s *InvalidLayerPartException) Code() string {
4586	return "InvalidLayerPartException"
4587}
4588
4589// Message returns the exception's message.
4590func (s *InvalidLayerPartException) Message() string {
4591	if s.Message_ != nil {
4592		return *s.Message_
4593	}
4594	return ""
4595}
4596
4597// OrigErr always returns nil, satisfies awserr.Error interface.
4598func (s *InvalidLayerPartException) OrigErr() error {
4599	return nil
4600}
4601
4602func (s *InvalidLayerPartException) Error() string {
4603	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4604}
4605
4606// Status code returns the HTTP status code for the request's response error.
4607func (s *InvalidLayerPartException) StatusCode() int {
4608	return s.RespMetadata.StatusCode
4609}
4610
4611// RequestID returns the service's response RequestID for request.
4612func (s *InvalidLayerPartException) RequestID() string {
4613	return s.RespMetadata.RequestID
4614}
4615
4616// The specified parameter is invalid. Review the available parameters for the
4617// API request.
4618type InvalidParameterException struct {
4619	_            struct{}                  `type:"structure"`
4620	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4621
4622	Message_ *string `locationName:"message" type:"string"`
4623}
4624
4625// String returns the string representation
4626func (s InvalidParameterException) String() string {
4627	return awsutil.Prettify(s)
4628}
4629
4630// GoString returns the string representation
4631func (s InvalidParameterException) GoString() string {
4632	return s.String()
4633}
4634
4635func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
4636	return &InvalidParameterException{
4637		RespMetadata: v,
4638	}
4639}
4640
4641// Code returns the exception type name.
4642func (s *InvalidParameterException) Code() string {
4643	return "InvalidParameterException"
4644}
4645
4646// Message returns the exception's message.
4647func (s *InvalidParameterException) Message() string {
4648	if s.Message_ != nil {
4649		return *s.Message_
4650	}
4651	return ""
4652}
4653
4654// OrigErr always returns nil, satisfies awserr.Error interface.
4655func (s *InvalidParameterException) OrigErr() error {
4656	return nil
4657}
4658
4659func (s *InvalidParameterException) Error() string {
4660	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4661}
4662
4663// Status code returns the HTTP status code for the request's response error.
4664func (s *InvalidParameterException) StatusCode() int {
4665	return s.RespMetadata.StatusCode
4666}
4667
4668// RequestID returns the service's response RequestID for request.
4669func (s *InvalidParameterException) RequestID() string {
4670	return s.RespMetadata.RequestID
4671}
4672
4673// An invalid parameter has been specified. Tag keys can have a maximum character
4674// length of 128 characters, and tag values can have a maximum length of 256
4675// characters.
4676type InvalidTagParameterException struct {
4677	_            struct{}                  `type:"structure"`
4678	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4679
4680	Message_ *string `locationName:"message" type:"string"`
4681}
4682
4683// String returns the string representation
4684func (s InvalidTagParameterException) String() string {
4685	return awsutil.Prettify(s)
4686}
4687
4688// GoString returns the string representation
4689func (s InvalidTagParameterException) GoString() string {
4690	return s.String()
4691}
4692
4693func newErrorInvalidTagParameterException(v protocol.ResponseMetadata) error {
4694	return &InvalidTagParameterException{
4695		RespMetadata: v,
4696	}
4697}
4698
4699// Code returns the exception type name.
4700func (s *InvalidTagParameterException) Code() string {
4701	return "InvalidTagParameterException"
4702}
4703
4704// Message returns the exception's message.
4705func (s *InvalidTagParameterException) Message() string {
4706	if s.Message_ != nil {
4707		return *s.Message_
4708	}
4709	return ""
4710}
4711
4712// OrigErr always returns nil, satisfies awserr.Error interface.
4713func (s *InvalidTagParameterException) OrigErr() error {
4714	return nil
4715}
4716
4717func (s *InvalidTagParameterException) Error() string {
4718	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4719}
4720
4721// Status code returns the HTTP status code for the request's response error.
4722func (s *InvalidTagParameterException) StatusCode() int {
4723	return s.RespMetadata.StatusCode
4724}
4725
4726// RequestID returns the service's response RequestID for request.
4727func (s *InvalidTagParameterException) RequestID() string {
4728	return s.RespMetadata.RequestID
4729}
4730
4731// An object representing an Amazon ECR image layer.
4732type Layer struct {
4733	_ struct{} `type:"structure"`
4734
4735	// The availability status of the image layer.
4736	LayerAvailability *string `locationName:"layerAvailability" type:"string" enum:"LayerAvailability"`
4737
4738	// The sha256 digest of the image layer.
4739	LayerDigest *string `locationName:"layerDigest" type:"string"`
4740
4741	// The size, in bytes, of the image layer.
4742	LayerSize *int64 `locationName:"layerSize" type:"long"`
4743
4744	// The media type of the layer, such as application/vnd.docker.image.rootfs.diff.tar.gzip
4745	// or application/vnd.oci.image.layer.v1.tar+gzip.
4746	MediaType *string `locationName:"mediaType" type:"string"`
4747}
4748
4749// String returns the string representation
4750func (s Layer) String() string {
4751	return awsutil.Prettify(s)
4752}
4753
4754// GoString returns the string representation
4755func (s Layer) GoString() string {
4756	return s.String()
4757}
4758
4759// SetLayerAvailability sets the LayerAvailability field's value.
4760func (s *Layer) SetLayerAvailability(v string) *Layer {
4761	s.LayerAvailability = &v
4762	return s
4763}
4764
4765// SetLayerDigest sets the LayerDigest field's value.
4766func (s *Layer) SetLayerDigest(v string) *Layer {
4767	s.LayerDigest = &v
4768	return s
4769}
4770
4771// SetLayerSize sets the LayerSize field's value.
4772func (s *Layer) SetLayerSize(v int64) *Layer {
4773	s.LayerSize = &v
4774	return s
4775}
4776
4777// SetMediaType sets the MediaType field's value.
4778func (s *Layer) SetMediaType(v string) *Layer {
4779	s.MediaType = &v
4780	return s
4781}
4782
4783// The image layer already exists in the associated repository.
4784type LayerAlreadyExistsException struct {
4785	_            struct{}                  `type:"structure"`
4786	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4787
4788	Message_ *string `locationName:"message" type:"string"`
4789}
4790
4791// String returns the string representation
4792func (s LayerAlreadyExistsException) String() string {
4793	return awsutil.Prettify(s)
4794}
4795
4796// GoString returns the string representation
4797func (s LayerAlreadyExistsException) GoString() string {
4798	return s.String()
4799}
4800
4801func newErrorLayerAlreadyExistsException(v protocol.ResponseMetadata) error {
4802	return &LayerAlreadyExistsException{
4803		RespMetadata: v,
4804	}
4805}
4806
4807// Code returns the exception type name.
4808func (s *LayerAlreadyExistsException) Code() string {
4809	return "LayerAlreadyExistsException"
4810}
4811
4812// Message returns the exception's message.
4813func (s *LayerAlreadyExistsException) Message() string {
4814	if s.Message_ != nil {
4815		return *s.Message_
4816	}
4817	return ""
4818}
4819
4820// OrigErr always returns nil, satisfies awserr.Error interface.
4821func (s *LayerAlreadyExistsException) OrigErr() error {
4822	return nil
4823}
4824
4825func (s *LayerAlreadyExistsException) Error() string {
4826	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4827}
4828
4829// Status code returns the HTTP status code for the request's response error.
4830func (s *LayerAlreadyExistsException) StatusCode() int {
4831	return s.RespMetadata.StatusCode
4832}
4833
4834// RequestID returns the service's response RequestID for request.
4835func (s *LayerAlreadyExistsException) RequestID() string {
4836	return s.RespMetadata.RequestID
4837}
4838
4839// An object representing an Amazon ECR image layer failure.
4840type LayerFailure struct {
4841	_ struct{} `type:"structure"`
4842
4843	// The failure code associated with the failure.
4844	FailureCode *string `locationName:"failureCode" type:"string" enum:"LayerFailureCode"`
4845
4846	// The reason for the failure.
4847	FailureReason *string `locationName:"failureReason" type:"string"`
4848
4849	// The layer digest associated with the failure.
4850	LayerDigest *string `locationName:"layerDigest" type:"string"`
4851}
4852
4853// String returns the string representation
4854func (s LayerFailure) String() string {
4855	return awsutil.Prettify(s)
4856}
4857
4858// GoString returns the string representation
4859func (s LayerFailure) GoString() string {
4860	return s.String()
4861}
4862
4863// SetFailureCode sets the FailureCode field's value.
4864func (s *LayerFailure) SetFailureCode(v string) *LayerFailure {
4865	s.FailureCode = &v
4866	return s
4867}
4868
4869// SetFailureReason sets the FailureReason field's value.
4870func (s *LayerFailure) SetFailureReason(v string) *LayerFailure {
4871	s.FailureReason = &v
4872	return s
4873}
4874
4875// SetLayerDigest sets the LayerDigest field's value.
4876func (s *LayerFailure) SetLayerDigest(v string) *LayerFailure {
4877	s.LayerDigest = &v
4878	return s
4879}
4880
4881// Layer parts must be at least 5 MiB in size.
4882type LayerPartTooSmallException struct {
4883	_            struct{}                  `type:"structure"`
4884	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4885
4886	Message_ *string `locationName:"message" type:"string"`
4887}
4888
4889// String returns the string representation
4890func (s LayerPartTooSmallException) String() string {
4891	return awsutil.Prettify(s)
4892}
4893
4894// GoString returns the string representation
4895func (s LayerPartTooSmallException) GoString() string {
4896	return s.String()
4897}
4898
4899func newErrorLayerPartTooSmallException(v protocol.ResponseMetadata) error {
4900	return &LayerPartTooSmallException{
4901		RespMetadata: v,
4902	}
4903}
4904
4905// Code returns the exception type name.
4906func (s *LayerPartTooSmallException) Code() string {
4907	return "LayerPartTooSmallException"
4908}
4909
4910// Message returns the exception's message.
4911func (s *LayerPartTooSmallException) Message() string {
4912	if s.Message_ != nil {
4913		return *s.Message_
4914	}
4915	return ""
4916}
4917
4918// OrigErr always returns nil, satisfies awserr.Error interface.
4919func (s *LayerPartTooSmallException) OrigErr() error {
4920	return nil
4921}
4922
4923func (s *LayerPartTooSmallException) Error() string {
4924	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4925}
4926
4927// Status code returns the HTTP status code for the request's response error.
4928func (s *LayerPartTooSmallException) StatusCode() int {
4929	return s.RespMetadata.StatusCode
4930}
4931
4932// RequestID returns the service's response RequestID for request.
4933func (s *LayerPartTooSmallException) RequestID() string {
4934	return s.RespMetadata.RequestID
4935}
4936
4937// The specified layers could not be found, or the specified layer is not valid
4938// for this repository.
4939type LayersNotFoundException struct {
4940	_            struct{}                  `type:"structure"`
4941	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4942
4943	Message_ *string `locationName:"message" type:"string"`
4944}
4945
4946// String returns the string representation
4947func (s LayersNotFoundException) String() string {
4948	return awsutil.Prettify(s)
4949}
4950
4951// GoString returns the string representation
4952func (s LayersNotFoundException) GoString() string {
4953	return s.String()
4954}
4955
4956func newErrorLayersNotFoundException(v protocol.ResponseMetadata) error {
4957	return &LayersNotFoundException{
4958		RespMetadata: v,
4959	}
4960}
4961
4962// Code returns the exception type name.
4963func (s *LayersNotFoundException) Code() string {
4964	return "LayersNotFoundException"
4965}
4966
4967// Message returns the exception's message.
4968func (s *LayersNotFoundException) Message() string {
4969	if s.Message_ != nil {
4970		return *s.Message_
4971	}
4972	return ""
4973}
4974
4975// OrigErr always returns nil, satisfies awserr.Error interface.
4976func (s *LayersNotFoundException) OrigErr() error {
4977	return nil
4978}
4979
4980func (s *LayersNotFoundException) Error() string {
4981	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4982}
4983
4984// Status code returns the HTTP status code for the request's response error.
4985func (s *LayersNotFoundException) StatusCode() int {
4986	return s.RespMetadata.StatusCode
4987}
4988
4989// RequestID returns the service's response RequestID for request.
4990func (s *LayersNotFoundException) RequestID() string {
4991	return s.RespMetadata.RequestID
4992}
4993
4994// The operation did not succeed because it would have exceeded a service limit
4995// for your account. For more information, see Amazon ECR Service Quotas (https://docs.aws.amazon.com/AmazonECR/latest/userguide/service-quotas.html)
4996// in the Amazon Elastic Container Registry User Guide.
4997type LimitExceededException struct {
4998	_            struct{}                  `type:"structure"`
4999	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5000
5001	Message_ *string `locationName:"message" type:"string"`
5002}
5003
5004// String returns the string representation
5005func (s LimitExceededException) String() string {
5006	return awsutil.Prettify(s)
5007}
5008
5009// GoString returns the string representation
5010func (s LimitExceededException) GoString() string {
5011	return s.String()
5012}
5013
5014func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
5015	return &LimitExceededException{
5016		RespMetadata: v,
5017	}
5018}
5019
5020// Code returns the exception type name.
5021func (s *LimitExceededException) Code() string {
5022	return "LimitExceededException"
5023}
5024
5025// Message returns the exception's message.
5026func (s *LimitExceededException) Message() string {
5027	if s.Message_ != nil {
5028		return *s.Message_
5029	}
5030	return ""
5031}
5032
5033// OrigErr always returns nil, satisfies awserr.Error interface.
5034func (s *LimitExceededException) OrigErr() error {
5035	return nil
5036}
5037
5038func (s *LimitExceededException) Error() string {
5039	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5040}
5041
5042// Status code returns the HTTP status code for the request's response error.
5043func (s *LimitExceededException) StatusCode() int {
5044	return s.RespMetadata.StatusCode
5045}
5046
5047// RequestID returns the service's response RequestID for request.
5048func (s *LimitExceededException) RequestID() string {
5049	return s.RespMetadata.RequestID
5050}
5051
5052type ListTagsForResourceInput struct {
5053	_ struct{} `type:"structure"`
5054
5055	// The Amazon Resource Name (ARN) that identifies the resource for which to
5056	// list the tags. Currently, the supported resource is an Amazon ECR Public
5057	// repository.
5058	//
5059	// ResourceArn is a required field
5060	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
5061}
5062
5063// String returns the string representation
5064func (s ListTagsForResourceInput) String() string {
5065	return awsutil.Prettify(s)
5066}
5067
5068// GoString returns the string representation
5069func (s ListTagsForResourceInput) GoString() string {
5070	return s.String()
5071}
5072
5073// Validate inspects the fields of the type to determine if they are valid.
5074func (s *ListTagsForResourceInput) Validate() error {
5075	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5076	if s.ResourceArn == nil {
5077		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
5078	}
5079
5080	if invalidParams.Len() > 0 {
5081		return invalidParams
5082	}
5083	return nil
5084}
5085
5086// SetResourceArn sets the ResourceArn field's value.
5087func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
5088	s.ResourceArn = &v
5089	return s
5090}
5091
5092type ListTagsForResourceOutput struct {
5093	_ struct{} `type:"structure"`
5094
5095	// The tags for the resource.
5096	Tags []*Tag `locationName:"tags" type:"list"`
5097}
5098
5099// String returns the string representation
5100func (s ListTagsForResourceOutput) String() string {
5101	return awsutil.Prettify(s)
5102}
5103
5104// GoString returns the string representation
5105func (s ListTagsForResourceOutput) GoString() string {
5106	return s.String()
5107}
5108
5109// SetTags sets the Tags field's value.
5110func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
5111	s.Tags = v
5112	return s
5113}
5114
5115type PutImageInput struct {
5116	_ struct{} `type:"structure"`
5117
5118	// The image digest of the image manifest corresponding to the image.
5119	ImageDigest *string `locationName:"imageDigest" type:"string"`
5120
5121	// The image manifest corresponding to the image to be uploaded.
5122	//
5123	// ImageManifest is a required field
5124	ImageManifest *string `locationName:"imageManifest" min:"1" type:"string" required:"true"`
5125
5126	// The media type of the image manifest. If you push an image manifest that
5127	// does not contain the mediaType field, you must specify the imageManifestMediaType
5128	// in the request.
5129	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
5130
5131	// The tag to associate with the image. This parameter is required for images
5132	// that use the Docker Image Manifest V2 Schema 2 or Open Container Initiative
5133	// (OCI) formats.
5134	ImageTag *string `locationName:"imageTag" min:"1" type:"string"`
5135
5136	// The AWS account ID associated with the public registry that contains the
5137	// repository in which to put the image. If you do not specify a registry, the
5138	// default public registry is assumed.
5139	RegistryId *string `locationName:"registryId" min:"1" type:"string"`
5140
5141	// The name of the repository in which to put the image.
5142	//
5143	// RepositoryName is a required field
5144	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
5145}
5146
5147// String returns the string representation
5148func (s PutImageInput) String() string {
5149	return awsutil.Prettify(s)
5150}
5151
5152// GoString returns the string representation
5153func (s PutImageInput) GoString() string {
5154	return s.String()
5155}
5156
5157// Validate inspects the fields of the type to determine if they are valid.
5158func (s *PutImageInput) Validate() error {
5159	invalidParams := request.ErrInvalidParams{Context: "PutImageInput"}
5160	if s.ImageManifest == nil {
5161		invalidParams.Add(request.NewErrParamRequired("ImageManifest"))
5162	}
5163	if s.ImageManifest != nil && len(*s.ImageManifest) < 1 {
5164		invalidParams.Add(request.NewErrParamMinLen("ImageManifest", 1))
5165	}
5166	if s.ImageTag != nil && len(*s.ImageTag) < 1 {
5167		invalidParams.Add(request.NewErrParamMinLen("ImageTag", 1))
5168	}
5169	if s.RegistryId != nil && len(*s.RegistryId) < 1 {
5170		invalidParams.Add(request.NewErrParamMinLen("RegistryId", 1))
5171	}
5172	if s.RepositoryName == nil {
5173		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
5174	}
5175	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
5176		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
5177	}
5178
5179	if invalidParams.Len() > 0 {
5180		return invalidParams
5181	}
5182	return nil
5183}
5184
5185// SetImageDigest sets the ImageDigest field's value.
5186func (s *PutImageInput) SetImageDigest(v string) *PutImageInput {
5187	s.ImageDigest = &v
5188	return s
5189}
5190
5191// SetImageManifest sets the ImageManifest field's value.
5192func (s *PutImageInput) SetImageManifest(v string) *PutImageInput {
5193	s.ImageManifest = &v
5194	return s
5195}
5196
5197// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
5198func (s *PutImageInput) SetImageManifestMediaType(v string) *PutImageInput {
5199	s.ImageManifestMediaType = &v
5200	return s
5201}
5202
5203// SetImageTag sets the ImageTag field's value.
5204func (s *PutImageInput) SetImageTag(v string) *PutImageInput {
5205	s.ImageTag = &v
5206	return s
5207}
5208
5209// SetRegistryId sets the RegistryId field's value.
5210func (s *PutImageInput) SetRegistryId(v string) *PutImageInput {
5211	s.RegistryId = &v
5212	return s
5213}
5214
5215// SetRepositoryName sets the RepositoryName field's value.
5216func (s *PutImageInput) SetRepositoryName(v string) *PutImageInput {
5217	s.RepositoryName = &v
5218	return s
5219}
5220
5221type PutImageOutput struct {
5222	_ struct{} `type:"structure"`
5223
5224	// Details of the image uploaded.
5225	Image *Image `locationName:"image" type:"structure"`
5226}
5227
5228// String returns the string representation
5229func (s PutImageOutput) String() string {
5230	return awsutil.Prettify(s)
5231}
5232
5233// GoString returns the string representation
5234func (s PutImageOutput) GoString() string {
5235	return s.String()
5236}
5237
5238// SetImage sets the Image field's value.
5239func (s *PutImageOutput) SetImage(v *Image) *PutImageOutput {
5240	s.Image = v
5241	return s
5242}
5243
5244type PutRegistryCatalogDataInput struct {
5245	_ struct{} `type:"structure"`
5246
5247	// The display name for a public registry. The display name is shown as the
5248	// repository author in the Amazon ECR Public Gallery.
5249	//
5250	// The registry display name is only publicly visible in the Amazon ECR Public
5251	// Gallery for verified accounts.
5252	DisplayName *string `locationName:"displayName" type:"string"`
5253}
5254
5255// String returns the string representation
5256func (s PutRegistryCatalogDataInput) String() string {
5257	return awsutil.Prettify(s)
5258}
5259
5260// GoString returns the string representation
5261func (s PutRegistryCatalogDataInput) GoString() string {
5262	return s.String()
5263}
5264
5265// SetDisplayName sets the DisplayName field's value.
5266func (s *PutRegistryCatalogDataInput) SetDisplayName(v string) *PutRegistryCatalogDataInput {
5267	s.DisplayName = &v
5268	return s
5269}
5270
5271type PutRegistryCatalogDataOutput struct {
5272	_ struct{} `type:"structure"`
5273
5274	// The catalog data for the public registry.
5275	//
5276	// RegistryCatalogData is a required field
5277	RegistryCatalogData *RegistryCatalogData `locationName:"registryCatalogData" type:"structure" required:"true"`
5278}
5279
5280// String returns the string representation
5281func (s PutRegistryCatalogDataOutput) String() string {
5282	return awsutil.Prettify(s)
5283}
5284
5285// GoString returns the string representation
5286func (s PutRegistryCatalogDataOutput) GoString() string {
5287	return s.String()
5288}
5289
5290// SetRegistryCatalogData sets the RegistryCatalogData field's value.
5291func (s *PutRegistryCatalogDataOutput) SetRegistryCatalogData(v *RegistryCatalogData) *PutRegistryCatalogDataOutput {
5292	s.RegistryCatalogData = v
5293	return s
5294}
5295
5296type PutRepositoryCatalogDataInput struct {
5297	_ struct{} `type:"structure"`
5298
5299	// An object containing the catalog data for a repository. This data is publicly
5300	// visible in the Amazon ECR Public Gallery.
5301	//
5302	// CatalogData is a required field
5303	CatalogData *RepositoryCatalogDataInput `locationName:"catalogData" type:"structure" required:"true"`
5304
5305	// The AWS account ID associated with the public registry the repository is
5306	// in. If you do not specify a registry, the default public registry is assumed.
5307	RegistryId *string `locationName:"registryId" type:"string"`
5308
5309	// The name of the repository to create or update the catalog data for.
5310	//
5311	// RepositoryName is a required field
5312	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
5313}
5314
5315// String returns the string representation
5316func (s PutRepositoryCatalogDataInput) String() string {
5317	return awsutil.Prettify(s)
5318}
5319
5320// GoString returns the string representation
5321func (s PutRepositoryCatalogDataInput) GoString() string {
5322	return s.String()
5323}
5324
5325// Validate inspects the fields of the type to determine if they are valid.
5326func (s *PutRepositoryCatalogDataInput) Validate() error {
5327	invalidParams := request.ErrInvalidParams{Context: "PutRepositoryCatalogDataInput"}
5328	if s.CatalogData == nil {
5329		invalidParams.Add(request.NewErrParamRequired("CatalogData"))
5330	}
5331	if s.RepositoryName == nil {
5332		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
5333	}
5334	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
5335		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
5336	}
5337
5338	if invalidParams.Len() > 0 {
5339		return invalidParams
5340	}
5341	return nil
5342}
5343
5344// SetCatalogData sets the CatalogData field's value.
5345func (s *PutRepositoryCatalogDataInput) SetCatalogData(v *RepositoryCatalogDataInput) *PutRepositoryCatalogDataInput {
5346	s.CatalogData = v
5347	return s
5348}
5349
5350// SetRegistryId sets the RegistryId field's value.
5351func (s *PutRepositoryCatalogDataInput) SetRegistryId(v string) *PutRepositoryCatalogDataInput {
5352	s.RegistryId = &v
5353	return s
5354}
5355
5356// SetRepositoryName sets the RepositoryName field's value.
5357func (s *PutRepositoryCatalogDataInput) SetRepositoryName(v string) *PutRepositoryCatalogDataInput {
5358	s.RepositoryName = &v
5359	return s
5360}
5361
5362type PutRepositoryCatalogDataOutput struct {
5363	_ struct{} `type:"structure"`
5364
5365	// The catalog data for the repository.
5366	CatalogData *RepositoryCatalogData `locationName:"catalogData" type:"structure"`
5367}
5368
5369// String returns the string representation
5370func (s PutRepositoryCatalogDataOutput) String() string {
5371	return awsutil.Prettify(s)
5372}
5373
5374// GoString returns the string representation
5375func (s PutRepositoryCatalogDataOutput) GoString() string {
5376	return s.String()
5377}
5378
5379// SetCatalogData sets the CatalogData field's value.
5380func (s *PutRepositoryCatalogDataOutput) SetCatalogData(v *RepositoryCatalogData) *PutRepositoryCatalogDataOutput {
5381	s.CatalogData = v
5382	return s
5383}
5384
5385// An object that describes the image tag details returned by a DescribeImageTags
5386// action.
5387type ReferencedImageDetail struct {
5388	_ struct{} `type:"structure"`
5389
5390	// The artifact media type of the image.
5391	ArtifactMediaType *string `locationName:"artifactMediaType" type:"string"`
5392
5393	// The sha256 digest of the image manifest.
5394	ImageDigest *string `locationName:"imageDigest" type:"string"`
5395
5396	// The media type of the image manifest.
5397	ImageManifestMediaType *string `locationName:"imageManifestMediaType" type:"string"`
5398
5399	// The date and time, expressed in standard JavaScript date format, at which
5400	// the current image tag was pushed to the repository.
5401	ImagePushedAt *time.Time `locationName:"imagePushedAt" type:"timestamp"`
5402
5403	// The size, in bytes, of the image in the repository.
5404	//
5405	// If the image is a manifest list, this will be the max size of all manifests
5406	// in the list.
5407	//
5408	// Beginning with Docker version 1.9, the Docker client compresses image layers
5409	// before pushing them to a V2 Docker registry. The output of the docker images
5410	// command shows the uncompressed image size, so it may return a larger image
5411	// size than the image sizes returned by DescribeImages.
5412	ImageSizeInBytes *int64 `locationName:"imageSizeInBytes" type:"long"`
5413}
5414
5415// String returns the string representation
5416func (s ReferencedImageDetail) String() string {
5417	return awsutil.Prettify(s)
5418}
5419
5420// GoString returns the string representation
5421func (s ReferencedImageDetail) GoString() string {
5422	return s.String()
5423}
5424
5425// SetArtifactMediaType sets the ArtifactMediaType field's value.
5426func (s *ReferencedImageDetail) SetArtifactMediaType(v string) *ReferencedImageDetail {
5427	s.ArtifactMediaType = &v
5428	return s
5429}
5430
5431// SetImageDigest sets the ImageDigest field's value.
5432func (s *ReferencedImageDetail) SetImageDigest(v string) *ReferencedImageDetail {
5433	s.ImageDigest = &v
5434	return s
5435}
5436
5437// SetImageManifestMediaType sets the ImageManifestMediaType field's value.
5438func (s *ReferencedImageDetail) SetImageManifestMediaType(v string) *ReferencedImageDetail {
5439	s.ImageManifestMediaType = &v
5440	return s
5441}
5442
5443// SetImagePushedAt sets the ImagePushedAt field's value.
5444func (s *ReferencedImageDetail) SetImagePushedAt(v time.Time) *ReferencedImageDetail {
5445	s.ImagePushedAt = &v
5446	return s
5447}
5448
5449// SetImageSizeInBytes sets the ImageSizeInBytes field's value.
5450func (s *ReferencedImageDetail) SetImageSizeInBytes(v int64) *ReferencedImageDetail {
5451	s.ImageSizeInBytes = &v
5452	return s
5453}
5454
5455// The manifest list is referencing an image that does not exist.
5456type ReferencedImagesNotFoundException struct {
5457	_            struct{}                  `type:"structure"`
5458	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5459
5460	Message_ *string `locationName:"message" type:"string"`
5461}
5462
5463// String returns the string representation
5464func (s ReferencedImagesNotFoundException) String() string {
5465	return awsutil.Prettify(s)
5466}
5467
5468// GoString returns the string representation
5469func (s ReferencedImagesNotFoundException) GoString() string {
5470	return s.String()
5471}
5472
5473func newErrorReferencedImagesNotFoundException(v protocol.ResponseMetadata) error {
5474	return &ReferencedImagesNotFoundException{
5475		RespMetadata: v,
5476	}
5477}
5478
5479// Code returns the exception type name.
5480func (s *ReferencedImagesNotFoundException) Code() string {
5481	return "ReferencedImagesNotFoundException"
5482}
5483
5484// Message returns the exception's message.
5485func (s *ReferencedImagesNotFoundException) Message() string {
5486	if s.Message_ != nil {
5487		return *s.Message_
5488	}
5489	return ""
5490}
5491
5492// OrigErr always returns nil, satisfies awserr.Error interface.
5493func (s *ReferencedImagesNotFoundException) OrigErr() error {
5494	return nil
5495}
5496
5497func (s *ReferencedImagesNotFoundException) Error() string {
5498	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5499}
5500
5501// Status code returns the HTTP status code for the request's response error.
5502func (s *ReferencedImagesNotFoundException) StatusCode() int {
5503	return s.RespMetadata.StatusCode
5504}
5505
5506// RequestID returns the service's response RequestID for request.
5507func (s *ReferencedImagesNotFoundException) RequestID() string {
5508	return s.RespMetadata.RequestID
5509}
5510
5511// The details of a public registry.
5512type Registry struct {
5513	_ struct{} `type:"structure"`
5514
5515	// An array of objects representing the aliases for a public registry.
5516	//
5517	// Aliases is a required field
5518	Aliases []*RegistryAlias `locationName:"aliases" type:"list" required:"true"`
5519
5520	// The Amazon Resource Name (ARN) of the public registry.
5521	//
5522	// RegistryArn is a required field
5523	RegistryArn *string `locationName:"registryArn" type:"string" required:"true"`
5524
5525	// The AWS account ID associated with the registry. If you do not specify a
5526	// registry, the default public registry is assumed.
5527	//
5528	// RegistryId is a required field
5529	RegistryId *string `locationName:"registryId" type:"string" required:"true"`
5530
5531	// The URI of a public registry. The URI contains a universal prefix and the
5532	// registry alias.
5533	//
5534	// RegistryUri is a required field
5535	RegistryUri *string `locationName:"registryUri" type:"string" required:"true"`
5536
5537	// Whether the account is verified. This indicates whether the account is an
5538	// AWS Marketplace vendor. If an account is verified, each public repository
5539	// will received a verified account badge on the Amazon ECR Public Gallery.
5540	//
5541	// Verified is a required field
5542	Verified *bool `locationName:"verified" type:"boolean" required:"true"`
5543}
5544
5545// String returns the string representation
5546func (s Registry) String() string {
5547	return awsutil.Prettify(s)
5548}
5549
5550// GoString returns the string representation
5551func (s Registry) GoString() string {
5552	return s.String()
5553}
5554
5555// SetAliases sets the Aliases field's value.
5556func (s *Registry) SetAliases(v []*RegistryAlias) *Registry {
5557	s.Aliases = v
5558	return s
5559}
5560
5561// SetRegistryArn sets the RegistryArn field's value.
5562func (s *Registry) SetRegistryArn(v string) *Registry {
5563	s.RegistryArn = &v
5564	return s
5565}
5566
5567// SetRegistryId sets the RegistryId field's value.
5568func (s *Registry) SetRegistryId(v string) *Registry {
5569	s.RegistryId = &v
5570	return s
5571}
5572
5573// SetRegistryUri sets the RegistryUri field's value.
5574func (s *Registry) SetRegistryUri(v string) *Registry {
5575	s.RegistryUri = &v
5576	return s
5577}
5578
5579// SetVerified sets the Verified field's value.
5580func (s *Registry) SetVerified(v bool) *Registry {
5581	s.Verified = &v
5582	return s
5583}
5584
5585// An object representing the aliases for a public registry. A public registry
5586// is given an alias upon creation but a custom alias can be set using the Amazon
5587// ECR console. For more information, see Registries (https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html)
5588// in the Amazon Elastic Container Registry User Guide.
5589type RegistryAlias struct {
5590	_ struct{} `type:"structure"`
5591
5592	// Whether or not the registry alias is the default alias for the registry.
5593	// When the first public repository is created, your public registry is assigned
5594	// a default registry alias.
5595	//
5596	// DefaultRegistryAlias is a required field
5597	DefaultRegistryAlias *bool `locationName:"defaultRegistryAlias" type:"boolean" required:"true"`
5598
5599	// The name of the registry alias.
5600	//
5601	// Name is a required field
5602	Name *string `locationName:"name" min:"2" type:"string" required:"true"`
5603
5604	// Whether or not the registry alias is the primary alias for the registry.
5605	// If true, the alias is the primary registry alias and is displayed in both
5606	// the repository URL and the image URI used in the docker pull commands on
5607	// the Amazon ECR Public Gallery.
5608	//
5609	// A registry alias that is not the primary registry alias can be used in the
5610	// repository URI in a docker pull command.
5611	//
5612	// PrimaryRegistryAlias is a required field
5613	PrimaryRegistryAlias *bool `locationName:"primaryRegistryAlias" type:"boolean" required:"true"`
5614
5615	// The status of the registry alias.
5616	//
5617	// Status is a required field
5618	Status *string `locationName:"status" type:"string" required:"true" enum:"RegistryAliasStatus"`
5619}
5620
5621// String returns the string representation
5622func (s RegistryAlias) String() string {
5623	return awsutil.Prettify(s)
5624}
5625
5626// GoString returns the string representation
5627func (s RegistryAlias) GoString() string {
5628	return s.String()
5629}
5630
5631// SetDefaultRegistryAlias sets the DefaultRegistryAlias field's value.
5632func (s *RegistryAlias) SetDefaultRegistryAlias(v bool) *RegistryAlias {
5633	s.DefaultRegistryAlias = &v
5634	return s
5635}
5636
5637// SetName sets the Name field's value.
5638func (s *RegistryAlias) SetName(v string) *RegistryAlias {
5639	s.Name = &v
5640	return s
5641}
5642
5643// SetPrimaryRegistryAlias sets the PrimaryRegistryAlias field's value.
5644func (s *RegistryAlias) SetPrimaryRegistryAlias(v bool) *RegistryAlias {
5645	s.PrimaryRegistryAlias = &v
5646	return s
5647}
5648
5649// SetStatus sets the Status field's value.
5650func (s *RegistryAlias) SetStatus(v string) *RegistryAlias {
5651	s.Status = &v
5652	return s
5653}
5654
5655// The metadata for a public registry.
5656type RegistryCatalogData struct {
5657	_ struct{} `type:"structure"`
5658
5659	// The display name for a public registry. This appears on the Amazon ECR Public
5660	// Gallery.
5661	//
5662	// Only accounts that have the verified account badge can have a registry display
5663	// name.
5664	DisplayName *string `locationName:"displayName" type:"string"`
5665}
5666
5667// String returns the string representation
5668func (s RegistryCatalogData) String() string {
5669	return awsutil.Prettify(s)
5670}
5671
5672// GoString returns the string representation
5673func (s RegistryCatalogData) GoString() string {
5674	return s.String()
5675}
5676
5677// SetDisplayName sets the DisplayName field's value.
5678func (s *RegistryCatalogData) SetDisplayName(v string) *RegistryCatalogData {
5679	s.DisplayName = &v
5680	return s
5681}
5682
5683// The registry does not exist.
5684type RegistryNotFoundException struct {
5685	_            struct{}                  `type:"structure"`
5686	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5687
5688	Message_ *string `locationName:"message" type:"string"`
5689}
5690
5691// String returns the string representation
5692func (s RegistryNotFoundException) String() string {
5693	return awsutil.Prettify(s)
5694}
5695
5696// GoString returns the string representation
5697func (s RegistryNotFoundException) GoString() string {
5698	return s.String()
5699}
5700
5701func newErrorRegistryNotFoundException(v protocol.ResponseMetadata) error {
5702	return &RegistryNotFoundException{
5703		RespMetadata: v,
5704	}
5705}
5706
5707// Code returns the exception type name.
5708func (s *RegistryNotFoundException) Code() string {
5709	return "RegistryNotFoundException"
5710}
5711
5712// Message returns the exception's message.
5713func (s *RegistryNotFoundException) Message() string {
5714	if s.Message_ != nil {
5715		return *s.Message_
5716	}
5717	return ""
5718}
5719
5720// OrigErr always returns nil, satisfies awserr.Error interface.
5721func (s *RegistryNotFoundException) OrigErr() error {
5722	return nil
5723}
5724
5725func (s *RegistryNotFoundException) Error() string {
5726	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5727}
5728
5729// Status code returns the HTTP status code for the request's response error.
5730func (s *RegistryNotFoundException) StatusCode() int {
5731	return s.RespMetadata.StatusCode
5732}
5733
5734// RequestID returns the service's response RequestID for request.
5735func (s *RegistryNotFoundException) RequestID() string {
5736	return s.RespMetadata.RequestID
5737}
5738
5739// An object representing a repository.
5740type Repository struct {
5741	_ struct{} `type:"structure"`
5742
5743	// The date and time, in JavaScript date format, when the repository was created.
5744	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
5745
5746	// The AWS account ID associated with the public registry that contains the
5747	// repository.
5748	RegistryId *string `locationName:"registryId" type:"string"`
5749
5750	// The Amazon Resource Name (ARN) that identifies the repository. The ARN contains
5751	// the arn:aws:ecr namespace, followed by the region of the repository, AWS
5752	// account ID of the repository owner, repository namespace, and repository
5753	// name. For example, arn:aws:ecr:region:012345678910:repository/test.
5754	RepositoryArn *string `locationName:"repositoryArn" type:"string"`
5755
5756	// The name of the repository.
5757	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
5758
5759	// The URI for the repository. You can use this URI for container image push
5760	// and pull operations.
5761	RepositoryUri *string `locationName:"repositoryUri" type:"string"`
5762}
5763
5764// String returns the string representation
5765func (s Repository) String() string {
5766	return awsutil.Prettify(s)
5767}
5768
5769// GoString returns the string representation
5770func (s Repository) GoString() string {
5771	return s.String()
5772}
5773
5774// SetCreatedAt sets the CreatedAt field's value.
5775func (s *Repository) SetCreatedAt(v time.Time) *Repository {
5776	s.CreatedAt = &v
5777	return s
5778}
5779
5780// SetRegistryId sets the RegistryId field's value.
5781func (s *Repository) SetRegistryId(v string) *Repository {
5782	s.RegistryId = &v
5783	return s
5784}
5785
5786// SetRepositoryArn sets the RepositoryArn field's value.
5787func (s *Repository) SetRepositoryArn(v string) *Repository {
5788	s.RepositoryArn = &v
5789	return s
5790}
5791
5792// SetRepositoryName sets the RepositoryName field's value.
5793func (s *Repository) SetRepositoryName(v string) *Repository {
5794	s.RepositoryName = &v
5795	return s
5796}
5797
5798// SetRepositoryUri sets the RepositoryUri field's value.
5799func (s *Repository) SetRepositoryUri(v string) *Repository {
5800	s.RepositoryUri = &v
5801	return s
5802}
5803
5804// The specified repository already exists in the specified registry.
5805type RepositoryAlreadyExistsException struct {
5806	_            struct{}                  `type:"structure"`
5807	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5808
5809	Message_ *string `locationName:"message" type:"string"`
5810}
5811
5812// String returns the string representation
5813func (s RepositoryAlreadyExistsException) String() string {
5814	return awsutil.Prettify(s)
5815}
5816
5817// GoString returns the string representation
5818func (s RepositoryAlreadyExistsException) GoString() string {
5819	return s.String()
5820}
5821
5822func newErrorRepositoryAlreadyExistsException(v protocol.ResponseMetadata) error {
5823	return &RepositoryAlreadyExistsException{
5824		RespMetadata: v,
5825	}
5826}
5827
5828// Code returns the exception type name.
5829func (s *RepositoryAlreadyExistsException) Code() string {
5830	return "RepositoryAlreadyExistsException"
5831}
5832
5833// Message returns the exception's message.
5834func (s *RepositoryAlreadyExistsException) Message() string {
5835	if s.Message_ != nil {
5836		return *s.Message_
5837	}
5838	return ""
5839}
5840
5841// OrigErr always returns nil, satisfies awserr.Error interface.
5842func (s *RepositoryAlreadyExistsException) OrigErr() error {
5843	return nil
5844}
5845
5846func (s *RepositoryAlreadyExistsException) Error() string {
5847	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5848}
5849
5850// Status code returns the HTTP status code for the request's response error.
5851func (s *RepositoryAlreadyExistsException) StatusCode() int {
5852	return s.RespMetadata.StatusCode
5853}
5854
5855// RequestID returns the service's response RequestID for request.
5856func (s *RepositoryAlreadyExistsException) RequestID() string {
5857	return s.RespMetadata.RequestID
5858}
5859
5860// The catalog data for a repository. This data is publicly visible in the Amazon
5861// ECR Public Gallery.
5862type RepositoryCatalogData struct {
5863	_ struct{} `type:"structure"`
5864
5865	// The longform description of the contents of the repository. This text appears
5866	// in the repository details on the Amazon ECR Public Gallery.
5867	AboutText *string `locationName:"aboutText" type:"string"`
5868
5869	// The architecture tags that are associated with the repository.
5870	//
5871	// Only supported operating system tags appear publicly in the Amazon ECR Public
5872	// Gallery. For more information, see RepositoryCatalogDataInput.
5873	Architectures []*string `locationName:"architectures" type:"list"`
5874
5875	// The short description of the repository.
5876	Description *string `locationName:"description" type:"string"`
5877
5878	// The URL containing the logo associated with the repository.
5879	LogoUrl *string `locationName:"logoUrl" type:"string"`
5880
5881	// Whether or not the repository is certified by AWS Marketplace.
5882	MarketplaceCertified *bool `locationName:"marketplaceCertified" type:"boolean"`
5883
5884	// The operating system tags that are associated with the repository.
5885	//
5886	// Only supported operating system tags appear publicly in the Amazon ECR Public
5887	// Gallery. For more information, see RepositoryCatalogDataInput.
5888	OperatingSystems []*string `locationName:"operatingSystems" type:"list"`
5889
5890	// The longform usage details of the contents of the repository. The usage text
5891	// provides context for users of the repository.
5892	UsageText *string `locationName:"usageText" type:"string"`
5893}
5894
5895// String returns the string representation
5896func (s RepositoryCatalogData) String() string {
5897	return awsutil.Prettify(s)
5898}
5899
5900// GoString returns the string representation
5901func (s RepositoryCatalogData) GoString() string {
5902	return s.String()
5903}
5904
5905// SetAboutText sets the AboutText field's value.
5906func (s *RepositoryCatalogData) SetAboutText(v string) *RepositoryCatalogData {
5907	s.AboutText = &v
5908	return s
5909}
5910
5911// SetArchitectures sets the Architectures field's value.
5912func (s *RepositoryCatalogData) SetArchitectures(v []*string) *RepositoryCatalogData {
5913	s.Architectures = v
5914	return s
5915}
5916
5917// SetDescription sets the Description field's value.
5918func (s *RepositoryCatalogData) SetDescription(v string) *RepositoryCatalogData {
5919	s.Description = &v
5920	return s
5921}
5922
5923// SetLogoUrl sets the LogoUrl field's value.
5924func (s *RepositoryCatalogData) SetLogoUrl(v string) *RepositoryCatalogData {
5925	s.LogoUrl = &v
5926	return s
5927}
5928
5929// SetMarketplaceCertified sets the MarketplaceCertified field's value.
5930func (s *RepositoryCatalogData) SetMarketplaceCertified(v bool) *RepositoryCatalogData {
5931	s.MarketplaceCertified = &v
5932	return s
5933}
5934
5935// SetOperatingSystems sets the OperatingSystems field's value.
5936func (s *RepositoryCatalogData) SetOperatingSystems(v []*string) *RepositoryCatalogData {
5937	s.OperatingSystems = v
5938	return s
5939}
5940
5941// SetUsageText sets the UsageText field's value.
5942func (s *RepositoryCatalogData) SetUsageText(v string) *RepositoryCatalogData {
5943	s.UsageText = &v
5944	return s
5945}
5946
5947// An object containing the catalog data for a repository. This data is publicly
5948// visible in the Amazon ECR Public Gallery.
5949type RepositoryCatalogDataInput struct {
5950	_ struct{} `type:"structure"`
5951
5952	// A detailed description of the contents of the repository. It is publicly
5953	// visible in the Amazon ECR Public Gallery. The text must be in markdown format.
5954	AboutText *string `locationName:"aboutText" type:"string"`
5955
5956	// The system architecture that the images in the repository are compatible
5957	// with. On the Amazon ECR Public Gallery, the following supported architectures
5958	// will appear as badges on the repository and are used as search filters.
5959	//
5960	//    * Linux
5961	//
5962	//    * Windows
5963	//
5964	// If an unsupported tag is added to your repository catalog data, it will be
5965	// associated with the repository and can be retrieved using the API but will
5966	// not be discoverable in the Amazon ECR Public Gallery.
5967	Architectures []*string `locationName:"architectures" type:"list"`
5968
5969	// A short description of the contents of the repository. This text appears
5970	// in both the image details and also when searching for repositories on the
5971	// Amazon ECR Public Gallery.
5972	Description *string `locationName:"description" type:"string"`
5973
5974	// The base64-encoded repository logo payload.
5975	//
5976	// The repository logo is only publicly visible in the Amazon ECR Public Gallery
5977	// for verified accounts.
5978	//
5979	// LogoImageBlob is automatically base64 encoded/decoded by the SDK.
5980	LogoImageBlob []byte `locationName:"logoImageBlob" type:"blob"`
5981
5982	// The operating systems that the images in the repository are compatible with.
5983	// On the Amazon ECR Public Gallery, the following supported operating systems
5984	// will appear as badges on the repository and are used as search filters.
5985	//
5986	//    * ARM
5987	//
5988	//    * ARM 64
5989	//
5990	//    * x86
5991	//
5992	//    * x86-64
5993	//
5994	// If an unsupported tag is added to your repository catalog data, it will be
5995	// associated with the repository and can be retrieved using the API but will
5996	// not be discoverable in the Amazon ECR Public Gallery.
5997	OperatingSystems []*string `locationName:"operatingSystems" type:"list"`
5998
5999	// Detailed information on how to use the contents of the repository. It is
6000	// publicly visible in the Amazon ECR Public Gallery. The usage text provides
6001	// context, support information, and additional usage details for users of the
6002	// repository. The text must be in markdown format.
6003	UsageText *string `locationName:"usageText" type:"string"`
6004}
6005
6006// String returns the string representation
6007func (s RepositoryCatalogDataInput) String() string {
6008	return awsutil.Prettify(s)
6009}
6010
6011// GoString returns the string representation
6012func (s RepositoryCatalogDataInput) GoString() string {
6013	return s.String()
6014}
6015
6016// SetAboutText sets the AboutText field's value.
6017func (s *RepositoryCatalogDataInput) SetAboutText(v string) *RepositoryCatalogDataInput {
6018	s.AboutText = &v
6019	return s
6020}
6021
6022// SetArchitectures sets the Architectures field's value.
6023func (s *RepositoryCatalogDataInput) SetArchitectures(v []*string) *RepositoryCatalogDataInput {
6024	s.Architectures = v
6025	return s
6026}
6027
6028// SetDescription sets the Description field's value.
6029func (s *RepositoryCatalogDataInput) SetDescription(v string) *RepositoryCatalogDataInput {
6030	s.Description = &v
6031	return s
6032}
6033
6034// SetLogoImageBlob sets the LogoImageBlob field's value.
6035func (s *RepositoryCatalogDataInput) SetLogoImageBlob(v []byte) *RepositoryCatalogDataInput {
6036	s.LogoImageBlob = v
6037	return s
6038}
6039
6040// SetOperatingSystems sets the OperatingSystems field's value.
6041func (s *RepositoryCatalogDataInput) SetOperatingSystems(v []*string) *RepositoryCatalogDataInput {
6042	s.OperatingSystems = v
6043	return s
6044}
6045
6046// SetUsageText sets the UsageText field's value.
6047func (s *RepositoryCatalogDataInput) SetUsageText(v string) *RepositoryCatalogDataInput {
6048	s.UsageText = &v
6049	return s
6050}
6051
6052// The specified repository contains images. To delete a repository that contains
6053// images, you must force the deletion with the force parameter.
6054type RepositoryNotEmptyException struct {
6055	_            struct{}                  `type:"structure"`
6056	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6057
6058	Message_ *string `locationName:"message" type:"string"`
6059}
6060
6061// String returns the string representation
6062func (s RepositoryNotEmptyException) String() string {
6063	return awsutil.Prettify(s)
6064}
6065
6066// GoString returns the string representation
6067func (s RepositoryNotEmptyException) GoString() string {
6068	return s.String()
6069}
6070
6071func newErrorRepositoryNotEmptyException(v protocol.ResponseMetadata) error {
6072	return &RepositoryNotEmptyException{
6073		RespMetadata: v,
6074	}
6075}
6076
6077// Code returns the exception type name.
6078func (s *RepositoryNotEmptyException) Code() string {
6079	return "RepositoryNotEmptyException"
6080}
6081
6082// Message returns the exception's message.
6083func (s *RepositoryNotEmptyException) Message() string {
6084	if s.Message_ != nil {
6085		return *s.Message_
6086	}
6087	return ""
6088}
6089
6090// OrigErr always returns nil, satisfies awserr.Error interface.
6091func (s *RepositoryNotEmptyException) OrigErr() error {
6092	return nil
6093}
6094
6095func (s *RepositoryNotEmptyException) Error() string {
6096	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6097}
6098
6099// Status code returns the HTTP status code for the request's response error.
6100func (s *RepositoryNotEmptyException) StatusCode() int {
6101	return s.RespMetadata.StatusCode
6102}
6103
6104// RequestID returns the service's response RequestID for request.
6105func (s *RepositoryNotEmptyException) RequestID() string {
6106	return s.RespMetadata.RequestID
6107}
6108
6109// The specified repository could not be found. Check the spelling of the specified
6110// repository and ensure that you are performing operations on the correct registry.
6111type RepositoryNotFoundException struct {
6112	_            struct{}                  `type:"structure"`
6113	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6114
6115	Message_ *string `locationName:"message" type:"string"`
6116}
6117
6118// String returns the string representation
6119func (s RepositoryNotFoundException) String() string {
6120	return awsutil.Prettify(s)
6121}
6122
6123// GoString returns the string representation
6124func (s RepositoryNotFoundException) GoString() string {
6125	return s.String()
6126}
6127
6128func newErrorRepositoryNotFoundException(v protocol.ResponseMetadata) error {
6129	return &RepositoryNotFoundException{
6130		RespMetadata: v,
6131	}
6132}
6133
6134// Code returns the exception type name.
6135func (s *RepositoryNotFoundException) Code() string {
6136	return "RepositoryNotFoundException"
6137}
6138
6139// Message returns the exception's message.
6140func (s *RepositoryNotFoundException) Message() string {
6141	if s.Message_ != nil {
6142		return *s.Message_
6143	}
6144	return ""
6145}
6146
6147// OrigErr always returns nil, satisfies awserr.Error interface.
6148func (s *RepositoryNotFoundException) OrigErr() error {
6149	return nil
6150}
6151
6152func (s *RepositoryNotFoundException) Error() string {
6153	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6154}
6155
6156// Status code returns the HTTP status code for the request's response error.
6157func (s *RepositoryNotFoundException) StatusCode() int {
6158	return s.RespMetadata.StatusCode
6159}
6160
6161// RequestID returns the service's response RequestID for request.
6162func (s *RepositoryNotFoundException) RequestID() string {
6163	return s.RespMetadata.RequestID
6164}
6165
6166// The specified repository and registry combination does not have an associated
6167// repository policy.
6168type RepositoryPolicyNotFoundException struct {
6169	_            struct{}                  `type:"structure"`
6170	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6171
6172	Message_ *string `locationName:"message" type:"string"`
6173}
6174
6175// String returns the string representation
6176func (s RepositoryPolicyNotFoundException) String() string {
6177	return awsutil.Prettify(s)
6178}
6179
6180// GoString returns the string representation
6181func (s RepositoryPolicyNotFoundException) GoString() string {
6182	return s.String()
6183}
6184
6185func newErrorRepositoryPolicyNotFoundException(v protocol.ResponseMetadata) error {
6186	return &RepositoryPolicyNotFoundException{
6187		RespMetadata: v,
6188	}
6189}
6190
6191// Code returns the exception type name.
6192func (s *RepositoryPolicyNotFoundException) Code() string {
6193	return "RepositoryPolicyNotFoundException"
6194}
6195
6196// Message returns the exception's message.
6197func (s *RepositoryPolicyNotFoundException) Message() string {
6198	if s.Message_ != nil {
6199		return *s.Message_
6200	}
6201	return ""
6202}
6203
6204// OrigErr always returns nil, satisfies awserr.Error interface.
6205func (s *RepositoryPolicyNotFoundException) OrigErr() error {
6206	return nil
6207}
6208
6209func (s *RepositoryPolicyNotFoundException) Error() string {
6210	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6211}
6212
6213// Status code returns the HTTP status code for the request's response error.
6214func (s *RepositoryPolicyNotFoundException) StatusCode() int {
6215	return s.RespMetadata.StatusCode
6216}
6217
6218// RequestID returns the service's response RequestID for request.
6219func (s *RepositoryPolicyNotFoundException) RequestID() string {
6220	return s.RespMetadata.RequestID
6221}
6222
6223// These errors are usually caused by a server-side issue.
6224type ServerException struct {
6225	_            struct{}                  `type:"structure"`
6226	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6227
6228	Message_ *string `locationName:"message" type:"string"`
6229}
6230
6231// String returns the string representation
6232func (s ServerException) String() string {
6233	return awsutil.Prettify(s)
6234}
6235
6236// GoString returns the string representation
6237func (s ServerException) GoString() string {
6238	return s.String()
6239}
6240
6241func newErrorServerException(v protocol.ResponseMetadata) error {
6242	return &ServerException{
6243		RespMetadata: v,
6244	}
6245}
6246
6247// Code returns the exception type name.
6248func (s *ServerException) Code() string {
6249	return "ServerException"
6250}
6251
6252// Message returns the exception's message.
6253func (s *ServerException) Message() string {
6254	if s.Message_ != nil {
6255		return *s.Message_
6256	}
6257	return ""
6258}
6259
6260// OrigErr always returns nil, satisfies awserr.Error interface.
6261func (s *ServerException) OrigErr() error {
6262	return nil
6263}
6264
6265func (s *ServerException) Error() string {
6266	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6267}
6268
6269// Status code returns the HTTP status code for the request's response error.
6270func (s *ServerException) StatusCode() int {
6271	return s.RespMetadata.StatusCode
6272}
6273
6274// RequestID returns the service's response RequestID for request.
6275func (s *ServerException) RequestID() string {
6276	return s.RespMetadata.RequestID
6277}
6278
6279type SetRepositoryPolicyInput struct {
6280	_ struct{} `type:"structure"`
6281
6282	// If the policy you are attempting to set on a repository policy would prevent
6283	// you from setting another policy in the future, you must force the SetRepositoryPolicy
6284	// operation. This is intended to prevent accidental repository lock outs.
6285	Force *bool `locationName:"force" type:"boolean"`
6286
6287	// The JSON repository policy text to apply to the repository. For more information,
6288	// see Amazon ECR Repository Policies (https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html)
6289	// in the Amazon Elastic Container Registry User Guide.
6290	//
6291	// PolicyText is a required field
6292	PolicyText *string `locationName:"policyText" type:"string" required:"true"`
6293
6294	// The AWS account ID associated with the registry that contains the repository.
6295	// If you do not specify a registry, the default public registry is assumed.
6296	RegistryId *string `locationName:"registryId" type:"string"`
6297
6298	// The name of the repository to receive the policy.
6299	//
6300	// RepositoryName is a required field
6301	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
6302}
6303
6304// String returns the string representation
6305func (s SetRepositoryPolicyInput) String() string {
6306	return awsutil.Prettify(s)
6307}
6308
6309// GoString returns the string representation
6310func (s SetRepositoryPolicyInput) GoString() string {
6311	return s.String()
6312}
6313
6314// Validate inspects the fields of the type to determine if they are valid.
6315func (s *SetRepositoryPolicyInput) Validate() error {
6316	invalidParams := request.ErrInvalidParams{Context: "SetRepositoryPolicyInput"}
6317	if s.PolicyText == nil {
6318		invalidParams.Add(request.NewErrParamRequired("PolicyText"))
6319	}
6320	if s.RepositoryName == nil {
6321		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
6322	}
6323	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
6324		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
6325	}
6326
6327	if invalidParams.Len() > 0 {
6328		return invalidParams
6329	}
6330	return nil
6331}
6332
6333// SetForce sets the Force field's value.
6334func (s *SetRepositoryPolicyInput) SetForce(v bool) *SetRepositoryPolicyInput {
6335	s.Force = &v
6336	return s
6337}
6338
6339// SetPolicyText sets the PolicyText field's value.
6340func (s *SetRepositoryPolicyInput) SetPolicyText(v string) *SetRepositoryPolicyInput {
6341	s.PolicyText = &v
6342	return s
6343}
6344
6345// SetRegistryId sets the RegistryId field's value.
6346func (s *SetRepositoryPolicyInput) SetRegistryId(v string) *SetRepositoryPolicyInput {
6347	s.RegistryId = &v
6348	return s
6349}
6350
6351// SetRepositoryName sets the RepositoryName field's value.
6352func (s *SetRepositoryPolicyInput) SetRepositoryName(v string) *SetRepositoryPolicyInput {
6353	s.RepositoryName = &v
6354	return s
6355}
6356
6357type SetRepositoryPolicyOutput struct {
6358	_ struct{} `type:"structure"`
6359
6360	// The JSON repository policy text applied to the repository.
6361	PolicyText *string `locationName:"policyText" type:"string"`
6362
6363	// The registry ID associated with the request.
6364	RegistryId *string `locationName:"registryId" type:"string"`
6365
6366	// The repository name associated with the request.
6367	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
6368}
6369
6370// String returns the string representation
6371func (s SetRepositoryPolicyOutput) String() string {
6372	return awsutil.Prettify(s)
6373}
6374
6375// GoString returns the string representation
6376func (s SetRepositoryPolicyOutput) GoString() string {
6377	return s.String()
6378}
6379
6380// SetPolicyText sets the PolicyText field's value.
6381func (s *SetRepositoryPolicyOutput) SetPolicyText(v string) *SetRepositoryPolicyOutput {
6382	s.PolicyText = &v
6383	return s
6384}
6385
6386// SetRegistryId sets the RegistryId field's value.
6387func (s *SetRepositoryPolicyOutput) SetRegistryId(v string) *SetRepositoryPolicyOutput {
6388	s.RegistryId = &v
6389	return s
6390}
6391
6392// SetRepositoryName sets the RepositoryName field's value.
6393func (s *SetRepositoryPolicyOutput) SetRepositoryName(v string) *SetRepositoryPolicyOutput {
6394	s.RepositoryName = &v
6395	return s
6396}
6397
6398// The metadata that you apply to a resource to help you categorize and organize
6399// them. Each tag consists of a key and an optional value, both of which you
6400// define. Tag keys can have a maximum character length of 128 characters, and
6401// tag values can have a maximum length of 256 characters.
6402type Tag struct {
6403	_ struct{} `type:"structure"`
6404
6405	// One part of a key-value pair that make up a tag. A key is a general label
6406	// that acts like a category for more specific tag values.
6407	Key *string `min:"1" type:"string"`
6408
6409	// The optional part of a key-value pair that make up a tag. A value acts as
6410	// a descriptor within a tag category (key).
6411	Value *string `type:"string"`
6412}
6413
6414// String returns the string representation
6415func (s Tag) String() string {
6416	return awsutil.Prettify(s)
6417}
6418
6419// GoString returns the string representation
6420func (s Tag) GoString() string {
6421	return s.String()
6422}
6423
6424// Validate inspects the fields of the type to determine if they are valid.
6425func (s *Tag) Validate() error {
6426	invalidParams := request.ErrInvalidParams{Context: "Tag"}
6427	if s.Key != nil && len(*s.Key) < 1 {
6428		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6429	}
6430
6431	if invalidParams.Len() > 0 {
6432		return invalidParams
6433	}
6434	return nil
6435}
6436
6437// SetKey sets the Key field's value.
6438func (s *Tag) SetKey(v string) *Tag {
6439	s.Key = &v
6440	return s
6441}
6442
6443// SetValue sets the Value field's value.
6444func (s *Tag) SetValue(v string) *Tag {
6445	s.Value = &v
6446	return s
6447}
6448
6449type TagResourceInput struct {
6450	_ struct{} `type:"structure"`
6451
6452	// The Amazon Resource Name (ARN) of the resource to which to add tags. Currently,
6453	// the supported resource is an Amazon ECR Public repository.
6454	//
6455	// ResourceArn is a required field
6456	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
6457
6458	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
6459	// keys can have a maximum character length of 128 characters, and tag values
6460	// can have a maximum length of 256 characters.
6461	//
6462	// Tags is a required field
6463	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
6464}
6465
6466// String returns the string representation
6467func (s TagResourceInput) String() string {
6468	return awsutil.Prettify(s)
6469}
6470
6471// GoString returns the string representation
6472func (s TagResourceInput) GoString() string {
6473	return s.String()
6474}
6475
6476// Validate inspects the fields of the type to determine if they are valid.
6477func (s *TagResourceInput) Validate() error {
6478	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
6479	if s.ResourceArn == nil {
6480		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6481	}
6482	if s.Tags == nil {
6483		invalidParams.Add(request.NewErrParamRequired("Tags"))
6484	}
6485	if s.Tags != nil {
6486		for i, v := range s.Tags {
6487			if v == nil {
6488				continue
6489			}
6490			if err := v.Validate(); err != nil {
6491				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6492			}
6493		}
6494	}
6495
6496	if invalidParams.Len() > 0 {
6497		return invalidParams
6498	}
6499	return nil
6500}
6501
6502// SetResourceArn sets the ResourceArn field's value.
6503func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
6504	s.ResourceArn = &v
6505	return s
6506}
6507
6508// SetTags sets the Tags field's value.
6509func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
6510	s.Tags = v
6511	return s
6512}
6513
6514type TagResourceOutput struct {
6515	_ struct{} `type:"structure"`
6516}
6517
6518// String returns the string representation
6519func (s TagResourceOutput) String() string {
6520	return awsutil.Prettify(s)
6521}
6522
6523// GoString returns the string representation
6524func (s TagResourceOutput) GoString() string {
6525	return s.String()
6526}
6527
6528// The list of tags on the repository is over the limit. The maximum number
6529// of tags that can be applied to a repository is 50.
6530type TooManyTagsException struct {
6531	_            struct{}                  `type:"structure"`
6532	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6533
6534	Message_ *string `locationName:"message" type:"string"`
6535}
6536
6537// String returns the string representation
6538func (s TooManyTagsException) String() string {
6539	return awsutil.Prettify(s)
6540}
6541
6542// GoString returns the string representation
6543func (s TooManyTagsException) GoString() string {
6544	return s.String()
6545}
6546
6547func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
6548	return &TooManyTagsException{
6549		RespMetadata: v,
6550	}
6551}
6552
6553// Code returns the exception type name.
6554func (s *TooManyTagsException) Code() string {
6555	return "TooManyTagsException"
6556}
6557
6558// Message returns the exception's message.
6559func (s *TooManyTagsException) Message() string {
6560	if s.Message_ != nil {
6561		return *s.Message_
6562	}
6563	return ""
6564}
6565
6566// OrigErr always returns nil, satisfies awserr.Error interface.
6567func (s *TooManyTagsException) OrigErr() error {
6568	return nil
6569}
6570
6571func (s *TooManyTagsException) Error() string {
6572	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6573}
6574
6575// Status code returns the HTTP status code for the request's response error.
6576func (s *TooManyTagsException) StatusCode() int {
6577	return s.RespMetadata.StatusCode
6578}
6579
6580// RequestID returns the service's response RequestID for request.
6581func (s *TooManyTagsException) RequestID() string {
6582	return s.RespMetadata.RequestID
6583}
6584
6585// The action is not supported in this Region.
6586type UnsupportedCommandException struct {
6587	_            struct{}                  `type:"structure"`
6588	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6589
6590	Message_ *string `locationName:"message" type:"string"`
6591}
6592
6593// String returns the string representation
6594func (s UnsupportedCommandException) String() string {
6595	return awsutil.Prettify(s)
6596}
6597
6598// GoString returns the string representation
6599func (s UnsupportedCommandException) GoString() string {
6600	return s.String()
6601}
6602
6603func newErrorUnsupportedCommandException(v protocol.ResponseMetadata) error {
6604	return &UnsupportedCommandException{
6605		RespMetadata: v,
6606	}
6607}
6608
6609// Code returns the exception type name.
6610func (s *UnsupportedCommandException) Code() string {
6611	return "UnsupportedCommandException"
6612}
6613
6614// Message returns the exception's message.
6615func (s *UnsupportedCommandException) Message() string {
6616	if s.Message_ != nil {
6617		return *s.Message_
6618	}
6619	return ""
6620}
6621
6622// OrigErr always returns nil, satisfies awserr.Error interface.
6623func (s *UnsupportedCommandException) OrigErr() error {
6624	return nil
6625}
6626
6627func (s *UnsupportedCommandException) Error() string {
6628	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6629}
6630
6631// Status code returns the HTTP status code for the request's response error.
6632func (s *UnsupportedCommandException) StatusCode() int {
6633	return s.RespMetadata.StatusCode
6634}
6635
6636// RequestID returns the service's response RequestID for request.
6637func (s *UnsupportedCommandException) RequestID() string {
6638	return s.RespMetadata.RequestID
6639}
6640
6641type UntagResourceInput struct {
6642	_ struct{} `type:"structure"`
6643
6644	// The Amazon Resource Name (ARN) of the resource from which to delete tags.
6645	// Currently, the supported resource is an Amazon ECR Public repository.
6646	//
6647	// ResourceArn is a required field
6648	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
6649
6650	// The keys of the tags to be removed.
6651	//
6652	// TagKeys is a required field
6653	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
6654}
6655
6656// String returns the string representation
6657func (s UntagResourceInput) String() string {
6658	return awsutil.Prettify(s)
6659}
6660
6661// GoString returns the string representation
6662func (s UntagResourceInput) GoString() string {
6663	return s.String()
6664}
6665
6666// Validate inspects the fields of the type to determine if they are valid.
6667func (s *UntagResourceInput) Validate() error {
6668	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
6669	if s.ResourceArn == nil {
6670		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6671	}
6672	if s.TagKeys == nil {
6673		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6674	}
6675
6676	if invalidParams.Len() > 0 {
6677		return invalidParams
6678	}
6679	return nil
6680}
6681
6682// SetResourceArn sets the ResourceArn field's value.
6683func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
6684	s.ResourceArn = &v
6685	return s
6686}
6687
6688// SetTagKeys sets the TagKeys field's value.
6689func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
6690	s.TagKeys = v
6691	return s
6692}
6693
6694type UntagResourceOutput struct {
6695	_ struct{} `type:"structure"`
6696}
6697
6698// String returns the string representation
6699func (s UntagResourceOutput) String() string {
6700	return awsutil.Prettify(s)
6701}
6702
6703// GoString returns the string representation
6704func (s UntagResourceOutput) GoString() string {
6705	return s.String()
6706}
6707
6708type UploadLayerPartInput struct {
6709	_ struct{} `type:"structure"`
6710
6711	// The base64-encoded layer part payload.
6712	//
6713	// LayerPartBlob is automatically base64 encoded/decoded by the SDK.
6714	//
6715	// LayerPartBlob is a required field
6716	LayerPartBlob []byte `locationName:"layerPartBlob" type:"blob" required:"true"`
6717
6718	// The position of the first byte of the layer part witin the overall image
6719	// layer.
6720	//
6721	// PartFirstByte is a required field
6722	PartFirstByte *int64 `locationName:"partFirstByte" type:"long" required:"true"`
6723
6724	// The position of the last byte of the layer part within the overall image
6725	// layer.
6726	//
6727	// PartLastByte is a required field
6728	PartLastByte *int64 `locationName:"partLastByte" type:"long" required:"true"`
6729
6730	// The AWS account ID associated with the registry to which you are uploading
6731	// layer parts. If you do not specify a registry, the default public registry
6732	// is assumed.
6733	RegistryId *string `locationName:"registryId" min:"1" type:"string"`
6734
6735	// The name of the repository to which you are uploading layer parts.
6736	//
6737	// RepositoryName is a required field
6738	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string" required:"true"`
6739
6740	// The upload ID from a previous InitiateLayerUpload operation to associate
6741	// with the layer part upload.
6742	//
6743	// UploadId is a required field
6744	UploadId *string `locationName:"uploadId" type:"string" required:"true"`
6745}
6746
6747// String returns the string representation
6748func (s UploadLayerPartInput) String() string {
6749	return awsutil.Prettify(s)
6750}
6751
6752// GoString returns the string representation
6753func (s UploadLayerPartInput) GoString() string {
6754	return s.String()
6755}
6756
6757// Validate inspects the fields of the type to determine if they are valid.
6758func (s *UploadLayerPartInput) Validate() error {
6759	invalidParams := request.ErrInvalidParams{Context: "UploadLayerPartInput"}
6760	if s.LayerPartBlob == nil {
6761		invalidParams.Add(request.NewErrParamRequired("LayerPartBlob"))
6762	}
6763	if s.PartFirstByte == nil {
6764		invalidParams.Add(request.NewErrParamRequired("PartFirstByte"))
6765	}
6766	if s.PartLastByte == nil {
6767		invalidParams.Add(request.NewErrParamRequired("PartLastByte"))
6768	}
6769	if s.RegistryId != nil && len(*s.RegistryId) < 1 {
6770		invalidParams.Add(request.NewErrParamMinLen("RegistryId", 1))
6771	}
6772	if s.RepositoryName == nil {
6773		invalidParams.Add(request.NewErrParamRequired("RepositoryName"))
6774	}
6775	if s.RepositoryName != nil && len(*s.RepositoryName) < 2 {
6776		invalidParams.Add(request.NewErrParamMinLen("RepositoryName", 2))
6777	}
6778	if s.UploadId == nil {
6779		invalidParams.Add(request.NewErrParamRequired("UploadId"))
6780	}
6781
6782	if invalidParams.Len() > 0 {
6783		return invalidParams
6784	}
6785	return nil
6786}
6787
6788// SetLayerPartBlob sets the LayerPartBlob field's value.
6789func (s *UploadLayerPartInput) SetLayerPartBlob(v []byte) *UploadLayerPartInput {
6790	s.LayerPartBlob = v
6791	return s
6792}
6793
6794// SetPartFirstByte sets the PartFirstByte field's value.
6795func (s *UploadLayerPartInput) SetPartFirstByte(v int64) *UploadLayerPartInput {
6796	s.PartFirstByte = &v
6797	return s
6798}
6799
6800// SetPartLastByte sets the PartLastByte field's value.
6801func (s *UploadLayerPartInput) SetPartLastByte(v int64) *UploadLayerPartInput {
6802	s.PartLastByte = &v
6803	return s
6804}
6805
6806// SetRegistryId sets the RegistryId field's value.
6807func (s *UploadLayerPartInput) SetRegistryId(v string) *UploadLayerPartInput {
6808	s.RegistryId = &v
6809	return s
6810}
6811
6812// SetRepositoryName sets the RepositoryName field's value.
6813func (s *UploadLayerPartInput) SetRepositoryName(v string) *UploadLayerPartInput {
6814	s.RepositoryName = &v
6815	return s
6816}
6817
6818// SetUploadId sets the UploadId field's value.
6819func (s *UploadLayerPartInput) SetUploadId(v string) *UploadLayerPartInput {
6820	s.UploadId = &v
6821	return s
6822}
6823
6824type UploadLayerPartOutput struct {
6825	_ struct{} `type:"structure"`
6826
6827	// The integer value of the last byte received in the request.
6828	LastByteReceived *int64 `locationName:"lastByteReceived" type:"long"`
6829
6830	// The registry ID associated with the request.
6831	RegistryId *string `locationName:"registryId" type:"string"`
6832
6833	// The repository name associated with the request.
6834	RepositoryName *string `locationName:"repositoryName" min:"2" type:"string"`
6835
6836	// The upload ID associated with the request.
6837	UploadId *string `locationName:"uploadId" type:"string"`
6838}
6839
6840// String returns the string representation
6841func (s UploadLayerPartOutput) String() string {
6842	return awsutil.Prettify(s)
6843}
6844
6845// GoString returns the string representation
6846func (s UploadLayerPartOutput) GoString() string {
6847	return s.String()
6848}
6849
6850// SetLastByteReceived sets the LastByteReceived field's value.
6851func (s *UploadLayerPartOutput) SetLastByteReceived(v int64) *UploadLayerPartOutput {
6852	s.LastByteReceived = &v
6853	return s
6854}
6855
6856// SetRegistryId sets the RegistryId field's value.
6857func (s *UploadLayerPartOutput) SetRegistryId(v string) *UploadLayerPartOutput {
6858	s.RegistryId = &v
6859	return s
6860}
6861
6862// SetRepositoryName sets the RepositoryName field's value.
6863func (s *UploadLayerPartOutput) SetRepositoryName(v string) *UploadLayerPartOutput {
6864	s.RepositoryName = &v
6865	return s
6866}
6867
6868// SetUploadId sets the UploadId field's value.
6869func (s *UploadLayerPartOutput) SetUploadId(v string) *UploadLayerPartOutput {
6870	s.UploadId = &v
6871	return s
6872}
6873
6874// The upload could not be found, or the specified upload ID is not valid for
6875// this repository.
6876type UploadNotFoundException struct {
6877	_            struct{}                  `type:"structure"`
6878	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6879
6880	Message_ *string `locationName:"message" type:"string"`
6881}
6882
6883// String returns the string representation
6884func (s UploadNotFoundException) String() string {
6885	return awsutil.Prettify(s)
6886}
6887
6888// GoString returns the string representation
6889func (s UploadNotFoundException) GoString() string {
6890	return s.String()
6891}
6892
6893func newErrorUploadNotFoundException(v protocol.ResponseMetadata) error {
6894	return &UploadNotFoundException{
6895		RespMetadata: v,
6896	}
6897}
6898
6899// Code returns the exception type name.
6900func (s *UploadNotFoundException) Code() string {
6901	return "UploadNotFoundException"
6902}
6903
6904// Message returns the exception's message.
6905func (s *UploadNotFoundException) Message() string {
6906	if s.Message_ != nil {
6907		return *s.Message_
6908	}
6909	return ""
6910}
6911
6912// OrigErr always returns nil, satisfies awserr.Error interface.
6913func (s *UploadNotFoundException) OrigErr() error {
6914	return nil
6915}
6916
6917func (s *UploadNotFoundException) Error() string {
6918	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6919}
6920
6921// Status code returns the HTTP status code for the request's response error.
6922func (s *UploadNotFoundException) StatusCode() int {
6923	return s.RespMetadata.StatusCode
6924}
6925
6926// RequestID returns the service's response RequestID for request.
6927func (s *UploadNotFoundException) RequestID() string {
6928	return s.RespMetadata.RequestID
6929}
6930
6931const (
6932	// ImageFailureCodeInvalidImageDigest is a ImageFailureCode enum value
6933	ImageFailureCodeInvalidImageDigest = "InvalidImageDigest"
6934
6935	// ImageFailureCodeInvalidImageTag is a ImageFailureCode enum value
6936	ImageFailureCodeInvalidImageTag = "InvalidImageTag"
6937
6938	// ImageFailureCodeImageTagDoesNotMatchDigest is a ImageFailureCode enum value
6939	ImageFailureCodeImageTagDoesNotMatchDigest = "ImageTagDoesNotMatchDigest"
6940
6941	// ImageFailureCodeImageNotFound is a ImageFailureCode enum value
6942	ImageFailureCodeImageNotFound = "ImageNotFound"
6943
6944	// ImageFailureCodeMissingDigestAndTag is a ImageFailureCode enum value
6945	ImageFailureCodeMissingDigestAndTag = "MissingDigestAndTag"
6946
6947	// ImageFailureCodeImageReferencedByManifestList is a ImageFailureCode enum value
6948	ImageFailureCodeImageReferencedByManifestList = "ImageReferencedByManifestList"
6949
6950	// ImageFailureCodeKmsError is a ImageFailureCode enum value
6951	ImageFailureCodeKmsError = "KmsError"
6952)
6953
6954// ImageFailureCode_Values returns all elements of the ImageFailureCode enum
6955func ImageFailureCode_Values() []string {
6956	return []string{
6957		ImageFailureCodeInvalidImageDigest,
6958		ImageFailureCodeInvalidImageTag,
6959		ImageFailureCodeImageTagDoesNotMatchDigest,
6960		ImageFailureCodeImageNotFound,
6961		ImageFailureCodeMissingDigestAndTag,
6962		ImageFailureCodeImageReferencedByManifestList,
6963		ImageFailureCodeKmsError,
6964	}
6965}
6966
6967const (
6968	// LayerAvailabilityAvailable is a LayerAvailability enum value
6969	LayerAvailabilityAvailable = "AVAILABLE"
6970
6971	// LayerAvailabilityUnavailable is a LayerAvailability enum value
6972	LayerAvailabilityUnavailable = "UNAVAILABLE"
6973)
6974
6975// LayerAvailability_Values returns all elements of the LayerAvailability enum
6976func LayerAvailability_Values() []string {
6977	return []string{
6978		LayerAvailabilityAvailable,
6979		LayerAvailabilityUnavailable,
6980	}
6981}
6982
6983const (
6984	// LayerFailureCodeInvalidLayerDigest is a LayerFailureCode enum value
6985	LayerFailureCodeInvalidLayerDigest = "InvalidLayerDigest"
6986
6987	// LayerFailureCodeMissingLayerDigest is a LayerFailureCode enum value
6988	LayerFailureCodeMissingLayerDigest = "MissingLayerDigest"
6989)
6990
6991// LayerFailureCode_Values returns all elements of the LayerFailureCode enum
6992func LayerFailureCode_Values() []string {
6993	return []string{
6994		LayerFailureCodeInvalidLayerDigest,
6995		LayerFailureCodeMissingLayerDigest,
6996	}
6997}
6998
6999const (
7000	// RegistryAliasStatusActive is a RegistryAliasStatus enum value
7001	RegistryAliasStatusActive = "ACTIVE"
7002
7003	// RegistryAliasStatusPending is a RegistryAliasStatus enum value
7004	RegistryAliasStatusPending = "PENDING"
7005
7006	// RegistryAliasStatusRejected is a RegistryAliasStatus enum value
7007	RegistryAliasStatusRejected = "REJECTED"
7008)
7009
7010// RegistryAliasStatus_Values returns all elements of the RegistryAliasStatus enum
7011func RegistryAliasStatus_Values() []string {
7012	return []string{
7013		RegistryAliasStatusActive,
7014		RegistryAliasStatusPending,
7015		RegistryAliasStatusRejected,
7016	}
7017}
7018