1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package acm
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 opAddTagsToCertificate = "AddTagsToCertificate"
17
18// AddTagsToCertificateRequest generates a "aws/request.Request" representing the
19// client's request for the AddTagsToCertificate 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 AddTagsToCertificate for more information on using the AddTagsToCertificate
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 AddTagsToCertificateRequest method.
34//    req, resp := client.AddTagsToCertificateRequest(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/acm-2015-12-08/AddTagsToCertificate
42func (c *ACM) AddTagsToCertificateRequest(input *AddTagsToCertificateInput) (req *request.Request, output *AddTagsToCertificateOutput) {
43	op := &request.Operation{
44		Name:       opAddTagsToCertificate,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AddTagsToCertificateInput{}
51	}
52
53	output = &AddTagsToCertificateOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AddTagsToCertificate API operation for AWS Certificate Manager.
60//
61// Adds one or more tags to an ACM certificate. Tags are labels that you can
62// use to identify and organize your Amazon Web Services resources. Each tag
63// consists of a key and an optional value. You specify the certificate on input
64// by its Amazon Resource Name (ARN). You specify the tag by using a key-value
65// pair.
66//
67// You can apply a tag to just one certificate if you want to identify a specific
68// characteristic of that certificate, or you can apply the same tag to multiple
69// certificates if you want to filter for a common relationship among those
70// certificates. Similarly, you can apply the same tag to multiple resources
71// if you want to specify a relationship among those resources. For example,
72// you can add the same tag to an ACM certificate and an Elastic Load Balancing
73// load balancer to indicate that they are both used by the same website. For
74// more information, see Tagging ACM certificates (https://docs.aws.amazon.com/acm/latest/userguide/tags.html).
75//
76// To remove one or more tags, use the RemoveTagsFromCertificate action. To
77// view all of the tags that have been applied to the certificate, use the ListTagsForCertificate
78// action.
79//
80// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
81// with awserr.Error's Code and Message methods to get detailed information about
82// the error.
83//
84// See the AWS API reference guide for AWS Certificate Manager's
85// API operation AddTagsToCertificate for usage and error information.
86//
87// Returned Error Types:
88//   * ResourceNotFoundException
89//   The specified certificate cannot be found in the caller's account or the
90//   caller's account cannot be found.
91//
92//   * InvalidArnException
93//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
94//
95//   * InvalidTagException
96//   One or both of the values that make up the key-value pair is not valid. For
97//   example, you cannot specify a tag value that begins with aws:.
98//
99//   * TooManyTagsException
100//   The request contains too many tags. Try the request again with fewer tags.
101//
102//   * TagPolicyException
103//   A specified tag did not comply with an existing tag policy and was rejected.
104//
105//   * InvalidParameterException
106//   An input parameter was invalid.
107//
108//   * ThrottlingException
109//   The request was denied because it exceeded a quota.
110//
111// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/AddTagsToCertificate
112func (c *ACM) AddTagsToCertificate(input *AddTagsToCertificateInput) (*AddTagsToCertificateOutput, error) {
113	req, out := c.AddTagsToCertificateRequest(input)
114	return out, req.Send()
115}
116
117// AddTagsToCertificateWithContext is the same as AddTagsToCertificate with the addition of
118// the ability to pass a context and additional request options.
119//
120// See AddTagsToCertificate for details on how to use this API operation.
121//
122// The context must be non-nil and will be used for request cancellation. If
123// the context is nil a panic will occur. In the future the SDK may create
124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
125// for more information on using Contexts.
126func (c *ACM) AddTagsToCertificateWithContext(ctx aws.Context, input *AddTagsToCertificateInput, opts ...request.Option) (*AddTagsToCertificateOutput, error) {
127	req, out := c.AddTagsToCertificateRequest(input)
128	req.SetContext(ctx)
129	req.ApplyOptions(opts...)
130	return out, req.Send()
131}
132
133const opDeleteCertificate = "DeleteCertificate"
134
135// DeleteCertificateRequest generates a "aws/request.Request" representing the
136// client's request for the DeleteCertificate operation. The "output" return
137// value will be populated with the request's response once the request completes
138// successfully.
139//
140// Use "Send" method on the returned Request to send the API call to the service.
141// the "output" return value is not valid until after Send returns without error.
142//
143// See DeleteCertificate for more information on using the DeleteCertificate
144// API call, and error handling.
145//
146// This method is useful when you want to inject custom logic or configuration
147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
148//
149//
150//    // Example sending a request using the DeleteCertificateRequest method.
151//    req, resp := client.DeleteCertificateRequest(params)
152//
153//    err := req.Send()
154//    if err == nil { // resp is now filled
155//        fmt.Println(resp)
156//    }
157//
158// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificate
159func (c *ACM) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
160	op := &request.Operation{
161		Name:       opDeleteCertificate,
162		HTTPMethod: "POST",
163		HTTPPath:   "/",
164	}
165
166	if input == nil {
167		input = &DeleteCertificateInput{}
168	}
169
170	output = &DeleteCertificateOutput{}
171	req = c.newRequest(op, input, output)
172	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
173	return
174}
175
176// DeleteCertificate API operation for AWS Certificate Manager.
177//
178// Deletes a certificate and its associated private key. If this action succeeds,
179// the certificate no longer appears in the list that can be displayed by calling
180// the ListCertificates action or be retrieved by calling the GetCertificate
181// action. The certificate will not be available for use by Amazon Web Services
182// services integrated with ACM.
183//
184// You cannot delete an ACM certificate that is being used by another Amazon
185// Web Services service. To delete a certificate that is in use, the certificate
186// association must first be removed.
187//
188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
189// with awserr.Error's Code and Message methods to get detailed information about
190// the error.
191//
192// See the AWS API reference guide for AWS Certificate Manager's
193// API operation DeleteCertificate for usage and error information.
194//
195// Returned Error Types:
196//   * ResourceNotFoundException
197//   The specified certificate cannot be found in the caller's account or the
198//   caller's account cannot be found.
199//
200//   * ResourceInUseException
201//   The certificate is in use by another Amazon Web Services service in the caller's
202//   account. Remove the association and try again.
203//
204//   * InvalidArnException
205//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
206//
207// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificate
208func (c *ACM) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
209	req, out := c.DeleteCertificateRequest(input)
210	return out, req.Send()
211}
212
213// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
214// the ability to pass a context and additional request options.
215//
216// See DeleteCertificate for details on how to use this API operation.
217//
218// The context must be non-nil and will be used for request cancellation. If
219// the context is nil a panic will occur. In the future the SDK may create
220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
221// for more information on using Contexts.
222func (c *ACM) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
223	req, out := c.DeleteCertificateRequest(input)
224	req.SetContext(ctx)
225	req.ApplyOptions(opts...)
226	return out, req.Send()
227}
228
229const opDescribeCertificate = "DescribeCertificate"
230
231// DescribeCertificateRequest generates a "aws/request.Request" representing the
232// client's request for the DescribeCertificate operation. The "output" return
233// value will be populated with the request's response once the request completes
234// successfully.
235//
236// Use "Send" method on the returned Request to send the API call to the service.
237// the "output" return value is not valid until after Send returns without error.
238//
239// See DescribeCertificate for more information on using the DescribeCertificate
240// API call, and error handling.
241//
242// This method is useful when you want to inject custom logic or configuration
243// into the SDK's request lifecycle. Such as custom headers, or retry logic.
244//
245//
246//    // Example sending a request using the DescribeCertificateRequest method.
247//    req, resp := client.DescribeCertificateRequest(params)
248//
249//    err := req.Send()
250//    if err == nil { // resp is now filled
251//        fmt.Println(resp)
252//    }
253//
254// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificate
255func (c *ACM) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
256	op := &request.Operation{
257		Name:       opDescribeCertificate,
258		HTTPMethod: "POST",
259		HTTPPath:   "/",
260	}
261
262	if input == nil {
263		input = &DescribeCertificateInput{}
264	}
265
266	output = &DescribeCertificateOutput{}
267	req = c.newRequest(op, input, output)
268	return
269}
270
271// DescribeCertificate API operation for AWS Certificate Manager.
272//
273// Returns detailed metadata about the specified ACM certificate.
274//
275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
276// with awserr.Error's Code and Message methods to get detailed information about
277// the error.
278//
279// See the AWS API reference guide for AWS Certificate Manager's
280// API operation DescribeCertificate for usage and error information.
281//
282// Returned Error Types:
283//   * ResourceNotFoundException
284//   The specified certificate cannot be found in the caller's account or the
285//   caller's account cannot be found.
286//
287//   * InvalidArnException
288//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
289//
290// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificate
291func (c *ACM) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
292	req, out := c.DescribeCertificateRequest(input)
293	return out, req.Send()
294}
295
296// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
297// the ability to pass a context and additional request options.
298//
299// See DescribeCertificate for details on how to use this API operation.
300//
301// The context must be non-nil and will be used for request cancellation. If
302// the context is nil a panic will occur. In the future the SDK may create
303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
304// for more information on using Contexts.
305func (c *ACM) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
306	req, out := c.DescribeCertificateRequest(input)
307	req.SetContext(ctx)
308	req.ApplyOptions(opts...)
309	return out, req.Send()
310}
311
312const opExportCertificate = "ExportCertificate"
313
314// ExportCertificateRequest generates a "aws/request.Request" representing the
315// client's request for the ExportCertificate operation. The "output" return
316// value will be populated with the request's response once the request completes
317// successfully.
318//
319// Use "Send" method on the returned Request to send the API call to the service.
320// the "output" return value is not valid until after Send returns without error.
321//
322// See ExportCertificate for more information on using the ExportCertificate
323// API call, and error handling.
324//
325// This method is useful when you want to inject custom logic or configuration
326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
327//
328//
329//    // Example sending a request using the ExportCertificateRequest method.
330//    req, resp := client.ExportCertificateRequest(params)
331//
332//    err := req.Send()
333//    if err == nil { // resp is now filled
334//        fmt.Println(resp)
335//    }
336//
337// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExportCertificate
338func (c *ACM) ExportCertificateRequest(input *ExportCertificateInput) (req *request.Request, output *ExportCertificateOutput) {
339	op := &request.Operation{
340		Name:       opExportCertificate,
341		HTTPMethod: "POST",
342		HTTPPath:   "/",
343	}
344
345	if input == nil {
346		input = &ExportCertificateInput{}
347	}
348
349	output = &ExportCertificateOutput{}
350	req = c.newRequest(op, input, output)
351	return
352}
353
354// ExportCertificate API operation for AWS Certificate Manager.
355//
356// Exports a private certificate issued by a private certificate authority (CA)
357// for use anywhere. The exported file contains the certificate, the certificate
358// chain, and the encrypted private 2048-bit RSA key associated with the public
359// key that is embedded in the certificate. For security, you must assign a
360// passphrase for the private key when exporting it.
361//
362// For information about exporting and formatting a certificate using the ACM
363// console or CLI, see Export a Private Certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html).
364//
365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
366// with awserr.Error's Code and Message methods to get detailed information about
367// the error.
368//
369// See the AWS API reference guide for AWS Certificate Manager's
370// API operation ExportCertificate for usage and error information.
371//
372// Returned Error Types:
373//   * ResourceNotFoundException
374//   The specified certificate cannot be found in the caller's account or the
375//   caller's account cannot be found.
376//
377//   * RequestInProgressException
378//   The certificate request is in process and the certificate in your account
379//   has not yet been issued.
380//
381//   * InvalidArnException
382//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
383//
384// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExportCertificate
385func (c *ACM) ExportCertificate(input *ExportCertificateInput) (*ExportCertificateOutput, error) {
386	req, out := c.ExportCertificateRequest(input)
387	return out, req.Send()
388}
389
390// ExportCertificateWithContext is the same as ExportCertificate with the addition of
391// the ability to pass a context and additional request options.
392//
393// See ExportCertificate for details on how to use this API operation.
394//
395// The context must be non-nil and will be used for request cancellation. If
396// the context is nil a panic will occur. In the future the SDK may create
397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
398// for more information on using Contexts.
399func (c *ACM) ExportCertificateWithContext(ctx aws.Context, input *ExportCertificateInput, opts ...request.Option) (*ExportCertificateOutput, error) {
400	req, out := c.ExportCertificateRequest(input)
401	req.SetContext(ctx)
402	req.ApplyOptions(opts...)
403	return out, req.Send()
404}
405
406const opGetAccountConfiguration = "GetAccountConfiguration"
407
408// GetAccountConfigurationRequest generates a "aws/request.Request" representing the
409// client's request for the GetAccountConfiguration operation. The "output" return
410// value will be populated with the request's response once the request completes
411// successfully.
412//
413// Use "Send" method on the returned Request to send the API call to the service.
414// the "output" return value is not valid until after Send returns without error.
415//
416// See GetAccountConfiguration for more information on using the GetAccountConfiguration
417// API call, and error handling.
418//
419// This method is useful when you want to inject custom logic or configuration
420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
421//
422//
423//    // Example sending a request using the GetAccountConfigurationRequest method.
424//    req, resp := client.GetAccountConfigurationRequest(params)
425//
426//    err := req.Send()
427//    if err == nil { // resp is now filled
428//        fmt.Println(resp)
429//    }
430//
431// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetAccountConfiguration
432func (c *ACM) GetAccountConfigurationRequest(input *GetAccountConfigurationInput) (req *request.Request, output *GetAccountConfigurationOutput) {
433	op := &request.Operation{
434		Name:       opGetAccountConfiguration,
435		HTTPMethod: "POST",
436		HTTPPath:   "/",
437	}
438
439	if input == nil {
440		input = &GetAccountConfigurationInput{}
441	}
442
443	output = &GetAccountConfigurationOutput{}
444	req = c.newRequest(op, input, output)
445	return
446}
447
448// GetAccountConfiguration API operation for AWS Certificate Manager.
449//
450// Returns the account configuration options associated with an Amazon Web Services
451// account.
452//
453// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
454// with awserr.Error's Code and Message methods to get detailed information about
455// the error.
456//
457// See the AWS API reference guide for AWS Certificate Manager's
458// API operation GetAccountConfiguration for usage and error information.
459//
460// Returned Error Types:
461//   * AccessDeniedException
462//   You do not have access required to perform this action.
463//
464//   * ThrottlingException
465//   The request was denied because it exceeded a quota.
466//
467// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetAccountConfiguration
468func (c *ACM) GetAccountConfiguration(input *GetAccountConfigurationInput) (*GetAccountConfigurationOutput, error) {
469	req, out := c.GetAccountConfigurationRequest(input)
470	return out, req.Send()
471}
472
473// GetAccountConfigurationWithContext is the same as GetAccountConfiguration with the addition of
474// the ability to pass a context and additional request options.
475//
476// See GetAccountConfiguration for details on how to use this API operation.
477//
478// The context must be non-nil and will be used for request cancellation. If
479// the context is nil a panic will occur. In the future the SDK may create
480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
481// for more information on using Contexts.
482func (c *ACM) GetAccountConfigurationWithContext(ctx aws.Context, input *GetAccountConfigurationInput, opts ...request.Option) (*GetAccountConfigurationOutput, error) {
483	req, out := c.GetAccountConfigurationRequest(input)
484	req.SetContext(ctx)
485	req.ApplyOptions(opts...)
486	return out, req.Send()
487}
488
489const opGetCertificate = "GetCertificate"
490
491// GetCertificateRequest generates a "aws/request.Request" representing the
492// client's request for the GetCertificate operation. The "output" return
493// value will be populated with the request's response once the request completes
494// successfully.
495//
496// Use "Send" method on the returned Request to send the API call to the service.
497// the "output" return value is not valid until after Send returns without error.
498//
499// See GetCertificate for more information on using the GetCertificate
500// API call, and error handling.
501//
502// This method is useful when you want to inject custom logic or configuration
503// into the SDK's request lifecycle. Such as custom headers, or retry logic.
504//
505//
506//    // Example sending a request using the GetCertificateRequest method.
507//    req, resp := client.GetCertificateRequest(params)
508//
509//    err := req.Send()
510//    if err == nil { // resp is now filled
511//        fmt.Println(resp)
512//    }
513//
514// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificate
515func (c *ACM) GetCertificateRequest(input *GetCertificateInput) (req *request.Request, output *GetCertificateOutput) {
516	op := &request.Operation{
517		Name:       opGetCertificate,
518		HTTPMethod: "POST",
519		HTTPPath:   "/",
520	}
521
522	if input == nil {
523		input = &GetCertificateInput{}
524	}
525
526	output = &GetCertificateOutput{}
527	req = c.newRequest(op, input, output)
528	return
529}
530
531// GetCertificate API operation for AWS Certificate Manager.
532//
533// Retrieves an Amazon-issued certificate and its certificate chain. The chain
534// consists of the certificate of the issuing CA and the intermediate certificates
535// of any other subordinate CAs. All of the certificates are base64 encoded.
536// You can use OpenSSL (https://wiki.openssl.org/index.php/Command_Line_Utilities)
537// to decode the certificates and inspect individual fields.
538//
539// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
540// with awserr.Error's Code and Message methods to get detailed information about
541// the error.
542//
543// See the AWS API reference guide for AWS Certificate Manager's
544// API operation GetCertificate for usage and error information.
545//
546// Returned Error Types:
547//   * ResourceNotFoundException
548//   The specified certificate cannot be found in the caller's account or the
549//   caller's account cannot be found.
550//
551//   * RequestInProgressException
552//   The certificate request is in process and the certificate in your account
553//   has not yet been issued.
554//
555//   * InvalidArnException
556//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
557//
558// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificate
559func (c *ACM) GetCertificate(input *GetCertificateInput) (*GetCertificateOutput, error) {
560	req, out := c.GetCertificateRequest(input)
561	return out, req.Send()
562}
563
564// GetCertificateWithContext is the same as GetCertificate with the addition of
565// the ability to pass a context and additional request options.
566//
567// See GetCertificate for details on how to use this API operation.
568//
569// The context must be non-nil and will be used for request cancellation. If
570// the context is nil a panic will occur. In the future the SDK may create
571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
572// for more information on using Contexts.
573func (c *ACM) GetCertificateWithContext(ctx aws.Context, input *GetCertificateInput, opts ...request.Option) (*GetCertificateOutput, error) {
574	req, out := c.GetCertificateRequest(input)
575	req.SetContext(ctx)
576	req.ApplyOptions(opts...)
577	return out, req.Send()
578}
579
580const opImportCertificate = "ImportCertificate"
581
582// ImportCertificateRequest generates a "aws/request.Request" representing the
583// client's request for the ImportCertificate operation. The "output" return
584// value will be populated with the request's response once the request completes
585// successfully.
586//
587// Use "Send" method on the returned Request to send the API call to the service.
588// the "output" return value is not valid until after Send returns without error.
589//
590// See ImportCertificate for more information on using the ImportCertificate
591// API call, and error handling.
592//
593// This method is useful when you want to inject custom logic or configuration
594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
595//
596//
597//    // Example sending a request using the ImportCertificateRequest method.
598//    req, resp := client.ImportCertificateRequest(params)
599//
600//    err := req.Send()
601//    if err == nil { // resp is now filled
602//        fmt.Println(resp)
603//    }
604//
605// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificate
606func (c *ACM) ImportCertificateRequest(input *ImportCertificateInput) (req *request.Request, output *ImportCertificateOutput) {
607	op := &request.Operation{
608		Name:       opImportCertificate,
609		HTTPMethod: "POST",
610		HTTPPath:   "/",
611	}
612
613	if input == nil {
614		input = &ImportCertificateInput{}
615	}
616
617	output = &ImportCertificateOutput{}
618	req = c.newRequest(op, input, output)
619	return
620}
621
622// ImportCertificate API operation for AWS Certificate Manager.
623//
624// Imports a certificate into Amazon Web Services Certificate Manager (ACM)
625// to use with services that are integrated with ACM. Note that integrated services
626// (https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html) allow
627// only certificate types and keys they support to be associated with their
628// resources. Further, their support differs depending on whether the certificate
629// is imported into IAM or into ACM. For more information, see the documentation
630// for each service. For more information about importing certificates into
631// ACM, see Importing Certificates (https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)
632// in the Amazon Web Services Certificate Manager User Guide.
633//
634// ACM does not provide managed renewal (https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html)
635// for certificates that you import.
636//
637// Note the following guidelines when importing third party certificates:
638//
639//    * You must enter the private key that matches the certificate you are
640//    importing.
641//
642//    * The private key must be unencrypted. You cannot import a private key
643//    that is protected by a password or a passphrase.
644//
645//    * The private key must be no larger than 5 KB (5,120 bytes).
646//
647//    * If the certificate you are importing is not self-signed, you must enter
648//    its certificate chain.
649//
650//    * If a certificate chain is included, the issuer must be the subject of
651//    one of the certificates in the chain.
652//
653//    * The certificate, private key, and certificate chain must be PEM-encoded.
654//
655//    * The current time must be between the Not Before and Not After certificate
656//    fields.
657//
658//    * The Issuer field must not be empty.
659//
660//    * The OCSP authority URL, if present, must not exceed 1000 characters.
661//
662//    * To import a new certificate, omit the CertificateArn argument. Include
663//    this argument only when you want to replace a previously imported certificate.
664//
665//    * When you import a certificate by using the CLI, you must specify the
666//    certificate, the certificate chain, and the private key by their file
667//    names preceded by fileb://. For example, you can specify a certificate
668//    saved in the C:\temp folder as fileb://C:\temp\certificate_to_import.pem.
669//    If you are making an HTTP or HTTPS Query request, include these arguments
670//    as BLOBs.
671//
672//    * When you import a certificate by using an SDK, you must specify the
673//    certificate, the certificate chain, and the private key files in the manner
674//    required by the programming language you're using.
675//
676//    * The cryptographic algorithm of an imported certificate must match the
677//    algorithm of the signing CA. For example, if the signing CA key type is
678//    RSA, then the certificate key type must also be RSA.
679//
680// This operation returns the Amazon Resource Name (ARN) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
681// of the imported certificate.
682//
683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
684// with awserr.Error's Code and Message methods to get detailed information about
685// the error.
686//
687// See the AWS API reference guide for AWS Certificate Manager's
688// API operation ImportCertificate for usage and error information.
689//
690// Returned Error Types:
691//   * ResourceNotFoundException
692//   The specified certificate cannot be found in the caller's account or the
693//   caller's account cannot be found.
694//
695//   * LimitExceededException
696//   An ACM quota has been exceeded.
697//
698//   * InvalidTagException
699//   One or both of the values that make up the key-value pair is not valid. For
700//   example, you cannot specify a tag value that begins with aws:.
701//
702//   * TooManyTagsException
703//   The request contains too many tags. Try the request again with fewer tags.
704//
705//   * TagPolicyException
706//   A specified tag did not comply with an existing tag policy and was rejected.
707//
708//   * InvalidParameterException
709//   An input parameter was invalid.
710//
711//   * InvalidArnException
712//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
713//
714// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificate
715func (c *ACM) ImportCertificate(input *ImportCertificateInput) (*ImportCertificateOutput, error) {
716	req, out := c.ImportCertificateRequest(input)
717	return out, req.Send()
718}
719
720// ImportCertificateWithContext is the same as ImportCertificate with the addition of
721// the ability to pass a context and additional request options.
722//
723// See ImportCertificate for details on how to use this API operation.
724//
725// The context must be non-nil and will be used for request cancellation. If
726// the context is nil a panic will occur. In the future the SDK may create
727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
728// for more information on using Contexts.
729func (c *ACM) ImportCertificateWithContext(ctx aws.Context, input *ImportCertificateInput, opts ...request.Option) (*ImportCertificateOutput, error) {
730	req, out := c.ImportCertificateRequest(input)
731	req.SetContext(ctx)
732	req.ApplyOptions(opts...)
733	return out, req.Send()
734}
735
736const opListCertificates = "ListCertificates"
737
738// ListCertificatesRequest generates a "aws/request.Request" representing the
739// client's request for the ListCertificates operation. The "output" return
740// value will be populated with the request's response once the request completes
741// successfully.
742//
743// Use "Send" method on the returned Request to send the API call to the service.
744// the "output" return value is not valid until after Send returns without error.
745//
746// See ListCertificates for more information on using the ListCertificates
747// API call, and error handling.
748//
749// This method is useful when you want to inject custom logic or configuration
750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
751//
752//
753//    // Example sending a request using the ListCertificatesRequest method.
754//    req, resp := client.ListCertificatesRequest(params)
755//
756//    err := req.Send()
757//    if err == nil { // resp is now filled
758//        fmt.Println(resp)
759//    }
760//
761// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificates
762func (c *ACM) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
763	op := &request.Operation{
764		Name:       opListCertificates,
765		HTTPMethod: "POST",
766		HTTPPath:   "/",
767		Paginator: &request.Paginator{
768			InputTokens:     []string{"NextToken"},
769			OutputTokens:    []string{"NextToken"},
770			LimitToken:      "MaxItems",
771			TruncationToken: "",
772		},
773	}
774
775	if input == nil {
776		input = &ListCertificatesInput{}
777	}
778
779	output = &ListCertificatesOutput{}
780	req = c.newRequest(op, input, output)
781	return
782}
783
784// ListCertificates API operation for AWS Certificate Manager.
785//
786// Retrieves a list of certificate ARNs and domain names. You can request that
787// only certificates that match a specific status be listed. You can also filter
788// by specific attributes of the certificate. Default filtering returns only
789// RSA_2048 certificates. For more information, see Filters.
790//
791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
792// with awserr.Error's Code and Message methods to get detailed information about
793// the error.
794//
795// See the AWS API reference guide for AWS Certificate Manager's
796// API operation ListCertificates for usage and error information.
797//
798// Returned Error Types:
799//   * InvalidArgsException
800//   One or more of of request parameters specified is not valid.
801//
802// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificates
803func (c *ACM) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
804	req, out := c.ListCertificatesRequest(input)
805	return out, req.Send()
806}
807
808// ListCertificatesWithContext is the same as ListCertificates with the addition of
809// the ability to pass a context and additional request options.
810//
811// See ListCertificates for details on how to use this API operation.
812//
813// The context must be non-nil and will be used for request cancellation. If
814// the context is nil a panic will occur. In the future the SDK may create
815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
816// for more information on using Contexts.
817func (c *ACM) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
818	req, out := c.ListCertificatesRequest(input)
819	req.SetContext(ctx)
820	req.ApplyOptions(opts...)
821	return out, req.Send()
822}
823
824// ListCertificatesPages iterates over the pages of a ListCertificates operation,
825// calling the "fn" function with the response data for each page. To stop
826// iterating, return false from the fn function.
827//
828// See ListCertificates method for more information on how to use this operation.
829//
830// Note: This operation can generate multiple requests to a service.
831//
832//    // Example iterating over at most 3 pages of a ListCertificates operation.
833//    pageNum := 0
834//    err := client.ListCertificatesPages(params,
835//        func(page *acm.ListCertificatesOutput, lastPage bool) bool {
836//            pageNum++
837//            fmt.Println(page)
838//            return pageNum <= 3
839//        })
840//
841func (c *ACM) ListCertificatesPages(input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool) error {
842	return c.ListCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
843}
844
845// ListCertificatesPagesWithContext same as ListCertificatesPages except
846// it takes a Context and allows setting request options on the pages.
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 *ACM) ListCertificatesPagesWithContext(ctx aws.Context, input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool, opts ...request.Option) error {
853	p := request.Pagination{
854		NewRequest: func() (*request.Request, error) {
855			var inCpy *ListCertificatesInput
856			if input != nil {
857				tmp := *input
858				inCpy = &tmp
859			}
860			req, _ := c.ListCertificatesRequest(inCpy)
861			req.SetContext(ctx)
862			req.ApplyOptions(opts...)
863			return req, nil
864		},
865	}
866
867	for p.Next() {
868		if !fn(p.Page().(*ListCertificatesOutput), !p.HasNextPage()) {
869			break
870		}
871	}
872
873	return p.Err()
874}
875
876const opListTagsForCertificate = "ListTagsForCertificate"
877
878// ListTagsForCertificateRequest generates a "aws/request.Request" representing the
879// client's request for the ListTagsForCertificate operation. The "output" return
880// value will be populated with the request's response once the request completes
881// successfully.
882//
883// Use "Send" method on the returned Request to send the API call to the service.
884// the "output" return value is not valid until after Send returns without error.
885//
886// See ListTagsForCertificate for more information on using the ListTagsForCertificate
887// API call, and error handling.
888//
889// This method is useful when you want to inject custom logic or configuration
890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
891//
892//
893//    // Example sending a request using the ListTagsForCertificateRequest method.
894//    req, resp := client.ListTagsForCertificateRequest(params)
895//
896//    err := req.Send()
897//    if err == nil { // resp is now filled
898//        fmt.Println(resp)
899//    }
900//
901// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificate
902func (c *ACM) ListTagsForCertificateRequest(input *ListTagsForCertificateInput) (req *request.Request, output *ListTagsForCertificateOutput) {
903	op := &request.Operation{
904		Name:       opListTagsForCertificate,
905		HTTPMethod: "POST",
906		HTTPPath:   "/",
907	}
908
909	if input == nil {
910		input = &ListTagsForCertificateInput{}
911	}
912
913	output = &ListTagsForCertificateOutput{}
914	req = c.newRequest(op, input, output)
915	return
916}
917
918// ListTagsForCertificate API operation for AWS Certificate Manager.
919//
920// Lists the tags that have been applied to the ACM certificate. Use the certificate's
921// Amazon Resource Name (ARN) to specify the certificate. To add a tag to an
922// ACM certificate, use the AddTagsToCertificate action. To delete a tag, use
923// the RemoveTagsFromCertificate action.
924//
925// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
926// with awserr.Error's Code and Message methods to get detailed information about
927// the error.
928//
929// See the AWS API reference guide for AWS Certificate Manager's
930// API operation ListTagsForCertificate for usage and error information.
931//
932// Returned Error Types:
933//   * ResourceNotFoundException
934//   The specified certificate cannot be found in the caller's account or the
935//   caller's account cannot be found.
936//
937//   * InvalidArnException
938//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
939//
940// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificate
941func (c *ACM) ListTagsForCertificate(input *ListTagsForCertificateInput) (*ListTagsForCertificateOutput, error) {
942	req, out := c.ListTagsForCertificateRequest(input)
943	return out, req.Send()
944}
945
946// ListTagsForCertificateWithContext is the same as ListTagsForCertificate with the addition of
947// the ability to pass a context and additional request options.
948//
949// See ListTagsForCertificate for details on how to use this API operation.
950//
951// The context must be non-nil and will be used for request cancellation. If
952// the context is nil a panic will occur. In the future the SDK may create
953// sub-contexts for http.Requests. See https://golang.org/pkg/context/
954// for more information on using Contexts.
955func (c *ACM) ListTagsForCertificateWithContext(ctx aws.Context, input *ListTagsForCertificateInput, opts ...request.Option) (*ListTagsForCertificateOutput, error) {
956	req, out := c.ListTagsForCertificateRequest(input)
957	req.SetContext(ctx)
958	req.ApplyOptions(opts...)
959	return out, req.Send()
960}
961
962const opPutAccountConfiguration = "PutAccountConfiguration"
963
964// PutAccountConfigurationRequest generates a "aws/request.Request" representing the
965// client's request for the PutAccountConfiguration operation. The "output" return
966// value will be populated with the request's response once the request completes
967// successfully.
968//
969// Use "Send" method on the returned Request to send the API call to the service.
970// the "output" return value is not valid until after Send returns without error.
971//
972// See PutAccountConfiguration for more information on using the PutAccountConfiguration
973// API call, and error handling.
974//
975// This method is useful when you want to inject custom logic or configuration
976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
977//
978//
979//    // Example sending a request using the PutAccountConfigurationRequest method.
980//    req, resp := client.PutAccountConfigurationRequest(params)
981//
982//    err := req.Send()
983//    if err == nil { // resp is now filled
984//        fmt.Println(resp)
985//    }
986//
987// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/PutAccountConfiguration
988func (c *ACM) PutAccountConfigurationRequest(input *PutAccountConfigurationInput) (req *request.Request, output *PutAccountConfigurationOutput) {
989	op := &request.Operation{
990		Name:       opPutAccountConfiguration,
991		HTTPMethod: "POST",
992		HTTPPath:   "/",
993	}
994
995	if input == nil {
996		input = &PutAccountConfigurationInput{}
997	}
998
999	output = &PutAccountConfigurationOutput{}
1000	req = c.newRequest(op, input, output)
1001	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1002	return
1003}
1004
1005// PutAccountConfiguration API operation for AWS Certificate Manager.
1006//
1007// Adds or modifies account-level configurations in ACM.
1008//
1009// The supported configuration option is DaysBeforeExpiry. This option specifies
1010// the number of days prior to certificate expiration when ACM starts generating
1011// EventBridge events. ACM sends one event per day per certificate until the
1012// certificate expires. By default, accounts receive events starting 45 days
1013// before certificate expiration.
1014//
1015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1016// with awserr.Error's Code and Message methods to get detailed information about
1017// the error.
1018//
1019// See the AWS API reference guide for AWS Certificate Manager's
1020// API operation PutAccountConfiguration for usage and error information.
1021//
1022// Returned Error Types:
1023//   * ValidationException
1024//   The supplied input failed to satisfy constraints of an Amazon Web Services
1025//   service.
1026//
1027//   * ThrottlingException
1028//   The request was denied because it exceeded a quota.
1029//
1030//   * AccessDeniedException
1031//   You do not have access required to perform this action.
1032//
1033//   * ConflictException
1034//   You are trying to update a resource or configuration that is already being
1035//   created or updated. Wait for the previous operation to finish and try again.
1036//
1037// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/PutAccountConfiguration
1038func (c *ACM) PutAccountConfiguration(input *PutAccountConfigurationInput) (*PutAccountConfigurationOutput, error) {
1039	req, out := c.PutAccountConfigurationRequest(input)
1040	return out, req.Send()
1041}
1042
1043// PutAccountConfigurationWithContext is the same as PutAccountConfiguration with the addition of
1044// the ability to pass a context and additional request options.
1045//
1046// See PutAccountConfiguration for details on how to use this API operation.
1047//
1048// The context must be non-nil and will be used for request cancellation. If
1049// the context is nil a panic will occur. In the future the SDK may create
1050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1051// for more information on using Contexts.
1052func (c *ACM) PutAccountConfigurationWithContext(ctx aws.Context, input *PutAccountConfigurationInput, opts ...request.Option) (*PutAccountConfigurationOutput, error) {
1053	req, out := c.PutAccountConfigurationRequest(input)
1054	req.SetContext(ctx)
1055	req.ApplyOptions(opts...)
1056	return out, req.Send()
1057}
1058
1059const opRemoveTagsFromCertificate = "RemoveTagsFromCertificate"
1060
1061// RemoveTagsFromCertificateRequest generates a "aws/request.Request" representing the
1062// client's request for the RemoveTagsFromCertificate operation. The "output" return
1063// value will be populated with the request's response once the request completes
1064// successfully.
1065//
1066// Use "Send" method on the returned Request to send the API call to the service.
1067// the "output" return value is not valid until after Send returns without error.
1068//
1069// See RemoveTagsFromCertificate for more information on using the RemoveTagsFromCertificate
1070// API call, and error handling.
1071//
1072// This method is useful when you want to inject custom logic or configuration
1073// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1074//
1075//
1076//    // Example sending a request using the RemoveTagsFromCertificateRequest method.
1077//    req, resp := client.RemoveTagsFromCertificateRequest(params)
1078//
1079//    err := req.Send()
1080//    if err == nil { // resp is now filled
1081//        fmt.Println(resp)
1082//    }
1083//
1084// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificate
1085func (c *ACM) RemoveTagsFromCertificateRequest(input *RemoveTagsFromCertificateInput) (req *request.Request, output *RemoveTagsFromCertificateOutput) {
1086	op := &request.Operation{
1087		Name:       opRemoveTagsFromCertificate,
1088		HTTPMethod: "POST",
1089		HTTPPath:   "/",
1090	}
1091
1092	if input == nil {
1093		input = &RemoveTagsFromCertificateInput{}
1094	}
1095
1096	output = &RemoveTagsFromCertificateOutput{}
1097	req = c.newRequest(op, input, output)
1098	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1099	return
1100}
1101
1102// RemoveTagsFromCertificate API operation for AWS Certificate Manager.
1103//
1104// Remove one or more tags from an ACM certificate. A tag consists of a key-value
1105// pair. If you do not specify the value portion of the tag when calling this
1106// function, the tag will be removed regardless of value. If you specify a value,
1107// the tag is removed only if it is associated with the specified value.
1108//
1109// To add tags to a certificate, use the AddTagsToCertificate action. To view
1110// all of the tags that have been applied to a specific ACM certificate, use
1111// the ListTagsForCertificate action.
1112//
1113// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1114// with awserr.Error's Code and Message methods to get detailed information about
1115// the error.
1116//
1117// See the AWS API reference guide for AWS Certificate Manager's
1118// API operation RemoveTagsFromCertificate for usage and error information.
1119//
1120// Returned Error Types:
1121//   * ResourceNotFoundException
1122//   The specified certificate cannot be found in the caller's account or the
1123//   caller's account cannot be found.
1124//
1125//   * InvalidArnException
1126//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
1127//
1128//   * InvalidTagException
1129//   One or both of the values that make up the key-value pair is not valid. For
1130//   example, you cannot specify a tag value that begins with aws:.
1131//
1132//   * TagPolicyException
1133//   A specified tag did not comply with an existing tag policy and was rejected.
1134//
1135//   * InvalidParameterException
1136//   An input parameter was invalid.
1137//
1138//   * ThrottlingException
1139//   The request was denied because it exceeded a quota.
1140//
1141// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificate
1142func (c *ACM) RemoveTagsFromCertificate(input *RemoveTagsFromCertificateInput) (*RemoveTagsFromCertificateOutput, error) {
1143	req, out := c.RemoveTagsFromCertificateRequest(input)
1144	return out, req.Send()
1145}
1146
1147// RemoveTagsFromCertificateWithContext is the same as RemoveTagsFromCertificate with the addition of
1148// the ability to pass a context and additional request options.
1149//
1150// See RemoveTagsFromCertificate for details on how to use this API operation.
1151//
1152// The context must be non-nil and will be used for request cancellation. If
1153// the context is nil a panic will occur. In the future the SDK may create
1154// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1155// for more information on using Contexts.
1156func (c *ACM) RemoveTagsFromCertificateWithContext(ctx aws.Context, input *RemoveTagsFromCertificateInput, opts ...request.Option) (*RemoveTagsFromCertificateOutput, error) {
1157	req, out := c.RemoveTagsFromCertificateRequest(input)
1158	req.SetContext(ctx)
1159	req.ApplyOptions(opts...)
1160	return out, req.Send()
1161}
1162
1163const opRenewCertificate = "RenewCertificate"
1164
1165// RenewCertificateRequest generates a "aws/request.Request" representing the
1166// client's request for the RenewCertificate operation. The "output" return
1167// value will be populated with the request's response once the request completes
1168// successfully.
1169//
1170// Use "Send" method on the returned Request to send the API call to the service.
1171// the "output" return value is not valid until after Send returns without error.
1172//
1173// See RenewCertificate for more information on using the RenewCertificate
1174// API call, and error handling.
1175//
1176// This method is useful when you want to inject custom logic or configuration
1177// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1178//
1179//
1180//    // Example sending a request using the RenewCertificateRequest method.
1181//    req, resp := client.RenewCertificateRequest(params)
1182//
1183//    err := req.Send()
1184//    if err == nil { // resp is now filled
1185//        fmt.Println(resp)
1186//    }
1187//
1188// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RenewCertificate
1189func (c *ACM) RenewCertificateRequest(input *RenewCertificateInput) (req *request.Request, output *RenewCertificateOutput) {
1190	op := &request.Operation{
1191		Name:       opRenewCertificate,
1192		HTTPMethod: "POST",
1193		HTTPPath:   "/",
1194	}
1195
1196	if input == nil {
1197		input = &RenewCertificateInput{}
1198	}
1199
1200	output = &RenewCertificateOutput{}
1201	req = c.newRequest(op, input, output)
1202	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1203	return
1204}
1205
1206// RenewCertificate API operation for AWS Certificate Manager.
1207//
1208// Renews an eligible ACM certificate. At this time, only exported private certificates
1209// can be renewed with this operation. In order to renew your ACM PCA certificates
1210// with ACM, you must first grant the ACM service principal permission to do
1211// so (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaPermissions.html).
1212// For more information, see Testing Managed Renewal (https://docs.aws.amazon.com/acm/latest/userguide/manual-renewal.html)
1213// in the ACM User Guide.
1214//
1215// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1216// with awserr.Error's Code and Message methods to get detailed information about
1217// the error.
1218//
1219// See the AWS API reference guide for AWS Certificate Manager's
1220// API operation RenewCertificate for usage and error information.
1221//
1222// Returned Error Types:
1223//   * ResourceNotFoundException
1224//   The specified certificate cannot be found in the caller's account or the
1225//   caller's account cannot be found.
1226//
1227//   * InvalidArnException
1228//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
1229//
1230// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RenewCertificate
1231func (c *ACM) RenewCertificate(input *RenewCertificateInput) (*RenewCertificateOutput, error) {
1232	req, out := c.RenewCertificateRequest(input)
1233	return out, req.Send()
1234}
1235
1236// RenewCertificateWithContext is the same as RenewCertificate with the addition of
1237// the ability to pass a context and additional request options.
1238//
1239// See RenewCertificate for details on how to use this API operation.
1240//
1241// The context must be non-nil and will be used for request cancellation. If
1242// the context is nil a panic will occur. In the future the SDK may create
1243// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1244// for more information on using Contexts.
1245func (c *ACM) RenewCertificateWithContext(ctx aws.Context, input *RenewCertificateInput, opts ...request.Option) (*RenewCertificateOutput, error) {
1246	req, out := c.RenewCertificateRequest(input)
1247	req.SetContext(ctx)
1248	req.ApplyOptions(opts...)
1249	return out, req.Send()
1250}
1251
1252const opRequestCertificate = "RequestCertificate"
1253
1254// RequestCertificateRequest generates a "aws/request.Request" representing the
1255// client's request for the RequestCertificate operation. The "output" return
1256// value will be populated with the request's response once the request completes
1257// successfully.
1258//
1259// Use "Send" method on the returned Request to send the API call to the service.
1260// the "output" return value is not valid until after Send returns without error.
1261//
1262// See RequestCertificate for more information on using the RequestCertificate
1263// API call, and error handling.
1264//
1265// This method is useful when you want to inject custom logic or configuration
1266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1267//
1268//
1269//    // Example sending a request using the RequestCertificateRequest method.
1270//    req, resp := client.RequestCertificateRequest(params)
1271//
1272//    err := req.Send()
1273//    if err == nil { // resp is now filled
1274//        fmt.Println(resp)
1275//    }
1276//
1277// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificate
1278func (c *ACM) RequestCertificateRequest(input *RequestCertificateInput) (req *request.Request, output *RequestCertificateOutput) {
1279	op := &request.Operation{
1280		Name:       opRequestCertificate,
1281		HTTPMethod: "POST",
1282		HTTPPath:   "/",
1283	}
1284
1285	if input == nil {
1286		input = &RequestCertificateInput{}
1287	}
1288
1289	output = &RequestCertificateOutput{}
1290	req = c.newRequest(op, input, output)
1291	return
1292}
1293
1294// RequestCertificate API operation for AWS Certificate Manager.
1295//
1296// Requests an ACM certificate for use with other Amazon Web Services services.
1297// To request an ACM certificate, you must specify a fully qualified domain
1298// name (FQDN) in the DomainName parameter. You can also specify additional
1299// FQDNs in the SubjectAlternativeNames parameter.
1300//
1301// If you are requesting a private certificate, domain validation is not required.
1302// If you are requesting a public certificate, each domain name that you specify
1303// must be validated to verify that you own or control the domain. You can use
1304// DNS validation (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html)
1305// or email validation (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html).
1306// We recommend that you use DNS validation. ACM issues public certificates
1307// after receiving approval from the domain owner.
1308//
1309// ACM behavior differs from the https://tools.ietf.org/html/rfc6125#appendix-B.2
1310// (https://tools.ietf.org/html/rfc6125#appendix-B.2)RFC 6125 specification
1311// of the certificate validation process. first checks for a subject alternative
1312// name, and, if it finds one, ignores the common name (CN)
1313//
1314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1315// with awserr.Error's Code and Message methods to get detailed information about
1316// the error.
1317//
1318// See the AWS API reference guide for AWS Certificate Manager's
1319// API operation RequestCertificate for usage and error information.
1320//
1321// Returned Error Types:
1322//   * LimitExceededException
1323//   An ACM quota has been exceeded.
1324//
1325//   * InvalidDomainValidationOptionsException
1326//   One or more values in the DomainValidationOption structure is incorrect.
1327//
1328//   * InvalidArnException
1329//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
1330//
1331//   * InvalidTagException
1332//   One or both of the values that make up the key-value pair is not valid. For
1333//   example, you cannot specify a tag value that begins with aws:.
1334//
1335//   * TooManyTagsException
1336//   The request contains too many tags. Try the request again with fewer tags.
1337//
1338//   * TagPolicyException
1339//   A specified tag did not comply with an existing tag policy and was rejected.
1340//
1341//   * InvalidParameterException
1342//   An input parameter was invalid.
1343//
1344// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificate
1345func (c *ACM) RequestCertificate(input *RequestCertificateInput) (*RequestCertificateOutput, error) {
1346	req, out := c.RequestCertificateRequest(input)
1347	return out, req.Send()
1348}
1349
1350// RequestCertificateWithContext is the same as RequestCertificate with the addition of
1351// the ability to pass a context and additional request options.
1352//
1353// See RequestCertificate for details on how to use this API operation.
1354//
1355// The context must be non-nil and will be used for request cancellation. If
1356// the context is nil a panic will occur. In the future the SDK may create
1357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1358// for more information on using Contexts.
1359func (c *ACM) RequestCertificateWithContext(ctx aws.Context, input *RequestCertificateInput, opts ...request.Option) (*RequestCertificateOutput, error) {
1360	req, out := c.RequestCertificateRequest(input)
1361	req.SetContext(ctx)
1362	req.ApplyOptions(opts...)
1363	return out, req.Send()
1364}
1365
1366const opResendValidationEmail = "ResendValidationEmail"
1367
1368// ResendValidationEmailRequest generates a "aws/request.Request" representing the
1369// client's request for the ResendValidationEmail operation. The "output" return
1370// value will be populated with the request's response once the request completes
1371// successfully.
1372//
1373// Use "Send" method on the returned Request to send the API call to the service.
1374// the "output" return value is not valid until after Send returns without error.
1375//
1376// See ResendValidationEmail for more information on using the ResendValidationEmail
1377// API call, and error handling.
1378//
1379// This method is useful when you want to inject custom logic or configuration
1380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1381//
1382//
1383//    // Example sending a request using the ResendValidationEmailRequest method.
1384//    req, resp := client.ResendValidationEmailRequest(params)
1385//
1386//    err := req.Send()
1387//    if err == nil { // resp is now filled
1388//        fmt.Println(resp)
1389//    }
1390//
1391// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmail
1392func (c *ACM) ResendValidationEmailRequest(input *ResendValidationEmailInput) (req *request.Request, output *ResendValidationEmailOutput) {
1393	op := &request.Operation{
1394		Name:       opResendValidationEmail,
1395		HTTPMethod: "POST",
1396		HTTPPath:   "/",
1397	}
1398
1399	if input == nil {
1400		input = &ResendValidationEmailInput{}
1401	}
1402
1403	output = &ResendValidationEmailOutput{}
1404	req = c.newRequest(op, input, output)
1405	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1406	return
1407}
1408
1409// ResendValidationEmail API operation for AWS Certificate Manager.
1410//
1411// Resends the email that requests domain ownership validation. The domain owner
1412// or an authorized representative must approve the ACM certificate before it
1413// can be issued. The certificate can be approved by clicking a link in the
1414// mail to navigate to the Amazon certificate approval website and then clicking
1415// I Approve. However, the validation email can be blocked by spam filters.
1416// Therefore, if you do not receive the original mail, you can request that
1417// the mail be resent within 72 hours of requesting the ACM certificate. If
1418// more than 72 hours have elapsed since your original request or since your
1419// last attempt to resend validation mail, you must request a new certificate.
1420// For more information about setting up your contact email addresses, see Configure
1421// Email for your Domain (https://docs.aws.amazon.com/acm/latest/userguide/setup-email.html).
1422//
1423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1424// with awserr.Error's Code and Message methods to get detailed information about
1425// the error.
1426//
1427// See the AWS API reference guide for AWS Certificate Manager's
1428// API operation ResendValidationEmail for usage and error information.
1429//
1430// Returned Error Types:
1431//   * ResourceNotFoundException
1432//   The specified certificate cannot be found in the caller's account or the
1433//   caller's account cannot be found.
1434//
1435//   * InvalidStateException
1436//   Processing has reached an invalid state.
1437//
1438//   * InvalidArnException
1439//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
1440//
1441//   * InvalidDomainValidationOptionsException
1442//   One or more values in the DomainValidationOption structure is incorrect.
1443//
1444// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmail
1445func (c *ACM) ResendValidationEmail(input *ResendValidationEmailInput) (*ResendValidationEmailOutput, error) {
1446	req, out := c.ResendValidationEmailRequest(input)
1447	return out, req.Send()
1448}
1449
1450// ResendValidationEmailWithContext is the same as ResendValidationEmail with the addition of
1451// the ability to pass a context and additional request options.
1452//
1453// See ResendValidationEmail for details on how to use this API operation.
1454//
1455// The context must be non-nil and will be used for request cancellation. If
1456// the context is nil a panic will occur. In the future the SDK may create
1457// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1458// for more information on using Contexts.
1459func (c *ACM) ResendValidationEmailWithContext(ctx aws.Context, input *ResendValidationEmailInput, opts ...request.Option) (*ResendValidationEmailOutput, error) {
1460	req, out := c.ResendValidationEmailRequest(input)
1461	req.SetContext(ctx)
1462	req.ApplyOptions(opts...)
1463	return out, req.Send()
1464}
1465
1466const opUpdateCertificateOptions = "UpdateCertificateOptions"
1467
1468// UpdateCertificateOptionsRequest generates a "aws/request.Request" representing the
1469// client's request for the UpdateCertificateOptions operation. The "output" return
1470// value will be populated with the request's response once the request completes
1471// successfully.
1472//
1473// Use "Send" method on the returned Request to send the API call to the service.
1474// the "output" return value is not valid until after Send returns without error.
1475//
1476// See UpdateCertificateOptions for more information on using the UpdateCertificateOptions
1477// API call, and error handling.
1478//
1479// This method is useful when you want to inject custom logic or configuration
1480// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1481//
1482//
1483//    // Example sending a request using the UpdateCertificateOptionsRequest method.
1484//    req, resp := client.UpdateCertificateOptionsRequest(params)
1485//
1486//    err := req.Send()
1487//    if err == nil { // resp is now filled
1488//        fmt.Println(resp)
1489//    }
1490//
1491// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/UpdateCertificateOptions
1492func (c *ACM) UpdateCertificateOptionsRequest(input *UpdateCertificateOptionsInput) (req *request.Request, output *UpdateCertificateOptionsOutput) {
1493	op := &request.Operation{
1494		Name:       opUpdateCertificateOptions,
1495		HTTPMethod: "POST",
1496		HTTPPath:   "/",
1497	}
1498
1499	if input == nil {
1500		input = &UpdateCertificateOptionsInput{}
1501	}
1502
1503	output = &UpdateCertificateOptionsOutput{}
1504	req = c.newRequest(op, input, output)
1505	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1506	return
1507}
1508
1509// UpdateCertificateOptions API operation for AWS Certificate Manager.
1510//
1511// Updates a certificate. Currently, you can use this function to specify whether
1512// to opt in to or out of recording your certificate in a certificate transparency
1513// log. For more information, see Opting Out of Certificate Transparency Logging
1514// (https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency).
1515//
1516// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1517// with awserr.Error's Code and Message methods to get detailed information about
1518// the error.
1519//
1520// See the AWS API reference guide for AWS Certificate Manager's
1521// API operation UpdateCertificateOptions for usage and error information.
1522//
1523// Returned Error Types:
1524//   * ResourceNotFoundException
1525//   The specified certificate cannot be found in the caller's account or the
1526//   caller's account cannot be found.
1527//
1528//   * LimitExceededException
1529//   An ACM quota has been exceeded.
1530//
1531//   * InvalidStateException
1532//   Processing has reached an invalid state.
1533//
1534//   * InvalidArnException
1535//   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
1536//
1537// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/UpdateCertificateOptions
1538func (c *ACM) UpdateCertificateOptions(input *UpdateCertificateOptionsInput) (*UpdateCertificateOptionsOutput, error) {
1539	req, out := c.UpdateCertificateOptionsRequest(input)
1540	return out, req.Send()
1541}
1542
1543// UpdateCertificateOptionsWithContext is the same as UpdateCertificateOptions with the addition of
1544// the ability to pass a context and additional request options.
1545//
1546// See UpdateCertificateOptions for details on how to use this API operation.
1547//
1548// The context must be non-nil and will be used for request cancellation. If
1549// the context is nil a panic will occur. In the future the SDK may create
1550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1551// for more information on using Contexts.
1552func (c *ACM) UpdateCertificateOptionsWithContext(ctx aws.Context, input *UpdateCertificateOptionsInput, opts ...request.Option) (*UpdateCertificateOptionsOutput, error) {
1553	req, out := c.UpdateCertificateOptionsRequest(input)
1554	req.SetContext(ctx)
1555	req.ApplyOptions(opts...)
1556	return out, req.Send()
1557}
1558
1559// You do not have access required to perform this action.
1560type AccessDeniedException struct {
1561	_            struct{}                  `type:"structure"`
1562	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1563
1564	Message_ *string `locationName:"Message" type:"string"`
1565}
1566
1567// String returns the string representation.
1568//
1569// API parameter values that are decorated as "sensitive" in the API will not
1570// be included in the string output. The member name will be present, but the
1571// value will be replaced with "sensitive".
1572func (s AccessDeniedException) String() string {
1573	return awsutil.Prettify(s)
1574}
1575
1576// GoString returns the string representation.
1577//
1578// API parameter values that are decorated as "sensitive" in the API will not
1579// be included in the string output. The member name will be present, but the
1580// value will be replaced with "sensitive".
1581func (s AccessDeniedException) GoString() string {
1582	return s.String()
1583}
1584
1585func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
1586	return &AccessDeniedException{
1587		RespMetadata: v,
1588	}
1589}
1590
1591// Code returns the exception type name.
1592func (s *AccessDeniedException) Code() string {
1593	return "AccessDeniedException"
1594}
1595
1596// Message returns the exception's message.
1597func (s *AccessDeniedException) Message() string {
1598	if s.Message_ != nil {
1599		return *s.Message_
1600	}
1601	return ""
1602}
1603
1604// OrigErr always returns nil, satisfies awserr.Error interface.
1605func (s *AccessDeniedException) OrigErr() error {
1606	return nil
1607}
1608
1609func (s *AccessDeniedException) Error() string {
1610	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1611}
1612
1613// Status code returns the HTTP status code for the request's response error.
1614func (s *AccessDeniedException) StatusCode() int {
1615	return s.RespMetadata.StatusCode
1616}
1617
1618// RequestID returns the service's response RequestID for request.
1619func (s *AccessDeniedException) RequestID() string {
1620	return s.RespMetadata.RequestID
1621}
1622
1623type AddTagsToCertificateInput struct {
1624	_ struct{} `type:"structure"`
1625
1626	// String that contains the ARN of the ACM certificate to which the tag is to
1627	// be applied. This must be of the form:
1628	//
1629	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
1630	//
1631	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
1632	//
1633	// CertificateArn is a required field
1634	CertificateArn *string `min:"20" type:"string" required:"true"`
1635
1636	// The key-value pair that defines the tag. The tag value is optional.
1637	//
1638	// Tags is a required field
1639	Tags []*Tag `min:"1" type:"list" required:"true"`
1640}
1641
1642// String returns the string representation.
1643//
1644// API parameter values that are decorated as "sensitive" in the API will not
1645// be included in the string output. The member name will be present, but the
1646// value will be replaced with "sensitive".
1647func (s AddTagsToCertificateInput) String() string {
1648	return awsutil.Prettify(s)
1649}
1650
1651// GoString returns the string representation.
1652//
1653// API parameter values that are decorated as "sensitive" in the API will not
1654// be included in the string output. The member name will be present, but the
1655// value will be replaced with "sensitive".
1656func (s AddTagsToCertificateInput) GoString() string {
1657	return s.String()
1658}
1659
1660// Validate inspects the fields of the type to determine if they are valid.
1661func (s *AddTagsToCertificateInput) Validate() error {
1662	invalidParams := request.ErrInvalidParams{Context: "AddTagsToCertificateInput"}
1663	if s.CertificateArn == nil {
1664		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
1665	}
1666	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
1667		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
1668	}
1669	if s.Tags == nil {
1670		invalidParams.Add(request.NewErrParamRequired("Tags"))
1671	}
1672	if s.Tags != nil && len(s.Tags) < 1 {
1673		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
1674	}
1675	if s.Tags != nil {
1676		for i, v := range s.Tags {
1677			if v == nil {
1678				continue
1679			}
1680			if err := v.Validate(); err != nil {
1681				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
1682			}
1683		}
1684	}
1685
1686	if invalidParams.Len() > 0 {
1687		return invalidParams
1688	}
1689	return nil
1690}
1691
1692// SetCertificateArn sets the CertificateArn field's value.
1693func (s *AddTagsToCertificateInput) SetCertificateArn(v string) *AddTagsToCertificateInput {
1694	s.CertificateArn = &v
1695	return s
1696}
1697
1698// SetTags sets the Tags field's value.
1699func (s *AddTagsToCertificateInput) SetTags(v []*Tag) *AddTagsToCertificateInput {
1700	s.Tags = v
1701	return s
1702}
1703
1704type AddTagsToCertificateOutput struct {
1705	_ struct{} `type:"structure"`
1706}
1707
1708// String returns the string representation.
1709//
1710// API parameter values that are decorated as "sensitive" in the API will not
1711// be included in the string output. The member name will be present, but the
1712// value will be replaced with "sensitive".
1713func (s AddTagsToCertificateOutput) String() string {
1714	return awsutil.Prettify(s)
1715}
1716
1717// GoString returns the string representation.
1718//
1719// API parameter values that are decorated as "sensitive" in the API will not
1720// be included in the string output. The member name will be present, but the
1721// value will be replaced with "sensitive".
1722func (s AddTagsToCertificateOutput) GoString() string {
1723	return s.String()
1724}
1725
1726// Contains metadata about an ACM certificate. This structure is returned in
1727// the response to a DescribeCertificate request.
1728type CertificateDetail struct {
1729	_ struct{} `type:"structure"`
1730
1731	// The Amazon Resource Name (ARN) of the certificate. For more information about
1732	// ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
1733	// in the Amazon Web Services General Reference.
1734	CertificateArn *string `min:"20" type:"string"`
1735
1736	// The Amazon Resource Name (ARN) of the ACM PCA private certificate authority
1737	// (CA) that issued the certificate. This has the following format:
1738	//
1739	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
1740	CertificateAuthorityArn *string `min:"20" type:"string"`
1741
1742	// The time at which the certificate was requested.
1743	CreatedAt *time.Time `type:"timestamp"`
1744
1745	// The fully qualified domain name for the certificate, such as www.example.com
1746	// or example.com.
1747	DomainName *string `min:"1" type:"string"`
1748
1749	// Contains information about the initial validation of each domain name that
1750	// occurs as a result of the RequestCertificate request. This field exists only
1751	// when the certificate type is AMAZON_ISSUED.
1752	DomainValidationOptions []*DomainValidation `min:"1" type:"list"`
1753
1754	// Contains a list of Extended Key Usage X.509 v3 extension objects. Each object
1755	// specifies a purpose for which the certificate public key can be used and
1756	// consists of a name and an object identifier (OID).
1757	ExtendedKeyUsages []*ExtendedKeyUsage `type:"list"`
1758
1759	// The reason the certificate request failed. This value exists only when the
1760	// certificate status is FAILED. For more information, see Certificate Request
1761	// Failed (https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting.html#troubleshooting-failed)
1762	// in the Amazon Web Services Certificate Manager User Guide.
1763	FailureReason *string `type:"string" enum:"FailureReason"`
1764
1765	// The date and time at which the certificate was imported. This value exists
1766	// only when the certificate type is IMPORTED.
1767	ImportedAt *time.Time `type:"timestamp"`
1768
1769	// A list of ARNs for the Amazon Web Services resources that are using the certificate.
1770	// A certificate can be used by multiple Amazon Web Services resources.
1771	InUseBy []*string `type:"list"`
1772
1773	// The time at which the certificate was issued. This value exists only when
1774	// the certificate type is AMAZON_ISSUED.
1775	IssuedAt *time.Time `type:"timestamp"`
1776
1777	// The name of the certificate authority that issued and signed the certificate.
1778	Issuer *string `type:"string"`
1779
1780	// The algorithm that was used to generate the public-private key pair.
1781	KeyAlgorithm *string `type:"string" enum:"KeyAlgorithm"`
1782
1783	// A list of Key Usage X.509 v3 extension objects. Each object is a string value
1784	// that identifies the purpose of the public key contained in the certificate.
1785	// Possible extension values include DIGITAL_SIGNATURE, KEY_ENCHIPHERMENT, NON_REPUDIATION,
1786	// and more.
1787	KeyUsages []*KeyUsage `type:"list"`
1788
1789	// The time after which the certificate is not valid.
1790	NotAfter *time.Time `type:"timestamp"`
1791
1792	// The time before which the certificate is not valid.
1793	NotBefore *time.Time `type:"timestamp"`
1794
1795	// Value that specifies whether to add the certificate to a transparency log.
1796	// Certificate transparency makes it possible to detect SSL certificates that
1797	// have been mistakenly or maliciously issued. A browser might respond to certificate
1798	// that has not been logged by showing an error message. The logs are cryptographically
1799	// secure.
1800	Options *CertificateOptions `type:"structure"`
1801
1802	// Specifies whether the certificate is eligible for renewal. At this time,
1803	// only exported private certificates can be renewed with the RenewCertificate
1804	// command.
1805	RenewalEligibility *string `type:"string" enum:"RenewalEligibility"`
1806
1807	// Contains information about the status of ACM's managed renewal (https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html)
1808	// for the certificate. This field exists only when the certificate type is
1809	// AMAZON_ISSUED.
1810	RenewalSummary *RenewalSummary `type:"structure"`
1811
1812	// The reason the certificate was revoked. This value exists only when the certificate
1813	// status is REVOKED.
1814	RevocationReason *string `type:"string" enum:"RevocationReason"`
1815
1816	// The time at which the certificate was revoked. This value exists only when
1817	// the certificate status is REVOKED.
1818	RevokedAt *time.Time `type:"timestamp"`
1819
1820	// The serial number of the certificate.
1821	Serial *string `type:"string"`
1822
1823	// The algorithm that was used to sign the certificate.
1824	SignatureAlgorithm *string `type:"string"`
1825
1826	// The status of the certificate.
1827	Status *string `type:"string" enum:"CertificateStatus"`
1828
1829	// The name of the entity that is associated with the public key contained in
1830	// the certificate.
1831	Subject *string `type:"string"`
1832
1833	// One or more domain names (subject alternative names) included in the certificate.
1834	// This list contains the domain names that are bound to the public key that
1835	// is contained in the certificate. The subject alternative names include the
1836	// canonical domain name (CN) of the certificate and additional domain names
1837	// that can be used to connect to the website.
1838	SubjectAlternativeNames []*string `min:"1" type:"list"`
1839
1840	// The source of the certificate. For certificates provided by ACM, this value
1841	// is AMAZON_ISSUED. For certificates that you imported with ImportCertificate,
1842	// this value is IMPORTED. ACM does not provide managed renewal (https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html)
1843	// for imported certificates. For more information about the differences between
1844	// certificates that you import and those that ACM provides, see Importing Certificates
1845	// (https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)
1846	// in the Amazon Web Services Certificate Manager User Guide.
1847	Type *string `type:"string" enum:"CertificateType"`
1848}
1849
1850// String returns the string representation.
1851//
1852// API parameter values that are decorated as "sensitive" in the API will not
1853// be included in the string output. The member name will be present, but the
1854// value will be replaced with "sensitive".
1855func (s CertificateDetail) String() string {
1856	return awsutil.Prettify(s)
1857}
1858
1859// GoString returns the string representation.
1860//
1861// API parameter values that are decorated as "sensitive" in the API will not
1862// be included in the string output. The member name will be present, but the
1863// value will be replaced with "sensitive".
1864func (s CertificateDetail) GoString() string {
1865	return s.String()
1866}
1867
1868// SetCertificateArn sets the CertificateArn field's value.
1869func (s *CertificateDetail) SetCertificateArn(v string) *CertificateDetail {
1870	s.CertificateArn = &v
1871	return s
1872}
1873
1874// SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
1875func (s *CertificateDetail) SetCertificateAuthorityArn(v string) *CertificateDetail {
1876	s.CertificateAuthorityArn = &v
1877	return s
1878}
1879
1880// SetCreatedAt sets the CreatedAt field's value.
1881func (s *CertificateDetail) SetCreatedAt(v time.Time) *CertificateDetail {
1882	s.CreatedAt = &v
1883	return s
1884}
1885
1886// SetDomainName sets the DomainName field's value.
1887func (s *CertificateDetail) SetDomainName(v string) *CertificateDetail {
1888	s.DomainName = &v
1889	return s
1890}
1891
1892// SetDomainValidationOptions sets the DomainValidationOptions field's value.
1893func (s *CertificateDetail) SetDomainValidationOptions(v []*DomainValidation) *CertificateDetail {
1894	s.DomainValidationOptions = v
1895	return s
1896}
1897
1898// SetExtendedKeyUsages sets the ExtendedKeyUsages field's value.
1899func (s *CertificateDetail) SetExtendedKeyUsages(v []*ExtendedKeyUsage) *CertificateDetail {
1900	s.ExtendedKeyUsages = v
1901	return s
1902}
1903
1904// SetFailureReason sets the FailureReason field's value.
1905func (s *CertificateDetail) SetFailureReason(v string) *CertificateDetail {
1906	s.FailureReason = &v
1907	return s
1908}
1909
1910// SetImportedAt sets the ImportedAt field's value.
1911func (s *CertificateDetail) SetImportedAt(v time.Time) *CertificateDetail {
1912	s.ImportedAt = &v
1913	return s
1914}
1915
1916// SetInUseBy sets the InUseBy field's value.
1917func (s *CertificateDetail) SetInUseBy(v []*string) *CertificateDetail {
1918	s.InUseBy = v
1919	return s
1920}
1921
1922// SetIssuedAt sets the IssuedAt field's value.
1923func (s *CertificateDetail) SetIssuedAt(v time.Time) *CertificateDetail {
1924	s.IssuedAt = &v
1925	return s
1926}
1927
1928// SetIssuer sets the Issuer field's value.
1929func (s *CertificateDetail) SetIssuer(v string) *CertificateDetail {
1930	s.Issuer = &v
1931	return s
1932}
1933
1934// SetKeyAlgorithm sets the KeyAlgorithm field's value.
1935func (s *CertificateDetail) SetKeyAlgorithm(v string) *CertificateDetail {
1936	s.KeyAlgorithm = &v
1937	return s
1938}
1939
1940// SetKeyUsages sets the KeyUsages field's value.
1941func (s *CertificateDetail) SetKeyUsages(v []*KeyUsage) *CertificateDetail {
1942	s.KeyUsages = v
1943	return s
1944}
1945
1946// SetNotAfter sets the NotAfter field's value.
1947func (s *CertificateDetail) SetNotAfter(v time.Time) *CertificateDetail {
1948	s.NotAfter = &v
1949	return s
1950}
1951
1952// SetNotBefore sets the NotBefore field's value.
1953func (s *CertificateDetail) SetNotBefore(v time.Time) *CertificateDetail {
1954	s.NotBefore = &v
1955	return s
1956}
1957
1958// SetOptions sets the Options field's value.
1959func (s *CertificateDetail) SetOptions(v *CertificateOptions) *CertificateDetail {
1960	s.Options = v
1961	return s
1962}
1963
1964// SetRenewalEligibility sets the RenewalEligibility field's value.
1965func (s *CertificateDetail) SetRenewalEligibility(v string) *CertificateDetail {
1966	s.RenewalEligibility = &v
1967	return s
1968}
1969
1970// SetRenewalSummary sets the RenewalSummary field's value.
1971func (s *CertificateDetail) SetRenewalSummary(v *RenewalSummary) *CertificateDetail {
1972	s.RenewalSummary = v
1973	return s
1974}
1975
1976// SetRevocationReason sets the RevocationReason field's value.
1977func (s *CertificateDetail) SetRevocationReason(v string) *CertificateDetail {
1978	s.RevocationReason = &v
1979	return s
1980}
1981
1982// SetRevokedAt sets the RevokedAt field's value.
1983func (s *CertificateDetail) SetRevokedAt(v time.Time) *CertificateDetail {
1984	s.RevokedAt = &v
1985	return s
1986}
1987
1988// SetSerial sets the Serial field's value.
1989func (s *CertificateDetail) SetSerial(v string) *CertificateDetail {
1990	s.Serial = &v
1991	return s
1992}
1993
1994// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
1995func (s *CertificateDetail) SetSignatureAlgorithm(v string) *CertificateDetail {
1996	s.SignatureAlgorithm = &v
1997	return s
1998}
1999
2000// SetStatus sets the Status field's value.
2001func (s *CertificateDetail) SetStatus(v string) *CertificateDetail {
2002	s.Status = &v
2003	return s
2004}
2005
2006// SetSubject sets the Subject field's value.
2007func (s *CertificateDetail) SetSubject(v string) *CertificateDetail {
2008	s.Subject = &v
2009	return s
2010}
2011
2012// SetSubjectAlternativeNames sets the SubjectAlternativeNames field's value.
2013func (s *CertificateDetail) SetSubjectAlternativeNames(v []*string) *CertificateDetail {
2014	s.SubjectAlternativeNames = v
2015	return s
2016}
2017
2018// SetType sets the Type field's value.
2019func (s *CertificateDetail) SetType(v string) *CertificateDetail {
2020	s.Type = &v
2021	return s
2022}
2023
2024// Structure that contains options for your certificate. Currently, you can
2025// use this only to specify whether to opt in to or out of certificate transparency
2026// logging. Some browsers require that public certificates issued for your domain
2027// be recorded in a log. Certificates that are not logged typically generate
2028// a browser error. Transparency makes it possible for you to detect SSL/TLS
2029// certificates that have been mistakenly or maliciously issued for your domain.
2030// For general information, see Certificate Transparency Logging (https://docs.aws.amazon.com/acm/latest/userguide/acm-concepts.html#concept-transparency).
2031type CertificateOptions struct {
2032	_ struct{} `type:"structure"`
2033
2034	// You can opt out of certificate transparency logging by specifying the DISABLED
2035	// option. Opt in by specifying ENABLED.
2036	CertificateTransparencyLoggingPreference *string `type:"string" enum:"CertificateTransparencyLoggingPreference"`
2037}
2038
2039// String returns the string representation.
2040//
2041// API parameter values that are decorated as "sensitive" in the API will not
2042// be included in the string output. The member name will be present, but the
2043// value will be replaced with "sensitive".
2044func (s CertificateOptions) String() string {
2045	return awsutil.Prettify(s)
2046}
2047
2048// GoString returns the string representation.
2049//
2050// API parameter values that are decorated as "sensitive" in the API will not
2051// be included in the string output. The member name will be present, but the
2052// value will be replaced with "sensitive".
2053func (s CertificateOptions) GoString() string {
2054	return s.String()
2055}
2056
2057// SetCertificateTransparencyLoggingPreference sets the CertificateTransparencyLoggingPreference field's value.
2058func (s *CertificateOptions) SetCertificateTransparencyLoggingPreference(v string) *CertificateOptions {
2059	s.CertificateTransparencyLoggingPreference = &v
2060	return s
2061}
2062
2063// This structure is returned in the response object of ListCertificates action.
2064type CertificateSummary struct {
2065	_ struct{} `type:"structure"`
2066
2067	// Amazon Resource Name (ARN) of the certificate. This is of the form:
2068	//
2069	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
2070	//
2071	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2072	CertificateArn *string `min:"20" type:"string"`
2073
2074	// Fully qualified domain name (FQDN), such as www.example.com or example.com,
2075	// for the certificate.
2076	DomainName *string `min:"1" type:"string"`
2077}
2078
2079// String returns the string representation.
2080//
2081// API parameter values that are decorated as "sensitive" in the API will not
2082// be included in the string output. The member name will be present, but the
2083// value will be replaced with "sensitive".
2084func (s CertificateSummary) String() string {
2085	return awsutil.Prettify(s)
2086}
2087
2088// GoString returns the string representation.
2089//
2090// API parameter values that are decorated as "sensitive" in the API will not
2091// be included in the string output. The member name will be present, but the
2092// value will be replaced with "sensitive".
2093func (s CertificateSummary) GoString() string {
2094	return s.String()
2095}
2096
2097// SetCertificateArn sets the CertificateArn field's value.
2098func (s *CertificateSummary) SetCertificateArn(v string) *CertificateSummary {
2099	s.CertificateArn = &v
2100	return s
2101}
2102
2103// SetDomainName sets the DomainName field's value.
2104func (s *CertificateSummary) SetDomainName(v string) *CertificateSummary {
2105	s.DomainName = &v
2106	return s
2107}
2108
2109// You are trying to update a resource or configuration that is already being
2110// created or updated. Wait for the previous operation to finish and try again.
2111type ConflictException struct {
2112	_            struct{}                  `type:"structure"`
2113	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2114
2115	Message_ *string `locationName:"message" type:"string"`
2116}
2117
2118// String returns the string representation.
2119//
2120// API parameter values that are decorated as "sensitive" in the API will not
2121// be included in the string output. The member name will be present, but the
2122// value will be replaced with "sensitive".
2123func (s ConflictException) String() string {
2124	return awsutil.Prettify(s)
2125}
2126
2127// GoString returns the string representation.
2128//
2129// API parameter values that are decorated as "sensitive" in the API will not
2130// be included in the string output. The member name will be present, but the
2131// value will be replaced with "sensitive".
2132func (s ConflictException) GoString() string {
2133	return s.String()
2134}
2135
2136func newErrorConflictException(v protocol.ResponseMetadata) error {
2137	return &ConflictException{
2138		RespMetadata: v,
2139	}
2140}
2141
2142// Code returns the exception type name.
2143func (s *ConflictException) Code() string {
2144	return "ConflictException"
2145}
2146
2147// Message returns the exception's message.
2148func (s *ConflictException) Message() string {
2149	if s.Message_ != nil {
2150		return *s.Message_
2151	}
2152	return ""
2153}
2154
2155// OrigErr always returns nil, satisfies awserr.Error interface.
2156func (s *ConflictException) OrigErr() error {
2157	return nil
2158}
2159
2160func (s *ConflictException) Error() string {
2161	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2162}
2163
2164// Status code returns the HTTP status code for the request's response error.
2165func (s *ConflictException) StatusCode() int {
2166	return s.RespMetadata.StatusCode
2167}
2168
2169// RequestID returns the service's response RequestID for request.
2170func (s *ConflictException) RequestID() string {
2171	return s.RespMetadata.RequestID
2172}
2173
2174type DeleteCertificateInput struct {
2175	_ struct{} `type:"structure"`
2176
2177	// String that contains the ARN of the ACM certificate to be deleted. This must
2178	// be of the form:
2179	//
2180	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
2181	//
2182	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2183	//
2184	// CertificateArn is a required field
2185	CertificateArn *string `min:"20" type:"string" required:"true"`
2186}
2187
2188// String returns the string representation.
2189//
2190// API parameter values that are decorated as "sensitive" in the API will not
2191// be included in the string output. The member name will be present, but the
2192// value will be replaced with "sensitive".
2193func (s DeleteCertificateInput) String() string {
2194	return awsutil.Prettify(s)
2195}
2196
2197// GoString returns the string representation.
2198//
2199// API parameter values that are decorated as "sensitive" in the API will not
2200// be included in the string output. The member name will be present, but the
2201// value will be replaced with "sensitive".
2202func (s DeleteCertificateInput) GoString() string {
2203	return s.String()
2204}
2205
2206// Validate inspects the fields of the type to determine if they are valid.
2207func (s *DeleteCertificateInput) Validate() error {
2208	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
2209	if s.CertificateArn == nil {
2210		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
2211	}
2212	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
2213		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
2214	}
2215
2216	if invalidParams.Len() > 0 {
2217		return invalidParams
2218	}
2219	return nil
2220}
2221
2222// SetCertificateArn sets the CertificateArn field's value.
2223func (s *DeleteCertificateInput) SetCertificateArn(v string) *DeleteCertificateInput {
2224	s.CertificateArn = &v
2225	return s
2226}
2227
2228type DeleteCertificateOutput struct {
2229	_ struct{} `type:"structure"`
2230}
2231
2232// String returns the string representation.
2233//
2234// API parameter values that are decorated as "sensitive" in the API will not
2235// be included in the string output. The member name will be present, but the
2236// value will be replaced with "sensitive".
2237func (s DeleteCertificateOutput) String() string {
2238	return awsutil.Prettify(s)
2239}
2240
2241// GoString returns the string representation.
2242//
2243// API parameter values that are decorated as "sensitive" in the API will not
2244// be included in the string output. The member name will be present, but the
2245// value will be replaced with "sensitive".
2246func (s DeleteCertificateOutput) GoString() string {
2247	return s.String()
2248}
2249
2250type DescribeCertificateInput struct {
2251	_ struct{} `type:"structure"`
2252
2253	// The Amazon Resource Name (ARN) of the ACM certificate. The ARN must have
2254	// the following form:
2255	//
2256	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
2257	//
2258	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2259	//
2260	// CertificateArn is a required field
2261	CertificateArn *string `min:"20" type:"string" required:"true"`
2262}
2263
2264// String returns the string representation.
2265//
2266// API parameter values that are decorated as "sensitive" in the API will not
2267// be included in the string output. The member name will be present, but the
2268// value will be replaced with "sensitive".
2269func (s DescribeCertificateInput) String() string {
2270	return awsutil.Prettify(s)
2271}
2272
2273// GoString returns the string representation.
2274//
2275// API parameter values that are decorated as "sensitive" in the API will not
2276// be included in the string output. The member name will be present, but the
2277// value will be replaced with "sensitive".
2278func (s DescribeCertificateInput) GoString() string {
2279	return s.String()
2280}
2281
2282// Validate inspects the fields of the type to determine if they are valid.
2283func (s *DescribeCertificateInput) Validate() error {
2284	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
2285	if s.CertificateArn == nil {
2286		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
2287	}
2288	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
2289		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
2290	}
2291
2292	if invalidParams.Len() > 0 {
2293		return invalidParams
2294	}
2295	return nil
2296}
2297
2298// SetCertificateArn sets the CertificateArn field's value.
2299func (s *DescribeCertificateInput) SetCertificateArn(v string) *DescribeCertificateInput {
2300	s.CertificateArn = &v
2301	return s
2302}
2303
2304type DescribeCertificateOutput struct {
2305	_ struct{} `type:"structure"`
2306
2307	// Metadata about an ACM certificate.
2308	Certificate *CertificateDetail `type:"structure"`
2309}
2310
2311// String returns the string representation.
2312//
2313// API parameter values that are decorated as "sensitive" in the API will not
2314// be included in the string output. The member name will be present, but the
2315// value will be replaced with "sensitive".
2316func (s DescribeCertificateOutput) String() string {
2317	return awsutil.Prettify(s)
2318}
2319
2320// GoString returns the string representation.
2321//
2322// API parameter values that are decorated as "sensitive" in the API will not
2323// be included in the string output. The member name will be present, but the
2324// value will be replaced with "sensitive".
2325func (s DescribeCertificateOutput) GoString() string {
2326	return s.String()
2327}
2328
2329// SetCertificate sets the Certificate field's value.
2330func (s *DescribeCertificateOutput) SetCertificate(v *CertificateDetail) *DescribeCertificateOutput {
2331	s.Certificate = v
2332	return s
2333}
2334
2335// Contains information about the validation of each domain name in the certificate.
2336type DomainValidation struct {
2337	_ struct{} `type:"structure"`
2338
2339	// A fully qualified domain name (FQDN) in the certificate. For example, www.example.com
2340	// or example.com.
2341	//
2342	// DomainName is a required field
2343	DomainName *string `min:"1" type:"string" required:"true"`
2344
2345	// Contains the CNAME record that you add to your DNS database for domain validation.
2346	// For more information, see Use DNS to Validate Domain Ownership (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html).
2347	//
2348	// Note: The CNAME information that you need does not include the name of your
2349	// domain. If you include your domain name in the DNS database CNAME record,
2350	// validation fails. For example, if the name is "_a79865eb4cd1a6ab990a45779b4e0b96.yourdomain.com",
2351	// only "_a79865eb4cd1a6ab990a45779b4e0b96" must be used.
2352	ResourceRecord *ResourceRecord `type:"structure"`
2353
2354	// The domain name that ACM used to send domain validation emails.
2355	ValidationDomain *string `min:"1" type:"string"`
2356
2357	// A list of email addresses that ACM used to send domain validation emails.
2358	ValidationEmails []*string `type:"list"`
2359
2360	// Specifies the domain validation method.
2361	ValidationMethod *string `type:"string" enum:"ValidationMethod"`
2362
2363	// The validation status of the domain name. This can be one of the following
2364	// values:
2365	//
2366	//    * PENDING_VALIDATION
2367	//
2368	//    * SUCCESS
2369	//
2370	//    * FAILED
2371	ValidationStatus *string `type:"string" enum:"DomainStatus"`
2372}
2373
2374// String returns the string representation.
2375//
2376// API parameter values that are decorated as "sensitive" in the API will not
2377// be included in the string output. The member name will be present, but the
2378// value will be replaced with "sensitive".
2379func (s DomainValidation) String() string {
2380	return awsutil.Prettify(s)
2381}
2382
2383// GoString returns the string representation.
2384//
2385// API parameter values that are decorated as "sensitive" in the API will not
2386// be included in the string output. The member name will be present, but the
2387// value will be replaced with "sensitive".
2388func (s DomainValidation) GoString() string {
2389	return s.String()
2390}
2391
2392// SetDomainName sets the DomainName field's value.
2393func (s *DomainValidation) SetDomainName(v string) *DomainValidation {
2394	s.DomainName = &v
2395	return s
2396}
2397
2398// SetResourceRecord sets the ResourceRecord field's value.
2399func (s *DomainValidation) SetResourceRecord(v *ResourceRecord) *DomainValidation {
2400	s.ResourceRecord = v
2401	return s
2402}
2403
2404// SetValidationDomain sets the ValidationDomain field's value.
2405func (s *DomainValidation) SetValidationDomain(v string) *DomainValidation {
2406	s.ValidationDomain = &v
2407	return s
2408}
2409
2410// SetValidationEmails sets the ValidationEmails field's value.
2411func (s *DomainValidation) SetValidationEmails(v []*string) *DomainValidation {
2412	s.ValidationEmails = v
2413	return s
2414}
2415
2416// SetValidationMethod sets the ValidationMethod field's value.
2417func (s *DomainValidation) SetValidationMethod(v string) *DomainValidation {
2418	s.ValidationMethod = &v
2419	return s
2420}
2421
2422// SetValidationStatus sets the ValidationStatus field's value.
2423func (s *DomainValidation) SetValidationStatus(v string) *DomainValidation {
2424	s.ValidationStatus = &v
2425	return s
2426}
2427
2428// Contains information about the domain names that you want ACM to use to send
2429// you emails that enable you to validate domain ownership.
2430type DomainValidationOption struct {
2431	_ struct{} `type:"structure"`
2432
2433	// A fully qualified domain name (FQDN) in the certificate request.
2434	//
2435	// DomainName is a required field
2436	DomainName *string `min:"1" type:"string" required:"true"`
2437
2438	// The domain name that you want ACM to use to send you validation emails. This
2439	// domain name is the suffix of the email addresses that you want ACM to use.
2440	// This must be the same as the DomainName value or a superdomain of the DomainName
2441	// value. For example, if you request a certificate for testing.example.com,
2442	// you can specify example.com for this value. In that case, ACM sends domain
2443	// validation emails to the following five addresses:
2444	//
2445	//    * admin@example.com
2446	//
2447	//    * administrator@example.com
2448	//
2449	//    * hostmaster@example.com
2450	//
2451	//    * postmaster@example.com
2452	//
2453	//    * webmaster@example.com
2454	//
2455	// ValidationDomain is a required field
2456	ValidationDomain *string `min:"1" type:"string" required:"true"`
2457}
2458
2459// String returns the string representation.
2460//
2461// API parameter values that are decorated as "sensitive" in the API will not
2462// be included in the string output. The member name will be present, but the
2463// value will be replaced with "sensitive".
2464func (s DomainValidationOption) String() string {
2465	return awsutil.Prettify(s)
2466}
2467
2468// GoString returns the string representation.
2469//
2470// API parameter values that are decorated as "sensitive" in the API will not
2471// be included in the string output. The member name will be present, but the
2472// value will be replaced with "sensitive".
2473func (s DomainValidationOption) GoString() string {
2474	return s.String()
2475}
2476
2477// Validate inspects the fields of the type to determine if they are valid.
2478func (s *DomainValidationOption) Validate() error {
2479	invalidParams := request.ErrInvalidParams{Context: "DomainValidationOption"}
2480	if s.DomainName == nil {
2481		invalidParams.Add(request.NewErrParamRequired("DomainName"))
2482	}
2483	if s.DomainName != nil && len(*s.DomainName) < 1 {
2484		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
2485	}
2486	if s.ValidationDomain == nil {
2487		invalidParams.Add(request.NewErrParamRequired("ValidationDomain"))
2488	}
2489	if s.ValidationDomain != nil && len(*s.ValidationDomain) < 1 {
2490		invalidParams.Add(request.NewErrParamMinLen("ValidationDomain", 1))
2491	}
2492
2493	if invalidParams.Len() > 0 {
2494		return invalidParams
2495	}
2496	return nil
2497}
2498
2499// SetDomainName sets the DomainName field's value.
2500func (s *DomainValidationOption) SetDomainName(v string) *DomainValidationOption {
2501	s.DomainName = &v
2502	return s
2503}
2504
2505// SetValidationDomain sets the ValidationDomain field's value.
2506func (s *DomainValidationOption) SetValidationDomain(v string) *DomainValidationOption {
2507	s.ValidationDomain = &v
2508	return s
2509}
2510
2511// Object containing expiration events options associated with an Amazon Web
2512// Services account.
2513type ExpiryEventsConfiguration struct {
2514	_ struct{} `type:"structure"`
2515
2516	// Specifies the number of days prior to certificate expiration when ACM starts
2517	// generating EventBridge events. ACM sends one event per day per certificate
2518	// until the certificate expires. By default, accounts receive events starting
2519	// 45 days before certificate expiration.
2520	DaysBeforeExpiry *int64 `min:"1" type:"integer"`
2521}
2522
2523// String returns the string representation.
2524//
2525// API parameter values that are decorated as "sensitive" in the API will not
2526// be included in the string output. The member name will be present, but the
2527// value will be replaced with "sensitive".
2528func (s ExpiryEventsConfiguration) String() string {
2529	return awsutil.Prettify(s)
2530}
2531
2532// GoString returns the string representation.
2533//
2534// API parameter values that are decorated as "sensitive" in the API will not
2535// be included in the string output. The member name will be present, but the
2536// value will be replaced with "sensitive".
2537func (s ExpiryEventsConfiguration) GoString() string {
2538	return s.String()
2539}
2540
2541// Validate inspects the fields of the type to determine if they are valid.
2542func (s *ExpiryEventsConfiguration) Validate() error {
2543	invalidParams := request.ErrInvalidParams{Context: "ExpiryEventsConfiguration"}
2544	if s.DaysBeforeExpiry != nil && *s.DaysBeforeExpiry < 1 {
2545		invalidParams.Add(request.NewErrParamMinValue("DaysBeforeExpiry", 1))
2546	}
2547
2548	if invalidParams.Len() > 0 {
2549		return invalidParams
2550	}
2551	return nil
2552}
2553
2554// SetDaysBeforeExpiry sets the DaysBeforeExpiry field's value.
2555func (s *ExpiryEventsConfiguration) SetDaysBeforeExpiry(v int64) *ExpiryEventsConfiguration {
2556	s.DaysBeforeExpiry = &v
2557	return s
2558}
2559
2560type ExportCertificateInput struct {
2561	_ struct{} `type:"structure"`
2562
2563	// An Amazon Resource Name (ARN) of the issued certificate. This must be of
2564	// the form:
2565	//
2566	// arn:aws:acm:region:account:certificate/12345678-1234-1234-1234-123456789012
2567	//
2568	// CertificateArn is a required field
2569	CertificateArn *string `min:"20" type:"string" required:"true"`
2570
2571	// Passphrase to associate with the encrypted exported private key. If you want
2572	// to later decrypt the private key, you must have the passphrase. You can use
2573	// the following OpenSSL command to decrypt a private key:
2574	//
2575	// openssl rsa -in encrypted_key.pem -out decrypted_key.pem
2576	//
2577	// Passphrase is a sensitive parameter and its value will be
2578	// replaced with "sensitive" in string returned by ExportCertificateInput's
2579	// String and GoString methods.
2580	//
2581	// Passphrase is automatically base64 encoded/decoded by the SDK.
2582	//
2583	// Passphrase is a required field
2584	Passphrase []byte `min:"4" type:"blob" required:"true" sensitive:"true"`
2585}
2586
2587// String returns the string representation.
2588//
2589// API parameter values that are decorated as "sensitive" in the API will not
2590// be included in the string output. The member name will be present, but the
2591// value will be replaced with "sensitive".
2592func (s ExportCertificateInput) String() string {
2593	return awsutil.Prettify(s)
2594}
2595
2596// GoString returns the string representation.
2597//
2598// API parameter values that are decorated as "sensitive" in the API will not
2599// be included in the string output. The member name will be present, but the
2600// value will be replaced with "sensitive".
2601func (s ExportCertificateInput) GoString() string {
2602	return s.String()
2603}
2604
2605// Validate inspects the fields of the type to determine if they are valid.
2606func (s *ExportCertificateInput) Validate() error {
2607	invalidParams := request.ErrInvalidParams{Context: "ExportCertificateInput"}
2608	if s.CertificateArn == nil {
2609		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
2610	}
2611	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
2612		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
2613	}
2614	if s.Passphrase == nil {
2615		invalidParams.Add(request.NewErrParamRequired("Passphrase"))
2616	}
2617	if s.Passphrase != nil && len(s.Passphrase) < 4 {
2618		invalidParams.Add(request.NewErrParamMinLen("Passphrase", 4))
2619	}
2620
2621	if invalidParams.Len() > 0 {
2622		return invalidParams
2623	}
2624	return nil
2625}
2626
2627// SetCertificateArn sets the CertificateArn field's value.
2628func (s *ExportCertificateInput) SetCertificateArn(v string) *ExportCertificateInput {
2629	s.CertificateArn = &v
2630	return s
2631}
2632
2633// SetPassphrase sets the Passphrase field's value.
2634func (s *ExportCertificateInput) SetPassphrase(v []byte) *ExportCertificateInput {
2635	s.Passphrase = v
2636	return s
2637}
2638
2639type ExportCertificateOutput struct {
2640	_ struct{} `type:"structure"`
2641
2642	// The base64 PEM-encoded certificate.
2643	Certificate *string `min:"1" type:"string"`
2644
2645	// The base64 PEM-encoded certificate chain. This does not include the certificate
2646	// that you are exporting.
2647	CertificateChain *string `min:"1" type:"string"`
2648
2649	// The encrypted private key associated with the public key in the certificate.
2650	// The key is output in PKCS #8 format and is base64 PEM-encoded.
2651	//
2652	// PrivateKey is a sensitive parameter and its value will be
2653	// replaced with "sensitive" in string returned by ExportCertificateOutput's
2654	// String and GoString methods.
2655	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
2656}
2657
2658// String returns the string representation.
2659//
2660// API parameter values that are decorated as "sensitive" in the API will not
2661// be included in the string output. The member name will be present, but the
2662// value will be replaced with "sensitive".
2663func (s ExportCertificateOutput) String() string {
2664	return awsutil.Prettify(s)
2665}
2666
2667// GoString returns the string representation.
2668//
2669// API parameter values that are decorated as "sensitive" in the API will not
2670// be included in the string output. The member name will be present, but the
2671// value will be replaced with "sensitive".
2672func (s ExportCertificateOutput) GoString() string {
2673	return s.String()
2674}
2675
2676// SetCertificate sets the Certificate field's value.
2677func (s *ExportCertificateOutput) SetCertificate(v string) *ExportCertificateOutput {
2678	s.Certificate = &v
2679	return s
2680}
2681
2682// SetCertificateChain sets the CertificateChain field's value.
2683func (s *ExportCertificateOutput) SetCertificateChain(v string) *ExportCertificateOutput {
2684	s.CertificateChain = &v
2685	return s
2686}
2687
2688// SetPrivateKey sets the PrivateKey field's value.
2689func (s *ExportCertificateOutput) SetPrivateKey(v string) *ExportCertificateOutput {
2690	s.PrivateKey = &v
2691	return s
2692}
2693
2694// The Extended Key Usage X.509 v3 extension defines one or more purposes for
2695// which the public key can be used. This is in addition to or in place of the
2696// basic purposes specified by the Key Usage extension.
2697type ExtendedKeyUsage struct {
2698	_ struct{} `type:"structure"`
2699
2700	// The name of an Extended Key Usage value.
2701	Name *string `type:"string" enum:"ExtendedKeyUsageName"`
2702
2703	// An object identifier (OID) for the extension value. OIDs are strings of numbers
2704	// separated by periods. The following OIDs are defined in RFC 3280 and RFC
2705	// 5280.
2706	//
2707	//    * 1.3.6.1.5.5.7.3.1 (TLS_WEB_SERVER_AUTHENTICATION)
2708	//
2709	//    * 1.3.6.1.5.5.7.3.2 (TLS_WEB_CLIENT_AUTHENTICATION)
2710	//
2711	//    * 1.3.6.1.5.5.7.3.3 (CODE_SIGNING)
2712	//
2713	//    * 1.3.6.1.5.5.7.3.4 (EMAIL_PROTECTION)
2714	//
2715	//    * 1.3.6.1.5.5.7.3.8 (TIME_STAMPING)
2716	//
2717	//    * 1.3.6.1.5.5.7.3.9 (OCSP_SIGNING)
2718	//
2719	//    * 1.3.6.1.5.5.7.3.5 (IPSEC_END_SYSTEM)
2720	//
2721	//    * 1.3.6.1.5.5.7.3.6 (IPSEC_TUNNEL)
2722	//
2723	//    * 1.3.6.1.5.5.7.3.7 (IPSEC_USER)
2724	OID *string `type:"string"`
2725}
2726
2727// String returns the string representation.
2728//
2729// API parameter values that are decorated as "sensitive" in the API will not
2730// be included in the string output. The member name will be present, but the
2731// value will be replaced with "sensitive".
2732func (s ExtendedKeyUsage) String() string {
2733	return awsutil.Prettify(s)
2734}
2735
2736// GoString returns the string representation.
2737//
2738// API parameter values that are decorated as "sensitive" in the API will not
2739// be included in the string output. The member name will be present, but the
2740// value will be replaced with "sensitive".
2741func (s ExtendedKeyUsage) GoString() string {
2742	return s.String()
2743}
2744
2745// SetName sets the Name field's value.
2746func (s *ExtendedKeyUsage) SetName(v string) *ExtendedKeyUsage {
2747	s.Name = &v
2748	return s
2749}
2750
2751// SetOID sets the OID field's value.
2752func (s *ExtendedKeyUsage) SetOID(v string) *ExtendedKeyUsage {
2753	s.OID = &v
2754	return s
2755}
2756
2757// This structure can be used in the ListCertificates action to filter the output
2758// of the certificate list.
2759type Filters struct {
2760	_ struct{} `type:"structure"`
2761
2762	// Specify one or more ExtendedKeyUsage extension values.
2763	ExtendedKeyUsage []*string `locationName:"extendedKeyUsage" type:"list"`
2764
2765	// Specify one or more algorithms that can be used to generate key pairs.
2766	//
2767	// Default filtering returns only RSA_1024 and RSA_2048 certificates that have
2768	// at least one domain. To return other certificate types, provide the desired
2769	// type signatures in a comma-separated list. For example, "keyTypes": ["RSA_2048,RSA_4096"]
2770	// returns both RSA_2048 and RSA_4096 certificates.
2771	KeyTypes []*string `locationName:"keyTypes" type:"list"`
2772
2773	// Specify one or more KeyUsage extension values.
2774	KeyUsage []*string `locationName:"keyUsage" type:"list"`
2775}
2776
2777// String returns the string representation.
2778//
2779// API parameter values that are decorated as "sensitive" in the API will not
2780// be included in the string output. The member name will be present, but the
2781// value will be replaced with "sensitive".
2782func (s Filters) String() string {
2783	return awsutil.Prettify(s)
2784}
2785
2786// GoString returns the string representation.
2787//
2788// API parameter values that are decorated as "sensitive" in the API will not
2789// be included in the string output. The member name will be present, but the
2790// value will be replaced with "sensitive".
2791func (s Filters) GoString() string {
2792	return s.String()
2793}
2794
2795// SetExtendedKeyUsage sets the ExtendedKeyUsage field's value.
2796func (s *Filters) SetExtendedKeyUsage(v []*string) *Filters {
2797	s.ExtendedKeyUsage = v
2798	return s
2799}
2800
2801// SetKeyTypes sets the KeyTypes field's value.
2802func (s *Filters) SetKeyTypes(v []*string) *Filters {
2803	s.KeyTypes = v
2804	return s
2805}
2806
2807// SetKeyUsage sets the KeyUsage field's value.
2808func (s *Filters) SetKeyUsage(v []*string) *Filters {
2809	s.KeyUsage = v
2810	return s
2811}
2812
2813type GetAccountConfigurationInput struct {
2814	_ struct{} `type:"structure"`
2815}
2816
2817// String returns the string representation.
2818//
2819// API parameter values that are decorated as "sensitive" in the API will not
2820// be included in the string output. The member name will be present, but the
2821// value will be replaced with "sensitive".
2822func (s GetAccountConfigurationInput) String() string {
2823	return awsutil.Prettify(s)
2824}
2825
2826// GoString returns the string representation.
2827//
2828// API parameter values that are decorated as "sensitive" in the API will not
2829// be included in the string output. The member name will be present, but the
2830// value will be replaced with "sensitive".
2831func (s GetAccountConfigurationInput) GoString() string {
2832	return s.String()
2833}
2834
2835type GetAccountConfigurationOutput struct {
2836	_ struct{} `type:"structure"`
2837
2838	// Expiration events configuration options associated with the Amazon Web Services
2839	// account.
2840	ExpiryEvents *ExpiryEventsConfiguration `type:"structure"`
2841}
2842
2843// String returns the string representation.
2844//
2845// API parameter values that are decorated as "sensitive" in the API will not
2846// be included in the string output. The member name will be present, but the
2847// value will be replaced with "sensitive".
2848func (s GetAccountConfigurationOutput) String() string {
2849	return awsutil.Prettify(s)
2850}
2851
2852// GoString returns the string representation.
2853//
2854// API parameter values that are decorated as "sensitive" in the API will not
2855// be included in the string output. The member name will be present, but the
2856// value will be replaced with "sensitive".
2857func (s GetAccountConfigurationOutput) GoString() string {
2858	return s.String()
2859}
2860
2861// SetExpiryEvents sets the ExpiryEvents field's value.
2862func (s *GetAccountConfigurationOutput) SetExpiryEvents(v *ExpiryEventsConfiguration) *GetAccountConfigurationOutput {
2863	s.ExpiryEvents = v
2864	return s
2865}
2866
2867type GetCertificateInput struct {
2868	_ struct{} `type:"structure"`
2869
2870	// String that contains a certificate ARN in the following format:
2871	//
2872	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
2873	//
2874	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2875	//
2876	// CertificateArn is a required field
2877	CertificateArn *string `min:"20" type:"string" required:"true"`
2878}
2879
2880// String returns the string representation.
2881//
2882// API parameter values that are decorated as "sensitive" in the API will not
2883// be included in the string output. The member name will be present, but the
2884// value will be replaced with "sensitive".
2885func (s GetCertificateInput) String() string {
2886	return awsutil.Prettify(s)
2887}
2888
2889// GoString returns the string representation.
2890//
2891// API parameter values that are decorated as "sensitive" in the API will not
2892// be included in the string output. The member name will be present, but the
2893// value will be replaced with "sensitive".
2894func (s GetCertificateInput) GoString() string {
2895	return s.String()
2896}
2897
2898// Validate inspects the fields of the type to determine if they are valid.
2899func (s *GetCertificateInput) Validate() error {
2900	invalidParams := request.ErrInvalidParams{Context: "GetCertificateInput"}
2901	if s.CertificateArn == nil {
2902		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
2903	}
2904	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
2905		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
2906	}
2907
2908	if invalidParams.Len() > 0 {
2909		return invalidParams
2910	}
2911	return nil
2912}
2913
2914// SetCertificateArn sets the CertificateArn field's value.
2915func (s *GetCertificateInput) SetCertificateArn(v string) *GetCertificateInput {
2916	s.CertificateArn = &v
2917	return s
2918}
2919
2920type GetCertificateOutput struct {
2921	_ struct{} `type:"structure"`
2922
2923	// The ACM-issued certificate corresponding to the ARN specified as input.
2924	Certificate *string `min:"1" type:"string"`
2925
2926	// Certificates forming the requested certificate's chain of trust. The chain
2927	// consists of the certificate of the issuing CA and the intermediate certificates
2928	// of any other subordinate CAs.
2929	CertificateChain *string `min:"1" type:"string"`
2930}
2931
2932// String returns the string representation.
2933//
2934// API parameter values that are decorated as "sensitive" in the API will not
2935// be included in the string output. The member name will be present, but the
2936// value will be replaced with "sensitive".
2937func (s GetCertificateOutput) String() string {
2938	return awsutil.Prettify(s)
2939}
2940
2941// GoString returns the string representation.
2942//
2943// API parameter values that are decorated as "sensitive" in the API will not
2944// be included in the string output. The member name will be present, but the
2945// value will be replaced with "sensitive".
2946func (s GetCertificateOutput) GoString() string {
2947	return s.String()
2948}
2949
2950// SetCertificate sets the Certificate field's value.
2951func (s *GetCertificateOutput) SetCertificate(v string) *GetCertificateOutput {
2952	s.Certificate = &v
2953	return s
2954}
2955
2956// SetCertificateChain sets the CertificateChain field's value.
2957func (s *GetCertificateOutput) SetCertificateChain(v string) *GetCertificateOutput {
2958	s.CertificateChain = &v
2959	return s
2960}
2961
2962type ImportCertificateInput struct {
2963	_ struct{} `type:"structure"`
2964
2965	// The certificate to import.
2966	// Certificate is automatically base64 encoded/decoded by the SDK.
2967	//
2968	// Certificate is a required field
2969	Certificate []byte `min:"1" type:"blob" required:"true"`
2970
2971	// The Amazon Resource Name (ARN) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
2972	// of an imported certificate to replace. To import a new certificate, omit
2973	// this field.
2974	CertificateArn *string `min:"20" type:"string"`
2975
2976	// The PEM encoded certificate chain.
2977	// CertificateChain is automatically base64 encoded/decoded by the SDK.
2978	CertificateChain []byte `min:"1" type:"blob"`
2979
2980	// The private key that matches the public key in the certificate.
2981	//
2982	// PrivateKey is a sensitive parameter and its value will be
2983	// replaced with "sensitive" in string returned by ImportCertificateInput's
2984	// String and GoString methods.
2985	//
2986	// PrivateKey is automatically base64 encoded/decoded by the SDK.
2987	//
2988	// PrivateKey is a required field
2989	PrivateKey []byte `min:"1" type:"blob" required:"true" sensitive:"true"`
2990
2991	// One or more resource tags to associate with the imported certificate.
2992	//
2993	// Note: You cannot apply tags when reimporting a certificate.
2994	Tags []*Tag `min:"1" type:"list"`
2995}
2996
2997// String returns the string representation.
2998//
2999// API parameter values that are decorated as "sensitive" in the API will not
3000// be included in the string output. The member name will be present, but the
3001// value will be replaced with "sensitive".
3002func (s ImportCertificateInput) String() string {
3003	return awsutil.Prettify(s)
3004}
3005
3006// GoString returns the string representation.
3007//
3008// API parameter values that are decorated as "sensitive" in the API will not
3009// be included in the string output. The member name will be present, but the
3010// value will be replaced with "sensitive".
3011func (s ImportCertificateInput) GoString() string {
3012	return s.String()
3013}
3014
3015// Validate inspects the fields of the type to determine if they are valid.
3016func (s *ImportCertificateInput) Validate() error {
3017	invalidParams := request.ErrInvalidParams{Context: "ImportCertificateInput"}
3018	if s.Certificate == nil {
3019		invalidParams.Add(request.NewErrParamRequired("Certificate"))
3020	}
3021	if s.Certificate != nil && len(s.Certificate) < 1 {
3022		invalidParams.Add(request.NewErrParamMinLen("Certificate", 1))
3023	}
3024	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
3025		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
3026	}
3027	if s.CertificateChain != nil && len(s.CertificateChain) < 1 {
3028		invalidParams.Add(request.NewErrParamMinLen("CertificateChain", 1))
3029	}
3030	if s.PrivateKey == nil {
3031		invalidParams.Add(request.NewErrParamRequired("PrivateKey"))
3032	}
3033	if s.PrivateKey != nil && len(s.PrivateKey) < 1 {
3034		invalidParams.Add(request.NewErrParamMinLen("PrivateKey", 1))
3035	}
3036	if s.Tags != nil && len(s.Tags) < 1 {
3037		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
3038	}
3039	if s.Tags != nil {
3040		for i, v := range s.Tags {
3041			if v == nil {
3042				continue
3043			}
3044			if err := v.Validate(); err != nil {
3045				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3046			}
3047		}
3048	}
3049
3050	if invalidParams.Len() > 0 {
3051		return invalidParams
3052	}
3053	return nil
3054}
3055
3056// SetCertificate sets the Certificate field's value.
3057func (s *ImportCertificateInput) SetCertificate(v []byte) *ImportCertificateInput {
3058	s.Certificate = v
3059	return s
3060}
3061
3062// SetCertificateArn sets the CertificateArn field's value.
3063func (s *ImportCertificateInput) SetCertificateArn(v string) *ImportCertificateInput {
3064	s.CertificateArn = &v
3065	return s
3066}
3067
3068// SetCertificateChain sets the CertificateChain field's value.
3069func (s *ImportCertificateInput) SetCertificateChain(v []byte) *ImportCertificateInput {
3070	s.CertificateChain = v
3071	return s
3072}
3073
3074// SetPrivateKey sets the PrivateKey field's value.
3075func (s *ImportCertificateInput) SetPrivateKey(v []byte) *ImportCertificateInput {
3076	s.PrivateKey = v
3077	return s
3078}
3079
3080// SetTags sets the Tags field's value.
3081func (s *ImportCertificateInput) SetTags(v []*Tag) *ImportCertificateInput {
3082	s.Tags = v
3083	return s
3084}
3085
3086type ImportCertificateOutput struct {
3087	_ struct{} `type:"structure"`
3088
3089	// The Amazon Resource Name (ARN) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
3090	// of the imported certificate.
3091	CertificateArn *string `min:"20" type:"string"`
3092}
3093
3094// String returns the string representation.
3095//
3096// API parameter values that are decorated as "sensitive" in the API will not
3097// be included in the string output. The member name will be present, but the
3098// value will be replaced with "sensitive".
3099func (s ImportCertificateOutput) String() string {
3100	return awsutil.Prettify(s)
3101}
3102
3103// GoString returns the string representation.
3104//
3105// API parameter values that are decorated as "sensitive" in the API will not
3106// be included in the string output. The member name will be present, but the
3107// value will be replaced with "sensitive".
3108func (s ImportCertificateOutput) GoString() string {
3109	return s.String()
3110}
3111
3112// SetCertificateArn sets the CertificateArn field's value.
3113func (s *ImportCertificateOutput) SetCertificateArn(v string) *ImportCertificateOutput {
3114	s.CertificateArn = &v
3115	return s
3116}
3117
3118// One or more of of request parameters specified is not valid.
3119type InvalidArgsException struct {
3120	_            struct{}                  `type:"structure"`
3121	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3122
3123	Message_ *string `locationName:"message" type:"string"`
3124}
3125
3126// String returns the string representation.
3127//
3128// API parameter values that are decorated as "sensitive" in the API will not
3129// be included in the string output. The member name will be present, but the
3130// value will be replaced with "sensitive".
3131func (s InvalidArgsException) String() string {
3132	return awsutil.Prettify(s)
3133}
3134
3135// GoString returns the string representation.
3136//
3137// API parameter values that are decorated as "sensitive" in the API will not
3138// be included in the string output. The member name will be present, but the
3139// value will be replaced with "sensitive".
3140func (s InvalidArgsException) GoString() string {
3141	return s.String()
3142}
3143
3144func newErrorInvalidArgsException(v protocol.ResponseMetadata) error {
3145	return &InvalidArgsException{
3146		RespMetadata: v,
3147	}
3148}
3149
3150// Code returns the exception type name.
3151func (s *InvalidArgsException) Code() string {
3152	return "InvalidArgsException"
3153}
3154
3155// Message returns the exception's message.
3156func (s *InvalidArgsException) Message() string {
3157	if s.Message_ != nil {
3158		return *s.Message_
3159	}
3160	return ""
3161}
3162
3163// OrigErr always returns nil, satisfies awserr.Error interface.
3164func (s *InvalidArgsException) OrigErr() error {
3165	return nil
3166}
3167
3168func (s *InvalidArgsException) Error() string {
3169	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3170}
3171
3172// Status code returns the HTTP status code for the request's response error.
3173func (s *InvalidArgsException) StatusCode() int {
3174	return s.RespMetadata.StatusCode
3175}
3176
3177// RequestID returns the service's response RequestID for request.
3178func (s *InvalidArgsException) RequestID() string {
3179	return s.RespMetadata.RequestID
3180}
3181
3182// The requested Amazon Resource Name (ARN) does not refer to an existing resource.
3183type InvalidArnException struct {
3184	_            struct{}                  `type:"structure"`
3185	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3186
3187	Message_ *string `locationName:"message" type:"string"`
3188}
3189
3190// String returns the string representation.
3191//
3192// API parameter values that are decorated as "sensitive" in the API will not
3193// be included in the string output. The member name will be present, but the
3194// value will be replaced with "sensitive".
3195func (s InvalidArnException) String() string {
3196	return awsutil.Prettify(s)
3197}
3198
3199// GoString returns the string representation.
3200//
3201// API parameter values that are decorated as "sensitive" in the API will not
3202// be included in the string output. The member name will be present, but the
3203// value will be replaced with "sensitive".
3204func (s InvalidArnException) GoString() string {
3205	return s.String()
3206}
3207
3208func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
3209	return &InvalidArnException{
3210		RespMetadata: v,
3211	}
3212}
3213
3214// Code returns the exception type name.
3215func (s *InvalidArnException) Code() string {
3216	return "InvalidArnException"
3217}
3218
3219// Message returns the exception's message.
3220func (s *InvalidArnException) Message() string {
3221	if s.Message_ != nil {
3222		return *s.Message_
3223	}
3224	return ""
3225}
3226
3227// OrigErr always returns nil, satisfies awserr.Error interface.
3228func (s *InvalidArnException) OrigErr() error {
3229	return nil
3230}
3231
3232func (s *InvalidArnException) Error() string {
3233	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3234}
3235
3236// Status code returns the HTTP status code for the request's response error.
3237func (s *InvalidArnException) StatusCode() int {
3238	return s.RespMetadata.StatusCode
3239}
3240
3241// RequestID returns the service's response RequestID for request.
3242func (s *InvalidArnException) RequestID() string {
3243	return s.RespMetadata.RequestID
3244}
3245
3246// One or more values in the DomainValidationOption structure is incorrect.
3247type InvalidDomainValidationOptionsException struct {
3248	_            struct{}                  `type:"structure"`
3249	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3250
3251	Message_ *string `locationName:"message" type:"string"`
3252}
3253
3254// String returns the string representation.
3255//
3256// API parameter values that are decorated as "sensitive" in the API will not
3257// be included in the string output. The member name will be present, but the
3258// value will be replaced with "sensitive".
3259func (s InvalidDomainValidationOptionsException) String() string {
3260	return awsutil.Prettify(s)
3261}
3262
3263// GoString returns the string representation.
3264//
3265// API parameter values that are decorated as "sensitive" in the API will not
3266// be included in the string output. The member name will be present, but the
3267// value will be replaced with "sensitive".
3268func (s InvalidDomainValidationOptionsException) GoString() string {
3269	return s.String()
3270}
3271
3272func newErrorInvalidDomainValidationOptionsException(v protocol.ResponseMetadata) error {
3273	return &InvalidDomainValidationOptionsException{
3274		RespMetadata: v,
3275	}
3276}
3277
3278// Code returns the exception type name.
3279func (s *InvalidDomainValidationOptionsException) Code() string {
3280	return "InvalidDomainValidationOptionsException"
3281}
3282
3283// Message returns the exception's message.
3284func (s *InvalidDomainValidationOptionsException) Message() string {
3285	if s.Message_ != nil {
3286		return *s.Message_
3287	}
3288	return ""
3289}
3290
3291// OrigErr always returns nil, satisfies awserr.Error interface.
3292func (s *InvalidDomainValidationOptionsException) OrigErr() error {
3293	return nil
3294}
3295
3296func (s *InvalidDomainValidationOptionsException) Error() string {
3297	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3298}
3299
3300// Status code returns the HTTP status code for the request's response error.
3301func (s *InvalidDomainValidationOptionsException) StatusCode() int {
3302	return s.RespMetadata.StatusCode
3303}
3304
3305// RequestID returns the service's response RequestID for request.
3306func (s *InvalidDomainValidationOptionsException) RequestID() string {
3307	return s.RespMetadata.RequestID
3308}
3309
3310// An input parameter was invalid.
3311type InvalidParameterException struct {
3312	_            struct{}                  `type:"structure"`
3313	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3314
3315	Message_ *string `locationName:"message" type:"string"`
3316}
3317
3318// String returns the string representation.
3319//
3320// API parameter values that are decorated as "sensitive" in the API will not
3321// be included in the string output. The member name will be present, but the
3322// value will be replaced with "sensitive".
3323func (s InvalidParameterException) String() string {
3324	return awsutil.Prettify(s)
3325}
3326
3327// GoString returns the string representation.
3328//
3329// API parameter values that are decorated as "sensitive" in the API will not
3330// be included in the string output. The member name will be present, but the
3331// value will be replaced with "sensitive".
3332func (s InvalidParameterException) GoString() string {
3333	return s.String()
3334}
3335
3336func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
3337	return &InvalidParameterException{
3338		RespMetadata: v,
3339	}
3340}
3341
3342// Code returns the exception type name.
3343func (s *InvalidParameterException) Code() string {
3344	return "InvalidParameterException"
3345}
3346
3347// Message returns the exception's message.
3348func (s *InvalidParameterException) Message() string {
3349	if s.Message_ != nil {
3350		return *s.Message_
3351	}
3352	return ""
3353}
3354
3355// OrigErr always returns nil, satisfies awserr.Error interface.
3356func (s *InvalidParameterException) OrigErr() error {
3357	return nil
3358}
3359
3360func (s *InvalidParameterException) Error() string {
3361	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3362}
3363
3364// Status code returns the HTTP status code for the request's response error.
3365func (s *InvalidParameterException) StatusCode() int {
3366	return s.RespMetadata.StatusCode
3367}
3368
3369// RequestID returns the service's response RequestID for request.
3370func (s *InvalidParameterException) RequestID() string {
3371	return s.RespMetadata.RequestID
3372}
3373
3374// Processing has reached an invalid state.
3375type InvalidStateException struct {
3376	_            struct{}                  `type:"structure"`
3377	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3378
3379	Message_ *string `locationName:"message" type:"string"`
3380}
3381
3382// String returns the string representation.
3383//
3384// API parameter values that are decorated as "sensitive" in the API will not
3385// be included in the string output. The member name will be present, but the
3386// value will be replaced with "sensitive".
3387func (s InvalidStateException) String() string {
3388	return awsutil.Prettify(s)
3389}
3390
3391// GoString returns the string representation.
3392//
3393// API parameter values that are decorated as "sensitive" in the API will not
3394// be included in the string output. The member name will be present, but the
3395// value will be replaced with "sensitive".
3396func (s InvalidStateException) GoString() string {
3397	return s.String()
3398}
3399
3400func newErrorInvalidStateException(v protocol.ResponseMetadata) error {
3401	return &InvalidStateException{
3402		RespMetadata: v,
3403	}
3404}
3405
3406// Code returns the exception type name.
3407func (s *InvalidStateException) Code() string {
3408	return "InvalidStateException"
3409}
3410
3411// Message returns the exception's message.
3412func (s *InvalidStateException) Message() string {
3413	if s.Message_ != nil {
3414		return *s.Message_
3415	}
3416	return ""
3417}
3418
3419// OrigErr always returns nil, satisfies awserr.Error interface.
3420func (s *InvalidStateException) OrigErr() error {
3421	return nil
3422}
3423
3424func (s *InvalidStateException) Error() string {
3425	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3426}
3427
3428// Status code returns the HTTP status code for the request's response error.
3429func (s *InvalidStateException) StatusCode() int {
3430	return s.RespMetadata.StatusCode
3431}
3432
3433// RequestID returns the service's response RequestID for request.
3434func (s *InvalidStateException) RequestID() string {
3435	return s.RespMetadata.RequestID
3436}
3437
3438// One or both of the values that make up the key-value pair is not valid. For
3439// example, you cannot specify a tag value that begins with aws:.
3440type InvalidTagException struct {
3441	_            struct{}                  `type:"structure"`
3442	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3443
3444	Message_ *string `locationName:"message" type:"string"`
3445}
3446
3447// String returns the string representation.
3448//
3449// API parameter values that are decorated as "sensitive" in the API will not
3450// be included in the string output. The member name will be present, but the
3451// value will be replaced with "sensitive".
3452func (s InvalidTagException) String() string {
3453	return awsutil.Prettify(s)
3454}
3455
3456// GoString returns the string representation.
3457//
3458// API parameter values that are decorated as "sensitive" in the API will not
3459// be included in the string output. The member name will be present, but the
3460// value will be replaced with "sensitive".
3461func (s InvalidTagException) GoString() string {
3462	return s.String()
3463}
3464
3465func newErrorInvalidTagException(v protocol.ResponseMetadata) error {
3466	return &InvalidTagException{
3467		RespMetadata: v,
3468	}
3469}
3470
3471// Code returns the exception type name.
3472func (s *InvalidTagException) Code() string {
3473	return "InvalidTagException"
3474}
3475
3476// Message returns the exception's message.
3477func (s *InvalidTagException) Message() string {
3478	if s.Message_ != nil {
3479		return *s.Message_
3480	}
3481	return ""
3482}
3483
3484// OrigErr always returns nil, satisfies awserr.Error interface.
3485func (s *InvalidTagException) OrigErr() error {
3486	return nil
3487}
3488
3489func (s *InvalidTagException) Error() string {
3490	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3491}
3492
3493// Status code returns the HTTP status code for the request's response error.
3494func (s *InvalidTagException) StatusCode() int {
3495	return s.RespMetadata.StatusCode
3496}
3497
3498// RequestID returns the service's response RequestID for request.
3499func (s *InvalidTagException) RequestID() string {
3500	return s.RespMetadata.RequestID
3501}
3502
3503// The Key Usage X.509 v3 extension defines the purpose of the public key contained
3504// in the certificate.
3505type KeyUsage struct {
3506	_ struct{} `type:"structure"`
3507
3508	// A string value that contains a Key Usage extension name.
3509	Name *string `type:"string" enum:"KeyUsageName"`
3510}
3511
3512// String returns the string representation.
3513//
3514// API parameter values that are decorated as "sensitive" in the API will not
3515// be included in the string output. The member name will be present, but the
3516// value will be replaced with "sensitive".
3517func (s KeyUsage) String() string {
3518	return awsutil.Prettify(s)
3519}
3520
3521// GoString returns the string representation.
3522//
3523// API parameter values that are decorated as "sensitive" in the API will not
3524// be included in the string output. The member name will be present, but the
3525// value will be replaced with "sensitive".
3526func (s KeyUsage) GoString() string {
3527	return s.String()
3528}
3529
3530// SetName sets the Name field's value.
3531func (s *KeyUsage) SetName(v string) *KeyUsage {
3532	s.Name = &v
3533	return s
3534}
3535
3536// An ACM quota has been exceeded.
3537type LimitExceededException struct {
3538	_            struct{}                  `type:"structure"`
3539	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3540
3541	Message_ *string `locationName:"message" type:"string"`
3542}
3543
3544// String returns the string representation.
3545//
3546// API parameter values that are decorated as "sensitive" in the API will not
3547// be included in the string output. The member name will be present, but the
3548// value will be replaced with "sensitive".
3549func (s LimitExceededException) String() string {
3550	return awsutil.Prettify(s)
3551}
3552
3553// GoString returns the string representation.
3554//
3555// API parameter values that are decorated as "sensitive" in the API will not
3556// be included in the string output. The member name will be present, but the
3557// value will be replaced with "sensitive".
3558func (s LimitExceededException) GoString() string {
3559	return s.String()
3560}
3561
3562func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
3563	return &LimitExceededException{
3564		RespMetadata: v,
3565	}
3566}
3567
3568// Code returns the exception type name.
3569func (s *LimitExceededException) Code() string {
3570	return "LimitExceededException"
3571}
3572
3573// Message returns the exception's message.
3574func (s *LimitExceededException) Message() string {
3575	if s.Message_ != nil {
3576		return *s.Message_
3577	}
3578	return ""
3579}
3580
3581// OrigErr always returns nil, satisfies awserr.Error interface.
3582func (s *LimitExceededException) OrigErr() error {
3583	return nil
3584}
3585
3586func (s *LimitExceededException) Error() string {
3587	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3588}
3589
3590// Status code returns the HTTP status code for the request's response error.
3591func (s *LimitExceededException) StatusCode() int {
3592	return s.RespMetadata.StatusCode
3593}
3594
3595// RequestID returns the service's response RequestID for request.
3596func (s *LimitExceededException) RequestID() string {
3597	return s.RespMetadata.RequestID
3598}
3599
3600type ListCertificatesInput struct {
3601	_ struct{} `type:"structure"`
3602
3603	// Filter the certificate list by status value.
3604	CertificateStatuses []*string `type:"list"`
3605
3606	// Filter the certificate list. For more information, see the Filters structure.
3607	Includes *Filters `type:"structure"`
3608
3609	// Use this parameter when paginating results to specify the maximum number
3610	// of items to return in the response. If additional items exist beyond the
3611	// number you specify, the NextToken element is sent in the response. Use this
3612	// NextToken value in a subsequent request to retrieve additional items.
3613	MaxItems *int64 `min:"1" type:"integer"`
3614
3615	// Use this parameter only when paginating results and only in a subsequent
3616	// request after you receive a response with truncated results. Set it to the
3617	// value of NextToken from the response you just received.
3618	NextToken *string `min:"1" type:"string"`
3619}
3620
3621// String returns the string representation.
3622//
3623// API parameter values that are decorated as "sensitive" in the API will not
3624// be included in the string output. The member name will be present, but the
3625// value will be replaced with "sensitive".
3626func (s ListCertificatesInput) String() string {
3627	return awsutil.Prettify(s)
3628}
3629
3630// GoString returns the string representation.
3631//
3632// API parameter values that are decorated as "sensitive" in the API will not
3633// be included in the string output. The member name will be present, but the
3634// value will be replaced with "sensitive".
3635func (s ListCertificatesInput) GoString() string {
3636	return s.String()
3637}
3638
3639// Validate inspects the fields of the type to determine if they are valid.
3640func (s *ListCertificatesInput) Validate() error {
3641	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
3642	if s.MaxItems != nil && *s.MaxItems < 1 {
3643		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
3644	}
3645	if s.NextToken != nil && len(*s.NextToken) < 1 {
3646		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3647	}
3648
3649	if invalidParams.Len() > 0 {
3650		return invalidParams
3651	}
3652	return nil
3653}
3654
3655// SetCertificateStatuses sets the CertificateStatuses field's value.
3656func (s *ListCertificatesInput) SetCertificateStatuses(v []*string) *ListCertificatesInput {
3657	s.CertificateStatuses = v
3658	return s
3659}
3660
3661// SetIncludes sets the Includes field's value.
3662func (s *ListCertificatesInput) SetIncludes(v *Filters) *ListCertificatesInput {
3663	s.Includes = v
3664	return s
3665}
3666
3667// SetMaxItems sets the MaxItems field's value.
3668func (s *ListCertificatesInput) SetMaxItems(v int64) *ListCertificatesInput {
3669	s.MaxItems = &v
3670	return s
3671}
3672
3673// SetNextToken sets the NextToken field's value.
3674func (s *ListCertificatesInput) SetNextToken(v string) *ListCertificatesInput {
3675	s.NextToken = &v
3676	return s
3677}
3678
3679type ListCertificatesOutput struct {
3680	_ struct{} `type:"structure"`
3681
3682	// A list of ACM certificates.
3683	CertificateSummaryList []*CertificateSummary `type:"list"`
3684
3685	// When the list is truncated, this value is present and contains the value
3686	// to use for the NextToken parameter in a subsequent pagination request.
3687	NextToken *string `min:"1" type:"string"`
3688}
3689
3690// String returns the string representation.
3691//
3692// API parameter values that are decorated as "sensitive" in the API will not
3693// be included in the string output. The member name will be present, but the
3694// value will be replaced with "sensitive".
3695func (s ListCertificatesOutput) String() string {
3696	return awsutil.Prettify(s)
3697}
3698
3699// GoString returns the string representation.
3700//
3701// API parameter values that are decorated as "sensitive" in the API will not
3702// be included in the string output. The member name will be present, but the
3703// value will be replaced with "sensitive".
3704func (s ListCertificatesOutput) GoString() string {
3705	return s.String()
3706}
3707
3708// SetCertificateSummaryList sets the CertificateSummaryList field's value.
3709func (s *ListCertificatesOutput) SetCertificateSummaryList(v []*CertificateSummary) *ListCertificatesOutput {
3710	s.CertificateSummaryList = v
3711	return s
3712}
3713
3714// SetNextToken sets the NextToken field's value.
3715func (s *ListCertificatesOutput) SetNextToken(v string) *ListCertificatesOutput {
3716	s.NextToken = &v
3717	return s
3718}
3719
3720type ListTagsForCertificateInput struct {
3721	_ struct{} `type:"structure"`
3722
3723	// String that contains the ARN of the ACM certificate for which you want to
3724	// list the tags. This must have the following form:
3725	//
3726	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
3727	//
3728	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3729	//
3730	// CertificateArn is a required field
3731	CertificateArn *string `min:"20" type:"string" required:"true"`
3732}
3733
3734// String returns the string representation.
3735//
3736// API parameter values that are decorated as "sensitive" in the API will not
3737// be included in the string output. The member name will be present, but the
3738// value will be replaced with "sensitive".
3739func (s ListTagsForCertificateInput) String() string {
3740	return awsutil.Prettify(s)
3741}
3742
3743// GoString returns the string representation.
3744//
3745// API parameter values that are decorated as "sensitive" in the API will not
3746// be included in the string output. The member name will be present, but the
3747// value will be replaced with "sensitive".
3748func (s ListTagsForCertificateInput) GoString() string {
3749	return s.String()
3750}
3751
3752// Validate inspects the fields of the type to determine if they are valid.
3753func (s *ListTagsForCertificateInput) Validate() error {
3754	invalidParams := request.ErrInvalidParams{Context: "ListTagsForCertificateInput"}
3755	if s.CertificateArn == nil {
3756		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
3757	}
3758	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
3759		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
3760	}
3761
3762	if invalidParams.Len() > 0 {
3763		return invalidParams
3764	}
3765	return nil
3766}
3767
3768// SetCertificateArn sets the CertificateArn field's value.
3769func (s *ListTagsForCertificateInput) SetCertificateArn(v string) *ListTagsForCertificateInput {
3770	s.CertificateArn = &v
3771	return s
3772}
3773
3774type ListTagsForCertificateOutput struct {
3775	_ struct{} `type:"structure"`
3776
3777	// The key-value pairs that define the applied tags.
3778	Tags []*Tag `min:"1" type:"list"`
3779}
3780
3781// String returns the string representation.
3782//
3783// API parameter values that are decorated as "sensitive" in the API will not
3784// be included in the string output. The member name will be present, but the
3785// value will be replaced with "sensitive".
3786func (s ListTagsForCertificateOutput) String() string {
3787	return awsutil.Prettify(s)
3788}
3789
3790// GoString returns the string representation.
3791//
3792// API parameter values that are decorated as "sensitive" in the API will not
3793// be included in the string output. The member name will be present, but the
3794// value will be replaced with "sensitive".
3795func (s ListTagsForCertificateOutput) GoString() string {
3796	return s.String()
3797}
3798
3799// SetTags sets the Tags field's value.
3800func (s *ListTagsForCertificateOutput) SetTags(v []*Tag) *ListTagsForCertificateOutput {
3801	s.Tags = v
3802	return s
3803}
3804
3805type PutAccountConfigurationInput struct {
3806	_ struct{} `type:"structure"`
3807
3808	// Specifies expiration events associated with an account.
3809	ExpiryEvents *ExpiryEventsConfiguration `type:"structure"`
3810
3811	// Customer-chosen string used to distinguish between calls to PutAccountConfiguration.
3812	// Idempotency tokens time out after one hour. If you call PutAccountConfiguration
3813	// multiple times with the same unexpired idempotency token, ACM treats it as
3814	// the same request and returns the original result. If you change the idempotency
3815	// token for each call, ACM treats each call as a new request.
3816	//
3817	// IdempotencyToken is a required field
3818	IdempotencyToken *string `min:"1" type:"string" required:"true"`
3819}
3820
3821// String returns the string representation.
3822//
3823// API parameter values that are decorated as "sensitive" in the API will not
3824// be included in the string output. The member name will be present, but the
3825// value will be replaced with "sensitive".
3826func (s PutAccountConfigurationInput) String() string {
3827	return awsutil.Prettify(s)
3828}
3829
3830// GoString returns the string representation.
3831//
3832// API parameter values that are decorated as "sensitive" in the API will not
3833// be included in the string output. The member name will be present, but the
3834// value will be replaced with "sensitive".
3835func (s PutAccountConfigurationInput) GoString() string {
3836	return s.String()
3837}
3838
3839// Validate inspects the fields of the type to determine if they are valid.
3840func (s *PutAccountConfigurationInput) Validate() error {
3841	invalidParams := request.ErrInvalidParams{Context: "PutAccountConfigurationInput"}
3842	if s.IdempotencyToken == nil {
3843		invalidParams.Add(request.NewErrParamRequired("IdempotencyToken"))
3844	}
3845	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
3846		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
3847	}
3848	if s.ExpiryEvents != nil {
3849		if err := s.ExpiryEvents.Validate(); err != nil {
3850			invalidParams.AddNested("ExpiryEvents", err.(request.ErrInvalidParams))
3851		}
3852	}
3853
3854	if invalidParams.Len() > 0 {
3855		return invalidParams
3856	}
3857	return nil
3858}
3859
3860// SetExpiryEvents sets the ExpiryEvents field's value.
3861func (s *PutAccountConfigurationInput) SetExpiryEvents(v *ExpiryEventsConfiguration) *PutAccountConfigurationInput {
3862	s.ExpiryEvents = v
3863	return s
3864}
3865
3866// SetIdempotencyToken sets the IdempotencyToken field's value.
3867func (s *PutAccountConfigurationInput) SetIdempotencyToken(v string) *PutAccountConfigurationInput {
3868	s.IdempotencyToken = &v
3869	return s
3870}
3871
3872type PutAccountConfigurationOutput struct {
3873	_ struct{} `type:"structure"`
3874}
3875
3876// String returns the string representation.
3877//
3878// API parameter values that are decorated as "sensitive" in the API will not
3879// be included in the string output. The member name will be present, but the
3880// value will be replaced with "sensitive".
3881func (s PutAccountConfigurationOutput) String() string {
3882	return awsutil.Prettify(s)
3883}
3884
3885// GoString returns the string representation.
3886//
3887// API parameter values that are decorated as "sensitive" in the API will not
3888// be included in the string output. The member name will be present, but the
3889// value will be replaced with "sensitive".
3890func (s PutAccountConfigurationOutput) GoString() string {
3891	return s.String()
3892}
3893
3894type RemoveTagsFromCertificateInput struct {
3895	_ struct{} `type:"structure"`
3896
3897	// String that contains the ARN of the ACM Certificate with one or more tags
3898	// that you want to remove. This must be of the form:
3899	//
3900	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
3901	//
3902	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3903	//
3904	// CertificateArn is a required field
3905	CertificateArn *string `min:"20" type:"string" required:"true"`
3906
3907	// The key-value pair that defines the tag to remove.
3908	//
3909	// Tags is a required field
3910	Tags []*Tag `min:"1" type:"list" required:"true"`
3911}
3912
3913// String returns the string representation.
3914//
3915// API parameter values that are decorated as "sensitive" in the API will not
3916// be included in the string output. The member name will be present, but the
3917// value will be replaced with "sensitive".
3918func (s RemoveTagsFromCertificateInput) String() string {
3919	return awsutil.Prettify(s)
3920}
3921
3922// GoString returns the string representation.
3923//
3924// API parameter values that are decorated as "sensitive" in the API will not
3925// be included in the string output. The member name will be present, but the
3926// value will be replaced with "sensitive".
3927func (s RemoveTagsFromCertificateInput) GoString() string {
3928	return s.String()
3929}
3930
3931// Validate inspects the fields of the type to determine if they are valid.
3932func (s *RemoveTagsFromCertificateInput) Validate() error {
3933	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromCertificateInput"}
3934	if s.CertificateArn == nil {
3935		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
3936	}
3937	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
3938		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
3939	}
3940	if s.Tags == nil {
3941		invalidParams.Add(request.NewErrParamRequired("Tags"))
3942	}
3943	if s.Tags != nil && len(s.Tags) < 1 {
3944		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
3945	}
3946	if s.Tags != nil {
3947		for i, v := range s.Tags {
3948			if v == nil {
3949				continue
3950			}
3951			if err := v.Validate(); err != nil {
3952				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3953			}
3954		}
3955	}
3956
3957	if invalidParams.Len() > 0 {
3958		return invalidParams
3959	}
3960	return nil
3961}
3962
3963// SetCertificateArn sets the CertificateArn field's value.
3964func (s *RemoveTagsFromCertificateInput) SetCertificateArn(v string) *RemoveTagsFromCertificateInput {
3965	s.CertificateArn = &v
3966	return s
3967}
3968
3969// SetTags sets the Tags field's value.
3970func (s *RemoveTagsFromCertificateInput) SetTags(v []*Tag) *RemoveTagsFromCertificateInput {
3971	s.Tags = v
3972	return s
3973}
3974
3975type RemoveTagsFromCertificateOutput struct {
3976	_ struct{} `type:"structure"`
3977}
3978
3979// String returns the string representation.
3980//
3981// API parameter values that are decorated as "sensitive" in the API will not
3982// be included in the string output. The member name will be present, but the
3983// value will be replaced with "sensitive".
3984func (s RemoveTagsFromCertificateOutput) String() string {
3985	return awsutil.Prettify(s)
3986}
3987
3988// GoString returns the string representation.
3989//
3990// API parameter values that are decorated as "sensitive" in the API will not
3991// be included in the string output. The member name will be present, but the
3992// value will be replaced with "sensitive".
3993func (s RemoveTagsFromCertificateOutput) GoString() string {
3994	return s.String()
3995}
3996
3997type RenewCertificateInput struct {
3998	_ struct{} `type:"structure"`
3999
4000	// String that contains the ARN of the ACM certificate to be renewed. This must
4001	// be of the form:
4002	//
4003	// arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-123456789012
4004	//
4005	// For more information about ARNs, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
4006	//
4007	// CertificateArn is a required field
4008	CertificateArn *string `min:"20" type:"string" required:"true"`
4009}
4010
4011// String returns the string representation.
4012//
4013// API parameter values that are decorated as "sensitive" in the API will not
4014// be included in the string output. The member name will be present, but the
4015// value will be replaced with "sensitive".
4016func (s RenewCertificateInput) String() string {
4017	return awsutil.Prettify(s)
4018}
4019
4020// GoString returns the string representation.
4021//
4022// API parameter values that are decorated as "sensitive" in the API will not
4023// be included in the string output. The member name will be present, but the
4024// value will be replaced with "sensitive".
4025func (s RenewCertificateInput) GoString() string {
4026	return s.String()
4027}
4028
4029// Validate inspects the fields of the type to determine if they are valid.
4030func (s *RenewCertificateInput) Validate() error {
4031	invalidParams := request.ErrInvalidParams{Context: "RenewCertificateInput"}
4032	if s.CertificateArn == nil {
4033		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
4034	}
4035	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
4036		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
4037	}
4038
4039	if invalidParams.Len() > 0 {
4040		return invalidParams
4041	}
4042	return nil
4043}
4044
4045// SetCertificateArn sets the CertificateArn field's value.
4046func (s *RenewCertificateInput) SetCertificateArn(v string) *RenewCertificateInput {
4047	s.CertificateArn = &v
4048	return s
4049}
4050
4051type RenewCertificateOutput struct {
4052	_ struct{} `type:"structure"`
4053}
4054
4055// String returns the string representation.
4056//
4057// API parameter values that are decorated as "sensitive" in the API will not
4058// be included in the string output. The member name will be present, but the
4059// value will be replaced with "sensitive".
4060func (s RenewCertificateOutput) String() string {
4061	return awsutil.Prettify(s)
4062}
4063
4064// GoString returns the string representation.
4065//
4066// API parameter values that are decorated as "sensitive" in the API will not
4067// be included in the string output. The member name will be present, but the
4068// value will be replaced with "sensitive".
4069func (s RenewCertificateOutput) GoString() string {
4070	return s.String()
4071}
4072
4073// Contains information about the status of ACM's managed renewal (https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html)
4074// for the certificate. This structure exists only when the certificate type
4075// is AMAZON_ISSUED.
4076type RenewalSummary struct {
4077	_ struct{} `type:"structure"`
4078
4079	// Contains information about the validation of each domain name in the certificate,
4080	// as it pertains to ACM's managed renewal (https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html).
4081	// This is different from the initial validation that occurs as a result of
4082	// the RequestCertificate request. This field exists only when the certificate
4083	// type is AMAZON_ISSUED.
4084	//
4085	// DomainValidationOptions is a required field
4086	DomainValidationOptions []*DomainValidation `min:"1" type:"list" required:"true"`
4087
4088	// The status of ACM's managed renewal (https://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html)
4089	// of the certificate.
4090	//
4091	// RenewalStatus is a required field
4092	RenewalStatus *string `type:"string" required:"true" enum:"RenewalStatus"`
4093
4094	// The reason that a renewal request was unsuccessful.
4095	RenewalStatusReason *string `type:"string" enum:"FailureReason"`
4096
4097	// The time at which the renewal summary was last updated.
4098	//
4099	// UpdatedAt is a required field
4100	UpdatedAt *time.Time `type:"timestamp" required:"true"`
4101}
4102
4103// String returns the string representation.
4104//
4105// API parameter values that are decorated as "sensitive" in the API will not
4106// be included in the string output. The member name will be present, but the
4107// value will be replaced with "sensitive".
4108func (s RenewalSummary) String() string {
4109	return awsutil.Prettify(s)
4110}
4111
4112// GoString returns the string representation.
4113//
4114// API parameter values that are decorated as "sensitive" in the API will not
4115// be included in the string output. The member name will be present, but the
4116// value will be replaced with "sensitive".
4117func (s RenewalSummary) GoString() string {
4118	return s.String()
4119}
4120
4121// SetDomainValidationOptions sets the DomainValidationOptions field's value.
4122func (s *RenewalSummary) SetDomainValidationOptions(v []*DomainValidation) *RenewalSummary {
4123	s.DomainValidationOptions = v
4124	return s
4125}
4126
4127// SetRenewalStatus sets the RenewalStatus field's value.
4128func (s *RenewalSummary) SetRenewalStatus(v string) *RenewalSummary {
4129	s.RenewalStatus = &v
4130	return s
4131}
4132
4133// SetRenewalStatusReason sets the RenewalStatusReason field's value.
4134func (s *RenewalSummary) SetRenewalStatusReason(v string) *RenewalSummary {
4135	s.RenewalStatusReason = &v
4136	return s
4137}
4138
4139// SetUpdatedAt sets the UpdatedAt field's value.
4140func (s *RenewalSummary) SetUpdatedAt(v time.Time) *RenewalSummary {
4141	s.UpdatedAt = &v
4142	return s
4143}
4144
4145type RequestCertificateInput struct {
4146	_ struct{} `type:"structure"`
4147
4148	// The Amazon Resource Name (ARN) of the private certificate authority (CA)
4149	// that will be used to issue the certificate. If you do not provide an ARN
4150	// and you are trying to request a private certificate, ACM will attempt to
4151	// issue a public certificate. For more information about private CAs, see the
4152	// Amazon Web Services Certificate Manager Private Certificate Authority (PCA)
4153	// (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html) user
4154	// guide. The ARN must have the following form:
4155	//
4156	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
4157	CertificateAuthorityArn *string `min:"20" type:"string"`
4158
4159	// Fully qualified domain name (FQDN), such as www.example.com, that you want
4160	// to secure with an ACM certificate. Use an asterisk (*) to create a wildcard
4161	// certificate that protects several sites in the same domain. For example,
4162	// *.example.com protects www.example.com, site.example.com, and images.example.com.
4163	//
4164	// The first domain name you enter cannot exceed 64 octets, including periods.
4165	// Each subsequent Subject Alternative Name (SAN), however, can be up to 253
4166	// octets in length.
4167	//
4168	// DomainName is a required field
4169	DomainName *string `min:"1" type:"string" required:"true"`
4170
4171	// The domain name that you want ACM to use to send you emails so that you can
4172	// validate domain ownership.
4173	DomainValidationOptions []*DomainValidationOption `min:"1" type:"list"`
4174
4175	// Customer chosen string that can be used to distinguish between calls to RequestCertificate.
4176	// Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate
4177	// multiple times with the same idempotency token within one hour, ACM recognizes
4178	// that you are requesting only one certificate and will issue only one. If
4179	// you change the idempotency token for each call, ACM recognizes that you are
4180	// requesting multiple certificates.
4181	IdempotencyToken *string `min:"1" type:"string"`
4182
4183	// Currently, you can use this parameter to specify whether to add the certificate
4184	// to a certificate transparency log. Certificate transparency makes it possible
4185	// to detect SSL/TLS certificates that have been mistakenly or maliciously issued.
4186	// Certificates that have not been logged typically produce an error message
4187	// in a browser. For more information, see Opting Out of Certificate Transparency
4188	// Logging (https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency).
4189	Options *CertificateOptions `type:"structure"`
4190
4191	// Additional FQDNs to be included in the Subject Alternative Name extension
4192	// of the ACM certificate. For example, add the name www.example.net to a certificate
4193	// for which the DomainName field is www.example.com if users can reach your
4194	// site by using either name. The maximum number of domain names that you can
4195	// add to an ACM certificate is 100. However, the initial quota is 10 domain
4196	// names. If you need more than 10 names, you must request a quota increase.
4197	// For more information, see Quotas (https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html).
4198	//
4199	// The maximum length of a SAN DNS name is 253 octets. The name is made up of
4200	// multiple labels separated by periods. No label can be longer than 63 octets.
4201	// Consider the following examples:
4202	//
4203	//    * (63 octets).(63 octets).(63 octets).(61 octets) is legal because the
4204	//    total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63
4205	//    octets.
4206	//
4207	//    * (64 octets).(63 octets).(63 octets).(61 octets) is not legal because
4208	//    the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first
4209	//    label exceeds 63 octets.
4210	//
4211	//    * (63 octets).(63 octets).(63 octets).(62 octets) is not legal because
4212	//    the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.
4213	SubjectAlternativeNames []*string `min:"1" type:"list"`
4214
4215	// One or more resource tags to associate with the certificate.
4216	Tags []*Tag `min:"1" type:"list"`
4217
4218	// The method you want to use if you are requesting a public certificate to
4219	// validate that you own or control domain. You can validate with DNS (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html)
4220	// or validate with email (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html).
4221	// We recommend that you use DNS validation.
4222	ValidationMethod *string `type:"string" enum:"ValidationMethod"`
4223}
4224
4225// String returns the string representation.
4226//
4227// API parameter values that are decorated as "sensitive" in the API will not
4228// be included in the string output. The member name will be present, but the
4229// value will be replaced with "sensitive".
4230func (s RequestCertificateInput) String() string {
4231	return awsutil.Prettify(s)
4232}
4233
4234// GoString returns the string representation.
4235//
4236// API parameter values that are decorated as "sensitive" in the API will not
4237// be included in the string output. The member name will be present, but the
4238// value will be replaced with "sensitive".
4239func (s RequestCertificateInput) GoString() string {
4240	return s.String()
4241}
4242
4243// Validate inspects the fields of the type to determine if they are valid.
4244func (s *RequestCertificateInput) Validate() error {
4245	invalidParams := request.ErrInvalidParams{Context: "RequestCertificateInput"}
4246	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 20 {
4247		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 20))
4248	}
4249	if s.DomainName == nil {
4250		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4251	}
4252	if s.DomainName != nil && len(*s.DomainName) < 1 {
4253		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
4254	}
4255	if s.DomainValidationOptions != nil && len(s.DomainValidationOptions) < 1 {
4256		invalidParams.Add(request.NewErrParamMinLen("DomainValidationOptions", 1))
4257	}
4258	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
4259		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
4260	}
4261	if s.SubjectAlternativeNames != nil && len(s.SubjectAlternativeNames) < 1 {
4262		invalidParams.Add(request.NewErrParamMinLen("SubjectAlternativeNames", 1))
4263	}
4264	if s.Tags != nil && len(s.Tags) < 1 {
4265		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4266	}
4267	if s.DomainValidationOptions != nil {
4268		for i, v := range s.DomainValidationOptions {
4269			if v == nil {
4270				continue
4271			}
4272			if err := v.Validate(); err != nil {
4273				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DomainValidationOptions", i), err.(request.ErrInvalidParams))
4274			}
4275		}
4276	}
4277	if s.Tags != nil {
4278		for i, v := range s.Tags {
4279			if v == nil {
4280				continue
4281			}
4282			if err := v.Validate(); err != nil {
4283				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4284			}
4285		}
4286	}
4287
4288	if invalidParams.Len() > 0 {
4289		return invalidParams
4290	}
4291	return nil
4292}
4293
4294// SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
4295func (s *RequestCertificateInput) SetCertificateAuthorityArn(v string) *RequestCertificateInput {
4296	s.CertificateAuthorityArn = &v
4297	return s
4298}
4299
4300// SetDomainName sets the DomainName field's value.
4301func (s *RequestCertificateInput) SetDomainName(v string) *RequestCertificateInput {
4302	s.DomainName = &v
4303	return s
4304}
4305
4306// SetDomainValidationOptions sets the DomainValidationOptions field's value.
4307func (s *RequestCertificateInput) SetDomainValidationOptions(v []*DomainValidationOption) *RequestCertificateInput {
4308	s.DomainValidationOptions = v
4309	return s
4310}
4311
4312// SetIdempotencyToken sets the IdempotencyToken field's value.
4313func (s *RequestCertificateInput) SetIdempotencyToken(v string) *RequestCertificateInput {
4314	s.IdempotencyToken = &v
4315	return s
4316}
4317
4318// SetOptions sets the Options field's value.
4319func (s *RequestCertificateInput) SetOptions(v *CertificateOptions) *RequestCertificateInput {
4320	s.Options = v
4321	return s
4322}
4323
4324// SetSubjectAlternativeNames sets the SubjectAlternativeNames field's value.
4325func (s *RequestCertificateInput) SetSubjectAlternativeNames(v []*string) *RequestCertificateInput {
4326	s.SubjectAlternativeNames = v
4327	return s
4328}
4329
4330// SetTags sets the Tags field's value.
4331func (s *RequestCertificateInput) SetTags(v []*Tag) *RequestCertificateInput {
4332	s.Tags = v
4333	return s
4334}
4335
4336// SetValidationMethod sets the ValidationMethod field's value.
4337func (s *RequestCertificateInput) SetValidationMethod(v string) *RequestCertificateInput {
4338	s.ValidationMethod = &v
4339	return s
4340}
4341
4342type RequestCertificateOutput struct {
4343	_ struct{} `type:"structure"`
4344
4345	// String that contains the ARN of the issued certificate. This must be of the
4346	// form:
4347	//
4348	// arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
4349	CertificateArn *string `min:"20" type:"string"`
4350}
4351
4352// String returns the string representation.
4353//
4354// API parameter values that are decorated as "sensitive" in the API will not
4355// be included in the string output. The member name will be present, but the
4356// value will be replaced with "sensitive".
4357func (s RequestCertificateOutput) String() string {
4358	return awsutil.Prettify(s)
4359}
4360
4361// GoString returns the string representation.
4362//
4363// API parameter values that are decorated as "sensitive" in the API will not
4364// be included in the string output. The member name will be present, but the
4365// value will be replaced with "sensitive".
4366func (s RequestCertificateOutput) GoString() string {
4367	return s.String()
4368}
4369
4370// SetCertificateArn sets the CertificateArn field's value.
4371func (s *RequestCertificateOutput) SetCertificateArn(v string) *RequestCertificateOutput {
4372	s.CertificateArn = &v
4373	return s
4374}
4375
4376// The certificate request is in process and the certificate in your account
4377// has not yet been issued.
4378type RequestInProgressException struct {
4379	_            struct{}                  `type:"structure"`
4380	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4381
4382	Message_ *string `locationName:"message" type:"string"`
4383}
4384
4385// String returns the string representation.
4386//
4387// API parameter values that are decorated as "sensitive" in the API will not
4388// be included in the string output. The member name will be present, but the
4389// value will be replaced with "sensitive".
4390func (s RequestInProgressException) String() string {
4391	return awsutil.Prettify(s)
4392}
4393
4394// GoString returns the string representation.
4395//
4396// API parameter values that are decorated as "sensitive" in the API will not
4397// be included in the string output. The member name will be present, but the
4398// value will be replaced with "sensitive".
4399func (s RequestInProgressException) GoString() string {
4400	return s.String()
4401}
4402
4403func newErrorRequestInProgressException(v protocol.ResponseMetadata) error {
4404	return &RequestInProgressException{
4405		RespMetadata: v,
4406	}
4407}
4408
4409// Code returns the exception type name.
4410func (s *RequestInProgressException) Code() string {
4411	return "RequestInProgressException"
4412}
4413
4414// Message returns the exception's message.
4415func (s *RequestInProgressException) Message() string {
4416	if s.Message_ != nil {
4417		return *s.Message_
4418	}
4419	return ""
4420}
4421
4422// OrigErr always returns nil, satisfies awserr.Error interface.
4423func (s *RequestInProgressException) OrigErr() error {
4424	return nil
4425}
4426
4427func (s *RequestInProgressException) Error() string {
4428	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4429}
4430
4431// Status code returns the HTTP status code for the request's response error.
4432func (s *RequestInProgressException) StatusCode() int {
4433	return s.RespMetadata.StatusCode
4434}
4435
4436// RequestID returns the service's response RequestID for request.
4437func (s *RequestInProgressException) RequestID() string {
4438	return s.RespMetadata.RequestID
4439}
4440
4441type ResendValidationEmailInput struct {
4442	_ struct{} `type:"structure"`
4443
4444	// String that contains the ARN of the requested certificate. The certificate
4445	// ARN is generated and returned by the RequestCertificate action as soon as
4446	// the request is made. By default, using this parameter causes email to be
4447	// sent to all top-level domains you specified in the certificate request. The
4448	// ARN must be of the form:
4449	//
4450	// arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
4451	//
4452	// CertificateArn is a required field
4453	CertificateArn *string `min:"20" type:"string" required:"true"`
4454
4455	// The fully qualified domain name (FQDN) of the certificate that needs to be
4456	// validated.
4457	//
4458	// Domain is a required field
4459	Domain *string `min:"1" type:"string" required:"true"`
4460
4461	// The base validation domain that will act as the suffix of the email addresses
4462	// that are used to send the emails. This must be the same as the Domain value
4463	// or a superdomain of the Domain value. For example, if you requested a certificate
4464	// for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com,
4465	// ACM sends email to the domain registrant, technical contact, and administrative
4466	// contact in WHOIS and the following five addresses:
4467	//
4468	//    * admin@subdomain.example.com
4469	//
4470	//    * administrator@subdomain.example.com
4471	//
4472	//    * hostmaster@subdomain.example.com
4473	//
4474	//    * postmaster@subdomain.example.com
4475	//
4476	//    * webmaster@subdomain.example.com
4477	//
4478	// ValidationDomain is a required field
4479	ValidationDomain *string `min:"1" type:"string" required:"true"`
4480}
4481
4482// String returns the string representation.
4483//
4484// API parameter values that are decorated as "sensitive" in the API will not
4485// be included in the string output. The member name will be present, but the
4486// value will be replaced with "sensitive".
4487func (s ResendValidationEmailInput) String() string {
4488	return awsutil.Prettify(s)
4489}
4490
4491// GoString returns the string representation.
4492//
4493// API parameter values that are decorated as "sensitive" in the API will not
4494// be included in the string output. The member name will be present, but the
4495// value will be replaced with "sensitive".
4496func (s ResendValidationEmailInput) GoString() string {
4497	return s.String()
4498}
4499
4500// Validate inspects the fields of the type to determine if they are valid.
4501func (s *ResendValidationEmailInput) Validate() error {
4502	invalidParams := request.ErrInvalidParams{Context: "ResendValidationEmailInput"}
4503	if s.CertificateArn == nil {
4504		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
4505	}
4506	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
4507		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
4508	}
4509	if s.Domain == nil {
4510		invalidParams.Add(request.NewErrParamRequired("Domain"))
4511	}
4512	if s.Domain != nil && len(*s.Domain) < 1 {
4513		invalidParams.Add(request.NewErrParamMinLen("Domain", 1))
4514	}
4515	if s.ValidationDomain == nil {
4516		invalidParams.Add(request.NewErrParamRequired("ValidationDomain"))
4517	}
4518	if s.ValidationDomain != nil && len(*s.ValidationDomain) < 1 {
4519		invalidParams.Add(request.NewErrParamMinLen("ValidationDomain", 1))
4520	}
4521
4522	if invalidParams.Len() > 0 {
4523		return invalidParams
4524	}
4525	return nil
4526}
4527
4528// SetCertificateArn sets the CertificateArn field's value.
4529func (s *ResendValidationEmailInput) SetCertificateArn(v string) *ResendValidationEmailInput {
4530	s.CertificateArn = &v
4531	return s
4532}
4533
4534// SetDomain sets the Domain field's value.
4535func (s *ResendValidationEmailInput) SetDomain(v string) *ResendValidationEmailInput {
4536	s.Domain = &v
4537	return s
4538}
4539
4540// SetValidationDomain sets the ValidationDomain field's value.
4541func (s *ResendValidationEmailInput) SetValidationDomain(v string) *ResendValidationEmailInput {
4542	s.ValidationDomain = &v
4543	return s
4544}
4545
4546type ResendValidationEmailOutput struct {
4547	_ struct{} `type:"structure"`
4548}
4549
4550// String returns the string representation.
4551//
4552// API parameter values that are decorated as "sensitive" in the API will not
4553// be included in the string output. The member name will be present, but the
4554// value will be replaced with "sensitive".
4555func (s ResendValidationEmailOutput) String() string {
4556	return awsutil.Prettify(s)
4557}
4558
4559// GoString returns the string representation.
4560//
4561// API parameter values that are decorated as "sensitive" in the API will not
4562// be included in the string output. The member name will be present, but the
4563// value will be replaced with "sensitive".
4564func (s ResendValidationEmailOutput) GoString() string {
4565	return s.String()
4566}
4567
4568// The certificate is in use by another Amazon Web Services service in the caller's
4569// account. Remove the association and try again.
4570type ResourceInUseException struct {
4571	_            struct{}                  `type:"structure"`
4572	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4573
4574	Message_ *string `locationName:"message" type:"string"`
4575}
4576
4577// String returns the string representation.
4578//
4579// API parameter values that are decorated as "sensitive" in the API will not
4580// be included in the string output. The member name will be present, but the
4581// value will be replaced with "sensitive".
4582func (s ResourceInUseException) String() string {
4583	return awsutil.Prettify(s)
4584}
4585
4586// GoString returns the string representation.
4587//
4588// API parameter values that are decorated as "sensitive" in the API will not
4589// be included in the string output. The member name will be present, but the
4590// value will be replaced with "sensitive".
4591func (s ResourceInUseException) GoString() string {
4592	return s.String()
4593}
4594
4595func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
4596	return &ResourceInUseException{
4597		RespMetadata: v,
4598	}
4599}
4600
4601// Code returns the exception type name.
4602func (s *ResourceInUseException) Code() string {
4603	return "ResourceInUseException"
4604}
4605
4606// Message returns the exception's message.
4607func (s *ResourceInUseException) Message() string {
4608	if s.Message_ != nil {
4609		return *s.Message_
4610	}
4611	return ""
4612}
4613
4614// OrigErr always returns nil, satisfies awserr.Error interface.
4615func (s *ResourceInUseException) OrigErr() error {
4616	return nil
4617}
4618
4619func (s *ResourceInUseException) Error() string {
4620	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4621}
4622
4623// Status code returns the HTTP status code for the request's response error.
4624func (s *ResourceInUseException) StatusCode() int {
4625	return s.RespMetadata.StatusCode
4626}
4627
4628// RequestID returns the service's response RequestID for request.
4629func (s *ResourceInUseException) RequestID() string {
4630	return s.RespMetadata.RequestID
4631}
4632
4633// The specified certificate cannot be found in the caller's account or the
4634// caller's account cannot be found.
4635type ResourceNotFoundException struct {
4636	_            struct{}                  `type:"structure"`
4637	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4638
4639	Message_ *string `locationName:"message" type:"string"`
4640}
4641
4642// String returns the string representation.
4643//
4644// API parameter values that are decorated as "sensitive" in the API will not
4645// be included in the string output. The member name will be present, but the
4646// value will be replaced with "sensitive".
4647func (s ResourceNotFoundException) String() string {
4648	return awsutil.Prettify(s)
4649}
4650
4651// GoString returns the string representation.
4652//
4653// API parameter values that are decorated as "sensitive" in the API will not
4654// be included in the string output. The member name will be present, but the
4655// value will be replaced with "sensitive".
4656func (s ResourceNotFoundException) GoString() string {
4657	return s.String()
4658}
4659
4660func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
4661	return &ResourceNotFoundException{
4662		RespMetadata: v,
4663	}
4664}
4665
4666// Code returns the exception type name.
4667func (s *ResourceNotFoundException) Code() string {
4668	return "ResourceNotFoundException"
4669}
4670
4671// Message returns the exception's message.
4672func (s *ResourceNotFoundException) Message() string {
4673	if s.Message_ != nil {
4674		return *s.Message_
4675	}
4676	return ""
4677}
4678
4679// OrigErr always returns nil, satisfies awserr.Error interface.
4680func (s *ResourceNotFoundException) OrigErr() error {
4681	return nil
4682}
4683
4684func (s *ResourceNotFoundException) Error() string {
4685	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4686}
4687
4688// Status code returns the HTTP status code for the request's response error.
4689func (s *ResourceNotFoundException) StatusCode() int {
4690	return s.RespMetadata.StatusCode
4691}
4692
4693// RequestID returns the service's response RequestID for request.
4694func (s *ResourceNotFoundException) RequestID() string {
4695	return s.RespMetadata.RequestID
4696}
4697
4698// Contains a DNS record value that you can use to validate ownership or control
4699// of a domain. This is used by the DescribeCertificate action.
4700type ResourceRecord struct {
4701	_ struct{} `type:"structure"`
4702
4703	// The name of the DNS record to create in your domain. This is supplied by
4704	// ACM.
4705	//
4706	// Name is a required field
4707	Name *string `type:"string" required:"true"`
4708
4709	// The type of DNS record. Currently this can be CNAME.
4710	//
4711	// Type is a required field
4712	Type *string `type:"string" required:"true" enum:"RecordType"`
4713
4714	// The value of the CNAME record to add to your DNS database. This is supplied
4715	// by ACM.
4716	//
4717	// Value is a required field
4718	Value *string `type:"string" required:"true"`
4719}
4720
4721// String returns the string representation.
4722//
4723// API parameter values that are decorated as "sensitive" in the API will not
4724// be included in the string output. The member name will be present, but the
4725// value will be replaced with "sensitive".
4726func (s ResourceRecord) String() string {
4727	return awsutil.Prettify(s)
4728}
4729
4730// GoString returns the string representation.
4731//
4732// API parameter values that are decorated as "sensitive" in the API will not
4733// be included in the string output. The member name will be present, but the
4734// value will be replaced with "sensitive".
4735func (s ResourceRecord) GoString() string {
4736	return s.String()
4737}
4738
4739// SetName sets the Name field's value.
4740func (s *ResourceRecord) SetName(v string) *ResourceRecord {
4741	s.Name = &v
4742	return s
4743}
4744
4745// SetType sets the Type field's value.
4746func (s *ResourceRecord) SetType(v string) *ResourceRecord {
4747	s.Type = &v
4748	return s
4749}
4750
4751// SetValue sets the Value field's value.
4752func (s *ResourceRecord) SetValue(v string) *ResourceRecord {
4753	s.Value = &v
4754	return s
4755}
4756
4757// A key-value pair that identifies or specifies metadata about an ACM resource.
4758type Tag struct {
4759	_ struct{} `type:"structure"`
4760
4761	// The key of the tag.
4762	//
4763	// Key is a required field
4764	Key *string `min:"1" type:"string" required:"true"`
4765
4766	// The value of the tag.
4767	Value *string `type:"string"`
4768}
4769
4770// String returns the string representation.
4771//
4772// API parameter values that are decorated as "sensitive" in the API will not
4773// be included in the string output. The member name will be present, but the
4774// value will be replaced with "sensitive".
4775func (s Tag) String() string {
4776	return awsutil.Prettify(s)
4777}
4778
4779// GoString returns the string representation.
4780//
4781// API parameter values that are decorated as "sensitive" in the API will not
4782// be included in the string output. The member name will be present, but the
4783// value will be replaced with "sensitive".
4784func (s Tag) GoString() string {
4785	return s.String()
4786}
4787
4788// Validate inspects the fields of the type to determine if they are valid.
4789func (s *Tag) Validate() error {
4790	invalidParams := request.ErrInvalidParams{Context: "Tag"}
4791	if s.Key == nil {
4792		invalidParams.Add(request.NewErrParamRequired("Key"))
4793	}
4794	if s.Key != nil && len(*s.Key) < 1 {
4795		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4796	}
4797
4798	if invalidParams.Len() > 0 {
4799		return invalidParams
4800	}
4801	return nil
4802}
4803
4804// SetKey sets the Key field's value.
4805func (s *Tag) SetKey(v string) *Tag {
4806	s.Key = &v
4807	return s
4808}
4809
4810// SetValue sets the Value field's value.
4811func (s *Tag) SetValue(v string) *Tag {
4812	s.Value = &v
4813	return s
4814}
4815
4816// A specified tag did not comply with an existing tag policy and was rejected.
4817type TagPolicyException struct {
4818	_            struct{}                  `type:"structure"`
4819	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4820
4821	Message_ *string `locationName:"message" type:"string"`
4822}
4823
4824// String returns the string representation.
4825//
4826// API parameter values that are decorated as "sensitive" in the API will not
4827// be included in the string output. The member name will be present, but the
4828// value will be replaced with "sensitive".
4829func (s TagPolicyException) String() string {
4830	return awsutil.Prettify(s)
4831}
4832
4833// GoString returns the string representation.
4834//
4835// API parameter values that are decorated as "sensitive" in the API will not
4836// be included in the string output. The member name will be present, but the
4837// value will be replaced with "sensitive".
4838func (s TagPolicyException) GoString() string {
4839	return s.String()
4840}
4841
4842func newErrorTagPolicyException(v protocol.ResponseMetadata) error {
4843	return &TagPolicyException{
4844		RespMetadata: v,
4845	}
4846}
4847
4848// Code returns the exception type name.
4849func (s *TagPolicyException) Code() string {
4850	return "TagPolicyException"
4851}
4852
4853// Message returns the exception's message.
4854func (s *TagPolicyException) Message() string {
4855	if s.Message_ != nil {
4856		return *s.Message_
4857	}
4858	return ""
4859}
4860
4861// OrigErr always returns nil, satisfies awserr.Error interface.
4862func (s *TagPolicyException) OrigErr() error {
4863	return nil
4864}
4865
4866func (s *TagPolicyException) Error() string {
4867	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4868}
4869
4870// Status code returns the HTTP status code for the request's response error.
4871func (s *TagPolicyException) StatusCode() int {
4872	return s.RespMetadata.StatusCode
4873}
4874
4875// RequestID returns the service's response RequestID for request.
4876func (s *TagPolicyException) RequestID() string {
4877	return s.RespMetadata.RequestID
4878}
4879
4880// The request was denied because it exceeded a quota.
4881type ThrottlingException struct {
4882	_            struct{}                  `type:"structure"`
4883	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4884
4885	Message_ *string `locationName:"message" type:"string"`
4886}
4887
4888// String returns the string representation.
4889//
4890// API parameter values that are decorated as "sensitive" in the API will not
4891// be included in the string output. The member name will be present, but the
4892// value will be replaced with "sensitive".
4893func (s ThrottlingException) String() string {
4894	return awsutil.Prettify(s)
4895}
4896
4897// GoString returns the string representation.
4898//
4899// API parameter values that are decorated as "sensitive" in the API will not
4900// be included in the string output. The member name will be present, but the
4901// value will be replaced with "sensitive".
4902func (s ThrottlingException) GoString() string {
4903	return s.String()
4904}
4905
4906func newErrorThrottlingException(v protocol.ResponseMetadata) error {
4907	return &ThrottlingException{
4908		RespMetadata: v,
4909	}
4910}
4911
4912// Code returns the exception type name.
4913func (s *ThrottlingException) Code() string {
4914	return "ThrottlingException"
4915}
4916
4917// Message returns the exception's message.
4918func (s *ThrottlingException) Message() string {
4919	if s.Message_ != nil {
4920		return *s.Message_
4921	}
4922	return ""
4923}
4924
4925// OrigErr always returns nil, satisfies awserr.Error interface.
4926func (s *ThrottlingException) OrigErr() error {
4927	return nil
4928}
4929
4930func (s *ThrottlingException) Error() string {
4931	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4932}
4933
4934// Status code returns the HTTP status code for the request's response error.
4935func (s *ThrottlingException) StatusCode() int {
4936	return s.RespMetadata.StatusCode
4937}
4938
4939// RequestID returns the service's response RequestID for request.
4940func (s *ThrottlingException) RequestID() string {
4941	return s.RespMetadata.RequestID
4942}
4943
4944// The request contains too many tags. Try the request again with fewer tags.
4945type TooManyTagsException struct {
4946	_            struct{}                  `type:"structure"`
4947	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4948
4949	Message_ *string `locationName:"message" type:"string"`
4950}
4951
4952// String returns the string representation.
4953//
4954// API parameter values that are decorated as "sensitive" in the API will not
4955// be included in the string output. The member name will be present, but the
4956// value will be replaced with "sensitive".
4957func (s TooManyTagsException) String() string {
4958	return awsutil.Prettify(s)
4959}
4960
4961// GoString returns the string representation.
4962//
4963// API parameter values that are decorated as "sensitive" in the API will not
4964// be included in the string output. The member name will be present, but the
4965// value will be replaced with "sensitive".
4966func (s TooManyTagsException) GoString() string {
4967	return s.String()
4968}
4969
4970func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
4971	return &TooManyTagsException{
4972		RespMetadata: v,
4973	}
4974}
4975
4976// Code returns the exception type name.
4977func (s *TooManyTagsException) Code() string {
4978	return "TooManyTagsException"
4979}
4980
4981// Message returns the exception's message.
4982func (s *TooManyTagsException) Message() string {
4983	if s.Message_ != nil {
4984		return *s.Message_
4985	}
4986	return ""
4987}
4988
4989// OrigErr always returns nil, satisfies awserr.Error interface.
4990func (s *TooManyTagsException) OrigErr() error {
4991	return nil
4992}
4993
4994func (s *TooManyTagsException) Error() string {
4995	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4996}
4997
4998// Status code returns the HTTP status code for the request's response error.
4999func (s *TooManyTagsException) StatusCode() int {
5000	return s.RespMetadata.StatusCode
5001}
5002
5003// RequestID returns the service's response RequestID for request.
5004func (s *TooManyTagsException) RequestID() string {
5005	return s.RespMetadata.RequestID
5006}
5007
5008type UpdateCertificateOptionsInput struct {
5009	_ struct{} `type:"structure"`
5010
5011	// ARN of the requested certificate to update. This must be of the form:
5012	//
5013	// arn:aws:acm:us-east-1:account:certificate/12345678-1234-1234-1234-123456789012
5014	//
5015	// CertificateArn is a required field
5016	CertificateArn *string `min:"20" type:"string" required:"true"`
5017
5018	// Use to update the options for your certificate. Currently, you can specify
5019	// whether to add your certificate to a transparency log. Certificate transparency
5020	// makes it possible to detect SSL/TLS certificates that have been mistakenly
5021	// or maliciously issued. Certificates that have not been logged typically produce
5022	// an error message in a browser.
5023	//
5024	// Options is a required field
5025	Options *CertificateOptions `type:"structure" required:"true"`
5026}
5027
5028// String returns the string representation.
5029//
5030// API parameter values that are decorated as "sensitive" in the API will not
5031// be included in the string output. The member name will be present, but the
5032// value will be replaced with "sensitive".
5033func (s UpdateCertificateOptionsInput) String() string {
5034	return awsutil.Prettify(s)
5035}
5036
5037// GoString returns the string representation.
5038//
5039// API parameter values that are decorated as "sensitive" in the API will not
5040// be included in the string output. The member name will be present, but the
5041// value will be replaced with "sensitive".
5042func (s UpdateCertificateOptionsInput) GoString() string {
5043	return s.String()
5044}
5045
5046// Validate inspects the fields of the type to determine if they are valid.
5047func (s *UpdateCertificateOptionsInput) Validate() error {
5048	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateOptionsInput"}
5049	if s.CertificateArn == nil {
5050		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
5051	}
5052	if s.CertificateArn != nil && len(*s.CertificateArn) < 20 {
5053		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 20))
5054	}
5055	if s.Options == nil {
5056		invalidParams.Add(request.NewErrParamRequired("Options"))
5057	}
5058
5059	if invalidParams.Len() > 0 {
5060		return invalidParams
5061	}
5062	return nil
5063}
5064
5065// SetCertificateArn sets the CertificateArn field's value.
5066func (s *UpdateCertificateOptionsInput) SetCertificateArn(v string) *UpdateCertificateOptionsInput {
5067	s.CertificateArn = &v
5068	return s
5069}
5070
5071// SetOptions sets the Options field's value.
5072func (s *UpdateCertificateOptionsInput) SetOptions(v *CertificateOptions) *UpdateCertificateOptionsInput {
5073	s.Options = v
5074	return s
5075}
5076
5077type UpdateCertificateOptionsOutput struct {
5078	_ struct{} `type:"structure"`
5079}
5080
5081// String returns the string representation.
5082//
5083// API parameter values that are decorated as "sensitive" in the API will not
5084// be included in the string output. The member name will be present, but the
5085// value will be replaced with "sensitive".
5086func (s UpdateCertificateOptionsOutput) String() string {
5087	return awsutil.Prettify(s)
5088}
5089
5090// GoString returns the string representation.
5091//
5092// API parameter values that are decorated as "sensitive" in the API will not
5093// be included in the string output. The member name will be present, but the
5094// value will be replaced with "sensitive".
5095func (s UpdateCertificateOptionsOutput) GoString() string {
5096	return s.String()
5097}
5098
5099// The supplied input failed to satisfy constraints of an Amazon Web Services
5100// service.
5101type ValidationException struct {
5102	_            struct{}                  `type:"structure"`
5103	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5104
5105	Message_ *string `locationName:"message" type:"string"`
5106}
5107
5108// String returns the string representation.
5109//
5110// API parameter values that are decorated as "sensitive" in the API will not
5111// be included in the string output. The member name will be present, but the
5112// value will be replaced with "sensitive".
5113func (s ValidationException) String() string {
5114	return awsutil.Prettify(s)
5115}
5116
5117// GoString returns the string representation.
5118//
5119// API parameter values that are decorated as "sensitive" in the API will not
5120// be included in the string output. The member name will be present, but the
5121// value will be replaced with "sensitive".
5122func (s ValidationException) GoString() string {
5123	return s.String()
5124}
5125
5126func newErrorValidationException(v protocol.ResponseMetadata) error {
5127	return &ValidationException{
5128		RespMetadata: v,
5129	}
5130}
5131
5132// Code returns the exception type name.
5133func (s *ValidationException) Code() string {
5134	return "ValidationException"
5135}
5136
5137// Message returns the exception's message.
5138func (s *ValidationException) Message() string {
5139	if s.Message_ != nil {
5140		return *s.Message_
5141	}
5142	return ""
5143}
5144
5145// OrigErr always returns nil, satisfies awserr.Error interface.
5146func (s *ValidationException) OrigErr() error {
5147	return nil
5148}
5149
5150func (s *ValidationException) Error() string {
5151	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5152}
5153
5154// Status code returns the HTTP status code for the request's response error.
5155func (s *ValidationException) StatusCode() int {
5156	return s.RespMetadata.StatusCode
5157}
5158
5159// RequestID returns the service's response RequestID for request.
5160func (s *ValidationException) RequestID() string {
5161	return s.RespMetadata.RequestID
5162}
5163
5164const (
5165	// CertificateStatusPendingValidation is a CertificateStatus enum value
5166	CertificateStatusPendingValidation = "PENDING_VALIDATION"
5167
5168	// CertificateStatusIssued is a CertificateStatus enum value
5169	CertificateStatusIssued = "ISSUED"
5170
5171	// CertificateStatusInactive is a CertificateStatus enum value
5172	CertificateStatusInactive = "INACTIVE"
5173
5174	// CertificateStatusExpired is a CertificateStatus enum value
5175	CertificateStatusExpired = "EXPIRED"
5176
5177	// CertificateStatusValidationTimedOut is a CertificateStatus enum value
5178	CertificateStatusValidationTimedOut = "VALIDATION_TIMED_OUT"
5179
5180	// CertificateStatusRevoked is a CertificateStatus enum value
5181	CertificateStatusRevoked = "REVOKED"
5182
5183	// CertificateStatusFailed is a CertificateStatus enum value
5184	CertificateStatusFailed = "FAILED"
5185)
5186
5187// CertificateStatus_Values returns all elements of the CertificateStatus enum
5188func CertificateStatus_Values() []string {
5189	return []string{
5190		CertificateStatusPendingValidation,
5191		CertificateStatusIssued,
5192		CertificateStatusInactive,
5193		CertificateStatusExpired,
5194		CertificateStatusValidationTimedOut,
5195		CertificateStatusRevoked,
5196		CertificateStatusFailed,
5197	}
5198}
5199
5200const (
5201	// CertificateTransparencyLoggingPreferenceEnabled is a CertificateTransparencyLoggingPreference enum value
5202	CertificateTransparencyLoggingPreferenceEnabled = "ENABLED"
5203
5204	// CertificateTransparencyLoggingPreferenceDisabled is a CertificateTransparencyLoggingPreference enum value
5205	CertificateTransparencyLoggingPreferenceDisabled = "DISABLED"
5206)
5207
5208// CertificateTransparencyLoggingPreference_Values returns all elements of the CertificateTransparencyLoggingPreference enum
5209func CertificateTransparencyLoggingPreference_Values() []string {
5210	return []string{
5211		CertificateTransparencyLoggingPreferenceEnabled,
5212		CertificateTransparencyLoggingPreferenceDisabled,
5213	}
5214}
5215
5216const (
5217	// CertificateTypeImported is a CertificateType enum value
5218	CertificateTypeImported = "IMPORTED"
5219
5220	// CertificateTypeAmazonIssued is a CertificateType enum value
5221	CertificateTypeAmazonIssued = "AMAZON_ISSUED"
5222
5223	// CertificateTypePrivate is a CertificateType enum value
5224	CertificateTypePrivate = "PRIVATE"
5225)
5226
5227// CertificateType_Values returns all elements of the CertificateType enum
5228func CertificateType_Values() []string {
5229	return []string{
5230		CertificateTypeImported,
5231		CertificateTypeAmazonIssued,
5232		CertificateTypePrivate,
5233	}
5234}
5235
5236const (
5237	// DomainStatusPendingValidation is a DomainStatus enum value
5238	DomainStatusPendingValidation = "PENDING_VALIDATION"
5239
5240	// DomainStatusSuccess is a DomainStatus enum value
5241	DomainStatusSuccess = "SUCCESS"
5242
5243	// DomainStatusFailed is a DomainStatus enum value
5244	DomainStatusFailed = "FAILED"
5245)
5246
5247// DomainStatus_Values returns all elements of the DomainStatus enum
5248func DomainStatus_Values() []string {
5249	return []string{
5250		DomainStatusPendingValidation,
5251		DomainStatusSuccess,
5252		DomainStatusFailed,
5253	}
5254}
5255
5256const (
5257	// ExtendedKeyUsageNameTlsWebServerAuthentication is a ExtendedKeyUsageName enum value
5258	ExtendedKeyUsageNameTlsWebServerAuthentication = "TLS_WEB_SERVER_AUTHENTICATION"
5259
5260	// ExtendedKeyUsageNameTlsWebClientAuthentication is a ExtendedKeyUsageName enum value
5261	ExtendedKeyUsageNameTlsWebClientAuthentication = "TLS_WEB_CLIENT_AUTHENTICATION"
5262
5263	// ExtendedKeyUsageNameCodeSigning is a ExtendedKeyUsageName enum value
5264	ExtendedKeyUsageNameCodeSigning = "CODE_SIGNING"
5265
5266	// ExtendedKeyUsageNameEmailProtection is a ExtendedKeyUsageName enum value
5267	ExtendedKeyUsageNameEmailProtection = "EMAIL_PROTECTION"
5268
5269	// ExtendedKeyUsageNameTimeStamping is a ExtendedKeyUsageName enum value
5270	ExtendedKeyUsageNameTimeStamping = "TIME_STAMPING"
5271
5272	// ExtendedKeyUsageNameOcspSigning is a ExtendedKeyUsageName enum value
5273	ExtendedKeyUsageNameOcspSigning = "OCSP_SIGNING"
5274
5275	// ExtendedKeyUsageNameIpsecEndSystem is a ExtendedKeyUsageName enum value
5276	ExtendedKeyUsageNameIpsecEndSystem = "IPSEC_END_SYSTEM"
5277
5278	// ExtendedKeyUsageNameIpsecTunnel is a ExtendedKeyUsageName enum value
5279	ExtendedKeyUsageNameIpsecTunnel = "IPSEC_TUNNEL"
5280
5281	// ExtendedKeyUsageNameIpsecUser is a ExtendedKeyUsageName enum value
5282	ExtendedKeyUsageNameIpsecUser = "IPSEC_USER"
5283
5284	// ExtendedKeyUsageNameAny is a ExtendedKeyUsageName enum value
5285	ExtendedKeyUsageNameAny = "ANY"
5286
5287	// ExtendedKeyUsageNameNone is a ExtendedKeyUsageName enum value
5288	ExtendedKeyUsageNameNone = "NONE"
5289
5290	// ExtendedKeyUsageNameCustom is a ExtendedKeyUsageName enum value
5291	ExtendedKeyUsageNameCustom = "CUSTOM"
5292)
5293
5294// ExtendedKeyUsageName_Values returns all elements of the ExtendedKeyUsageName enum
5295func ExtendedKeyUsageName_Values() []string {
5296	return []string{
5297		ExtendedKeyUsageNameTlsWebServerAuthentication,
5298		ExtendedKeyUsageNameTlsWebClientAuthentication,
5299		ExtendedKeyUsageNameCodeSigning,
5300		ExtendedKeyUsageNameEmailProtection,
5301		ExtendedKeyUsageNameTimeStamping,
5302		ExtendedKeyUsageNameOcspSigning,
5303		ExtendedKeyUsageNameIpsecEndSystem,
5304		ExtendedKeyUsageNameIpsecTunnel,
5305		ExtendedKeyUsageNameIpsecUser,
5306		ExtendedKeyUsageNameAny,
5307		ExtendedKeyUsageNameNone,
5308		ExtendedKeyUsageNameCustom,
5309	}
5310}
5311
5312const (
5313	// FailureReasonNoAvailableContacts is a FailureReason enum value
5314	FailureReasonNoAvailableContacts = "NO_AVAILABLE_CONTACTS"
5315
5316	// FailureReasonAdditionalVerificationRequired is a FailureReason enum value
5317	FailureReasonAdditionalVerificationRequired = "ADDITIONAL_VERIFICATION_REQUIRED"
5318
5319	// FailureReasonDomainNotAllowed is a FailureReason enum value
5320	FailureReasonDomainNotAllowed = "DOMAIN_NOT_ALLOWED"
5321
5322	// FailureReasonInvalidPublicDomain is a FailureReason enum value
5323	FailureReasonInvalidPublicDomain = "INVALID_PUBLIC_DOMAIN"
5324
5325	// FailureReasonDomainValidationDenied is a FailureReason enum value
5326	FailureReasonDomainValidationDenied = "DOMAIN_VALIDATION_DENIED"
5327
5328	// FailureReasonCaaError is a FailureReason enum value
5329	FailureReasonCaaError = "CAA_ERROR"
5330
5331	// FailureReasonPcaLimitExceeded is a FailureReason enum value
5332	FailureReasonPcaLimitExceeded = "PCA_LIMIT_EXCEEDED"
5333
5334	// FailureReasonPcaInvalidArn is a FailureReason enum value
5335	FailureReasonPcaInvalidArn = "PCA_INVALID_ARN"
5336
5337	// FailureReasonPcaInvalidState is a FailureReason enum value
5338	FailureReasonPcaInvalidState = "PCA_INVALID_STATE"
5339
5340	// FailureReasonPcaRequestFailed is a FailureReason enum value
5341	FailureReasonPcaRequestFailed = "PCA_REQUEST_FAILED"
5342
5343	// FailureReasonPcaNameConstraintsValidation is a FailureReason enum value
5344	FailureReasonPcaNameConstraintsValidation = "PCA_NAME_CONSTRAINTS_VALIDATION"
5345
5346	// FailureReasonPcaResourceNotFound is a FailureReason enum value
5347	FailureReasonPcaResourceNotFound = "PCA_RESOURCE_NOT_FOUND"
5348
5349	// FailureReasonPcaInvalidArgs is a FailureReason enum value
5350	FailureReasonPcaInvalidArgs = "PCA_INVALID_ARGS"
5351
5352	// FailureReasonPcaInvalidDuration is a FailureReason enum value
5353	FailureReasonPcaInvalidDuration = "PCA_INVALID_DURATION"
5354
5355	// FailureReasonPcaAccessDenied is a FailureReason enum value
5356	FailureReasonPcaAccessDenied = "PCA_ACCESS_DENIED"
5357
5358	// FailureReasonSlrNotFound is a FailureReason enum value
5359	FailureReasonSlrNotFound = "SLR_NOT_FOUND"
5360
5361	// FailureReasonOther is a FailureReason enum value
5362	FailureReasonOther = "OTHER"
5363)
5364
5365// FailureReason_Values returns all elements of the FailureReason enum
5366func FailureReason_Values() []string {
5367	return []string{
5368		FailureReasonNoAvailableContacts,
5369		FailureReasonAdditionalVerificationRequired,
5370		FailureReasonDomainNotAllowed,
5371		FailureReasonInvalidPublicDomain,
5372		FailureReasonDomainValidationDenied,
5373		FailureReasonCaaError,
5374		FailureReasonPcaLimitExceeded,
5375		FailureReasonPcaInvalidArn,
5376		FailureReasonPcaInvalidState,
5377		FailureReasonPcaRequestFailed,
5378		FailureReasonPcaNameConstraintsValidation,
5379		FailureReasonPcaResourceNotFound,
5380		FailureReasonPcaInvalidArgs,
5381		FailureReasonPcaInvalidDuration,
5382		FailureReasonPcaAccessDenied,
5383		FailureReasonSlrNotFound,
5384		FailureReasonOther,
5385	}
5386}
5387
5388const (
5389	// KeyAlgorithmRsa1024 is a KeyAlgorithm enum value
5390	KeyAlgorithmRsa1024 = "RSA_1024"
5391
5392	// KeyAlgorithmRsa2048 is a KeyAlgorithm enum value
5393	KeyAlgorithmRsa2048 = "RSA_2048"
5394
5395	// KeyAlgorithmRsa3072 is a KeyAlgorithm enum value
5396	KeyAlgorithmRsa3072 = "RSA_3072"
5397
5398	// KeyAlgorithmRsa4096 is a KeyAlgorithm enum value
5399	KeyAlgorithmRsa4096 = "RSA_4096"
5400
5401	// KeyAlgorithmEcPrime256v1 is a KeyAlgorithm enum value
5402	KeyAlgorithmEcPrime256v1 = "EC_prime256v1"
5403
5404	// KeyAlgorithmEcSecp384r1 is a KeyAlgorithm enum value
5405	KeyAlgorithmEcSecp384r1 = "EC_secp384r1"
5406
5407	// KeyAlgorithmEcSecp521r1 is a KeyAlgorithm enum value
5408	KeyAlgorithmEcSecp521r1 = "EC_secp521r1"
5409)
5410
5411// KeyAlgorithm_Values returns all elements of the KeyAlgorithm enum
5412func KeyAlgorithm_Values() []string {
5413	return []string{
5414		KeyAlgorithmRsa1024,
5415		KeyAlgorithmRsa2048,
5416		KeyAlgorithmRsa3072,
5417		KeyAlgorithmRsa4096,
5418		KeyAlgorithmEcPrime256v1,
5419		KeyAlgorithmEcSecp384r1,
5420		KeyAlgorithmEcSecp521r1,
5421	}
5422}
5423
5424const (
5425	// KeyUsageNameDigitalSignature is a KeyUsageName enum value
5426	KeyUsageNameDigitalSignature = "DIGITAL_SIGNATURE"
5427
5428	// KeyUsageNameNonRepudiation is a KeyUsageName enum value
5429	KeyUsageNameNonRepudiation = "NON_REPUDIATION"
5430
5431	// KeyUsageNameKeyEncipherment is a KeyUsageName enum value
5432	KeyUsageNameKeyEncipherment = "KEY_ENCIPHERMENT"
5433
5434	// KeyUsageNameDataEncipherment is a KeyUsageName enum value
5435	KeyUsageNameDataEncipherment = "DATA_ENCIPHERMENT"
5436
5437	// KeyUsageNameKeyAgreement is a KeyUsageName enum value
5438	KeyUsageNameKeyAgreement = "KEY_AGREEMENT"
5439
5440	// KeyUsageNameCertificateSigning is a KeyUsageName enum value
5441	KeyUsageNameCertificateSigning = "CERTIFICATE_SIGNING"
5442
5443	// KeyUsageNameCrlSigning is a KeyUsageName enum value
5444	KeyUsageNameCrlSigning = "CRL_SIGNING"
5445
5446	// KeyUsageNameEncipherOnly is a KeyUsageName enum value
5447	KeyUsageNameEncipherOnly = "ENCIPHER_ONLY"
5448
5449	// KeyUsageNameDecipherOnly is a KeyUsageName enum value
5450	KeyUsageNameDecipherOnly = "DECIPHER_ONLY"
5451
5452	// KeyUsageNameAny is a KeyUsageName enum value
5453	KeyUsageNameAny = "ANY"
5454
5455	// KeyUsageNameCustom is a KeyUsageName enum value
5456	KeyUsageNameCustom = "CUSTOM"
5457)
5458
5459// KeyUsageName_Values returns all elements of the KeyUsageName enum
5460func KeyUsageName_Values() []string {
5461	return []string{
5462		KeyUsageNameDigitalSignature,
5463		KeyUsageNameNonRepudiation,
5464		KeyUsageNameKeyEncipherment,
5465		KeyUsageNameDataEncipherment,
5466		KeyUsageNameKeyAgreement,
5467		KeyUsageNameCertificateSigning,
5468		KeyUsageNameCrlSigning,
5469		KeyUsageNameEncipherOnly,
5470		KeyUsageNameDecipherOnly,
5471		KeyUsageNameAny,
5472		KeyUsageNameCustom,
5473	}
5474}
5475
5476const (
5477	// RecordTypeCname is a RecordType enum value
5478	RecordTypeCname = "CNAME"
5479)
5480
5481// RecordType_Values returns all elements of the RecordType enum
5482func RecordType_Values() []string {
5483	return []string{
5484		RecordTypeCname,
5485	}
5486}
5487
5488const (
5489	// RenewalEligibilityEligible is a RenewalEligibility enum value
5490	RenewalEligibilityEligible = "ELIGIBLE"
5491
5492	// RenewalEligibilityIneligible is a RenewalEligibility enum value
5493	RenewalEligibilityIneligible = "INELIGIBLE"
5494)
5495
5496// RenewalEligibility_Values returns all elements of the RenewalEligibility enum
5497func RenewalEligibility_Values() []string {
5498	return []string{
5499		RenewalEligibilityEligible,
5500		RenewalEligibilityIneligible,
5501	}
5502}
5503
5504const (
5505	// RenewalStatusPendingAutoRenewal is a RenewalStatus enum value
5506	RenewalStatusPendingAutoRenewal = "PENDING_AUTO_RENEWAL"
5507
5508	// RenewalStatusPendingValidation is a RenewalStatus enum value
5509	RenewalStatusPendingValidation = "PENDING_VALIDATION"
5510
5511	// RenewalStatusSuccess is a RenewalStatus enum value
5512	RenewalStatusSuccess = "SUCCESS"
5513
5514	// RenewalStatusFailed is a RenewalStatus enum value
5515	RenewalStatusFailed = "FAILED"
5516)
5517
5518// RenewalStatus_Values returns all elements of the RenewalStatus enum
5519func RenewalStatus_Values() []string {
5520	return []string{
5521		RenewalStatusPendingAutoRenewal,
5522		RenewalStatusPendingValidation,
5523		RenewalStatusSuccess,
5524		RenewalStatusFailed,
5525	}
5526}
5527
5528const (
5529	// RevocationReasonUnspecified is a RevocationReason enum value
5530	RevocationReasonUnspecified = "UNSPECIFIED"
5531
5532	// RevocationReasonKeyCompromise is a RevocationReason enum value
5533	RevocationReasonKeyCompromise = "KEY_COMPROMISE"
5534
5535	// RevocationReasonCaCompromise is a RevocationReason enum value
5536	RevocationReasonCaCompromise = "CA_COMPROMISE"
5537
5538	// RevocationReasonAffiliationChanged is a RevocationReason enum value
5539	RevocationReasonAffiliationChanged = "AFFILIATION_CHANGED"
5540
5541	// RevocationReasonSuperceded is a RevocationReason enum value
5542	RevocationReasonSuperceded = "SUPERCEDED"
5543
5544	// RevocationReasonCessationOfOperation is a RevocationReason enum value
5545	RevocationReasonCessationOfOperation = "CESSATION_OF_OPERATION"
5546
5547	// RevocationReasonCertificateHold is a RevocationReason enum value
5548	RevocationReasonCertificateHold = "CERTIFICATE_HOLD"
5549
5550	// RevocationReasonRemoveFromCrl is a RevocationReason enum value
5551	RevocationReasonRemoveFromCrl = "REMOVE_FROM_CRL"
5552
5553	// RevocationReasonPrivilegeWithdrawn is a RevocationReason enum value
5554	RevocationReasonPrivilegeWithdrawn = "PRIVILEGE_WITHDRAWN"
5555
5556	// RevocationReasonAACompromise is a RevocationReason enum value
5557	RevocationReasonAACompromise = "A_A_COMPROMISE"
5558)
5559
5560// RevocationReason_Values returns all elements of the RevocationReason enum
5561func RevocationReason_Values() []string {
5562	return []string{
5563		RevocationReasonUnspecified,
5564		RevocationReasonKeyCompromise,
5565		RevocationReasonCaCompromise,
5566		RevocationReasonAffiliationChanged,
5567		RevocationReasonSuperceded,
5568		RevocationReasonCessationOfOperation,
5569		RevocationReasonCertificateHold,
5570		RevocationReasonRemoveFromCrl,
5571		RevocationReasonPrivilegeWithdrawn,
5572		RevocationReasonAACompromise,
5573	}
5574}
5575
5576const (
5577	// ValidationMethodEmail is a ValidationMethod enum value
5578	ValidationMethodEmail = "EMAIL"
5579
5580	// ValidationMethodDns is a ValidationMethod enum value
5581	ValidationMethodDns = "DNS"
5582)
5583
5584// ValidationMethod_Values returns all elements of the ValidationMethod enum
5585func ValidationMethod_Values() []string {
5586	return []string{
5587		ValidationMethodEmail,
5588		ValidationMethodDns,
5589	}
5590}
5591