github.com/aavshr/aws-sdk-go@v1.41.3/service/acm/api.go (about)

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