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