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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package acmpca
     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 opCreateCertificateAuthority = "CreateCertificateAuthority"
    17  
    18  // CreateCertificateAuthorityRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateCertificateAuthority 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 CreateCertificateAuthority for more information on using the CreateCertificateAuthority
    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 CreateCertificateAuthorityRequest method.
    34  //    req, resp := client.CreateCertificateAuthorityRequest(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-pca-2017-08-22/CreateCertificateAuthority
    42  func (c *ACMPCA) CreateCertificateAuthorityRequest(input *CreateCertificateAuthorityInput) (req *request.Request, output *CreateCertificateAuthorityOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCreateCertificateAuthority,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CreateCertificateAuthorityInput{}
    51  	}
    52  
    53  	output = &CreateCertificateAuthorityOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CreateCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
    59  //
    60  // Creates a root or subordinate private certificate authority (CA). You must
    61  // specify the CA configuration, an optional configuration for Online Certificate
    62  // Status Protocol (OCSP) and/or a certificate revocation list (CRL), the CA
    63  // type, and an optional idempotency token to avoid accidental creation of multiple
    64  // CAs. The CA configuration specifies the name of the algorithm and key size
    65  // to be used to create the CA private key, the type of signing algorithm that
    66  // the CA uses, and X.500 subject information. The OCSP configuration can optionally
    67  // specify a custom URL for the OCSP responder. The CRL configuration specifies
    68  // the CRL expiration period in days (the validity period of the CRL), the Amazon
    69  // S3 bucket that will contain the CRL, and a CNAME alias for the S3 bucket
    70  // that is included in certificates issued by the CA. If successful, this action
    71  // returns the Amazon Resource Name (ARN) of the CA.
    72  //
    73  // ACM Private CA assets that are stored in Amazon S3 can be protected with
    74  // encryption. For more information, see Encrypting Your CRLs (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption).
    75  //
    76  // Both PCA and the IAM principal must have permission to write to the S3 bucket
    77  // that you specify. If the IAM principal making the call does not have permission
    78  // to write to the bucket, then an exception is thrown. For more information,
    79  // see Configure Access to ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html).
    80  //
    81  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    82  // with awserr.Error's Code and Message methods to get detailed information about
    83  // the error.
    84  //
    85  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
    86  // API operation CreateCertificateAuthority for usage and error information.
    87  //
    88  // Returned Error Types:
    89  //   * InvalidArgsException
    90  //   One or more of the specified arguments was not valid.
    91  //
    92  //   * InvalidPolicyException
    93  //   The resource policy is invalid or is missing a required statement. For general
    94  //   information about IAM policy and statement structure, see Overview of JSON
    95  //   Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json).
    96  //
    97  //   * InvalidTagException
    98  //   The tag associated with the CA is not valid. The invalid argument is contained
    99  //   in the message field.
   100  //
   101  //   * LimitExceededException
   102  //   An ACM Private CA quota has been exceeded. See the exception message returned
   103  //   to determine the quota that was exceeded.
   104  //
   105  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/CreateCertificateAuthority
   106  func (c *ACMPCA) CreateCertificateAuthority(input *CreateCertificateAuthorityInput) (*CreateCertificateAuthorityOutput, error) {
   107  	req, out := c.CreateCertificateAuthorityRequest(input)
   108  	return out, req.Send()
   109  }
   110  
   111  // CreateCertificateAuthorityWithContext is the same as CreateCertificateAuthority with the addition of
   112  // the ability to pass a context and additional request options.
   113  //
   114  // See CreateCertificateAuthority for details on how to use this API operation.
   115  //
   116  // The context must be non-nil and will be used for request cancellation. If
   117  // the context is nil a panic will occur. In the future the SDK may create
   118  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   119  // for more information on using Contexts.
   120  func (c *ACMPCA) CreateCertificateAuthorityWithContext(ctx aws.Context, input *CreateCertificateAuthorityInput, opts ...request.Option) (*CreateCertificateAuthorityOutput, error) {
   121  	req, out := c.CreateCertificateAuthorityRequest(input)
   122  	req.SetContext(ctx)
   123  	req.ApplyOptions(opts...)
   124  	return out, req.Send()
   125  }
   126  
   127  const opCreateCertificateAuthorityAuditReport = "CreateCertificateAuthorityAuditReport"
   128  
   129  // CreateCertificateAuthorityAuditReportRequest generates a "aws/request.Request" representing the
   130  // client's request for the CreateCertificateAuthorityAuditReport operation. The "output" return
   131  // value will be populated with the request's response once the request completes
   132  // successfully.
   133  //
   134  // Use "Send" method on the returned Request to send the API call to the service.
   135  // the "output" return value is not valid until after Send returns without error.
   136  //
   137  // See CreateCertificateAuthorityAuditReport for more information on using the CreateCertificateAuthorityAuditReport
   138  // API call, and error handling.
   139  //
   140  // This method is useful when you want to inject custom logic or configuration
   141  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   142  //
   143  //
   144  //    // Example sending a request using the CreateCertificateAuthorityAuditReportRequest method.
   145  //    req, resp := client.CreateCertificateAuthorityAuditReportRequest(params)
   146  //
   147  //    err := req.Send()
   148  //    if err == nil { // resp is now filled
   149  //        fmt.Println(resp)
   150  //    }
   151  //
   152  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/CreateCertificateAuthorityAuditReport
   153  func (c *ACMPCA) CreateCertificateAuthorityAuditReportRequest(input *CreateCertificateAuthorityAuditReportInput) (req *request.Request, output *CreateCertificateAuthorityAuditReportOutput) {
   154  	op := &request.Operation{
   155  		Name:       opCreateCertificateAuthorityAuditReport,
   156  		HTTPMethod: "POST",
   157  		HTTPPath:   "/",
   158  	}
   159  
   160  	if input == nil {
   161  		input = &CreateCertificateAuthorityAuditReportInput{}
   162  	}
   163  
   164  	output = &CreateCertificateAuthorityAuditReportOutput{}
   165  	req = c.newRequest(op, input, output)
   166  	return
   167  }
   168  
   169  // CreateCertificateAuthorityAuditReport API operation for AWS Certificate Manager Private Certificate Authority.
   170  //
   171  // Creates an audit report that lists every time that your CA private key is
   172  // used. The report is saved in the Amazon S3 bucket that you specify on input.
   173  // The IssueCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html)
   174  // and RevokeCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html)
   175  // actions use the private key.
   176  //
   177  // Both PCA and the IAM principal must have permission to write to the S3 bucket
   178  // that you specify. If the IAM principal making the call does not have permission
   179  // to write to the bucket, then an exception is thrown. For more information,
   180  // see Configure Access to ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html).
   181  //
   182  // ACM Private CA assets that are stored in Amazon S3 can be protected with
   183  // encryption. For more information, see Encrypting Your Audit Reports (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuditReport.html#audit-report-encryption).
   184  //
   185  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   186  // with awserr.Error's Code and Message methods to get detailed information about
   187  // the error.
   188  //
   189  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   190  // API operation CreateCertificateAuthorityAuditReport for usage and error information.
   191  //
   192  // Returned Error Types:
   193  //   * RequestInProgressException
   194  //   Your request is already in progress.
   195  //
   196  //   * RequestFailedException
   197  //   The request has failed for an unspecified reason.
   198  //
   199  //   * ResourceNotFoundException
   200  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   201  //   policy cannot be found.
   202  //
   203  //   * InvalidArnException
   204  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   205  //
   206  //   * InvalidArgsException
   207  //   One or more of the specified arguments was not valid.
   208  //
   209  //   * InvalidStateException
   210  //   The state of the private CA does not allow this action to occur.
   211  //
   212  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/CreateCertificateAuthorityAuditReport
   213  func (c *ACMPCA) CreateCertificateAuthorityAuditReport(input *CreateCertificateAuthorityAuditReportInput) (*CreateCertificateAuthorityAuditReportOutput, error) {
   214  	req, out := c.CreateCertificateAuthorityAuditReportRequest(input)
   215  	return out, req.Send()
   216  }
   217  
   218  // CreateCertificateAuthorityAuditReportWithContext is the same as CreateCertificateAuthorityAuditReport with the addition of
   219  // the ability to pass a context and additional request options.
   220  //
   221  // See CreateCertificateAuthorityAuditReport for details on how to use this API operation.
   222  //
   223  // The context must be non-nil and will be used for request cancellation. If
   224  // the context is nil a panic will occur. In the future the SDK may create
   225  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   226  // for more information on using Contexts.
   227  func (c *ACMPCA) CreateCertificateAuthorityAuditReportWithContext(ctx aws.Context, input *CreateCertificateAuthorityAuditReportInput, opts ...request.Option) (*CreateCertificateAuthorityAuditReportOutput, error) {
   228  	req, out := c.CreateCertificateAuthorityAuditReportRequest(input)
   229  	req.SetContext(ctx)
   230  	req.ApplyOptions(opts...)
   231  	return out, req.Send()
   232  }
   233  
   234  const opCreatePermission = "CreatePermission"
   235  
   236  // CreatePermissionRequest generates a "aws/request.Request" representing the
   237  // client's request for the CreatePermission operation. The "output" return
   238  // value will be populated with the request's response once the request completes
   239  // successfully.
   240  //
   241  // Use "Send" method on the returned Request to send the API call to the service.
   242  // the "output" return value is not valid until after Send returns without error.
   243  //
   244  // See CreatePermission for more information on using the CreatePermission
   245  // API call, and error handling.
   246  //
   247  // This method is useful when you want to inject custom logic or configuration
   248  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   249  //
   250  //
   251  //    // Example sending a request using the CreatePermissionRequest method.
   252  //    req, resp := client.CreatePermissionRequest(params)
   253  //
   254  //    err := req.Send()
   255  //    if err == nil { // resp is now filled
   256  //        fmt.Println(resp)
   257  //    }
   258  //
   259  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/CreatePermission
   260  func (c *ACMPCA) CreatePermissionRequest(input *CreatePermissionInput) (req *request.Request, output *CreatePermissionOutput) {
   261  	op := &request.Operation{
   262  		Name:       opCreatePermission,
   263  		HTTPMethod: "POST",
   264  		HTTPPath:   "/",
   265  	}
   266  
   267  	if input == nil {
   268  		input = &CreatePermissionInput{}
   269  	}
   270  
   271  	output = &CreatePermissionOutput{}
   272  	req = c.newRequest(op, input, output)
   273  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   274  	return
   275  }
   276  
   277  // CreatePermission API operation for AWS Certificate Manager Private Certificate Authority.
   278  //
   279  // Grants one or more permissions on a private CA to the AWS Certificate Manager
   280  // (ACM) service principal (acm.amazonaws.com). These permissions allow ACM
   281  // to issue and renew ACM certificates that reside in the same AWS account as
   282  // the CA.
   283  //
   284  // You can list current permissions with the ListPermissions (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html)
   285  // action and revoke them with the DeletePermission (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html)
   286  // action.
   287  //
   288  // About Permissions
   289  //
   290  //    * If the private CA and the certificates it issues reside in the same
   291  //    account, you can use CreatePermission to grant permissions for ACM to
   292  //    carry out automatic certificate renewals.
   293  //
   294  //    * For automatic certificate renewal to succeed, the ACM service principal
   295  //    needs permissions to create, retrieve, and list certificates.
   296  //
   297  //    * If the private CA and the ACM certificates reside in different accounts,
   298  //    then permissions cannot be used to enable automatic renewals. Instead,
   299  //    the ACM certificate owner must set up a resource-based policy to enable
   300  //    cross-account issuance and renewals. For more information, see Using a
   301  //    Resource Based Policy with ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html).
   302  //
   303  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   304  // with awserr.Error's Code and Message methods to get detailed information about
   305  // the error.
   306  //
   307  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   308  // API operation CreatePermission for usage and error information.
   309  //
   310  // Returned Error Types:
   311  //   * ResourceNotFoundException
   312  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   313  //   policy cannot be found.
   314  //
   315  //   * InvalidArnException
   316  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   317  //
   318  //   * PermissionAlreadyExistsException
   319  //   The designated permission has already been given to the user.
   320  //
   321  //   * LimitExceededException
   322  //   An ACM Private CA quota has been exceeded. See the exception message returned
   323  //   to determine the quota that was exceeded.
   324  //
   325  //   * InvalidStateException
   326  //   The state of the private CA does not allow this action to occur.
   327  //
   328  //   * RequestFailedException
   329  //   The request has failed for an unspecified reason.
   330  //
   331  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/CreatePermission
   332  func (c *ACMPCA) CreatePermission(input *CreatePermissionInput) (*CreatePermissionOutput, error) {
   333  	req, out := c.CreatePermissionRequest(input)
   334  	return out, req.Send()
   335  }
   336  
   337  // CreatePermissionWithContext is the same as CreatePermission with the addition of
   338  // the ability to pass a context and additional request options.
   339  //
   340  // See CreatePermission for details on how to use this API operation.
   341  //
   342  // The context must be non-nil and will be used for request cancellation. If
   343  // the context is nil a panic will occur. In the future the SDK may create
   344  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   345  // for more information on using Contexts.
   346  func (c *ACMPCA) CreatePermissionWithContext(ctx aws.Context, input *CreatePermissionInput, opts ...request.Option) (*CreatePermissionOutput, error) {
   347  	req, out := c.CreatePermissionRequest(input)
   348  	req.SetContext(ctx)
   349  	req.ApplyOptions(opts...)
   350  	return out, req.Send()
   351  }
   352  
   353  const opDeleteCertificateAuthority = "DeleteCertificateAuthority"
   354  
   355  // DeleteCertificateAuthorityRequest generates a "aws/request.Request" representing the
   356  // client's request for the DeleteCertificateAuthority operation. The "output" return
   357  // value will be populated with the request's response once the request completes
   358  // successfully.
   359  //
   360  // Use "Send" method on the returned Request to send the API call to the service.
   361  // the "output" return value is not valid until after Send returns without error.
   362  //
   363  // See DeleteCertificateAuthority for more information on using the DeleteCertificateAuthority
   364  // API call, and error handling.
   365  //
   366  // This method is useful when you want to inject custom logic or configuration
   367  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   368  //
   369  //
   370  //    // Example sending a request using the DeleteCertificateAuthorityRequest method.
   371  //    req, resp := client.DeleteCertificateAuthorityRequest(params)
   372  //
   373  //    err := req.Send()
   374  //    if err == nil { // resp is now filled
   375  //        fmt.Println(resp)
   376  //    }
   377  //
   378  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DeleteCertificateAuthority
   379  func (c *ACMPCA) DeleteCertificateAuthorityRequest(input *DeleteCertificateAuthorityInput) (req *request.Request, output *DeleteCertificateAuthorityOutput) {
   380  	op := &request.Operation{
   381  		Name:       opDeleteCertificateAuthority,
   382  		HTTPMethod: "POST",
   383  		HTTPPath:   "/",
   384  	}
   385  
   386  	if input == nil {
   387  		input = &DeleteCertificateAuthorityInput{}
   388  	}
   389  
   390  	output = &DeleteCertificateAuthorityOutput{}
   391  	req = c.newRequest(op, input, output)
   392  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   393  	return
   394  }
   395  
   396  // DeleteCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
   397  //
   398  // Deletes a private certificate authority (CA). You must provide the Amazon
   399  // Resource Name (ARN) of the private CA that you want to delete. You can find
   400  // the ARN by calling the ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
   401  // action.
   402  //
   403  // Deleting a CA will invalidate other CAs and certificates below it in your
   404  // CA hierarchy.
   405  //
   406  // Before you can delete a CA that you have created and activated, you must
   407  // disable it. To do this, call the UpdateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html)
   408  // action and set the CertificateAuthorityStatus parameter to DISABLED.
   409  //
   410  // Additionally, you can delete a CA if you are waiting for it to be created
   411  // (that is, the status of the CA is CREATING). You can also delete it if the
   412  // CA has been created but you haven't yet imported the signed certificate into
   413  // ACM Private CA (that is, the status of the CA is PENDING_CERTIFICATE).
   414  //
   415  // When you successfully call DeleteCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html),
   416  // the CA's status changes to DELETED. However, the CA won't be permanently
   417  // deleted until the restoration period has passed. By default, if you do not
   418  // set the PermanentDeletionTimeInDays parameter, the CA remains restorable
   419  // for 30 days. You can set the parameter from 7 to 30 days. The DescribeCertificateAuthority
   420  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html)
   421  // action returns the time remaining in the restoration window of a private
   422  // CA in the DELETED state. To restore an eligible CA, call the RestoreCertificateAuthority
   423  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RestoreCertificateAuthority.html)
   424  // action.
   425  //
   426  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   427  // with awserr.Error's Code and Message methods to get detailed information about
   428  // the error.
   429  //
   430  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   431  // API operation DeleteCertificateAuthority for usage and error information.
   432  //
   433  // Returned Error Types:
   434  //   * ConcurrentModificationException
   435  //   A previous update to your private CA is still ongoing.
   436  //
   437  //   * ResourceNotFoundException
   438  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   439  //   policy cannot be found.
   440  //
   441  //   * InvalidArnException
   442  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   443  //
   444  //   * InvalidStateException
   445  //   The state of the private CA does not allow this action to occur.
   446  //
   447  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DeleteCertificateAuthority
   448  func (c *ACMPCA) DeleteCertificateAuthority(input *DeleteCertificateAuthorityInput) (*DeleteCertificateAuthorityOutput, error) {
   449  	req, out := c.DeleteCertificateAuthorityRequest(input)
   450  	return out, req.Send()
   451  }
   452  
   453  // DeleteCertificateAuthorityWithContext is the same as DeleteCertificateAuthority with the addition of
   454  // the ability to pass a context and additional request options.
   455  //
   456  // See DeleteCertificateAuthority for details on how to use this API operation.
   457  //
   458  // The context must be non-nil and will be used for request cancellation. If
   459  // the context is nil a panic will occur. In the future the SDK may create
   460  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   461  // for more information on using Contexts.
   462  func (c *ACMPCA) DeleteCertificateAuthorityWithContext(ctx aws.Context, input *DeleteCertificateAuthorityInput, opts ...request.Option) (*DeleteCertificateAuthorityOutput, error) {
   463  	req, out := c.DeleteCertificateAuthorityRequest(input)
   464  	req.SetContext(ctx)
   465  	req.ApplyOptions(opts...)
   466  	return out, req.Send()
   467  }
   468  
   469  const opDeletePermission = "DeletePermission"
   470  
   471  // DeletePermissionRequest generates a "aws/request.Request" representing the
   472  // client's request for the DeletePermission operation. The "output" return
   473  // value will be populated with the request's response once the request completes
   474  // successfully.
   475  //
   476  // Use "Send" method on the returned Request to send the API call to the service.
   477  // the "output" return value is not valid until after Send returns without error.
   478  //
   479  // See DeletePermission for more information on using the DeletePermission
   480  // API call, and error handling.
   481  //
   482  // This method is useful when you want to inject custom logic or configuration
   483  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   484  //
   485  //
   486  //    // Example sending a request using the DeletePermissionRequest method.
   487  //    req, resp := client.DeletePermissionRequest(params)
   488  //
   489  //    err := req.Send()
   490  //    if err == nil { // resp is now filled
   491  //        fmt.Println(resp)
   492  //    }
   493  //
   494  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DeletePermission
   495  func (c *ACMPCA) DeletePermissionRequest(input *DeletePermissionInput) (req *request.Request, output *DeletePermissionOutput) {
   496  	op := &request.Operation{
   497  		Name:       opDeletePermission,
   498  		HTTPMethod: "POST",
   499  		HTTPPath:   "/",
   500  	}
   501  
   502  	if input == nil {
   503  		input = &DeletePermissionInput{}
   504  	}
   505  
   506  	output = &DeletePermissionOutput{}
   507  	req = c.newRequest(op, input, output)
   508  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   509  	return
   510  }
   511  
   512  // DeletePermission API operation for AWS Certificate Manager Private Certificate Authority.
   513  //
   514  // Revokes permissions on a private CA granted to the AWS Certificate Manager
   515  // (ACM) service principal (acm.amazonaws.com).
   516  //
   517  // These permissions allow ACM to issue and renew ACM certificates that reside
   518  // in the same AWS account as the CA. If you revoke these permissions, ACM will
   519  // no longer renew the affected certificates automatically.
   520  //
   521  // Permissions can be granted with the CreatePermission (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html)
   522  // action and listed with the ListPermissions (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html)
   523  // action.
   524  //
   525  // About Permissions
   526  //
   527  //    * If the private CA and the certificates it issues reside in the same
   528  //    account, you can use CreatePermission to grant permissions for ACM to
   529  //    carry out automatic certificate renewals.
   530  //
   531  //    * For automatic certificate renewal to succeed, the ACM service principal
   532  //    needs permissions to create, retrieve, and list certificates.
   533  //
   534  //    * If the private CA and the ACM certificates reside in different accounts,
   535  //    then permissions cannot be used to enable automatic renewals. Instead,
   536  //    the ACM certificate owner must set up a resource-based policy to enable
   537  //    cross-account issuance and renewals. For more information, see Using a
   538  //    Resource Based Policy with ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html).
   539  //
   540  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   541  // with awserr.Error's Code and Message methods to get detailed information about
   542  // the error.
   543  //
   544  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   545  // API operation DeletePermission for usage and error information.
   546  //
   547  // Returned Error Types:
   548  //   * ResourceNotFoundException
   549  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   550  //   policy cannot be found.
   551  //
   552  //   * InvalidArnException
   553  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   554  //
   555  //   * InvalidStateException
   556  //   The state of the private CA does not allow this action to occur.
   557  //
   558  //   * RequestFailedException
   559  //   The request has failed for an unspecified reason.
   560  //
   561  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DeletePermission
   562  func (c *ACMPCA) DeletePermission(input *DeletePermissionInput) (*DeletePermissionOutput, error) {
   563  	req, out := c.DeletePermissionRequest(input)
   564  	return out, req.Send()
   565  }
   566  
   567  // DeletePermissionWithContext is the same as DeletePermission with the addition of
   568  // the ability to pass a context and additional request options.
   569  //
   570  // See DeletePermission for details on how to use this API operation.
   571  //
   572  // The context must be non-nil and will be used for request cancellation. If
   573  // the context is nil a panic will occur. In the future the SDK may create
   574  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   575  // for more information on using Contexts.
   576  func (c *ACMPCA) DeletePermissionWithContext(ctx aws.Context, input *DeletePermissionInput, opts ...request.Option) (*DeletePermissionOutput, error) {
   577  	req, out := c.DeletePermissionRequest(input)
   578  	req.SetContext(ctx)
   579  	req.ApplyOptions(opts...)
   580  	return out, req.Send()
   581  }
   582  
   583  const opDeletePolicy = "DeletePolicy"
   584  
   585  // DeletePolicyRequest generates a "aws/request.Request" representing the
   586  // client's request for the DeletePolicy operation. The "output" return
   587  // value will be populated with the request's response once the request completes
   588  // successfully.
   589  //
   590  // Use "Send" method on the returned Request to send the API call to the service.
   591  // the "output" return value is not valid until after Send returns without error.
   592  //
   593  // See DeletePolicy for more information on using the DeletePolicy
   594  // API call, and error handling.
   595  //
   596  // This method is useful when you want to inject custom logic or configuration
   597  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   598  //
   599  //
   600  //    // Example sending a request using the DeletePolicyRequest method.
   601  //    req, resp := client.DeletePolicyRequest(params)
   602  //
   603  //    err := req.Send()
   604  //    if err == nil { // resp is now filled
   605  //        fmt.Println(resp)
   606  //    }
   607  //
   608  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DeletePolicy
   609  func (c *ACMPCA) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
   610  	op := &request.Operation{
   611  		Name:       opDeletePolicy,
   612  		HTTPMethod: "POST",
   613  		HTTPPath:   "/",
   614  	}
   615  
   616  	if input == nil {
   617  		input = &DeletePolicyInput{}
   618  	}
   619  
   620  	output = &DeletePolicyOutput{}
   621  	req = c.newRequest(op, input, output)
   622  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   623  	return
   624  }
   625  
   626  // DeletePolicy API operation for AWS Certificate Manager Private Certificate Authority.
   627  //
   628  // Deletes the resource-based policy attached to a private CA. Deletion will
   629  // remove any access that the policy has granted. If there is no policy attached
   630  // to the private CA, this action will return successful.
   631  //
   632  // If you delete a policy that was applied through AWS Resource Access Manager
   633  // (RAM), the CA will be removed from all shares in which it was included.
   634  //
   635  // The AWS Certificate Manager Service Linked Role that the policy supports
   636  // is not affected when you delete the policy.
   637  //
   638  // The current policy can be shown with GetPolicy (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html)
   639  // and updated with PutPolicy (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html).
   640  //
   641  // About Policies
   642  //
   643  //    * A policy grants access on a private CA to an AWS customer account, to
   644  //    AWS Organizations, or to an AWS Organizations unit. Policies are under
   645  //    the control of a CA administrator. For more information, see Using a Resource
   646  //    Based Policy with ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html).
   647  //
   648  //    * A policy permits a user of AWS Certificate Manager (ACM) to issue ACM
   649  //    certificates signed by a CA in another account.
   650  //
   651  //    * For ACM to manage automatic renewal of these certificates, the ACM user
   652  //    must configure a Service Linked Role (SLR). The SLR allows the ACM service
   653  //    to assume the identity of the user, subject to confirmation against the
   654  //    ACM Private CA policy. For more information, see Using a Service Linked
   655  //    Role with ACM (https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html).
   656  //
   657  //    * Updates made in AWS Resource Manager (RAM) are reflected in policies.
   658  //    For more information, see Attach a Policy for Cross-Account Access (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html).
   659  //
   660  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   661  // with awserr.Error's Code and Message methods to get detailed information about
   662  // the error.
   663  //
   664  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   665  // API operation DeletePolicy for usage and error information.
   666  //
   667  // Returned Error Types:
   668  //   * ConcurrentModificationException
   669  //   A previous update to your private CA is still ongoing.
   670  //
   671  //   * InvalidArnException
   672  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   673  //
   674  //   * InvalidStateException
   675  //   The state of the private CA does not allow this action to occur.
   676  //
   677  //   * LockoutPreventedException
   678  //   The current action was prevented because it would lock the caller out from
   679  //   performing subsequent actions. Verify that the specified parameters would
   680  //   not result in the caller being denied access to the resource.
   681  //
   682  //   * RequestFailedException
   683  //   The request has failed for an unspecified reason.
   684  //
   685  //   * ResourceNotFoundException
   686  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   687  //   policy cannot be found.
   688  //
   689  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DeletePolicy
   690  func (c *ACMPCA) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
   691  	req, out := c.DeletePolicyRequest(input)
   692  	return out, req.Send()
   693  }
   694  
   695  // DeletePolicyWithContext is the same as DeletePolicy with the addition of
   696  // the ability to pass a context and additional request options.
   697  //
   698  // See DeletePolicy for details on how to use this API operation.
   699  //
   700  // The context must be non-nil and will be used for request cancellation. If
   701  // the context is nil a panic will occur. In the future the SDK may create
   702  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   703  // for more information on using Contexts.
   704  func (c *ACMPCA) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
   705  	req, out := c.DeletePolicyRequest(input)
   706  	req.SetContext(ctx)
   707  	req.ApplyOptions(opts...)
   708  	return out, req.Send()
   709  }
   710  
   711  const opDescribeCertificateAuthority = "DescribeCertificateAuthority"
   712  
   713  // DescribeCertificateAuthorityRequest generates a "aws/request.Request" representing the
   714  // client's request for the DescribeCertificateAuthority operation. The "output" return
   715  // value will be populated with the request's response once the request completes
   716  // successfully.
   717  //
   718  // Use "Send" method on the returned Request to send the API call to the service.
   719  // the "output" return value is not valid until after Send returns without error.
   720  //
   721  // See DescribeCertificateAuthority for more information on using the DescribeCertificateAuthority
   722  // API call, and error handling.
   723  //
   724  // This method is useful when you want to inject custom logic or configuration
   725  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   726  //
   727  //
   728  //    // Example sending a request using the DescribeCertificateAuthorityRequest method.
   729  //    req, resp := client.DescribeCertificateAuthorityRequest(params)
   730  //
   731  //    err := req.Send()
   732  //    if err == nil { // resp is now filled
   733  //        fmt.Println(resp)
   734  //    }
   735  //
   736  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DescribeCertificateAuthority
   737  func (c *ACMPCA) DescribeCertificateAuthorityRequest(input *DescribeCertificateAuthorityInput) (req *request.Request, output *DescribeCertificateAuthorityOutput) {
   738  	op := &request.Operation{
   739  		Name:       opDescribeCertificateAuthority,
   740  		HTTPMethod: "POST",
   741  		HTTPPath:   "/",
   742  	}
   743  
   744  	if input == nil {
   745  		input = &DescribeCertificateAuthorityInput{}
   746  	}
   747  
   748  	output = &DescribeCertificateAuthorityOutput{}
   749  	req = c.newRequest(op, input, output)
   750  	return
   751  }
   752  
   753  // DescribeCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
   754  //
   755  // Lists information about your private certificate authority (CA) or one that
   756  // has been shared with you. You specify the private CA on input by its ARN
   757  // (Amazon Resource Name). The output contains the status of your CA. This can
   758  // be any of the following:
   759  //
   760  //    * CREATING - ACM Private CA is creating your private certificate authority.
   761  //
   762  //    * PENDING_CERTIFICATE - The certificate is pending. You must use your
   763  //    ACM Private CA-hosted or on-premises root or subordinate CA to sign your
   764  //    private CA CSR and then import it into PCA.
   765  //
   766  //    * ACTIVE - Your private CA is active.
   767  //
   768  //    * DISABLED - Your private CA has been disabled.
   769  //
   770  //    * EXPIRED - Your private CA certificate has expired.
   771  //
   772  //    * FAILED - Your private CA has failed. Your CA can fail because of problems
   773  //    such a network outage or back-end AWS failure or other errors. A failed
   774  //    CA can never return to the pending state. You must create a new CA.
   775  //
   776  //    * DELETED - Your private CA is within the restoration period, after which
   777  //    it is permanently deleted. The length of time remaining in the CA's restoration
   778  //    period is also included in this action's output.
   779  //
   780  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   781  // with awserr.Error's Code and Message methods to get detailed information about
   782  // the error.
   783  //
   784  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   785  // API operation DescribeCertificateAuthority for usage and error information.
   786  //
   787  // Returned Error Types:
   788  //   * ResourceNotFoundException
   789  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   790  //   policy cannot be found.
   791  //
   792  //   * InvalidArnException
   793  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   794  //
   795  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DescribeCertificateAuthority
   796  func (c *ACMPCA) DescribeCertificateAuthority(input *DescribeCertificateAuthorityInput) (*DescribeCertificateAuthorityOutput, error) {
   797  	req, out := c.DescribeCertificateAuthorityRequest(input)
   798  	return out, req.Send()
   799  }
   800  
   801  // DescribeCertificateAuthorityWithContext is the same as DescribeCertificateAuthority with the addition of
   802  // the ability to pass a context and additional request options.
   803  //
   804  // See DescribeCertificateAuthority for details on how to use this API operation.
   805  //
   806  // The context must be non-nil and will be used for request cancellation. If
   807  // the context is nil a panic will occur. In the future the SDK may create
   808  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   809  // for more information on using Contexts.
   810  func (c *ACMPCA) DescribeCertificateAuthorityWithContext(ctx aws.Context, input *DescribeCertificateAuthorityInput, opts ...request.Option) (*DescribeCertificateAuthorityOutput, error) {
   811  	req, out := c.DescribeCertificateAuthorityRequest(input)
   812  	req.SetContext(ctx)
   813  	req.ApplyOptions(opts...)
   814  	return out, req.Send()
   815  }
   816  
   817  const opDescribeCertificateAuthorityAuditReport = "DescribeCertificateAuthorityAuditReport"
   818  
   819  // DescribeCertificateAuthorityAuditReportRequest generates a "aws/request.Request" representing the
   820  // client's request for the DescribeCertificateAuthorityAuditReport operation. The "output" return
   821  // value will be populated with the request's response once the request completes
   822  // successfully.
   823  //
   824  // Use "Send" method on the returned Request to send the API call to the service.
   825  // the "output" return value is not valid until after Send returns without error.
   826  //
   827  // See DescribeCertificateAuthorityAuditReport for more information on using the DescribeCertificateAuthorityAuditReport
   828  // API call, and error handling.
   829  //
   830  // This method is useful when you want to inject custom logic or configuration
   831  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   832  //
   833  //
   834  //    // Example sending a request using the DescribeCertificateAuthorityAuditReportRequest method.
   835  //    req, resp := client.DescribeCertificateAuthorityAuditReportRequest(params)
   836  //
   837  //    err := req.Send()
   838  //    if err == nil { // resp is now filled
   839  //        fmt.Println(resp)
   840  //    }
   841  //
   842  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DescribeCertificateAuthorityAuditReport
   843  func (c *ACMPCA) DescribeCertificateAuthorityAuditReportRequest(input *DescribeCertificateAuthorityAuditReportInput) (req *request.Request, output *DescribeCertificateAuthorityAuditReportOutput) {
   844  	op := &request.Operation{
   845  		Name:       opDescribeCertificateAuthorityAuditReport,
   846  		HTTPMethod: "POST",
   847  		HTTPPath:   "/",
   848  	}
   849  
   850  	if input == nil {
   851  		input = &DescribeCertificateAuthorityAuditReportInput{}
   852  	}
   853  
   854  	output = &DescribeCertificateAuthorityAuditReportOutput{}
   855  	req = c.newRequest(op, input, output)
   856  	return
   857  }
   858  
   859  // DescribeCertificateAuthorityAuditReport API operation for AWS Certificate Manager Private Certificate Authority.
   860  //
   861  // Lists information about a specific audit report created by calling the CreateCertificateAuthorityAuditReport
   862  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html)
   863  // action. Audit information is created every time the certificate authority
   864  // (CA) private key is used. The private key is used when you call the IssueCertificate
   865  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html)
   866  // action or the RevokeCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html)
   867  // action.
   868  //
   869  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   870  // with awserr.Error's Code and Message methods to get detailed information about
   871  // the error.
   872  //
   873  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   874  // API operation DescribeCertificateAuthorityAuditReport for usage and error information.
   875  //
   876  // Returned Error Types:
   877  //   * ResourceNotFoundException
   878  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   879  //   policy cannot be found.
   880  //
   881  //   * InvalidArnException
   882  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   883  //
   884  //   * InvalidArgsException
   885  //   One or more of the specified arguments was not valid.
   886  //
   887  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/DescribeCertificateAuthorityAuditReport
   888  func (c *ACMPCA) DescribeCertificateAuthorityAuditReport(input *DescribeCertificateAuthorityAuditReportInput) (*DescribeCertificateAuthorityAuditReportOutput, error) {
   889  	req, out := c.DescribeCertificateAuthorityAuditReportRequest(input)
   890  	return out, req.Send()
   891  }
   892  
   893  // DescribeCertificateAuthorityAuditReportWithContext is the same as DescribeCertificateAuthorityAuditReport with the addition of
   894  // the ability to pass a context and additional request options.
   895  //
   896  // See DescribeCertificateAuthorityAuditReport for details on how to use this API operation.
   897  //
   898  // The context must be non-nil and will be used for request cancellation. If
   899  // the context is nil a panic will occur. In the future the SDK may create
   900  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   901  // for more information on using Contexts.
   902  func (c *ACMPCA) DescribeCertificateAuthorityAuditReportWithContext(ctx aws.Context, input *DescribeCertificateAuthorityAuditReportInput, opts ...request.Option) (*DescribeCertificateAuthorityAuditReportOutput, error) {
   903  	req, out := c.DescribeCertificateAuthorityAuditReportRequest(input)
   904  	req.SetContext(ctx)
   905  	req.ApplyOptions(opts...)
   906  	return out, req.Send()
   907  }
   908  
   909  const opGetCertificate = "GetCertificate"
   910  
   911  // GetCertificateRequest generates a "aws/request.Request" representing the
   912  // client's request for the GetCertificate operation. The "output" return
   913  // value will be populated with the request's response once the request completes
   914  // successfully.
   915  //
   916  // Use "Send" method on the returned Request to send the API call to the service.
   917  // the "output" return value is not valid until after Send returns without error.
   918  //
   919  // See GetCertificate for more information on using the GetCertificate
   920  // API call, and error handling.
   921  //
   922  // This method is useful when you want to inject custom logic or configuration
   923  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   924  //
   925  //
   926  //    // Example sending a request using the GetCertificateRequest method.
   927  //    req, resp := client.GetCertificateRequest(params)
   928  //
   929  //    err := req.Send()
   930  //    if err == nil { // resp is now filled
   931  //        fmt.Println(resp)
   932  //    }
   933  //
   934  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetCertificate
   935  func (c *ACMPCA) GetCertificateRequest(input *GetCertificateInput) (req *request.Request, output *GetCertificateOutput) {
   936  	op := &request.Operation{
   937  		Name:       opGetCertificate,
   938  		HTTPMethod: "POST",
   939  		HTTPPath:   "/",
   940  	}
   941  
   942  	if input == nil {
   943  		input = &GetCertificateInput{}
   944  	}
   945  
   946  	output = &GetCertificateOutput{}
   947  	req = c.newRequest(op, input, output)
   948  	return
   949  }
   950  
   951  // GetCertificate API operation for AWS Certificate Manager Private Certificate Authority.
   952  //
   953  // Retrieves a certificate from your private CA or one that has been shared
   954  // with you. The ARN of the certificate is returned when you call the IssueCertificate
   955  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_IssueCertificate.html)
   956  // action. You must specify both the ARN of your private CA and the ARN of the
   957  // issued certificate when calling the GetCertificate action. You can retrieve
   958  // the certificate if it is in the ISSUED state. You can call the CreateCertificateAuthorityAuditReport
   959  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html)
   960  // action to create a report that contains information about all of the certificates
   961  // issued and revoked by your private CA.
   962  //
   963  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   964  // with awserr.Error's Code and Message methods to get detailed information about
   965  // the error.
   966  //
   967  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
   968  // API operation GetCertificate for usage and error information.
   969  //
   970  // Returned Error Types:
   971  //   * RequestInProgressException
   972  //   Your request is already in progress.
   973  //
   974  //   * RequestFailedException
   975  //   The request has failed for an unspecified reason.
   976  //
   977  //   * ResourceNotFoundException
   978  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
   979  //   policy cannot be found.
   980  //
   981  //   * InvalidArnException
   982  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
   983  //
   984  //   * InvalidStateException
   985  //   The state of the private CA does not allow this action to occur.
   986  //
   987  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetCertificate
   988  func (c *ACMPCA) GetCertificate(input *GetCertificateInput) (*GetCertificateOutput, error) {
   989  	req, out := c.GetCertificateRequest(input)
   990  	return out, req.Send()
   991  }
   992  
   993  // GetCertificateWithContext is the same as GetCertificate with the addition of
   994  // the ability to pass a context and additional request options.
   995  //
   996  // See GetCertificate for details on how to use this API operation.
   997  //
   998  // The context must be non-nil and will be used for request cancellation. If
   999  // the context is nil a panic will occur. In the future the SDK may create
  1000  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1001  // for more information on using Contexts.
  1002  func (c *ACMPCA) GetCertificateWithContext(ctx aws.Context, input *GetCertificateInput, opts ...request.Option) (*GetCertificateOutput, error) {
  1003  	req, out := c.GetCertificateRequest(input)
  1004  	req.SetContext(ctx)
  1005  	req.ApplyOptions(opts...)
  1006  	return out, req.Send()
  1007  }
  1008  
  1009  const opGetCertificateAuthorityCertificate = "GetCertificateAuthorityCertificate"
  1010  
  1011  // GetCertificateAuthorityCertificateRequest generates a "aws/request.Request" representing the
  1012  // client's request for the GetCertificateAuthorityCertificate operation. The "output" return
  1013  // value will be populated with the request's response once the request completes
  1014  // successfully.
  1015  //
  1016  // Use "Send" method on the returned Request to send the API call to the service.
  1017  // the "output" return value is not valid until after Send returns without error.
  1018  //
  1019  // See GetCertificateAuthorityCertificate for more information on using the GetCertificateAuthorityCertificate
  1020  // API call, and error handling.
  1021  //
  1022  // This method is useful when you want to inject custom logic or configuration
  1023  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1024  //
  1025  //
  1026  //    // Example sending a request using the GetCertificateAuthorityCertificateRequest method.
  1027  //    req, resp := client.GetCertificateAuthorityCertificateRequest(params)
  1028  //
  1029  //    err := req.Send()
  1030  //    if err == nil { // resp is now filled
  1031  //        fmt.Println(resp)
  1032  //    }
  1033  //
  1034  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetCertificateAuthorityCertificate
  1035  func (c *ACMPCA) GetCertificateAuthorityCertificateRequest(input *GetCertificateAuthorityCertificateInput) (req *request.Request, output *GetCertificateAuthorityCertificateOutput) {
  1036  	op := &request.Operation{
  1037  		Name:       opGetCertificateAuthorityCertificate,
  1038  		HTTPMethod: "POST",
  1039  		HTTPPath:   "/",
  1040  	}
  1041  
  1042  	if input == nil {
  1043  		input = &GetCertificateAuthorityCertificateInput{}
  1044  	}
  1045  
  1046  	output = &GetCertificateAuthorityCertificateOutput{}
  1047  	req = c.newRequest(op, input, output)
  1048  	return
  1049  }
  1050  
  1051  // GetCertificateAuthorityCertificate API operation for AWS Certificate Manager Private Certificate Authority.
  1052  //
  1053  // Retrieves the certificate and certificate chain for your private certificate
  1054  // authority (CA) or one that has been shared with you. Both the certificate
  1055  // and the chain are base64 PEM-encoded. The chain does not include the CA certificate.
  1056  // Each certificate in the chain signs the one before it.
  1057  //
  1058  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1059  // with awserr.Error's Code and Message methods to get detailed information about
  1060  // the error.
  1061  //
  1062  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1063  // API operation GetCertificateAuthorityCertificate for usage and error information.
  1064  //
  1065  // Returned Error Types:
  1066  //   * ResourceNotFoundException
  1067  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1068  //   policy cannot be found.
  1069  //
  1070  //   * InvalidStateException
  1071  //   The state of the private CA does not allow this action to occur.
  1072  //
  1073  //   * InvalidArnException
  1074  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1075  //
  1076  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetCertificateAuthorityCertificate
  1077  func (c *ACMPCA) GetCertificateAuthorityCertificate(input *GetCertificateAuthorityCertificateInput) (*GetCertificateAuthorityCertificateOutput, error) {
  1078  	req, out := c.GetCertificateAuthorityCertificateRequest(input)
  1079  	return out, req.Send()
  1080  }
  1081  
  1082  // GetCertificateAuthorityCertificateWithContext is the same as GetCertificateAuthorityCertificate with the addition of
  1083  // the ability to pass a context and additional request options.
  1084  //
  1085  // See GetCertificateAuthorityCertificate for details on how to use this API operation.
  1086  //
  1087  // The context must be non-nil and will be used for request cancellation. If
  1088  // the context is nil a panic will occur. In the future the SDK may create
  1089  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1090  // for more information on using Contexts.
  1091  func (c *ACMPCA) GetCertificateAuthorityCertificateWithContext(ctx aws.Context, input *GetCertificateAuthorityCertificateInput, opts ...request.Option) (*GetCertificateAuthorityCertificateOutput, error) {
  1092  	req, out := c.GetCertificateAuthorityCertificateRequest(input)
  1093  	req.SetContext(ctx)
  1094  	req.ApplyOptions(opts...)
  1095  	return out, req.Send()
  1096  }
  1097  
  1098  const opGetCertificateAuthorityCsr = "GetCertificateAuthorityCsr"
  1099  
  1100  // GetCertificateAuthorityCsrRequest generates a "aws/request.Request" representing the
  1101  // client's request for the GetCertificateAuthorityCsr operation. The "output" return
  1102  // value will be populated with the request's response once the request completes
  1103  // successfully.
  1104  //
  1105  // Use "Send" method on the returned Request to send the API call to the service.
  1106  // the "output" return value is not valid until after Send returns without error.
  1107  //
  1108  // See GetCertificateAuthorityCsr for more information on using the GetCertificateAuthorityCsr
  1109  // API call, and error handling.
  1110  //
  1111  // This method is useful when you want to inject custom logic or configuration
  1112  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1113  //
  1114  //
  1115  //    // Example sending a request using the GetCertificateAuthorityCsrRequest method.
  1116  //    req, resp := client.GetCertificateAuthorityCsrRequest(params)
  1117  //
  1118  //    err := req.Send()
  1119  //    if err == nil { // resp is now filled
  1120  //        fmt.Println(resp)
  1121  //    }
  1122  //
  1123  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetCertificateAuthorityCsr
  1124  func (c *ACMPCA) GetCertificateAuthorityCsrRequest(input *GetCertificateAuthorityCsrInput) (req *request.Request, output *GetCertificateAuthorityCsrOutput) {
  1125  	op := &request.Operation{
  1126  		Name:       opGetCertificateAuthorityCsr,
  1127  		HTTPMethod: "POST",
  1128  		HTTPPath:   "/",
  1129  	}
  1130  
  1131  	if input == nil {
  1132  		input = &GetCertificateAuthorityCsrInput{}
  1133  	}
  1134  
  1135  	output = &GetCertificateAuthorityCsrOutput{}
  1136  	req = c.newRequest(op, input, output)
  1137  	return
  1138  }
  1139  
  1140  // GetCertificateAuthorityCsr API operation for AWS Certificate Manager Private Certificate Authority.
  1141  //
  1142  // Retrieves the certificate signing request (CSR) for your private certificate
  1143  // authority (CA). The CSR is created when you call the CreateCertificateAuthority
  1144  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  1145  // action. Sign the CSR with your ACM Private CA-hosted or on-premises root
  1146  // or subordinate CA. Then import the signed certificate back into ACM Private
  1147  // CA by calling the ImportCertificateAuthorityCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html)
  1148  // action. The CSR is returned as a base64 PEM-encoded string.
  1149  //
  1150  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1151  // with awserr.Error's Code and Message methods to get detailed information about
  1152  // the error.
  1153  //
  1154  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1155  // API operation GetCertificateAuthorityCsr for usage and error information.
  1156  //
  1157  // Returned Error Types:
  1158  //   * RequestInProgressException
  1159  //   Your request is already in progress.
  1160  //
  1161  //   * RequestFailedException
  1162  //   The request has failed for an unspecified reason.
  1163  //
  1164  //   * ResourceNotFoundException
  1165  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1166  //   policy cannot be found.
  1167  //
  1168  //   * InvalidArnException
  1169  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1170  //
  1171  //   * InvalidStateException
  1172  //   The state of the private CA does not allow this action to occur.
  1173  //
  1174  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetCertificateAuthorityCsr
  1175  func (c *ACMPCA) GetCertificateAuthorityCsr(input *GetCertificateAuthorityCsrInput) (*GetCertificateAuthorityCsrOutput, error) {
  1176  	req, out := c.GetCertificateAuthorityCsrRequest(input)
  1177  	return out, req.Send()
  1178  }
  1179  
  1180  // GetCertificateAuthorityCsrWithContext is the same as GetCertificateAuthorityCsr with the addition of
  1181  // the ability to pass a context and additional request options.
  1182  //
  1183  // See GetCertificateAuthorityCsr for details on how to use this API operation.
  1184  //
  1185  // The context must be non-nil and will be used for request cancellation. If
  1186  // the context is nil a panic will occur. In the future the SDK may create
  1187  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1188  // for more information on using Contexts.
  1189  func (c *ACMPCA) GetCertificateAuthorityCsrWithContext(ctx aws.Context, input *GetCertificateAuthorityCsrInput, opts ...request.Option) (*GetCertificateAuthorityCsrOutput, error) {
  1190  	req, out := c.GetCertificateAuthorityCsrRequest(input)
  1191  	req.SetContext(ctx)
  1192  	req.ApplyOptions(opts...)
  1193  	return out, req.Send()
  1194  }
  1195  
  1196  const opGetPolicy = "GetPolicy"
  1197  
  1198  // GetPolicyRequest generates a "aws/request.Request" representing the
  1199  // client's request for the GetPolicy operation. The "output" return
  1200  // value will be populated with the request's response once the request completes
  1201  // successfully.
  1202  //
  1203  // Use "Send" method on the returned Request to send the API call to the service.
  1204  // the "output" return value is not valid until after Send returns without error.
  1205  //
  1206  // See GetPolicy for more information on using the GetPolicy
  1207  // API call, and error handling.
  1208  //
  1209  // This method is useful when you want to inject custom logic or configuration
  1210  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1211  //
  1212  //
  1213  //    // Example sending a request using the GetPolicyRequest method.
  1214  //    req, resp := client.GetPolicyRequest(params)
  1215  //
  1216  //    err := req.Send()
  1217  //    if err == nil { // resp is now filled
  1218  //        fmt.Println(resp)
  1219  //    }
  1220  //
  1221  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetPolicy
  1222  func (c *ACMPCA) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
  1223  	op := &request.Operation{
  1224  		Name:       opGetPolicy,
  1225  		HTTPMethod: "POST",
  1226  		HTTPPath:   "/",
  1227  	}
  1228  
  1229  	if input == nil {
  1230  		input = &GetPolicyInput{}
  1231  	}
  1232  
  1233  	output = &GetPolicyOutput{}
  1234  	req = c.newRequest(op, input, output)
  1235  	return
  1236  }
  1237  
  1238  // GetPolicy API operation for AWS Certificate Manager Private Certificate Authority.
  1239  //
  1240  // Retrieves the resource-based policy attached to a private CA. If either the
  1241  // private CA resource or the policy cannot be found, this action returns a
  1242  // ResourceNotFoundException.
  1243  //
  1244  // The policy can be attached or updated with PutPolicy (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_PutPolicy.html)
  1245  // and removed with DeletePolicy (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html).
  1246  //
  1247  // About Policies
  1248  //
  1249  //    * A policy grants access on a private CA to an AWS customer account, to
  1250  //    AWS Organizations, or to an AWS Organizations unit. Policies are under
  1251  //    the control of a CA administrator. For more information, see Using a Resource
  1252  //    Based Policy with ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html).
  1253  //
  1254  //    * A policy permits a user of AWS Certificate Manager (ACM) to issue ACM
  1255  //    certificates signed by a CA in another account.
  1256  //
  1257  //    * For ACM to manage automatic renewal of these certificates, the ACM user
  1258  //    must configure a Service Linked Role (SLR). The SLR allows the ACM service
  1259  //    to assume the identity of the user, subject to confirmation against the
  1260  //    ACM Private CA policy. For more information, see Using a Service Linked
  1261  //    Role with ACM (https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html).
  1262  //
  1263  //    * Updates made in AWS Resource Manager (RAM) are reflected in policies.
  1264  //    For more information, see Attach a Policy for Cross-Account Access (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html).
  1265  //
  1266  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1267  // with awserr.Error's Code and Message methods to get detailed information about
  1268  // the error.
  1269  //
  1270  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1271  // API operation GetPolicy for usage and error information.
  1272  //
  1273  // Returned Error Types:
  1274  //   * InvalidArnException
  1275  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1276  //
  1277  //   * InvalidStateException
  1278  //   The state of the private CA does not allow this action to occur.
  1279  //
  1280  //   * RequestFailedException
  1281  //   The request has failed for an unspecified reason.
  1282  //
  1283  //   * ResourceNotFoundException
  1284  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1285  //   policy cannot be found.
  1286  //
  1287  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/GetPolicy
  1288  func (c *ACMPCA) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
  1289  	req, out := c.GetPolicyRequest(input)
  1290  	return out, req.Send()
  1291  }
  1292  
  1293  // GetPolicyWithContext is the same as GetPolicy with the addition of
  1294  // the ability to pass a context and additional request options.
  1295  //
  1296  // See GetPolicy for details on how to use this API operation.
  1297  //
  1298  // The context must be non-nil and will be used for request cancellation. If
  1299  // the context is nil a panic will occur. In the future the SDK may create
  1300  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1301  // for more information on using Contexts.
  1302  func (c *ACMPCA) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
  1303  	req, out := c.GetPolicyRequest(input)
  1304  	req.SetContext(ctx)
  1305  	req.ApplyOptions(opts...)
  1306  	return out, req.Send()
  1307  }
  1308  
  1309  const opImportCertificateAuthorityCertificate = "ImportCertificateAuthorityCertificate"
  1310  
  1311  // ImportCertificateAuthorityCertificateRequest generates a "aws/request.Request" representing the
  1312  // client's request for the ImportCertificateAuthorityCertificate operation. The "output" return
  1313  // value will be populated with the request's response once the request completes
  1314  // successfully.
  1315  //
  1316  // Use "Send" method on the returned Request to send the API call to the service.
  1317  // the "output" return value is not valid until after Send returns without error.
  1318  //
  1319  // See ImportCertificateAuthorityCertificate for more information on using the ImportCertificateAuthorityCertificate
  1320  // API call, and error handling.
  1321  //
  1322  // This method is useful when you want to inject custom logic or configuration
  1323  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1324  //
  1325  //
  1326  //    // Example sending a request using the ImportCertificateAuthorityCertificateRequest method.
  1327  //    req, resp := client.ImportCertificateAuthorityCertificateRequest(params)
  1328  //
  1329  //    err := req.Send()
  1330  //    if err == nil { // resp is now filled
  1331  //        fmt.Println(resp)
  1332  //    }
  1333  //
  1334  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ImportCertificateAuthorityCertificate
  1335  func (c *ACMPCA) ImportCertificateAuthorityCertificateRequest(input *ImportCertificateAuthorityCertificateInput) (req *request.Request, output *ImportCertificateAuthorityCertificateOutput) {
  1336  	op := &request.Operation{
  1337  		Name:       opImportCertificateAuthorityCertificate,
  1338  		HTTPMethod: "POST",
  1339  		HTTPPath:   "/",
  1340  	}
  1341  
  1342  	if input == nil {
  1343  		input = &ImportCertificateAuthorityCertificateInput{}
  1344  	}
  1345  
  1346  	output = &ImportCertificateAuthorityCertificateOutput{}
  1347  	req = c.newRequest(op, input, output)
  1348  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1349  	return
  1350  }
  1351  
  1352  // ImportCertificateAuthorityCertificate API operation for AWS Certificate Manager Private Certificate Authority.
  1353  //
  1354  // Imports a signed private CA certificate into ACM Private CA. This action
  1355  // is used when you are using a chain of trust whose root is located outside
  1356  // ACM Private CA. Before you can call this action, the following preparations
  1357  // must in place:
  1358  //
  1359  // In ACM Private CA, call the CreateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  1360  // action to create the private CA that you plan to back with the imported certificate.
  1361  //
  1362  // Call the GetCertificateAuthorityCsr (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCsr.html)
  1363  // action to generate a certificate signing request (CSR).
  1364  //
  1365  // Sign the CSR using a root or intermediate CA hosted by either an on-premises
  1366  // PKI hierarchy or by a commercial CA.
  1367  //
  1368  // Create a certificate chain and copy the signed certificate and the certificate
  1369  // chain to your working directory.
  1370  //
  1371  // ACM Private CA supports three scenarios for installing a CA certificate:
  1372  //
  1373  //    * Installing a certificate for a root CA hosted by ACM Private CA.
  1374  //
  1375  //    * Installing a subordinate CA certificate whose parent authority is hosted
  1376  //    by ACM Private CA.
  1377  //
  1378  //    * Installing a subordinate CA certificate whose parent authority is externally
  1379  //    hosted.
  1380  //
  1381  // The following additional requirements apply when you import a CA certificate.
  1382  //
  1383  //    * Only a self-signed certificate can be imported as a root CA.
  1384  //
  1385  //    * A self-signed certificate cannot be imported as a subordinate CA.
  1386  //
  1387  //    * Your certificate chain must not include the private CA certificate that
  1388  //    you are importing.
  1389  //
  1390  //    * Your root CA must be the last certificate in your chain. The subordinate
  1391  //    certificate, if any, that your root CA signed must be next to last. The
  1392  //    subordinate certificate signed by the preceding subordinate CA must come
  1393  //    next, and so on until your chain is built.
  1394  //
  1395  //    * The chain must be PEM-encoded.
  1396  //
  1397  //    * The maximum allowed size of a certificate is 32 KB.
  1398  //
  1399  //    * The maximum allowed size of a certificate chain is 2 MB.
  1400  //
  1401  // Enforcement of Critical Constraints
  1402  //
  1403  // ACM Private CA allows the following extensions to be marked critical in the
  1404  // imported CA certificate or chain.
  1405  //
  1406  //    * Basic constraints (must be marked critical)
  1407  //
  1408  //    * Subject alternative names
  1409  //
  1410  //    * Key usage
  1411  //
  1412  //    * Extended key usage
  1413  //
  1414  //    * Authority key identifier
  1415  //
  1416  //    * Subject key identifier
  1417  //
  1418  //    * Issuer alternative name
  1419  //
  1420  //    * Subject directory attributes
  1421  //
  1422  //    * Subject information access
  1423  //
  1424  //    * Certificate policies
  1425  //
  1426  //    * Policy mappings
  1427  //
  1428  //    * Inhibit anyPolicy
  1429  //
  1430  // ACM Private CA rejects the following extensions when they are marked critical
  1431  // in an imported CA certificate or chain.
  1432  //
  1433  //    * Name constraints
  1434  //
  1435  //    * Policy constraints
  1436  //
  1437  //    * CRL distribution points
  1438  //
  1439  //    * Authority information access
  1440  //
  1441  //    * Freshest CRL
  1442  //
  1443  //    * Any other extension
  1444  //
  1445  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1446  // with awserr.Error's Code and Message methods to get detailed information about
  1447  // the error.
  1448  //
  1449  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1450  // API operation ImportCertificateAuthorityCertificate for usage and error information.
  1451  //
  1452  // Returned Error Types:
  1453  //   * ConcurrentModificationException
  1454  //   A previous update to your private CA is still ongoing.
  1455  //
  1456  //   * RequestInProgressException
  1457  //   Your request is already in progress.
  1458  //
  1459  //   * RequestFailedException
  1460  //   The request has failed for an unspecified reason.
  1461  //
  1462  //   * ResourceNotFoundException
  1463  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1464  //   policy cannot be found.
  1465  //
  1466  //   * InvalidArnException
  1467  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1468  //
  1469  //   * InvalidRequestException
  1470  //   The request action cannot be performed or is prohibited.
  1471  //
  1472  //   * InvalidStateException
  1473  //   The state of the private CA does not allow this action to occur.
  1474  //
  1475  //   * MalformedCertificateException
  1476  //   One or more fields in the certificate are invalid.
  1477  //
  1478  //   * CertificateMismatchException
  1479  //   The certificate authority certificate you are importing does not comply with
  1480  //   conditions specified in the certificate that signed it.
  1481  //
  1482  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ImportCertificateAuthorityCertificate
  1483  func (c *ACMPCA) ImportCertificateAuthorityCertificate(input *ImportCertificateAuthorityCertificateInput) (*ImportCertificateAuthorityCertificateOutput, error) {
  1484  	req, out := c.ImportCertificateAuthorityCertificateRequest(input)
  1485  	return out, req.Send()
  1486  }
  1487  
  1488  // ImportCertificateAuthorityCertificateWithContext is the same as ImportCertificateAuthorityCertificate with the addition of
  1489  // the ability to pass a context and additional request options.
  1490  //
  1491  // See ImportCertificateAuthorityCertificate for details on how to use this API operation.
  1492  //
  1493  // The context must be non-nil and will be used for request cancellation. If
  1494  // the context is nil a panic will occur. In the future the SDK may create
  1495  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1496  // for more information on using Contexts.
  1497  func (c *ACMPCA) ImportCertificateAuthorityCertificateWithContext(ctx aws.Context, input *ImportCertificateAuthorityCertificateInput, opts ...request.Option) (*ImportCertificateAuthorityCertificateOutput, error) {
  1498  	req, out := c.ImportCertificateAuthorityCertificateRequest(input)
  1499  	req.SetContext(ctx)
  1500  	req.ApplyOptions(opts...)
  1501  	return out, req.Send()
  1502  }
  1503  
  1504  const opIssueCertificate = "IssueCertificate"
  1505  
  1506  // IssueCertificateRequest generates a "aws/request.Request" representing the
  1507  // client's request for the IssueCertificate operation. The "output" return
  1508  // value will be populated with the request's response once the request completes
  1509  // successfully.
  1510  //
  1511  // Use "Send" method on the returned Request to send the API call to the service.
  1512  // the "output" return value is not valid until after Send returns without error.
  1513  //
  1514  // See IssueCertificate for more information on using the IssueCertificate
  1515  // API call, and error handling.
  1516  //
  1517  // This method is useful when you want to inject custom logic or configuration
  1518  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1519  //
  1520  //
  1521  //    // Example sending a request using the IssueCertificateRequest method.
  1522  //    req, resp := client.IssueCertificateRequest(params)
  1523  //
  1524  //    err := req.Send()
  1525  //    if err == nil { // resp is now filled
  1526  //        fmt.Println(resp)
  1527  //    }
  1528  //
  1529  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/IssueCertificate
  1530  func (c *ACMPCA) IssueCertificateRequest(input *IssueCertificateInput) (req *request.Request, output *IssueCertificateOutput) {
  1531  	op := &request.Operation{
  1532  		Name:       opIssueCertificate,
  1533  		HTTPMethod: "POST",
  1534  		HTTPPath:   "/",
  1535  	}
  1536  
  1537  	if input == nil {
  1538  		input = &IssueCertificateInput{}
  1539  	}
  1540  
  1541  	output = &IssueCertificateOutput{}
  1542  	req = c.newRequest(op, input, output)
  1543  	return
  1544  }
  1545  
  1546  // IssueCertificate API operation for AWS Certificate Manager Private Certificate Authority.
  1547  //
  1548  // Uses your private certificate authority (CA), or one that has been shared
  1549  // with you, to issue a client certificate. This action returns the Amazon Resource
  1550  // Name (ARN) of the certificate. You can retrieve the certificate by calling
  1551  // the GetCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html)
  1552  // action and specifying the ARN.
  1553  //
  1554  // You cannot use the ACM ListCertificateAuthorities action to retrieve the
  1555  // ARNs of the certificates that you issue by using ACM Private CA.
  1556  //
  1557  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1558  // with awserr.Error's Code and Message methods to get detailed information about
  1559  // the error.
  1560  //
  1561  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1562  // API operation IssueCertificate for usage and error information.
  1563  //
  1564  // Returned Error Types:
  1565  //   * LimitExceededException
  1566  //   An ACM Private CA quota has been exceeded. See the exception message returned
  1567  //   to determine the quota that was exceeded.
  1568  //
  1569  //   * ResourceNotFoundException
  1570  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1571  //   policy cannot be found.
  1572  //
  1573  //   * InvalidStateException
  1574  //   The state of the private CA does not allow this action to occur.
  1575  //
  1576  //   * InvalidArnException
  1577  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1578  //
  1579  //   * InvalidArgsException
  1580  //   One or more of the specified arguments was not valid.
  1581  //
  1582  //   * MalformedCSRException
  1583  //   The certificate signing request is invalid.
  1584  //
  1585  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/IssueCertificate
  1586  func (c *ACMPCA) IssueCertificate(input *IssueCertificateInput) (*IssueCertificateOutput, error) {
  1587  	req, out := c.IssueCertificateRequest(input)
  1588  	return out, req.Send()
  1589  }
  1590  
  1591  // IssueCertificateWithContext is the same as IssueCertificate with the addition of
  1592  // the ability to pass a context and additional request options.
  1593  //
  1594  // See IssueCertificate for details on how to use this API operation.
  1595  //
  1596  // The context must be non-nil and will be used for request cancellation. If
  1597  // the context is nil a panic will occur. In the future the SDK may create
  1598  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1599  // for more information on using Contexts.
  1600  func (c *ACMPCA) IssueCertificateWithContext(ctx aws.Context, input *IssueCertificateInput, opts ...request.Option) (*IssueCertificateOutput, error) {
  1601  	req, out := c.IssueCertificateRequest(input)
  1602  	req.SetContext(ctx)
  1603  	req.ApplyOptions(opts...)
  1604  	return out, req.Send()
  1605  }
  1606  
  1607  const opListCertificateAuthorities = "ListCertificateAuthorities"
  1608  
  1609  // ListCertificateAuthoritiesRequest generates a "aws/request.Request" representing the
  1610  // client's request for the ListCertificateAuthorities operation. The "output" return
  1611  // value will be populated with the request's response once the request completes
  1612  // successfully.
  1613  //
  1614  // Use "Send" method on the returned Request to send the API call to the service.
  1615  // the "output" return value is not valid until after Send returns without error.
  1616  //
  1617  // See ListCertificateAuthorities for more information on using the ListCertificateAuthorities
  1618  // API call, and error handling.
  1619  //
  1620  // This method is useful when you want to inject custom logic or configuration
  1621  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1622  //
  1623  //
  1624  //    // Example sending a request using the ListCertificateAuthoritiesRequest method.
  1625  //    req, resp := client.ListCertificateAuthoritiesRequest(params)
  1626  //
  1627  //    err := req.Send()
  1628  //    if err == nil { // resp is now filled
  1629  //        fmt.Println(resp)
  1630  //    }
  1631  //
  1632  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ListCertificateAuthorities
  1633  func (c *ACMPCA) ListCertificateAuthoritiesRequest(input *ListCertificateAuthoritiesInput) (req *request.Request, output *ListCertificateAuthoritiesOutput) {
  1634  	op := &request.Operation{
  1635  		Name:       opListCertificateAuthorities,
  1636  		HTTPMethod: "POST",
  1637  		HTTPPath:   "/",
  1638  		Paginator: &request.Paginator{
  1639  			InputTokens:     []string{"NextToken"},
  1640  			OutputTokens:    []string{"NextToken"},
  1641  			LimitToken:      "MaxResults",
  1642  			TruncationToken: "",
  1643  		},
  1644  	}
  1645  
  1646  	if input == nil {
  1647  		input = &ListCertificateAuthoritiesInput{}
  1648  	}
  1649  
  1650  	output = &ListCertificateAuthoritiesOutput{}
  1651  	req = c.newRequest(op, input, output)
  1652  	return
  1653  }
  1654  
  1655  // ListCertificateAuthorities API operation for AWS Certificate Manager Private Certificate Authority.
  1656  //
  1657  // Lists the private certificate authorities that you created by using the CreateCertificateAuthority
  1658  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  1659  // action.
  1660  //
  1661  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1662  // with awserr.Error's Code and Message methods to get detailed information about
  1663  // the error.
  1664  //
  1665  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1666  // API operation ListCertificateAuthorities for usage and error information.
  1667  //
  1668  // Returned Error Types:
  1669  //   * InvalidNextTokenException
  1670  //   The token specified in the NextToken argument is not valid. Use the token
  1671  //   returned from your previous call to ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html).
  1672  //
  1673  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ListCertificateAuthorities
  1674  func (c *ACMPCA) ListCertificateAuthorities(input *ListCertificateAuthoritiesInput) (*ListCertificateAuthoritiesOutput, error) {
  1675  	req, out := c.ListCertificateAuthoritiesRequest(input)
  1676  	return out, req.Send()
  1677  }
  1678  
  1679  // ListCertificateAuthoritiesWithContext is the same as ListCertificateAuthorities with the addition of
  1680  // the ability to pass a context and additional request options.
  1681  //
  1682  // See ListCertificateAuthorities for details on how to use this API operation.
  1683  //
  1684  // The context must be non-nil and will be used for request cancellation. If
  1685  // the context is nil a panic will occur. In the future the SDK may create
  1686  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1687  // for more information on using Contexts.
  1688  func (c *ACMPCA) ListCertificateAuthoritiesWithContext(ctx aws.Context, input *ListCertificateAuthoritiesInput, opts ...request.Option) (*ListCertificateAuthoritiesOutput, error) {
  1689  	req, out := c.ListCertificateAuthoritiesRequest(input)
  1690  	req.SetContext(ctx)
  1691  	req.ApplyOptions(opts...)
  1692  	return out, req.Send()
  1693  }
  1694  
  1695  // ListCertificateAuthoritiesPages iterates over the pages of a ListCertificateAuthorities operation,
  1696  // calling the "fn" function with the response data for each page. To stop
  1697  // iterating, return false from the fn function.
  1698  //
  1699  // See ListCertificateAuthorities method for more information on how to use this operation.
  1700  //
  1701  // Note: This operation can generate multiple requests to a service.
  1702  //
  1703  //    // Example iterating over at most 3 pages of a ListCertificateAuthorities operation.
  1704  //    pageNum := 0
  1705  //    err := client.ListCertificateAuthoritiesPages(params,
  1706  //        func(page *acmpca.ListCertificateAuthoritiesOutput, lastPage bool) bool {
  1707  //            pageNum++
  1708  //            fmt.Println(page)
  1709  //            return pageNum <= 3
  1710  //        })
  1711  //
  1712  func (c *ACMPCA) ListCertificateAuthoritiesPages(input *ListCertificateAuthoritiesInput, fn func(*ListCertificateAuthoritiesOutput, bool) bool) error {
  1713  	return c.ListCertificateAuthoritiesPagesWithContext(aws.BackgroundContext(), input, fn)
  1714  }
  1715  
  1716  // ListCertificateAuthoritiesPagesWithContext same as ListCertificateAuthoritiesPages except
  1717  // it takes a Context and allows setting request options on the pages.
  1718  //
  1719  // The context must be non-nil and will be used for request cancellation. If
  1720  // the context is nil a panic will occur. In the future the SDK may create
  1721  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1722  // for more information on using Contexts.
  1723  func (c *ACMPCA) ListCertificateAuthoritiesPagesWithContext(ctx aws.Context, input *ListCertificateAuthoritiesInput, fn func(*ListCertificateAuthoritiesOutput, bool) bool, opts ...request.Option) error {
  1724  	p := request.Pagination{
  1725  		NewRequest: func() (*request.Request, error) {
  1726  			var inCpy *ListCertificateAuthoritiesInput
  1727  			if input != nil {
  1728  				tmp := *input
  1729  				inCpy = &tmp
  1730  			}
  1731  			req, _ := c.ListCertificateAuthoritiesRequest(inCpy)
  1732  			req.SetContext(ctx)
  1733  			req.ApplyOptions(opts...)
  1734  			return req, nil
  1735  		},
  1736  	}
  1737  
  1738  	for p.Next() {
  1739  		if !fn(p.Page().(*ListCertificateAuthoritiesOutput), !p.HasNextPage()) {
  1740  			break
  1741  		}
  1742  	}
  1743  
  1744  	return p.Err()
  1745  }
  1746  
  1747  const opListPermissions = "ListPermissions"
  1748  
  1749  // ListPermissionsRequest generates a "aws/request.Request" representing the
  1750  // client's request for the ListPermissions operation. The "output" return
  1751  // value will be populated with the request's response once the request completes
  1752  // successfully.
  1753  //
  1754  // Use "Send" method on the returned Request to send the API call to the service.
  1755  // the "output" return value is not valid until after Send returns without error.
  1756  //
  1757  // See ListPermissions for more information on using the ListPermissions
  1758  // API call, and error handling.
  1759  //
  1760  // This method is useful when you want to inject custom logic or configuration
  1761  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1762  //
  1763  //
  1764  //    // Example sending a request using the ListPermissionsRequest method.
  1765  //    req, resp := client.ListPermissionsRequest(params)
  1766  //
  1767  //    err := req.Send()
  1768  //    if err == nil { // resp is now filled
  1769  //        fmt.Println(resp)
  1770  //    }
  1771  //
  1772  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ListPermissions
  1773  func (c *ACMPCA) ListPermissionsRequest(input *ListPermissionsInput) (req *request.Request, output *ListPermissionsOutput) {
  1774  	op := &request.Operation{
  1775  		Name:       opListPermissions,
  1776  		HTTPMethod: "POST",
  1777  		HTTPPath:   "/",
  1778  		Paginator: &request.Paginator{
  1779  			InputTokens:     []string{"NextToken"},
  1780  			OutputTokens:    []string{"NextToken"},
  1781  			LimitToken:      "MaxResults",
  1782  			TruncationToken: "",
  1783  		},
  1784  	}
  1785  
  1786  	if input == nil {
  1787  		input = &ListPermissionsInput{}
  1788  	}
  1789  
  1790  	output = &ListPermissionsOutput{}
  1791  	req = c.newRequest(op, input, output)
  1792  	return
  1793  }
  1794  
  1795  // ListPermissions API operation for AWS Certificate Manager Private Certificate Authority.
  1796  //
  1797  // List all permissions on a private CA, if any, granted to the AWS Certificate
  1798  // Manager (ACM) service principal (acm.amazonaws.com).
  1799  //
  1800  // These permissions allow ACM to issue and renew ACM certificates that reside
  1801  // in the same AWS account as the CA.
  1802  //
  1803  // Permissions can be granted with the CreatePermission (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html)
  1804  // action and revoked with the DeletePermission (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html)
  1805  // action.
  1806  //
  1807  // About Permissions
  1808  //
  1809  //    * If the private CA and the certificates it issues reside in the same
  1810  //    account, you can use CreatePermission to grant permissions for ACM to
  1811  //    carry out automatic certificate renewals.
  1812  //
  1813  //    * For automatic certificate renewal to succeed, the ACM service principal
  1814  //    needs permissions to create, retrieve, and list certificates.
  1815  //
  1816  //    * If the private CA and the ACM certificates reside in different accounts,
  1817  //    then permissions cannot be used to enable automatic renewals. Instead,
  1818  //    the ACM certificate owner must set up a resource-based policy to enable
  1819  //    cross-account issuance and renewals. For more information, see Using a
  1820  //    Resource Based Policy with ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html).
  1821  //
  1822  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1823  // with awserr.Error's Code and Message methods to get detailed information about
  1824  // the error.
  1825  //
  1826  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1827  // API operation ListPermissions for usage and error information.
  1828  //
  1829  // Returned Error Types:
  1830  //   * ResourceNotFoundException
  1831  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1832  //   policy cannot be found.
  1833  //
  1834  //   * InvalidArnException
  1835  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1836  //
  1837  //   * InvalidNextTokenException
  1838  //   The token specified in the NextToken argument is not valid. Use the token
  1839  //   returned from your previous call to ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html).
  1840  //
  1841  //   * InvalidStateException
  1842  //   The state of the private CA does not allow this action to occur.
  1843  //
  1844  //   * RequestFailedException
  1845  //   The request has failed for an unspecified reason.
  1846  //
  1847  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ListPermissions
  1848  func (c *ACMPCA) ListPermissions(input *ListPermissionsInput) (*ListPermissionsOutput, error) {
  1849  	req, out := c.ListPermissionsRequest(input)
  1850  	return out, req.Send()
  1851  }
  1852  
  1853  // ListPermissionsWithContext is the same as ListPermissions with the addition of
  1854  // the ability to pass a context and additional request options.
  1855  //
  1856  // See ListPermissions for details on how to use this API operation.
  1857  //
  1858  // The context must be non-nil and will be used for request cancellation. If
  1859  // the context is nil a panic will occur. In the future the SDK may create
  1860  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1861  // for more information on using Contexts.
  1862  func (c *ACMPCA) ListPermissionsWithContext(ctx aws.Context, input *ListPermissionsInput, opts ...request.Option) (*ListPermissionsOutput, error) {
  1863  	req, out := c.ListPermissionsRequest(input)
  1864  	req.SetContext(ctx)
  1865  	req.ApplyOptions(opts...)
  1866  	return out, req.Send()
  1867  }
  1868  
  1869  // ListPermissionsPages iterates over the pages of a ListPermissions operation,
  1870  // calling the "fn" function with the response data for each page. To stop
  1871  // iterating, return false from the fn function.
  1872  //
  1873  // See ListPermissions method for more information on how to use this operation.
  1874  //
  1875  // Note: This operation can generate multiple requests to a service.
  1876  //
  1877  //    // Example iterating over at most 3 pages of a ListPermissions operation.
  1878  //    pageNum := 0
  1879  //    err := client.ListPermissionsPages(params,
  1880  //        func(page *acmpca.ListPermissionsOutput, lastPage bool) bool {
  1881  //            pageNum++
  1882  //            fmt.Println(page)
  1883  //            return pageNum <= 3
  1884  //        })
  1885  //
  1886  func (c *ACMPCA) ListPermissionsPages(input *ListPermissionsInput, fn func(*ListPermissionsOutput, bool) bool) error {
  1887  	return c.ListPermissionsPagesWithContext(aws.BackgroundContext(), input, fn)
  1888  }
  1889  
  1890  // ListPermissionsPagesWithContext same as ListPermissionsPages except
  1891  // it takes a Context and allows setting request options on the pages.
  1892  //
  1893  // The context must be non-nil and will be used for request cancellation. If
  1894  // the context is nil a panic will occur. In the future the SDK may create
  1895  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1896  // for more information on using Contexts.
  1897  func (c *ACMPCA) ListPermissionsPagesWithContext(ctx aws.Context, input *ListPermissionsInput, fn func(*ListPermissionsOutput, bool) bool, opts ...request.Option) error {
  1898  	p := request.Pagination{
  1899  		NewRequest: func() (*request.Request, error) {
  1900  			var inCpy *ListPermissionsInput
  1901  			if input != nil {
  1902  				tmp := *input
  1903  				inCpy = &tmp
  1904  			}
  1905  			req, _ := c.ListPermissionsRequest(inCpy)
  1906  			req.SetContext(ctx)
  1907  			req.ApplyOptions(opts...)
  1908  			return req, nil
  1909  		},
  1910  	}
  1911  
  1912  	for p.Next() {
  1913  		if !fn(p.Page().(*ListPermissionsOutput), !p.HasNextPage()) {
  1914  			break
  1915  		}
  1916  	}
  1917  
  1918  	return p.Err()
  1919  }
  1920  
  1921  const opListTags = "ListTags"
  1922  
  1923  // ListTagsRequest generates a "aws/request.Request" representing the
  1924  // client's request for the ListTags operation. The "output" return
  1925  // value will be populated with the request's response once the request completes
  1926  // successfully.
  1927  //
  1928  // Use "Send" method on the returned Request to send the API call to the service.
  1929  // the "output" return value is not valid until after Send returns without error.
  1930  //
  1931  // See ListTags for more information on using the ListTags
  1932  // API call, and error handling.
  1933  //
  1934  // This method is useful when you want to inject custom logic or configuration
  1935  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1936  //
  1937  //
  1938  //    // Example sending a request using the ListTagsRequest method.
  1939  //    req, resp := client.ListTagsRequest(params)
  1940  //
  1941  //    err := req.Send()
  1942  //    if err == nil { // resp is now filled
  1943  //        fmt.Println(resp)
  1944  //    }
  1945  //
  1946  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ListTags
  1947  func (c *ACMPCA) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
  1948  	op := &request.Operation{
  1949  		Name:       opListTags,
  1950  		HTTPMethod: "POST",
  1951  		HTTPPath:   "/",
  1952  		Paginator: &request.Paginator{
  1953  			InputTokens:     []string{"NextToken"},
  1954  			OutputTokens:    []string{"NextToken"},
  1955  			LimitToken:      "MaxResults",
  1956  			TruncationToken: "",
  1957  		},
  1958  	}
  1959  
  1960  	if input == nil {
  1961  		input = &ListTagsInput{}
  1962  	}
  1963  
  1964  	output = &ListTagsOutput{}
  1965  	req = c.newRequest(op, input, output)
  1966  	return
  1967  }
  1968  
  1969  // ListTags API operation for AWS Certificate Manager Private Certificate Authority.
  1970  //
  1971  // Lists the tags, if any, that are associated with your private CA or one that
  1972  // has been shared with you. Tags are labels that you can use to identify and
  1973  // organize your CAs. Each tag consists of a key and an optional value. Call
  1974  // the TagCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html)
  1975  // action to add one or more tags to your CA. Call the UntagCertificateAuthority
  1976  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html)
  1977  // action to remove tags.
  1978  //
  1979  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1980  // with awserr.Error's Code and Message methods to get detailed information about
  1981  // the error.
  1982  //
  1983  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  1984  // API operation ListTags for usage and error information.
  1985  //
  1986  // Returned Error Types:
  1987  //   * ResourceNotFoundException
  1988  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  1989  //   policy cannot be found.
  1990  //
  1991  //   * InvalidArnException
  1992  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  1993  //
  1994  //   * InvalidStateException
  1995  //   The state of the private CA does not allow this action to occur.
  1996  //
  1997  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/ListTags
  1998  func (c *ACMPCA) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
  1999  	req, out := c.ListTagsRequest(input)
  2000  	return out, req.Send()
  2001  }
  2002  
  2003  // ListTagsWithContext is the same as ListTags with the addition of
  2004  // the ability to pass a context and additional request options.
  2005  //
  2006  // See ListTags for details on how to use this API operation.
  2007  //
  2008  // The context must be non-nil and will be used for request cancellation. If
  2009  // the context is nil a panic will occur. In the future the SDK may create
  2010  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2011  // for more information on using Contexts.
  2012  func (c *ACMPCA) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
  2013  	req, out := c.ListTagsRequest(input)
  2014  	req.SetContext(ctx)
  2015  	req.ApplyOptions(opts...)
  2016  	return out, req.Send()
  2017  }
  2018  
  2019  // ListTagsPages iterates over the pages of a ListTags operation,
  2020  // calling the "fn" function with the response data for each page. To stop
  2021  // iterating, return false from the fn function.
  2022  //
  2023  // See ListTags method for more information on how to use this operation.
  2024  //
  2025  // Note: This operation can generate multiple requests to a service.
  2026  //
  2027  //    // Example iterating over at most 3 pages of a ListTags operation.
  2028  //    pageNum := 0
  2029  //    err := client.ListTagsPages(params,
  2030  //        func(page *acmpca.ListTagsOutput, lastPage bool) bool {
  2031  //            pageNum++
  2032  //            fmt.Println(page)
  2033  //            return pageNum <= 3
  2034  //        })
  2035  //
  2036  func (c *ACMPCA) ListTagsPages(input *ListTagsInput, fn func(*ListTagsOutput, bool) bool) error {
  2037  	return c.ListTagsPagesWithContext(aws.BackgroundContext(), input, fn)
  2038  }
  2039  
  2040  // ListTagsPagesWithContext same as ListTagsPages except
  2041  // it takes a Context and allows setting request options on the pages.
  2042  //
  2043  // The context must be non-nil and will be used for request cancellation. If
  2044  // the context is nil a panic will occur. In the future the SDK may create
  2045  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2046  // for more information on using Contexts.
  2047  func (c *ACMPCA) ListTagsPagesWithContext(ctx aws.Context, input *ListTagsInput, fn func(*ListTagsOutput, bool) bool, opts ...request.Option) error {
  2048  	p := request.Pagination{
  2049  		NewRequest: func() (*request.Request, error) {
  2050  			var inCpy *ListTagsInput
  2051  			if input != nil {
  2052  				tmp := *input
  2053  				inCpy = &tmp
  2054  			}
  2055  			req, _ := c.ListTagsRequest(inCpy)
  2056  			req.SetContext(ctx)
  2057  			req.ApplyOptions(opts...)
  2058  			return req, nil
  2059  		},
  2060  	}
  2061  
  2062  	for p.Next() {
  2063  		if !fn(p.Page().(*ListTagsOutput), !p.HasNextPage()) {
  2064  			break
  2065  		}
  2066  	}
  2067  
  2068  	return p.Err()
  2069  }
  2070  
  2071  const opPutPolicy = "PutPolicy"
  2072  
  2073  // PutPolicyRequest generates a "aws/request.Request" representing the
  2074  // client's request for the PutPolicy operation. The "output" return
  2075  // value will be populated with the request's response once the request completes
  2076  // successfully.
  2077  //
  2078  // Use "Send" method on the returned Request to send the API call to the service.
  2079  // the "output" return value is not valid until after Send returns without error.
  2080  //
  2081  // See PutPolicy for more information on using the PutPolicy
  2082  // API call, and error handling.
  2083  //
  2084  // This method is useful when you want to inject custom logic or configuration
  2085  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2086  //
  2087  //
  2088  //    // Example sending a request using the PutPolicyRequest method.
  2089  //    req, resp := client.PutPolicyRequest(params)
  2090  //
  2091  //    err := req.Send()
  2092  //    if err == nil { // resp is now filled
  2093  //        fmt.Println(resp)
  2094  //    }
  2095  //
  2096  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/PutPolicy
  2097  func (c *ACMPCA) PutPolicyRequest(input *PutPolicyInput) (req *request.Request, output *PutPolicyOutput) {
  2098  	op := &request.Operation{
  2099  		Name:       opPutPolicy,
  2100  		HTTPMethod: "POST",
  2101  		HTTPPath:   "/",
  2102  	}
  2103  
  2104  	if input == nil {
  2105  		input = &PutPolicyInput{}
  2106  	}
  2107  
  2108  	output = &PutPolicyOutput{}
  2109  	req = c.newRequest(op, input, output)
  2110  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2111  	return
  2112  }
  2113  
  2114  // PutPolicy API operation for AWS Certificate Manager Private Certificate Authority.
  2115  //
  2116  // Attaches a resource-based policy to a private CA.
  2117  //
  2118  // A policy can also be applied by sharing a private CA through AWS Resource
  2119  // Access Manager (RAM). For more information, see Attach a Policy for Cross-Account
  2120  // Access (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html).
  2121  //
  2122  // The policy can be displayed with GetPolicy (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetPolicy.html)
  2123  // and removed with DeletePolicy (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePolicy.html).
  2124  //
  2125  // About Policies
  2126  //
  2127  //    * A policy grants access on a private CA to an AWS customer account, to
  2128  //    AWS Organizations, or to an AWS Organizations unit. Policies are under
  2129  //    the control of a CA administrator. For more information, see Using a Resource
  2130  //    Based Policy with ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-rbp.html).
  2131  //
  2132  //    * A policy permits a user of AWS Certificate Manager (ACM) to issue ACM
  2133  //    certificates signed by a CA in another account.
  2134  //
  2135  //    * For ACM to manage automatic renewal of these certificates, the ACM user
  2136  //    must configure a Service Linked Role (SLR). The SLR allows the ACM service
  2137  //    to assume the identity of the user, subject to confirmation against the
  2138  //    ACM Private CA policy. For more information, see Using a Service Linked
  2139  //    Role with ACM (https://docs.aws.amazon.com/acm/latest/userguide/acm-slr.html).
  2140  //
  2141  //    * Updates made in AWS Resource Manager (RAM) are reflected in policies.
  2142  //    For more information, see Attach a Policy for Cross-Account Access (https://docs.aws.amazon.com/acm-pca/latest/userguide/pca-ram.html).
  2143  //
  2144  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2145  // with awserr.Error's Code and Message methods to get detailed information about
  2146  // the error.
  2147  //
  2148  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  2149  // API operation PutPolicy for usage and error information.
  2150  //
  2151  // Returned Error Types:
  2152  //   * ConcurrentModificationException
  2153  //   A previous update to your private CA is still ongoing.
  2154  //
  2155  //   * InvalidArnException
  2156  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  2157  //
  2158  //   * InvalidStateException
  2159  //   The state of the private CA does not allow this action to occur.
  2160  //
  2161  //   * InvalidPolicyException
  2162  //   The resource policy is invalid or is missing a required statement. For general
  2163  //   information about IAM policy and statement structure, see Overview of JSON
  2164  //   Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json).
  2165  //
  2166  //   * LockoutPreventedException
  2167  //   The current action was prevented because it would lock the caller out from
  2168  //   performing subsequent actions. Verify that the specified parameters would
  2169  //   not result in the caller being denied access to the resource.
  2170  //
  2171  //   * RequestFailedException
  2172  //   The request has failed for an unspecified reason.
  2173  //
  2174  //   * ResourceNotFoundException
  2175  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  2176  //   policy cannot be found.
  2177  //
  2178  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/PutPolicy
  2179  func (c *ACMPCA) PutPolicy(input *PutPolicyInput) (*PutPolicyOutput, error) {
  2180  	req, out := c.PutPolicyRequest(input)
  2181  	return out, req.Send()
  2182  }
  2183  
  2184  // PutPolicyWithContext is the same as PutPolicy with the addition of
  2185  // the ability to pass a context and additional request options.
  2186  //
  2187  // See PutPolicy for details on how to use this API operation.
  2188  //
  2189  // The context must be non-nil and will be used for request cancellation. If
  2190  // the context is nil a panic will occur. In the future the SDK may create
  2191  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2192  // for more information on using Contexts.
  2193  func (c *ACMPCA) PutPolicyWithContext(ctx aws.Context, input *PutPolicyInput, opts ...request.Option) (*PutPolicyOutput, error) {
  2194  	req, out := c.PutPolicyRequest(input)
  2195  	req.SetContext(ctx)
  2196  	req.ApplyOptions(opts...)
  2197  	return out, req.Send()
  2198  }
  2199  
  2200  const opRestoreCertificateAuthority = "RestoreCertificateAuthority"
  2201  
  2202  // RestoreCertificateAuthorityRequest generates a "aws/request.Request" representing the
  2203  // client's request for the RestoreCertificateAuthority operation. The "output" return
  2204  // value will be populated with the request's response once the request completes
  2205  // successfully.
  2206  //
  2207  // Use "Send" method on the returned Request to send the API call to the service.
  2208  // the "output" return value is not valid until after Send returns without error.
  2209  //
  2210  // See RestoreCertificateAuthority for more information on using the RestoreCertificateAuthority
  2211  // API call, and error handling.
  2212  //
  2213  // This method is useful when you want to inject custom logic or configuration
  2214  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2215  //
  2216  //
  2217  //    // Example sending a request using the RestoreCertificateAuthorityRequest method.
  2218  //    req, resp := client.RestoreCertificateAuthorityRequest(params)
  2219  //
  2220  //    err := req.Send()
  2221  //    if err == nil { // resp is now filled
  2222  //        fmt.Println(resp)
  2223  //    }
  2224  //
  2225  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/RestoreCertificateAuthority
  2226  func (c *ACMPCA) RestoreCertificateAuthorityRequest(input *RestoreCertificateAuthorityInput) (req *request.Request, output *RestoreCertificateAuthorityOutput) {
  2227  	op := &request.Operation{
  2228  		Name:       opRestoreCertificateAuthority,
  2229  		HTTPMethod: "POST",
  2230  		HTTPPath:   "/",
  2231  	}
  2232  
  2233  	if input == nil {
  2234  		input = &RestoreCertificateAuthorityInput{}
  2235  	}
  2236  
  2237  	output = &RestoreCertificateAuthorityOutput{}
  2238  	req = c.newRequest(op, input, output)
  2239  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2240  	return
  2241  }
  2242  
  2243  // RestoreCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
  2244  //
  2245  // Restores a certificate authority (CA) that is in the DELETED state. You can
  2246  // restore a CA during the period that you defined in the PermanentDeletionTimeInDays
  2247  // parameter of the DeleteCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthority.html)
  2248  // action. Currently, you can specify 7 to 30 days. If you did not specify a
  2249  // PermanentDeletionTimeInDays value, by default you can restore the CA at any
  2250  // time in a 30 day period. You can check the time remaining in the restoration
  2251  // period of a private CA in the DELETED state by calling the DescribeCertificateAuthority
  2252  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DescribeCertificateAuthority.html)
  2253  // or ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  2254  // actions. The status of a restored CA is set to its pre-deletion status when
  2255  // the RestoreCertificateAuthority action returns. To change its status to ACTIVE,
  2256  // call the UpdateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html)
  2257  // action. If the private CA was in the PENDING_CERTIFICATE state at deletion,
  2258  // you must use the ImportCertificateAuthorityCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html)
  2259  // action to import a certificate authority into the private CA before it can
  2260  // be activated. You cannot restore a CA after the restoration period has ended.
  2261  //
  2262  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2263  // with awserr.Error's Code and Message methods to get detailed information about
  2264  // the error.
  2265  //
  2266  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  2267  // API operation RestoreCertificateAuthority for usage and error information.
  2268  //
  2269  // Returned Error Types:
  2270  //   * ResourceNotFoundException
  2271  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  2272  //   policy cannot be found.
  2273  //
  2274  //   * InvalidStateException
  2275  //   The state of the private CA does not allow this action to occur.
  2276  //
  2277  //   * InvalidArnException
  2278  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  2279  //
  2280  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/RestoreCertificateAuthority
  2281  func (c *ACMPCA) RestoreCertificateAuthority(input *RestoreCertificateAuthorityInput) (*RestoreCertificateAuthorityOutput, error) {
  2282  	req, out := c.RestoreCertificateAuthorityRequest(input)
  2283  	return out, req.Send()
  2284  }
  2285  
  2286  // RestoreCertificateAuthorityWithContext is the same as RestoreCertificateAuthority with the addition of
  2287  // the ability to pass a context and additional request options.
  2288  //
  2289  // See RestoreCertificateAuthority for details on how to use this API operation.
  2290  //
  2291  // The context must be non-nil and will be used for request cancellation. If
  2292  // the context is nil a panic will occur. In the future the SDK may create
  2293  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2294  // for more information on using Contexts.
  2295  func (c *ACMPCA) RestoreCertificateAuthorityWithContext(ctx aws.Context, input *RestoreCertificateAuthorityInput, opts ...request.Option) (*RestoreCertificateAuthorityOutput, error) {
  2296  	req, out := c.RestoreCertificateAuthorityRequest(input)
  2297  	req.SetContext(ctx)
  2298  	req.ApplyOptions(opts...)
  2299  	return out, req.Send()
  2300  }
  2301  
  2302  const opRevokeCertificate = "RevokeCertificate"
  2303  
  2304  // RevokeCertificateRequest generates a "aws/request.Request" representing the
  2305  // client's request for the RevokeCertificate operation. The "output" return
  2306  // value will be populated with the request's response once the request completes
  2307  // successfully.
  2308  //
  2309  // Use "Send" method on the returned Request to send the API call to the service.
  2310  // the "output" return value is not valid until after Send returns without error.
  2311  //
  2312  // See RevokeCertificate for more information on using the RevokeCertificate
  2313  // API call, and error handling.
  2314  //
  2315  // This method is useful when you want to inject custom logic or configuration
  2316  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2317  //
  2318  //
  2319  //    // Example sending a request using the RevokeCertificateRequest method.
  2320  //    req, resp := client.RevokeCertificateRequest(params)
  2321  //
  2322  //    err := req.Send()
  2323  //    if err == nil { // resp is now filled
  2324  //        fmt.Println(resp)
  2325  //    }
  2326  //
  2327  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/RevokeCertificate
  2328  func (c *ACMPCA) RevokeCertificateRequest(input *RevokeCertificateInput) (req *request.Request, output *RevokeCertificateOutput) {
  2329  	op := &request.Operation{
  2330  		Name:       opRevokeCertificate,
  2331  		HTTPMethod: "POST",
  2332  		HTTPPath:   "/",
  2333  	}
  2334  
  2335  	if input == nil {
  2336  		input = &RevokeCertificateInput{}
  2337  	}
  2338  
  2339  	output = &RevokeCertificateOutput{}
  2340  	req = c.newRequest(op, input, output)
  2341  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2342  	return
  2343  }
  2344  
  2345  // RevokeCertificate API operation for AWS Certificate Manager Private Certificate Authority.
  2346  //
  2347  // Revokes a certificate that was issued inside ACM Private CA. If you enable
  2348  // a certificate revocation list (CRL) when you create or update your private
  2349  // CA, information about the revoked certificates will be included in the CRL.
  2350  // ACM Private CA writes the CRL to an S3 bucket that you specify. A CRL is
  2351  // typically updated approximately 30 minutes after a certificate is revoked.
  2352  // If for any reason the CRL update fails, ACM Private CA attempts makes further
  2353  // attempts every 15 minutes. With Amazon CloudWatch, you can create alarms
  2354  // for the metrics CRLGenerated and MisconfiguredCRLBucket. For more information,
  2355  // see Supported CloudWatch Metrics (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCloudWatch.html).
  2356  //
  2357  // Both PCA and the IAM principal must have permission to write to the S3 bucket
  2358  // that you specify. If the IAM principal making the call does not have permission
  2359  // to write to the bucket, then an exception is thrown. For more information,
  2360  // see Configure Access to ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html).
  2361  //
  2362  // ACM Private CA also writes revocation information to the audit report. For
  2363  // more information, see CreateCertificateAuthorityAuditReport (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html).
  2364  //
  2365  // You cannot revoke a root CA self-signed certificate.
  2366  //
  2367  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2368  // with awserr.Error's Code and Message methods to get detailed information about
  2369  // the error.
  2370  //
  2371  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  2372  // API operation RevokeCertificate for usage and error information.
  2373  //
  2374  // Returned Error Types:
  2375  //   * ConcurrentModificationException
  2376  //   A previous update to your private CA is still ongoing.
  2377  //
  2378  //   * InvalidArnException
  2379  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  2380  //
  2381  //   * InvalidRequestException
  2382  //   The request action cannot be performed or is prohibited.
  2383  //
  2384  //   * InvalidStateException
  2385  //   The state of the private CA does not allow this action to occur.
  2386  //
  2387  //   * LimitExceededException
  2388  //   An ACM Private CA quota has been exceeded. See the exception message returned
  2389  //   to determine the quota that was exceeded.
  2390  //
  2391  //   * ResourceNotFoundException
  2392  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  2393  //   policy cannot be found.
  2394  //
  2395  //   * RequestAlreadyProcessedException
  2396  //   Your request has already been completed.
  2397  //
  2398  //   * RequestInProgressException
  2399  //   Your request is already in progress.
  2400  //
  2401  //   * RequestFailedException
  2402  //   The request has failed for an unspecified reason.
  2403  //
  2404  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/RevokeCertificate
  2405  func (c *ACMPCA) RevokeCertificate(input *RevokeCertificateInput) (*RevokeCertificateOutput, error) {
  2406  	req, out := c.RevokeCertificateRequest(input)
  2407  	return out, req.Send()
  2408  }
  2409  
  2410  // RevokeCertificateWithContext is the same as RevokeCertificate with the addition of
  2411  // the ability to pass a context and additional request options.
  2412  //
  2413  // See RevokeCertificate for details on how to use this API operation.
  2414  //
  2415  // The context must be non-nil and will be used for request cancellation. If
  2416  // the context is nil a panic will occur. In the future the SDK may create
  2417  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2418  // for more information on using Contexts.
  2419  func (c *ACMPCA) RevokeCertificateWithContext(ctx aws.Context, input *RevokeCertificateInput, opts ...request.Option) (*RevokeCertificateOutput, error) {
  2420  	req, out := c.RevokeCertificateRequest(input)
  2421  	req.SetContext(ctx)
  2422  	req.ApplyOptions(opts...)
  2423  	return out, req.Send()
  2424  }
  2425  
  2426  const opTagCertificateAuthority = "TagCertificateAuthority"
  2427  
  2428  // TagCertificateAuthorityRequest generates a "aws/request.Request" representing the
  2429  // client's request for the TagCertificateAuthority operation. The "output" return
  2430  // value will be populated with the request's response once the request completes
  2431  // successfully.
  2432  //
  2433  // Use "Send" method on the returned Request to send the API call to the service.
  2434  // the "output" return value is not valid until after Send returns without error.
  2435  //
  2436  // See TagCertificateAuthority for more information on using the TagCertificateAuthority
  2437  // API call, and error handling.
  2438  //
  2439  // This method is useful when you want to inject custom logic or configuration
  2440  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2441  //
  2442  //
  2443  //    // Example sending a request using the TagCertificateAuthorityRequest method.
  2444  //    req, resp := client.TagCertificateAuthorityRequest(params)
  2445  //
  2446  //    err := req.Send()
  2447  //    if err == nil { // resp is now filled
  2448  //        fmt.Println(resp)
  2449  //    }
  2450  //
  2451  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/TagCertificateAuthority
  2452  func (c *ACMPCA) TagCertificateAuthorityRequest(input *TagCertificateAuthorityInput) (req *request.Request, output *TagCertificateAuthorityOutput) {
  2453  	op := &request.Operation{
  2454  		Name:       opTagCertificateAuthority,
  2455  		HTTPMethod: "POST",
  2456  		HTTPPath:   "/",
  2457  	}
  2458  
  2459  	if input == nil {
  2460  		input = &TagCertificateAuthorityInput{}
  2461  	}
  2462  
  2463  	output = &TagCertificateAuthorityOutput{}
  2464  	req = c.newRequest(op, input, output)
  2465  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2466  	return
  2467  }
  2468  
  2469  // TagCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
  2470  //
  2471  // Adds one or more tags to your private CA. Tags are labels that you can use
  2472  // to identify and organize your AWS resources. Each tag consists of a key and
  2473  // an optional value. You specify the private CA on input by its Amazon Resource
  2474  // Name (ARN). You specify the tag by using a key-value pair. You can apply
  2475  // a tag to just one private CA if you want to identify a specific characteristic
  2476  // of that CA, or you can apply the same tag to multiple private CAs if you
  2477  // want to filter for a common relationship among those CAs. To remove one or
  2478  // more tags, use the UntagCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html)
  2479  // action. Call the ListTags (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html)
  2480  // action to see what tags are associated with your CA.
  2481  //
  2482  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2483  // with awserr.Error's Code and Message methods to get detailed information about
  2484  // the error.
  2485  //
  2486  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  2487  // API operation TagCertificateAuthority for usage and error information.
  2488  //
  2489  // Returned Error Types:
  2490  //   * ResourceNotFoundException
  2491  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  2492  //   policy cannot be found.
  2493  //
  2494  //   * InvalidArnException
  2495  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  2496  //
  2497  //   * InvalidStateException
  2498  //   The state of the private CA does not allow this action to occur.
  2499  //
  2500  //   * InvalidTagException
  2501  //   The tag associated with the CA is not valid. The invalid argument is contained
  2502  //   in the message field.
  2503  //
  2504  //   * TooManyTagsException
  2505  //   You can associate up to 50 tags with a private CA. Exception information
  2506  //   is contained in the exception message field.
  2507  //
  2508  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/TagCertificateAuthority
  2509  func (c *ACMPCA) TagCertificateAuthority(input *TagCertificateAuthorityInput) (*TagCertificateAuthorityOutput, error) {
  2510  	req, out := c.TagCertificateAuthorityRequest(input)
  2511  	return out, req.Send()
  2512  }
  2513  
  2514  // TagCertificateAuthorityWithContext is the same as TagCertificateAuthority with the addition of
  2515  // the ability to pass a context and additional request options.
  2516  //
  2517  // See TagCertificateAuthority for details on how to use this API operation.
  2518  //
  2519  // The context must be non-nil and will be used for request cancellation. If
  2520  // the context is nil a panic will occur. In the future the SDK may create
  2521  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2522  // for more information on using Contexts.
  2523  func (c *ACMPCA) TagCertificateAuthorityWithContext(ctx aws.Context, input *TagCertificateAuthorityInput, opts ...request.Option) (*TagCertificateAuthorityOutput, error) {
  2524  	req, out := c.TagCertificateAuthorityRequest(input)
  2525  	req.SetContext(ctx)
  2526  	req.ApplyOptions(opts...)
  2527  	return out, req.Send()
  2528  }
  2529  
  2530  const opUntagCertificateAuthority = "UntagCertificateAuthority"
  2531  
  2532  // UntagCertificateAuthorityRequest generates a "aws/request.Request" representing the
  2533  // client's request for the UntagCertificateAuthority operation. The "output" return
  2534  // value will be populated with the request's response once the request completes
  2535  // successfully.
  2536  //
  2537  // Use "Send" method on the returned Request to send the API call to the service.
  2538  // the "output" return value is not valid until after Send returns without error.
  2539  //
  2540  // See UntagCertificateAuthority for more information on using the UntagCertificateAuthority
  2541  // API call, and error handling.
  2542  //
  2543  // This method is useful when you want to inject custom logic or configuration
  2544  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2545  //
  2546  //
  2547  //    // Example sending a request using the UntagCertificateAuthorityRequest method.
  2548  //    req, resp := client.UntagCertificateAuthorityRequest(params)
  2549  //
  2550  //    err := req.Send()
  2551  //    if err == nil { // resp is now filled
  2552  //        fmt.Println(resp)
  2553  //    }
  2554  //
  2555  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/UntagCertificateAuthority
  2556  func (c *ACMPCA) UntagCertificateAuthorityRequest(input *UntagCertificateAuthorityInput) (req *request.Request, output *UntagCertificateAuthorityOutput) {
  2557  	op := &request.Operation{
  2558  		Name:       opUntagCertificateAuthority,
  2559  		HTTPMethod: "POST",
  2560  		HTTPPath:   "/",
  2561  	}
  2562  
  2563  	if input == nil {
  2564  		input = &UntagCertificateAuthorityInput{}
  2565  	}
  2566  
  2567  	output = &UntagCertificateAuthorityOutput{}
  2568  	req = c.newRequest(op, input, output)
  2569  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2570  	return
  2571  }
  2572  
  2573  // UntagCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
  2574  //
  2575  // Remove one or more tags from your private CA. A tag consists of a key-value
  2576  // pair. If you do not specify the value portion of the tag when calling this
  2577  // action, the tag will be removed regardless of value. If you specify a value,
  2578  // the tag is removed only if it is associated with the specified value. To
  2579  // add tags to a private CA, use the TagCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html).
  2580  // Call the ListTags (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListTags.html)
  2581  // action to see what tags are associated with your CA.
  2582  //
  2583  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2584  // with awserr.Error's Code and Message methods to get detailed information about
  2585  // the error.
  2586  //
  2587  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  2588  // API operation UntagCertificateAuthority for usage and error information.
  2589  //
  2590  // Returned Error Types:
  2591  //   * ResourceNotFoundException
  2592  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  2593  //   policy cannot be found.
  2594  //
  2595  //   * InvalidArnException
  2596  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  2597  //
  2598  //   * InvalidStateException
  2599  //   The state of the private CA does not allow this action to occur.
  2600  //
  2601  //   * InvalidTagException
  2602  //   The tag associated with the CA is not valid. The invalid argument is contained
  2603  //   in the message field.
  2604  //
  2605  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/UntagCertificateAuthority
  2606  func (c *ACMPCA) UntagCertificateAuthority(input *UntagCertificateAuthorityInput) (*UntagCertificateAuthorityOutput, error) {
  2607  	req, out := c.UntagCertificateAuthorityRequest(input)
  2608  	return out, req.Send()
  2609  }
  2610  
  2611  // UntagCertificateAuthorityWithContext is the same as UntagCertificateAuthority with the addition of
  2612  // the ability to pass a context and additional request options.
  2613  //
  2614  // See UntagCertificateAuthority for details on how to use this API operation.
  2615  //
  2616  // The context must be non-nil and will be used for request cancellation. If
  2617  // the context is nil a panic will occur. In the future the SDK may create
  2618  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2619  // for more information on using Contexts.
  2620  func (c *ACMPCA) UntagCertificateAuthorityWithContext(ctx aws.Context, input *UntagCertificateAuthorityInput, opts ...request.Option) (*UntagCertificateAuthorityOutput, error) {
  2621  	req, out := c.UntagCertificateAuthorityRequest(input)
  2622  	req.SetContext(ctx)
  2623  	req.ApplyOptions(opts...)
  2624  	return out, req.Send()
  2625  }
  2626  
  2627  const opUpdateCertificateAuthority = "UpdateCertificateAuthority"
  2628  
  2629  // UpdateCertificateAuthorityRequest generates a "aws/request.Request" representing the
  2630  // client's request for the UpdateCertificateAuthority operation. The "output" return
  2631  // value will be populated with the request's response once the request completes
  2632  // successfully.
  2633  //
  2634  // Use "Send" method on the returned Request to send the API call to the service.
  2635  // the "output" return value is not valid until after Send returns without error.
  2636  //
  2637  // See UpdateCertificateAuthority for more information on using the UpdateCertificateAuthority
  2638  // API call, and error handling.
  2639  //
  2640  // This method is useful when you want to inject custom logic or configuration
  2641  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2642  //
  2643  //
  2644  //    // Example sending a request using the UpdateCertificateAuthorityRequest method.
  2645  //    req, resp := client.UpdateCertificateAuthorityRequest(params)
  2646  //
  2647  //    err := req.Send()
  2648  //    if err == nil { // resp is now filled
  2649  //        fmt.Println(resp)
  2650  //    }
  2651  //
  2652  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/UpdateCertificateAuthority
  2653  func (c *ACMPCA) UpdateCertificateAuthorityRequest(input *UpdateCertificateAuthorityInput) (req *request.Request, output *UpdateCertificateAuthorityOutput) {
  2654  	op := &request.Operation{
  2655  		Name:       opUpdateCertificateAuthority,
  2656  		HTTPMethod: "POST",
  2657  		HTTPPath:   "/",
  2658  	}
  2659  
  2660  	if input == nil {
  2661  		input = &UpdateCertificateAuthorityInput{}
  2662  	}
  2663  
  2664  	output = &UpdateCertificateAuthorityOutput{}
  2665  	req = c.newRequest(op, input, output)
  2666  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2667  	return
  2668  }
  2669  
  2670  // UpdateCertificateAuthority API operation for AWS Certificate Manager Private Certificate Authority.
  2671  //
  2672  // Updates the status or configuration of a private certificate authority (CA).
  2673  // Your private CA must be in the ACTIVE or DISABLED state before you can update
  2674  // it. You can disable a private CA that is in the ACTIVE state or make a CA
  2675  // that is in the DISABLED state active again.
  2676  //
  2677  // Both PCA and the IAM principal must have permission to write to the S3 bucket
  2678  // that you specify. If the IAM principal making the call does not have permission
  2679  // to write to the bucket, then an exception is thrown. For more information,
  2680  // see Configure Access to ACM Private CA (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaAuthAccess.html).
  2681  //
  2682  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2683  // with awserr.Error's Code and Message methods to get detailed information about
  2684  // the error.
  2685  //
  2686  // See the AWS API reference guide for AWS Certificate Manager Private Certificate Authority's
  2687  // API operation UpdateCertificateAuthority for usage and error information.
  2688  //
  2689  // Returned Error Types:
  2690  //   * ConcurrentModificationException
  2691  //   A previous update to your private CA is still ongoing.
  2692  //
  2693  //   * ResourceNotFoundException
  2694  //   A resource such as a private CA, S3 bucket, certificate, audit report, or
  2695  //   policy cannot be found.
  2696  //
  2697  //   * InvalidArgsException
  2698  //   One or more of the specified arguments was not valid.
  2699  //
  2700  //   * InvalidArnException
  2701  //   The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  2702  //
  2703  //   * InvalidStateException
  2704  //   The state of the private CA does not allow this action to occur.
  2705  //
  2706  //   * InvalidPolicyException
  2707  //   The resource policy is invalid or is missing a required statement. For general
  2708  //   information about IAM policy and statement structure, see Overview of JSON
  2709  //   Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json).
  2710  //
  2711  // See also, https://docs.aws.amazon.com/goto/WebAPI/acm-pca-2017-08-22/UpdateCertificateAuthority
  2712  func (c *ACMPCA) UpdateCertificateAuthority(input *UpdateCertificateAuthorityInput) (*UpdateCertificateAuthorityOutput, error) {
  2713  	req, out := c.UpdateCertificateAuthorityRequest(input)
  2714  	return out, req.Send()
  2715  }
  2716  
  2717  // UpdateCertificateAuthorityWithContext is the same as UpdateCertificateAuthority with the addition of
  2718  // the ability to pass a context and additional request options.
  2719  //
  2720  // See UpdateCertificateAuthority for details on how to use this API operation.
  2721  //
  2722  // The context must be non-nil and will be used for request cancellation. If
  2723  // the context is nil a panic will occur. In the future the SDK may create
  2724  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2725  // for more information on using Contexts.
  2726  func (c *ACMPCA) UpdateCertificateAuthorityWithContext(ctx aws.Context, input *UpdateCertificateAuthorityInput, opts ...request.Option) (*UpdateCertificateAuthorityOutput, error) {
  2727  	req, out := c.UpdateCertificateAuthorityRequest(input)
  2728  	req.SetContext(ctx)
  2729  	req.ApplyOptions(opts...)
  2730  	return out, req.Send()
  2731  }
  2732  
  2733  // Contains information about the certificate subject. The Subject field in
  2734  // the certificate identifies the entity that owns or controls the public key
  2735  // in the certificate. The entity can be a user, computer, device, or service.
  2736  // The Subject must contain an X.500 distinguished name (DN). A DN is a sequence
  2737  // of relative distinguished names (RDNs). The RDNs are separated by commas
  2738  // in the certificate.
  2739  type ASN1Subject struct {
  2740  	_ struct{} `type:"structure"`
  2741  
  2742  	// For CA and end-entity certificates in a private PKI, the common name (CN)
  2743  	// can be any string within the length limit.
  2744  	//
  2745  	// Note: In publicly trusted certificates, the common name must be a fully qualified
  2746  	// domain name (FQDN) associated with the certificate subject.
  2747  	CommonName *string `type:"string"`
  2748  
  2749  	// Two-digit code that specifies the country in which the certificate subject
  2750  	// located.
  2751  	Country *string `min:"2" type:"string"`
  2752  
  2753  	// Disambiguating information for the certificate subject.
  2754  	DistinguishedNameQualifier *string `type:"string"`
  2755  
  2756  	// Typically a qualifier appended to the name of an individual. Examples include
  2757  	// Jr. for junior, Sr. for senior, and III for third.
  2758  	GenerationQualifier *string `type:"string"`
  2759  
  2760  	// First name.
  2761  	GivenName *string `type:"string"`
  2762  
  2763  	// Concatenation that typically contains the first letter of the GivenName,
  2764  	// the first letter of the middle name if one exists, and the first letter of
  2765  	// the Surname.
  2766  	Initials *string `type:"string"`
  2767  
  2768  	// The locality (such as a city or town) in which the certificate subject is
  2769  	// located.
  2770  	Locality *string `type:"string"`
  2771  
  2772  	// Legal name of the organization with which the certificate subject is affiliated.
  2773  	Organization *string `type:"string"`
  2774  
  2775  	// A subdivision or unit of the organization (such as sales or finance) with
  2776  	// which the certificate subject is affiliated.
  2777  	OrganizationalUnit *string `type:"string"`
  2778  
  2779  	// Typically a shortened version of a longer GivenName. For example, Jonathan
  2780  	// is often shortened to John. Elizabeth is often shortened to Beth, Liz, or
  2781  	// Eliza.
  2782  	Pseudonym *string `type:"string"`
  2783  
  2784  	// The certificate serial number.
  2785  	SerialNumber *string `type:"string"`
  2786  
  2787  	// State in which the subject of the certificate is located.
  2788  	State *string `type:"string"`
  2789  
  2790  	// Family name. In the US and the UK, for example, the surname of an individual
  2791  	// is ordered last. In Asian cultures the surname is typically ordered first.
  2792  	Surname *string `type:"string"`
  2793  
  2794  	// A title such as Mr. or Ms., which is pre-pended to the name to refer formally
  2795  	// to the certificate subject.
  2796  	Title *string `type:"string"`
  2797  }
  2798  
  2799  // String returns the string representation.
  2800  //
  2801  // API parameter values that are decorated as "sensitive" in the API will not
  2802  // be included in the string output. The member name will be present, but the
  2803  // value will be replaced with "sensitive".
  2804  func (s ASN1Subject) String() string {
  2805  	return awsutil.Prettify(s)
  2806  }
  2807  
  2808  // GoString returns the string representation.
  2809  //
  2810  // API parameter values that are decorated as "sensitive" in the API will not
  2811  // be included in the string output. The member name will be present, but the
  2812  // value will be replaced with "sensitive".
  2813  func (s ASN1Subject) GoString() string {
  2814  	return s.String()
  2815  }
  2816  
  2817  // Validate inspects the fields of the type to determine if they are valid.
  2818  func (s *ASN1Subject) Validate() error {
  2819  	invalidParams := request.ErrInvalidParams{Context: "ASN1Subject"}
  2820  	if s.Country != nil && len(*s.Country) < 2 {
  2821  		invalidParams.Add(request.NewErrParamMinLen("Country", 2))
  2822  	}
  2823  
  2824  	if invalidParams.Len() > 0 {
  2825  		return invalidParams
  2826  	}
  2827  	return nil
  2828  }
  2829  
  2830  // SetCommonName sets the CommonName field's value.
  2831  func (s *ASN1Subject) SetCommonName(v string) *ASN1Subject {
  2832  	s.CommonName = &v
  2833  	return s
  2834  }
  2835  
  2836  // SetCountry sets the Country field's value.
  2837  func (s *ASN1Subject) SetCountry(v string) *ASN1Subject {
  2838  	s.Country = &v
  2839  	return s
  2840  }
  2841  
  2842  // SetDistinguishedNameQualifier sets the DistinguishedNameQualifier field's value.
  2843  func (s *ASN1Subject) SetDistinguishedNameQualifier(v string) *ASN1Subject {
  2844  	s.DistinguishedNameQualifier = &v
  2845  	return s
  2846  }
  2847  
  2848  // SetGenerationQualifier sets the GenerationQualifier field's value.
  2849  func (s *ASN1Subject) SetGenerationQualifier(v string) *ASN1Subject {
  2850  	s.GenerationQualifier = &v
  2851  	return s
  2852  }
  2853  
  2854  // SetGivenName sets the GivenName field's value.
  2855  func (s *ASN1Subject) SetGivenName(v string) *ASN1Subject {
  2856  	s.GivenName = &v
  2857  	return s
  2858  }
  2859  
  2860  // SetInitials sets the Initials field's value.
  2861  func (s *ASN1Subject) SetInitials(v string) *ASN1Subject {
  2862  	s.Initials = &v
  2863  	return s
  2864  }
  2865  
  2866  // SetLocality sets the Locality field's value.
  2867  func (s *ASN1Subject) SetLocality(v string) *ASN1Subject {
  2868  	s.Locality = &v
  2869  	return s
  2870  }
  2871  
  2872  // SetOrganization sets the Organization field's value.
  2873  func (s *ASN1Subject) SetOrganization(v string) *ASN1Subject {
  2874  	s.Organization = &v
  2875  	return s
  2876  }
  2877  
  2878  // SetOrganizationalUnit sets the OrganizationalUnit field's value.
  2879  func (s *ASN1Subject) SetOrganizationalUnit(v string) *ASN1Subject {
  2880  	s.OrganizationalUnit = &v
  2881  	return s
  2882  }
  2883  
  2884  // SetPseudonym sets the Pseudonym field's value.
  2885  func (s *ASN1Subject) SetPseudonym(v string) *ASN1Subject {
  2886  	s.Pseudonym = &v
  2887  	return s
  2888  }
  2889  
  2890  // SetSerialNumber sets the SerialNumber field's value.
  2891  func (s *ASN1Subject) SetSerialNumber(v string) *ASN1Subject {
  2892  	s.SerialNumber = &v
  2893  	return s
  2894  }
  2895  
  2896  // SetState sets the State field's value.
  2897  func (s *ASN1Subject) SetState(v string) *ASN1Subject {
  2898  	s.State = &v
  2899  	return s
  2900  }
  2901  
  2902  // SetSurname sets the Surname field's value.
  2903  func (s *ASN1Subject) SetSurname(v string) *ASN1Subject {
  2904  	s.Surname = &v
  2905  	return s
  2906  }
  2907  
  2908  // SetTitle sets the Title field's value.
  2909  func (s *ASN1Subject) SetTitle(v string) *ASN1Subject {
  2910  	s.Title = &v
  2911  	return s
  2912  }
  2913  
  2914  // Provides access information used by the authorityInfoAccess and subjectInfoAccess
  2915  // extensions described in RFC 5280 (https://tools.ietf.org/html/rfc5280).
  2916  type AccessDescription struct {
  2917  	_ struct{} `type:"structure"`
  2918  
  2919  	// The location of AccessDescription information.
  2920  	//
  2921  	// AccessLocation is a required field
  2922  	AccessLocation *GeneralName `type:"structure" required:"true"`
  2923  
  2924  	// The type and format of AccessDescription information.
  2925  	//
  2926  	// AccessMethod is a required field
  2927  	AccessMethod *AccessMethod `type:"structure" required:"true"`
  2928  }
  2929  
  2930  // String returns the string representation.
  2931  //
  2932  // API parameter values that are decorated as "sensitive" in the API will not
  2933  // be included in the string output. The member name will be present, but the
  2934  // value will be replaced with "sensitive".
  2935  func (s AccessDescription) String() string {
  2936  	return awsutil.Prettify(s)
  2937  }
  2938  
  2939  // GoString returns the string representation.
  2940  //
  2941  // API parameter values that are decorated as "sensitive" in the API will not
  2942  // be included in the string output. The member name will be present, but the
  2943  // value will be replaced with "sensitive".
  2944  func (s AccessDescription) GoString() string {
  2945  	return s.String()
  2946  }
  2947  
  2948  // Validate inspects the fields of the type to determine if they are valid.
  2949  func (s *AccessDescription) Validate() error {
  2950  	invalidParams := request.ErrInvalidParams{Context: "AccessDescription"}
  2951  	if s.AccessLocation == nil {
  2952  		invalidParams.Add(request.NewErrParamRequired("AccessLocation"))
  2953  	}
  2954  	if s.AccessMethod == nil {
  2955  		invalidParams.Add(request.NewErrParamRequired("AccessMethod"))
  2956  	}
  2957  	if s.AccessLocation != nil {
  2958  		if err := s.AccessLocation.Validate(); err != nil {
  2959  			invalidParams.AddNested("AccessLocation", err.(request.ErrInvalidParams))
  2960  		}
  2961  	}
  2962  
  2963  	if invalidParams.Len() > 0 {
  2964  		return invalidParams
  2965  	}
  2966  	return nil
  2967  }
  2968  
  2969  // SetAccessLocation sets the AccessLocation field's value.
  2970  func (s *AccessDescription) SetAccessLocation(v *GeneralName) *AccessDescription {
  2971  	s.AccessLocation = v
  2972  	return s
  2973  }
  2974  
  2975  // SetAccessMethod sets the AccessMethod field's value.
  2976  func (s *AccessDescription) SetAccessMethod(v *AccessMethod) *AccessDescription {
  2977  	s.AccessMethod = v
  2978  	return s
  2979  }
  2980  
  2981  // Describes the type and format of extension access. Only one of CustomObjectIdentifier
  2982  // or AccessMethodType may be provided. Providing both results in InvalidArgsException.
  2983  type AccessMethod struct {
  2984  	_ struct{} `type:"structure"`
  2985  
  2986  	// Specifies the AccessMethod.
  2987  	AccessMethodType *string `type:"string" enum:"AccessMethodType"`
  2988  
  2989  	// An object identifier (OID) specifying the AccessMethod. The OID must satisfy
  2990  	// the regular expression shown below. For more information, see NIST's definition
  2991  	// of Object Identifier (OID) (https://csrc.nist.gov/glossary/term/Object_Identifier).
  2992  	CustomObjectIdentifier *string `type:"string"`
  2993  }
  2994  
  2995  // String returns the string representation.
  2996  //
  2997  // API parameter values that are decorated as "sensitive" in the API will not
  2998  // be included in the string output. The member name will be present, but the
  2999  // value will be replaced with "sensitive".
  3000  func (s AccessMethod) String() string {
  3001  	return awsutil.Prettify(s)
  3002  }
  3003  
  3004  // GoString returns the string representation.
  3005  //
  3006  // API parameter values that are decorated as "sensitive" in the API will not
  3007  // be included in the string output. The member name will be present, but the
  3008  // value will be replaced with "sensitive".
  3009  func (s AccessMethod) GoString() string {
  3010  	return s.String()
  3011  }
  3012  
  3013  // SetAccessMethodType sets the AccessMethodType field's value.
  3014  func (s *AccessMethod) SetAccessMethodType(v string) *AccessMethod {
  3015  	s.AccessMethodType = &v
  3016  	return s
  3017  }
  3018  
  3019  // SetCustomObjectIdentifier sets the CustomObjectIdentifier field's value.
  3020  func (s *AccessMethod) SetCustomObjectIdentifier(v string) *AccessMethod {
  3021  	s.CustomObjectIdentifier = &v
  3022  	return s
  3023  }
  3024  
  3025  // Contains X.509 certificate information to be placed in an issued certificate.
  3026  // An APIPassthrough or APICSRPassthrough template variant must be selected,
  3027  // or else this parameter is ignored.
  3028  //
  3029  // If conflicting or duplicate certificate information is supplied from other
  3030  // sources, ACM Private CA applies order of operation rules (https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations)
  3031  // to determine what information is used.
  3032  type ApiPassthrough struct {
  3033  	_ struct{} `type:"structure"`
  3034  
  3035  	// Specifies X.509 extension information for a certificate.
  3036  	Extensions *Extensions `type:"structure"`
  3037  
  3038  	// Contains information about the certificate subject. The Subject field in
  3039  	// the certificate identifies the entity that owns or controls the public key
  3040  	// in the certificate. The entity can be a user, computer, device, or service.
  3041  	// The Subject must contain an X.500 distinguished name (DN). A DN is a sequence
  3042  	// of relative distinguished names (RDNs). The RDNs are separated by commas
  3043  	// in the certificate.
  3044  	Subject *ASN1Subject `type:"structure"`
  3045  }
  3046  
  3047  // String returns the string representation.
  3048  //
  3049  // API parameter values that are decorated as "sensitive" in the API will not
  3050  // be included in the string output. The member name will be present, but the
  3051  // value will be replaced with "sensitive".
  3052  func (s ApiPassthrough) String() string {
  3053  	return awsutil.Prettify(s)
  3054  }
  3055  
  3056  // GoString returns the string representation.
  3057  //
  3058  // API parameter values that are decorated as "sensitive" in the API will not
  3059  // be included in the string output. The member name will be present, but the
  3060  // value will be replaced with "sensitive".
  3061  func (s ApiPassthrough) GoString() string {
  3062  	return s.String()
  3063  }
  3064  
  3065  // Validate inspects the fields of the type to determine if they are valid.
  3066  func (s *ApiPassthrough) Validate() error {
  3067  	invalidParams := request.ErrInvalidParams{Context: "ApiPassthrough"}
  3068  	if s.Extensions != nil {
  3069  		if err := s.Extensions.Validate(); err != nil {
  3070  			invalidParams.AddNested("Extensions", err.(request.ErrInvalidParams))
  3071  		}
  3072  	}
  3073  	if s.Subject != nil {
  3074  		if err := s.Subject.Validate(); err != nil {
  3075  			invalidParams.AddNested("Subject", err.(request.ErrInvalidParams))
  3076  		}
  3077  	}
  3078  
  3079  	if invalidParams.Len() > 0 {
  3080  		return invalidParams
  3081  	}
  3082  	return nil
  3083  }
  3084  
  3085  // SetExtensions sets the Extensions field's value.
  3086  func (s *ApiPassthrough) SetExtensions(v *Extensions) *ApiPassthrough {
  3087  	s.Extensions = v
  3088  	return s
  3089  }
  3090  
  3091  // SetSubject sets the Subject field's value.
  3092  func (s *ApiPassthrough) SetSubject(v *ASN1Subject) *ApiPassthrough {
  3093  	s.Subject = v
  3094  	return s
  3095  }
  3096  
  3097  // Contains information about your private certificate authority (CA). Your
  3098  // private CA can issue and revoke X.509 digital certificates. Digital certificates
  3099  // verify that the entity named in the certificate Subject field owns or controls
  3100  // the public key contained in the Subject Public Key Info field. Call the CreateCertificateAuthority
  3101  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  3102  // action to create your private CA. You must then call the GetCertificateAuthorityCertificate
  3103  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificateAuthorityCertificate.html)
  3104  // action to retrieve a private CA certificate signing request (CSR). Sign the
  3105  // CSR with your ACM Private CA-hosted or on-premises root or subordinate CA
  3106  // certificate. Call the ImportCertificateAuthorityCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ImportCertificateAuthorityCertificate.html)
  3107  // action to import the signed certificate into AWS Certificate Manager (ACM).
  3108  type CertificateAuthority struct {
  3109  	_ struct{} `type:"structure"`
  3110  
  3111  	// Amazon Resource Name (ARN) for your private certificate authority (CA). The
  3112  	// format is 12345678-1234-1234-1234-123456789012 .
  3113  	Arn *string `min:"5" type:"string"`
  3114  
  3115  	// Your private CA configuration.
  3116  	CertificateAuthorityConfiguration *CertificateAuthorityConfiguration `type:"structure"`
  3117  
  3118  	// Date and time at which your private CA was created.
  3119  	CreatedAt *time.Time `type:"timestamp"`
  3120  
  3121  	// Reason the request to create your private CA failed.
  3122  	FailureReason *string `type:"string" enum:"FailureReason"`
  3123  
  3124  	// Defines a cryptographic key management compliance standard used for handling
  3125  	// CA keys.
  3126  	//
  3127  	// Default: FIPS_140_2_LEVEL_3_OR_HIGHER
  3128  	//
  3129  	// Note: AWS Region ap-northeast-3 supports only FIPS_140_2_LEVEL_2_OR_HIGHER.
  3130  	// You must explicitly specify this parameter and value when creating a CA in
  3131  	// that Region. Specifying a different value (or no value) results in an InvalidArgsException
  3132  	// with the message "A certificate authority cannot be created in this region
  3133  	// with the specified security standard."
  3134  	KeyStorageSecurityStandard *string `type:"string" enum:"KeyStorageSecurityStandard"`
  3135  
  3136  	// Date and time at which your private CA was last updated.
  3137  	LastStateChangeAt *time.Time `type:"timestamp"`
  3138  
  3139  	// Date and time after which your private CA certificate is not valid.
  3140  	NotAfter *time.Time `type:"timestamp"`
  3141  
  3142  	// Date and time before which your private CA certificate is not valid.
  3143  	NotBefore *time.Time `type:"timestamp"`
  3144  
  3145  	// The AWS account ID that owns the certificate authority.
  3146  	OwnerAccount *string `min:"12" type:"string"`
  3147  
  3148  	// The period during which a deleted CA can be restored. For more information,
  3149  	// see the PermanentDeletionTimeInDays parameter of the DeleteCertificateAuthorityRequest
  3150  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeleteCertificateAuthorityRequest.html)
  3151  	// action.
  3152  	RestorableUntil *time.Time `type:"timestamp"`
  3153  
  3154  	// Information about the Online Certificate Status Protocol (OCSP) configuration
  3155  	// or certificate revocation list (CRL) created and maintained by your private
  3156  	// CA.
  3157  	RevocationConfiguration *RevocationConfiguration `type:"structure"`
  3158  
  3159  	// Serial number of your private CA.
  3160  	Serial *string `type:"string"`
  3161  
  3162  	// Status of your private CA.
  3163  	Status *string `type:"string" enum:"CertificateAuthorityStatus"`
  3164  
  3165  	// Type of your private CA.
  3166  	Type *string `type:"string" enum:"CertificateAuthorityType"`
  3167  }
  3168  
  3169  // String returns the string representation.
  3170  //
  3171  // API parameter values that are decorated as "sensitive" in the API will not
  3172  // be included in the string output. The member name will be present, but the
  3173  // value will be replaced with "sensitive".
  3174  func (s CertificateAuthority) String() string {
  3175  	return awsutil.Prettify(s)
  3176  }
  3177  
  3178  // GoString returns the string representation.
  3179  //
  3180  // API parameter values that are decorated as "sensitive" in the API will not
  3181  // be included in the string output. The member name will be present, but the
  3182  // value will be replaced with "sensitive".
  3183  func (s CertificateAuthority) GoString() string {
  3184  	return s.String()
  3185  }
  3186  
  3187  // SetArn sets the Arn field's value.
  3188  func (s *CertificateAuthority) SetArn(v string) *CertificateAuthority {
  3189  	s.Arn = &v
  3190  	return s
  3191  }
  3192  
  3193  // SetCertificateAuthorityConfiguration sets the CertificateAuthorityConfiguration field's value.
  3194  func (s *CertificateAuthority) SetCertificateAuthorityConfiguration(v *CertificateAuthorityConfiguration) *CertificateAuthority {
  3195  	s.CertificateAuthorityConfiguration = v
  3196  	return s
  3197  }
  3198  
  3199  // SetCreatedAt sets the CreatedAt field's value.
  3200  func (s *CertificateAuthority) SetCreatedAt(v time.Time) *CertificateAuthority {
  3201  	s.CreatedAt = &v
  3202  	return s
  3203  }
  3204  
  3205  // SetFailureReason sets the FailureReason field's value.
  3206  func (s *CertificateAuthority) SetFailureReason(v string) *CertificateAuthority {
  3207  	s.FailureReason = &v
  3208  	return s
  3209  }
  3210  
  3211  // SetKeyStorageSecurityStandard sets the KeyStorageSecurityStandard field's value.
  3212  func (s *CertificateAuthority) SetKeyStorageSecurityStandard(v string) *CertificateAuthority {
  3213  	s.KeyStorageSecurityStandard = &v
  3214  	return s
  3215  }
  3216  
  3217  // SetLastStateChangeAt sets the LastStateChangeAt field's value.
  3218  func (s *CertificateAuthority) SetLastStateChangeAt(v time.Time) *CertificateAuthority {
  3219  	s.LastStateChangeAt = &v
  3220  	return s
  3221  }
  3222  
  3223  // SetNotAfter sets the NotAfter field's value.
  3224  func (s *CertificateAuthority) SetNotAfter(v time.Time) *CertificateAuthority {
  3225  	s.NotAfter = &v
  3226  	return s
  3227  }
  3228  
  3229  // SetNotBefore sets the NotBefore field's value.
  3230  func (s *CertificateAuthority) SetNotBefore(v time.Time) *CertificateAuthority {
  3231  	s.NotBefore = &v
  3232  	return s
  3233  }
  3234  
  3235  // SetOwnerAccount sets the OwnerAccount field's value.
  3236  func (s *CertificateAuthority) SetOwnerAccount(v string) *CertificateAuthority {
  3237  	s.OwnerAccount = &v
  3238  	return s
  3239  }
  3240  
  3241  // SetRestorableUntil sets the RestorableUntil field's value.
  3242  func (s *CertificateAuthority) SetRestorableUntil(v time.Time) *CertificateAuthority {
  3243  	s.RestorableUntil = &v
  3244  	return s
  3245  }
  3246  
  3247  // SetRevocationConfiguration sets the RevocationConfiguration field's value.
  3248  func (s *CertificateAuthority) SetRevocationConfiguration(v *RevocationConfiguration) *CertificateAuthority {
  3249  	s.RevocationConfiguration = v
  3250  	return s
  3251  }
  3252  
  3253  // SetSerial sets the Serial field's value.
  3254  func (s *CertificateAuthority) SetSerial(v string) *CertificateAuthority {
  3255  	s.Serial = &v
  3256  	return s
  3257  }
  3258  
  3259  // SetStatus sets the Status field's value.
  3260  func (s *CertificateAuthority) SetStatus(v string) *CertificateAuthority {
  3261  	s.Status = &v
  3262  	return s
  3263  }
  3264  
  3265  // SetType sets the Type field's value.
  3266  func (s *CertificateAuthority) SetType(v string) *CertificateAuthority {
  3267  	s.Type = &v
  3268  	return s
  3269  }
  3270  
  3271  // Contains configuration information for your private certificate authority
  3272  // (CA). This includes information about the class of public key algorithm and
  3273  // the key pair that your private CA creates when it issues a certificate. It
  3274  // also includes the signature algorithm that it uses when issuing certificates,
  3275  // and its X.500 distinguished name. You must specify this information when
  3276  // you call the CreateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  3277  // action.
  3278  type CertificateAuthorityConfiguration struct {
  3279  	_ struct{} `type:"structure"`
  3280  
  3281  	// Specifies information to be added to the extension section of the certificate
  3282  	// signing request (CSR).
  3283  	CsrExtensions *CsrExtensions `type:"structure"`
  3284  
  3285  	// Type of the public key algorithm and size, in bits, of the key pair that
  3286  	// your CA creates when it issues a certificate. When you create a subordinate
  3287  	// CA, you must use a key algorithm supported by the parent CA.
  3288  	//
  3289  	// KeyAlgorithm is a required field
  3290  	KeyAlgorithm *string `type:"string" required:"true" enum:"KeyAlgorithm"`
  3291  
  3292  	// Name of the algorithm your private CA uses to sign certificate requests.
  3293  	//
  3294  	// This parameter should not be confused with the SigningAlgorithm parameter
  3295  	// used to sign certificates when they are issued.
  3296  	//
  3297  	// SigningAlgorithm is a required field
  3298  	SigningAlgorithm *string `type:"string" required:"true" enum:"SigningAlgorithm"`
  3299  
  3300  	// Structure that contains X.500 distinguished name information for your private
  3301  	// CA.
  3302  	//
  3303  	// Subject is a required field
  3304  	Subject *ASN1Subject `type:"structure" required:"true"`
  3305  }
  3306  
  3307  // String returns the string representation.
  3308  //
  3309  // API parameter values that are decorated as "sensitive" in the API will not
  3310  // be included in the string output. The member name will be present, but the
  3311  // value will be replaced with "sensitive".
  3312  func (s CertificateAuthorityConfiguration) String() string {
  3313  	return awsutil.Prettify(s)
  3314  }
  3315  
  3316  // GoString returns the string representation.
  3317  //
  3318  // API parameter values that are decorated as "sensitive" in the API will not
  3319  // be included in the string output. The member name will be present, but the
  3320  // value will be replaced with "sensitive".
  3321  func (s CertificateAuthorityConfiguration) GoString() string {
  3322  	return s.String()
  3323  }
  3324  
  3325  // Validate inspects the fields of the type to determine if they are valid.
  3326  func (s *CertificateAuthorityConfiguration) Validate() error {
  3327  	invalidParams := request.ErrInvalidParams{Context: "CertificateAuthorityConfiguration"}
  3328  	if s.KeyAlgorithm == nil {
  3329  		invalidParams.Add(request.NewErrParamRequired("KeyAlgorithm"))
  3330  	}
  3331  	if s.SigningAlgorithm == nil {
  3332  		invalidParams.Add(request.NewErrParamRequired("SigningAlgorithm"))
  3333  	}
  3334  	if s.Subject == nil {
  3335  		invalidParams.Add(request.NewErrParamRequired("Subject"))
  3336  	}
  3337  	if s.CsrExtensions != nil {
  3338  		if err := s.CsrExtensions.Validate(); err != nil {
  3339  			invalidParams.AddNested("CsrExtensions", err.(request.ErrInvalidParams))
  3340  		}
  3341  	}
  3342  	if s.Subject != nil {
  3343  		if err := s.Subject.Validate(); err != nil {
  3344  			invalidParams.AddNested("Subject", err.(request.ErrInvalidParams))
  3345  		}
  3346  	}
  3347  
  3348  	if invalidParams.Len() > 0 {
  3349  		return invalidParams
  3350  	}
  3351  	return nil
  3352  }
  3353  
  3354  // SetCsrExtensions sets the CsrExtensions field's value.
  3355  func (s *CertificateAuthorityConfiguration) SetCsrExtensions(v *CsrExtensions) *CertificateAuthorityConfiguration {
  3356  	s.CsrExtensions = v
  3357  	return s
  3358  }
  3359  
  3360  // SetKeyAlgorithm sets the KeyAlgorithm field's value.
  3361  func (s *CertificateAuthorityConfiguration) SetKeyAlgorithm(v string) *CertificateAuthorityConfiguration {
  3362  	s.KeyAlgorithm = &v
  3363  	return s
  3364  }
  3365  
  3366  // SetSigningAlgorithm sets the SigningAlgorithm field's value.
  3367  func (s *CertificateAuthorityConfiguration) SetSigningAlgorithm(v string) *CertificateAuthorityConfiguration {
  3368  	s.SigningAlgorithm = &v
  3369  	return s
  3370  }
  3371  
  3372  // SetSubject sets the Subject field's value.
  3373  func (s *CertificateAuthorityConfiguration) SetSubject(v *ASN1Subject) *CertificateAuthorityConfiguration {
  3374  	s.Subject = v
  3375  	return s
  3376  }
  3377  
  3378  // The certificate authority certificate you are importing does not comply with
  3379  // conditions specified in the certificate that signed it.
  3380  type CertificateMismatchException struct {
  3381  	_            struct{}                  `type:"structure"`
  3382  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3383  
  3384  	Message_ *string `locationName:"message" type:"string"`
  3385  }
  3386  
  3387  // String returns the string representation.
  3388  //
  3389  // API parameter values that are decorated as "sensitive" in the API will not
  3390  // be included in the string output. The member name will be present, but the
  3391  // value will be replaced with "sensitive".
  3392  func (s CertificateMismatchException) String() string {
  3393  	return awsutil.Prettify(s)
  3394  }
  3395  
  3396  // GoString returns the string representation.
  3397  //
  3398  // API parameter values that are decorated as "sensitive" in the API will not
  3399  // be included in the string output. The member name will be present, but the
  3400  // value will be replaced with "sensitive".
  3401  func (s CertificateMismatchException) GoString() string {
  3402  	return s.String()
  3403  }
  3404  
  3405  func newErrorCertificateMismatchException(v protocol.ResponseMetadata) error {
  3406  	return &CertificateMismatchException{
  3407  		RespMetadata: v,
  3408  	}
  3409  }
  3410  
  3411  // Code returns the exception type name.
  3412  func (s *CertificateMismatchException) Code() string {
  3413  	return "CertificateMismatchException"
  3414  }
  3415  
  3416  // Message returns the exception's message.
  3417  func (s *CertificateMismatchException) Message() string {
  3418  	if s.Message_ != nil {
  3419  		return *s.Message_
  3420  	}
  3421  	return ""
  3422  }
  3423  
  3424  // OrigErr always returns nil, satisfies awserr.Error interface.
  3425  func (s *CertificateMismatchException) OrigErr() error {
  3426  	return nil
  3427  }
  3428  
  3429  func (s *CertificateMismatchException) Error() string {
  3430  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3431  }
  3432  
  3433  // Status code returns the HTTP status code for the request's response error.
  3434  func (s *CertificateMismatchException) StatusCode() int {
  3435  	return s.RespMetadata.StatusCode
  3436  }
  3437  
  3438  // RequestID returns the service's response RequestID for request.
  3439  func (s *CertificateMismatchException) RequestID() string {
  3440  	return s.RespMetadata.RequestID
  3441  }
  3442  
  3443  // A previous update to your private CA is still ongoing.
  3444  type ConcurrentModificationException struct {
  3445  	_            struct{}                  `type:"structure"`
  3446  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3447  
  3448  	Message_ *string `locationName:"message" type:"string"`
  3449  }
  3450  
  3451  // String returns the string representation.
  3452  //
  3453  // API parameter values that are decorated as "sensitive" in the API will not
  3454  // be included in the string output. The member name will be present, but the
  3455  // value will be replaced with "sensitive".
  3456  func (s ConcurrentModificationException) String() string {
  3457  	return awsutil.Prettify(s)
  3458  }
  3459  
  3460  // GoString returns the string representation.
  3461  //
  3462  // API parameter values that are decorated as "sensitive" in the API will not
  3463  // be included in the string output. The member name will be present, but the
  3464  // value will be replaced with "sensitive".
  3465  func (s ConcurrentModificationException) GoString() string {
  3466  	return s.String()
  3467  }
  3468  
  3469  func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
  3470  	return &ConcurrentModificationException{
  3471  		RespMetadata: v,
  3472  	}
  3473  }
  3474  
  3475  // Code returns the exception type name.
  3476  func (s *ConcurrentModificationException) Code() string {
  3477  	return "ConcurrentModificationException"
  3478  }
  3479  
  3480  // Message returns the exception's message.
  3481  func (s *ConcurrentModificationException) Message() string {
  3482  	if s.Message_ != nil {
  3483  		return *s.Message_
  3484  	}
  3485  	return ""
  3486  }
  3487  
  3488  // OrigErr always returns nil, satisfies awserr.Error interface.
  3489  func (s *ConcurrentModificationException) OrigErr() error {
  3490  	return nil
  3491  }
  3492  
  3493  func (s *ConcurrentModificationException) Error() string {
  3494  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3495  }
  3496  
  3497  // Status code returns the HTTP status code for the request's response error.
  3498  func (s *ConcurrentModificationException) StatusCode() int {
  3499  	return s.RespMetadata.StatusCode
  3500  }
  3501  
  3502  // RequestID returns the service's response RequestID for request.
  3503  func (s *ConcurrentModificationException) RequestID() string {
  3504  	return s.RespMetadata.RequestID
  3505  }
  3506  
  3507  type CreateCertificateAuthorityAuditReportInput struct {
  3508  	_ struct{} `type:"structure"`
  3509  
  3510  	// The format in which to create the report. This can be either JSON or CSV.
  3511  	//
  3512  	// AuditReportResponseFormat is a required field
  3513  	AuditReportResponseFormat *string `type:"string" required:"true" enum:"AuditReportResponseFormat"`
  3514  
  3515  	// The Amazon Resource Name (ARN) of the CA to be audited. This is of the form:
  3516  	//
  3517  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  3518  	//
  3519  	// CertificateAuthorityArn is a required field
  3520  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  3521  
  3522  	// The name of the S3 bucket that will contain the audit report.
  3523  	//
  3524  	// S3BucketName is a required field
  3525  	S3BucketName *string `min:"3" type:"string" required:"true"`
  3526  }
  3527  
  3528  // String returns the string representation.
  3529  //
  3530  // API parameter values that are decorated as "sensitive" in the API will not
  3531  // be included in the string output. The member name will be present, but the
  3532  // value will be replaced with "sensitive".
  3533  func (s CreateCertificateAuthorityAuditReportInput) String() string {
  3534  	return awsutil.Prettify(s)
  3535  }
  3536  
  3537  // GoString returns the string representation.
  3538  //
  3539  // API parameter values that are decorated as "sensitive" in the API will not
  3540  // be included in the string output. The member name will be present, but the
  3541  // value will be replaced with "sensitive".
  3542  func (s CreateCertificateAuthorityAuditReportInput) GoString() string {
  3543  	return s.String()
  3544  }
  3545  
  3546  // Validate inspects the fields of the type to determine if they are valid.
  3547  func (s *CreateCertificateAuthorityAuditReportInput) Validate() error {
  3548  	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateAuthorityAuditReportInput"}
  3549  	if s.AuditReportResponseFormat == nil {
  3550  		invalidParams.Add(request.NewErrParamRequired("AuditReportResponseFormat"))
  3551  	}
  3552  	if s.CertificateAuthorityArn == nil {
  3553  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  3554  	}
  3555  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  3556  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  3557  	}
  3558  	if s.S3BucketName == nil {
  3559  		invalidParams.Add(request.NewErrParamRequired("S3BucketName"))
  3560  	}
  3561  	if s.S3BucketName != nil && len(*s.S3BucketName) < 3 {
  3562  		invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 3))
  3563  	}
  3564  
  3565  	if invalidParams.Len() > 0 {
  3566  		return invalidParams
  3567  	}
  3568  	return nil
  3569  }
  3570  
  3571  // SetAuditReportResponseFormat sets the AuditReportResponseFormat field's value.
  3572  func (s *CreateCertificateAuthorityAuditReportInput) SetAuditReportResponseFormat(v string) *CreateCertificateAuthorityAuditReportInput {
  3573  	s.AuditReportResponseFormat = &v
  3574  	return s
  3575  }
  3576  
  3577  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  3578  func (s *CreateCertificateAuthorityAuditReportInput) SetCertificateAuthorityArn(v string) *CreateCertificateAuthorityAuditReportInput {
  3579  	s.CertificateAuthorityArn = &v
  3580  	return s
  3581  }
  3582  
  3583  // SetS3BucketName sets the S3BucketName field's value.
  3584  func (s *CreateCertificateAuthorityAuditReportInput) SetS3BucketName(v string) *CreateCertificateAuthorityAuditReportInput {
  3585  	s.S3BucketName = &v
  3586  	return s
  3587  }
  3588  
  3589  type CreateCertificateAuthorityAuditReportOutput struct {
  3590  	_ struct{} `type:"structure"`
  3591  
  3592  	// An alphanumeric string that contains a report identifier.
  3593  	AuditReportId *string `min:"36" type:"string"`
  3594  
  3595  	// The key that uniquely identifies the report file in your S3 bucket.
  3596  	S3Key *string `type:"string"`
  3597  }
  3598  
  3599  // String returns the string representation.
  3600  //
  3601  // API parameter values that are decorated as "sensitive" in the API will not
  3602  // be included in the string output. The member name will be present, but the
  3603  // value will be replaced with "sensitive".
  3604  func (s CreateCertificateAuthorityAuditReportOutput) String() string {
  3605  	return awsutil.Prettify(s)
  3606  }
  3607  
  3608  // GoString returns the string representation.
  3609  //
  3610  // API parameter values that are decorated as "sensitive" in the API will not
  3611  // be included in the string output. The member name will be present, but the
  3612  // value will be replaced with "sensitive".
  3613  func (s CreateCertificateAuthorityAuditReportOutput) GoString() string {
  3614  	return s.String()
  3615  }
  3616  
  3617  // SetAuditReportId sets the AuditReportId field's value.
  3618  func (s *CreateCertificateAuthorityAuditReportOutput) SetAuditReportId(v string) *CreateCertificateAuthorityAuditReportOutput {
  3619  	s.AuditReportId = &v
  3620  	return s
  3621  }
  3622  
  3623  // SetS3Key sets the S3Key field's value.
  3624  func (s *CreateCertificateAuthorityAuditReportOutput) SetS3Key(v string) *CreateCertificateAuthorityAuditReportOutput {
  3625  	s.S3Key = &v
  3626  	return s
  3627  }
  3628  
  3629  type CreateCertificateAuthorityInput struct {
  3630  	_ struct{} `type:"structure"`
  3631  
  3632  	// Name and bit size of the private key algorithm, the name of the signing algorithm,
  3633  	// and X.500 certificate subject information.
  3634  	//
  3635  	// CertificateAuthorityConfiguration is a required field
  3636  	CertificateAuthorityConfiguration *CertificateAuthorityConfiguration `type:"structure" required:"true"`
  3637  
  3638  	// The type of the certificate authority.
  3639  	//
  3640  	// CertificateAuthorityType is a required field
  3641  	CertificateAuthorityType *string `type:"string" required:"true" enum:"CertificateAuthorityType"`
  3642  
  3643  	// Custom string that can be used to distinguish between calls to the CreateCertificateAuthority
  3644  	// action. Idempotency tokens for CreateCertificateAuthority time out after
  3645  	// five minutes. Therefore, if you call CreateCertificateAuthority multiple
  3646  	// times with the same idempotency token within five minutes, ACM Private CA
  3647  	// recognizes that you are requesting only certificate authority and will issue
  3648  	// only one. If you change the idempotency token for each call, PCA recognizes
  3649  	// that you are requesting multiple certificate authorities.
  3650  	IdempotencyToken *string `min:"1" type:"string"`
  3651  
  3652  	// Specifies a cryptographic key management compliance standard used for handling
  3653  	// CA keys.
  3654  	//
  3655  	// Default: FIPS_140_2_LEVEL_3_OR_HIGHER
  3656  	//
  3657  	// Note: FIPS_140_2_LEVEL_3_OR_HIGHER is not supported in Region ap-northeast-3.
  3658  	// When creating a CA in the ap-northeast-3, you must provide FIPS_140_2_LEVEL_2_OR_HIGHER
  3659  	// as the argument for KeyStorageSecurityStandard. Failure to do this results
  3660  	// in an InvalidArgsException with the message, "A certificate authority cannot
  3661  	// be created in this region with the specified security standard."
  3662  	KeyStorageSecurityStandard *string `type:"string" enum:"KeyStorageSecurityStandard"`
  3663  
  3664  	// Contains information to enable Online Certificate Status Protocol (OCSP)
  3665  	// support, to enable a certificate revocation list (CRL), to enable both, or
  3666  	// to enable neither. The default is for both certificate validation mechanisms
  3667  	// to be disabled. For more information, see the OcspConfiguration (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_OcspConfiguration.html)
  3668  	// and CrlConfiguration (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html)
  3669  	// types.
  3670  	RevocationConfiguration *RevocationConfiguration `type:"structure"`
  3671  
  3672  	// Key-value pairs that will be attached to the new private CA. You can associate
  3673  	// up to 50 tags with a private CA. For information using tags with IAM to manage
  3674  	// permissions, see Controlling Access Using IAM Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html).
  3675  	Tags []*Tag `min:"1" type:"list"`
  3676  }
  3677  
  3678  // String returns the string representation.
  3679  //
  3680  // API parameter values that are decorated as "sensitive" in the API will not
  3681  // be included in the string output. The member name will be present, but the
  3682  // value will be replaced with "sensitive".
  3683  func (s CreateCertificateAuthorityInput) String() string {
  3684  	return awsutil.Prettify(s)
  3685  }
  3686  
  3687  // GoString returns the string representation.
  3688  //
  3689  // API parameter values that are decorated as "sensitive" in the API will not
  3690  // be included in the string output. The member name will be present, but the
  3691  // value will be replaced with "sensitive".
  3692  func (s CreateCertificateAuthorityInput) GoString() string {
  3693  	return s.String()
  3694  }
  3695  
  3696  // Validate inspects the fields of the type to determine if they are valid.
  3697  func (s *CreateCertificateAuthorityInput) Validate() error {
  3698  	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateAuthorityInput"}
  3699  	if s.CertificateAuthorityConfiguration == nil {
  3700  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityConfiguration"))
  3701  	}
  3702  	if s.CertificateAuthorityType == nil {
  3703  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityType"))
  3704  	}
  3705  	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
  3706  		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
  3707  	}
  3708  	if s.Tags != nil && len(s.Tags) < 1 {
  3709  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  3710  	}
  3711  	if s.CertificateAuthorityConfiguration != nil {
  3712  		if err := s.CertificateAuthorityConfiguration.Validate(); err != nil {
  3713  			invalidParams.AddNested("CertificateAuthorityConfiguration", err.(request.ErrInvalidParams))
  3714  		}
  3715  	}
  3716  	if s.RevocationConfiguration != nil {
  3717  		if err := s.RevocationConfiguration.Validate(); err != nil {
  3718  			invalidParams.AddNested("RevocationConfiguration", err.(request.ErrInvalidParams))
  3719  		}
  3720  	}
  3721  	if s.Tags != nil {
  3722  		for i, v := range s.Tags {
  3723  			if v == nil {
  3724  				continue
  3725  			}
  3726  			if err := v.Validate(); err != nil {
  3727  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  3728  			}
  3729  		}
  3730  	}
  3731  
  3732  	if invalidParams.Len() > 0 {
  3733  		return invalidParams
  3734  	}
  3735  	return nil
  3736  }
  3737  
  3738  // SetCertificateAuthorityConfiguration sets the CertificateAuthorityConfiguration field's value.
  3739  func (s *CreateCertificateAuthorityInput) SetCertificateAuthorityConfiguration(v *CertificateAuthorityConfiguration) *CreateCertificateAuthorityInput {
  3740  	s.CertificateAuthorityConfiguration = v
  3741  	return s
  3742  }
  3743  
  3744  // SetCertificateAuthorityType sets the CertificateAuthorityType field's value.
  3745  func (s *CreateCertificateAuthorityInput) SetCertificateAuthorityType(v string) *CreateCertificateAuthorityInput {
  3746  	s.CertificateAuthorityType = &v
  3747  	return s
  3748  }
  3749  
  3750  // SetIdempotencyToken sets the IdempotencyToken field's value.
  3751  func (s *CreateCertificateAuthorityInput) SetIdempotencyToken(v string) *CreateCertificateAuthorityInput {
  3752  	s.IdempotencyToken = &v
  3753  	return s
  3754  }
  3755  
  3756  // SetKeyStorageSecurityStandard sets the KeyStorageSecurityStandard field's value.
  3757  func (s *CreateCertificateAuthorityInput) SetKeyStorageSecurityStandard(v string) *CreateCertificateAuthorityInput {
  3758  	s.KeyStorageSecurityStandard = &v
  3759  	return s
  3760  }
  3761  
  3762  // SetRevocationConfiguration sets the RevocationConfiguration field's value.
  3763  func (s *CreateCertificateAuthorityInput) SetRevocationConfiguration(v *RevocationConfiguration) *CreateCertificateAuthorityInput {
  3764  	s.RevocationConfiguration = v
  3765  	return s
  3766  }
  3767  
  3768  // SetTags sets the Tags field's value.
  3769  func (s *CreateCertificateAuthorityInput) SetTags(v []*Tag) *CreateCertificateAuthorityInput {
  3770  	s.Tags = v
  3771  	return s
  3772  }
  3773  
  3774  type CreateCertificateAuthorityOutput struct {
  3775  	_ struct{} `type:"structure"`
  3776  
  3777  	// If successful, the Amazon Resource Name (ARN) of the certificate authority
  3778  	// (CA). This is of the form:
  3779  	//
  3780  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  3781  	CertificateAuthorityArn *string `min:"5" type:"string"`
  3782  }
  3783  
  3784  // String returns the string representation.
  3785  //
  3786  // API parameter values that are decorated as "sensitive" in the API will not
  3787  // be included in the string output. The member name will be present, but the
  3788  // value will be replaced with "sensitive".
  3789  func (s CreateCertificateAuthorityOutput) String() string {
  3790  	return awsutil.Prettify(s)
  3791  }
  3792  
  3793  // GoString returns the string representation.
  3794  //
  3795  // API parameter values that are decorated as "sensitive" in the API will not
  3796  // be included in the string output. The member name will be present, but the
  3797  // value will be replaced with "sensitive".
  3798  func (s CreateCertificateAuthorityOutput) GoString() string {
  3799  	return s.String()
  3800  }
  3801  
  3802  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  3803  func (s *CreateCertificateAuthorityOutput) SetCertificateAuthorityArn(v string) *CreateCertificateAuthorityOutput {
  3804  	s.CertificateAuthorityArn = &v
  3805  	return s
  3806  }
  3807  
  3808  type CreatePermissionInput struct {
  3809  	_ struct{} `type:"structure"`
  3810  
  3811  	// The actions that the specified AWS service principal can use. These include
  3812  	// IssueCertificate, GetCertificate, and ListPermissions.
  3813  	//
  3814  	// Actions is a required field
  3815  	Actions []*string `min:"1" type:"list" required:"true"`
  3816  
  3817  	// The Amazon Resource Name (ARN) of the CA that grants the permissions. You
  3818  	// can find the ARN by calling the ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  3819  	// action. This must have the following form:
  3820  	//
  3821  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  3822  	//
  3823  	// CertificateAuthorityArn is a required field
  3824  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  3825  
  3826  	// The AWS service or identity that receives the permission. At this time, the
  3827  	// only valid principal is acm.amazonaws.com.
  3828  	//
  3829  	// Principal is a required field
  3830  	Principal *string `type:"string" required:"true"`
  3831  
  3832  	// The ID of the calling account.
  3833  	SourceAccount *string `min:"12" type:"string"`
  3834  }
  3835  
  3836  // String returns the string representation.
  3837  //
  3838  // API parameter values that are decorated as "sensitive" in the API will not
  3839  // be included in the string output. The member name will be present, but the
  3840  // value will be replaced with "sensitive".
  3841  func (s CreatePermissionInput) String() string {
  3842  	return awsutil.Prettify(s)
  3843  }
  3844  
  3845  // GoString returns the string representation.
  3846  //
  3847  // API parameter values that are decorated as "sensitive" in the API will not
  3848  // be included in the string output. The member name will be present, but the
  3849  // value will be replaced with "sensitive".
  3850  func (s CreatePermissionInput) GoString() string {
  3851  	return s.String()
  3852  }
  3853  
  3854  // Validate inspects the fields of the type to determine if they are valid.
  3855  func (s *CreatePermissionInput) Validate() error {
  3856  	invalidParams := request.ErrInvalidParams{Context: "CreatePermissionInput"}
  3857  	if s.Actions == nil {
  3858  		invalidParams.Add(request.NewErrParamRequired("Actions"))
  3859  	}
  3860  	if s.Actions != nil && len(s.Actions) < 1 {
  3861  		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
  3862  	}
  3863  	if s.CertificateAuthorityArn == nil {
  3864  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  3865  	}
  3866  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  3867  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  3868  	}
  3869  	if s.Principal == nil {
  3870  		invalidParams.Add(request.NewErrParamRequired("Principal"))
  3871  	}
  3872  	if s.SourceAccount != nil && len(*s.SourceAccount) < 12 {
  3873  		invalidParams.Add(request.NewErrParamMinLen("SourceAccount", 12))
  3874  	}
  3875  
  3876  	if invalidParams.Len() > 0 {
  3877  		return invalidParams
  3878  	}
  3879  	return nil
  3880  }
  3881  
  3882  // SetActions sets the Actions field's value.
  3883  func (s *CreatePermissionInput) SetActions(v []*string) *CreatePermissionInput {
  3884  	s.Actions = v
  3885  	return s
  3886  }
  3887  
  3888  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  3889  func (s *CreatePermissionInput) SetCertificateAuthorityArn(v string) *CreatePermissionInput {
  3890  	s.CertificateAuthorityArn = &v
  3891  	return s
  3892  }
  3893  
  3894  // SetPrincipal sets the Principal field's value.
  3895  func (s *CreatePermissionInput) SetPrincipal(v string) *CreatePermissionInput {
  3896  	s.Principal = &v
  3897  	return s
  3898  }
  3899  
  3900  // SetSourceAccount sets the SourceAccount field's value.
  3901  func (s *CreatePermissionInput) SetSourceAccount(v string) *CreatePermissionInput {
  3902  	s.SourceAccount = &v
  3903  	return s
  3904  }
  3905  
  3906  type CreatePermissionOutput struct {
  3907  	_ struct{} `type:"structure"`
  3908  }
  3909  
  3910  // String returns the string representation.
  3911  //
  3912  // API parameter values that are decorated as "sensitive" in the API will not
  3913  // be included in the string output. The member name will be present, but the
  3914  // value will be replaced with "sensitive".
  3915  func (s CreatePermissionOutput) String() string {
  3916  	return awsutil.Prettify(s)
  3917  }
  3918  
  3919  // GoString returns the string representation.
  3920  //
  3921  // API parameter values that are decorated as "sensitive" in the API will not
  3922  // be included in the string output. The member name will be present, but the
  3923  // value will be replaced with "sensitive".
  3924  func (s CreatePermissionOutput) GoString() string {
  3925  	return s.String()
  3926  }
  3927  
  3928  // Contains configuration information for a certificate revocation list (CRL).
  3929  // Your private certificate authority (CA) creates base CRLs. Delta CRLs are
  3930  // not supported. You can enable CRLs for your new or an existing private CA
  3931  // by setting the Enabled parameter to true. Your private CA writes CRLs to
  3932  // an S3 bucket that you specify in the S3BucketName parameter. You can hide
  3933  // the name of your bucket by specifying a value for the CustomCname parameter.
  3934  // Your private CA copies the CNAME or the S3 bucket name to the CRL Distribution
  3935  // Points extension of each certificate it issues. Your S3 bucket policy must
  3936  // give write permission to ACM Private CA.
  3937  //
  3938  // ACM Private CA assets that are stored in Amazon S3 can be protected with
  3939  // encryption. For more information, see Encrypting Your CRLs (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#crl-encryption).
  3940  //
  3941  // Your private CA uses the value in the ExpirationInDays parameter to calculate
  3942  // the nextUpdate field in the CRL. The CRL is refreshed at 1/2 the age of next
  3943  // update or when a certificate is revoked. When a certificate is revoked, it
  3944  // is recorded in the next CRL that is generated and in the next audit report.
  3945  // Only time valid certificates are listed in the CRL. Expired certificates
  3946  // are not included.
  3947  //
  3948  // A CRL is typically updated approximately 30 minutes after a certificate is
  3949  // revoked. If for any reason a CRL update fails, ACM Private CA makes further
  3950  // attempts every 15 minutes.
  3951  //
  3952  // CRLs contain the following fields:
  3953  //
  3954  //    * Version: The current version number defined in RFC 5280 is V2. The integer
  3955  //    value is 0x1.
  3956  //
  3957  //    * Signature Algorithm: The name of the algorithm used to sign the CRL.
  3958  //
  3959  //    * Issuer: The X.500 distinguished name of your private CA that issued
  3960  //    the CRL.
  3961  //
  3962  //    * Last Update: The issue date and time of this CRL.
  3963  //
  3964  //    * Next Update: The day and time by which the next CRL will be issued.
  3965  //
  3966  //    * Revoked Certificates: List of revoked certificates. Each list item contains
  3967  //    the following information. Serial Number: The serial number, in hexadecimal
  3968  //    format, of the revoked certificate. Revocation Date: Date and time the
  3969  //    certificate was revoked. CRL Entry Extensions: Optional extensions for
  3970  //    the CRL entry. X509v3 CRL Reason Code: Reason the certificate was revoked.
  3971  //
  3972  //    * CRL Extensions: Optional extensions for the CRL. X509v3 Authority Key
  3973  //    Identifier: Identifies the public key associated with the private key
  3974  //    used to sign the certificate. X509v3 CRL Number:: Decimal sequence number
  3975  //    for the CRL.
  3976  //
  3977  //    * Signature Algorithm: Algorithm used by your private CA to sign the CRL.
  3978  //
  3979  //    * Signature Value: Signature computed over the CRL.
  3980  //
  3981  // Certificate revocation lists created by ACM Private CA are DER-encoded. You
  3982  // can use the following OpenSSL command to list a CRL.
  3983  //
  3984  // openssl crl -inform DER -text -in crl_path -noout
  3985  //
  3986  // For more information, see Planning a certificate revocation list (CRL) (https://docs.aws.amazon.com/acm-pca/latest/userguide/crl-planning.html)
  3987  // in the AWS Certificate Manager Private Certificate Authority (PCA) User Guide
  3988  type CrlConfiguration struct {
  3989  	_ struct{} `type:"structure"`
  3990  
  3991  	// Name inserted into the certificate CRL Distribution Points extension that
  3992  	// enables the use of an alias for the CRL distribution point. Use this value
  3993  	// if you don't want the name of your S3 bucket to be public.
  3994  	CustomCname *string `type:"string"`
  3995  
  3996  	// Boolean value that specifies whether certificate revocation lists (CRLs)
  3997  	// are enabled. You can use this value to enable certificate revocation for
  3998  	// a new CA when you call the CreateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  3999  	// action or for an existing CA when you call the UpdateCertificateAuthority
  4000  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html)
  4001  	// action.
  4002  	//
  4003  	// Enabled is a required field
  4004  	Enabled *bool `type:"boolean" required:"true"`
  4005  
  4006  	// Validity period of the CRL in days.
  4007  	ExpirationInDays *int64 `min:"1" type:"integer"`
  4008  
  4009  	// Name of the S3 bucket that contains the CRL. If you do not provide a value
  4010  	// for the CustomCname argument, the name of your S3 bucket is placed into the
  4011  	// CRL Distribution Points extension of the issued certificate. You can change
  4012  	// the name of your bucket by calling the UpdateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html)
  4013  	// operation. You must specify a bucket policy (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-policies)
  4014  	// that allows ACM Private CA to write the CRL to your bucket.
  4015  	S3BucketName *string `min:"3" type:"string"`
  4016  
  4017  	// Determines whether the CRL will be publicly readable or privately held in
  4018  	// the CRL Amazon S3 bucket. If you choose PUBLIC_READ, the CRL will be accessible
  4019  	// over the public internet. If you choose BUCKET_OWNER_FULL_CONTROL, only the
  4020  	// owner of the CRL S3 bucket can access the CRL, and your PKI clients may need
  4021  	// an alternative method of access.
  4022  	//
  4023  	// If no value is specified, the default is PUBLIC_READ.
  4024  	//
  4025  	// Note: This default can cause CA creation to fail in some circumstances. If
  4026  	// you have have enabled the Block Public Access (BPA) feature in your S3 account,
  4027  	// then you must specify the value of this parameter as BUCKET_OWNER_FULL_CONTROL,
  4028  	// and not doing so results in an error. If you have disabled BPA in S3, then
  4029  	// you can specify either BUCKET_OWNER_FULL_CONTROL or PUBLIC_READ as the value.
  4030  	//
  4031  	// For more information, see Blocking public access to the S3 bucket (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html#s3-bpa).
  4032  	S3ObjectAcl *string `type:"string" enum:"S3ObjectAcl"`
  4033  }
  4034  
  4035  // String returns the string representation.
  4036  //
  4037  // API parameter values that are decorated as "sensitive" in the API will not
  4038  // be included in the string output. The member name will be present, but the
  4039  // value will be replaced with "sensitive".
  4040  func (s CrlConfiguration) String() string {
  4041  	return awsutil.Prettify(s)
  4042  }
  4043  
  4044  // GoString returns the string representation.
  4045  //
  4046  // API parameter values that are decorated as "sensitive" in the API will not
  4047  // be included in the string output. The member name will be present, but the
  4048  // value will be replaced with "sensitive".
  4049  func (s CrlConfiguration) GoString() string {
  4050  	return s.String()
  4051  }
  4052  
  4053  // Validate inspects the fields of the type to determine if they are valid.
  4054  func (s *CrlConfiguration) Validate() error {
  4055  	invalidParams := request.ErrInvalidParams{Context: "CrlConfiguration"}
  4056  	if s.Enabled == nil {
  4057  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
  4058  	}
  4059  	if s.ExpirationInDays != nil && *s.ExpirationInDays < 1 {
  4060  		invalidParams.Add(request.NewErrParamMinValue("ExpirationInDays", 1))
  4061  	}
  4062  	if s.S3BucketName != nil && len(*s.S3BucketName) < 3 {
  4063  		invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 3))
  4064  	}
  4065  
  4066  	if invalidParams.Len() > 0 {
  4067  		return invalidParams
  4068  	}
  4069  	return nil
  4070  }
  4071  
  4072  // SetCustomCname sets the CustomCname field's value.
  4073  func (s *CrlConfiguration) SetCustomCname(v string) *CrlConfiguration {
  4074  	s.CustomCname = &v
  4075  	return s
  4076  }
  4077  
  4078  // SetEnabled sets the Enabled field's value.
  4079  func (s *CrlConfiguration) SetEnabled(v bool) *CrlConfiguration {
  4080  	s.Enabled = &v
  4081  	return s
  4082  }
  4083  
  4084  // SetExpirationInDays sets the ExpirationInDays field's value.
  4085  func (s *CrlConfiguration) SetExpirationInDays(v int64) *CrlConfiguration {
  4086  	s.ExpirationInDays = &v
  4087  	return s
  4088  }
  4089  
  4090  // SetS3BucketName sets the S3BucketName field's value.
  4091  func (s *CrlConfiguration) SetS3BucketName(v string) *CrlConfiguration {
  4092  	s.S3BucketName = &v
  4093  	return s
  4094  }
  4095  
  4096  // SetS3ObjectAcl sets the S3ObjectAcl field's value.
  4097  func (s *CrlConfiguration) SetS3ObjectAcl(v string) *CrlConfiguration {
  4098  	s.S3ObjectAcl = &v
  4099  	return s
  4100  }
  4101  
  4102  // Describes the certificate extensions to be added to the certificate signing
  4103  // request (CSR).
  4104  type CsrExtensions struct {
  4105  	_ struct{} `type:"structure"`
  4106  
  4107  	// Indicates the purpose of the certificate and of the key contained in the
  4108  	// certificate.
  4109  	KeyUsage *KeyUsage `type:"structure"`
  4110  
  4111  	// For CA certificates, provides a path to additional information pertaining
  4112  	// to the CA, such as revocation and policy. For more information, see Subject
  4113  	// Information Access (https://tools.ietf.org/html/rfc5280#section-4.2.2.2)
  4114  	// in RFC 5280.
  4115  	SubjectInformationAccess []*AccessDescription `type:"list"`
  4116  }
  4117  
  4118  // String returns the string representation.
  4119  //
  4120  // API parameter values that are decorated as "sensitive" in the API will not
  4121  // be included in the string output. The member name will be present, but the
  4122  // value will be replaced with "sensitive".
  4123  func (s CsrExtensions) String() string {
  4124  	return awsutil.Prettify(s)
  4125  }
  4126  
  4127  // GoString returns the string representation.
  4128  //
  4129  // API parameter values that are decorated as "sensitive" in the API will not
  4130  // be included in the string output. The member name will be present, but the
  4131  // value will be replaced with "sensitive".
  4132  func (s CsrExtensions) GoString() string {
  4133  	return s.String()
  4134  }
  4135  
  4136  // Validate inspects the fields of the type to determine if they are valid.
  4137  func (s *CsrExtensions) Validate() error {
  4138  	invalidParams := request.ErrInvalidParams{Context: "CsrExtensions"}
  4139  	if s.SubjectInformationAccess != nil {
  4140  		for i, v := range s.SubjectInformationAccess {
  4141  			if v == nil {
  4142  				continue
  4143  			}
  4144  			if err := v.Validate(); err != nil {
  4145  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubjectInformationAccess", i), err.(request.ErrInvalidParams))
  4146  			}
  4147  		}
  4148  	}
  4149  
  4150  	if invalidParams.Len() > 0 {
  4151  		return invalidParams
  4152  	}
  4153  	return nil
  4154  }
  4155  
  4156  // SetKeyUsage sets the KeyUsage field's value.
  4157  func (s *CsrExtensions) SetKeyUsage(v *KeyUsage) *CsrExtensions {
  4158  	s.KeyUsage = v
  4159  	return s
  4160  }
  4161  
  4162  // SetSubjectInformationAccess sets the SubjectInformationAccess field's value.
  4163  func (s *CsrExtensions) SetSubjectInformationAccess(v []*AccessDescription) *CsrExtensions {
  4164  	s.SubjectInformationAccess = v
  4165  	return s
  4166  }
  4167  
  4168  type DeleteCertificateAuthorityInput struct {
  4169  	_ struct{} `type:"structure"`
  4170  
  4171  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  4172  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  4173  	// This must have the following form:
  4174  	//
  4175  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  4176  	//
  4177  	// CertificateAuthorityArn is a required field
  4178  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  4179  
  4180  	// The number of days to make a CA restorable after it has been deleted. This
  4181  	// can be anywhere from 7 to 30 days, with 30 being the default.
  4182  	PermanentDeletionTimeInDays *int64 `min:"7" type:"integer"`
  4183  }
  4184  
  4185  // String returns the string representation.
  4186  //
  4187  // API parameter values that are decorated as "sensitive" in the API will not
  4188  // be included in the string output. The member name will be present, but the
  4189  // value will be replaced with "sensitive".
  4190  func (s DeleteCertificateAuthorityInput) String() string {
  4191  	return awsutil.Prettify(s)
  4192  }
  4193  
  4194  // GoString returns the string representation.
  4195  //
  4196  // API parameter values that are decorated as "sensitive" in the API will not
  4197  // be included in the string output. The member name will be present, but the
  4198  // value will be replaced with "sensitive".
  4199  func (s DeleteCertificateAuthorityInput) GoString() string {
  4200  	return s.String()
  4201  }
  4202  
  4203  // Validate inspects the fields of the type to determine if they are valid.
  4204  func (s *DeleteCertificateAuthorityInput) Validate() error {
  4205  	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateAuthorityInput"}
  4206  	if s.CertificateAuthorityArn == nil {
  4207  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  4208  	}
  4209  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  4210  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  4211  	}
  4212  	if s.PermanentDeletionTimeInDays != nil && *s.PermanentDeletionTimeInDays < 7 {
  4213  		invalidParams.Add(request.NewErrParamMinValue("PermanentDeletionTimeInDays", 7))
  4214  	}
  4215  
  4216  	if invalidParams.Len() > 0 {
  4217  		return invalidParams
  4218  	}
  4219  	return nil
  4220  }
  4221  
  4222  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  4223  func (s *DeleteCertificateAuthorityInput) SetCertificateAuthorityArn(v string) *DeleteCertificateAuthorityInput {
  4224  	s.CertificateAuthorityArn = &v
  4225  	return s
  4226  }
  4227  
  4228  // SetPermanentDeletionTimeInDays sets the PermanentDeletionTimeInDays field's value.
  4229  func (s *DeleteCertificateAuthorityInput) SetPermanentDeletionTimeInDays(v int64) *DeleteCertificateAuthorityInput {
  4230  	s.PermanentDeletionTimeInDays = &v
  4231  	return s
  4232  }
  4233  
  4234  type DeleteCertificateAuthorityOutput struct {
  4235  	_ struct{} `type:"structure"`
  4236  }
  4237  
  4238  // String returns the string representation.
  4239  //
  4240  // API parameter values that are decorated as "sensitive" in the API will not
  4241  // be included in the string output. The member name will be present, but the
  4242  // value will be replaced with "sensitive".
  4243  func (s DeleteCertificateAuthorityOutput) String() string {
  4244  	return awsutil.Prettify(s)
  4245  }
  4246  
  4247  // GoString returns the string representation.
  4248  //
  4249  // API parameter values that are decorated as "sensitive" in the API will not
  4250  // be included in the string output. The member name will be present, but the
  4251  // value will be replaced with "sensitive".
  4252  func (s DeleteCertificateAuthorityOutput) GoString() string {
  4253  	return s.String()
  4254  }
  4255  
  4256  type DeletePermissionInput struct {
  4257  	_ struct{} `type:"structure"`
  4258  
  4259  	// The Amazon Resource Number (ARN) of the private CA that issued the permissions.
  4260  	// You can find the CA's ARN by calling the ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  4261  	// action. This must have the following form:
  4262  	//
  4263  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  4264  	//
  4265  	// CertificateAuthorityArn is a required field
  4266  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  4267  
  4268  	// The AWS service or identity that will have its CA permissions revoked. At
  4269  	// this time, the only valid service principal is acm.amazonaws.com
  4270  	//
  4271  	// Principal is a required field
  4272  	Principal *string `type:"string" required:"true"`
  4273  
  4274  	// The AWS account that calls this action.
  4275  	SourceAccount *string `min:"12" type:"string"`
  4276  }
  4277  
  4278  // String returns the string representation.
  4279  //
  4280  // API parameter values that are decorated as "sensitive" in the API will not
  4281  // be included in the string output. The member name will be present, but the
  4282  // value will be replaced with "sensitive".
  4283  func (s DeletePermissionInput) String() string {
  4284  	return awsutil.Prettify(s)
  4285  }
  4286  
  4287  // GoString returns the string representation.
  4288  //
  4289  // API parameter values that are decorated as "sensitive" in the API will not
  4290  // be included in the string output. The member name will be present, but the
  4291  // value will be replaced with "sensitive".
  4292  func (s DeletePermissionInput) GoString() string {
  4293  	return s.String()
  4294  }
  4295  
  4296  // Validate inspects the fields of the type to determine if they are valid.
  4297  func (s *DeletePermissionInput) Validate() error {
  4298  	invalidParams := request.ErrInvalidParams{Context: "DeletePermissionInput"}
  4299  	if s.CertificateAuthorityArn == nil {
  4300  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  4301  	}
  4302  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  4303  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  4304  	}
  4305  	if s.Principal == nil {
  4306  		invalidParams.Add(request.NewErrParamRequired("Principal"))
  4307  	}
  4308  	if s.SourceAccount != nil && len(*s.SourceAccount) < 12 {
  4309  		invalidParams.Add(request.NewErrParamMinLen("SourceAccount", 12))
  4310  	}
  4311  
  4312  	if invalidParams.Len() > 0 {
  4313  		return invalidParams
  4314  	}
  4315  	return nil
  4316  }
  4317  
  4318  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  4319  func (s *DeletePermissionInput) SetCertificateAuthorityArn(v string) *DeletePermissionInput {
  4320  	s.CertificateAuthorityArn = &v
  4321  	return s
  4322  }
  4323  
  4324  // SetPrincipal sets the Principal field's value.
  4325  func (s *DeletePermissionInput) SetPrincipal(v string) *DeletePermissionInput {
  4326  	s.Principal = &v
  4327  	return s
  4328  }
  4329  
  4330  // SetSourceAccount sets the SourceAccount field's value.
  4331  func (s *DeletePermissionInput) SetSourceAccount(v string) *DeletePermissionInput {
  4332  	s.SourceAccount = &v
  4333  	return s
  4334  }
  4335  
  4336  type DeletePermissionOutput struct {
  4337  	_ struct{} `type:"structure"`
  4338  }
  4339  
  4340  // String returns the string representation.
  4341  //
  4342  // API parameter values that are decorated as "sensitive" in the API will not
  4343  // be included in the string output. The member name will be present, but the
  4344  // value will be replaced with "sensitive".
  4345  func (s DeletePermissionOutput) String() string {
  4346  	return awsutil.Prettify(s)
  4347  }
  4348  
  4349  // GoString returns the string representation.
  4350  //
  4351  // API parameter values that are decorated as "sensitive" in the API will not
  4352  // be included in the string output. The member name will be present, but the
  4353  // value will be replaced with "sensitive".
  4354  func (s DeletePermissionOutput) GoString() string {
  4355  	return s.String()
  4356  }
  4357  
  4358  type DeletePolicyInput struct {
  4359  	_ struct{} `type:"structure"`
  4360  
  4361  	// The Amazon Resource Number (ARN) of the private CA that will have its policy
  4362  	// deleted. You can find the CA's ARN by calling the ListCertificateAuthorities
  4363  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  4364  	// action. The ARN value must have the form arn:aws:acm-pca:region:account:certificate-authority/01234567-89ab-cdef-0123-0123456789ab.
  4365  	//
  4366  	// ResourceArn is a required field
  4367  	ResourceArn *string `min:"5" type:"string" required:"true"`
  4368  }
  4369  
  4370  // String returns the string representation.
  4371  //
  4372  // API parameter values that are decorated as "sensitive" in the API will not
  4373  // be included in the string output. The member name will be present, but the
  4374  // value will be replaced with "sensitive".
  4375  func (s DeletePolicyInput) String() string {
  4376  	return awsutil.Prettify(s)
  4377  }
  4378  
  4379  // GoString returns the string representation.
  4380  //
  4381  // API parameter values that are decorated as "sensitive" in the API will not
  4382  // be included in the string output. The member name will be present, but the
  4383  // value will be replaced with "sensitive".
  4384  func (s DeletePolicyInput) GoString() string {
  4385  	return s.String()
  4386  }
  4387  
  4388  // Validate inspects the fields of the type to determine if they are valid.
  4389  func (s *DeletePolicyInput) Validate() error {
  4390  	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
  4391  	if s.ResourceArn == nil {
  4392  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  4393  	}
  4394  	if s.ResourceArn != nil && len(*s.ResourceArn) < 5 {
  4395  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 5))
  4396  	}
  4397  
  4398  	if invalidParams.Len() > 0 {
  4399  		return invalidParams
  4400  	}
  4401  	return nil
  4402  }
  4403  
  4404  // SetResourceArn sets the ResourceArn field's value.
  4405  func (s *DeletePolicyInput) SetResourceArn(v string) *DeletePolicyInput {
  4406  	s.ResourceArn = &v
  4407  	return s
  4408  }
  4409  
  4410  type DeletePolicyOutput struct {
  4411  	_ struct{} `type:"structure"`
  4412  }
  4413  
  4414  // String returns the string representation.
  4415  //
  4416  // API parameter values that are decorated as "sensitive" in the API will not
  4417  // be included in the string output. The member name will be present, but the
  4418  // value will be replaced with "sensitive".
  4419  func (s DeletePolicyOutput) String() string {
  4420  	return awsutil.Prettify(s)
  4421  }
  4422  
  4423  // GoString returns the string representation.
  4424  //
  4425  // API parameter values that are decorated as "sensitive" in the API will not
  4426  // be included in the string output. The member name will be present, but the
  4427  // value will be replaced with "sensitive".
  4428  func (s DeletePolicyOutput) GoString() string {
  4429  	return s.String()
  4430  }
  4431  
  4432  type DescribeCertificateAuthorityAuditReportInput struct {
  4433  	_ struct{} `type:"structure"`
  4434  
  4435  	// The report ID returned by calling the CreateCertificateAuthorityAuditReport
  4436  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthorityAuditReport.html)
  4437  	// action.
  4438  	//
  4439  	// AuditReportId is a required field
  4440  	AuditReportId *string `min:"36" type:"string" required:"true"`
  4441  
  4442  	// The Amazon Resource Name (ARN) of the private CA. This must be of the form:
  4443  	//
  4444  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  4445  	//
  4446  	// CertificateAuthorityArn is a required field
  4447  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  4448  }
  4449  
  4450  // String returns the string representation.
  4451  //
  4452  // API parameter values that are decorated as "sensitive" in the API will not
  4453  // be included in the string output. The member name will be present, but the
  4454  // value will be replaced with "sensitive".
  4455  func (s DescribeCertificateAuthorityAuditReportInput) String() string {
  4456  	return awsutil.Prettify(s)
  4457  }
  4458  
  4459  // GoString returns the string representation.
  4460  //
  4461  // API parameter values that are decorated as "sensitive" in the API will not
  4462  // be included in the string output. The member name will be present, but the
  4463  // value will be replaced with "sensitive".
  4464  func (s DescribeCertificateAuthorityAuditReportInput) GoString() string {
  4465  	return s.String()
  4466  }
  4467  
  4468  // Validate inspects the fields of the type to determine if they are valid.
  4469  func (s *DescribeCertificateAuthorityAuditReportInput) Validate() error {
  4470  	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateAuthorityAuditReportInput"}
  4471  	if s.AuditReportId == nil {
  4472  		invalidParams.Add(request.NewErrParamRequired("AuditReportId"))
  4473  	}
  4474  	if s.AuditReportId != nil && len(*s.AuditReportId) < 36 {
  4475  		invalidParams.Add(request.NewErrParamMinLen("AuditReportId", 36))
  4476  	}
  4477  	if s.CertificateAuthorityArn == nil {
  4478  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  4479  	}
  4480  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  4481  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  4482  	}
  4483  
  4484  	if invalidParams.Len() > 0 {
  4485  		return invalidParams
  4486  	}
  4487  	return nil
  4488  }
  4489  
  4490  // SetAuditReportId sets the AuditReportId field's value.
  4491  func (s *DescribeCertificateAuthorityAuditReportInput) SetAuditReportId(v string) *DescribeCertificateAuthorityAuditReportInput {
  4492  	s.AuditReportId = &v
  4493  	return s
  4494  }
  4495  
  4496  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  4497  func (s *DescribeCertificateAuthorityAuditReportInput) SetCertificateAuthorityArn(v string) *DescribeCertificateAuthorityAuditReportInput {
  4498  	s.CertificateAuthorityArn = &v
  4499  	return s
  4500  }
  4501  
  4502  type DescribeCertificateAuthorityAuditReportOutput struct {
  4503  	_ struct{} `type:"structure"`
  4504  
  4505  	// Specifies whether report creation is in progress, has succeeded, or has failed.
  4506  	AuditReportStatus *string `type:"string" enum:"AuditReportStatus"`
  4507  
  4508  	// The date and time at which the report was created.
  4509  	CreatedAt *time.Time `type:"timestamp"`
  4510  
  4511  	// Name of the S3 bucket that contains the report.
  4512  	S3BucketName *string `min:"3" type:"string"`
  4513  
  4514  	// S3 key that uniquely identifies the report file in your S3 bucket.
  4515  	S3Key *string `type:"string"`
  4516  }
  4517  
  4518  // String returns the string representation.
  4519  //
  4520  // API parameter values that are decorated as "sensitive" in the API will not
  4521  // be included in the string output. The member name will be present, but the
  4522  // value will be replaced with "sensitive".
  4523  func (s DescribeCertificateAuthorityAuditReportOutput) String() string {
  4524  	return awsutil.Prettify(s)
  4525  }
  4526  
  4527  // GoString returns the string representation.
  4528  //
  4529  // API parameter values that are decorated as "sensitive" in the API will not
  4530  // be included in the string output. The member name will be present, but the
  4531  // value will be replaced with "sensitive".
  4532  func (s DescribeCertificateAuthorityAuditReportOutput) GoString() string {
  4533  	return s.String()
  4534  }
  4535  
  4536  // SetAuditReportStatus sets the AuditReportStatus field's value.
  4537  func (s *DescribeCertificateAuthorityAuditReportOutput) SetAuditReportStatus(v string) *DescribeCertificateAuthorityAuditReportOutput {
  4538  	s.AuditReportStatus = &v
  4539  	return s
  4540  }
  4541  
  4542  // SetCreatedAt sets the CreatedAt field's value.
  4543  func (s *DescribeCertificateAuthorityAuditReportOutput) SetCreatedAt(v time.Time) *DescribeCertificateAuthorityAuditReportOutput {
  4544  	s.CreatedAt = &v
  4545  	return s
  4546  }
  4547  
  4548  // SetS3BucketName sets the S3BucketName field's value.
  4549  func (s *DescribeCertificateAuthorityAuditReportOutput) SetS3BucketName(v string) *DescribeCertificateAuthorityAuditReportOutput {
  4550  	s.S3BucketName = &v
  4551  	return s
  4552  }
  4553  
  4554  // SetS3Key sets the S3Key field's value.
  4555  func (s *DescribeCertificateAuthorityAuditReportOutput) SetS3Key(v string) *DescribeCertificateAuthorityAuditReportOutput {
  4556  	s.S3Key = &v
  4557  	return s
  4558  }
  4559  
  4560  type DescribeCertificateAuthorityInput struct {
  4561  	_ struct{} `type:"structure"`
  4562  
  4563  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  4564  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  4565  	// This must be of the form:
  4566  	//
  4567  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  4568  	//
  4569  	// CertificateAuthorityArn is a required field
  4570  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  4571  }
  4572  
  4573  // String returns the string representation.
  4574  //
  4575  // API parameter values that are decorated as "sensitive" in the API will not
  4576  // be included in the string output. The member name will be present, but the
  4577  // value will be replaced with "sensitive".
  4578  func (s DescribeCertificateAuthorityInput) String() string {
  4579  	return awsutil.Prettify(s)
  4580  }
  4581  
  4582  // GoString returns the string representation.
  4583  //
  4584  // API parameter values that are decorated as "sensitive" in the API will not
  4585  // be included in the string output. The member name will be present, but the
  4586  // value will be replaced with "sensitive".
  4587  func (s DescribeCertificateAuthorityInput) GoString() string {
  4588  	return s.String()
  4589  }
  4590  
  4591  // Validate inspects the fields of the type to determine if they are valid.
  4592  func (s *DescribeCertificateAuthorityInput) Validate() error {
  4593  	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateAuthorityInput"}
  4594  	if s.CertificateAuthorityArn == nil {
  4595  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  4596  	}
  4597  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  4598  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  4599  	}
  4600  
  4601  	if invalidParams.Len() > 0 {
  4602  		return invalidParams
  4603  	}
  4604  	return nil
  4605  }
  4606  
  4607  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  4608  func (s *DescribeCertificateAuthorityInput) SetCertificateAuthorityArn(v string) *DescribeCertificateAuthorityInput {
  4609  	s.CertificateAuthorityArn = &v
  4610  	return s
  4611  }
  4612  
  4613  type DescribeCertificateAuthorityOutput struct {
  4614  	_ struct{} `type:"structure"`
  4615  
  4616  	// A CertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CertificateAuthority.html)
  4617  	// structure that contains information about your private CA.
  4618  	CertificateAuthority *CertificateAuthority `type:"structure"`
  4619  }
  4620  
  4621  // String returns the string representation.
  4622  //
  4623  // API parameter values that are decorated as "sensitive" in the API will not
  4624  // be included in the string output. The member name will be present, but the
  4625  // value will be replaced with "sensitive".
  4626  func (s DescribeCertificateAuthorityOutput) String() string {
  4627  	return awsutil.Prettify(s)
  4628  }
  4629  
  4630  // GoString returns the string representation.
  4631  //
  4632  // API parameter values that are decorated as "sensitive" in the API will not
  4633  // be included in the string output. The member name will be present, but the
  4634  // value will be replaced with "sensitive".
  4635  func (s DescribeCertificateAuthorityOutput) GoString() string {
  4636  	return s.String()
  4637  }
  4638  
  4639  // SetCertificateAuthority sets the CertificateAuthority field's value.
  4640  func (s *DescribeCertificateAuthorityOutput) SetCertificateAuthority(v *CertificateAuthority) *DescribeCertificateAuthorityOutput {
  4641  	s.CertificateAuthority = v
  4642  	return s
  4643  }
  4644  
  4645  // Describes an Electronic Data Interchange (EDI) entity as described in as
  4646  // defined in Subject Alternative Name (https://tools.ietf.org/html/rfc5280)
  4647  // in RFC 5280.
  4648  type EdiPartyName struct {
  4649  	_ struct{} `type:"structure"`
  4650  
  4651  	// Specifies the name assigner.
  4652  	NameAssigner *string `type:"string"`
  4653  
  4654  	// Specifies the party name.
  4655  	//
  4656  	// PartyName is a required field
  4657  	PartyName *string `type:"string" required:"true"`
  4658  }
  4659  
  4660  // String returns the string representation.
  4661  //
  4662  // API parameter values that are decorated as "sensitive" in the API will not
  4663  // be included in the string output. The member name will be present, but the
  4664  // value will be replaced with "sensitive".
  4665  func (s EdiPartyName) String() string {
  4666  	return awsutil.Prettify(s)
  4667  }
  4668  
  4669  // GoString returns the string representation.
  4670  //
  4671  // API parameter values that are decorated as "sensitive" in the API will not
  4672  // be included in the string output. The member name will be present, but the
  4673  // value will be replaced with "sensitive".
  4674  func (s EdiPartyName) GoString() string {
  4675  	return s.String()
  4676  }
  4677  
  4678  // Validate inspects the fields of the type to determine if they are valid.
  4679  func (s *EdiPartyName) Validate() error {
  4680  	invalidParams := request.ErrInvalidParams{Context: "EdiPartyName"}
  4681  	if s.PartyName == nil {
  4682  		invalidParams.Add(request.NewErrParamRequired("PartyName"))
  4683  	}
  4684  
  4685  	if invalidParams.Len() > 0 {
  4686  		return invalidParams
  4687  	}
  4688  	return nil
  4689  }
  4690  
  4691  // SetNameAssigner sets the NameAssigner field's value.
  4692  func (s *EdiPartyName) SetNameAssigner(v string) *EdiPartyName {
  4693  	s.NameAssigner = &v
  4694  	return s
  4695  }
  4696  
  4697  // SetPartyName sets the PartyName field's value.
  4698  func (s *EdiPartyName) SetPartyName(v string) *EdiPartyName {
  4699  	s.PartyName = &v
  4700  	return s
  4701  }
  4702  
  4703  // Specifies additional purposes for which the certified public key may be used
  4704  // other than basic purposes indicated in the KeyUsage extension.
  4705  type ExtendedKeyUsage struct {
  4706  	_ struct{} `type:"structure"`
  4707  
  4708  	// Specifies a custom ExtendedKeyUsage with an object identifier (OID).
  4709  	ExtendedKeyUsageObjectIdentifier *string `type:"string"`
  4710  
  4711  	// Specifies a standard ExtendedKeyUsage as defined as in RFC 5280 (https://tools.ietf.org/html/rfc5280#section-4.2.1.12).
  4712  	ExtendedKeyUsageType *string `type:"string" enum:"ExtendedKeyUsageType"`
  4713  }
  4714  
  4715  // String returns the string representation.
  4716  //
  4717  // API parameter values that are decorated as "sensitive" in the API will not
  4718  // be included in the string output. The member name will be present, but the
  4719  // value will be replaced with "sensitive".
  4720  func (s ExtendedKeyUsage) String() string {
  4721  	return awsutil.Prettify(s)
  4722  }
  4723  
  4724  // GoString returns the string representation.
  4725  //
  4726  // API parameter values that are decorated as "sensitive" in the API will not
  4727  // be included in the string output. The member name will be present, but the
  4728  // value will be replaced with "sensitive".
  4729  func (s ExtendedKeyUsage) GoString() string {
  4730  	return s.String()
  4731  }
  4732  
  4733  // SetExtendedKeyUsageObjectIdentifier sets the ExtendedKeyUsageObjectIdentifier field's value.
  4734  func (s *ExtendedKeyUsage) SetExtendedKeyUsageObjectIdentifier(v string) *ExtendedKeyUsage {
  4735  	s.ExtendedKeyUsageObjectIdentifier = &v
  4736  	return s
  4737  }
  4738  
  4739  // SetExtendedKeyUsageType sets the ExtendedKeyUsageType field's value.
  4740  func (s *ExtendedKeyUsage) SetExtendedKeyUsageType(v string) *ExtendedKeyUsage {
  4741  	s.ExtendedKeyUsageType = &v
  4742  	return s
  4743  }
  4744  
  4745  // Contains X.509 extension information for a certificate.
  4746  type Extensions struct {
  4747  	_ struct{} `type:"structure"`
  4748  
  4749  	// Contains a sequence of one or more policy information terms, each of which
  4750  	// consists of an object identifier (OID) and optional qualifiers. For more
  4751  	// information, see NIST's definition of Object Identifier (OID) (https://csrc.nist.gov/glossary/term/Object_Identifier).
  4752  	//
  4753  	// In an end-entity certificate, these terms indicate the policy under which
  4754  	// the certificate was issued and the purposes for which it may be used. In
  4755  	// a CA certificate, these terms limit the set of policies for certification
  4756  	// paths that include this certificate.
  4757  	CertificatePolicies []*PolicyInformation `min:"1" type:"list"`
  4758  
  4759  	// Specifies additional purposes for which the certified public key may be used
  4760  	// other than basic purposes indicated in the KeyUsage extension.
  4761  	ExtendedKeyUsage []*ExtendedKeyUsage `min:"1" type:"list"`
  4762  
  4763  	// Defines one or more purposes for which the key contained in the certificate
  4764  	// can be used. Default value for each option is false.
  4765  	KeyUsage *KeyUsage `type:"structure"`
  4766  
  4767  	// The subject alternative name extension allows identities to be bound to the
  4768  	// subject of the certificate. These identities may be included in addition
  4769  	// to or in place of the identity in the subject field of the certificate.
  4770  	SubjectAlternativeNames []*GeneralName `min:"1" type:"list"`
  4771  }
  4772  
  4773  // String returns the string representation.
  4774  //
  4775  // API parameter values that are decorated as "sensitive" in the API will not
  4776  // be included in the string output. The member name will be present, but the
  4777  // value will be replaced with "sensitive".
  4778  func (s Extensions) String() string {
  4779  	return awsutil.Prettify(s)
  4780  }
  4781  
  4782  // GoString returns the string representation.
  4783  //
  4784  // API parameter values that are decorated as "sensitive" in the API will not
  4785  // be included in the string output. The member name will be present, but the
  4786  // value will be replaced with "sensitive".
  4787  func (s Extensions) GoString() string {
  4788  	return s.String()
  4789  }
  4790  
  4791  // Validate inspects the fields of the type to determine if they are valid.
  4792  func (s *Extensions) Validate() error {
  4793  	invalidParams := request.ErrInvalidParams{Context: "Extensions"}
  4794  	if s.CertificatePolicies != nil && len(s.CertificatePolicies) < 1 {
  4795  		invalidParams.Add(request.NewErrParamMinLen("CertificatePolicies", 1))
  4796  	}
  4797  	if s.ExtendedKeyUsage != nil && len(s.ExtendedKeyUsage) < 1 {
  4798  		invalidParams.Add(request.NewErrParamMinLen("ExtendedKeyUsage", 1))
  4799  	}
  4800  	if s.SubjectAlternativeNames != nil && len(s.SubjectAlternativeNames) < 1 {
  4801  		invalidParams.Add(request.NewErrParamMinLen("SubjectAlternativeNames", 1))
  4802  	}
  4803  	if s.CertificatePolicies != nil {
  4804  		for i, v := range s.CertificatePolicies {
  4805  			if v == nil {
  4806  				continue
  4807  			}
  4808  			if err := v.Validate(); err != nil {
  4809  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CertificatePolicies", i), err.(request.ErrInvalidParams))
  4810  			}
  4811  		}
  4812  	}
  4813  	if s.SubjectAlternativeNames != nil {
  4814  		for i, v := range s.SubjectAlternativeNames {
  4815  			if v == nil {
  4816  				continue
  4817  			}
  4818  			if err := v.Validate(); err != nil {
  4819  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubjectAlternativeNames", i), err.(request.ErrInvalidParams))
  4820  			}
  4821  		}
  4822  	}
  4823  
  4824  	if invalidParams.Len() > 0 {
  4825  		return invalidParams
  4826  	}
  4827  	return nil
  4828  }
  4829  
  4830  // SetCertificatePolicies sets the CertificatePolicies field's value.
  4831  func (s *Extensions) SetCertificatePolicies(v []*PolicyInformation) *Extensions {
  4832  	s.CertificatePolicies = v
  4833  	return s
  4834  }
  4835  
  4836  // SetExtendedKeyUsage sets the ExtendedKeyUsage field's value.
  4837  func (s *Extensions) SetExtendedKeyUsage(v []*ExtendedKeyUsage) *Extensions {
  4838  	s.ExtendedKeyUsage = v
  4839  	return s
  4840  }
  4841  
  4842  // SetKeyUsage sets the KeyUsage field's value.
  4843  func (s *Extensions) SetKeyUsage(v *KeyUsage) *Extensions {
  4844  	s.KeyUsage = v
  4845  	return s
  4846  }
  4847  
  4848  // SetSubjectAlternativeNames sets the SubjectAlternativeNames field's value.
  4849  func (s *Extensions) SetSubjectAlternativeNames(v []*GeneralName) *Extensions {
  4850  	s.SubjectAlternativeNames = v
  4851  	return s
  4852  }
  4853  
  4854  // Describes an ASN.1 X.400 GeneralName as defined in RFC 5280 (https://tools.ietf.org/html/rfc5280).
  4855  // Only one of the following naming options should be provided. Providing more
  4856  // than one option results in an InvalidArgsException error.
  4857  type GeneralName struct {
  4858  	_ struct{} `type:"structure"`
  4859  
  4860  	// Contains information about the certificate subject. The Subject field in
  4861  	// the certificate identifies the entity that owns or controls the public key
  4862  	// in the certificate. The entity can be a user, computer, device, or service.
  4863  	// The Subject must contain an X.500 distinguished name (DN). A DN is a sequence
  4864  	// of relative distinguished names (RDNs). The RDNs are separated by commas
  4865  	// in the certificate.
  4866  	DirectoryName *ASN1Subject `type:"structure"`
  4867  
  4868  	// Represents GeneralName as a DNS name.
  4869  	DnsName *string `type:"string"`
  4870  
  4871  	// Represents GeneralName as an EdiPartyName object.
  4872  	EdiPartyName *EdiPartyName `type:"structure"`
  4873  
  4874  	// Represents GeneralName as an IPv4 or IPv6 address.
  4875  	IpAddress *string `type:"string"`
  4876  
  4877  	// Represents GeneralName using an OtherName object.
  4878  	OtherName *OtherName `type:"structure"`
  4879  
  4880  	// Represents GeneralName as an object identifier (OID).
  4881  	RegisteredId *string `type:"string"`
  4882  
  4883  	// Represents GeneralName as an RFC 822 (https://tools.ietf.org/html/rfc822)
  4884  	// email address.
  4885  	Rfc822Name *string `type:"string"`
  4886  
  4887  	// Represents GeneralName as a URI.
  4888  	UniformResourceIdentifier *string `type:"string"`
  4889  }
  4890  
  4891  // String returns the string representation.
  4892  //
  4893  // API parameter values that are decorated as "sensitive" in the API will not
  4894  // be included in the string output. The member name will be present, but the
  4895  // value will be replaced with "sensitive".
  4896  func (s GeneralName) String() string {
  4897  	return awsutil.Prettify(s)
  4898  }
  4899  
  4900  // GoString returns the string representation.
  4901  //
  4902  // API parameter values that are decorated as "sensitive" in the API will not
  4903  // be included in the string output. The member name will be present, but the
  4904  // value will be replaced with "sensitive".
  4905  func (s GeneralName) GoString() string {
  4906  	return s.String()
  4907  }
  4908  
  4909  // Validate inspects the fields of the type to determine if they are valid.
  4910  func (s *GeneralName) Validate() error {
  4911  	invalidParams := request.ErrInvalidParams{Context: "GeneralName"}
  4912  	if s.DirectoryName != nil {
  4913  		if err := s.DirectoryName.Validate(); err != nil {
  4914  			invalidParams.AddNested("DirectoryName", err.(request.ErrInvalidParams))
  4915  		}
  4916  	}
  4917  	if s.EdiPartyName != nil {
  4918  		if err := s.EdiPartyName.Validate(); err != nil {
  4919  			invalidParams.AddNested("EdiPartyName", err.(request.ErrInvalidParams))
  4920  		}
  4921  	}
  4922  	if s.OtherName != nil {
  4923  		if err := s.OtherName.Validate(); err != nil {
  4924  			invalidParams.AddNested("OtherName", err.(request.ErrInvalidParams))
  4925  		}
  4926  	}
  4927  
  4928  	if invalidParams.Len() > 0 {
  4929  		return invalidParams
  4930  	}
  4931  	return nil
  4932  }
  4933  
  4934  // SetDirectoryName sets the DirectoryName field's value.
  4935  func (s *GeneralName) SetDirectoryName(v *ASN1Subject) *GeneralName {
  4936  	s.DirectoryName = v
  4937  	return s
  4938  }
  4939  
  4940  // SetDnsName sets the DnsName field's value.
  4941  func (s *GeneralName) SetDnsName(v string) *GeneralName {
  4942  	s.DnsName = &v
  4943  	return s
  4944  }
  4945  
  4946  // SetEdiPartyName sets the EdiPartyName field's value.
  4947  func (s *GeneralName) SetEdiPartyName(v *EdiPartyName) *GeneralName {
  4948  	s.EdiPartyName = v
  4949  	return s
  4950  }
  4951  
  4952  // SetIpAddress sets the IpAddress field's value.
  4953  func (s *GeneralName) SetIpAddress(v string) *GeneralName {
  4954  	s.IpAddress = &v
  4955  	return s
  4956  }
  4957  
  4958  // SetOtherName sets the OtherName field's value.
  4959  func (s *GeneralName) SetOtherName(v *OtherName) *GeneralName {
  4960  	s.OtherName = v
  4961  	return s
  4962  }
  4963  
  4964  // SetRegisteredId sets the RegisteredId field's value.
  4965  func (s *GeneralName) SetRegisteredId(v string) *GeneralName {
  4966  	s.RegisteredId = &v
  4967  	return s
  4968  }
  4969  
  4970  // SetRfc822Name sets the Rfc822Name field's value.
  4971  func (s *GeneralName) SetRfc822Name(v string) *GeneralName {
  4972  	s.Rfc822Name = &v
  4973  	return s
  4974  }
  4975  
  4976  // SetUniformResourceIdentifier sets the UniformResourceIdentifier field's value.
  4977  func (s *GeneralName) SetUniformResourceIdentifier(v string) *GeneralName {
  4978  	s.UniformResourceIdentifier = &v
  4979  	return s
  4980  }
  4981  
  4982  type GetCertificateAuthorityCertificateInput struct {
  4983  	_ struct{} `type:"structure"`
  4984  
  4985  	// The Amazon Resource Name (ARN) of your private CA. This is of the form:
  4986  	//
  4987  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  4988  	//
  4989  	// CertificateAuthorityArn is a required field
  4990  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  4991  }
  4992  
  4993  // String returns the string representation.
  4994  //
  4995  // API parameter values that are decorated as "sensitive" in the API will not
  4996  // be included in the string output. The member name will be present, but the
  4997  // value will be replaced with "sensitive".
  4998  func (s GetCertificateAuthorityCertificateInput) String() string {
  4999  	return awsutil.Prettify(s)
  5000  }
  5001  
  5002  // GoString returns the string representation.
  5003  //
  5004  // API parameter values that are decorated as "sensitive" in the API will not
  5005  // be included in the string output. The member name will be present, but the
  5006  // value will be replaced with "sensitive".
  5007  func (s GetCertificateAuthorityCertificateInput) GoString() string {
  5008  	return s.String()
  5009  }
  5010  
  5011  // Validate inspects the fields of the type to determine if they are valid.
  5012  func (s *GetCertificateAuthorityCertificateInput) Validate() error {
  5013  	invalidParams := request.ErrInvalidParams{Context: "GetCertificateAuthorityCertificateInput"}
  5014  	if s.CertificateAuthorityArn == nil {
  5015  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  5016  	}
  5017  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  5018  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  5019  	}
  5020  
  5021  	if invalidParams.Len() > 0 {
  5022  		return invalidParams
  5023  	}
  5024  	return nil
  5025  }
  5026  
  5027  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  5028  func (s *GetCertificateAuthorityCertificateInput) SetCertificateAuthorityArn(v string) *GetCertificateAuthorityCertificateInput {
  5029  	s.CertificateAuthorityArn = &v
  5030  	return s
  5031  }
  5032  
  5033  type GetCertificateAuthorityCertificateOutput struct {
  5034  	_ struct{} `type:"structure"`
  5035  
  5036  	// Base64-encoded certificate authority (CA) certificate.
  5037  	Certificate *string `type:"string"`
  5038  
  5039  	// Base64-encoded certificate chain that includes any intermediate certificates
  5040  	// and chains up to root certificate that you used to sign your private CA certificate.
  5041  	// The chain does not include your private CA certificate. If this is a root
  5042  	// CA, the value will be null.
  5043  	CertificateChain *string `type:"string"`
  5044  }
  5045  
  5046  // String returns the string representation.
  5047  //
  5048  // API parameter values that are decorated as "sensitive" in the API will not
  5049  // be included in the string output. The member name will be present, but the
  5050  // value will be replaced with "sensitive".
  5051  func (s GetCertificateAuthorityCertificateOutput) String() string {
  5052  	return awsutil.Prettify(s)
  5053  }
  5054  
  5055  // GoString returns the string representation.
  5056  //
  5057  // API parameter values that are decorated as "sensitive" in the API will not
  5058  // be included in the string output. The member name will be present, but the
  5059  // value will be replaced with "sensitive".
  5060  func (s GetCertificateAuthorityCertificateOutput) GoString() string {
  5061  	return s.String()
  5062  }
  5063  
  5064  // SetCertificate sets the Certificate field's value.
  5065  func (s *GetCertificateAuthorityCertificateOutput) SetCertificate(v string) *GetCertificateAuthorityCertificateOutput {
  5066  	s.Certificate = &v
  5067  	return s
  5068  }
  5069  
  5070  // SetCertificateChain sets the CertificateChain field's value.
  5071  func (s *GetCertificateAuthorityCertificateOutput) SetCertificateChain(v string) *GetCertificateAuthorityCertificateOutput {
  5072  	s.CertificateChain = &v
  5073  	return s
  5074  }
  5075  
  5076  type GetCertificateAuthorityCsrInput struct {
  5077  	_ struct{} `type:"structure"`
  5078  
  5079  	// The Amazon Resource Name (ARN) that was returned when you called the CreateCertificateAuthority
  5080  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  5081  	// action. This must be of the form:
  5082  	//
  5083  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  5084  	//
  5085  	// CertificateAuthorityArn is a required field
  5086  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  5087  }
  5088  
  5089  // String returns the string representation.
  5090  //
  5091  // API parameter values that are decorated as "sensitive" in the API will not
  5092  // be included in the string output. The member name will be present, but the
  5093  // value will be replaced with "sensitive".
  5094  func (s GetCertificateAuthorityCsrInput) String() string {
  5095  	return awsutil.Prettify(s)
  5096  }
  5097  
  5098  // GoString returns the string representation.
  5099  //
  5100  // API parameter values that are decorated as "sensitive" in the API will not
  5101  // be included in the string output. The member name will be present, but the
  5102  // value will be replaced with "sensitive".
  5103  func (s GetCertificateAuthorityCsrInput) GoString() string {
  5104  	return s.String()
  5105  }
  5106  
  5107  // Validate inspects the fields of the type to determine if they are valid.
  5108  func (s *GetCertificateAuthorityCsrInput) Validate() error {
  5109  	invalidParams := request.ErrInvalidParams{Context: "GetCertificateAuthorityCsrInput"}
  5110  	if s.CertificateAuthorityArn == nil {
  5111  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  5112  	}
  5113  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  5114  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  5115  	}
  5116  
  5117  	if invalidParams.Len() > 0 {
  5118  		return invalidParams
  5119  	}
  5120  	return nil
  5121  }
  5122  
  5123  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  5124  func (s *GetCertificateAuthorityCsrInput) SetCertificateAuthorityArn(v string) *GetCertificateAuthorityCsrInput {
  5125  	s.CertificateAuthorityArn = &v
  5126  	return s
  5127  }
  5128  
  5129  type GetCertificateAuthorityCsrOutput struct {
  5130  	_ struct{} `type:"structure"`
  5131  
  5132  	// The base64 PEM-encoded certificate signing request (CSR) for your private
  5133  	// CA certificate.
  5134  	Csr *string `type:"string"`
  5135  }
  5136  
  5137  // String returns the string representation.
  5138  //
  5139  // API parameter values that are decorated as "sensitive" in the API will not
  5140  // be included in the string output. The member name will be present, but the
  5141  // value will be replaced with "sensitive".
  5142  func (s GetCertificateAuthorityCsrOutput) String() string {
  5143  	return awsutil.Prettify(s)
  5144  }
  5145  
  5146  // GoString returns the string representation.
  5147  //
  5148  // API parameter values that are decorated as "sensitive" in the API will not
  5149  // be included in the string output. The member name will be present, but the
  5150  // value will be replaced with "sensitive".
  5151  func (s GetCertificateAuthorityCsrOutput) GoString() string {
  5152  	return s.String()
  5153  }
  5154  
  5155  // SetCsr sets the Csr field's value.
  5156  func (s *GetCertificateAuthorityCsrOutput) SetCsr(v string) *GetCertificateAuthorityCsrOutput {
  5157  	s.Csr = &v
  5158  	return s
  5159  }
  5160  
  5161  type GetCertificateInput struct {
  5162  	_ struct{} `type:"structure"`
  5163  
  5164  	// The ARN of the issued certificate. The ARN contains the certificate serial
  5165  	// number and must be in the following form:
  5166  	//
  5167  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/286535153982981100925020015808220737245
  5168  	//
  5169  	// CertificateArn is a required field
  5170  	CertificateArn *string `min:"5" type:"string" required:"true"`
  5171  
  5172  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  5173  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  5174  	// This must be of the form:
  5175  	//
  5176  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .
  5177  	//
  5178  	// CertificateAuthorityArn is a required field
  5179  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  5180  }
  5181  
  5182  // String returns the string representation.
  5183  //
  5184  // API parameter values that are decorated as "sensitive" in the API will not
  5185  // be included in the string output. The member name will be present, but the
  5186  // value will be replaced with "sensitive".
  5187  func (s GetCertificateInput) String() string {
  5188  	return awsutil.Prettify(s)
  5189  }
  5190  
  5191  // GoString returns the string representation.
  5192  //
  5193  // API parameter values that are decorated as "sensitive" in the API will not
  5194  // be included in the string output. The member name will be present, but the
  5195  // value will be replaced with "sensitive".
  5196  func (s GetCertificateInput) GoString() string {
  5197  	return s.String()
  5198  }
  5199  
  5200  // Validate inspects the fields of the type to determine if they are valid.
  5201  func (s *GetCertificateInput) Validate() error {
  5202  	invalidParams := request.ErrInvalidParams{Context: "GetCertificateInput"}
  5203  	if s.CertificateArn == nil {
  5204  		invalidParams.Add(request.NewErrParamRequired("CertificateArn"))
  5205  	}
  5206  	if s.CertificateArn != nil && len(*s.CertificateArn) < 5 {
  5207  		invalidParams.Add(request.NewErrParamMinLen("CertificateArn", 5))
  5208  	}
  5209  	if s.CertificateAuthorityArn == nil {
  5210  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  5211  	}
  5212  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  5213  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  5214  	}
  5215  
  5216  	if invalidParams.Len() > 0 {
  5217  		return invalidParams
  5218  	}
  5219  	return nil
  5220  }
  5221  
  5222  // SetCertificateArn sets the CertificateArn field's value.
  5223  func (s *GetCertificateInput) SetCertificateArn(v string) *GetCertificateInput {
  5224  	s.CertificateArn = &v
  5225  	return s
  5226  }
  5227  
  5228  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  5229  func (s *GetCertificateInput) SetCertificateAuthorityArn(v string) *GetCertificateInput {
  5230  	s.CertificateAuthorityArn = &v
  5231  	return s
  5232  }
  5233  
  5234  type GetCertificateOutput struct {
  5235  	_ struct{} `type:"structure"`
  5236  
  5237  	// The base64 PEM-encoded certificate specified by the CertificateArn parameter.
  5238  	Certificate *string `type:"string"`
  5239  
  5240  	// The base64 PEM-encoded certificate chain that chains up to the root CA certificate
  5241  	// that you used to sign your private CA certificate.
  5242  	CertificateChain *string `type:"string"`
  5243  }
  5244  
  5245  // String returns the string representation.
  5246  //
  5247  // API parameter values that are decorated as "sensitive" in the API will not
  5248  // be included in the string output. The member name will be present, but the
  5249  // value will be replaced with "sensitive".
  5250  func (s GetCertificateOutput) String() string {
  5251  	return awsutil.Prettify(s)
  5252  }
  5253  
  5254  // GoString returns the string representation.
  5255  //
  5256  // API parameter values that are decorated as "sensitive" in the API will not
  5257  // be included in the string output. The member name will be present, but the
  5258  // value will be replaced with "sensitive".
  5259  func (s GetCertificateOutput) GoString() string {
  5260  	return s.String()
  5261  }
  5262  
  5263  // SetCertificate sets the Certificate field's value.
  5264  func (s *GetCertificateOutput) SetCertificate(v string) *GetCertificateOutput {
  5265  	s.Certificate = &v
  5266  	return s
  5267  }
  5268  
  5269  // SetCertificateChain sets the CertificateChain field's value.
  5270  func (s *GetCertificateOutput) SetCertificateChain(v string) *GetCertificateOutput {
  5271  	s.CertificateChain = &v
  5272  	return s
  5273  }
  5274  
  5275  type GetPolicyInput struct {
  5276  	_ struct{} `type:"structure"`
  5277  
  5278  	// The Amazon Resource Number (ARN) of the private CA that will have its policy
  5279  	// retrieved. You can find the CA's ARN by calling the ListCertificateAuthorities
  5280  	// action.
  5281  	//
  5282  	// ResourceArn is a required field
  5283  	ResourceArn *string `min:"5" type:"string" required:"true"`
  5284  }
  5285  
  5286  // String returns the string representation.
  5287  //
  5288  // API parameter values that are decorated as "sensitive" in the API will not
  5289  // be included in the string output. The member name will be present, but the
  5290  // value will be replaced with "sensitive".
  5291  func (s GetPolicyInput) String() string {
  5292  	return awsutil.Prettify(s)
  5293  }
  5294  
  5295  // GoString returns the string representation.
  5296  //
  5297  // API parameter values that are decorated as "sensitive" in the API will not
  5298  // be included in the string output. The member name will be present, but the
  5299  // value will be replaced with "sensitive".
  5300  func (s GetPolicyInput) GoString() string {
  5301  	return s.String()
  5302  }
  5303  
  5304  // Validate inspects the fields of the type to determine if they are valid.
  5305  func (s *GetPolicyInput) Validate() error {
  5306  	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
  5307  	if s.ResourceArn == nil {
  5308  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  5309  	}
  5310  	if s.ResourceArn != nil && len(*s.ResourceArn) < 5 {
  5311  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 5))
  5312  	}
  5313  
  5314  	if invalidParams.Len() > 0 {
  5315  		return invalidParams
  5316  	}
  5317  	return nil
  5318  }
  5319  
  5320  // SetResourceArn sets the ResourceArn field's value.
  5321  func (s *GetPolicyInput) SetResourceArn(v string) *GetPolicyInput {
  5322  	s.ResourceArn = &v
  5323  	return s
  5324  }
  5325  
  5326  type GetPolicyOutput struct {
  5327  	_ struct{} `type:"structure"`
  5328  
  5329  	// The policy attached to the private CA as a JSON document.
  5330  	Policy *string `min:"1" type:"string"`
  5331  }
  5332  
  5333  // String returns the string representation.
  5334  //
  5335  // API parameter values that are decorated as "sensitive" in the API will not
  5336  // be included in the string output. The member name will be present, but the
  5337  // value will be replaced with "sensitive".
  5338  func (s GetPolicyOutput) String() string {
  5339  	return awsutil.Prettify(s)
  5340  }
  5341  
  5342  // GoString returns the string representation.
  5343  //
  5344  // API parameter values that are decorated as "sensitive" in the API will not
  5345  // be included in the string output. The member name will be present, but the
  5346  // value will be replaced with "sensitive".
  5347  func (s GetPolicyOutput) GoString() string {
  5348  	return s.String()
  5349  }
  5350  
  5351  // SetPolicy sets the Policy field's value.
  5352  func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput {
  5353  	s.Policy = &v
  5354  	return s
  5355  }
  5356  
  5357  type ImportCertificateAuthorityCertificateInput struct {
  5358  	_ struct{} `type:"structure"`
  5359  
  5360  	// The PEM-encoded certificate for a private CA. This may be a self-signed certificate
  5361  	// in the case of a root CA, or it may be signed by another CA that you control.
  5362  	// Certificate is automatically base64 encoded/decoded by the SDK.
  5363  	//
  5364  	// Certificate is a required field
  5365  	Certificate []byte `min:"1" type:"blob" required:"true"`
  5366  
  5367  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  5368  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  5369  	// This must be of the form:
  5370  	//
  5371  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  5372  	//
  5373  	// CertificateAuthorityArn is a required field
  5374  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  5375  
  5376  	// A PEM-encoded file that contains all of your certificates, other than the
  5377  	// certificate you're importing, chaining up to your root CA. Your ACM Private
  5378  	// CA-hosted or on-premises root certificate is the last in the chain, and each
  5379  	// certificate in the chain signs the one preceding.
  5380  	//
  5381  	// This parameter must be supplied when you import a subordinate CA. When you
  5382  	// import a root CA, there is no chain.
  5383  	// CertificateChain is automatically base64 encoded/decoded by the SDK.
  5384  	CertificateChain []byte `type:"blob"`
  5385  }
  5386  
  5387  // String returns the string representation.
  5388  //
  5389  // API parameter values that are decorated as "sensitive" in the API will not
  5390  // be included in the string output. The member name will be present, but the
  5391  // value will be replaced with "sensitive".
  5392  func (s ImportCertificateAuthorityCertificateInput) String() string {
  5393  	return awsutil.Prettify(s)
  5394  }
  5395  
  5396  // GoString returns the string representation.
  5397  //
  5398  // API parameter values that are decorated as "sensitive" in the API will not
  5399  // be included in the string output. The member name will be present, but the
  5400  // value will be replaced with "sensitive".
  5401  func (s ImportCertificateAuthorityCertificateInput) GoString() string {
  5402  	return s.String()
  5403  }
  5404  
  5405  // Validate inspects the fields of the type to determine if they are valid.
  5406  func (s *ImportCertificateAuthorityCertificateInput) Validate() error {
  5407  	invalidParams := request.ErrInvalidParams{Context: "ImportCertificateAuthorityCertificateInput"}
  5408  	if s.Certificate == nil {
  5409  		invalidParams.Add(request.NewErrParamRequired("Certificate"))
  5410  	}
  5411  	if s.Certificate != nil && len(s.Certificate) < 1 {
  5412  		invalidParams.Add(request.NewErrParamMinLen("Certificate", 1))
  5413  	}
  5414  	if s.CertificateAuthorityArn == nil {
  5415  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  5416  	}
  5417  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  5418  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  5419  	}
  5420  
  5421  	if invalidParams.Len() > 0 {
  5422  		return invalidParams
  5423  	}
  5424  	return nil
  5425  }
  5426  
  5427  // SetCertificate sets the Certificate field's value.
  5428  func (s *ImportCertificateAuthorityCertificateInput) SetCertificate(v []byte) *ImportCertificateAuthorityCertificateInput {
  5429  	s.Certificate = v
  5430  	return s
  5431  }
  5432  
  5433  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  5434  func (s *ImportCertificateAuthorityCertificateInput) SetCertificateAuthorityArn(v string) *ImportCertificateAuthorityCertificateInput {
  5435  	s.CertificateAuthorityArn = &v
  5436  	return s
  5437  }
  5438  
  5439  // SetCertificateChain sets the CertificateChain field's value.
  5440  func (s *ImportCertificateAuthorityCertificateInput) SetCertificateChain(v []byte) *ImportCertificateAuthorityCertificateInput {
  5441  	s.CertificateChain = v
  5442  	return s
  5443  }
  5444  
  5445  type ImportCertificateAuthorityCertificateOutput struct {
  5446  	_ struct{} `type:"structure"`
  5447  }
  5448  
  5449  // String returns the string representation.
  5450  //
  5451  // API parameter values that are decorated as "sensitive" in the API will not
  5452  // be included in the string output. The member name will be present, but the
  5453  // value will be replaced with "sensitive".
  5454  func (s ImportCertificateAuthorityCertificateOutput) String() string {
  5455  	return awsutil.Prettify(s)
  5456  }
  5457  
  5458  // GoString returns the string representation.
  5459  //
  5460  // API parameter values that are decorated as "sensitive" in the API will not
  5461  // be included in the string output. The member name will be present, but the
  5462  // value will be replaced with "sensitive".
  5463  func (s ImportCertificateAuthorityCertificateOutput) GoString() string {
  5464  	return s.String()
  5465  }
  5466  
  5467  // One or more of the specified arguments was not valid.
  5468  type InvalidArgsException struct {
  5469  	_            struct{}                  `type:"structure"`
  5470  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5471  
  5472  	Message_ *string `locationName:"message" type:"string"`
  5473  }
  5474  
  5475  // String returns the string representation.
  5476  //
  5477  // API parameter values that are decorated as "sensitive" in the API will not
  5478  // be included in the string output. The member name will be present, but the
  5479  // value will be replaced with "sensitive".
  5480  func (s InvalidArgsException) String() string {
  5481  	return awsutil.Prettify(s)
  5482  }
  5483  
  5484  // GoString returns the string representation.
  5485  //
  5486  // API parameter values that are decorated as "sensitive" in the API will not
  5487  // be included in the string output. The member name will be present, but the
  5488  // value will be replaced with "sensitive".
  5489  func (s InvalidArgsException) GoString() string {
  5490  	return s.String()
  5491  }
  5492  
  5493  func newErrorInvalidArgsException(v protocol.ResponseMetadata) error {
  5494  	return &InvalidArgsException{
  5495  		RespMetadata: v,
  5496  	}
  5497  }
  5498  
  5499  // Code returns the exception type name.
  5500  func (s *InvalidArgsException) Code() string {
  5501  	return "InvalidArgsException"
  5502  }
  5503  
  5504  // Message returns the exception's message.
  5505  func (s *InvalidArgsException) Message() string {
  5506  	if s.Message_ != nil {
  5507  		return *s.Message_
  5508  	}
  5509  	return ""
  5510  }
  5511  
  5512  // OrigErr always returns nil, satisfies awserr.Error interface.
  5513  func (s *InvalidArgsException) OrigErr() error {
  5514  	return nil
  5515  }
  5516  
  5517  func (s *InvalidArgsException) Error() string {
  5518  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5519  }
  5520  
  5521  // Status code returns the HTTP status code for the request's response error.
  5522  func (s *InvalidArgsException) StatusCode() int {
  5523  	return s.RespMetadata.StatusCode
  5524  }
  5525  
  5526  // RequestID returns the service's response RequestID for request.
  5527  func (s *InvalidArgsException) RequestID() string {
  5528  	return s.RespMetadata.RequestID
  5529  }
  5530  
  5531  // The requested Amazon Resource Name (ARN) does not refer to an existing resource.
  5532  type InvalidArnException struct {
  5533  	_            struct{}                  `type:"structure"`
  5534  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5535  
  5536  	Message_ *string `locationName:"message" type:"string"`
  5537  }
  5538  
  5539  // String returns the string representation.
  5540  //
  5541  // API parameter values that are decorated as "sensitive" in the API will not
  5542  // be included in the string output. The member name will be present, but the
  5543  // value will be replaced with "sensitive".
  5544  func (s InvalidArnException) String() string {
  5545  	return awsutil.Prettify(s)
  5546  }
  5547  
  5548  // GoString returns the string representation.
  5549  //
  5550  // API parameter values that are decorated as "sensitive" in the API will not
  5551  // be included in the string output. The member name will be present, but the
  5552  // value will be replaced with "sensitive".
  5553  func (s InvalidArnException) GoString() string {
  5554  	return s.String()
  5555  }
  5556  
  5557  func newErrorInvalidArnException(v protocol.ResponseMetadata) error {
  5558  	return &InvalidArnException{
  5559  		RespMetadata: v,
  5560  	}
  5561  }
  5562  
  5563  // Code returns the exception type name.
  5564  func (s *InvalidArnException) Code() string {
  5565  	return "InvalidArnException"
  5566  }
  5567  
  5568  // Message returns the exception's message.
  5569  func (s *InvalidArnException) Message() string {
  5570  	if s.Message_ != nil {
  5571  		return *s.Message_
  5572  	}
  5573  	return ""
  5574  }
  5575  
  5576  // OrigErr always returns nil, satisfies awserr.Error interface.
  5577  func (s *InvalidArnException) OrigErr() error {
  5578  	return nil
  5579  }
  5580  
  5581  func (s *InvalidArnException) Error() string {
  5582  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5583  }
  5584  
  5585  // Status code returns the HTTP status code for the request's response error.
  5586  func (s *InvalidArnException) StatusCode() int {
  5587  	return s.RespMetadata.StatusCode
  5588  }
  5589  
  5590  // RequestID returns the service's response RequestID for request.
  5591  func (s *InvalidArnException) RequestID() string {
  5592  	return s.RespMetadata.RequestID
  5593  }
  5594  
  5595  // The token specified in the NextToken argument is not valid. Use the token
  5596  // returned from your previous call to ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html).
  5597  type InvalidNextTokenException struct {
  5598  	_            struct{}                  `type:"structure"`
  5599  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5600  
  5601  	Message_ *string `locationName:"message" type:"string"`
  5602  }
  5603  
  5604  // String returns the string representation.
  5605  //
  5606  // API parameter values that are decorated as "sensitive" in the API will not
  5607  // be included in the string output. The member name will be present, but the
  5608  // value will be replaced with "sensitive".
  5609  func (s InvalidNextTokenException) String() string {
  5610  	return awsutil.Prettify(s)
  5611  }
  5612  
  5613  // GoString returns the string representation.
  5614  //
  5615  // API parameter values that are decorated as "sensitive" in the API will not
  5616  // be included in the string output. The member name will be present, but the
  5617  // value will be replaced with "sensitive".
  5618  func (s InvalidNextTokenException) GoString() string {
  5619  	return s.String()
  5620  }
  5621  
  5622  func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
  5623  	return &InvalidNextTokenException{
  5624  		RespMetadata: v,
  5625  	}
  5626  }
  5627  
  5628  // Code returns the exception type name.
  5629  func (s *InvalidNextTokenException) Code() string {
  5630  	return "InvalidNextTokenException"
  5631  }
  5632  
  5633  // Message returns the exception's message.
  5634  func (s *InvalidNextTokenException) Message() string {
  5635  	if s.Message_ != nil {
  5636  		return *s.Message_
  5637  	}
  5638  	return ""
  5639  }
  5640  
  5641  // OrigErr always returns nil, satisfies awserr.Error interface.
  5642  func (s *InvalidNextTokenException) OrigErr() error {
  5643  	return nil
  5644  }
  5645  
  5646  func (s *InvalidNextTokenException) Error() string {
  5647  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5648  }
  5649  
  5650  // Status code returns the HTTP status code for the request's response error.
  5651  func (s *InvalidNextTokenException) StatusCode() int {
  5652  	return s.RespMetadata.StatusCode
  5653  }
  5654  
  5655  // RequestID returns the service's response RequestID for request.
  5656  func (s *InvalidNextTokenException) RequestID() string {
  5657  	return s.RespMetadata.RequestID
  5658  }
  5659  
  5660  // The resource policy is invalid or is missing a required statement. For general
  5661  // information about IAM policy and statement structure, see Overview of JSON
  5662  // Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json).
  5663  type InvalidPolicyException struct {
  5664  	_            struct{}                  `type:"structure"`
  5665  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5666  
  5667  	Message_ *string `locationName:"message" type:"string"`
  5668  }
  5669  
  5670  // String returns the string representation.
  5671  //
  5672  // API parameter values that are decorated as "sensitive" in the API will not
  5673  // be included in the string output. The member name will be present, but the
  5674  // value will be replaced with "sensitive".
  5675  func (s InvalidPolicyException) String() string {
  5676  	return awsutil.Prettify(s)
  5677  }
  5678  
  5679  // GoString returns the string representation.
  5680  //
  5681  // API parameter values that are decorated as "sensitive" in the API will not
  5682  // be included in the string output. The member name will be present, but the
  5683  // value will be replaced with "sensitive".
  5684  func (s InvalidPolicyException) GoString() string {
  5685  	return s.String()
  5686  }
  5687  
  5688  func newErrorInvalidPolicyException(v protocol.ResponseMetadata) error {
  5689  	return &InvalidPolicyException{
  5690  		RespMetadata: v,
  5691  	}
  5692  }
  5693  
  5694  // Code returns the exception type name.
  5695  func (s *InvalidPolicyException) Code() string {
  5696  	return "InvalidPolicyException"
  5697  }
  5698  
  5699  // Message returns the exception's message.
  5700  func (s *InvalidPolicyException) Message() string {
  5701  	if s.Message_ != nil {
  5702  		return *s.Message_
  5703  	}
  5704  	return ""
  5705  }
  5706  
  5707  // OrigErr always returns nil, satisfies awserr.Error interface.
  5708  func (s *InvalidPolicyException) OrigErr() error {
  5709  	return nil
  5710  }
  5711  
  5712  func (s *InvalidPolicyException) Error() string {
  5713  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5714  }
  5715  
  5716  // Status code returns the HTTP status code for the request's response error.
  5717  func (s *InvalidPolicyException) StatusCode() int {
  5718  	return s.RespMetadata.StatusCode
  5719  }
  5720  
  5721  // RequestID returns the service's response RequestID for request.
  5722  func (s *InvalidPolicyException) RequestID() string {
  5723  	return s.RespMetadata.RequestID
  5724  }
  5725  
  5726  // The request action cannot be performed or is prohibited.
  5727  type InvalidRequestException struct {
  5728  	_            struct{}                  `type:"structure"`
  5729  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5730  
  5731  	Message_ *string `locationName:"message" type:"string"`
  5732  }
  5733  
  5734  // String returns the string representation.
  5735  //
  5736  // API parameter values that are decorated as "sensitive" in the API will not
  5737  // be included in the string output. The member name will be present, but the
  5738  // value will be replaced with "sensitive".
  5739  func (s InvalidRequestException) String() string {
  5740  	return awsutil.Prettify(s)
  5741  }
  5742  
  5743  // GoString returns the string representation.
  5744  //
  5745  // API parameter values that are decorated as "sensitive" in the API will not
  5746  // be included in the string output. The member name will be present, but the
  5747  // value will be replaced with "sensitive".
  5748  func (s InvalidRequestException) GoString() string {
  5749  	return s.String()
  5750  }
  5751  
  5752  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
  5753  	return &InvalidRequestException{
  5754  		RespMetadata: v,
  5755  	}
  5756  }
  5757  
  5758  // Code returns the exception type name.
  5759  func (s *InvalidRequestException) Code() string {
  5760  	return "InvalidRequestException"
  5761  }
  5762  
  5763  // Message returns the exception's message.
  5764  func (s *InvalidRequestException) Message() string {
  5765  	if s.Message_ != nil {
  5766  		return *s.Message_
  5767  	}
  5768  	return ""
  5769  }
  5770  
  5771  // OrigErr always returns nil, satisfies awserr.Error interface.
  5772  func (s *InvalidRequestException) OrigErr() error {
  5773  	return nil
  5774  }
  5775  
  5776  func (s *InvalidRequestException) Error() string {
  5777  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5778  }
  5779  
  5780  // Status code returns the HTTP status code for the request's response error.
  5781  func (s *InvalidRequestException) StatusCode() int {
  5782  	return s.RespMetadata.StatusCode
  5783  }
  5784  
  5785  // RequestID returns the service's response RequestID for request.
  5786  func (s *InvalidRequestException) RequestID() string {
  5787  	return s.RespMetadata.RequestID
  5788  }
  5789  
  5790  // The state of the private CA does not allow this action to occur.
  5791  type InvalidStateException struct {
  5792  	_            struct{}                  `type:"structure"`
  5793  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5794  
  5795  	Message_ *string `locationName:"message" type:"string"`
  5796  }
  5797  
  5798  // String returns the string representation.
  5799  //
  5800  // API parameter values that are decorated as "sensitive" in the API will not
  5801  // be included in the string output. The member name will be present, but the
  5802  // value will be replaced with "sensitive".
  5803  func (s InvalidStateException) String() string {
  5804  	return awsutil.Prettify(s)
  5805  }
  5806  
  5807  // GoString returns the string representation.
  5808  //
  5809  // API parameter values that are decorated as "sensitive" in the API will not
  5810  // be included in the string output. The member name will be present, but the
  5811  // value will be replaced with "sensitive".
  5812  func (s InvalidStateException) GoString() string {
  5813  	return s.String()
  5814  }
  5815  
  5816  func newErrorInvalidStateException(v protocol.ResponseMetadata) error {
  5817  	return &InvalidStateException{
  5818  		RespMetadata: v,
  5819  	}
  5820  }
  5821  
  5822  // Code returns the exception type name.
  5823  func (s *InvalidStateException) Code() string {
  5824  	return "InvalidStateException"
  5825  }
  5826  
  5827  // Message returns the exception's message.
  5828  func (s *InvalidStateException) Message() string {
  5829  	if s.Message_ != nil {
  5830  		return *s.Message_
  5831  	}
  5832  	return ""
  5833  }
  5834  
  5835  // OrigErr always returns nil, satisfies awserr.Error interface.
  5836  func (s *InvalidStateException) OrigErr() error {
  5837  	return nil
  5838  }
  5839  
  5840  func (s *InvalidStateException) Error() string {
  5841  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5842  }
  5843  
  5844  // Status code returns the HTTP status code for the request's response error.
  5845  func (s *InvalidStateException) StatusCode() int {
  5846  	return s.RespMetadata.StatusCode
  5847  }
  5848  
  5849  // RequestID returns the service's response RequestID for request.
  5850  func (s *InvalidStateException) RequestID() string {
  5851  	return s.RespMetadata.RequestID
  5852  }
  5853  
  5854  // The tag associated with the CA is not valid. The invalid argument is contained
  5855  // in the message field.
  5856  type InvalidTagException struct {
  5857  	_            struct{}                  `type:"structure"`
  5858  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5859  
  5860  	Message_ *string `locationName:"message" type:"string"`
  5861  }
  5862  
  5863  // String returns the string representation.
  5864  //
  5865  // API parameter values that are decorated as "sensitive" in the API will not
  5866  // be included in the string output. The member name will be present, but the
  5867  // value will be replaced with "sensitive".
  5868  func (s InvalidTagException) String() string {
  5869  	return awsutil.Prettify(s)
  5870  }
  5871  
  5872  // GoString returns the string representation.
  5873  //
  5874  // API parameter values that are decorated as "sensitive" in the API will not
  5875  // be included in the string output. The member name will be present, but the
  5876  // value will be replaced with "sensitive".
  5877  func (s InvalidTagException) GoString() string {
  5878  	return s.String()
  5879  }
  5880  
  5881  func newErrorInvalidTagException(v protocol.ResponseMetadata) error {
  5882  	return &InvalidTagException{
  5883  		RespMetadata: v,
  5884  	}
  5885  }
  5886  
  5887  // Code returns the exception type name.
  5888  func (s *InvalidTagException) Code() string {
  5889  	return "InvalidTagException"
  5890  }
  5891  
  5892  // Message returns the exception's message.
  5893  func (s *InvalidTagException) Message() string {
  5894  	if s.Message_ != nil {
  5895  		return *s.Message_
  5896  	}
  5897  	return ""
  5898  }
  5899  
  5900  // OrigErr always returns nil, satisfies awserr.Error interface.
  5901  func (s *InvalidTagException) OrigErr() error {
  5902  	return nil
  5903  }
  5904  
  5905  func (s *InvalidTagException) Error() string {
  5906  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5907  }
  5908  
  5909  // Status code returns the HTTP status code for the request's response error.
  5910  func (s *InvalidTagException) StatusCode() int {
  5911  	return s.RespMetadata.StatusCode
  5912  }
  5913  
  5914  // RequestID returns the service's response RequestID for request.
  5915  func (s *InvalidTagException) RequestID() string {
  5916  	return s.RespMetadata.RequestID
  5917  }
  5918  
  5919  type IssueCertificateInput struct {
  5920  	_ struct{} `type:"structure"`
  5921  
  5922  	// Specifies X.509 certificate information to be included in the issued certificate.
  5923  	// An APIPassthrough or APICSRPassthrough template variant must be selected,
  5924  	// or else this parameter is ignored. For more information about using these
  5925  	// templates, see Understanding Certificate Templates (https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html).
  5926  	//
  5927  	// If conflicting or duplicate certificate information is supplied during certificate
  5928  	// issuance, ACM Private CA applies order of operation rules (https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html#template-order-of-operations)
  5929  	// to determine what information is used.
  5930  	ApiPassthrough *ApiPassthrough `type:"structure"`
  5931  
  5932  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  5933  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  5934  	// This must be of the form:
  5935  	//
  5936  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  5937  	//
  5938  	// CertificateAuthorityArn is a required field
  5939  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  5940  
  5941  	// The certificate signing request (CSR) for the certificate you want to issue.
  5942  	// As an example, you can use the following OpenSSL command to create the CSR
  5943  	// and a 2048 bit RSA private key.
  5944  	//
  5945  	// openssl req -new -newkey rsa:2048 -days 365 -keyout private/test_cert_priv_key.pem
  5946  	// -out csr/test_cert_.csr
  5947  	//
  5948  	// If you have a configuration file, you can then use the following OpenSSL
  5949  	// command. The usr_cert block in the configuration file contains your X509
  5950  	// version 3 extensions.
  5951  	//
  5952  	// openssl req -new -config openssl_rsa.cnf -extensions usr_cert -newkey rsa:2048
  5953  	// -days -365 -keyout private/test_cert_priv_key.pem -out csr/test_cert_.csr
  5954  	//
  5955  	// Note: A CSR must provide either a subject name or a subject alternative name
  5956  	// or the request will be rejected.
  5957  	// Csr is automatically base64 encoded/decoded by the SDK.
  5958  	//
  5959  	// Csr is a required field
  5960  	Csr []byte `min:"1" type:"blob" required:"true"`
  5961  
  5962  	// Alphanumeric string that can be used to distinguish between calls to the
  5963  	// IssueCertificate action. Idempotency tokens for IssueCertificate time out
  5964  	// after one minute. Therefore, if you call IssueCertificate multiple times
  5965  	// with the same idempotency token within one minute, ACM Private CA recognizes
  5966  	// that you are requesting only one certificate and will issue only one. If
  5967  	// you change the idempotency token for each call, PCA recognizes that you are
  5968  	// requesting multiple certificates.
  5969  	IdempotencyToken *string `min:"1" type:"string"`
  5970  
  5971  	// The name of the algorithm that will be used to sign the certificate to be
  5972  	// issued.
  5973  	//
  5974  	// This parameter should not be confused with the SigningAlgorithm parameter
  5975  	// used to sign a CSR in the CreateCertificateAuthority action.
  5976  	//
  5977  	// SigningAlgorithm is a required field
  5978  	SigningAlgorithm *string `type:"string" required:"true" enum:"SigningAlgorithm"`
  5979  
  5980  	// Specifies a custom configuration template to use when issuing a certificate.
  5981  	// If this parameter is not provided, ACM Private CA defaults to the EndEntityCertificate/V1
  5982  	// template. For CA certificates, you should choose the shortest path length
  5983  	// that meets your needs. The path length is indicated by the PathLenN portion
  5984  	// of the ARN, where N is the CA depth (https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaTerms.html#terms-cadepth).
  5985  	//
  5986  	// Note: The CA depth configured on a subordinate CA certificate must not exceed
  5987  	// the limit set by its parents in the CA hierarchy.
  5988  	//
  5989  	// For a list of TemplateArn values supported by ACM Private CA, see Understanding
  5990  	// Certificate Templates (https://docs.aws.amazon.com/acm-pca/latest/userguide/UsingTemplates.html).
  5991  	TemplateArn *string `min:"5" type:"string"`
  5992  
  5993  	// Information describing the end of the validity period of the certificate.
  5994  	// This parameter sets the “Not After” date for the certificate.
  5995  	//
  5996  	// Certificate validity is the period of time during which a certificate is
  5997  	// valid. Validity can be expressed as an explicit date and time when the certificate
  5998  	// expires, or as a span of time after issuance, stated in days, months, or
  5999  	// years. For more information, see Validity (https://tools.ietf.org/html/rfc5280#section-4.1.2.5)
  6000  	// in RFC 5280.
  6001  	//
  6002  	// This value is unaffected when ValidityNotBefore is also specified. For example,
  6003  	// if Validity is set to 20 days in the future, the certificate will expire
  6004  	// 20 days from issuance time regardless of the ValidityNotBefore value.
  6005  	//
  6006  	// The end of the validity period configured on a certificate must not exceed
  6007  	// the limit set on its parents in the CA hierarchy.
  6008  	//
  6009  	// Validity is a required field
  6010  	Validity *Validity `type:"structure" required:"true"`
  6011  
  6012  	// Information describing the start of the validity period of the certificate.
  6013  	// This parameter sets the “Not Before" date for the certificate.
  6014  	//
  6015  	// By default, when issuing a certificate, ACM Private CA sets the "Not Before"
  6016  	// date to the issuance time minus 60 minutes. This compensates for clock inconsistencies
  6017  	// across computer systems. The ValidityNotBefore parameter can be used to customize
  6018  	// the “Not Before” value.
  6019  	//
  6020  	// Unlike the Validity parameter, the ValidityNotBefore parameter is optional.
  6021  	//
  6022  	// The ValidityNotBefore value is expressed as an explicit date and time, using
  6023  	// the Validity type value ABSOLUTE. For more information, see Validity (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_Validity.html)
  6024  	// in this API reference and Validity (https://tools.ietf.org/html/rfc5280#section-4.1.2.5)
  6025  	// in RFC 5280.
  6026  	ValidityNotBefore *Validity `type:"structure"`
  6027  }
  6028  
  6029  // String returns the string representation.
  6030  //
  6031  // API parameter values that are decorated as "sensitive" in the API will not
  6032  // be included in the string output. The member name will be present, but the
  6033  // value will be replaced with "sensitive".
  6034  func (s IssueCertificateInput) String() string {
  6035  	return awsutil.Prettify(s)
  6036  }
  6037  
  6038  // GoString returns the string representation.
  6039  //
  6040  // API parameter values that are decorated as "sensitive" in the API will not
  6041  // be included in the string output. The member name will be present, but the
  6042  // value will be replaced with "sensitive".
  6043  func (s IssueCertificateInput) GoString() string {
  6044  	return s.String()
  6045  }
  6046  
  6047  // Validate inspects the fields of the type to determine if they are valid.
  6048  func (s *IssueCertificateInput) Validate() error {
  6049  	invalidParams := request.ErrInvalidParams{Context: "IssueCertificateInput"}
  6050  	if s.CertificateAuthorityArn == nil {
  6051  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  6052  	}
  6053  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  6054  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  6055  	}
  6056  	if s.Csr == nil {
  6057  		invalidParams.Add(request.NewErrParamRequired("Csr"))
  6058  	}
  6059  	if s.Csr != nil && len(s.Csr) < 1 {
  6060  		invalidParams.Add(request.NewErrParamMinLen("Csr", 1))
  6061  	}
  6062  	if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 {
  6063  		invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1))
  6064  	}
  6065  	if s.SigningAlgorithm == nil {
  6066  		invalidParams.Add(request.NewErrParamRequired("SigningAlgorithm"))
  6067  	}
  6068  	if s.TemplateArn != nil && len(*s.TemplateArn) < 5 {
  6069  		invalidParams.Add(request.NewErrParamMinLen("TemplateArn", 5))
  6070  	}
  6071  	if s.Validity == nil {
  6072  		invalidParams.Add(request.NewErrParamRequired("Validity"))
  6073  	}
  6074  	if s.ApiPassthrough != nil {
  6075  		if err := s.ApiPassthrough.Validate(); err != nil {
  6076  			invalidParams.AddNested("ApiPassthrough", err.(request.ErrInvalidParams))
  6077  		}
  6078  	}
  6079  	if s.Validity != nil {
  6080  		if err := s.Validity.Validate(); err != nil {
  6081  			invalidParams.AddNested("Validity", err.(request.ErrInvalidParams))
  6082  		}
  6083  	}
  6084  	if s.ValidityNotBefore != nil {
  6085  		if err := s.ValidityNotBefore.Validate(); err != nil {
  6086  			invalidParams.AddNested("ValidityNotBefore", err.(request.ErrInvalidParams))
  6087  		}
  6088  	}
  6089  
  6090  	if invalidParams.Len() > 0 {
  6091  		return invalidParams
  6092  	}
  6093  	return nil
  6094  }
  6095  
  6096  // SetApiPassthrough sets the ApiPassthrough field's value.
  6097  func (s *IssueCertificateInput) SetApiPassthrough(v *ApiPassthrough) *IssueCertificateInput {
  6098  	s.ApiPassthrough = v
  6099  	return s
  6100  }
  6101  
  6102  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  6103  func (s *IssueCertificateInput) SetCertificateAuthorityArn(v string) *IssueCertificateInput {
  6104  	s.CertificateAuthorityArn = &v
  6105  	return s
  6106  }
  6107  
  6108  // SetCsr sets the Csr field's value.
  6109  func (s *IssueCertificateInput) SetCsr(v []byte) *IssueCertificateInput {
  6110  	s.Csr = v
  6111  	return s
  6112  }
  6113  
  6114  // SetIdempotencyToken sets the IdempotencyToken field's value.
  6115  func (s *IssueCertificateInput) SetIdempotencyToken(v string) *IssueCertificateInput {
  6116  	s.IdempotencyToken = &v
  6117  	return s
  6118  }
  6119  
  6120  // SetSigningAlgorithm sets the SigningAlgorithm field's value.
  6121  func (s *IssueCertificateInput) SetSigningAlgorithm(v string) *IssueCertificateInput {
  6122  	s.SigningAlgorithm = &v
  6123  	return s
  6124  }
  6125  
  6126  // SetTemplateArn sets the TemplateArn field's value.
  6127  func (s *IssueCertificateInput) SetTemplateArn(v string) *IssueCertificateInput {
  6128  	s.TemplateArn = &v
  6129  	return s
  6130  }
  6131  
  6132  // SetValidity sets the Validity field's value.
  6133  func (s *IssueCertificateInput) SetValidity(v *Validity) *IssueCertificateInput {
  6134  	s.Validity = v
  6135  	return s
  6136  }
  6137  
  6138  // SetValidityNotBefore sets the ValidityNotBefore field's value.
  6139  func (s *IssueCertificateInput) SetValidityNotBefore(v *Validity) *IssueCertificateInput {
  6140  	s.ValidityNotBefore = v
  6141  	return s
  6142  }
  6143  
  6144  type IssueCertificateOutput struct {
  6145  	_ struct{} `type:"structure"`
  6146  
  6147  	// The Amazon Resource Name (ARN) of the issued certificate and the certificate
  6148  	// serial number. This is of the form:
  6149  	//
  6150  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012/certificate/286535153982981100925020015808220737245
  6151  	CertificateArn *string `min:"5" type:"string"`
  6152  }
  6153  
  6154  // String returns the string representation.
  6155  //
  6156  // API parameter values that are decorated as "sensitive" in the API will not
  6157  // be included in the string output. The member name will be present, but the
  6158  // value will be replaced with "sensitive".
  6159  func (s IssueCertificateOutput) String() string {
  6160  	return awsutil.Prettify(s)
  6161  }
  6162  
  6163  // GoString returns the string representation.
  6164  //
  6165  // API parameter values that are decorated as "sensitive" in the API will not
  6166  // be included in the string output. The member name will be present, but the
  6167  // value will be replaced with "sensitive".
  6168  func (s IssueCertificateOutput) GoString() string {
  6169  	return s.String()
  6170  }
  6171  
  6172  // SetCertificateArn sets the CertificateArn field's value.
  6173  func (s *IssueCertificateOutput) SetCertificateArn(v string) *IssueCertificateOutput {
  6174  	s.CertificateArn = &v
  6175  	return s
  6176  }
  6177  
  6178  // Defines one or more purposes for which the key contained in the certificate
  6179  // can be used. Default value for each option is false.
  6180  type KeyUsage struct {
  6181  	_ struct{} `type:"structure"`
  6182  
  6183  	// Key can be used to sign CRLs.
  6184  	CRLSign *bool `type:"boolean"`
  6185  
  6186  	// Key can be used to decipher data.
  6187  	DataEncipherment *bool `type:"boolean"`
  6188  
  6189  	// Key can be used only to decipher data.
  6190  	DecipherOnly *bool `type:"boolean"`
  6191  
  6192  	// Key can be used for digital signing.
  6193  	DigitalSignature *bool `type:"boolean"`
  6194  
  6195  	// Key can be used only to encipher data.
  6196  	EncipherOnly *bool `type:"boolean"`
  6197  
  6198  	// Key can be used in a key-agreement protocol.
  6199  	KeyAgreement *bool `type:"boolean"`
  6200  
  6201  	// Key can be used to sign certificates.
  6202  	KeyCertSign *bool `type:"boolean"`
  6203  
  6204  	// Key can be used to encipher data.
  6205  	KeyEncipherment *bool `type:"boolean"`
  6206  
  6207  	// Key can be used for non-repudiation.
  6208  	NonRepudiation *bool `type:"boolean"`
  6209  }
  6210  
  6211  // String returns the string representation.
  6212  //
  6213  // API parameter values that are decorated as "sensitive" in the API will not
  6214  // be included in the string output. The member name will be present, but the
  6215  // value will be replaced with "sensitive".
  6216  func (s KeyUsage) String() string {
  6217  	return awsutil.Prettify(s)
  6218  }
  6219  
  6220  // GoString returns the string representation.
  6221  //
  6222  // API parameter values that are decorated as "sensitive" in the API will not
  6223  // be included in the string output. The member name will be present, but the
  6224  // value will be replaced with "sensitive".
  6225  func (s KeyUsage) GoString() string {
  6226  	return s.String()
  6227  }
  6228  
  6229  // SetCRLSign sets the CRLSign field's value.
  6230  func (s *KeyUsage) SetCRLSign(v bool) *KeyUsage {
  6231  	s.CRLSign = &v
  6232  	return s
  6233  }
  6234  
  6235  // SetDataEncipherment sets the DataEncipherment field's value.
  6236  func (s *KeyUsage) SetDataEncipherment(v bool) *KeyUsage {
  6237  	s.DataEncipherment = &v
  6238  	return s
  6239  }
  6240  
  6241  // SetDecipherOnly sets the DecipherOnly field's value.
  6242  func (s *KeyUsage) SetDecipherOnly(v bool) *KeyUsage {
  6243  	s.DecipherOnly = &v
  6244  	return s
  6245  }
  6246  
  6247  // SetDigitalSignature sets the DigitalSignature field's value.
  6248  func (s *KeyUsage) SetDigitalSignature(v bool) *KeyUsage {
  6249  	s.DigitalSignature = &v
  6250  	return s
  6251  }
  6252  
  6253  // SetEncipherOnly sets the EncipherOnly field's value.
  6254  func (s *KeyUsage) SetEncipherOnly(v bool) *KeyUsage {
  6255  	s.EncipherOnly = &v
  6256  	return s
  6257  }
  6258  
  6259  // SetKeyAgreement sets the KeyAgreement field's value.
  6260  func (s *KeyUsage) SetKeyAgreement(v bool) *KeyUsage {
  6261  	s.KeyAgreement = &v
  6262  	return s
  6263  }
  6264  
  6265  // SetKeyCertSign sets the KeyCertSign field's value.
  6266  func (s *KeyUsage) SetKeyCertSign(v bool) *KeyUsage {
  6267  	s.KeyCertSign = &v
  6268  	return s
  6269  }
  6270  
  6271  // SetKeyEncipherment sets the KeyEncipherment field's value.
  6272  func (s *KeyUsage) SetKeyEncipherment(v bool) *KeyUsage {
  6273  	s.KeyEncipherment = &v
  6274  	return s
  6275  }
  6276  
  6277  // SetNonRepudiation sets the NonRepudiation field's value.
  6278  func (s *KeyUsage) SetNonRepudiation(v bool) *KeyUsage {
  6279  	s.NonRepudiation = &v
  6280  	return s
  6281  }
  6282  
  6283  // An ACM Private CA quota has been exceeded. See the exception message returned
  6284  // to determine the quota that was exceeded.
  6285  type LimitExceededException struct {
  6286  	_            struct{}                  `type:"structure"`
  6287  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6288  
  6289  	Message_ *string `locationName:"message" type:"string"`
  6290  }
  6291  
  6292  // String returns the string representation.
  6293  //
  6294  // API parameter values that are decorated as "sensitive" in the API will not
  6295  // be included in the string output. The member name will be present, but the
  6296  // value will be replaced with "sensitive".
  6297  func (s LimitExceededException) String() string {
  6298  	return awsutil.Prettify(s)
  6299  }
  6300  
  6301  // GoString returns the string representation.
  6302  //
  6303  // API parameter values that are decorated as "sensitive" in the API will not
  6304  // be included in the string output. The member name will be present, but the
  6305  // value will be replaced with "sensitive".
  6306  func (s LimitExceededException) GoString() string {
  6307  	return s.String()
  6308  }
  6309  
  6310  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  6311  	return &LimitExceededException{
  6312  		RespMetadata: v,
  6313  	}
  6314  }
  6315  
  6316  // Code returns the exception type name.
  6317  func (s *LimitExceededException) Code() string {
  6318  	return "LimitExceededException"
  6319  }
  6320  
  6321  // Message returns the exception's message.
  6322  func (s *LimitExceededException) Message() string {
  6323  	if s.Message_ != nil {
  6324  		return *s.Message_
  6325  	}
  6326  	return ""
  6327  }
  6328  
  6329  // OrigErr always returns nil, satisfies awserr.Error interface.
  6330  func (s *LimitExceededException) OrigErr() error {
  6331  	return nil
  6332  }
  6333  
  6334  func (s *LimitExceededException) Error() string {
  6335  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6336  }
  6337  
  6338  // Status code returns the HTTP status code for the request's response error.
  6339  func (s *LimitExceededException) StatusCode() int {
  6340  	return s.RespMetadata.StatusCode
  6341  }
  6342  
  6343  // RequestID returns the service's response RequestID for request.
  6344  func (s *LimitExceededException) RequestID() string {
  6345  	return s.RespMetadata.RequestID
  6346  }
  6347  
  6348  type ListCertificateAuthoritiesInput struct {
  6349  	_ struct{} `type:"structure"`
  6350  
  6351  	// Use this parameter when paginating results to specify the maximum number
  6352  	// of items to return in the response on each page. If additional items exist
  6353  	// beyond the number you specify, the NextToken element is sent in the response.
  6354  	// Use this NextToken value in a subsequent request to retrieve additional items.
  6355  	MaxResults *int64 `min:"1" type:"integer"`
  6356  
  6357  	// Use this parameter when paginating results in a subsequent request after
  6358  	// you receive a response with truncated results. Set it to the value of the
  6359  	// NextToken parameter from the response you just received.
  6360  	NextToken *string `min:"1" type:"string"`
  6361  
  6362  	// Use this parameter to filter the returned set of certificate authorities
  6363  	// based on their owner. The default is SELF.
  6364  	ResourceOwner *string `type:"string" enum:"ResourceOwner"`
  6365  }
  6366  
  6367  // String returns the string representation.
  6368  //
  6369  // API parameter values that are decorated as "sensitive" in the API will not
  6370  // be included in the string output. The member name will be present, but the
  6371  // value will be replaced with "sensitive".
  6372  func (s ListCertificateAuthoritiesInput) String() string {
  6373  	return awsutil.Prettify(s)
  6374  }
  6375  
  6376  // GoString returns the string representation.
  6377  //
  6378  // API parameter values that are decorated as "sensitive" in the API will not
  6379  // be included in the string output. The member name will be present, but the
  6380  // value will be replaced with "sensitive".
  6381  func (s ListCertificateAuthoritiesInput) GoString() string {
  6382  	return s.String()
  6383  }
  6384  
  6385  // Validate inspects the fields of the type to determine if they are valid.
  6386  func (s *ListCertificateAuthoritiesInput) Validate() error {
  6387  	invalidParams := request.ErrInvalidParams{Context: "ListCertificateAuthoritiesInput"}
  6388  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6389  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6390  	}
  6391  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6392  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6393  	}
  6394  
  6395  	if invalidParams.Len() > 0 {
  6396  		return invalidParams
  6397  	}
  6398  	return nil
  6399  }
  6400  
  6401  // SetMaxResults sets the MaxResults field's value.
  6402  func (s *ListCertificateAuthoritiesInput) SetMaxResults(v int64) *ListCertificateAuthoritiesInput {
  6403  	s.MaxResults = &v
  6404  	return s
  6405  }
  6406  
  6407  // SetNextToken sets the NextToken field's value.
  6408  func (s *ListCertificateAuthoritiesInput) SetNextToken(v string) *ListCertificateAuthoritiesInput {
  6409  	s.NextToken = &v
  6410  	return s
  6411  }
  6412  
  6413  // SetResourceOwner sets the ResourceOwner field's value.
  6414  func (s *ListCertificateAuthoritiesInput) SetResourceOwner(v string) *ListCertificateAuthoritiesInput {
  6415  	s.ResourceOwner = &v
  6416  	return s
  6417  }
  6418  
  6419  type ListCertificateAuthoritiesOutput struct {
  6420  	_ struct{} `type:"structure"`
  6421  
  6422  	// Summary information about each certificate authority you have created.
  6423  	CertificateAuthorities []*CertificateAuthority `type:"list"`
  6424  
  6425  	// When the list is truncated, this value is present and should be used for
  6426  	// the NextToken parameter in a subsequent pagination request.
  6427  	NextToken *string `min:"1" type:"string"`
  6428  }
  6429  
  6430  // String returns the string representation.
  6431  //
  6432  // API parameter values that are decorated as "sensitive" in the API will not
  6433  // be included in the string output. The member name will be present, but the
  6434  // value will be replaced with "sensitive".
  6435  func (s ListCertificateAuthoritiesOutput) String() string {
  6436  	return awsutil.Prettify(s)
  6437  }
  6438  
  6439  // GoString returns the string representation.
  6440  //
  6441  // API parameter values that are decorated as "sensitive" in the API will not
  6442  // be included in the string output. The member name will be present, but the
  6443  // value will be replaced with "sensitive".
  6444  func (s ListCertificateAuthoritiesOutput) GoString() string {
  6445  	return s.String()
  6446  }
  6447  
  6448  // SetCertificateAuthorities sets the CertificateAuthorities field's value.
  6449  func (s *ListCertificateAuthoritiesOutput) SetCertificateAuthorities(v []*CertificateAuthority) *ListCertificateAuthoritiesOutput {
  6450  	s.CertificateAuthorities = v
  6451  	return s
  6452  }
  6453  
  6454  // SetNextToken sets the NextToken field's value.
  6455  func (s *ListCertificateAuthoritiesOutput) SetNextToken(v string) *ListCertificateAuthoritiesOutput {
  6456  	s.NextToken = &v
  6457  	return s
  6458  }
  6459  
  6460  type ListPermissionsInput struct {
  6461  	_ struct{} `type:"structure"`
  6462  
  6463  	// The Amazon Resource Number (ARN) of the private CA to inspect. You can find
  6464  	// the ARN by calling the ListCertificateAuthorities (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  6465  	// action. This must be of the form: arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  6466  	// You can get a private CA's ARN by running the ListCertificateAuthorities
  6467  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  6468  	// action.
  6469  	//
  6470  	// CertificateAuthorityArn is a required field
  6471  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  6472  
  6473  	// When paginating results, use this parameter to specify the maximum number
  6474  	// of items to return in the response. If additional items exist beyond the
  6475  	// number you specify, the NextToken element is sent in the response. Use this
  6476  	// NextToken value in a subsequent request to retrieve additional items.
  6477  	MaxResults *int64 `min:"1" type:"integer"`
  6478  
  6479  	// When paginating results, use this parameter in a subsequent request after
  6480  	// you receive a response with truncated results. Set it to the value of NextToken
  6481  	// from the response you just received.
  6482  	NextToken *string `min:"1" type:"string"`
  6483  }
  6484  
  6485  // String returns the string representation.
  6486  //
  6487  // API parameter values that are decorated as "sensitive" in the API will not
  6488  // be included in the string output. The member name will be present, but the
  6489  // value will be replaced with "sensitive".
  6490  func (s ListPermissionsInput) String() string {
  6491  	return awsutil.Prettify(s)
  6492  }
  6493  
  6494  // GoString returns the string representation.
  6495  //
  6496  // API parameter values that are decorated as "sensitive" in the API will not
  6497  // be included in the string output. The member name will be present, but the
  6498  // value will be replaced with "sensitive".
  6499  func (s ListPermissionsInput) GoString() string {
  6500  	return s.String()
  6501  }
  6502  
  6503  // Validate inspects the fields of the type to determine if they are valid.
  6504  func (s *ListPermissionsInput) Validate() error {
  6505  	invalidParams := request.ErrInvalidParams{Context: "ListPermissionsInput"}
  6506  	if s.CertificateAuthorityArn == nil {
  6507  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  6508  	}
  6509  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  6510  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  6511  	}
  6512  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6513  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6514  	}
  6515  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6516  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6517  	}
  6518  
  6519  	if invalidParams.Len() > 0 {
  6520  		return invalidParams
  6521  	}
  6522  	return nil
  6523  }
  6524  
  6525  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  6526  func (s *ListPermissionsInput) SetCertificateAuthorityArn(v string) *ListPermissionsInput {
  6527  	s.CertificateAuthorityArn = &v
  6528  	return s
  6529  }
  6530  
  6531  // SetMaxResults sets the MaxResults field's value.
  6532  func (s *ListPermissionsInput) SetMaxResults(v int64) *ListPermissionsInput {
  6533  	s.MaxResults = &v
  6534  	return s
  6535  }
  6536  
  6537  // SetNextToken sets the NextToken field's value.
  6538  func (s *ListPermissionsInput) SetNextToken(v string) *ListPermissionsInput {
  6539  	s.NextToken = &v
  6540  	return s
  6541  }
  6542  
  6543  type ListPermissionsOutput struct {
  6544  	_ struct{} `type:"structure"`
  6545  
  6546  	// When the list is truncated, this value is present and should be used for
  6547  	// the NextToken parameter in a subsequent pagination request.
  6548  	NextToken *string `min:"1" type:"string"`
  6549  
  6550  	// Summary information about each permission assigned by the specified private
  6551  	// CA, including the action enabled, the policy provided, and the time of creation.
  6552  	Permissions []*Permission `type:"list"`
  6553  }
  6554  
  6555  // String returns the string representation.
  6556  //
  6557  // API parameter values that are decorated as "sensitive" in the API will not
  6558  // be included in the string output. The member name will be present, but the
  6559  // value will be replaced with "sensitive".
  6560  func (s ListPermissionsOutput) String() string {
  6561  	return awsutil.Prettify(s)
  6562  }
  6563  
  6564  // GoString returns the string representation.
  6565  //
  6566  // API parameter values that are decorated as "sensitive" in the API will not
  6567  // be included in the string output. The member name will be present, but the
  6568  // value will be replaced with "sensitive".
  6569  func (s ListPermissionsOutput) GoString() string {
  6570  	return s.String()
  6571  }
  6572  
  6573  // SetNextToken sets the NextToken field's value.
  6574  func (s *ListPermissionsOutput) SetNextToken(v string) *ListPermissionsOutput {
  6575  	s.NextToken = &v
  6576  	return s
  6577  }
  6578  
  6579  // SetPermissions sets the Permissions field's value.
  6580  func (s *ListPermissionsOutput) SetPermissions(v []*Permission) *ListPermissionsOutput {
  6581  	s.Permissions = v
  6582  	return s
  6583  }
  6584  
  6585  type ListTagsInput struct {
  6586  	_ struct{} `type:"structure"`
  6587  
  6588  	// The Amazon Resource Name (ARN) that was returned when you called the CreateCertificateAuthority
  6589  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  6590  	// action. This must be of the form:
  6591  	//
  6592  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  6593  	//
  6594  	// CertificateAuthorityArn is a required field
  6595  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  6596  
  6597  	// Use this parameter when paginating results to specify the maximum number
  6598  	// of items to return in the response. If additional items exist beyond the
  6599  	// number you specify, the NextToken element is sent in the response. Use this
  6600  	// NextToken value in a subsequent request to retrieve additional items.
  6601  	MaxResults *int64 `min:"1" type:"integer"`
  6602  
  6603  	// Use this parameter when paginating results in a subsequent request after
  6604  	// you receive a response with truncated results. Set it to the value of NextToken
  6605  	// from the response you just received.
  6606  	NextToken *string `min:"1" type:"string"`
  6607  }
  6608  
  6609  // String returns the string representation.
  6610  //
  6611  // API parameter values that are decorated as "sensitive" in the API will not
  6612  // be included in the string output. The member name will be present, but the
  6613  // value will be replaced with "sensitive".
  6614  func (s ListTagsInput) String() string {
  6615  	return awsutil.Prettify(s)
  6616  }
  6617  
  6618  // GoString returns the string representation.
  6619  //
  6620  // API parameter values that are decorated as "sensitive" in the API will not
  6621  // be included in the string output. The member name will be present, but the
  6622  // value will be replaced with "sensitive".
  6623  func (s ListTagsInput) GoString() string {
  6624  	return s.String()
  6625  }
  6626  
  6627  // Validate inspects the fields of the type to determine if they are valid.
  6628  func (s *ListTagsInput) Validate() error {
  6629  	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
  6630  	if s.CertificateAuthorityArn == nil {
  6631  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  6632  	}
  6633  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  6634  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  6635  	}
  6636  	if s.MaxResults != nil && *s.MaxResults < 1 {
  6637  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  6638  	}
  6639  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  6640  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  6641  	}
  6642  
  6643  	if invalidParams.Len() > 0 {
  6644  		return invalidParams
  6645  	}
  6646  	return nil
  6647  }
  6648  
  6649  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  6650  func (s *ListTagsInput) SetCertificateAuthorityArn(v string) *ListTagsInput {
  6651  	s.CertificateAuthorityArn = &v
  6652  	return s
  6653  }
  6654  
  6655  // SetMaxResults sets the MaxResults field's value.
  6656  func (s *ListTagsInput) SetMaxResults(v int64) *ListTagsInput {
  6657  	s.MaxResults = &v
  6658  	return s
  6659  }
  6660  
  6661  // SetNextToken sets the NextToken field's value.
  6662  func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput {
  6663  	s.NextToken = &v
  6664  	return s
  6665  }
  6666  
  6667  type ListTagsOutput struct {
  6668  	_ struct{} `type:"structure"`
  6669  
  6670  	// When the list is truncated, this value is present and should be used for
  6671  	// the NextToken parameter in a subsequent pagination request.
  6672  	NextToken *string `min:"1" type:"string"`
  6673  
  6674  	// The tags associated with your private CA.
  6675  	Tags []*Tag `min:"1" type:"list"`
  6676  }
  6677  
  6678  // String returns the string representation.
  6679  //
  6680  // API parameter values that are decorated as "sensitive" in the API will not
  6681  // be included in the string output. The member name will be present, but the
  6682  // value will be replaced with "sensitive".
  6683  func (s ListTagsOutput) String() string {
  6684  	return awsutil.Prettify(s)
  6685  }
  6686  
  6687  // GoString returns the string representation.
  6688  //
  6689  // API parameter values that are decorated as "sensitive" in the API will not
  6690  // be included in the string output. The member name will be present, but the
  6691  // value will be replaced with "sensitive".
  6692  func (s ListTagsOutput) GoString() string {
  6693  	return s.String()
  6694  }
  6695  
  6696  // SetNextToken sets the NextToken field's value.
  6697  func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput {
  6698  	s.NextToken = &v
  6699  	return s
  6700  }
  6701  
  6702  // SetTags sets the Tags field's value.
  6703  func (s *ListTagsOutput) SetTags(v []*Tag) *ListTagsOutput {
  6704  	s.Tags = v
  6705  	return s
  6706  }
  6707  
  6708  // The current action was prevented because it would lock the caller out from
  6709  // performing subsequent actions. Verify that the specified parameters would
  6710  // not result in the caller being denied access to the resource.
  6711  type LockoutPreventedException struct {
  6712  	_            struct{}                  `type:"structure"`
  6713  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6714  
  6715  	Message_ *string `locationName:"message" type:"string"`
  6716  }
  6717  
  6718  // String returns the string representation.
  6719  //
  6720  // API parameter values that are decorated as "sensitive" in the API will not
  6721  // be included in the string output. The member name will be present, but the
  6722  // value will be replaced with "sensitive".
  6723  func (s LockoutPreventedException) String() string {
  6724  	return awsutil.Prettify(s)
  6725  }
  6726  
  6727  // GoString returns the string representation.
  6728  //
  6729  // API parameter values that are decorated as "sensitive" in the API will not
  6730  // be included in the string output. The member name will be present, but the
  6731  // value will be replaced with "sensitive".
  6732  func (s LockoutPreventedException) GoString() string {
  6733  	return s.String()
  6734  }
  6735  
  6736  func newErrorLockoutPreventedException(v protocol.ResponseMetadata) error {
  6737  	return &LockoutPreventedException{
  6738  		RespMetadata: v,
  6739  	}
  6740  }
  6741  
  6742  // Code returns the exception type name.
  6743  func (s *LockoutPreventedException) Code() string {
  6744  	return "LockoutPreventedException"
  6745  }
  6746  
  6747  // Message returns the exception's message.
  6748  func (s *LockoutPreventedException) Message() string {
  6749  	if s.Message_ != nil {
  6750  		return *s.Message_
  6751  	}
  6752  	return ""
  6753  }
  6754  
  6755  // OrigErr always returns nil, satisfies awserr.Error interface.
  6756  func (s *LockoutPreventedException) OrigErr() error {
  6757  	return nil
  6758  }
  6759  
  6760  func (s *LockoutPreventedException) Error() string {
  6761  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6762  }
  6763  
  6764  // Status code returns the HTTP status code for the request's response error.
  6765  func (s *LockoutPreventedException) StatusCode() int {
  6766  	return s.RespMetadata.StatusCode
  6767  }
  6768  
  6769  // RequestID returns the service's response RequestID for request.
  6770  func (s *LockoutPreventedException) RequestID() string {
  6771  	return s.RespMetadata.RequestID
  6772  }
  6773  
  6774  // The certificate signing request is invalid.
  6775  type MalformedCSRException struct {
  6776  	_            struct{}                  `type:"structure"`
  6777  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6778  
  6779  	Message_ *string `locationName:"message" type:"string"`
  6780  }
  6781  
  6782  // String returns the string representation.
  6783  //
  6784  // API parameter values that are decorated as "sensitive" in the API will not
  6785  // be included in the string output. The member name will be present, but the
  6786  // value will be replaced with "sensitive".
  6787  func (s MalformedCSRException) String() string {
  6788  	return awsutil.Prettify(s)
  6789  }
  6790  
  6791  // GoString returns the string representation.
  6792  //
  6793  // API parameter values that are decorated as "sensitive" in the API will not
  6794  // be included in the string output. The member name will be present, but the
  6795  // value will be replaced with "sensitive".
  6796  func (s MalformedCSRException) GoString() string {
  6797  	return s.String()
  6798  }
  6799  
  6800  func newErrorMalformedCSRException(v protocol.ResponseMetadata) error {
  6801  	return &MalformedCSRException{
  6802  		RespMetadata: v,
  6803  	}
  6804  }
  6805  
  6806  // Code returns the exception type name.
  6807  func (s *MalformedCSRException) Code() string {
  6808  	return "MalformedCSRException"
  6809  }
  6810  
  6811  // Message returns the exception's message.
  6812  func (s *MalformedCSRException) Message() string {
  6813  	if s.Message_ != nil {
  6814  		return *s.Message_
  6815  	}
  6816  	return ""
  6817  }
  6818  
  6819  // OrigErr always returns nil, satisfies awserr.Error interface.
  6820  func (s *MalformedCSRException) OrigErr() error {
  6821  	return nil
  6822  }
  6823  
  6824  func (s *MalformedCSRException) Error() string {
  6825  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6826  }
  6827  
  6828  // Status code returns the HTTP status code for the request's response error.
  6829  func (s *MalformedCSRException) StatusCode() int {
  6830  	return s.RespMetadata.StatusCode
  6831  }
  6832  
  6833  // RequestID returns the service's response RequestID for request.
  6834  func (s *MalformedCSRException) RequestID() string {
  6835  	return s.RespMetadata.RequestID
  6836  }
  6837  
  6838  // One or more fields in the certificate are invalid.
  6839  type MalformedCertificateException struct {
  6840  	_            struct{}                  `type:"structure"`
  6841  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6842  
  6843  	Message_ *string `locationName:"message" type:"string"`
  6844  }
  6845  
  6846  // String returns the string representation.
  6847  //
  6848  // API parameter values that are decorated as "sensitive" in the API will not
  6849  // be included in the string output. The member name will be present, but the
  6850  // value will be replaced with "sensitive".
  6851  func (s MalformedCertificateException) String() string {
  6852  	return awsutil.Prettify(s)
  6853  }
  6854  
  6855  // GoString returns the string representation.
  6856  //
  6857  // API parameter values that are decorated as "sensitive" in the API will not
  6858  // be included in the string output. The member name will be present, but the
  6859  // value will be replaced with "sensitive".
  6860  func (s MalformedCertificateException) GoString() string {
  6861  	return s.String()
  6862  }
  6863  
  6864  func newErrorMalformedCertificateException(v protocol.ResponseMetadata) error {
  6865  	return &MalformedCertificateException{
  6866  		RespMetadata: v,
  6867  	}
  6868  }
  6869  
  6870  // Code returns the exception type name.
  6871  func (s *MalformedCertificateException) Code() string {
  6872  	return "MalformedCertificateException"
  6873  }
  6874  
  6875  // Message returns the exception's message.
  6876  func (s *MalformedCertificateException) Message() string {
  6877  	if s.Message_ != nil {
  6878  		return *s.Message_
  6879  	}
  6880  	return ""
  6881  }
  6882  
  6883  // OrigErr always returns nil, satisfies awserr.Error interface.
  6884  func (s *MalformedCertificateException) OrigErr() error {
  6885  	return nil
  6886  }
  6887  
  6888  func (s *MalformedCertificateException) Error() string {
  6889  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6890  }
  6891  
  6892  // Status code returns the HTTP status code for the request's response error.
  6893  func (s *MalformedCertificateException) StatusCode() int {
  6894  	return s.RespMetadata.StatusCode
  6895  }
  6896  
  6897  // RequestID returns the service's response RequestID for request.
  6898  func (s *MalformedCertificateException) RequestID() string {
  6899  	return s.RespMetadata.RequestID
  6900  }
  6901  
  6902  // Contains information to enable and configure Online Certificate Status Protocol
  6903  // (OCSP) for validating certificate revocation status.
  6904  //
  6905  // When you revoke a certificate, OCSP responses may take up to 60 minutes to
  6906  // reflect the new status.
  6907  type OcspConfiguration struct {
  6908  	_ struct{} `type:"structure"`
  6909  
  6910  	// Flag enabling use of the Online Certificate Status Protocol (OCSP) for validating
  6911  	// certificate revocation status.
  6912  	//
  6913  	// Enabled is a required field
  6914  	Enabled *bool `type:"boolean" required:"true"`
  6915  
  6916  	// By default, ACM Private CA injects an AWS domain into certificates being
  6917  	// validated by the Online Certificate Status Protocol (OCSP). A customer can
  6918  	// alternatively use this object to define a CNAME specifying a customized OCSP
  6919  	// domain.
  6920  	//
  6921  	// Note: The value of the CNAME must not include a protocol prefix such as "http://"
  6922  	// or "https://".
  6923  	//
  6924  	// For more information, see Customizing Online Certificate Status Protocol
  6925  	// (OCSP) (https://docs.aws.amazon.com/acm-pca/latest/userguide/ocsp-customize.html)
  6926  	// in the AWS Certificate Manager Private Certificate Authority (PCA) User Guide.
  6927  	OcspCustomCname *string `type:"string"`
  6928  }
  6929  
  6930  // String returns the string representation.
  6931  //
  6932  // API parameter values that are decorated as "sensitive" in the API will not
  6933  // be included in the string output. The member name will be present, but the
  6934  // value will be replaced with "sensitive".
  6935  func (s OcspConfiguration) String() string {
  6936  	return awsutil.Prettify(s)
  6937  }
  6938  
  6939  // GoString returns the string representation.
  6940  //
  6941  // API parameter values that are decorated as "sensitive" in the API will not
  6942  // be included in the string output. The member name will be present, but the
  6943  // value will be replaced with "sensitive".
  6944  func (s OcspConfiguration) GoString() string {
  6945  	return s.String()
  6946  }
  6947  
  6948  // Validate inspects the fields of the type to determine if they are valid.
  6949  func (s *OcspConfiguration) Validate() error {
  6950  	invalidParams := request.ErrInvalidParams{Context: "OcspConfiguration"}
  6951  	if s.Enabled == nil {
  6952  		invalidParams.Add(request.NewErrParamRequired("Enabled"))
  6953  	}
  6954  
  6955  	if invalidParams.Len() > 0 {
  6956  		return invalidParams
  6957  	}
  6958  	return nil
  6959  }
  6960  
  6961  // SetEnabled sets the Enabled field's value.
  6962  func (s *OcspConfiguration) SetEnabled(v bool) *OcspConfiguration {
  6963  	s.Enabled = &v
  6964  	return s
  6965  }
  6966  
  6967  // SetOcspCustomCname sets the OcspCustomCname field's value.
  6968  func (s *OcspConfiguration) SetOcspCustomCname(v string) *OcspConfiguration {
  6969  	s.OcspCustomCname = &v
  6970  	return s
  6971  }
  6972  
  6973  // Defines a custom ASN.1 X.400 GeneralName using an object identifier (OID)
  6974  // and value. The OID must satisfy the regular expression shown below. For more
  6975  // information, see NIST's definition of Object Identifier (OID) (https://csrc.nist.gov/glossary/term/Object_Identifier).
  6976  type OtherName struct {
  6977  	_ struct{} `type:"structure"`
  6978  
  6979  	// Specifies an OID.
  6980  	//
  6981  	// TypeId is a required field
  6982  	TypeId *string `type:"string" required:"true"`
  6983  
  6984  	// Specifies an OID value.
  6985  	//
  6986  	// Value is a required field
  6987  	Value *string `type:"string" required:"true"`
  6988  }
  6989  
  6990  // String returns the string representation.
  6991  //
  6992  // API parameter values that are decorated as "sensitive" in the API will not
  6993  // be included in the string output. The member name will be present, but the
  6994  // value will be replaced with "sensitive".
  6995  func (s OtherName) String() string {
  6996  	return awsutil.Prettify(s)
  6997  }
  6998  
  6999  // GoString returns the string representation.
  7000  //
  7001  // API parameter values that are decorated as "sensitive" in the API will not
  7002  // be included in the string output. The member name will be present, but the
  7003  // value will be replaced with "sensitive".
  7004  func (s OtherName) GoString() string {
  7005  	return s.String()
  7006  }
  7007  
  7008  // Validate inspects the fields of the type to determine if they are valid.
  7009  func (s *OtherName) Validate() error {
  7010  	invalidParams := request.ErrInvalidParams{Context: "OtherName"}
  7011  	if s.TypeId == nil {
  7012  		invalidParams.Add(request.NewErrParamRequired("TypeId"))
  7013  	}
  7014  	if s.Value == nil {
  7015  		invalidParams.Add(request.NewErrParamRequired("Value"))
  7016  	}
  7017  
  7018  	if invalidParams.Len() > 0 {
  7019  		return invalidParams
  7020  	}
  7021  	return nil
  7022  }
  7023  
  7024  // SetTypeId sets the TypeId field's value.
  7025  func (s *OtherName) SetTypeId(v string) *OtherName {
  7026  	s.TypeId = &v
  7027  	return s
  7028  }
  7029  
  7030  // SetValue sets the Value field's value.
  7031  func (s *OtherName) SetValue(v string) *OtherName {
  7032  	s.Value = &v
  7033  	return s
  7034  }
  7035  
  7036  // Permissions designate which private CA actions can be performed by an AWS
  7037  // service or entity. In order for ACM to automatically renew private certificates,
  7038  // you must give the ACM service principal all available permissions (IssueCertificate,
  7039  // GetCertificate, and ListPermissions). Permissions can be assigned with the
  7040  // CreatePermission (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreatePermission.html)
  7041  // action, removed with the DeletePermission (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_DeletePermission.html)
  7042  // action, and listed with the ListPermissions (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListPermissions.html)
  7043  // action.
  7044  type Permission struct {
  7045  	_ struct{} `type:"structure"`
  7046  
  7047  	// The private CA actions that can be performed by the designated AWS service.
  7048  	Actions []*string `min:"1" type:"list"`
  7049  
  7050  	// The Amazon Resource Number (ARN) of the private CA from which the permission
  7051  	// was issued.
  7052  	CertificateAuthorityArn *string `min:"5" type:"string"`
  7053  
  7054  	// The time at which the permission was created.
  7055  	CreatedAt *time.Time `type:"timestamp"`
  7056  
  7057  	// The name of the policy that is associated with the permission.
  7058  	Policy *string `min:"1" type:"string"`
  7059  
  7060  	// The AWS service or entity that holds the permission. At this time, the only
  7061  	// valid principal is acm.amazonaws.com.
  7062  	Principal *string `type:"string"`
  7063  
  7064  	// The ID of the account that assigned the permission.
  7065  	SourceAccount *string `min:"12" type:"string"`
  7066  }
  7067  
  7068  // String returns the string representation.
  7069  //
  7070  // API parameter values that are decorated as "sensitive" in the API will not
  7071  // be included in the string output. The member name will be present, but the
  7072  // value will be replaced with "sensitive".
  7073  func (s Permission) String() string {
  7074  	return awsutil.Prettify(s)
  7075  }
  7076  
  7077  // GoString returns the string representation.
  7078  //
  7079  // API parameter values that are decorated as "sensitive" in the API will not
  7080  // be included in the string output. The member name will be present, but the
  7081  // value will be replaced with "sensitive".
  7082  func (s Permission) GoString() string {
  7083  	return s.String()
  7084  }
  7085  
  7086  // SetActions sets the Actions field's value.
  7087  func (s *Permission) SetActions(v []*string) *Permission {
  7088  	s.Actions = v
  7089  	return s
  7090  }
  7091  
  7092  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  7093  func (s *Permission) SetCertificateAuthorityArn(v string) *Permission {
  7094  	s.CertificateAuthorityArn = &v
  7095  	return s
  7096  }
  7097  
  7098  // SetCreatedAt sets the CreatedAt field's value.
  7099  func (s *Permission) SetCreatedAt(v time.Time) *Permission {
  7100  	s.CreatedAt = &v
  7101  	return s
  7102  }
  7103  
  7104  // SetPolicy sets the Policy field's value.
  7105  func (s *Permission) SetPolicy(v string) *Permission {
  7106  	s.Policy = &v
  7107  	return s
  7108  }
  7109  
  7110  // SetPrincipal sets the Principal field's value.
  7111  func (s *Permission) SetPrincipal(v string) *Permission {
  7112  	s.Principal = &v
  7113  	return s
  7114  }
  7115  
  7116  // SetSourceAccount sets the SourceAccount field's value.
  7117  func (s *Permission) SetSourceAccount(v string) *Permission {
  7118  	s.SourceAccount = &v
  7119  	return s
  7120  }
  7121  
  7122  // The designated permission has already been given to the user.
  7123  type PermissionAlreadyExistsException struct {
  7124  	_            struct{}                  `type:"structure"`
  7125  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7126  
  7127  	Message_ *string `locationName:"message" type:"string"`
  7128  }
  7129  
  7130  // String returns the string representation.
  7131  //
  7132  // API parameter values that are decorated as "sensitive" in the API will not
  7133  // be included in the string output. The member name will be present, but the
  7134  // value will be replaced with "sensitive".
  7135  func (s PermissionAlreadyExistsException) String() string {
  7136  	return awsutil.Prettify(s)
  7137  }
  7138  
  7139  // GoString returns the string representation.
  7140  //
  7141  // API parameter values that are decorated as "sensitive" in the API will not
  7142  // be included in the string output. The member name will be present, but the
  7143  // value will be replaced with "sensitive".
  7144  func (s PermissionAlreadyExistsException) GoString() string {
  7145  	return s.String()
  7146  }
  7147  
  7148  func newErrorPermissionAlreadyExistsException(v protocol.ResponseMetadata) error {
  7149  	return &PermissionAlreadyExistsException{
  7150  		RespMetadata: v,
  7151  	}
  7152  }
  7153  
  7154  // Code returns the exception type name.
  7155  func (s *PermissionAlreadyExistsException) Code() string {
  7156  	return "PermissionAlreadyExistsException"
  7157  }
  7158  
  7159  // Message returns the exception's message.
  7160  func (s *PermissionAlreadyExistsException) Message() string {
  7161  	if s.Message_ != nil {
  7162  		return *s.Message_
  7163  	}
  7164  	return ""
  7165  }
  7166  
  7167  // OrigErr always returns nil, satisfies awserr.Error interface.
  7168  func (s *PermissionAlreadyExistsException) OrigErr() error {
  7169  	return nil
  7170  }
  7171  
  7172  func (s *PermissionAlreadyExistsException) Error() string {
  7173  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7174  }
  7175  
  7176  // Status code returns the HTTP status code for the request's response error.
  7177  func (s *PermissionAlreadyExistsException) StatusCode() int {
  7178  	return s.RespMetadata.StatusCode
  7179  }
  7180  
  7181  // RequestID returns the service's response RequestID for request.
  7182  func (s *PermissionAlreadyExistsException) RequestID() string {
  7183  	return s.RespMetadata.RequestID
  7184  }
  7185  
  7186  // Defines the X.509 CertificatePolicies extension.
  7187  type PolicyInformation struct {
  7188  	_ struct{} `type:"structure"`
  7189  
  7190  	// Specifies the object identifier (OID) of the certificate policy under which
  7191  	// the certificate was issued. For more information, see NIST's definition of
  7192  	// Object Identifier (OID) (https://csrc.nist.gov/glossary/term/Object_Identifier).
  7193  	//
  7194  	// CertPolicyId is a required field
  7195  	CertPolicyId *string `type:"string" required:"true"`
  7196  
  7197  	// Modifies the given CertPolicyId with a qualifier. ACM Private CA supports
  7198  	// the certification practice statement (CPS) qualifier.
  7199  	PolicyQualifiers []*PolicyQualifierInfo `min:"1" type:"list"`
  7200  }
  7201  
  7202  // String returns the string representation.
  7203  //
  7204  // API parameter values that are decorated as "sensitive" in the API will not
  7205  // be included in the string output. The member name will be present, but the
  7206  // value will be replaced with "sensitive".
  7207  func (s PolicyInformation) String() string {
  7208  	return awsutil.Prettify(s)
  7209  }
  7210  
  7211  // GoString returns the string representation.
  7212  //
  7213  // API parameter values that are decorated as "sensitive" in the API will not
  7214  // be included in the string output. The member name will be present, but the
  7215  // value will be replaced with "sensitive".
  7216  func (s PolicyInformation) GoString() string {
  7217  	return s.String()
  7218  }
  7219  
  7220  // Validate inspects the fields of the type to determine if they are valid.
  7221  func (s *PolicyInformation) Validate() error {
  7222  	invalidParams := request.ErrInvalidParams{Context: "PolicyInformation"}
  7223  	if s.CertPolicyId == nil {
  7224  		invalidParams.Add(request.NewErrParamRequired("CertPolicyId"))
  7225  	}
  7226  	if s.PolicyQualifiers != nil && len(s.PolicyQualifiers) < 1 {
  7227  		invalidParams.Add(request.NewErrParamMinLen("PolicyQualifiers", 1))
  7228  	}
  7229  	if s.PolicyQualifiers != nil {
  7230  		for i, v := range s.PolicyQualifiers {
  7231  			if v == nil {
  7232  				continue
  7233  			}
  7234  			if err := v.Validate(); err != nil {
  7235  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PolicyQualifiers", i), err.(request.ErrInvalidParams))
  7236  			}
  7237  		}
  7238  	}
  7239  
  7240  	if invalidParams.Len() > 0 {
  7241  		return invalidParams
  7242  	}
  7243  	return nil
  7244  }
  7245  
  7246  // SetCertPolicyId sets the CertPolicyId field's value.
  7247  func (s *PolicyInformation) SetCertPolicyId(v string) *PolicyInformation {
  7248  	s.CertPolicyId = &v
  7249  	return s
  7250  }
  7251  
  7252  // SetPolicyQualifiers sets the PolicyQualifiers field's value.
  7253  func (s *PolicyInformation) SetPolicyQualifiers(v []*PolicyQualifierInfo) *PolicyInformation {
  7254  	s.PolicyQualifiers = v
  7255  	return s
  7256  }
  7257  
  7258  // Modifies the CertPolicyId of a PolicyInformation object with a qualifier.
  7259  // ACM Private CA supports the certification practice statement (CPS) qualifier.
  7260  type PolicyQualifierInfo struct {
  7261  	_ struct{} `type:"structure"`
  7262  
  7263  	// Identifies the qualifier modifying a CertPolicyId.
  7264  	//
  7265  	// PolicyQualifierId is a required field
  7266  	PolicyQualifierId *string `type:"string" required:"true" enum:"PolicyQualifierId"`
  7267  
  7268  	// Defines the qualifier type. ACM Private CA supports the use of a URI for
  7269  	// a CPS qualifier in this field.
  7270  	//
  7271  	// Qualifier is a required field
  7272  	Qualifier *Qualifier `type:"structure" required:"true"`
  7273  }
  7274  
  7275  // String returns the string representation.
  7276  //
  7277  // API parameter values that are decorated as "sensitive" in the API will not
  7278  // be included in the string output. The member name will be present, but the
  7279  // value will be replaced with "sensitive".
  7280  func (s PolicyQualifierInfo) String() string {
  7281  	return awsutil.Prettify(s)
  7282  }
  7283  
  7284  // GoString returns the string representation.
  7285  //
  7286  // API parameter values that are decorated as "sensitive" in the API will not
  7287  // be included in the string output. The member name will be present, but the
  7288  // value will be replaced with "sensitive".
  7289  func (s PolicyQualifierInfo) GoString() string {
  7290  	return s.String()
  7291  }
  7292  
  7293  // Validate inspects the fields of the type to determine if they are valid.
  7294  func (s *PolicyQualifierInfo) Validate() error {
  7295  	invalidParams := request.ErrInvalidParams{Context: "PolicyQualifierInfo"}
  7296  	if s.PolicyQualifierId == nil {
  7297  		invalidParams.Add(request.NewErrParamRequired("PolicyQualifierId"))
  7298  	}
  7299  	if s.Qualifier == nil {
  7300  		invalidParams.Add(request.NewErrParamRequired("Qualifier"))
  7301  	}
  7302  	if s.Qualifier != nil {
  7303  		if err := s.Qualifier.Validate(); err != nil {
  7304  			invalidParams.AddNested("Qualifier", err.(request.ErrInvalidParams))
  7305  		}
  7306  	}
  7307  
  7308  	if invalidParams.Len() > 0 {
  7309  		return invalidParams
  7310  	}
  7311  	return nil
  7312  }
  7313  
  7314  // SetPolicyQualifierId sets the PolicyQualifierId field's value.
  7315  func (s *PolicyQualifierInfo) SetPolicyQualifierId(v string) *PolicyQualifierInfo {
  7316  	s.PolicyQualifierId = &v
  7317  	return s
  7318  }
  7319  
  7320  // SetQualifier sets the Qualifier field's value.
  7321  func (s *PolicyQualifierInfo) SetQualifier(v *Qualifier) *PolicyQualifierInfo {
  7322  	s.Qualifier = v
  7323  	return s
  7324  }
  7325  
  7326  type PutPolicyInput struct {
  7327  	_ struct{} `type:"structure"`
  7328  
  7329  	// The path and file name of a JSON-formatted IAM policy to attach to the specified
  7330  	// private CA resource. If this policy does not contain all required statements
  7331  	// or if it includes any statement that is not allowed, the PutPolicy action
  7332  	// returns an InvalidPolicyException. For information about IAM policy and statement
  7333  	// structure, see Overview of JSON Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json).
  7334  	//
  7335  	// Policy is a required field
  7336  	Policy *string `min:"1" type:"string" required:"true"`
  7337  
  7338  	// The Amazon Resource Number (ARN) of the private CA to associate with the
  7339  	// policy. The ARN of the CA can be found by calling the ListCertificateAuthorities
  7340  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_ListCertificateAuthorities.html)
  7341  	// action.
  7342  	//
  7343  	// ResourceArn is a required field
  7344  	ResourceArn *string `min:"5" type:"string" required:"true"`
  7345  }
  7346  
  7347  // String returns the string representation.
  7348  //
  7349  // API parameter values that are decorated as "sensitive" in the API will not
  7350  // be included in the string output. The member name will be present, but the
  7351  // value will be replaced with "sensitive".
  7352  func (s PutPolicyInput) String() string {
  7353  	return awsutil.Prettify(s)
  7354  }
  7355  
  7356  // GoString returns the string representation.
  7357  //
  7358  // API parameter values that are decorated as "sensitive" in the API will not
  7359  // be included in the string output. The member name will be present, but the
  7360  // value will be replaced with "sensitive".
  7361  func (s PutPolicyInput) GoString() string {
  7362  	return s.String()
  7363  }
  7364  
  7365  // Validate inspects the fields of the type to determine if they are valid.
  7366  func (s *PutPolicyInput) Validate() error {
  7367  	invalidParams := request.ErrInvalidParams{Context: "PutPolicyInput"}
  7368  	if s.Policy == nil {
  7369  		invalidParams.Add(request.NewErrParamRequired("Policy"))
  7370  	}
  7371  	if s.Policy != nil && len(*s.Policy) < 1 {
  7372  		invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
  7373  	}
  7374  	if s.ResourceArn == nil {
  7375  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  7376  	}
  7377  	if s.ResourceArn != nil && len(*s.ResourceArn) < 5 {
  7378  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 5))
  7379  	}
  7380  
  7381  	if invalidParams.Len() > 0 {
  7382  		return invalidParams
  7383  	}
  7384  	return nil
  7385  }
  7386  
  7387  // SetPolicy sets the Policy field's value.
  7388  func (s *PutPolicyInput) SetPolicy(v string) *PutPolicyInput {
  7389  	s.Policy = &v
  7390  	return s
  7391  }
  7392  
  7393  // SetResourceArn sets the ResourceArn field's value.
  7394  func (s *PutPolicyInput) SetResourceArn(v string) *PutPolicyInput {
  7395  	s.ResourceArn = &v
  7396  	return s
  7397  }
  7398  
  7399  type PutPolicyOutput struct {
  7400  	_ struct{} `type:"structure"`
  7401  }
  7402  
  7403  // String returns the string representation.
  7404  //
  7405  // API parameter values that are decorated as "sensitive" in the API will not
  7406  // be included in the string output. The member name will be present, but the
  7407  // value will be replaced with "sensitive".
  7408  func (s PutPolicyOutput) String() string {
  7409  	return awsutil.Prettify(s)
  7410  }
  7411  
  7412  // GoString returns the string representation.
  7413  //
  7414  // API parameter values that are decorated as "sensitive" in the API will not
  7415  // be included in the string output. The member name will be present, but the
  7416  // value will be replaced with "sensitive".
  7417  func (s PutPolicyOutput) GoString() string {
  7418  	return s.String()
  7419  }
  7420  
  7421  // Defines a PolicyInformation qualifier. ACM Private CA supports the certification
  7422  // practice statement (CPS) qualifier (https://tools.ietf.org/html/rfc5280#section-4.2.1.4)
  7423  // defined in RFC 5280.
  7424  type Qualifier struct {
  7425  	_ struct{} `type:"structure"`
  7426  
  7427  	// Contains a pointer to a certification practice statement (CPS) published
  7428  	// by the CA.
  7429  	//
  7430  	// CpsUri is a required field
  7431  	CpsUri *string `type:"string" required:"true"`
  7432  }
  7433  
  7434  // String returns the string representation.
  7435  //
  7436  // API parameter values that are decorated as "sensitive" in the API will not
  7437  // be included in the string output. The member name will be present, but the
  7438  // value will be replaced with "sensitive".
  7439  func (s Qualifier) String() string {
  7440  	return awsutil.Prettify(s)
  7441  }
  7442  
  7443  // GoString returns the string representation.
  7444  //
  7445  // API parameter values that are decorated as "sensitive" in the API will not
  7446  // be included in the string output. The member name will be present, but the
  7447  // value will be replaced with "sensitive".
  7448  func (s Qualifier) GoString() string {
  7449  	return s.String()
  7450  }
  7451  
  7452  // Validate inspects the fields of the type to determine if they are valid.
  7453  func (s *Qualifier) Validate() error {
  7454  	invalidParams := request.ErrInvalidParams{Context: "Qualifier"}
  7455  	if s.CpsUri == nil {
  7456  		invalidParams.Add(request.NewErrParamRequired("CpsUri"))
  7457  	}
  7458  
  7459  	if invalidParams.Len() > 0 {
  7460  		return invalidParams
  7461  	}
  7462  	return nil
  7463  }
  7464  
  7465  // SetCpsUri sets the CpsUri field's value.
  7466  func (s *Qualifier) SetCpsUri(v string) *Qualifier {
  7467  	s.CpsUri = &v
  7468  	return s
  7469  }
  7470  
  7471  // Your request has already been completed.
  7472  type RequestAlreadyProcessedException struct {
  7473  	_            struct{}                  `type:"structure"`
  7474  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7475  
  7476  	Message_ *string `locationName:"message" type:"string"`
  7477  }
  7478  
  7479  // String returns the string representation.
  7480  //
  7481  // API parameter values that are decorated as "sensitive" in the API will not
  7482  // be included in the string output. The member name will be present, but the
  7483  // value will be replaced with "sensitive".
  7484  func (s RequestAlreadyProcessedException) String() string {
  7485  	return awsutil.Prettify(s)
  7486  }
  7487  
  7488  // GoString returns the string representation.
  7489  //
  7490  // API parameter values that are decorated as "sensitive" in the API will not
  7491  // be included in the string output. The member name will be present, but the
  7492  // value will be replaced with "sensitive".
  7493  func (s RequestAlreadyProcessedException) GoString() string {
  7494  	return s.String()
  7495  }
  7496  
  7497  func newErrorRequestAlreadyProcessedException(v protocol.ResponseMetadata) error {
  7498  	return &RequestAlreadyProcessedException{
  7499  		RespMetadata: v,
  7500  	}
  7501  }
  7502  
  7503  // Code returns the exception type name.
  7504  func (s *RequestAlreadyProcessedException) Code() string {
  7505  	return "RequestAlreadyProcessedException"
  7506  }
  7507  
  7508  // Message returns the exception's message.
  7509  func (s *RequestAlreadyProcessedException) Message() string {
  7510  	if s.Message_ != nil {
  7511  		return *s.Message_
  7512  	}
  7513  	return ""
  7514  }
  7515  
  7516  // OrigErr always returns nil, satisfies awserr.Error interface.
  7517  func (s *RequestAlreadyProcessedException) OrigErr() error {
  7518  	return nil
  7519  }
  7520  
  7521  func (s *RequestAlreadyProcessedException) Error() string {
  7522  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7523  }
  7524  
  7525  // Status code returns the HTTP status code for the request's response error.
  7526  func (s *RequestAlreadyProcessedException) StatusCode() int {
  7527  	return s.RespMetadata.StatusCode
  7528  }
  7529  
  7530  // RequestID returns the service's response RequestID for request.
  7531  func (s *RequestAlreadyProcessedException) RequestID() string {
  7532  	return s.RespMetadata.RequestID
  7533  }
  7534  
  7535  // The request has failed for an unspecified reason.
  7536  type RequestFailedException struct {
  7537  	_            struct{}                  `type:"structure"`
  7538  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7539  
  7540  	Message_ *string `locationName:"message" type:"string"`
  7541  }
  7542  
  7543  // String returns the string representation.
  7544  //
  7545  // API parameter values that are decorated as "sensitive" in the API will not
  7546  // be included in the string output. The member name will be present, but the
  7547  // value will be replaced with "sensitive".
  7548  func (s RequestFailedException) String() string {
  7549  	return awsutil.Prettify(s)
  7550  }
  7551  
  7552  // GoString returns the string representation.
  7553  //
  7554  // API parameter values that are decorated as "sensitive" in the API will not
  7555  // be included in the string output. The member name will be present, but the
  7556  // value will be replaced with "sensitive".
  7557  func (s RequestFailedException) GoString() string {
  7558  	return s.String()
  7559  }
  7560  
  7561  func newErrorRequestFailedException(v protocol.ResponseMetadata) error {
  7562  	return &RequestFailedException{
  7563  		RespMetadata: v,
  7564  	}
  7565  }
  7566  
  7567  // Code returns the exception type name.
  7568  func (s *RequestFailedException) Code() string {
  7569  	return "RequestFailedException"
  7570  }
  7571  
  7572  // Message returns the exception's message.
  7573  func (s *RequestFailedException) Message() string {
  7574  	if s.Message_ != nil {
  7575  		return *s.Message_
  7576  	}
  7577  	return ""
  7578  }
  7579  
  7580  // OrigErr always returns nil, satisfies awserr.Error interface.
  7581  func (s *RequestFailedException) OrigErr() error {
  7582  	return nil
  7583  }
  7584  
  7585  func (s *RequestFailedException) Error() string {
  7586  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7587  }
  7588  
  7589  // Status code returns the HTTP status code for the request's response error.
  7590  func (s *RequestFailedException) StatusCode() int {
  7591  	return s.RespMetadata.StatusCode
  7592  }
  7593  
  7594  // RequestID returns the service's response RequestID for request.
  7595  func (s *RequestFailedException) RequestID() string {
  7596  	return s.RespMetadata.RequestID
  7597  }
  7598  
  7599  // Your request is already in progress.
  7600  type RequestInProgressException struct {
  7601  	_            struct{}                  `type:"structure"`
  7602  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7603  
  7604  	Message_ *string `locationName:"message" type:"string"`
  7605  }
  7606  
  7607  // String returns the string representation.
  7608  //
  7609  // API parameter values that are decorated as "sensitive" in the API will not
  7610  // be included in the string output. The member name will be present, but the
  7611  // value will be replaced with "sensitive".
  7612  func (s RequestInProgressException) String() string {
  7613  	return awsutil.Prettify(s)
  7614  }
  7615  
  7616  // GoString returns the string representation.
  7617  //
  7618  // API parameter values that are decorated as "sensitive" in the API will not
  7619  // be included in the string output. The member name will be present, but the
  7620  // value will be replaced with "sensitive".
  7621  func (s RequestInProgressException) GoString() string {
  7622  	return s.String()
  7623  }
  7624  
  7625  func newErrorRequestInProgressException(v protocol.ResponseMetadata) error {
  7626  	return &RequestInProgressException{
  7627  		RespMetadata: v,
  7628  	}
  7629  }
  7630  
  7631  // Code returns the exception type name.
  7632  func (s *RequestInProgressException) Code() string {
  7633  	return "RequestInProgressException"
  7634  }
  7635  
  7636  // Message returns the exception's message.
  7637  func (s *RequestInProgressException) Message() string {
  7638  	if s.Message_ != nil {
  7639  		return *s.Message_
  7640  	}
  7641  	return ""
  7642  }
  7643  
  7644  // OrigErr always returns nil, satisfies awserr.Error interface.
  7645  func (s *RequestInProgressException) OrigErr() error {
  7646  	return nil
  7647  }
  7648  
  7649  func (s *RequestInProgressException) Error() string {
  7650  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7651  }
  7652  
  7653  // Status code returns the HTTP status code for the request's response error.
  7654  func (s *RequestInProgressException) StatusCode() int {
  7655  	return s.RespMetadata.StatusCode
  7656  }
  7657  
  7658  // RequestID returns the service's response RequestID for request.
  7659  func (s *RequestInProgressException) RequestID() string {
  7660  	return s.RespMetadata.RequestID
  7661  }
  7662  
  7663  // A resource such as a private CA, S3 bucket, certificate, audit report, or
  7664  // policy cannot be found.
  7665  type ResourceNotFoundException struct {
  7666  	_            struct{}                  `type:"structure"`
  7667  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7668  
  7669  	Message_ *string `locationName:"message" type:"string"`
  7670  }
  7671  
  7672  // String returns the string representation.
  7673  //
  7674  // API parameter values that are decorated as "sensitive" in the API will not
  7675  // be included in the string output. The member name will be present, but the
  7676  // value will be replaced with "sensitive".
  7677  func (s ResourceNotFoundException) String() string {
  7678  	return awsutil.Prettify(s)
  7679  }
  7680  
  7681  // GoString returns the string representation.
  7682  //
  7683  // API parameter values that are decorated as "sensitive" in the API will not
  7684  // be included in the string output. The member name will be present, but the
  7685  // value will be replaced with "sensitive".
  7686  func (s ResourceNotFoundException) GoString() string {
  7687  	return s.String()
  7688  }
  7689  
  7690  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  7691  	return &ResourceNotFoundException{
  7692  		RespMetadata: v,
  7693  	}
  7694  }
  7695  
  7696  // Code returns the exception type name.
  7697  func (s *ResourceNotFoundException) Code() string {
  7698  	return "ResourceNotFoundException"
  7699  }
  7700  
  7701  // Message returns the exception's message.
  7702  func (s *ResourceNotFoundException) Message() string {
  7703  	if s.Message_ != nil {
  7704  		return *s.Message_
  7705  	}
  7706  	return ""
  7707  }
  7708  
  7709  // OrigErr always returns nil, satisfies awserr.Error interface.
  7710  func (s *ResourceNotFoundException) OrigErr() error {
  7711  	return nil
  7712  }
  7713  
  7714  func (s *ResourceNotFoundException) Error() string {
  7715  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7716  }
  7717  
  7718  // Status code returns the HTTP status code for the request's response error.
  7719  func (s *ResourceNotFoundException) StatusCode() int {
  7720  	return s.RespMetadata.StatusCode
  7721  }
  7722  
  7723  // RequestID returns the service's response RequestID for request.
  7724  func (s *ResourceNotFoundException) RequestID() string {
  7725  	return s.RespMetadata.RequestID
  7726  }
  7727  
  7728  type RestoreCertificateAuthorityInput struct {
  7729  	_ struct{} `type:"structure"`
  7730  
  7731  	// The Amazon Resource Name (ARN) that was returned when you called the CreateCertificateAuthority
  7732  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  7733  	// action. This must be of the form:
  7734  	//
  7735  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  7736  	//
  7737  	// CertificateAuthorityArn is a required field
  7738  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  7739  }
  7740  
  7741  // String returns the string representation.
  7742  //
  7743  // API parameter values that are decorated as "sensitive" in the API will not
  7744  // be included in the string output. The member name will be present, but the
  7745  // value will be replaced with "sensitive".
  7746  func (s RestoreCertificateAuthorityInput) String() string {
  7747  	return awsutil.Prettify(s)
  7748  }
  7749  
  7750  // GoString returns the string representation.
  7751  //
  7752  // API parameter values that are decorated as "sensitive" in the API will not
  7753  // be included in the string output. The member name will be present, but the
  7754  // value will be replaced with "sensitive".
  7755  func (s RestoreCertificateAuthorityInput) GoString() string {
  7756  	return s.String()
  7757  }
  7758  
  7759  // Validate inspects the fields of the type to determine if they are valid.
  7760  func (s *RestoreCertificateAuthorityInput) Validate() error {
  7761  	invalidParams := request.ErrInvalidParams{Context: "RestoreCertificateAuthorityInput"}
  7762  	if s.CertificateAuthorityArn == nil {
  7763  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  7764  	}
  7765  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  7766  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  7767  	}
  7768  
  7769  	if invalidParams.Len() > 0 {
  7770  		return invalidParams
  7771  	}
  7772  	return nil
  7773  }
  7774  
  7775  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  7776  func (s *RestoreCertificateAuthorityInput) SetCertificateAuthorityArn(v string) *RestoreCertificateAuthorityInput {
  7777  	s.CertificateAuthorityArn = &v
  7778  	return s
  7779  }
  7780  
  7781  type RestoreCertificateAuthorityOutput struct {
  7782  	_ struct{} `type:"structure"`
  7783  }
  7784  
  7785  // String returns the string representation.
  7786  //
  7787  // API parameter values that are decorated as "sensitive" in the API will not
  7788  // be included in the string output. The member name will be present, but the
  7789  // value will be replaced with "sensitive".
  7790  func (s RestoreCertificateAuthorityOutput) String() string {
  7791  	return awsutil.Prettify(s)
  7792  }
  7793  
  7794  // GoString returns the string representation.
  7795  //
  7796  // API parameter values that are decorated as "sensitive" in the API will not
  7797  // be included in the string output. The member name will be present, but the
  7798  // value will be replaced with "sensitive".
  7799  func (s RestoreCertificateAuthorityOutput) GoString() string {
  7800  	return s.String()
  7801  }
  7802  
  7803  // Certificate revocation information used by the CreateCertificateAuthority
  7804  // (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html)
  7805  // and UpdateCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UpdateCertificateAuthority.html)
  7806  // actions. Your private certificate authority (CA) can configure Online Certificate
  7807  // Status Protocol (OCSP) support and/or maintain a certificate revocation list
  7808  // (CRL). OCSP returns validation information about certificates as requested
  7809  // by clients, and a CRL contains an updated list of certificates revoked by
  7810  // your CA. For more information, see RevokeCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_RevokeCertificate.html)
  7811  // and Setting up a certificate revocation method (https://docs.aws.amazon.com/acm-pca/latest/userguide/revocation-setup.html)
  7812  // in the AWS Certificate Manager Private Certificate Authority (PCA) User Guide.
  7813  type RevocationConfiguration struct {
  7814  	_ struct{} `type:"structure"`
  7815  
  7816  	// Configuration of the certificate revocation list (CRL), if any, maintained
  7817  	// by your private CA. A CRL is typically updated approximately 30 minutes after
  7818  	// a certificate is revoked. If for any reason a CRL update fails, ACM Private
  7819  	// CA makes further attempts every 15 minutes.
  7820  	CrlConfiguration *CrlConfiguration `type:"structure"`
  7821  
  7822  	// Configuration of Online Certificate Status Protocol (OCSP) support, if any,
  7823  	// maintained by your private CA. When you revoke a certificate, OCSP responses
  7824  	// may take up to 60 minutes to reflect the new status.
  7825  	OcspConfiguration *OcspConfiguration `type:"structure"`
  7826  }
  7827  
  7828  // String returns the string representation.
  7829  //
  7830  // API parameter values that are decorated as "sensitive" in the API will not
  7831  // be included in the string output. The member name will be present, but the
  7832  // value will be replaced with "sensitive".
  7833  func (s RevocationConfiguration) String() string {
  7834  	return awsutil.Prettify(s)
  7835  }
  7836  
  7837  // GoString returns the string representation.
  7838  //
  7839  // API parameter values that are decorated as "sensitive" in the API will not
  7840  // be included in the string output. The member name will be present, but the
  7841  // value will be replaced with "sensitive".
  7842  func (s RevocationConfiguration) GoString() string {
  7843  	return s.String()
  7844  }
  7845  
  7846  // Validate inspects the fields of the type to determine if they are valid.
  7847  func (s *RevocationConfiguration) Validate() error {
  7848  	invalidParams := request.ErrInvalidParams{Context: "RevocationConfiguration"}
  7849  	if s.CrlConfiguration != nil {
  7850  		if err := s.CrlConfiguration.Validate(); err != nil {
  7851  			invalidParams.AddNested("CrlConfiguration", err.(request.ErrInvalidParams))
  7852  		}
  7853  	}
  7854  	if s.OcspConfiguration != nil {
  7855  		if err := s.OcspConfiguration.Validate(); err != nil {
  7856  			invalidParams.AddNested("OcspConfiguration", err.(request.ErrInvalidParams))
  7857  		}
  7858  	}
  7859  
  7860  	if invalidParams.Len() > 0 {
  7861  		return invalidParams
  7862  	}
  7863  	return nil
  7864  }
  7865  
  7866  // SetCrlConfiguration sets the CrlConfiguration field's value.
  7867  func (s *RevocationConfiguration) SetCrlConfiguration(v *CrlConfiguration) *RevocationConfiguration {
  7868  	s.CrlConfiguration = v
  7869  	return s
  7870  }
  7871  
  7872  // SetOcspConfiguration sets the OcspConfiguration field's value.
  7873  func (s *RevocationConfiguration) SetOcspConfiguration(v *OcspConfiguration) *RevocationConfiguration {
  7874  	s.OcspConfiguration = v
  7875  	return s
  7876  }
  7877  
  7878  type RevokeCertificateInput struct {
  7879  	_ struct{} `type:"structure"`
  7880  
  7881  	// Amazon Resource Name (ARN) of the private CA that issued the certificate
  7882  	// to be revoked. This must be of the form:
  7883  	//
  7884  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  7885  	//
  7886  	// CertificateAuthorityArn is a required field
  7887  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  7888  
  7889  	// Serial number of the certificate to be revoked. This must be in hexadecimal
  7890  	// format. You can retrieve the serial number by calling GetCertificate (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_GetCertificate.html)
  7891  	// with the Amazon Resource Name (ARN) of the certificate you want and the ARN
  7892  	// of your private CA. The GetCertificate action retrieves the certificate in
  7893  	// the PEM format. You can use the following OpenSSL command to list the certificate
  7894  	// in text format and copy the hexadecimal serial number.
  7895  	//
  7896  	// openssl x509 -in file_path -text -noout
  7897  	//
  7898  	// You can also copy the serial number from the console or use the DescribeCertificate
  7899  	// (https://docs.aws.amazon.com/acm/latest/APIReference/API_DescribeCertificate.html)
  7900  	// action in the AWS Certificate Manager API Reference.
  7901  	//
  7902  	// CertificateSerial is a required field
  7903  	CertificateSerial *string `type:"string" required:"true"`
  7904  
  7905  	// Specifies why you revoked the certificate.
  7906  	//
  7907  	// RevocationReason is a required field
  7908  	RevocationReason *string `type:"string" required:"true" enum:"RevocationReason"`
  7909  }
  7910  
  7911  // String returns the string representation.
  7912  //
  7913  // API parameter values that are decorated as "sensitive" in the API will not
  7914  // be included in the string output. The member name will be present, but the
  7915  // value will be replaced with "sensitive".
  7916  func (s RevokeCertificateInput) String() string {
  7917  	return awsutil.Prettify(s)
  7918  }
  7919  
  7920  // GoString returns the string representation.
  7921  //
  7922  // API parameter values that are decorated as "sensitive" in the API will not
  7923  // be included in the string output. The member name will be present, but the
  7924  // value will be replaced with "sensitive".
  7925  func (s RevokeCertificateInput) GoString() string {
  7926  	return s.String()
  7927  }
  7928  
  7929  // Validate inspects the fields of the type to determine if they are valid.
  7930  func (s *RevokeCertificateInput) Validate() error {
  7931  	invalidParams := request.ErrInvalidParams{Context: "RevokeCertificateInput"}
  7932  	if s.CertificateAuthorityArn == nil {
  7933  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  7934  	}
  7935  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  7936  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  7937  	}
  7938  	if s.CertificateSerial == nil {
  7939  		invalidParams.Add(request.NewErrParamRequired("CertificateSerial"))
  7940  	}
  7941  	if s.RevocationReason == nil {
  7942  		invalidParams.Add(request.NewErrParamRequired("RevocationReason"))
  7943  	}
  7944  
  7945  	if invalidParams.Len() > 0 {
  7946  		return invalidParams
  7947  	}
  7948  	return nil
  7949  }
  7950  
  7951  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  7952  func (s *RevokeCertificateInput) SetCertificateAuthorityArn(v string) *RevokeCertificateInput {
  7953  	s.CertificateAuthorityArn = &v
  7954  	return s
  7955  }
  7956  
  7957  // SetCertificateSerial sets the CertificateSerial field's value.
  7958  func (s *RevokeCertificateInput) SetCertificateSerial(v string) *RevokeCertificateInput {
  7959  	s.CertificateSerial = &v
  7960  	return s
  7961  }
  7962  
  7963  // SetRevocationReason sets the RevocationReason field's value.
  7964  func (s *RevokeCertificateInput) SetRevocationReason(v string) *RevokeCertificateInput {
  7965  	s.RevocationReason = &v
  7966  	return s
  7967  }
  7968  
  7969  type RevokeCertificateOutput struct {
  7970  	_ struct{} `type:"structure"`
  7971  }
  7972  
  7973  // String returns the string representation.
  7974  //
  7975  // API parameter values that are decorated as "sensitive" in the API will not
  7976  // be included in the string output. The member name will be present, but the
  7977  // value will be replaced with "sensitive".
  7978  func (s RevokeCertificateOutput) String() string {
  7979  	return awsutil.Prettify(s)
  7980  }
  7981  
  7982  // GoString returns the string representation.
  7983  //
  7984  // API parameter values that are decorated as "sensitive" in the API will not
  7985  // be included in the string output. The member name will be present, but the
  7986  // value will be replaced with "sensitive".
  7987  func (s RevokeCertificateOutput) GoString() string {
  7988  	return s.String()
  7989  }
  7990  
  7991  // Tags are labels that you can use to identify and organize your private CAs.
  7992  // Each tag consists of a key and an optional value. You can associate up to
  7993  // 50 tags with a private CA. To add one or more tags to a private CA, call
  7994  // the TagCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_TagCertificateAuthority.html)
  7995  // action. To remove a tag, call the UntagCertificateAuthority (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_UntagCertificateAuthority.html)
  7996  // action.
  7997  type Tag struct {
  7998  	_ struct{} `type:"structure"`
  7999  
  8000  	// Key (name) of the tag.
  8001  	//
  8002  	// Key is a required field
  8003  	Key *string `min:"1" type:"string" required:"true"`
  8004  
  8005  	// Value of the tag.
  8006  	Value *string `type:"string"`
  8007  }
  8008  
  8009  // String returns the string representation.
  8010  //
  8011  // API parameter values that are decorated as "sensitive" in the API will not
  8012  // be included in the string output. The member name will be present, but the
  8013  // value will be replaced with "sensitive".
  8014  func (s Tag) String() string {
  8015  	return awsutil.Prettify(s)
  8016  }
  8017  
  8018  // GoString returns the string representation.
  8019  //
  8020  // API parameter values that are decorated as "sensitive" in the API will not
  8021  // be included in the string output. The member name will be present, but the
  8022  // value will be replaced with "sensitive".
  8023  func (s Tag) GoString() string {
  8024  	return s.String()
  8025  }
  8026  
  8027  // Validate inspects the fields of the type to determine if they are valid.
  8028  func (s *Tag) Validate() error {
  8029  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  8030  	if s.Key == nil {
  8031  		invalidParams.Add(request.NewErrParamRequired("Key"))
  8032  	}
  8033  	if s.Key != nil && len(*s.Key) < 1 {
  8034  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  8035  	}
  8036  
  8037  	if invalidParams.Len() > 0 {
  8038  		return invalidParams
  8039  	}
  8040  	return nil
  8041  }
  8042  
  8043  // SetKey sets the Key field's value.
  8044  func (s *Tag) SetKey(v string) *Tag {
  8045  	s.Key = &v
  8046  	return s
  8047  }
  8048  
  8049  // SetValue sets the Value field's value.
  8050  func (s *Tag) SetValue(v string) *Tag {
  8051  	s.Value = &v
  8052  	return s
  8053  }
  8054  
  8055  type TagCertificateAuthorityInput struct {
  8056  	_ struct{} `type:"structure"`
  8057  
  8058  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  8059  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  8060  	// This must be of the form:
  8061  	//
  8062  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  8063  	//
  8064  	// CertificateAuthorityArn is a required field
  8065  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  8066  
  8067  	// List of tags to be associated with the CA.
  8068  	//
  8069  	// Tags is a required field
  8070  	Tags []*Tag `min:"1" type:"list" required:"true"`
  8071  }
  8072  
  8073  // String returns the string representation.
  8074  //
  8075  // API parameter values that are decorated as "sensitive" in the API will not
  8076  // be included in the string output. The member name will be present, but the
  8077  // value will be replaced with "sensitive".
  8078  func (s TagCertificateAuthorityInput) String() string {
  8079  	return awsutil.Prettify(s)
  8080  }
  8081  
  8082  // GoString returns the string representation.
  8083  //
  8084  // API parameter values that are decorated as "sensitive" in the API will not
  8085  // be included in the string output. The member name will be present, but the
  8086  // value will be replaced with "sensitive".
  8087  func (s TagCertificateAuthorityInput) GoString() string {
  8088  	return s.String()
  8089  }
  8090  
  8091  // Validate inspects the fields of the type to determine if they are valid.
  8092  func (s *TagCertificateAuthorityInput) Validate() error {
  8093  	invalidParams := request.ErrInvalidParams{Context: "TagCertificateAuthorityInput"}
  8094  	if s.CertificateAuthorityArn == nil {
  8095  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  8096  	}
  8097  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  8098  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  8099  	}
  8100  	if s.Tags == nil {
  8101  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8102  	}
  8103  	if s.Tags != nil && len(s.Tags) < 1 {
  8104  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  8105  	}
  8106  	if s.Tags != nil {
  8107  		for i, v := range s.Tags {
  8108  			if v == nil {
  8109  				continue
  8110  			}
  8111  			if err := v.Validate(); err != nil {
  8112  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8113  			}
  8114  		}
  8115  	}
  8116  
  8117  	if invalidParams.Len() > 0 {
  8118  		return invalidParams
  8119  	}
  8120  	return nil
  8121  }
  8122  
  8123  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  8124  func (s *TagCertificateAuthorityInput) SetCertificateAuthorityArn(v string) *TagCertificateAuthorityInput {
  8125  	s.CertificateAuthorityArn = &v
  8126  	return s
  8127  }
  8128  
  8129  // SetTags sets the Tags field's value.
  8130  func (s *TagCertificateAuthorityInput) SetTags(v []*Tag) *TagCertificateAuthorityInput {
  8131  	s.Tags = v
  8132  	return s
  8133  }
  8134  
  8135  type TagCertificateAuthorityOutput struct {
  8136  	_ struct{} `type:"structure"`
  8137  }
  8138  
  8139  // String returns the string representation.
  8140  //
  8141  // API parameter values that are decorated as "sensitive" in the API will not
  8142  // be included in the string output. The member name will be present, but the
  8143  // value will be replaced with "sensitive".
  8144  func (s TagCertificateAuthorityOutput) String() string {
  8145  	return awsutil.Prettify(s)
  8146  }
  8147  
  8148  // GoString returns the string representation.
  8149  //
  8150  // API parameter values that are decorated as "sensitive" in the API will not
  8151  // be included in the string output. The member name will be present, but the
  8152  // value will be replaced with "sensitive".
  8153  func (s TagCertificateAuthorityOutput) GoString() string {
  8154  	return s.String()
  8155  }
  8156  
  8157  // You can associate up to 50 tags with a private CA. Exception information
  8158  // is contained in the exception message field.
  8159  type TooManyTagsException struct {
  8160  	_            struct{}                  `type:"structure"`
  8161  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8162  
  8163  	Message_ *string `locationName:"message" type:"string"`
  8164  }
  8165  
  8166  // String returns the string representation.
  8167  //
  8168  // API parameter values that are decorated as "sensitive" in the API will not
  8169  // be included in the string output. The member name will be present, but the
  8170  // value will be replaced with "sensitive".
  8171  func (s TooManyTagsException) String() string {
  8172  	return awsutil.Prettify(s)
  8173  }
  8174  
  8175  // GoString returns the string representation.
  8176  //
  8177  // API parameter values that are decorated as "sensitive" in the API will not
  8178  // be included in the string output. The member name will be present, but the
  8179  // value will be replaced with "sensitive".
  8180  func (s TooManyTagsException) GoString() string {
  8181  	return s.String()
  8182  }
  8183  
  8184  func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
  8185  	return &TooManyTagsException{
  8186  		RespMetadata: v,
  8187  	}
  8188  }
  8189  
  8190  // Code returns the exception type name.
  8191  func (s *TooManyTagsException) Code() string {
  8192  	return "TooManyTagsException"
  8193  }
  8194  
  8195  // Message returns the exception's message.
  8196  func (s *TooManyTagsException) Message() string {
  8197  	if s.Message_ != nil {
  8198  		return *s.Message_
  8199  	}
  8200  	return ""
  8201  }
  8202  
  8203  // OrigErr always returns nil, satisfies awserr.Error interface.
  8204  func (s *TooManyTagsException) OrigErr() error {
  8205  	return nil
  8206  }
  8207  
  8208  func (s *TooManyTagsException) Error() string {
  8209  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8210  }
  8211  
  8212  // Status code returns the HTTP status code for the request's response error.
  8213  func (s *TooManyTagsException) StatusCode() int {
  8214  	return s.RespMetadata.StatusCode
  8215  }
  8216  
  8217  // RequestID returns the service's response RequestID for request.
  8218  func (s *TooManyTagsException) RequestID() string {
  8219  	return s.RespMetadata.RequestID
  8220  }
  8221  
  8222  type UntagCertificateAuthorityInput struct {
  8223  	_ struct{} `type:"structure"`
  8224  
  8225  	// The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority
  8226  	// (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CreateCertificateAuthority.html).
  8227  	// This must be of the form:
  8228  	//
  8229  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  8230  	//
  8231  	// CertificateAuthorityArn is a required field
  8232  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  8233  
  8234  	// List of tags to be removed from the CA.
  8235  	//
  8236  	// Tags is a required field
  8237  	Tags []*Tag `min:"1" type:"list" required:"true"`
  8238  }
  8239  
  8240  // String returns the string representation.
  8241  //
  8242  // API parameter values that are decorated as "sensitive" in the API will not
  8243  // be included in the string output. The member name will be present, but the
  8244  // value will be replaced with "sensitive".
  8245  func (s UntagCertificateAuthorityInput) String() string {
  8246  	return awsutil.Prettify(s)
  8247  }
  8248  
  8249  // GoString returns the string representation.
  8250  //
  8251  // API parameter values that are decorated as "sensitive" in the API will not
  8252  // be included in the string output. The member name will be present, but the
  8253  // value will be replaced with "sensitive".
  8254  func (s UntagCertificateAuthorityInput) GoString() string {
  8255  	return s.String()
  8256  }
  8257  
  8258  // Validate inspects the fields of the type to determine if they are valid.
  8259  func (s *UntagCertificateAuthorityInput) Validate() error {
  8260  	invalidParams := request.ErrInvalidParams{Context: "UntagCertificateAuthorityInput"}
  8261  	if s.CertificateAuthorityArn == nil {
  8262  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  8263  	}
  8264  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  8265  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  8266  	}
  8267  	if s.Tags == nil {
  8268  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  8269  	}
  8270  	if s.Tags != nil && len(s.Tags) < 1 {
  8271  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  8272  	}
  8273  	if s.Tags != nil {
  8274  		for i, v := range s.Tags {
  8275  			if v == nil {
  8276  				continue
  8277  			}
  8278  			if err := v.Validate(); err != nil {
  8279  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8280  			}
  8281  		}
  8282  	}
  8283  
  8284  	if invalidParams.Len() > 0 {
  8285  		return invalidParams
  8286  	}
  8287  	return nil
  8288  }
  8289  
  8290  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  8291  func (s *UntagCertificateAuthorityInput) SetCertificateAuthorityArn(v string) *UntagCertificateAuthorityInput {
  8292  	s.CertificateAuthorityArn = &v
  8293  	return s
  8294  }
  8295  
  8296  // SetTags sets the Tags field's value.
  8297  func (s *UntagCertificateAuthorityInput) SetTags(v []*Tag) *UntagCertificateAuthorityInput {
  8298  	s.Tags = v
  8299  	return s
  8300  }
  8301  
  8302  type UntagCertificateAuthorityOutput struct {
  8303  	_ struct{} `type:"structure"`
  8304  }
  8305  
  8306  // String returns the string representation.
  8307  //
  8308  // API parameter values that are decorated as "sensitive" in the API will not
  8309  // be included in the string output. The member name will be present, but the
  8310  // value will be replaced with "sensitive".
  8311  func (s UntagCertificateAuthorityOutput) String() string {
  8312  	return awsutil.Prettify(s)
  8313  }
  8314  
  8315  // GoString returns the string representation.
  8316  //
  8317  // API parameter values that are decorated as "sensitive" in the API will not
  8318  // be included in the string output. The member name will be present, but the
  8319  // value will be replaced with "sensitive".
  8320  func (s UntagCertificateAuthorityOutput) GoString() string {
  8321  	return s.String()
  8322  }
  8323  
  8324  type UpdateCertificateAuthorityInput struct {
  8325  	_ struct{} `type:"structure"`
  8326  
  8327  	// Amazon Resource Name (ARN) of the private CA that issued the certificate
  8328  	// to be revoked. This must be of the form:
  8329  	//
  8330  	// arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012
  8331  	//
  8332  	// CertificateAuthorityArn is a required field
  8333  	CertificateAuthorityArn *string `min:"5" type:"string" required:"true"`
  8334  
  8335  	// Contains information to enable Online Certificate Status Protocol (OCSP)
  8336  	// support, to enable a certificate revocation list (CRL), to enable both, or
  8337  	// to enable neither. If this parameter is not supplied, existing capibilites
  8338  	// remain unchanged. For more information, see the OcspConfiguration (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_OcspConfiguration.html)
  8339  	// and CrlConfiguration (https://docs.aws.amazon.com/acm-pca/latest/APIReference/API_CrlConfiguration.html)
  8340  	// types.
  8341  	RevocationConfiguration *RevocationConfiguration `type:"structure"`
  8342  
  8343  	// Status of your private CA.
  8344  	Status *string `type:"string" enum:"CertificateAuthorityStatus"`
  8345  }
  8346  
  8347  // String returns the string representation.
  8348  //
  8349  // API parameter values that are decorated as "sensitive" in the API will not
  8350  // be included in the string output. The member name will be present, but the
  8351  // value will be replaced with "sensitive".
  8352  func (s UpdateCertificateAuthorityInput) String() string {
  8353  	return awsutil.Prettify(s)
  8354  }
  8355  
  8356  // GoString returns the string representation.
  8357  //
  8358  // API parameter values that are decorated as "sensitive" in the API will not
  8359  // be included in the string output. The member name will be present, but the
  8360  // value will be replaced with "sensitive".
  8361  func (s UpdateCertificateAuthorityInput) GoString() string {
  8362  	return s.String()
  8363  }
  8364  
  8365  // Validate inspects the fields of the type to determine if they are valid.
  8366  func (s *UpdateCertificateAuthorityInput) Validate() error {
  8367  	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateAuthorityInput"}
  8368  	if s.CertificateAuthorityArn == nil {
  8369  		invalidParams.Add(request.NewErrParamRequired("CertificateAuthorityArn"))
  8370  	}
  8371  	if s.CertificateAuthorityArn != nil && len(*s.CertificateAuthorityArn) < 5 {
  8372  		invalidParams.Add(request.NewErrParamMinLen("CertificateAuthorityArn", 5))
  8373  	}
  8374  	if s.RevocationConfiguration != nil {
  8375  		if err := s.RevocationConfiguration.Validate(); err != nil {
  8376  			invalidParams.AddNested("RevocationConfiguration", err.(request.ErrInvalidParams))
  8377  		}
  8378  	}
  8379  
  8380  	if invalidParams.Len() > 0 {
  8381  		return invalidParams
  8382  	}
  8383  	return nil
  8384  }
  8385  
  8386  // SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value.
  8387  func (s *UpdateCertificateAuthorityInput) SetCertificateAuthorityArn(v string) *UpdateCertificateAuthorityInput {
  8388  	s.CertificateAuthorityArn = &v
  8389  	return s
  8390  }
  8391  
  8392  // SetRevocationConfiguration sets the RevocationConfiguration field's value.
  8393  func (s *UpdateCertificateAuthorityInput) SetRevocationConfiguration(v *RevocationConfiguration) *UpdateCertificateAuthorityInput {
  8394  	s.RevocationConfiguration = v
  8395  	return s
  8396  }
  8397  
  8398  // SetStatus sets the Status field's value.
  8399  func (s *UpdateCertificateAuthorityInput) SetStatus(v string) *UpdateCertificateAuthorityInput {
  8400  	s.Status = &v
  8401  	return s
  8402  }
  8403  
  8404  type UpdateCertificateAuthorityOutput struct {
  8405  	_ struct{} `type:"structure"`
  8406  }
  8407  
  8408  // String returns the string representation.
  8409  //
  8410  // API parameter values that are decorated as "sensitive" in the API will not
  8411  // be included in the string output. The member name will be present, but the
  8412  // value will be replaced with "sensitive".
  8413  func (s UpdateCertificateAuthorityOutput) String() string {
  8414  	return awsutil.Prettify(s)
  8415  }
  8416  
  8417  // GoString returns the string representation.
  8418  //
  8419  // API parameter values that are decorated as "sensitive" in the API will not
  8420  // be included in the string output. The member name will be present, but the
  8421  // value will be replaced with "sensitive".
  8422  func (s UpdateCertificateAuthorityOutput) GoString() string {
  8423  	return s.String()
  8424  }
  8425  
  8426  // Validity specifies the period of time during which a certificate is valid.
  8427  // Validity can be expressed as an explicit date and time when the validity
  8428  // of a certificate starts or expires, or as a span of time after issuance,
  8429  // stated in days, months, or years. For more information, see Validity (https://tools.ietf.org/html/rfc5280#section-4.1.2.5)
  8430  // in RFC 5280.
  8431  //
  8432  // ACM Private CA API consumes the Validity data type differently in two distinct
  8433  // parameters of the IssueCertificate action. The required parameter IssueCertificate:Validity
  8434  // specifies the end of a certificate's validity period. The optional parameter
  8435  // IssueCertificate:ValidityNotBefore specifies a customized starting time for
  8436  // the validity period.
  8437  type Validity struct {
  8438  	_ struct{} `type:"structure"`
  8439  
  8440  	// Determines how ACM Private CA interprets the Value parameter, an integer.
  8441  	// Supported validity types include those listed below. Type definitions with
  8442  	// values include a sample input value and the resulting output.
  8443  	//
  8444  	// END_DATE: The specific date and time when the certificate will expire, expressed
  8445  	// using UTCTime (YYMMDDHHMMSS) or GeneralizedTime (YYYYMMDDHHMMSS) format.
  8446  	// When UTCTime is used, if the year field (YY) is greater than or equal to
  8447  	// 50, the year is interpreted as 19YY. If the year field is less than 50, the
  8448  	// year is interpreted as 20YY.
  8449  	//
  8450  	//    * Sample input value: 491231235959 (UTCTime format)
  8451  	//
  8452  	//    * Output expiration date/time: 12/31/2049 23:59:59
  8453  	//
  8454  	// ABSOLUTE: The specific date and time when the validity of a certificate will
  8455  	// start or expire, expressed in seconds since the Unix Epoch.
  8456  	//
  8457  	//    * Sample input value: 2524608000
  8458  	//
  8459  	//    * Output expiration date/time: 01/01/2050 00:00:00
  8460  	//
  8461  	// DAYS, MONTHS, YEARS: The relative time from the moment of issuance until
  8462  	// the certificate will expire, expressed in days, months, or years.
  8463  	//
  8464  	// Example if DAYS, issued on 10/12/2020 at 12:34:54 UTC:
  8465  	//
  8466  	//    * Sample input value: 90
  8467  	//
  8468  	//    * Output expiration date: 01/10/2020 12:34:54 UTC
  8469  	//
  8470  	// The minimum validity duration for a certificate using relative time (DAYS)
  8471  	// is one day. The minimum validity for a certificate using absolute time (ABSOLUTE
  8472  	// or END_DATE) is one second.
  8473  	//
  8474  	// Type is a required field
  8475  	Type *string `type:"string" required:"true" enum:"ValidityPeriodType"`
  8476  
  8477  	// A long integer interpreted according to the value of Type, below.
  8478  	//
  8479  	// Value is a required field
  8480  	Value *int64 `min:"1" type:"long" required:"true"`
  8481  }
  8482  
  8483  // String returns the string representation.
  8484  //
  8485  // API parameter values that are decorated as "sensitive" in the API will not
  8486  // be included in the string output. The member name will be present, but the
  8487  // value will be replaced with "sensitive".
  8488  func (s Validity) String() string {
  8489  	return awsutil.Prettify(s)
  8490  }
  8491  
  8492  // GoString returns the string representation.
  8493  //
  8494  // API parameter values that are decorated as "sensitive" in the API will not
  8495  // be included in the string output. The member name will be present, but the
  8496  // value will be replaced with "sensitive".
  8497  func (s Validity) GoString() string {
  8498  	return s.String()
  8499  }
  8500  
  8501  // Validate inspects the fields of the type to determine if they are valid.
  8502  func (s *Validity) Validate() error {
  8503  	invalidParams := request.ErrInvalidParams{Context: "Validity"}
  8504  	if s.Type == nil {
  8505  		invalidParams.Add(request.NewErrParamRequired("Type"))
  8506  	}
  8507  	if s.Value == nil {
  8508  		invalidParams.Add(request.NewErrParamRequired("Value"))
  8509  	}
  8510  	if s.Value != nil && *s.Value < 1 {
  8511  		invalidParams.Add(request.NewErrParamMinValue("Value", 1))
  8512  	}
  8513  
  8514  	if invalidParams.Len() > 0 {
  8515  		return invalidParams
  8516  	}
  8517  	return nil
  8518  }
  8519  
  8520  // SetType sets the Type field's value.
  8521  func (s *Validity) SetType(v string) *Validity {
  8522  	s.Type = &v
  8523  	return s
  8524  }
  8525  
  8526  // SetValue sets the Value field's value.
  8527  func (s *Validity) SetValue(v int64) *Validity {
  8528  	s.Value = &v
  8529  	return s
  8530  }
  8531  
  8532  const (
  8533  	// AccessMethodTypeCaRepository is a AccessMethodType enum value
  8534  	AccessMethodTypeCaRepository = "CA_REPOSITORY"
  8535  
  8536  	// AccessMethodTypeResourcePkiManifest is a AccessMethodType enum value
  8537  	AccessMethodTypeResourcePkiManifest = "RESOURCE_PKI_MANIFEST"
  8538  
  8539  	// AccessMethodTypeResourcePkiNotify is a AccessMethodType enum value
  8540  	AccessMethodTypeResourcePkiNotify = "RESOURCE_PKI_NOTIFY"
  8541  )
  8542  
  8543  // AccessMethodType_Values returns all elements of the AccessMethodType enum
  8544  func AccessMethodType_Values() []string {
  8545  	return []string{
  8546  		AccessMethodTypeCaRepository,
  8547  		AccessMethodTypeResourcePkiManifest,
  8548  		AccessMethodTypeResourcePkiNotify,
  8549  	}
  8550  }
  8551  
  8552  const (
  8553  	// ActionTypeIssueCertificate is a ActionType enum value
  8554  	ActionTypeIssueCertificate = "IssueCertificate"
  8555  
  8556  	// ActionTypeGetCertificate is a ActionType enum value
  8557  	ActionTypeGetCertificate = "GetCertificate"
  8558  
  8559  	// ActionTypeListPermissions is a ActionType enum value
  8560  	ActionTypeListPermissions = "ListPermissions"
  8561  )
  8562  
  8563  // ActionType_Values returns all elements of the ActionType enum
  8564  func ActionType_Values() []string {
  8565  	return []string{
  8566  		ActionTypeIssueCertificate,
  8567  		ActionTypeGetCertificate,
  8568  		ActionTypeListPermissions,
  8569  	}
  8570  }
  8571  
  8572  const (
  8573  	// AuditReportResponseFormatJson is a AuditReportResponseFormat enum value
  8574  	AuditReportResponseFormatJson = "JSON"
  8575  
  8576  	// AuditReportResponseFormatCsv is a AuditReportResponseFormat enum value
  8577  	AuditReportResponseFormatCsv = "CSV"
  8578  )
  8579  
  8580  // AuditReportResponseFormat_Values returns all elements of the AuditReportResponseFormat enum
  8581  func AuditReportResponseFormat_Values() []string {
  8582  	return []string{
  8583  		AuditReportResponseFormatJson,
  8584  		AuditReportResponseFormatCsv,
  8585  	}
  8586  }
  8587  
  8588  const (
  8589  	// AuditReportStatusCreating is a AuditReportStatus enum value
  8590  	AuditReportStatusCreating = "CREATING"
  8591  
  8592  	// AuditReportStatusSuccess is a AuditReportStatus enum value
  8593  	AuditReportStatusSuccess = "SUCCESS"
  8594  
  8595  	// AuditReportStatusFailed is a AuditReportStatus enum value
  8596  	AuditReportStatusFailed = "FAILED"
  8597  )
  8598  
  8599  // AuditReportStatus_Values returns all elements of the AuditReportStatus enum
  8600  func AuditReportStatus_Values() []string {
  8601  	return []string{
  8602  		AuditReportStatusCreating,
  8603  		AuditReportStatusSuccess,
  8604  		AuditReportStatusFailed,
  8605  	}
  8606  }
  8607  
  8608  const (
  8609  	// CertificateAuthorityStatusCreating is a CertificateAuthorityStatus enum value
  8610  	CertificateAuthorityStatusCreating = "CREATING"
  8611  
  8612  	// CertificateAuthorityStatusPendingCertificate is a CertificateAuthorityStatus enum value
  8613  	CertificateAuthorityStatusPendingCertificate = "PENDING_CERTIFICATE"
  8614  
  8615  	// CertificateAuthorityStatusActive is a CertificateAuthorityStatus enum value
  8616  	CertificateAuthorityStatusActive = "ACTIVE"
  8617  
  8618  	// CertificateAuthorityStatusDeleted is a CertificateAuthorityStatus enum value
  8619  	CertificateAuthorityStatusDeleted = "DELETED"
  8620  
  8621  	// CertificateAuthorityStatusDisabled is a CertificateAuthorityStatus enum value
  8622  	CertificateAuthorityStatusDisabled = "DISABLED"
  8623  
  8624  	// CertificateAuthorityStatusExpired is a CertificateAuthorityStatus enum value
  8625  	CertificateAuthorityStatusExpired = "EXPIRED"
  8626  
  8627  	// CertificateAuthorityStatusFailed is a CertificateAuthorityStatus enum value
  8628  	CertificateAuthorityStatusFailed = "FAILED"
  8629  )
  8630  
  8631  // CertificateAuthorityStatus_Values returns all elements of the CertificateAuthorityStatus enum
  8632  func CertificateAuthorityStatus_Values() []string {
  8633  	return []string{
  8634  		CertificateAuthorityStatusCreating,
  8635  		CertificateAuthorityStatusPendingCertificate,
  8636  		CertificateAuthorityStatusActive,
  8637  		CertificateAuthorityStatusDeleted,
  8638  		CertificateAuthorityStatusDisabled,
  8639  		CertificateAuthorityStatusExpired,
  8640  		CertificateAuthorityStatusFailed,
  8641  	}
  8642  }
  8643  
  8644  const (
  8645  	// CertificateAuthorityTypeRoot is a CertificateAuthorityType enum value
  8646  	CertificateAuthorityTypeRoot = "ROOT"
  8647  
  8648  	// CertificateAuthorityTypeSubordinate is a CertificateAuthorityType enum value
  8649  	CertificateAuthorityTypeSubordinate = "SUBORDINATE"
  8650  )
  8651  
  8652  // CertificateAuthorityType_Values returns all elements of the CertificateAuthorityType enum
  8653  func CertificateAuthorityType_Values() []string {
  8654  	return []string{
  8655  		CertificateAuthorityTypeRoot,
  8656  		CertificateAuthorityTypeSubordinate,
  8657  	}
  8658  }
  8659  
  8660  const (
  8661  	// ExtendedKeyUsageTypeServerAuth is a ExtendedKeyUsageType enum value
  8662  	ExtendedKeyUsageTypeServerAuth = "SERVER_AUTH"
  8663  
  8664  	// ExtendedKeyUsageTypeClientAuth is a ExtendedKeyUsageType enum value
  8665  	ExtendedKeyUsageTypeClientAuth = "CLIENT_AUTH"
  8666  
  8667  	// ExtendedKeyUsageTypeCodeSigning is a ExtendedKeyUsageType enum value
  8668  	ExtendedKeyUsageTypeCodeSigning = "CODE_SIGNING"
  8669  
  8670  	// ExtendedKeyUsageTypeEmailProtection is a ExtendedKeyUsageType enum value
  8671  	ExtendedKeyUsageTypeEmailProtection = "EMAIL_PROTECTION"
  8672  
  8673  	// ExtendedKeyUsageTypeTimeStamping is a ExtendedKeyUsageType enum value
  8674  	ExtendedKeyUsageTypeTimeStamping = "TIME_STAMPING"
  8675  
  8676  	// ExtendedKeyUsageTypeOcspSigning is a ExtendedKeyUsageType enum value
  8677  	ExtendedKeyUsageTypeOcspSigning = "OCSP_SIGNING"
  8678  
  8679  	// ExtendedKeyUsageTypeSmartCardLogin is a ExtendedKeyUsageType enum value
  8680  	ExtendedKeyUsageTypeSmartCardLogin = "SMART_CARD_LOGIN"
  8681  
  8682  	// ExtendedKeyUsageTypeDocumentSigning is a ExtendedKeyUsageType enum value
  8683  	ExtendedKeyUsageTypeDocumentSigning = "DOCUMENT_SIGNING"
  8684  
  8685  	// ExtendedKeyUsageTypeCertificateTransparency is a ExtendedKeyUsageType enum value
  8686  	ExtendedKeyUsageTypeCertificateTransparency = "CERTIFICATE_TRANSPARENCY"
  8687  )
  8688  
  8689  // ExtendedKeyUsageType_Values returns all elements of the ExtendedKeyUsageType enum
  8690  func ExtendedKeyUsageType_Values() []string {
  8691  	return []string{
  8692  		ExtendedKeyUsageTypeServerAuth,
  8693  		ExtendedKeyUsageTypeClientAuth,
  8694  		ExtendedKeyUsageTypeCodeSigning,
  8695  		ExtendedKeyUsageTypeEmailProtection,
  8696  		ExtendedKeyUsageTypeTimeStamping,
  8697  		ExtendedKeyUsageTypeOcspSigning,
  8698  		ExtendedKeyUsageTypeSmartCardLogin,
  8699  		ExtendedKeyUsageTypeDocumentSigning,
  8700  		ExtendedKeyUsageTypeCertificateTransparency,
  8701  	}
  8702  }
  8703  
  8704  const (
  8705  	// FailureReasonRequestTimedOut is a FailureReason enum value
  8706  	FailureReasonRequestTimedOut = "REQUEST_TIMED_OUT"
  8707  
  8708  	// FailureReasonUnsupportedAlgorithm is a FailureReason enum value
  8709  	FailureReasonUnsupportedAlgorithm = "UNSUPPORTED_ALGORITHM"
  8710  
  8711  	// FailureReasonOther is a FailureReason enum value
  8712  	FailureReasonOther = "OTHER"
  8713  )
  8714  
  8715  // FailureReason_Values returns all elements of the FailureReason enum
  8716  func FailureReason_Values() []string {
  8717  	return []string{
  8718  		FailureReasonRequestTimedOut,
  8719  		FailureReasonUnsupportedAlgorithm,
  8720  		FailureReasonOther,
  8721  	}
  8722  }
  8723  
  8724  const (
  8725  	// KeyAlgorithmRsa2048 is a KeyAlgorithm enum value
  8726  	KeyAlgorithmRsa2048 = "RSA_2048"
  8727  
  8728  	// KeyAlgorithmRsa4096 is a KeyAlgorithm enum value
  8729  	KeyAlgorithmRsa4096 = "RSA_4096"
  8730  
  8731  	// KeyAlgorithmEcPrime256v1 is a KeyAlgorithm enum value
  8732  	KeyAlgorithmEcPrime256v1 = "EC_prime256v1"
  8733  
  8734  	// KeyAlgorithmEcSecp384r1 is a KeyAlgorithm enum value
  8735  	KeyAlgorithmEcSecp384r1 = "EC_secp384r1"
  8736  )
  8737  
  8738  // KeyAlgorithm_Values returns all elements of the KeyAlgorithm enum
  8739  func KeyAlgorithm_Values() []string {
  8740  	return []string{
  8741  		KeyAlgorithmRsa2048,
  8742  		KeyAlgorithmRsa4096,
  8743  		KeyAlgorithmEcPrime256v1,
  8744  		KeyAlgorithmEcSecp384r1,
  8745  	}
  8746  }
  8747  
  8748  const (
  8749  	// KeyStorageSecurityStandardFips1402Level2OrHigher is a KeyStorageSecurityStandard enum value
  8750  	KeyStorageSecurityStandardFips1402Level2OrHigher = "FIPS_140_2_LEVEL_2_OR_HIGHER"
  8751  
  8752  	// KeyStorageSecurityStandardFips1402Level3OrHigher is a KeyStorageSecurityStandard enum value
  8753  	KeyStorageSecurityStandardFips1402Level3OrHigher = "FIPS_140_2_LEVEL_3_OR_HIGHER"
  8754  )
  8755  
  8756  // KeyStorageSecurityStandard_Values returns all elements of the KeyStorageSecurityStandard enum
  8757  func KeyStorageSecurityStandard_Values() []string {
  8758  	return []string{
  8759  		KeyStorageSecurityStandardFips1402Level2OrHigher,
  8760  		KeyStorageSecurityStandardFips1402Level3OrHigher,
  8761  	}
  8762  }
  8763  
  8764  const (
  8765  	// PolicyQualifierIdCps is a PolicyQualifierId enum value
  8766  	PolicyQualifierIdCps = "CPS"
  8767  )
  8768  
  8769  // PolicyQualifierId_Values returns all elements of the PolicyQualifierId enum
  8770  func PolicyQualifierId_Values() []string {
  8771  	return []string{
  8772  		PolicyQualifierIdCps,
  8773  	}
  8774  }
  8775  
  8776  const (
  8777  	// ResourceOwnerSelf is a ResourceOwner enum value
  8778  	ResourceOwnerSelf = "SELF"
  8779  
  8780  	// ResourceOwnerOtherAccounts is a ResourceOwner enum value
  8781  	ResourceOwnerOtherAccounts = "OTHER_ACCOUNTS"
  8782  )
  8783  
  8784  // ResourceOwner_Values returns all elements of the ResourceOwner enum
  8785  func ResourceOwner_Values() []string {
  8786  	return []string{
  8787  		ResourceOwnerSelf,
  8788  		ResourceOwnerOtherAccounts,
  8789  	}
  8790  }
  8791  
  8792  const (
  8793  	// RevocationReasonUnspecified is a RevocationReason enum value
  8794  	RevocationReasonUnspecified = "UNSPECIFIED"
  8795  
  8796  	// RevocationReasonKeyCompromise is a RevocationReason enum value
  8797  	RevocationReasonKeyCompromise = "KEY_COMPROMISE"
  8798  
  8799  	// RevocationReasonCertificateAuthorityCompromise is a RevocationReason enum value
  8800  	RevocationReasonCertificateAuthorityCompromise = "CERTIFICATE_AUTHORITY_COMPROMISE"
  8801  
  8802  	// RevocationReasonAffiliationChanged is a RevocationReason enum value
  8803  	RevocationReasonAffiliationChanged = "AFFILIATION_CHANGED"
  8804  
  8805  	// RevocationReasonSuperseded is a RevocationReason enum value
  8806  	RevocationReasonSuperseded = "SUPERSEDED"
  8807  
  8808  	// RevocationReasonCessationOfOperation is a RevocationReason enum value
  8809  	RevocationReasonCessationOfOperation = "CESSATION_OF_OPERATION"
  8810  
  8811  	// RevocationReasonPrivilegeWithdrawn is a RevocationReason enum value
  8812  	RevocationReasonPrivilegeWithdrawn = "PRIVILEGE_WITHDRAWN"
  8813  
  8814  	// RevocationReasonAACompromise is a RevocationReason enum value
  8815  	RevocationReasonAACompromise = "A_A_COMPROMISE"
  8816  )
  8817  
  8818  // RevocationReason_Values returns all elements of the RevocationReason enum
  8819  func RevocationReason_Values() []string {
  8820  	return []string{
  8821  		RevocationReasonUnspecified,
  8822  		RevocationReasonKeyCompromise,
  8823  		RevocationReasonCertificateAuthorityCompromise,
  8824  		RevocationReasonAffiliationChanged,
  8825  		RevocationReasonSuperseded,
  8826  		RevocationReasonCessationOfOperation,
  8827  		RevocationReasonPrivilegeWithdrawn,
  8828  		RevocationReasonAACompromise,
  8829  	}
  8830  }
  8831  
  8832  const (
  8833  	// S3ObjectAclPublicRead is a S3ObjectAcl enum value
  8834  	S3ObjectAclPublicRead = "PUBLIC_READ"
  8835  
  8836  	// S3ObjectAclBucketOwnerFullControl is a S3ObjectAcl enum value
  8837  	S3ObjectAclBucketOwnerFullControl = "BUCKET_OWNER_FULL_CONTROL"
  8838  )
  8839  
  8840  // S3ObjectAcl_Values returns all elements of the S3ObjectAcl enum
  8841  func S3ObjectAcl_Values() []string {
  8842  	return []string{
  8843  		S3ObjectAclPublicRead,
  8844  		S3ObjectAclBucketOwnerFullControl,
  8845  	}
  8846  }
  8847  
  8848  const (
  8849  	// SigningAlgorithmSha256withecdsa is a SigningAlgorithm enum value
  8850  	SigningAlgorithmSha256withecdsa = "SHA256WITHECDSA"
  8851  
  8852  	// SigningAlgorithmSha384withecdsa is a SigningAlgorithm enum value
  8853  	SigningAlgorithmSha384withecdsa = "SHA384WITHECDSA"
  8854  
  8855  	// SigningAlgorithmSha512withecdsa is a SigningAlgorithm enum value
  8856  	SigningAlgorithmSha512withecdsa = "SHA512WITHECDSA"
  8857  
  8858  	// SigningAlgorithmSha256withrsa is a SigningAlgorithm enum value
  8859  	SigningAlgorithmSha256withrsa = "SHA256WITHRSA"
  8860  
  8861  	// SigningAlgorithmSha384withrsa is a SigningAlgorithm enum value
  8862  	SigningAlgorithmSha384withrsa = "SHA384WITHRSA"
  8863  
  8864  	// SigningAlgorithmSha512withrsa is a SigningAlgorithm enum value
  8865  	SigningAlgorithmSha512withrsa = "SHA512WITHRSA"
  8866  )
  8867  
  8868  // SigningAlgorithm_Values returns all elements of the SigningAlgorithm enum
  8869  func SigningAlgorithm_Values() []string {
  8870  	return []string{
  8871  		SigningAlgorithmSha256withecdsa,
  8872  		SigningAlgorithmSha384withecdsa,
  8873  		SigningAlgorithmSha512withecdsa,
  8874  		SigningAlgorithmSha256withrsa,
  8875  		SigningAlgorithmSha384withrsa,
  8876  		SigningAlgorithmSha512withrsa,
  8877  	}
  8878  }
  8879  
  8880  const (
  8881  	// ValidityPeriodTypeEndDate is a ValidityPeriodType enum value
  8882  	ValidityPeriodTypeEndDate = "END_DATE"
  8883  
  8884  	// ValidityPeriodTypeAbsolute is a ValidityPeriodType enum value
  8885  	ValidityPeriodTypeAbsolute = "ABSOLUTE"
  8886  
  8887  	// ValidityPeriodTypeDays is a ValidityPeriodType enum value
  8888  	ValidityPeriodTypeDays = "DAYS"
  8889  
  8890  	// ValidityPeriodTypeMonths is a ValidityPeriodType enum value
  8891  	ValidityPeriodTypeMonths = "MONTHS"
  8892  
  8893  	// ValidityPeriodTypeYears is a ValidityPeriodType enum value
  8894  	ValidityPeriodTypeYears = "YEARS"
  8895  )
  8896  
  8897  // ValidityPeriodType_Values returns all elements of the ValidityPeriodType enum
  8898  func ValidityPeriodType_Values() []string {
  8899  	return []string{
  8900  		ValidityPeriodTypeEndDate,
  8901  		ValidityPeriodTypeAbsolute,
  8902  		ValidityPeriodTypeDays,
  8903  		ValidityPeriodTypeMonths,
  8904  		ValidityPeriodTypeYears,
  8905  	}
  8906  }