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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package cloudformation
     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/query"
    14  )
    15  
    16  const opActivateType = "ActivateType"
    17  
    18  // ActivateTypeRequest generates a "aws/request.Request" representing the
    19  // client's request for the ActivateType 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 ActivateType for more information on using the ActivateType
    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 ActivateTypeRequest method.
    34  //    req, resp := client.ActivateTypeRequest(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/cloudformation-2010-05-15/ActivateType
    42  func (c *CloudFormation) ActivateTypeRequest(input *ActivateTypeInput) (req *request.Request, output *ActivateTypeOutput) {
    43  	op := &request.Operation{
    44  		Name:       opActivateType,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &ActivateTypeInput{}
    51  	}
    52  
    53  	output = &ActivateTypeOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // ActivateType API operation for AWS CloudFormation.
    59  //
    60  // Activates a public third-party extension, making it available for use in
    61  // stack templates. For more information, see Using public extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html)
    62  // in the CloudFormation User Guide.
    63  //
    64  // Once you have activated a public third-party extension in your account and
    65  // region, use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
    66  // to specify configuration properties for the extension. For more information,
    67  // see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
    68  // in the CloudFormation User Guide.
    69  //
    70  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    71  // with awserr.Error's Code and Message methods to get detailed information about
    72  // the error.
    73  //
    74  // See the AWS API reference guide for AWS CloudFormation's
    75  // API operation ActivateType for usage and error information.
    76  //
    77  // Returned Error Codes:
    78  //   * ErrCodeCFNRegistryException "CFNRegistryException"
    79  //   An error occurred during a CloudFormation registry operation.
    80  //
    81  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
    82  //   The specified extension does not exist in the CloudFormation registry.
    83  //
    84  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ActivateType
    85  func (c *CloudFormation) ActivateType(input *ActivateTypeInput) (*ActivateTypeOutput, error) {
    86  	req, out := c.ActivateTypeRequest(input)
    87  	return out, req.Send()
    88  }
    89  
    90  // ActivateTypeWithContext is the same as ActivateType with the addition of
    91  // the ability to pass a context and additional request options.
    92  //
    93  // See ActivateType for details on how to use this API operation.
    94  //
    95  // The context must be non-nil and will be used for request cancellation. If
    96  // the context is nil a panic will occur. In the future the SDK may create
    97  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
    98  // for more information on using Contexts.
    99  func (c *CloudFormation) ActivateTypeWithContext(ctx aws.Context, input *ActivateTypeInput, opts ...request.Option) (*ActivateTypeOutput, error) {
   100  	req, out := c.ActivateTypeRequest(input)
   101  	req.SetContext(ctx)
   102  	req.ApplyOptions(opts...)
   103  	return out, req.Send()
   104  }
   105  
   106  const opBatchDescribeTypeConfigurations = "BatchDescribeTypeConfigurations"
   107  
   108  // BatchDescribeTypeConfigurationsRequest generates a "aws/request.Request" representing the
   109  // client's request for the BatchDescribeTypeConfigurations operation. The "output" return
   110  // value will be populated with the request's response once the request completes
   111  // successfully.
   112  //
   113  // Use "Send" method on the returned Request to send the API call to the service.
   114  // the "output" return value is not valid until after Send returns without error.
   115  //
   116  // See BatchDescribeTypeConfigurations for more information on using the BatchDescribeTypeConfigurations
   117  // API call, and error handling.
   118  //
   119  // This method is useful when you want to inject custom logic or configuration
   120  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   121  //
   122  //
   123  //    // Example sending a request using the BatchDescribeTypeConfigurationsRequest method.
   124  //    req, resp := client.BatchDescribeTypeConfigurationsRequest(params)
   125  //
   126  //    err := req.Send()
   127  //    if err == nil { // resp is now filled
   128  //        fmt.Println(resp)
   129  //    }
   130  //
   131  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations
   132  func (c *CloudFormation) BatchDescribeTypeConfigurationsRequest(input *BatchDescribeTypeConfigurationsInput) (req *request.Request, output *BatchDescribeTypeConfigurationsOutput) {
   133  	op := &request.Operation{
   134  		Name:       opBatchDescribeTypeConfigurations,
   135  		HTTPMethod: "POST",
   136  		HTTPPath:   "/",
   137  	}
   138  
   139  	if input == nil {
   140  		input = &BatchDescribeTypeConfigurationsInput{}
   141  	}
   142  
   143  	output = &BatchDescribeTypeConfigurationsOutput{}
   144  	req = c.newRequest(op, input, output)
   145  	return
   146  }
   147  
   148  // BatchDescribeTypeConfigurations API operation for AWS CloudFormation.
   149  //
   150  // Returns configuration data for the specified CloudFormation extensions, from
   151  // the CloudFormation registry for the account and region.
   152  //
   153  // For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
   154  // in the CloudFormation User Guide.
   155  //
   156  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   157  // with awserr.Error's Code and Message methods to get detailed information about
   158  // the error.
   159  //
   160  // See the AWS API reference guide for AWS CloudFormation's
   161  // API operation BatchDescribeTypeConfigurations for usage and error information.
   162  //
   163  // Returned Error Codes:
   164  //   * ErrCodeTypeConfigurationNotFoundException "TypeConfigurationNotFoundException"
   165  //   The specified extension configuration cannot be found.
   166  //
   167  //   * ErrCodeCFNRegistryException "CFNRegistryException"
   168  //   An error occurred during a CloudFormation registry operation.
   169  //
   170  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/BatchDescribeTypeConfigurations
   171  func (c *CloudFormation) BatchDescribeTypeConfigurations(input *BatchDescribeTypeConfigurationsInput) (*BatchDescribeTypeConfigurationsOutput, error) {
   172  	req, out := c.BatchDescribeTypeConfigurationsRequest(input)
   173  	return out, req.Send()
   174  }
   175  
   176  // BatchDescribeTypeConfigurationsWithContext is the same as BatchDescribeTypeConfigurations with the addition of
   177  // the ability to pass a context and additional request options.
   178  //
   179  // See BatchDescribeTypeConfigurations for details on how to use this API operation.
   180  //
   181  // The context must be non-nil and will be used for request cancellation. If
   182  // the context is nil a panic will occur. In the future the SDK may create
   183  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   184  // for more information on using Contexts.
   185  func (c *CloudFormation) BatchDescribeTypeConfigurationsWithContext(ctx aws.Context, input *BatchDescribeTypeConfigurationsInput, opts ...request.Option) (*BatchDescribeTypeConfigurationsOutput, error) {
   186  	req, out := c.BatchDescribeTypeConfigurationsRequest(input)
   187  	req.SetContext(ctx)
   188  	req.ApplyOptions(opts...)
   189  	return out, req.Send()
   190  }
   191  
   192  const opCancelUpdateStack = "CancelUpdateStack"
   193  
   194  // CancelUpdateStackRequest generates a "aws/request.Request" representing the
   195  // client's request for the CancelUpdateStack operation. The "output" return
   196  // value will be populated with the request's response once the request completes
   197  // successfully.
   198  //
   199  // Use "Send" method on the returned Request to send the API call to the service.
   200  // the "output" return value is not valid until after Send returns without error.
   201  //
   202  // See CancelUpdateStack for more information on using the CancelUpdateStack
   203  // API call, and error handling.
   204  //
   205  // This method is useful when you want to inject custom logic or configuration
   206  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   207  //
   208  //
   209  //    // Example sending a request using the CancelUpdateStackRequest method.
   210  //    req, resp := client.CancelUpdateStackRequest(params)
   211  //
   212  //    err := req.Send()
   213  //    if err == nil { // resp is now filled
   214  //        fmt.Println(resp)
   215  //    }
   216  //
   217  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
   218  func (c *CloudFormation) CancelUpdateStackRequest(input *CancelUpdateStackInput) (req *request.Request, output *CancelUpdateStackOutput) {
   219  	op := &request.Operation{
   220  		Name:       opCancelUpdateStack,
   221  		HTTPMethod: "POST",
   222  		HTTPPath:   "/",
   223  	}
   224  
   225  	if input == nil {
   226  		input = &CancelUpdateStackInput{}
   227  	}
   228  
   229  	output = &CancelUpdateStackOutput{}
   230  	req = c.newRequest(op, input, output)
   231  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   232  	return
   233  }
   234  
   235  // CancelUpdateStack API operation for AWS CloudFormation.
   236  //
   237  // Cancels an update on the specified stack. If the call completes successfully,
   238  // the stack rolls back the update and reverts to the previous stack configuration.
   239  //
   240  // You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.
   241  //
   242  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   243  // with awserr.Error's Code and Message methods to get detailed information about
   244  // the error.
   245  //
   246  // See the AWS API reference guide for AWS CloudFormation's
   247  // API operation CancelUpdateStack for usage and error information.
   248  //
   249  // Returned Error Codes:
   250  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
   251  //   A client request token already exists.
   252  //
   253  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack
   254  func (c *CloudFormation) CancelUpdateStack(input *CancelUpdateStackInput) (*CancelUpdateStackOutput, error) {
   255  	req, out := c.CancelUpdateStackRequest(input)
   256  	return out, req.Send()
   257  }
   258  
   259  // CancelUpdateStackWithContext is the same as CancelUpdateStack with the addition of
   260  // the ability to pass a context and additional request options.
   261  //
   262  // See CancelUpdateStack for details on how to use this API operation.
   263  //
   264  // The context must be non-nil and will be used for request cancellation. If
   265  // the context is nil a panic will occur. In the future the SDK may create
   266  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   267  // for more information on using Contexts.
   268  func (c *CloudFormation) CancelUpdateStackWithContext(ctx aws.Context, input *CancelUpdateStackInput, opts ...request.Option) (*CancelUpdateStackOutput, error) {
   269  	req, out := c.CancelUpdateStackRequest(input)
   270  	req.SetContext(ctx)
   271  	req.ApplyOptions(opts...)
   272  	return out, req.Send()
   273  }
   274  
   275  const opContinueUpdateRollback = "ContinueUpdateRollback"
   276  
   277  // ContinueUpdateRollbackRequest generates a "aws/request.Request" representing the
   278  // client's request for the ContinueUpdateRollback operation. The "output" return
   279  // value will be populated with the request's response once the request completes
   280  // successfully.
   281  //
   282  // Use "Send" method on the returned Request to send the API call to the service.
   283  // the "output" return value is not valid until after Send returns without error.
   284  //
   285  // See ContinueUpdateRollback for more information on using the ContinueUpdateRollback
   286  // API call, and error handling.
   287  //
   288  // This method is useful when you want to inject custom logic or configuration
   289  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   290  //
   291  //
   292  //    // Example sending a request using the ContinueUpdateRollbackRequest method.
   293  //    req, resp := client.ContinueUpdateRollbackRequest(params)
   294  //
   295  //    err := req.Send()
   296  //    if err == nil { // resp is now filled
   297  //        fmt.Println(resp)
   298  //    }
   299  //
   300  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
   301  func (c *CloudFormation) ContinueUpdateRollbackRequest(input *ContinueUpdateRollbackInput) (req *request.Request, output *ContinueUpdateRollbackOutput) {
   302  	op := &request.Operation{
   303  		Name:       opContinueUpdateRollback,
   304  		HTTPMethod: "POST",
   305  		HTTPPath:   "/",
   306  	}
   307  
   308  	if input == nil {
   309  		input = &ContinueUpdateRollbackInput{}
   310  	}
   311  
   312  	output = &ContinueUpdateRollbackOutput{}
   313  	req = c.newRequest(op, input, output)
   314  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   315  	return
   316  }
   317  
   318  // ContinueUpdateRollback API operation for AWS CloudFormation.
   319  //
   320  // For a specified stack that is in the UPDATE_ROLLBACK_FAILED state, continues
   321  // rolling it back to the UPDATE_ROLLBACK_COMPLETE state. Depending on the cause
   322  // of the failure, you can manually fix the error (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
   323  // and continue the rollback. By continuing the rollback, you can return your
   324  // stack to a working state (the UPDATE_ROLLBACK_COMPLETE state), and then try
   325  // to update the stack again.
   326  //
   327  // A stack goes into the UPDATE_ROLLBACK_FAILED state when CloudFormation cannot
   328  // roll back all changes after a failed stack update. For example, you might
   329  // have a stack that is rolling back to an old database instance that was deleted
   330  // outside of CloudFormation. Because CloudFormation doesn't know the database
   331  // was deleted, it assumes that the database instance still exists and attempts
   332  // to roll back to it, causing the update rollback to fail.
   333  //
   334  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   335  // with awserr.Error's Code and Message methods to get detailed information about
   336  // the error.
   337  //
   338  // See the AWS API reference guide for AWS CloudFormation's
   339  // API operation ContinueUpdateRollback for usage and error information.
   340  //
   341  // Returned Error Codes:
   342  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
   343  //   A client request token already exists.
   344  //
   345  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback
   346  func (c *CloudFormation) ContinueUpdateRollback(input *ContinueUpdateRollbackInput) (*ContinueUpdateRollbackOutput, error) {
   347  	req, out := c.ContinueUpdateRollbackRequest(input)
   348  	return out, req.Send()
   349  }
   350  
   351  // ContinueUpdateRollbackWithContext is the same as ContinueUpdateRollback with the addition of
   352  // the ability to pass a context and additional request options.
   353  //
   354  // See ContinueUpdateRollback for details on how to use this API operation.
   355  //
   356  // The context must be non-nil and will be used for request cancellation. If
   357  // the context is nil a panic will occur. In the future the SDK may create
   358  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   359  // for more information on using Contexts.
   360  func (c *CloudFormation) ContinueUpdateRollbackWithContext(ctx aws.Context, input *ContinueUpdateRollbackInput, opts ...request.Option) (*ContinueUpdateRollbackOutput, error) {
   361  	req, out := c.ContinueUpdateRollbackRequest(input)
   362  	req.SetContext(ctx)
   363  	req.ApplyOptions(opts...)
   364  	return out, req.Send()
   365  }
   366  
   367  const opCreateChangeSet = "CreateChangeSet"
   368  
   369  // CreateChangeSetRequest generates a "aws/request.Request" representing the
   370  // client's request for the CreateChangeSet operation. The "output" return
   371  // value will be populated with the request's response once the request completes
   372  // successfully.
   373  //
   374  // Use "Send" method on the returned Request to send the API call to the service.
   375  // the "output" return value is not valid until after Send returns without error.
   376  //
   377  // See CreateChangeSet for more information on using the CreateChangeSet
   378  // API call, and error handling.
   379  //
   380  // This method is useful when you want to inject custom logic or configuration
   381  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   382  //
   383  //
   384  //    // Example sending a request using the CreateChangeSetRequest method.
   385  //    req, resp := client.CreateChangeSetRequest(params)
   386  //
   387  //    err := req.Send()
   388  //    if err == nil { // resp is now filled
   389  //        fmt.Println(resp)
   390  //    }
   391  //
   392  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
   393  func (c *CloudFormation) CreateChangeSetRequest(input *CreateChangeSetInput) (req *request.Request, output *CreateChangeSetOutput) {
   394  	op := &request.Operation{
   395  		Name:       opCreateChangeSet,
   396  		HTTPMethod: "POST",
   397  		HTTPPath:   "/",
   398  	}
   399  
   400  	if input == nil {
   401  		input = &CreateChangeSetInput{}
   402  	}
   403  
   404  	output = &CreateChangeSetOutput{}
   405  	req = c.newRequest(op, input, output)
   406  	return
   407  }
   408  
   409  // CreateChangeSet API operation for AWS CloudFormation.
   410  //
   411  // Creates a list of changes that will be applied to a stack so that you can
   412  // review the changes before executing them. You can create a change set for
   413  // a stack that doesn't exist or an existing stack. If you create a change set
   414  // for a stack that doesn't exist, the change set shows all of the resources
   415  // that CloudFormation will create. If you create a change set for an existing
   416  // stack, CloudFormation compares the stack's information with the information
   417  // that you submit in the change set and lists the differences. Use change sets
   418  // to understand which resources CloudFormation will create or change, and how
   419  // it will change resources in an existing stack, before you create or update
   420  // a stack.
   421  //
   422  // To create a change set for a stack that doesn't exist, for the ChangeSetType
   423  // parameter, specify CREATE. To create a change set for an existing stack,
   424  // specify UPDATE for the ChangeSetType parameter. To create a change set for
   425  // an import operation, specify IMPORT for the ChangeSetType parameter. After
   426  // the CreateChangeSet call successfully completes, CloudFormation starts creating
   427  // the change set. To check the status of the change set or to review it, use
   428  // the DescribeChangeSet action.
   429  //
   430  // When you are satisfied with the changes the change set will make, execute
   431  // the change set by using the ExecuteChangeSet action. CloudFormation doesn't
   432  // make changes until you execute the change set.
   433  //
   434  // To create a change set for the entire stack hierachy, set IncludeNestedStacks
   435  // to True.
   436  //
   437  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   438  // with awserr.Error's Code and Message methods to get detailed information about
   439  // the error.
   440  //
   441  // See the AWS API reference guide for AWS CloudFormation's
   442  // API operation CreateChangeSet for usage and error information.
   443  //
   444  // Returned Error Codes:
   445  //   * ErrCodeAlreadyExistsException "AlreadyExistsException"
   446  //   The resource with the name requested already exists.
   447  //
   448  //   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
   449  //   The template contains resources with capabilities that weren't specified
   450  //   in the Capabilities parameter.
   451  //
   452  //   * ErrCodeLimitExceededException "LimitExceededException"
   453  //   The quota for the resource has already been reached.
   454  //
   455  //   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
   456  //   in the CloudFormation User Guide.
   457  //
   458  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet
   459  func (c *CloudFormation) CreateChangeSet(input *CreateChangeSetInput) (*CreateChangeSetOutput, error) {
   460  	req, out := c.CreateChangeSetRequest(input)
   461  	return out, req.Send()
   462  }
   463  
   464  // CreateChangeSetWithContext is the same as CreateChangeSet with the addition of
   465  // the ability to pass a context and additional request options.
   466  //
   467  // See CreateChangeSet for details on how to use this API operation.
   468  //
   469  // The context must be non-nil and will be used for request cancellation. If
   470  // the context is nil a panic will occur. In the future the SDK may create
   471  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   472  // for more information on using Contexts.
   473  func (c *CloudFormation) CreateChangeSetWithContext(ctx aws.Context, input *CreateChangeSetInput, opts ...request.Option) (*CreateChangeSetOutput, error) {
   474  	req, out := c.CreateChangeSetRequest(input)
   475  	req.SetContext(ctx)
   476  	req.ApplyOptions(opts...)
   477  	return out, req.Send()
   478  }
   479  
   480  const opCreateStack = "CreateStack"
   481  
   482  // CreateStackRequest generates a "aws/request.Request" representing the
   483  // client's request for the CreateStack operation. The "output" return
   484  // value will be populated with the request's response once the request completes
   485  // successfully.
   486  //
   487  // Use "Send" method on the returned Request to send the API call to the service.
   488  // the "output" return value is not valid until after Send returns without error.
   489  //
   490  // See CreateStack for more information on using the CreateStack
   491  // API call, and error handling.
   492  //
   493  // This method is useful when you want to inject custom logic or configuration
   494  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   495  //
   496  //
   497  //    // Example sending a request using the CreateStackRequest method.
   498  //    req, resp := client.CreateStackRequest(params)
   499  //
   500  //    err := req.Send()
   501  //    if err == nil { // resp is now filled
   502  //        fmt.Println(resp)
   503  //    }
   504  //
   505  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
   506  func (c *CloudFormation) CreateStackRequest(input *CreateStackInput) (req *request.Request, output *CreateStackOutput) {
   507  	op := &request.Operation{
   508  		Name:       opCreateStack,
   509  		HTTPMethod: "POST",
   510  		HTTPPath:   "/",
   511  	}
   512  
   513  	if input == nil {
   514  		input = &CreateStackInput{}
   515  	}
   516  
   517  	output = &CreateStackOutput{}
   518  	req = c.newRequest(op, input, output)
   519  	return
   520  }
   521  
   522  // CreateStack API operation for AWS CloudFormation.
   523  //
   524  // Creates a stack as specified in the template. After the call completes successfully,
   525  // the stack creation starts. You can check the status of the stack via the
   526  // DescribeStacks API.
   527  //
   528  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   529  // with awserr.Error's Code and Message methods to get detailed information about
   530  // the error.
   531  //
   532  // See the AWS API reference guide for AWS CloudFormation's
   533  // API operation CreateStack for usage and error information.
   534  //
   535  // Returned Error Codes:
   536  //   * ErrCodeLimitExceededException "LimitExceededException"
   537  //   The quota for the resource has already been reached.
   538  //
   539  //   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
   540  //   in the CloudFormation User Guide.
   541  //
   542  //   * ErrCodeAlreadyExistsException "AlreadyExistsException"
   543  //   The resource with the name requested already exists.
   544  //
   545  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
   546  //   A client request token already exists.
   547  //
   548  //   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
   549  //   The template contains resources with capabilities that weren't specified
   550  //   in the Capabilities parameter.
   551  //
   552  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack
   553  func (c *CloudFormation) CreateStack(input *CreateStackInput) (*CreateStackOutput, error) {
   554  	req, out := c.CreateStackRequest(input)
   555  	return out, req.Send()
   556  }
   557  
   558  // CreateStackWithContext is the same as CreateStack with the addition of
   559  // the ability to pass a context and additional request options.
   560  //
   561  // See CreateStack for details on how to use this API operation.
   562  //
   563  // The context must be non-nil and will be used for request cancellation. If
   564  // the context is nil a panic will occur. In the future the SDK may create
   565  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   566  // for more information on using Contexts.
   567  func (c *CloudFormation) CreateStackWithContext(ctx aws.Context, input *CreateStackInput, opts ...request.Option) (*CreateStackOutput, error) {
   568  	req, out := c.CreateStackRequest(input)
   569  	req.SetContext(ctx)
   570  	req.ApplyOptions(opts...)
   571  	return out, req.Send()
   572  }
   573  
   574  const opCreateStackInstances = "CreateStackInstances"
   575  
   576  // CreateStackInstancesRequest generates a "aws/request.Request" representing the
   577  // client's request for the CreateStackInstances operation. The "output" return
   578  // value will be populated with the request's response once the request completes
   579  // successfully.
   580  //
   581  // Use "Send" method on the returned Request to send the API call to the service.
   582  // the "output" return value is not valid until after Send returns without error.
   583  //
   584  // See CreateStackInstances for more information on using the CreateStackInstances
   585  // API call, and error handling.
   586  //
   587  // This method is useful when you want to inject custom logic or configuration
   588  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   589  //
   590  //
   591  //    // Example sending a request using the CreateStackInstancesRequest method.
   592  //    req, resp := client.CreateStackInstancesRequest(params)
   593  //
   594  //    err := req.Send()
   595  //    if err == nil { // resp is now filled
   596  //        fmt.Println(resp)
   597  //    }
   598  //
   599  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
   600  func (c *CloudFormation) CreateStackInstancesRequest(input *CreateStackInstancesInput) (req *request.Request, output *CreateStackInstancesOutput) {
   601  	op := &request.Operation{
   602  		Name:       opCreateStackInstances,
   603  		HTTPMethod: "POST",
   604  		HTTPPath:   "/",
   605  	}
   606  
   607  	if input == nil {
   608  		input = &CreateStackInstancesInput{}
   609  	}
   610  
   611  	output = &CreateStackInstancesOutput{}
   612  	req = c.newRequest(op, input, output)
   613  	return
   614  }
   615  
   616  // CreateStackInstances API operation for AWS CloudFormation.
   617  //
   618  // Creates stack instances for the specified accounts, within the specified
   619  // Regions. A stack instance refers to a stack in a specific account and Region.
   620  // You must specify at least one value for either Accounts or DeploymentTargets,
   621  // and you must specify at least one value for Regions.
   622  //
   623  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   624  // with awserr.Error's Code and Message methods to get detailed information about
   625  // the error.
   626  //
   627  // See the AWS API reference guide for AWS CloudFormation's
   628  // API operation CreateStackInstances for usage and error information.
   629  //
   630  // Returned Error Codes:
   631  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
   632  //   The specified stack set doesn't exist.
   633  //
   634  //   * ErrCodeOperationInProgressException "OperationInProgressException"
   635  //   Another operation is currently in progress for this stack set. Only one operation
   636  //   can be performed for a stack set at a given time.
   637  //
   638  //   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
   639  //   The specified operation ID already exists.
   640  //
   641  //   * ErrCodeStaleRequestException "StaleRequestException"
   642  //   Another operation has been performed on this stack set since the specified
   643  //   operation was performed.
   644  //
   645  //   * ErrCodeInvalidOperationException "InvalidOperationException"
   646  //   The specified operation isn't valid.
   647  //
   648  //   * ErrCodeLimitExceededException "LimitExceededException"
   649  //   The quota for the resource has already been reached.
   650  //
   651  //   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
   652  //   in the CloudFormation User Guide.
   653  //
   654  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances
   655  func (c *CloudFormation) CreateStackInstances(input *CreateStackInstancesInput) (*CreateStackInstancesOutput, error) {
   656  	req, out := c.CreateStackInstancesRequest(input)
   657  	return out, req.Send()
   658  }
   659  
   660  // CreateStackInstancesWithContext is the same as CreateStackInstances with the addition of
   661  // the ability to pass a context and additional request options.
   662  //
   663  // See CreateStackInstances for details on how to use this API operation.
   664  //
   665  // The context must be non-nil and will be used for request cancellation. If
   666  // the context is nil a panic will occur. In the future the SDK may create
   667  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   668  // for more information on using Contexts.
   669  func (c *CloudFormation) CreateStackInstancesWithContext(ctx aws.Context, input *CreateStackInstancesInput, opts ...request.Option) (*CreateStackInstancesOutput, error) {
   670  	req, out := c.CreateStackInstancesRequest(input)
   671  	req.SetContext(ctx)
   672  	req.ApplyOptions(opts...)
   673  	return out, req.Send()
   674  }
   675  
   676  const opCreateStackSet = "CreateStackSet"
   677  
   678  // CreateStackSetRequest generates a "aws/request.Request" representing the
   679  // client's request for the CreateStackSet operation. The "output" return
   680  // value will be populated with the request's response once the request completes
   681  // successfully.
   682  //
   683  // Use "Send" method on the returned Request to send the API call to the service.
   684  // the "output" return value is not valid until after Send returns without error.
   685  //
   686  // See CreateStackSet for more information on using the CreateStackSet
   687  // API call, and error handling.
   688  //
   689  // This method is useful when you want to inject custom logic or configuration
   690  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   691  //
   692  //
   693  //    // Example sending a request using the CreateStackSetRequest method.
   694  //    req, resp := client.CreateStackSetRequest(params)
   695  //
   696  //    err := req.Send()
   697  //    if err == nil { // resp is now filled
   698  //        fmt.Println(resp)
   699  //    }
   700  //
   701  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
   702  func (c *CloudFormation) CreateStackSetRequest(input *CreateStackSetInput) (req *request.Request, output *CreateStackSetOutput) {
   703  	op := &request.Operation{
   704  		Name:       opCreateStackSet,
   705  		HTTPMethod: "POST",
   706  		HTTPPath:   "/",
   707  	}
   708  
   709  	if input == nil {
   710  		input = &CreateStackSetInput{}
   711  	}
   712  
   713  	output = &CreateStackSetOutput{}
   714  	req = c.newRequest(op, input, output)
   715  	return
   716  }
   717  
   718  // CreateStackSet API operation for AWS CloudFormation.
   719  //
   720  // Creates a stack set.
   721  //
   722  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   723  // with awserr.Error's Code and Message methods to get detailed information about
   724  // the error.
   725  //
   726  // See the AWS API reference guide for AWS CloudFormation's
   727  // API operation CreateStackSet for usage and error information.
   728  //
   729  // Returned Error Codes:
   730  //   * ErrCodeNameAlreadyExistsException "NameAlreadyExistsException"
   731  //   The specified name is already in use.
   732  //
   733  //   * ErrCodeCreatedButModifiedException "CreatedButModifiedException"
   734  //   The specified resource exists, but has been changed.
   735  //
   736  //   * ErrCodeLimitExceededException "LimitExceededException"
   737  //   The quota for the resource has already been reached.
   738  //
   739  //   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
   740  //   in the CloudFormation User Guide.
   741  //
   742  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet
   743  func (c *CloudFormation) CreateStackSet(input *CreateStackSetInput) (*CreateStackSetOutput, error) {
   744  	req, out := c.CreateStackSetRequest(input)
   745  	return out, req.Send()
   746  }
   747  
   748  // CreateStackSetWithContext is the same as CreateStackSet with the addition of
   749  // the ability to pass a context and additional request options.
   750  //
   751  // See CreateStackSet for details on how to use this API operation.
   752  //
   753  // The context must be non-nil and will be used for request cancellation. If
   754  // the context is nil a panic will occur. In the future the SDK may create
   755  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   756  // for more information on using Contexts.
   757  func (c *CloudFormation) CreateStackSetWithContext(ctx aws.Context, input *CreateStackSetInput, opts ...request.Option) (*CreateStackSetOutput, error) {
   758  	req, out := c.CreateStackSetRequest(input)
   759  	req.SetContext(ctx)
   760  	req.ApplyOptions(opts...)
   761  	return out, req.Send()
   762  }
   763  
   764  const opDeactivateType = "DeactivateType"
   765  
   766  // DeactivateTypeRequest generates a "aws/request.Request" representing the
   767  // client's request for the DeactivateType operation. The "output" return
   768  // value will be populated with the request's response once the request completes
   769  // successfully.
   770  //
   771  // Use "Send" method on the returned Request to send the API call to the service.
   772  // the "output" return value is not valid until after Send returns without error.
   773  //
   774  // See DeactivateType for more information on using the DeactivateType
   775  // API call, and error handling.
   776  //
   777  // This method is useful when you want to inject custom logic or configuration
   778  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   779  //
   780  //
   781  //    // Example sending a request using the DeactivateTypeRequest method.
   782  //    req, resp := client.DeactivateTypeRequest(params)
   783  //
   784  //    err := req.Send()
   785  //    if err == nil { // resp is now filled
   786  //        fmt.Println(resp)
   787  //    }
   788  //
   789  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType
   790  func (c *CloudFormation) DeactivateTypeRequest(input *DeactivateTypeInput) (req *request.Request, output *DeactivateTypeOutput) {
   791  	op := &request.Operation{
   792  		Name:       opDeactivateType,
   793  		HTTPMethod: "POST",
   794  		HTTPPath:   "/",
   795  	}
   796  
   797  	if input == nil {
   798  		input = &DeactivateTypeInput{}
   799  	}
   800  
   801  	output = &DeactivateTypeOutput{}
   802  	req = c.newRequest(op, input, output)
   803  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   804  	return
   805  }
   806  
   807  // DeactivateType API operation for AWS CloudFormation.
   808  //
   809  // Deactivates a public extension that was previously activated in this account
   810  // and region.
   811  //
   812  // Once deactivated, an extension cannot be used in any CloudFormation operation.
   813  // This includes stack update operations where the stack template includes the
   814  // extension, even if no updates are being made to the extension. In addition,
   815  // deactivated extensions are not automatically updated if a new version of
   816  // the extension is released.
   817  //
   818  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   819  // with awserr.Error's Code and Message methods to get detailed information about
   820  // the error.
   821  //
   822  // See the AWS API reference guide for AWS CloudFormation's
   823  // API operation DeactivateType for usage and error information.
   824  //
   825  // Returned Error Codes:
   826  //   * ErrCodeCFNRegistryException "CFNRegistryException"
   827  //   An error occurred during a CloudFormation registry operation.
   828  //
   829  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
   830  //   The specified extension does not exist in the CloudFormation registry.
   831  //
   832  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeactivateType
   833  func (c *CloudFormation) DeactivateType(input *DeactivateTypeInput) (*DeactivateTypeOutput, error) {
   834  	req, out := c.DeactivateTypeRequest(input)
   835  	return out, req.Send()
   836  }
   837  
   838  // DeactivateTypeWithContext is the same as DeactivateType with the addition of
   839  // the ability to pass a context and additional request options.
   840  //
   841  // See DeactivateType for details on how to use this API operation.
   842  //
   843  // The context must be non-nil and will be used for request cancellation. If
   844  // the context is nil a panic will occur. In the future the SDK may create
   845  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   846  // for more information on using Contexts.
   847  func (c *CloudFormation) DeactivateTypeWithContext(ctx aws.Context, input *DeactivateTypeInput, opts ...request.Option) (*DeactivateTypeOutput, error) {
   848  	req, out := c.DeactivateTypeRequest(input)
   849  	req.SetContext(ctx)
   850  	req.ApplyOptions(opts...)
   851  	return out, req.Send()
   852  }
   853  
   854  const opDeleteChangeSet = "DeleteChangeSet"
   855  
   856  // DeleteChangeSetRequest generates a "aws/request.Request" representing the
   857  // client's request for the DeleteChangeSet operation. The "output" return
   858  // value will be populated with the request's response once the request completes
   859  // successfully.
   860  //
   861  // Use "Send" method on the returned Request to send the API call to the service.
   862  // the "output" return value is not valid until after Send returns without error.
   863  //
   864  // See DeleteChangeSet for more information on using the DeleteChangeSet
   865  // API call, and error handling.
   866  //
   867  // This method is useful when you want to inject custom logic or configuration
   868  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   869  //
   870  //
   871  //    // Example sending a request using the DeleteChangeSetRequest method.
   872  //    req, resp := client.DeleteChangeSetRequest(params)
   873  //
   874  //    err := req.Send()
   875  //    if err == nil { // resp is now filled
   876  //        fmt.Println(resp)
   877  //    }
   878  //
   879  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
   880  func (c *CloudFormation) DeleteChangeSetRequest(input *DeleteChangeSetInput) (req *request.Request, output *DeleteChangeSetOutput) {
   881  	op := &request.Operation{
   882  		Name:       opDeleteChangeSet,
   883  		HTTPMethod: "POST",
   884  		HTTPPath:   "/",
   885  	}
   886  
   887  	if input == nil {
   888  		input = &DeleteChangeSetInput{}
   889  	}
   890  
   891  	output = &DeleteChangeSetOutput{}
   892  	req = c.newRequest(op, input, output)
   893  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   894  	return
   895  }
   896  
   897  // DeleteChangeSet API operation for AWS CloudFormation.
   898  //
   899  // Deletes the specified change set. Deleting change sets ensures that no one
   900  // executes the wrong change set.
   901  //
   902  // If the call successfully completes, CloudFormation successfully deleted the
   903  // change set.
   904  //
   905  // If IncludeNestedStacks specifies True during the creation of the nested change
   906  // set, then DeleteChangeSet will delete all change sets that belong to the
   907  // stacks hierarchy and will also delete all change sets for nested stacks with
   908  // the status of REVIEW_IN_PROGRESS.
   909  //
   910  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   911  // with awserr.Error's Code and Message methods to get detailed information about
   912  // the error.
   913  //
   914  // See the AWS API reference guide for AWS CloudFormation's
   915  // API operation DeleteChangeSet for usage and error information.
   916  //
   917  // Returned Error Codes:
   918  //   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
   919  //   The specified change set can't be used to update the stack. For example,
   920  //   the change set status might be CREATE_IN_PROGRESS, or the stack status might
   921  //   be UPDATE_IN_PROGRESS.
   922  //
   923  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet
   924  func (c *CloudFormation) DeleteChangeSet(input *DeleteChangeSetInput) (*DeleteChangeSetOutput, error) {
   925  	req, out := c.DeleteChangeSetRequest(input)
   926  	return out, req.Send()
   927  }
   928  
   929  // DeleteChangeSetWithContext is the same as DeleteChangeSet with the addition of
   930  // the ability to pass a context and additional request options.
   931  //
   932  // See DeleteChangeSet for details on how to use this API operation.
   933  //
   934  // The context must be non-nil and will be used for request cancellation. If
   935  // the context is nil a panic will occur. In the future the SDK may create
   936  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   937  // for more information on using Contexts.
   938  func (c *CloudFormation) DeleteChangeSetWithContext(ctx aws.Context, input *DeleteChangeSetInput, opts ...request.Option) (*DeleteChangeSetOutput, error) {
   939  	req, out := c.DeleteChangeSetRequest(input)
   940  	req.SetContext(ctx)
   941  	req.ApplyOptions(opts...)
   942  	return out, req.Send()
   943  }
   944  
   945  const opDeleteStack = "DeleteStack"
   946  
   947  // DeleteStackRequest generates a "aws/request.Request" representing the
   948  // client's request for the DeleteStack operation. The "output" return
   949  // value will be populated with the request's response once the request completes
   950  // successfully.
   951  //
   952  // Use "Send" method on the returned Request to send the API call to the service.
   953  // the "output" return value is not valid until after Send returns without error.
   954  //
   955  // See DeleteStack for more information on using the DeleteStack
   956  // API call, and error handling.
   957  //
   958  // This method is useful when you want to inject custom logic or configuration
   959  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   960  //
   961  //
   962  //    // Example sending a request using the DeleteStackRequest method.
   963  //    req, resp := client.DeleteStackRequest(params)
   964  //
   965  //    err := req.Send()
   966  //    if err == nil { // resp is now filled
   967  //        fmt.Println(resp)
   968  //    }
   969  //
   970  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
   971  func (c *CloudFormation) DeleteStackRequest(input *DeleteStackInput) (req *request.Request, output *DeleteStackOutput) {
   972  	op := &request.Operation{
   973  		Name:       opDeleteStack,
   974  		HTTPMethod: "POST",
   975  		HTTPPath:   "/",
   976  	}
   977  
   978  	if input == nil {
   979  		input = &DeleteStackInput{}
   980  	}
   981  
   982  	output = &DeleteStackOutput{}
   983  	req = c.newRequest(op, input, output)
   984  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   985  	return
   986  }
   987  
   988  // DeleteStack API operation for AWS CloudFormation.
   989  //
   990  // Deletes a specified stack. Once the call completes successfully, stack deletion
   991  // starts. Deleted stacks do not show up in the DescribeStacks API if the deletion
   992  // has been completed successfully.
   993  //
   994  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   995  // with awserr.Error's Code and Message methods to get detailed information about
   996  // the error.
   997  //
   998  // See the AWS API reference guide for AWS CloudFormation's
   999  // API operation DeleteStack for usage and error information.
  1000  //
  1001  // Returned Error Codes:
  1002  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
  1003  //   A client request token already exists.
  1004  //
  1005  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack
  1006  func (c *CloudFormation) DeleteStack(input *DeleteStackInput) (*DeleteStackOutput, error) {
  1007  	req, out := c.DeleteStackRequest(input)
  1008  	return out, req.Send()
  1009  }
  1010  
  1011  // DeleteStackWithContext is the same as DeleteStack with the addition of
  1012  // the ability to pass a context and additional request options.
  1013  //
  1014  // See DeleteStack for details on how to use this API operation.
  1015  //
  1016  // The context must be non-nil and will be used for request cancellation. If
  1017  // the context is nil a panic will occur. In the future the SDK may create
  1018  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1019  // for more information on using Contexts.
  1020  func (c *CloudFormation) DeleteStackWithContext(ctx aws.Context, input *DeleteStackInput, opts ...request.Option) (*DeleteStackOutput, error) {
  1021  	req, out := c.DeleteStackRequest(input)
  1022  	req.SetContext(ctx)
  1023  	req.ApplyOptions(opts...)
  1024  	return out, req.Send()
  1025  }
  1026  
  1027  const opDeleteStackInstances = "DeleteStackInstances"
  1028  
  1029  // DeleteStackInstancesRequest generates a "aws/request.Request" representing the
  1030  // client's request for the DeleteStackInstances operation. The "output" return
  1031  // value will be populated with the request's response once the request completes
  1032  // successfully.
  1033  //
  1034  // Use "Send" method on the returned Request to send the API call to the service.
  1035  // the "output" return value is not valid until after Send returns without error.
  1036  //
  1037  // See DeleteStackInstances for more information on using the DeleteStackInstances
  1038  // API call, and error handling.
  1039  //
  1040  // This method is useful when you want to inject custom logic or configuration
  1041  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1042  //
  1043  //
  1044  //    // Example sending a request using the DeleteStackInstancesRequest method.
  1045  //    req, resp := client.DeleteStackInstancesRequest(params)
  1046  //
  1047  //    err := req.Send()
  1048  //    if err == nil { // resp is now filled
  1049  //        fmt.Println(resp)
  1050  //    }
  1051  //
  1052  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
  1053  func (c *CloudFormation) DeleteStackInstancesRequest(input *DeleteStackInstancesInput) (req *request.Request, output *DeleteStackInstancesOutput) {
  1054  	op := &request.Operation{
  1055  		Name:       opDeleteStackInstances,
  1056  		HTTPMethod: "POST",
  1057  		HTTPPath:   "/",
  1058  	}
  1059  
  1060  	if input == nil {
  1061  		input = &DeleteStackInstancesInput{}
  1062  	}
  1063  
  1064  	output = &DeleteStackInstancesOutput{}
  1065  	req = c.newRequest(op, input, output)
  1066  	return
  1067  }
  1068  
  1069  // DeleteStackInstances API operation for AWS CloudFormation.
  1070  //
  1071  // Deletes stack instances for the specified accounts, in the specified Regions.
  1072  //
  1073  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1074  // with awserr.Error's Code and Message methods to get detailed information about
  1075  // the error.
  1076  //
  1077  // See the AWS API reference guide for AWS CloudFormation's
  1078  // API operation DeleteStackInstances for usage and error information.
  1079  //
  1080  // Returned Error Codes:
  1081  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  1082  //   The specified stack set doesn't exist.
  1083  //
  1084  //   * ErrCodeOperationInProgressException "OperationInProgressException"
  1085  //   Another operation is currently in progress for this stack set. Only one operation
  1086  //   can be performed for a stack set at a given time.
  1087  //
  1088  //   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
  1089  //   The specified operation ID already exists.
  1090  //
  1091  //   * ErrCodeStaleRequestException "StaleRequestException"
  1092  //   Another operation has been performed on this stack set since the specified
  1093  //   operation was performed.
  1094  //
  1095  //   * ErrCodeInvalidOperationException "InvalidOperationException"
  1096  //   The specified operation isn't valid.
  1097  //
  1098  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances
  1099  func (c *CloudFormation) DeleteStackInstances(input *DeleteStackInstancesInput) (*DeleteStackInstancesOutput, error) {
  1100  	req, out := c.DeleteStackInstancesRequest(input)
  1101  	return out, req.Send()
  1102  }
  1103  
  1104  // DeleteStackInstancesWithContext is the same as DeleteStackInstances with the addition of
  1105  // the ability to pass a context and additional request options.
  1106  //
  1107  // See DeleteStackInstances for details on how to use this API operation.
  1108  //
  1109  // The context must be non-nil and will be used for request cancellation. If
  1110  // the context is nil a panic will occur. In the future the SDK may create
  1111  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1112  // for more information on using Contexts.
  1113  func (c *CloudFormation) DeleteStackInstancesWithContext(ctx aws.Context, input *DeleteStackInstancesInput, opts ...request.Option) (*DeleteStackInstancesOutput, error) {
  1114  	req, out := c.DeleteStackInstancesRequest(input)
  1115  	req.SetContext(ctx)
  1116  	req.ApplyOptions(opts...)
  1117  	return out, req.Send()
  1118  }
  1119  
  1120  const opDeleteStackSet = "DeleteStackSet"
  1121  
  1122  // DeleteStackSetRequest generates a "aws/request.Request" representing the
  1123  // client's request for the DeleteStackSet operation. The "output" return
  1124  // value will be populated with the request's response once the request completes
  1125  // successfully.
  1126  //
  1127  // Use "Send" method on the returned Request to send the API call to the service.
  1128  // the "output" return value is not valid until after Send returns without error.
  1129  //
  1130  // See DeleteStackSet for more information on using the DeleteStackSet
  1131  // API call, and error handling.
  1132  //
  1133  // This method is useful when you want to inject custom logic or configuration
  1134  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1135  //
  1136  //
  1137  //    // Example sending a request using the DeleteStackSetRequest method.
  1138  //    req, resp := client.DeleteStackSetRequest(params)
  1139  //
  1140  //    err := req.Send()
  1141  //    if err == nil { // resp is now filled
  1142  //        fmt.Println(resp)
  1143  //    }
  1144  //
  1145  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
  1146  func (c *CloudFormation) DeleteStackSetRequest(input *DeleteStackSetInput) (req *request.Request, output *DeleteStackSetOutput) {
  1147  	op := &request.Operation{
  1148  		Name:       opDeleteStackSet,
  1149  		HTTPMethod: "POST",
  1150  		HTTPPath:   "/",
  1151  	}
  1152  
  1153  	if input == nil {
  1154  		input = &DeleteStackSetInput{}
  1155  	}
  1156  
  1157  	output = &DeleteStackSetOutput{}
  1158  	req = c.newRequest(op, input, output)
  1159  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1160  	return
  1161  }
  1162  
  1163  // DeleteStackSet API operation for AWS CloudFormation.
  1164  //
  1165  // Deletes a stack set. Before you can delete a stack set, all of its member
  1166  // stack instances must be deleted. For more information about how to do this,
  1167  // see DeleteStackInstances.
  1168  //
  1169  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1170  // with awserr.Error's Code and Message methods to get detailed information about
  1171  // the error.
  1172  //
  1173  // See the AWS API reference guide for AWS CloudFormation's
  1174  // API operation DeleteStackSet for usage and error information.
  1175  //
  1176  // Returned Error Codes:
  1177  //   * ErrCodeStackSetNotEmptyException "StackSetNotEmptyException"
  1178  //   You can't yet delete this stack set, because it still contains one or more
  1179  //   stack instances. Delete all stack instances from the stack set before deleting
  1180  //   the stack set.
  1181  //
  1182  //   * ErrCodeOperationInProgressException "OperationInProgressException"
  1183  //   Another operation is currently in progress for this stack set. Only one operation
  1184  //   can be performed for a stack set at a given time.
  1185  //
  1186  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet
  1187  func (c *CloudFormation) DeleteStackSet(input *DeleteStackSetInput) (*DeleteStackSetOutput, error) {
  1188  	req, out := c.DeleteStackSetRequest(input)
  1189  	return out, req.Send()
  1190  }
  1191  
  1192  // DeleteStackSetWithContext is the same as DeleteStackSet with the addition of
  1193  // the ability to pass a context and additional request options.
  1194  //
  1195  // See DeleteStackSet for details on how to use this API operation.
  1196  //
  1197  // The context must be non-nil and will be used for request cancellation. If
  1198  // the context is nil a panic will occur. In the future the SDK may create
  1199  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1200  // for more information on using Contexts.
  1201  func (c *CloudFormation) DeleteStackSetWithContext(ctx aws.Context, input *DeleteStackSetInput, opts ...request.Option) (*DeleteStackSetOutput, error) {
  1202  	req, out := c.DeleteStackSetRequest(input)
  1203  	req.SetContext(ctx)
  1204  	req.ApplyOptions(opts...)
  1205  	return out, req.Send()
  1206  }
  1207  
  1208  const opDeregisterType = "DeregisterType"
  1209  
  1210  // DeregisterTypeRequest generates a "aws/request.Request" representing the
  1211  // client's request for the DeregisterType operation. The "output" return
  1212  // value will be populated with the request's response once the request completes
  1213  // successfully.
  1214  //
  1215  // Use "Send" method on the returned Request to send the API call to the service.
  1216  // the "output" return value is not valid until after Send returns without error.
  1217  //
  1218  // See DeregisterType for more information on using the DeregisterType
  1219  // API call, and error handling.
  1220  //
  1221  // This method is useful when you want to inject custom logic or configuration
  1222  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1223  //
  1224  //
  1225  //    // Example sending a request using the DeregisterTypeRequest method.
  1226  //    req, resp := client.DeregisterTypeRequest(params)
  1227  //
  1228  //    err := req.Send()
  1229  //    if err == nil { // resp is now filled
  1230  //        fmt.Println(resp)
  1231  //    }
  1232  //
  1233  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
  1234  func (c *CloudFormation) DeregisterTypeRequest(input *DeregisterTypeInput) (req *request.Request, output *DeregisterTypeOutput) {
  1235  	op := &request.Operation{
  1236  		Name:       opDeregisterType,
  1237  		HTTPMethod: "POST",
  1238  		HTTPPath:   "/",
  1239  	}
  1240  
  1241  	if input == nil {
  1242  		input = &DeregisterTypeInput{}
  1243  	}
  1244  
  1245  	output = &DeregisterTypeOutput{}
  1246  	req = c.newRequest(op, input, output)
  1247  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1248  	return
  1249  }
  1250  
  1251  // DeregisterType API operation for AWS CloudFormation.
  1252  //
  1253  // Marks an extension or extension version as DEPRECATED in the CloudFormation
  1254  // registry, removing it from active use. Deprecated extensions or extension
  1255  // versions cannot be used in CloudFormation operations.
  1256  //
  1257  // To deregister an entire extension, you must individually deregister all active
  1258  // versions of that extension. If an extension has only a single active version,
  1259  // deregistering that version results in the extension itself being deregistered
  1260  // and marked as deprecated in the registry.
  1261  //
  1262  // You cannot deregister the default version of an extension if there are other
  1263  // active version of that extension. If you do deregister the default version
  1264  // of an extension, the textensionype itself is deregistered as well and marked
  1265  // as deprecated.
  1266  //
  1267  // To view the deprecation status of an extension or extension version, use
  1268  // DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html).
  1269  //
  1270  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1271  // with awserr.Error's Code and Message methods to get detailed information about
  1272  // the error.
  1273  //
  1274  // See the AWS API reference guide for AWS CloudFormation's
  1275  // API operation DeregisterType for usage and error information.
  1276  //
  1277  // Returned Error Codes:
  1278  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  1279  //   An error occurred during a CloudFormation registry operation.
  1280  //
  1281  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
  1282  //   The specified extension does not exist in the CloudFormation registry.
  1283  //
  1284  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType
  1285  func (c *CloudFormation) DeregisterType(input *DeregisterTypeInput) (*DeregisterTypeOutput, error) {
  1286  	req, out := c.DeregisterTypeRequest(input)
  1287  	return out, req.Send()
  1288  }
  1289  
  1290  // DeregisterTypeWithContext is the same as DeregisterType with the addition of
  1291  // the ability to pass a context and additional request options.
  1292  //
  1293  // See DeregisterType for details on how to use this API operation.
  1294  //
  1295  // The context must be non-nil and will be used for request cancellation. If
  1296  // the context is nil a panic will occur. In the future the SDK may create
  1297  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1298  // for more information on using Contexts.
  1299  func (c *CloudFormation) DeregisterTypeWithContext(ctx aws.Context, input *DeregisterTypeInput, opts ...request.Option) (*DeregisterTypeOutput, error) {
  1300  	req, out := c.DeregisterTypeRequest(input)
  1301  	req.SetContext(ctx)
  1302  	req.ApplyOptions(opts...)
  1303  	return out, req.Send()
  1304  }
  1305  
  1306  const opDescribeAccountLimits = "DescribeAccountLimits"
  1307  
  1308  // DescribeAccountLimitsRequest generates a "aws/request.Request" representing the
  1309  // client's request for the DescribeAccountLimits operation. The "output" return
  1310  // value will be populated with the request's response once the request completes
  1311  // successfully.
  1312  //
  1313  // Use "Send" method on the returned Request to send the API call to the service.
  1314  // the "output" return value is not valid until after Send returns without error.
  1315  //
  1316  // See DescribeAccountLimits for more information on using the DescribeAccountLimits
  1317  // API call, and error handling.
  1318  //
  1319  // This method is useful when you want to inject custom logic or configuration
  1320  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1321  //
  1322  //
  1323  //    // Example sending a request using the DescribeAccountLimitsRequest method.
  1324  //    req, resp := client.DescribeAccountLimitsRequest(params)
  1325  //
  1326  //    err := req.Send()
  1327  //    if err == nil { // resp is now filled
  1328  //        fmt.Println(resp)
  1329  //    }
  1330  //
  1331  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
  1332  func (c *CloudFormation) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput) (req *request.Request, output *DescribeAccountLimitsOutput) {
  1333  	op := &request.Operation{
  1334  		Name:       opDescribeAccountLimits,
  1335  		HTTPMethod: "POST",
  1336  		HTTPPath:   "/",
  1337  		Paginator: &request.Paginator{
  1338  			InputTokens:     []string{"NextToken"},
  1339  			OutputTokens:    []string{"NextToken"},
  1340  			LimitToken:      "",
  1341  			TruncationToken: "",
  1342  		},
  1343  	}
  1344  
  1345  	if input == nil {
  1346  		input = &DescribeAccountLimitsInput{}
  1347  	}
  1348  
  1349  	output = &DescribeAccountLimitsOutput{}
  1350  	req = c.newRequest(op, input, output)
  1351  	return
  1352  }
  1353  
  1354  // DescribeAccountLimits API operation for AWS CloudFormation.
  1355  //
  1356  // Retrieves your account's CloudFormation limits, such as the maximum number
  1357  // of stacks that you can create in your account. For more information about
  1358  // account limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
  1359  // in the CloudFormation User Guide.
  1360  //
  1361  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1362  // with awserr.Error's Code and Message methods to get detailed information about
  1363  // the error.
  1364  //
  1365  // See the AWS API reference guide for AWS CloudFormation's
  1366  // API operation DescribeAccountLimits for usage and error information.
  1367  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits
  1368  func (c *CloudFormation) DescribeAccountLimits(input *DescribeAccountLimitsInput) (*DescribeAccountLimitsOutput, error) {
  1369  	req, out := c.DescribeAccountLimitsRequest(input)
  1370  	return out, req.Send()
  1371  }
  1372  
  1373  // DescribeAccountLimitsWithContext is the same as DescribeAccountLimits with the addition of
  1374  // the ability to pass a context and additional request options.
  1375  //
  1376  // See DescribeAccountLimits for details on how to use this API operation.
  1377  //
  1378  // The context must be non-nil and will be used for request cancellation. If
  1379  // the context is nil a panic will occur. In the future the SDK may create
  1380  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1381  // for more information on using Contexts.
  1382  func (c *CloudFormation) DescribeAccountLimitsWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, opts ...request.Option) (*DescribeAccountLimitsOutput, error) {
  1383  	req, out := c.DescribeAccountLimitsRequest(input)
  1384  	req.SetContext(ctx)
  1385  	req.ApplyOptions(opts...)
  1386  	return out, req.Send()
  1387  }
  1388  
  1389  // DescribeAccountLimitsPages iterates over the pages of a DescribeAccountLimits operation,
  1390  // calling the "fn" function with the response data for each page. To stop
  1391  // iterating, return false from the fn function.
  1392  //
  1393  // See DescribeAccountLimits method for more information on how to use this operation.
  1394  //
  1395  // Note: This operation can generate multiple requests to a service.
  1396  //
  1397  //    // Example iterating over at most 3 pages of a DescribeAccountLimits operation.
  1398  //    pageNum := 0
  1399  //    err := client.DescribeAccountLimitsPages(params,
  1400  //        func(page *cloudformation.DescribeAccountLimitsOutput, lastPage bool) bool {
  1401  //            pageNum++
  1402  //            fmt.Println(page)
  1403  //            return pageNum <= 3
  1404  //        })
  1405  //
  1406  func (c *CloudFormation) DescribeAccountLimitsPages(input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool) error {
  1407  	return c.DescribeAccountLimitsPagesWithContext(aws.BackgroundContext(), input, fn)
  1408  }
  1409  
  1410  // DescribeAccountLimitsPagesWithContext same as DescribeAccountLimitsPages except
  1411  // it takes a Context and allows setting request options on the pages.
  1412  //
  1413  // The context must be non-nil and will be used for request cancellation. If
  1414  // the context is nil a panic will occur. In the future the SDK may create
  1415  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1416  // for more information on using Contexts.
  1417  func (c *CloudFormation) DescribeAccountLimitsPagesWithContext(ctx aws.Context, input *DescribeAccountLimitsInput, fn func(*DescribeAccountLimitsOutput, bool) bool, opts ...request.Option) error {
  1418  	p := request.Pagination{
  1419  		NewRequest: func() (*request.Request, error) {
  1420  			var inCpy *DescribeAccountLimitsInput
  1421  			if input != nil {
  1422  				tmp := *input
  1423  				inCpy = &tmp
  1424  			}
  1425  			req, _ := c.DescribeAccountLimitsRequest(inCpy)
  1426  			req.SetContext(ctx)
  1427  			req.ApplyOptions(opts...)
  1428  			return req, nil
  1429  		},
  1430  	}
  1431  
  1432  	for p.Next() {
  1433  		if !fn(p.Page().(*DescribeAccountLimitsOutput), !p.HasNextPage()) {
  1434  			break
  1435  		}
  1436  	}
  1437  
  1438  	return p.Err()
  1439  }
  1440  
  1441  const opDescribeChangeSet = "DescribeChangeSet"
  1442  
  1443  // DescribeChangeSetRequest generates a "aws/request.Request" representing the
  1444  // client's request for the DescribeChangeSet operation. The "output" return
  1445  // value will be populated with the request's response once the request completes
  1446  // successfully.
  1447  //
  1448  // Use "Send" method on the returned Request to send the API call to the service.
  1449  // the "output" return value is not valid until after Send returns without error.
  1450  //
  1451  // See DescribeChangeSet for more information on using the DescribeChangeSet
  1452  // API call, and error handling.
  1453  //
  1454  // This method is useful when you want to inject custom logic or configuration
  1455  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1456  //
  1457  //
  1458  //    // Example sending a request using the DescribeChangeSetRequest method.
  1459  //    req, resp := client.DescribeChangeSetRequest(params)
  1460  //
  1461  //    err := req.Send()
  1462  //    if err == nil { // resp is now filled
  1463  //        fmt.Println(resp)
  1464  //    }
  1465  //
  1466  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
  1467  func (c *CloudFormation) DescribeChangeSetRequest(input *DescribeChangeSetInput) (req *request.Request, output *DescribeChangeSetOutput) {
  1468  	op := &request.Operation{
  1469  		Name:       opDescribeChangeSet,
  1470  		HTTPMethod: "POST",
  1471  		HTTPPath:   "/",
  1472  	}
  1473  
  1474  	if input == nil {
  1475  		input = &DescribeChangeSetInput{}
  1476  	}
  1477  
  1478  	output = &DescribeChangeSetOutput{}
  1479  	req = c.newRequest(op, input, output)
  1480  	return
  1481  }
  1482  
  1483  // DescribeChangeSet API operation for AWS CloudFormation.
  1484  //
  1485  // Returns the inputs for the change set and a list of changes that CloudFormation
  1486  // will make if you execute the change set. For more information, see Updating
  1487  // Stacks Using Change Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html)
  1488  // in the CloudFormation User Guide.
  1489  //
  1490  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1491  // with awserr.Error's Code and Message methods to get detailed information about
  1492  // the error.
  1493  //
  1494  // See the AWS API reference guide for AWS CloudFormation's
  1495  // API operation DescribeChangeSet for usage and error information.
  1496  //
  1497  // Returned Error Codes:
  1498  //   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
  1499  //   The specified change set name or ID doesn't exit. To view valid change sets
  1500  //   for a stack, use the ListChangeSets action.
  1501  //
  1502  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet
  1503  func (c *CloudFormation) DescribeChangeSet(input *DescribeChangeSetInput) (*DescribeChangeSetOutput, error) {
  1504  	req, out := c.DescribeChangeSetRequest(input)
  1505  	return out, req.Send()
  1506  }
  1507  
  1508  // DescribeChangeSetWithContext is the same as DescribeChangeSet with the addition of
  1509  // the ability to pass a context and additional request options.
  1510  //
  1511  // See DescribeChangeSet for details on how to use this API operation.
  1512  //
  1513  // The context must be non-nil and will be used for request cancellation. If
  1514  // the context is nil a panic will occur. In the future the SDK may create
  1515  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1516  // for more information on using Contexts.
  1517  func (c *CloudFormation) DescribeChangeSetWithContext(ctx aws.Context, input *DescribeChangeSetInput, opts ...request.Option) (*DescribeChangeSetOutput, error) {
  1518  	req, out := c.DescribeChangeSetRequest(input)
  1519  	req.SetContext(ctx)
  1520  	req.ApplyOptions(opts...)
  1521  	return out, req.Send()
  1522  }
  1523  
  1524  const opDescribePublisher = "DescribePublisher"
  1525  
  1526  // DescribePublisherRequest generates a "aws/request.Request" representing the
  1527  // client's request for the DescribePublisher operation. The "output" return
  1528  // value will be populated with the request's response once the request completes
  1529  // successfully.
  1530  //
  1531  // Use "Send" method on the returned Request to send the API call to the service.
  1532  // the "output" return value is not valid until after Send returns without error.
  1533  //
  1534  // See DescribePublisher for more information on using the DescribePublisher
  1535  // API call, and error handling.
  1536  //
  1537  // This method is useful when you want to inject custom logic or configuration
  1538  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1539  //
  1540  //
  1541  //    // Example sending a request using the DescribePublisherRequest method.
  1542  //    req, resp := client.DescribePublisherRequest(params)
  1543  //
  1544  //    err := req.Send()
  1545  //    if err == nil { // resp is now filled
  1546  //        fmt.Println(resp)
  1547  //    }
  1548  //
  1549  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher
  1550  func (c *CloudFormation) DescribePublisherRequest(input *DescribePublisherInput) (req *request.Request, output *DescribePublisherOutput) {
  1551  	op := &request.Operation{
  1552  		Name:       opDescribePublisher,
  1553  		HTTPMethod: "POST",
  1554  		HTTPPath:   "/",
  1555  	}
  1556  
  1557  	if input == nil {
  1558  		input = &DescribePublisherInput{}
  1559  	}
  1560  
  1561  	output = &DescribePublisherOutput{}
  1562  	req = c.newRequest(op, input, output)
  1563  	return
  1564  }
  1565  
  1566  // DescribePublisher API operation for AWS CloudFormation.
  1567  //
  1568  // Returns information about a CloudFormation extension publisher.
  1569  //
  1570  // If you do not supply a PublisherId, and you have registered as an extension
  1571  // publisher, DescribePublisher returns information about your own publisher
  1572  // account.
  1573  //
  1574  // For more information on registering as a publisher, see:
  1575  //
  1576  //    * RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html)
  1577  //
  1578  //    * Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
  1579  //    in the CloudFormation CLI User Guide
  1580  //
  1581  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1582  // with awserr.Error's Code and Message methods to get detailed information about
  1583  // the error.
  1584  //
  1585  // See the AWS API reference guide for AWS CloudFormation's
  1586  // API operation DescribePublisher for usage and error information.
  1587  //
  1588  // Returned Error Codes:
  1589  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  1590  //   An error occurred during a CloudFormation registry operation.
  1591  //
  1592  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribePublisher
  1593  func (c *CloudFormation) DescribePublisher(input *DescribePublisherInput) (*DescribePublisherOutput, error) {
  1594  	req, out := c.DescribePublisherRequest(input)
  1595  	return out, req.Send()
  1596  }
  1597  
  1598  // DescribePublisherWithContext is the same as DescribePublisher with the addition of
  1599  // the ability to pass a context and additional request options.
  1600  //
  1601  // See DescribePublisher for details on how to use this API operation.
  1602  //
  1603  // The context must be non-nil and will be used for request cancellation. If
  1604  // the context is nil a panic will occur. In the future the SDK may create
  1605  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1606  // for more information on using Contexts.
  1607  func (c *CloudFormation) DescribePublisherWithContext(ctx aws.Context, input *DescribePublisherInput, opts ...request.Option) (*DescribePublisherOutput, error) {
  1608  	req, out := c.DescribePublisherRequest(input)
  1609  	req.SetContext(ctx)
  1610  	req.ApplyOptions(opts...)
  1611  	return out, req.Send()
  1612  }
  1613  
  1614  const opDescribeStackDriftDetectionStatus = "DescribeStackDriftDetectionStatus"
  1615  
  1616  // DescribeStackDriftDetectionStatusRequest generates a "aws/request.Request" representing the
  1617  // client's request for the DescribeStackDriftDetectionStatus operation. The "output" return
  1618  // value will be populated with the request's response once the request completes
  1619  // successfully.
  1620  //
  1621  // Use "Send" method on the returned Request to send the API call to the service.
  1622  // the "output" return value is not valid until after Send returns without error.
  1623  //
  1624  // See DescribeStackDriftDetectionStatus for more information on using the DescribeStackDriftDetectionStatus
  1625  // API call, and error handling.
  1626  //
  1627  // This method is useful when you want to inject custom logic or configuration
  1628  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1629  //
  1630  //
  1631  //    // Example sending a request using the DescribeStackDriftDetectionStatusRequest method.
  1632  //    req, resp := client.DescribeStackDriftDetectionStatusRequest(params)
  1633  //
  1634  //    err := req.Send()
  1635  //    if err == nil { // resp is now filled
  1636  //        fmt.Println(resp)
  1637  //    }
  1638  //
  1639  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
  1640  func (c *CloudFormation) DescribeStackDriftDetectionStatusRequest(input *DescribeStackDriftDetectionStatusInput) (req *request.Request, output *DescribeStackDriftDetectionStatusOutput) {
  1641  	op := &request.Operation{
  1642  		Name:       opDescribeStackDriftDetectionStatus,
  1643  		HTTPMethod: "POST",
  1644  		HTTPPath:   "/",
  1645  	}
  1646  
  1647  	if input == nil {
  1648  		input = &DescribeStackDriftDetectionStatusInput{}
  1649  	}
  1650  
  1651  	output = &DescribeStackDriftDetectionStatusOutput{}
  1652  	req = c.newRequest(op, input, output)
  1653  	return
  1654  }
  1655  
  1656  // DescribeStackDriftDetectionStatus API operation for AWS CloudFormation.
  1657  //
  1658  // Returns information about a stack drift detection operation. A stack drift
  1659  // detection operation detects whether a stack's actual configuration differs,
  1660  // or has drifted, from it's expected configuration, as defined in the stack
  1661  // template and any values specified as template parameters. A stack is considered
  1662  // to have drifted if one or more of its resources have drifted. For more information
  1663  // on stack and resource drift, see Detecting Unregulated Configuration Changes
  1664  // to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
  1665  //
  1666  // Use DetectStackDrift to initiate a stack drift detection operation. DetectStackDrift
  1667  // returns a StackDriftDetectionId you can use to monitor the progress of the
  1668  // operation using DescribeStackDriftDetectionStatus. Once the drift detection
  1669  // operation has completed, use DescribeStackResourceDrifts to return drift
  1670  // information about the stack and its resources.
  1671  //
  1672  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1673  // with awserr.Error's Code and Message methods to get detailed information about
  1674  // the error.
  1675  //
  1676  // See the AWS API reference guide for AWS CloudFormation's
  1677  // API operation DescribeStackDriftDetectionStatus for usage and error information.
  1678  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus
  1679  func (c *CloudFormation) DescribeStackDriftDetectionStatus(input *DescribeStackDriftDetectionStatusInput) (*DescribeStackDriftDetectionStatusOutput, error) {
  1680  	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
  1681  	return out, req.Send()
  1682  }
  1683  
  1684  // DescribeStackDriftDetectionStatusWithContext is the same as DescribeStackDriftDetectionStatus with the addition of
  1685  // the ability to pass a context and additional request options.
  1686  //
  1687  // See DescribeStackDriftDetectionStatus for details on how to use this API operation.
  1688  //
  1689  // The context must be non-nil and will be used for request cancellation. If
  1690  // the context is nil a panic will occur. In the future the SDK may create
  1691  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1692  // for more information on using Contexts.
  1693  func (c *CloudFormation) DescribeStackDriftDetectionStatusWithContext(ctx aws.Context, input *DescribeStackDriftDetectionStatusInput, opts ...request.Option) (*DescribeStackDriftDetectionStatusOutput, error) {
  1694  	req, out := c.DescribeStackDriftDetectionStatusRequest(input)
  1695  	req.SetContext(ctx)
  1696  	req.ApplyOptions(opts...)
  1697  	return out, req.Send()
  1698  }
  1699  
  1700  const opDescribeStackEvents = "DescribeStackEvents"
  1701  
  1702  // DescribeStackEventsRequest generates a "aws/request.Request" representing the
  1703  // client's request for the DescribeStackEvents operation. The "output" return
  1704  // value will be populated with the request's response once the request completes
  1705  // successfully.
  1706  //
  1707  // Use "Send" method on the returned Request to send the API call to the service.
  1708  // the "output" return value is not valid until after Send returns without error.
  1709  //
  1710  // See DescribeStackEvents for more information on using the DescribeStackEvents
  1711  // API call, and error handling.
  1712  //
  1713  // This method is useful when you want to inject custom logic or configuration
  1714  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1715  //
  1716  //
  1717  //    // Example sending a request using the DescribeStackEventsRequest method.
  1718  //    req, resp := client.DescribeStackEventsRequest(params)
  1719  //
  1720  //    err := req.Send()
  1721  //    if err == nil { // resp is now filled
  1722  //        fmt.Println(resp)
  1723  //    }
  1724  //
  1725  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
  1726  func (c *CloudFormation) DescribeStackEventsRequest(input *DescribeStackEventsInput) (req *request.Request, output *DescribeStackEventsOutput) {
  1727  	op := &request.Operation{
  1728  		Name:       opDescribeStackEvents,
  1729  		HTTPMethod: "POST",
  1730  		HTTPPath:   "/",
  1731  		Paginator: &request.Paginator{
  1732  			InputTokens:     []string{"NextToken"},
  1733  			OutputTokens:    []string{"NextToken"},
  1734  			LimitToken:      "",
  1735  			TruncationToken: "",
  1736  		},
  1737  	}
  1738  
  1739  	if input == nil {
  1740  		input = &DescribeStackEventsInput{}
  1741  	}
  1742  
  1743  	output = &DescribeStackEventsOutput{}
  1744  	req = c.newRequest(op, input, output)
  1745  	return
  1746  }
  1747  
  1748  // DescribeStackEvents API operation for AWS CloudFormation.
  1749  //
  1750  // Returns all stack related events for a specified stack in reverse chronological
  1751  // order. For more information about a stack's event history, go to Stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html)
  1752  // in the CloudFormation User Guide.
  1753  //
  1754  // You can list events for stacks that have failed to create or have been deleted
  1755  // by specifying the unique stack identifier (stack ID).
  1756  //
  1757  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1758  // with awserr.Error's Code and Message methods to get detailed information about
  1759  // the error.
  1760  //
  1761  // See the AWS API reference guide for AWS CloudFormation's
  1762  // API operation DescribeStackEvents for usage and error information.
  1763  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents
  1764  func (c *CloudFormation) DescribeStackEvents(input *DescribeStackEventsInput) (*DescribeStackEventsOutput, error) {
  1765  	req, out := c.DescribeStackEventsRequest(input)
  1766  	return out, req.Send()
  1767  }
  1768  
  1769  // DescribeStackEventsWithContext is the same as DescribeStackEvents with the addition of
  1770  // the ability to pass a context and additional request options.
  1771  //
  1772  // See DescribeStackEvents for details on how to use this API operation.
  1773  //
  1774  // The context must be non-nil and will be used for request cancellation. If
  1775  // the context is nil a panic will occur. In the future the SDK may create
  1776  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1777  // for more information on using Contexts.
  1778  func (c *CloudFormation) DescribeStackEventsWithContext(ctx aws.Context, input *DescribeStackEventsInput, opts ...request.Option) (*DescribeStackEventsOutput, error) {
  1779  	req, out := c.DescribeStackEventsRequest(input)
  1780  	req.SetContext(ctx)
  1781  	req.ApplyOptions(opts...)
  1782  	return out, req.Send()
  1783  }
  1784  
  1785  // DescribeStackEventsPages iterates over the pages of a DescribeStackEvents operation,
  1786  // calling the "fn" function with the response data for each page. To stop
  1787  // iterating, return false from the fn function.
  1788  //
  1789  // See DescribeStackEvents method for more information on how to use this operation.
  1790  //
  1791  // Note: This operation can generate multiple requests to a service.
  1792  //
  1793  //    // Example iterating over at most 3 pages of a DescribeStackEvents operation.
  1794  //    pageNum := 0
  1795  //    err := client.DescribeStackEventsPages(params,
  1796  //        func(page *cloudformation.DescribeStackEventsOutput, lastPage bool) bool {
  1797  //            pageNum++
  1798  //            fmt.Println(page)
  1799  //            return pageNum <= 3
  1800  //        })
  1801  //
  1802  func (c *CloudFormation) DescribeStackEventsPages(input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool) error {
  1803  	return c.DescribeStackEventsPagesWithContext(aws.BackgroundContext(), input, fn)
  1804  }
  1805  
  1806  // DescribeStackEventsPagesWithContext same as DescribeStackEventsPages except
  1807  // it takes a Context and allows setting request options on the pages.
  1808  //
  1809  // The context must be non-nil and will be used for request cancellation. If
  1810  // the context is nil a panic will occur. In the future the SDK may create
  1811  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1812  // for more information on using Contexts.
  1813  func (c *CloudFormation) DescribeStackEventsPagesWithContext(ctx aws.Context, input *DescribeStackEventsInput, fn func(*DescribeStackEventsOutput, bool) bool, opts ...request.Option) error {
  1814  	p := request.Pagination{
  1815  		NewRequest: func() (*request.Request, error) {
  1816  			var inCpy *DescribeStackEventsInput
  1817  			if input != nil {
  1818  				tmp := *input
  1819  				inCpy = &tmp
  1820  			}
  1821  			req, _ := c.DescribeStackEventsRequest(inCpy)
  1822  			req.SetContext(ctx)
  1823  			req.ApplyOptions(opts...)
  1824  			return req, nil
  1825  		},
  1826  	}
  1827  
  1828  	for p.Next() {
  1829  		if !fn(p.Page().(*DescribeStackEventsOutput), !p.HasNextPage()) {
  1830  			break
  1831  		}
  1832  	}
  1833  
  1834  	return p.Err()
  1835  }
  1836  
  1837  const opDescribeStackInstance = "DescribeStackInstance"
  1838  
  1839  // DescribeStackInstanceRequest generates a "aws/request.Request" representing the
  1840  // client's request for the DescribeStackInstance operation. The "output" return
  1841  // value will be populated with the request's response once the request completes
  1842  // successfully.
  1843  //
  1844  // Use "Send" method on the returned Request to send the API call to the service.
  1845  // the "output" return value is not valid until after Send returns without error.
  1846  //
  1847  // See DescribeStackInstance for more information on using the DescribeStackInstance
  1848  // API call, and error handling.
  1849  //
  1850  // This method is useful when you want to inject custom logic or configuration
  1851  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1852  //
  1853  //
  1854  //    // Example sending a request using the DescribeStackInstanceRequest method.
  1855  //    req, resp := client.DescribeStackInstanceRequest(params)
  1856  //
  1857  //    err := req.Send()
  1858  //    if err == nil { // resp is now filled
  1859  //        fmt.Println(resp)
  1860  //    }
  1861  //
  1862  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
  1863  func (c *CloudFormation) DescribeStackInstanceRequest(input *DescribeStackInstanceInput) (req *request.Request, output *DescribeStackInstanceOutput) {
  1864  	op := &request.Operation{
  1865  		Name:       opDescribeStackInstance,
  1866  		HTTPMethod: "POST",
  1867  		HTTPPath:   "/",
  1868  	}
  1869  
  1870  	if input == nil {
  1871  		input = &DescribeStackInstanceInput{}
  1872  	}
  1873  
  1874  	output = &DescribeStackInstanceOutput{}
  1875  	req = c.newRequest(op, input, output)
  1876  	return
  1877  }
  1878  
  1879  // DescribeStackInstance API operation for AWS CloudFormation.
  1880  //
  1881  // Returns the stack instance that's associated with the specified stack set,
  1882  // Amazon Web Services account, and Region.
  1883  //
  1884  // For a list of stack instances that are associated with a specific stack set,
  1885  // use ListStackInstances.
  1886  //
  1887  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1888  // with awserr.Error's Code and Message methods to get detailed information about
  1889  // the error.
  1890  //
  1891  // See the AWS API reference guide for AWS CloudFormation's
  1892  // API operation DescribeStackInstance for usage and error information.
  1893  //
  1894  // Returned Error Codes:
  1895  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  1896  //   The specified stack set doesn't exist.
  1897  //
  1898  //   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
  1899  //   The specified stack instance doesn't exist.
  1900  //
  1901  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance
  1902  func (c *CloudFormation) DescribeStackInstance(input *DescribeStackInstanceInput) (*DescribeStackInstanceOutput, error) {
  1903  	req, out := c.DescribeStackInstanceRequest(input)
  1904  	return out, req.Send()
  1905  }
  1906  
  1907  // DescribeStackInstanceWithContext is the same as DescribeStackInstance with the addition of
  1908  // the ability to pass a context and additional request options.
  1909  //
  1910  // See DescribeStackInstance for details on how to use this API operation.
  1911  //
  1912  // The context must be non-nil and will be used for request cancellation. If
  1913  // the context is nil a panic will occur. In the future the SDK may create
  1914  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1915  // for more information on using Contexts.
  1916  func (c *CloudFormation) DescribeStackInstanceWithContext(ctx aws.Context, input *DescribeStackInstanceInput, opts ...request.Option) (*DescribeStackInstanceOutput, error) {
  1917  	req, out := c.DescribeStackInstanceRequest(input)
  1918  	req.SetContext(ctx)
  1919  	req.ApplyOptions(opts...)
  1920  	return out, req.Send()
  1921  }
  1922  
  1923  const opDescribeStackResource = "DescribeStackResource"
  1924  
  1925  // DescribeStackResourceRequest generates a "aws/request.Request" representing the
  1926  // client's request for the DescribeStackResource operation. The "output" return
  1927  // value will be populated with the request's response once the request completes
  1928  // successfully.
  1929  //
  1930  // Use "Send" method on the returned Request to send the API call to the service.
  1931  // the "output" return value is not valid until after Send returns without error.
  1932  //
  1933  // See DescribeStackResource for more information on using the DescribeStackResource
  1934  // API call, and error handling.
  1935  //
  1936  // This method is useful when you want to inject custom logic or configuration
  1937  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1938  //
  1939  //
  1940  //    // Example sending a request using the DescribeStackResourceRequest method.
  1941  //    req, resp := client.DescribeStackResourceRequest(params)
  1942  //
  1943  //    err := req.Send()
  1944  //    if err == nil { // resp is now filled
  1945  //        fmt.Println(resp)
  1946  //    }
  1947  //
  1948  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
  1949  func (c *CloudFormation) DescribeStackResourceRequest(input *DescribeStackResourceInput) (req *request.Request, output *DescribeStackResourceOutput) {
  1950  	op := &request.Operation{
  1951  		Name:       opDescribeStackResource,
  1952  		HTTPMethod: "POST",
  1953  		HTTPPath:   "/",
  1954  	}
  1955  
  1956  	if input == nil {
  1957  		input = &DescribeStackResourceInput{}
  1958  	}
  1959  
  1960  	output = &DescribeStackResourceOutput{}
  1961  	req = c.newRequest(op, input, output)
  1962  	return
  1963  }
  1964  
  1965  // DescribeStackResource API operation for AWS CloudFormation.
  1966  //
  1967  // Returns a description of the specified resource in the specified stack.
  1968  //
  1969  // For deleted stacks, DescribeStackResource returns resource information for
  1970  // up to 90 days after the stack has been deleted.
  1971  //
  1972  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1973  // with awserr.Error's Code and Message methods to get detailed information about
  1974  // the error.
  1975  //
  1976  // See the AWS API reference guide for AWS CloudFormation's
  1977  // API operation DescribeStackResource for usage and error information.
  1978  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource
  1979  func (c *CloudFormation) DescribeStackResource(input *DescribeStackResourceInput) (*DescribeStackResourceOutput, error) {
  1980  	req, out := c.DescribeStackResourceRequest(input)
  1981  	return out, req.Send()
  1982  }
  1983  
  1984  // DescribeStackResourceWithContext is the same as DescribeStackResource with the addition of
  1985  // the ability to pass a context and additional request options.
  1986  //
  1987  // See DescribeStackResource for details on how to use this API operation.
  1988  //
  1989  // The context must be non-nil and will be used for request cancellation. If
  1990  // the context is nil a panic will occur. In the future the SDK may create
  1991  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1992  // for more information on using Contexts.
  1993  func (c *CloudFormation) DescribeStackResourceWithContext(ctx aws.Context, input *DescribeStackResourceInput, opts ...request.Option) (*DescribeStackResourceOutput, error) {
  1994  	req, out := c.DescribeStackResourceRequest(input)
  1995  	req.SetContext(ctx)
  1996  	req.ApplyOptions(opts...)
  1997  	return out, req.Send()
  1998  }
  1999  
  2000  const opDescribeStackResourceDrifts = "DescribeStackResourceDrifts"
  2001  
  2002  // DescribeStackResourceDriftsRequest generates a "aws/request.Request" representing the
  2003  // client's request for the DescribeStackResourceDrifts operation. The "output" return
  2004  // value will be populated with the request's response once the request completes
  2005  // successfully.
  2006  //
  2007  // Use "Send" method on the returned Request to send the API call to the service.
  2008  // the "output" return value is not valid until after Send returns without error.
  2009  //
  2010  // See DescribeStackResourceDrifts for more information on using the DescribeStackResourceDrifts
  2011  // API call, and error handling.
  2012  //
  2013  // This method is useful when you want to inject custom logic or configuration
  2014  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2015  //
  2016  //
  2017  //    // Example sending a request using the DescribeStackResourceDriftsRequest method.
  2018  //    req, resp := client.DescribeStackResourceDriftsRequest(params)
  2019  //
  2020  //    err := req.Send()
  2021  //    if err == nil { // resp is now filled
  2022  //        fmt.Println(resp)
  2023  //    }
  2024  //
  2025  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
  2026  func (c *CloudFormation) DescribeStackResourceDriftsRequest(input *DescribeStackResourceDriftsInput) (req *request.Request, output *DescribeStackResourceDriftsOutput) {
  2027  	op := &request.Operation{
  2028  		Name:       opDescribeStackResourceDrifts,
  2029  		HTTPMethod: "POST",
  2030  		HTTPPath:   "/",
  2031  		Paginator: &request.Paginator{
  2032  			InputTokens:     []string{"NextToken"},
  2033  			OutputTokens:    []string{"NextToken"},
  2034  			LimitToken:      "MaxResults",
  2035  			TruncationToken: "",
  2036  		},
  2037  	}
  2038  
  2039  	if input == nil {
  2040  		input = &DescribeStackResourceDriftsInput{}
  2041  	}
  2042  
  2043  	output = &DescribeStackResourceDriftsOutput{}
  2044  	req = c.newRequest(op, input, output)
  2045  	return
  2046  }
  2047  
  2048  // DescribeStackResourceDrifts API operation for AWS CloudFormation.
  2049  //
  2050  // Returns drift information for the resources that have been checked for drift
  2051  // in the specified stack. This includes actual and expected configuration values
  2052  // for resources where CloudFormation detects configuration drift.
  2053  //
  2054  // For a given stack, there will be one StackResourceDrift for each stack resource
  2055  // that has been checked for drift. Resources that haven't yet been checked
  2056  // for drift are not included. Resources that do not currently support drift
  2057  // detection are not checked, and so not included. For a list of resources that
  2058  // support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
  2059  //
  2060  // Use DetectStackResourceDrift to detect drift on individual resources, or
  2061  // DetectStackDrift to detect drift on all supported resources for a given stack.
  2062  //
  2063  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2064  // with awserr.Error's Code and Message methods to get detailed information about
  2065  // the error.
  2066  //
  2067  // See the AWS API reference guide for AWS CloudFormation's
  2068  // API operation DescribeStackResourceDrifts for usage and error information.
  2069  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts
  2070  func (c *CloudFormation) DescribeStackResourceDrifts(input *DescribeStackResourceDriftsInput) (*DescribeStackResourceDriftsOutput, error) {
  2071  	req, out := c.DescribeStackResourceDriftsRequest(input)
  2072  	return out, req.Send()
  2073  }
  2074  
  2075  // DescribeStackResourceDriftsWithContext is the same as DescribeStackResourceDrifts with the addition of
  2076  // the ability to pass a context and additional request options.
  2077  //
  2078  // See DescribeStackResourceDrifts for details on how to use this API operation.
  2079  //
  2080  // The context must be non-nil and will be used for request cancellation. If
  2081  // the context is nil a panic will occur. In the future the SDK may create
  2082  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2083  // for more information on using Contexts.
  2084  func (c *CloudFormation) DescribeStackResourceDriftsWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, opts ...request.Option) (*DescribeStackResourceDriftsOutput, error) {
  2085  	req, out := c.DescribeStackResourceDriftsRequest(input)
  2086  	req.SetContext(ctx)
  2087  	req.ApplyOptions(opts...)
  2088  	return out, req.Send()
  2089  }
  2090  
  2091  // DescribeStackResourceDriftsPages iterates over the pages of a DescribeStackResourceDrifts operation,
  2092  // calling the "fn" function with the response data for each page. To stop
  2093  // iterating, return false from the fn function.
  2094  //
  2095  // See DescribeStackResourceDrifts method for more information on how to use this operation.
  2096  //
  2097  // Note: This operation can generate multiple requests to a service.
  2098  //
  2099  //    // Example iterating over at most 3 pages of a DescribeStackResourceDrifts operation.
  2100  //    pageNum := 0
  2101  //    err := client.DescribeStackResourceDriftsPages(params,
  2102  //        func(page *cloudformation.DescribeStackResourceDriftsOutput, lastPage bool) bool {
  2103  //            pageNum++
  2104  //            fmt.Println(page)
  2105  //            return pageNum <= 3
  2106  //        })
  2107  //
  2108  func (c *CloudFormation) DescribeStackResourceDriftsPages(input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool) error {
  2109  	return c.DescribeStackResourceDriftsPagesWithContext(aws.BackgroundContext(), input, fn)
  2110  }
  2111  
  2112  // DescribeStackResourceDriftsPagesWithContext same as DescribeStackResourceDriftsPages except
  2113  // it takes a Context and allows setting request options on the pages.
  2114  //
  2115  // The context must be non-nil and will be used for request cancellation. If
  2116  // the context is nil a panic will occur. In the future the SDK may create
  2117  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2118  // for more information on using Contexts.
  2119  func (c *CloudFormation) DescribeStackResourceDriftsPagesWithContext(ctx aws.Context, input *DescribeStackResourceDriftsInput, fn func(*DescribeStackResourceDriftsOutput, bool) bool, opts ...request.Option) error {
  2120  	p := request.Pagination{
  2121  		NewRequest: func() (*request.Request, error) {
  2122  			var inCpy *DescribeStackResourceDriftsInput
  2123  			if input != nil {
  2124  				tmp := *input
  2125  				inCpy = &tmp
  2126  			}
  2127  			req, _ := c.DescribeStackResourceDriftsRequest(inCpy)
  2128  			req.SetContext(ctx)
  2129  			req.ApplyOptions(opts...)
  2130  			return req, nil
  2131  		},
  2132  	}
  2133  
  2134  	for p.Next() {
  2135  		if !fn(p.Page().(*DescribeStackResourceDriftsOutput), !p.HasNextPage()) {
  2136  			break
  2137  		}
  2138  	}
  2139  
  2140  	return p.Err()
  2141  }
  2142  
  2143  const opDescribeStackResources = "DescribeStackResources"
  2144  
  2145  // DescribeStackResourcesRequest generates a "aws/request.Request" representing the
  2146  // client's request for the DescribeStackResources operation. The "output" return
  2147  // value will be populated with the request's response once the request completes
  2148  // successfully.
  2149  //
  2150  // Use "Send" method on the returned Request to send the API call to the service.
  2151  // the "output" return value is not valid until after Send returns without error.
  2152  //
  2153  // See DescribeStackResources for more information on using the DescribeStackResources
  2154  // API call, and error handling.
  2155  //
  2156  // This method is useful when you want to inject custom logic or configuration
  2157  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2158  //
  2159  //
  2160  //    // Example sending a request using the DescribeStackResourcesRequest method.
  2161  //    req, resp := client.DescribeStackResourcesRequest(params)
  2162  //
  2163  //    err := req.Send()
  2164  //    if err == nil { // resp is now filled
  2165  //        fmt.Println(resp)
  2166  //    }
  2167  //
  2168  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
  2169  func (c *CloudFormation) DescribeStackResourcesRequest(input *DescribeStackResourcesInput) (req *request.Request, output *DescribeStackResourcesOutput) {
  2170  	op := &request.Operation{
  2171  		Name:       opDescribeStackResources,
  2172  		HTTPMethod: "POST",
  2173  		HTTPPath:   "/",
  2174  	}
  2175  
  2176  	if input == nil {
  2177  		input = &DescribeStackResourcesInput{}
  2178  	}
  2179  
  2180  	output = &DescribeStackResourcesOutput{}
  2181  	req = c.newRequest(op, input, output)
  2182  	return
  2183  }
  2184  
  2185  // DescribeStackResources API operation for AWS CloudFormation.
  2186  //
  2187  // Returns Amazon Web Services resource descriptions for running and deleted
  2188  // stacks. If StackName is specified, all the associated resources that are
  2189  // part of the stack are returned. If PhysicalResourceId is specified, the associated
  2190  // resources of the stack that the resource belongs to are returned.
  2191  //
  2192  // Only the first 100 resources will be returned. If your stack has more resources
  2193  // than this, you should use ListStackResources instead.
  2194  //
  2195  // For deleted stacks, DescribeStackResources returns resource information for
  2196  // up to 90 days after the stack has been deleted.
  2197  //
  2198  // You must specify either StackName or PhysicalResourceId, but not both. In
  2199  // addition, you can specify LogicalResourceId to filter the returned result.
  2200  // For more information about resources, the LogicalResourceId and PhysicalResourceId,
  2201  // go to the CloudFormation User Guide (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/).
  2202  //
  2203  // A ValidationError is returned if you specify both StackName and PhysicalResourceId
  2204  // in the same request.
  2205  //
  2206  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2207  // with awserr.Error's Code and Message methods to get detailed information about
  2208  // the error.
  2209  //
  2210  // See the AWS API reference guide for AWS CloudFormation's
  2211  // API operation DescribeStackResources for usage and error information.
  2212  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources
  2213  func (c *CloudFormation) DescribeStackResources(input *DescribeStackResourcesInput) (*DescribeStackResourcesOutput, error) {
  2214  	req, out := c.DescribeStackResourcesRequest(input)
  2215  	return out, req.Send()
  2216  }
  2217  
  2218  // DescribeStackResourcesWithContext is the same as DescribeStackResources with the addition of
  2219  // the ability to pass a context and additional request options.
  2220  //
  2221  // See DescribeStackResources for details on how to use this API operation.
  2222  //
  2223  // The context must be non-nil and will be used for request cancellation. If
  2224  // the context is nil a panic will occur. In the future the SDK may create
  2225  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2226  // for more information on using Contexts.
  2227  func (c *CloudFormation) DescribeStackResourcesWithContext(ctx aws.Context, input *DescribeStackResourcesInput, opts ...request.Option) (*DescribeStackResourcesOutput, error) {
  2228  	req, out := c.DescribeStackResourcesRequest(input)
  2229  	req.SetContext(ctx)
  2230  	req.ApplyOptions(opts...)
  2231  	return out, req.Send()
  2232  }
  2233  
  2234  const opDescribeStackSet = "DescribeStackSet"
  2235  
  2236  // DescribeStackSetRequest generates a "aws/request.Request" representing the
  2237  // client's request for the DescribeStackSet operation. The "output" return
  2238  // value will be populated with the request's response once the request completes
  2239  // successfully.
  2240  //
  2241  // Use "Send" method on the returned Request to send the API call to the service.
  2242  // the "output" return value is not valid until after Send returns without error.
  2243  //
  2244  // See DescribeStackSet for more information on using the DescribeStackSet
  2245  // API call, and error handling.
  2246  //
  2247  // This method is useful when you want to inject custom logic or configuration
  2248  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2249  //
  2250  //
  2251  //    // Example sending a request using the DescribeStackSetRequest method.
  2252  //    req, resp := client.DescribeStackSetRequest(params)
  2253  //
  2254  //    err := req.Send()
  2255  //    if err == nil { // resp is now filled
  2256  //        fmt.Println(resp)
  2257  //    }
  2258  //
  2259  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
  2260  func (c *CloudFormation) DescribeStackSetRequest(input *DescribeStackSetInput) (req *request.Request, output *DescribeStackSetOutput) {
  2261  	op := &request.Operation{
  2262  		Name:       opDescribeStackSet,
  2263  		HTTPMethod: "POST",
  2264  		HTTPPath:   "/",
  2265  	}
  2266  
  2267  	if input == nil {
  2268  		input = &DescribeStackSetInput{}
  2269  	}
  2270  
  2271  	output = &DescribeStackSetOutput{}
  2272  	req = c.newRequest(op, input, output)
  2273  	return
  2274  }
  2275  
  2276  // DescribeStackSet API operation for AWS CloudFormation.
  2277  //
  2278  // Returns the description of the specified stack set.
  2279  //
  2280  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2281  // with awserr.Error's Code and Message methods to get detailed information about
  2282  // the error.
  2283  //
  2284  // See the AWS API reference guide for AWS CloudFormation's
  2285  // API operation DescribeStackSet for usage and error information.
  2286  //
  2287  // Returned Error Codes:
  2288  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  2289  //   The specified stack set doesn't exist.
  2290  //
  2291  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet
  2292  func (c *CloudFormation) DescribeStackSet(input *DescribeStackSetInput) (*DescribeStackSetOutput, error) {
  2293  	req, out := c.DescribeStackSetRequest(input)
  2294  	return out, req.Send()
  2295  }
  2296  
  2297  // DescribeStackSetWithContext is the same as DescribeStackSet with the addition of
  2298  // the ability to pass a context and additional request options.
  2299  //
  2300  // See DescribeStackSet for details on how to use this API operation.
  2301  //
  2302  // The context must be non-nil and will be used for request cancellation. If
  2303  // the context is nil a panic will occur. In the future the SDK may create
  2304  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2305  // for more information on using Contexts.
  2306  func (c *CloudFormation) DescribeStackSetWithContext(ctx aws.Context, input *DescribeStackSetInput, opts ...request.Option) (*DescribeStackSetOutput, error) {
  2307  	req, out := c.DescribeStackSetRequest(input)
  2308  	req.SetContext(ctx)
  2309  	req.ApplyOptions(opts...)
  2310  	return out, req.Send()
  2311  }
  2312  
  2313  const opDescribeStackSetOperation = "DescribeStackSetOperation"
  2314  
  2315  // DescribeStackSetOperationRequest generates a "aws/request.Request" representing the
  2316  // client's request for the DescribeStackSetOperation operation. The "output" return
  2317  // value will be populated with the request's response once the request completes
  2318  // successfully.
  2319  //
  2320  // Use "Send" method on the returned Request to send the API call to the service.
  2321  // the "output" return value is not valid until after Send returns without error.
  2322  //
  2323  // See DescribeStackSetOperation for more information on using the DescribeStackSetOperation
  2324  // API call, and error handling.
  2325  //
  2326  // This method is useful when you want to inject custom logic or configuration
  2327  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2328  //
  2329  //
  2330  //    // Example sending a request using the DescribeStackSetOperationRequest method.
  2331  //    req, resp := client.DescribeStackSetOperationRequest(params)
  2332  //
  2333  //    err := req.Send()
  2334  //    if err == nil { // resp is now filled
  2335  //        fmt.Println(resp)
  2336  //    }
  2337  //
  2338  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
  2339  func (c *CloudFormation) DescribeStackSetOperationRequest(input *DescribeStackSetOperationInput) (req *request.Request, output *DescribeStackSetOperationOutput) {
  2340  	op := &request.Operation{
  2341  		Name:       opDescribeStackSetOperation,
  2342  		HTTPMethod: "POST",
  2343  		HTTPPath:   "/",
  2344  	}
  2345  
  2346  	if input == nil {
  2347  		input = &DescribeStackSetOperationInput{}
  2348  	}
  2349  
  2350  	output = &DescribeStackSetOperationOutput{}
  2351  	req = c.newRequest(op, input, output)
  2352  	return
  2353  }
  2354  
  2355  // DescribeStackSetOperation API operation for AWS CloudFormation.
  2356  //
  2357  // Returns the description of the specified stack set operation.
  2358  //
  2359  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2360  // with awserr.Error's Code and Message methods to get detailed information about
  2361  // the error.
  2362  //
  2363  // See the AWS API reference guide for AWS CloudFormation's
  2364  // API operation DescribeStackSetOperation for usage and error information.
  2365  //
  2366  // Returned Error Codes:
  2367  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  2368  //   The specified stack set doesn't exist.
  2369  //
  2370  //   * ErrCodeOperationNotFoundException "OperationNotFoundException"
  2371  //   The specified ID refers to an operation that doesn't exist.
  2372  //
  2373  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation
  2374  func (c *CloudFormation) DescribeStackSetOperation(input *DescribeStackSetOperationInput) (*DescribeStackSetOperationOutput, error) {
  2375  	req, out := c.DescribeStackSetOperationRequest(input)
  2376  	return out, req.Send()
  2377  }
  2378  
  2379  // DescribeStackSetOperationWithContext is the same as DescribeStackSetOperation with the addition of
  2380  // the ability to pass a context and additional request options.
  2381  //
  2382  // See DescribeStackSetOperation for details on how to use this API operation.
  2383  //
  2384  // The context must be non-nil and will be used for request cancellation. If
  2385  // the context is nil a panic will occur. In the future the SDK may create
  2386  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2387  // for more information on using Contexts.
  2388  func (c *CloudFormation) DescribeStackSetOperationWithContext(ctx aws.Context, input *DescribeStackSetOperationInput, opts ...request.Option) (*DescribeStackSetOperationOutput, error) {
  2389  	req, out := c.DescribeStackSetOperationRequest(input)
  2390  	req.SetContext(ctx)
  2391  	req.ApplyOptions(opts...)
  2392  	return out, req.Send()
  2393  }
  2394  
  2395  const opDescribeStacks = "DescribeStacks"
  2396  
  2397  // DescribeStacksRequest generates a "aws/request.Request" representing the
  2398  // client's request for the DescribeStacks operation. The "output" return
  2399  // value will be populated with the request's response once the request completes
  2400  // successfully.
  2401  //
  2402  // Use "Send" method on the returned Request to send the API call to the service.
  2403  // the "output" return value is not valid until after Send returns without error.
  2404  //
  2405  // See DescribeStacks for more information on using the DescribeStacks
  2406  // API call, and error handling.
  2407  //
  2408  // This method is useful when you want to inject custom logic or configuration
  2409  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2410  //
  2411  //
  2412  //    // Example sending a request using the DescribeStacksRequest method.
  2413  //    req, resp := client.DescribeStacksRequest(params)
  2414  //
  2415  //    err := req.Send()
  2416  //    if err == nil { // resp is now filled
  2417  //        fmt.Println(resp)
  2418  //    }
  2419  //
  2420  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
  2421  func (c *CloudFormation) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
  2422  	op := &request.Operation{
  2423  		Name:       opDescribeStacks,
  2424  		HTTPMethod: "POST",
  2425  		HTTPPath:   "/",
  2426  		Paginator: &request.Paginator{
  2427  			InputTokens:     []string{"NextToken"},
  2428  			OutputTokens:    []string{"NextToken"},
  2429  			LimitToken:      "",
  2430  			TruncationToken: "",
  2431  		},
  2432  	}
  2433  
  2434  	if input == nil {
  2435  		input = &DescribeStacksInput{}
  2436  	}
  2437  
  2438  	output = &DescribeStacksOutput{}
  2439  	req = c.newRequest(op, input, output)
  2440  	return
  2441  }
  2442  
  2443  // DescribeStacks API operation for AWS CloudFormation.
  2444  //
  2445  // Returns the description for the specified stack; if no stack name was specified,
  2446  // then it returns the description for all the stacks created.
  2447  //
  2448  // If the stack does not exist, an ValidationError is returned.
  2449  //
  2450  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2451  // with awserr.Error's Code and Message methods to get detailed information about
  2452  // the error.
  2453  //
  2454  // See the AWS API reference guide for AWS CloudFormation's
  2455  // API operation DescribeStacks for usage and error information.
  2456  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks
  2457  func (c *CloudFormation) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
  2458  	req, out := c.DescribeStacksRequest(input)
  2459  	return out, req.Send()
  2460  }
  2461  
  2462  // DescribeStacksWithContext is the same as DescribeStacks with the addition of
  2463  // the ability to pass a context and additional request options.
  2464  //
  2465  // See DescribeStacks for details on how to use this API operation.
  2466  //
  2467  // The context must be non-nil and will be used for request cancellation. If
  2468  // the context is nil a panic will occur. In the future the SDK may create
  2469  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2470  // for more information on using Contexts.
  2471  func (c *CloudFormation) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
  2472  	req, out := c.DescribeStacksRequest(input)
  2473  	req.SetContext(ctx)
  2474  	req.ApplyOptions(opts...)
  2475  	return out, req.Send()
  2476  }
  2477  
  2478  // DescribeStacksPages iterates over the pages of a DescribeStacks operation,
  2479  // calling the "fn" function with the response data for each page. To stop
  2480  // iterating, return false from the fn function.
  2481  //
  2482  // See DescribeStacks method for more information on how to use this operation.
  2483  //
  2484  // Note: This operation can generate multiple requests to a service.
  2485  //
  2486  //    // Example iterating over at most 3 pages of a DescribeStacks operation.
  2487  //    pageNum := 0
  2488  //    err := client.DescribeStacksPages(params,
  2489  //        func(page *cloudformation.DescribeStacksOutput, lastPage bool) bool {
  2490  //            pageNum++
  2491  //            fmt.Println(page)
  2492  //            return pageNum <= 3
  2493  //        })
  2494  //
  2495  func (c *CloudFormation) DescribeStacksPages(input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool) error {
  2496  	return c.DescribeStacksPagesWithContext(aws.BackgroundContext(), input, fn)
  2497  }
  2498  
  2499  // DescribeStacksPagesWithContext same as DescribeStacksPages except
  2500  // it takes a Context and allows setting request options on the pages.
  2501  //
  2502  // The context must be non-nil and will be used for request cancellation. If
  2503  // the context is nil a panic will occur. In the future the SDK may create
  2504  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2505  // for more information on using Contexts.
  2506  func (c *CloudFormation) DescribeStacksPagesWithContext(ctx aws.Context, input *DescribeStacksInput, fn func(*DescribeStacksOutput, bool) bool, opts ...request.Option) error {
  2507  	p := request.Pagination{
  2508  		NewRequest: func() (*request.Request, error) {
  2509  			var inCpy *DescribeStacksInput
  2510  			if input != nil {
  2511  				tmp := *input
  2512  				inCpy = &tmp
  2513  			}
  2514  			req, _ := c.DescribeStacksRequest(inCpy)
  2515  			req.SetContext(ctx)
  2516  			req.ApplyOptions(opts...)
  2517  			return req, nil
  2518  		},
  2519  	}
  2520  
  2521  	for p.Next() {
  2522  		if !fn(p.Page().(*DescribeStacksOutput), !p.HasNextPage()) {
  2523  			break
  2524  		}
  2525  	}
  2526  
  2527  	return p.Err()
  2528  }
  2529  
  2530  const opDescribeType = "DescribeType"
  2531  
  2532  // DescribeTypeRequest generates a "aws/request.Request" representing the
  2533  // client's request for the DescribeType 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 DescribeType for more information on using the DescribeType
  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 DescribeTypeRequest method.
  2548  //    req, resp := client.DescribeTypeRequest(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/cloudformation-2010-05-15/DescribeType
  2556  func (c *CloudFormation) DescribeTypeRequest(input *DescribeTypeInput) (req *request.Request, output *DescribeTypeOutput) {
  2557  	op := &request.Operation{
  2558  		Name:       opDescribeType,
  2559  		HTTPMethod: "POST",
  2560  		HTTPPath:   "/",
  2561  	}
  2562  
  2563  	if input == nil {
  2564  		input = &DescribeTypeInput{}
  2565  	}
  2566  
  2567  	output = &DescribeTypeOutput{}
  2568  	req = c.newRequest(op, input, output)
  2569  	return
  2570  }
  2571  
  2572  // DescribeType API operation for AWS CloudFormation.
  2573  //
  2574  // Returns detailed information about an extension that has been registered.
  2575  //
  2576  // If you specify a VersionId, DescribeType returns information about that specific
  2577  // extension version. Otherwise, it returns information about the default extension
  2578  // version.
  2579  //
  2580  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2581  // with awserr.Error's Code and Message methods to get detailed information about
  2582  // the error.
  2583  //
  2584  // See the AWS API reference guide for AWS CloudFormation's
  2585  // API operation DescribeType for usage and error information.
  2586  //
  2587  // Returned Error Codes:
  2588  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  2589  //   An error occurred during a CloudFormation registry operation.
  2590  //
  2591  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
  2592  //   The specified extension does not exist in the CloudFormation registry.
  2593  //
  2594  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType
  2595  func (c *CloudFormation) DescribeType(input *DescribeTypeInput) (*DescribeTypeOutput, error) {
  2596  	req, out := c.DescribeTypeRequest(input)
  2597  	return out, req.Send()
  2598  }
  2599  
  2600  // DescribeTypeWithContext is the same as DescribeType with the addition of
  2601  // the ability to pass a context and additional request options.
  2602  //
  2603  // See DescribeType for details on how to use this API operation.
  2604  //
  2605  // The context must be non-nil and will be used for request cancellation. If
  2606  // the context is nil a panic will occur. In the future the SDK may create
  2607  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2608  // for more information on using Contexts.
  2609  func (c *CloudFormation) DescribeTypeWithContext(ctx aws.Context, input *DescribeTypeInput, opts ...request.Option) (*DescribeTypeOutput, error) {
  2610  	req, out := c.DescribeTypeRequest(input)
  2611  	req.SetContext(ctx)
  2612  	req.ApplyOptions(opts...)
  2613  	return out, req.Send()
  2614  }
  2615  
  2616  const opDescribeTypeRegistration = "DescribeTypeRegistration"
  2617  
  2618  // DescribeTypeRegistrationRequest generates a "aws/request.Request" representing the
  2619  // client's request for the DescribeTypeRegistration operation. The "output" return
  2620  // value will be populated with the request's response once the request completes
  2621  // successfully.
  2622  //
  2623  // Use "Send" method on the returned Request to send the API call to the service.
  2624  // the "output" return value is not valid until after Send returns without error.
  2625  //
  2626  // See DescribeTypeRegistration for more information on using the DescribeTypeRegistration
  2627  // API call, and error handling.
  2628  //
  2629  // This method is useful when you want to inject custom logic or configuration
  2630  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2631  //
  2632  //
  2633  //    // Example sending a request using the DescribeTypeRegistrationRequest method.
  2634  //    req, resp := client.DescribeTypeRegistrationRequest(params)
  2635  //
  2636  //    err := req.Send()
  2637  //    if err == nil { // resp is now filled
  2638  //        fmt.Println(resp)
  2639  //    }
  2640  //
  2641  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
  2642  func (c *CloudFormation) DescribeTypeRegistrationRequest(input *DescribeTypeRegistrationInput) (req *request.Request, output *DescribeTypeRegistrationOutput) {
  2643  	op := &request.Operation{
  2644  		Name:       opDescribeTypeRegistration,
  2645  		HTTPMethod: "POST",
  2646  		HTTPPath:   "/",
  2647  	}
  2648  
  2649  	if input == nil {
  2650  		input = &DescribeTypeRegistrationInput{}
  2651  	}
  2652  
  2653  	output = &DescribeTypeRegistrationOutput{}
  2654  	req = c.newRequest(op, input, output)
  2655  	return
  2656  }
  2657  
  2658  // DescribeTypeRegistration API operation for AWS CloudFormation.
  2659  //
  2660  // Returns information about an extension's registration, including its current
  2661  // status and type and version identifiers.
  2662  //
  2663  // When you initiate a registration request using RegisterType , you can then
  2664  // use DescribeTypeRegistration to monitor the progress of that registration
  2665  // request.
  2666  //
  2667  // Once the registration request has completed, use DescribeType to return detailed
  2668  // information about an extension.
  2669  //
  2670  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2671  // with awserr.Error's Code and Message methods to get detailed information about
  2672  // the error.
  2673  //
  2674  // See the AWS API reference guide for AWS CloudFormation's
  2675  // API operation DescribeTypeRegistration for usage and error information.
  2676  //
  2677  // Returned Error Codes:
  2678  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  2679  //   An error occurred during a CloudFormation registry operation.
  2680  //
  2681  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration
  2682  func (c *CloudFormation) DescribeTypeRegistration(input *DescribeTypeRegistrationInput) (*DescribeTypeRegistrationOutput, error) {
  2683  	req, out := c.DescribeTypeRegistrationRequest(input)
  2684  	return out, req.Send()
  2685  }
  2686  
  2687  // DescribeTypeRegistrationWithContext is the same as DescribeTypeRegistration with the addition of
  2688  // the ability to pass a context and additional request options.
  2689  //
  2690  // See DescribeTypeRegistration for details on how to use this API operation.
  2691  //
  2692  // The context must be non-nil and will be used for request cancellation. If
  2693  // the context is nil a panic will occur. In the future the SDK may create
  2694  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2695  // for more information on using Contexts.
  2696  func (c *CloudFormation) DescribeTypeRegistrationWithContext(ctx aws.Context, input *DescribeTypeRegistrationInput, opts ...request.Option) (*DescribeTypeRegistrationOutput, error) {
  2697  	req, out := c.DescribeTypeRegistrationRequest(input)
  2698  	req.SetContext(ctx)
  2699  	req.ApplyOptions(opts...)
  2700  	return out, req.Send()
  2701  }
  2702  
  2703  const opDetectStackDrift = "DetectStackDrift"
  2704  
  2705  // DetectStackDriftRequest generates a "aws/request.Request" representing the
  2706  // client's request for the DetectStackDrift operation. The "output" return
  2707  // value will be populated with the request's response once the request completes
  2708  // successfully.
  2709  //
  2710  // Use "Send" method on the returned Request to send the API call to the service.
  2711  // the "output" return value is not valid until after Send returns without error.
  2712  //
  2713  // See DetectStackDrift for more information on using the DetectStackDrift
  2714  // API call, and error handling.
  2715  //
  2716  // This method is useful when you want to inject custom logic or configuration
  2717  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2718  //
  2719  //
  2720  //    // Example sending a request using the DetectStackDriftRequest method.
  2721  //    req, resp := client.DetectStackDriftRequest(params)
  2722  //
  2723  //    err := req.Send()
  2724  //    if err == nil { // resp is now filled
  2725  //        fmt.Println(resp)
  2726  //    }
  2727  //
  2728  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
  2729  func (c *CloudFormation) DetectStackDriftRequest(input *DetectStackDriftInput) (req *request.Request, output *DetectStackDriftOutput) {
  2730  	op := &request.Operation{
  2731  		Name:       opDetectStackDrift,
  2732  		HTTPMethod: "POST",
  2733  		HTTPPath:   "/",
  2734  	}
  2735  
  2736  	if input == nil {
  2737  		input = &DetectStackDriftInput{}
  2738  	}
  2739  
  2740  	output = &DetectStackDriftOutput{}
  2741  	req = c.newRequest(op, input, output)
  2742  	return
  2743  }
  2744  
  2745  // DetectStackDrift API operation for AWS CloudFormation.
  2746  //
  2747  // Detects whether a stack's actual configuration differs, or has drifted, from
  2748  // it's expected configuration, as defined in the stack template and any values
  2749  // specified as template parameters. For each resource in the stack that supports
  2750  // drift detection, CloudFormation compares the actual configuration of the
  2751  // resource with its expected template configuration. Only resource properties
  2752  // explicitly defined in the stack template are checked for drift. A stack is
  2753  // considered to have drifted if one or more of its resources differ from their
  2754  // expected template configurations. For more information, see Detecting Unregulated
  2755  // Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
  2756  //
  2757  // Use DetectStackDrift to detect drift on all supported resources for a given
  2758  // stack, or DetectStackResourceDrift to detect drift on individual resources.
  2759  //
  2760  // For a list of stack resources that currently support drift detection, see
  2761  // Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
  2762  //
  2763  // DetectStackDrift can take up to several minutes, depending on the number
  2764  // of resources contained within the stack. Use DescribeStackDriftDetectionStatus
  2765  // to monitor the progress of a detect stack drift operation. Once the drift
  2766  // detection operation has completed, use DescribeStackResourceDrifts to return
  2767  // drift information about the stack and its resources.
  2768  //
  2769  // When detecting drift on a stack, CloudFormation does not detect drift on
  2770  // any nested stacks belonging to that stack. Perform DetectStackDrift directly
  2771  // on the nested stack itself.
  2772  //
  2773  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2774  // with awserr.Error's Code and Message methods to get detailed information about
  2775  // the error.
  2776  //
  2777  // See the AWS API reference guide for AWS CloudFormation's
  2778  // API operation DetectStackDrift for usage and error information.
  2779  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift
  2780  func (c *CloudFormation) DetectStackDrift(input *DetectStackDriftInput) (*DetectStackDriftOutput, error) {
  2781  	req, out := c.DetectStackDriftRequest(input)
  2782  	return out, req.Send()
  2783  }
  2784  
  2785  // DetectStackDriftWithContext is the same as DetectStackDrift with the addition of
  2786  // the ability to pass a context and additional request options.
  2787  //
  2788  // See DetectStackDrift for details on how to use this API operation.
  2789  //
  2790  // The context must be non-nil and will be used for request cancellation. If
  2791  // the context is nil a panic will occur. In the future the SDK may create
  2792  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2793  // for more information on using Contexts.
  2794  func (c *CloudFormation) DetectStackDriftWithContext(ctx aws.Context, input *DetectStackDriftInput, opts ...request.Option) (*DetectStackDriftOutput, error) {
  2795  	req, out := c.DetectStackDriftRequest(input)
  2796  	req.SetContext(ctx)
  2797  	req.ApplyOptions(opts...)
  2798  	return out, req.Send()
  2799  }
  2800  
  2801  const opDetectStackResourceDrift = "DetectStackResourceDrift"
  2802  
  2803  // DetectStackResourceDriftRequest generates a "aws/request.Request" representing the
  2804  // client's request for the DetectStackResourceDrift operation. The "output" return
  2805  // value will be populated with the request's response once the request completes
  2806  // successfully.
  2807  //
  2808  // Use "Send" method on the returned Request to send the API call to the service.
  2809  // the "output" return value is not valid until after Send returns without error.
  2810  //
  2811  // See DetectStackResourceDrift for more information on using the DetectStackResourceDrift
  2812  // API call, and error handling.
  2813  //
  2814  // This method is useful when you want to inject custom logic or configuration
  2815  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2816  //
  2817  //
  2818  //    // Example sending a request using the DetectStackResourceDriftRequest method.
  2819  //    req, resp := client.DetectStackResourceDriftRequest(params)
  2820  //
  2821  //    err := req.Send()
  2822  //    if err == nil { // resp is now filled
  2823  //        fmt.Println(resp)
  2824  //    }
  2825  //
  2826  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
  2827  func (c *CloudFormation) DetectStackResourceDriftRequest(input *DetectStackResourceDriftInput) (req *request.Request, output *DetectStackResourceDriftOutput) {
  2828  	op := &request.Operation{
  2829  		Name:       opDetectStackResourceDrift,
  2830  		HTTPMethod: "POST",
  2831  		HTTPPath:   "/",
  2832  	}
  2833  
  2834  	if input == nil {
  2835  		input = &DetectStackResourceDriftInput{}
  2836  	}
  2837  
  2838  	output = &DetectStackResourceDriftOutput{}
  2839  	req = c.newRequest(op, input, output)
  2840  	return
  2841  }
  2842  
  2843  // DetectStackResourceDrift API operation for AWS CloudFormation.
  2844  //
  2845  // Returns information about whether a resource's actual configuration differs,
  2846  // or has drifted, from it's expected configuration, as defined in the stack
  2847  // template and any values specified as template parameters. This information
  2848  // includes actual and expected property values for resources in which CloudFormation
  2849  // detects drift. Only resource properties explicitly defined in the stack template
  2850  // are checked for drift. For more information about stack and resource drift,
  2851  // see Detecting Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
  2852  //
  2853  // Use DetectStackResourceDrift to detect drift on individual resources, or
  2854  // DetectStackDrift to detect drift on all resources in a given stack that support
  2855  // drift detection.
  2856  //
  2857  // Resources that do not currently support drift detection cannot be checked.
  2858  // For a list of resources that support drift detection, see Resources that
  2859  // Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
  2860  //
  2861  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2862  // with awserr.Error's Code and Message methods to get detailed information about
  2863  // the error.
  2864  //
  2865  // See the AWS API reference guide for AWS CloudFormation's
  2866  // API operation DetectStackResourceDrift for usage and error information.
  2867  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift
  2868  func (c *CloudFormation) DetectStackResourceDrift(input *DetectStackResourceDriftInput) (*DetectStackResourceDriftOutput, error) {
  2869  	req, out := c.DetectStackResourceDriftRequest(input)
  2870  	return out, req.Send()
  2871  }
  2872  
  2873  // DetectStackResourceDriftWithContext is the same as DetectStackResourceDrift with the addition of
  2874  // the ability to pass a context and additional request options.
  2875  //
  2876  // See DetectStackResourceDrift for details on how to use this API operation.
  2877  //
  2878  // The context must be non-nil and will be used for request cancellation. If
  2879  // the context is nil a panic will occur. In the future the SDK may create
  2880  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2881  // for more information on using Contexts.
  2882  func (c *CloudFormation) DetectStackResourceDriftWithContext(ctx aws.Context, input *DetectStackResourceDriftInput, opts ...request.Option) (*DetectStackResourceDriftOutput, error) {
  2883  	req, out := c.DetectStackResourceDriftRequest(input)
  2884  	req.SetContext(ctx)
  2885  	req.ApplyOptions(opts...)
  2886  	return out, req.Send()
  2887  }
  2888  
  2889  const opDetectStackSetDrift = "DetectStackSetDrift"
  2890  
  2891  // DetectStackSetDriftRequest generates a "aws/request.Request" representing the
  2892  // client's request for the DetectStackSetDrift operation. The "output" return
  2893  // value will be populated with the request's response once the request completes
  2894  // successfully.
  2895  //
  2896  // Use "Send" method on the returned Request to send the API call to the service.
  2897  // the "output" return value is not valid until after Send returns without error.
  2898  //
  2899  // See DetectStackSetDrift for more information on using the DetectStackSetDrift
  2900  // API call, and error handling.
  2901  //
  2902  // This method is useful when you want to inject custom logic or configuration
  2903  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2904  //
  2905  //
  2906  //    // Example sending a request using the DetectStackSetDriftRequest method.
  2907  //    req, resp := client.DetectStackSetDriftRequest(params)
  2908  //
  2909  //    err := req.Send()
  2910  //    if err == nil { // resp is now filled
  2911  //        fmt.Println(resp)
  2912  //    }
  2913  //
  2914  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
  2915  func (c *CloudFormation) DetectStackSetDriftRequest(input *DetectStackSetDriftInput) (req *request.Request, output *DetectStackSetDriftOutput) {
  2916  	op := &request.Operation{
  2917  		Name:       opDetectStackSetDrift,
  2918  		HTTPMethod: "POST",
  2919  		HTTPPath:   "/",
  2920  	}
  2921  
  2922  	if input == nil {
  2923  		input = &DetectStackSetDriftInput{}
  2924  	}
  2925  
  2926  	output = &DetectStackSetDriftOutput{}
  2927  	req = c.newRequest(op, input, output)
  2928  	return
  2929  }
  2930  
  2931  // DetectStackSetDrift API operation for AWS CloudFormation.
  2932  //
  2933  // Detect drift on a stack set. When CloudFormation performs drift detection
  2934  // on a stack set, it performs drift detection on the stack associated with
  2935  // each stack instance in the stack set. For more information, see How CloudFormation
  2936  // Performs Drift Detection on a Stack Set (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
  2937  //
  2938  // DetectStackSetDrift returns the OperationId of the stack set drift detection
  2939  // operation. Use this operation id with DescribeStackSetOperation to monitor
  2940  // the progress of the drift detection operation. The drift detection operation
  2941  // may take some time, depending on the number of stack instances included in
  2942  // the stack set, as well as the number of resources included in each stack.
  2943  //
  2944  // Once the operation has completed, use the following actions to return drift
  2945  // information:
  2946  //
  2947  //    * Use DescribeStackSet to return detailed information about the stack
  2948  //    set, including detailed information about the last completed drift operation
  2949  //    performed on the stack set. (Information about drift operations that are
  2950  //    in progress is not included.)
  2951  //
  2952  //    * Use ListStackInstances to return a list of stack instances belonging
  2953  //    to the stack set, including the drift status and last drift time checked
  2954  //    of each instance.
  2955  //
  2956  //    * Use DescribeStackInstance to return detailed information about a specific
  2957  //    stack instance, including its drift status and last drift time checked.
  2958  //
  2959  // For more information on performing a drift detection operation on a stack
  2960  // set, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html).
  2961  //
  2962  // You can only run a single drift detection operation on a given stack set
  2963  // at one time.
  2964  //
  2965  // To stop a drift detection stack set operation, use StopStackSetOperation .
  2966  //
  2967  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2968  // with awserr.Error's Code and Message methods to get detailed information about
  2969  // the error.
  2970  //
  2971  // See the AWS API reference guide for AWS CloudFormation's
  2972  // API operation DetectStackSetDrift for usage and error information.
  2973  //
  2974  // Returned Error Codes:
  2975  //   * ErrCodeInvalidOperationException "InvalidOperationException"
  2976  //   The specified operation isn't valid.
  2977  //
  2978  //   * ErrCodeOperationInProgressException "OperationInProgressException"
  2979  //   Another operation is currently in progress for this stack set. Only one operation
  2980  //   can be performed for a stack set at a given time.
  2981  //
  2982  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  2983  //   The specified stack set doesn't exist.
  2984  //
  2985  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift
  2986  func (c *CloudFormation) DetectStackSetDrift(input *DetectStackSetDriftInput) (*DetectStackSetDriftOutput, error) {
  2987  	req, out := c.DetectStackSetDriftRequest(input)
  2988  	return out, req.Send()
  2989  }
  2990  
  2991  // DetectStackSetDriftWithContext is the same as DetectStackSetDrift with the addition of
  2992  // the ability to pass a context and additional request options.
  2993  //
  2994  // See DetectStackSetDrift for details on how to use this API operation.
  2995  //
  2996  // The context must be non-nil and will be used for request cancellation. If
  2997  // the context is nil a panic will occur. In the future the SDK may create
  2998  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2999  // for more information on using Contexts.
  3000  func (c *CloudFormation) DetectStackSetDriftWithContext(ctx aws.Context, input *DetectStackSetDriftInput, opts ...request.Option) (*DetectStackSetDriftOutput, error) {
  3001  	req, out := c.DetectStackSetDriftRequest(input)
  3002  	req.SetContext(ctx)
  3003  	req.ApplyOptions(opts...)
  3004  	return out, req.Send()
  3005  }
  3006  
  3007  const opEstimateTemplateCost = "EstimateTemplateCost"
  3008  
  3009  // EstimateTemplateCostRequest generates a "aws/request.Request" representing the
  3010  // client's request for the EstimateTemplateCost operation. The "output" return
  3011  // value will be populated with the request's response once the request completes
  3012  // successfully.
  3013  //
  3014  // Use "Send" method on the returned Request to send the API call to the service.
  3015  // the "output" return value is not valid until after Send returns without error.
  3016  //
  3017  // See EstimateTemplateCost for more information on using the EstimateTemplateCost
  3018  // API call, and error handling.
  3019  //
  3020  // This method is useful when you want to inject custom logic or configuration
  3021  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3022  //
  3023  //
  3024  //    // Example sending a request using the EstimateTemplateCostRequest method.
  3025  //    req, resp := client.EstimateTemplateCostRequest(params)
  3026  //
  3027  //    err := req.Send()
  3028  //    if err == nil { // resp is now filled
  3029  //        fmt.Println(resp)
  3030  //    }
  3031  //
  3032  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
  3033  func (c *CloudFormation) EstimateTemplateCostRequest(input *EstimateTemplateCostInput) (req *request.Request, output *EstimateTemplateCostOutput) {
  3034  	op := &request.Operation{
  3035  		Name:       opEstimateTemplateCost,
  3036  		HTTPMethod: "POST",
  3037  		HTTPPath:   "/",
  3038  	}
  3039  
  3040  	if input == nil {
  3041  		input = &EstimateTemplateCostInput{}
  3042  	}
  3043  
  3044  	output = &EstimateTemplateCostOutput{}
  3045  	req = c.newRequest(op, input, output)
  3046  	return
  3047  }
  3048  
  3049  // EstimateTemplateCost API operation for AWS CloudFormation.
  3050  //
  3051  // Returns the estimated monthly cost of a template. The return value is an
  3052  // Amazon Web Services Simple Monthly Calculator URL with a query string that
  3053  // describes the resources required to run the template.
  3054  //
  3055  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3056  // with awserr.Error's Code and Message methods to get detailed information about
  3057  // the error.
  3058  //
  3059  // See the AWS API reference guide for AWS CloudFormation's
  3060  // API operation EstimateTemplateCost for usage and error information.
  3061  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost
  3062  func (c *CloudFormation) EstimateTemplateCost(input *EstimateTemplateCostInput) (*EstimateTemplateCostOutput, error) {
  3063  	req, out := c.EstimateTemplateCostRequest(input)
  3064  	return out, req.Send()
  3065  }
  3066  
  3067  // EstimateTemplateCostWithContext is the same as EstimateTemplateCost with the addition of
  3068  // the ability to pass a context and additional request options.
  3069  //
  3070  // See EstimateTemplateCost for details on how to use this API operation.
  3071  //
  3072  // The context must be non-nil and will be used for request cancellation. If
  3073  // the context is nil a panic will occur. In the future the SDK may create
  3074  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3075  // for more information on using Contexts.
  3076  func (c *CloudFormation) EstimateTemplateCostWithContext(ctx aws.Context, input *EstimateTemplateCostInput, opts ...request.Option) (*EstimateTemplateCostOutput, error) {
  3077  	req, out := c.EstimateTemplateCostRequest(input)
  3078  	req.SetContext(ctx)
  3079  	req.ApplyOptions(opts...)
  3080  	return out, req.Send()
  3081  }
  3082  
  3083  const opExecuteChangeSet = "ExecuteChangeSet"
  3084  
  3085  // ExecuteChangeSetRequest generates a "aws/request.Request" representing the
  3086  // client's request for the ExecuteChangeSet operation. The "output" return
  3087  // value will be populated with the request's response once the request completes
  3088  // successfully.
  3089  //
  3090  // Use "Send" method on the returned Request to send the API call to the service.
  3091  // the "output" return value is not valid until after Send returns without error.
  3092  //
  3093  // See ExecuteChangeSet for more information on using the ExecuteChangeSet
  3094  // API call, and error handling.
  3095  //
  3096  // This method is useful when you want to inject custom logic or configuration
  3097  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3098  //
  3099  //
  3100  //    // Example sending a request using the ExecuteChangeSetRequest method.
  3101  //    req, resp := client.ExecuteChangeSetRequest(params)
  3102  //
  3103  //    err := req.Send()
  3104  //    if err == nil { // resp is now filled
  3105  //        fmt.Println(resp)
  3106  //    }
  3107  //
  3108  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
  3109  func (c *CloudFormation) ExecuteChangeSetRequest(input *ExecuteChangeSetInput) (req *request.Request, output *ExecuteChangeSetOutput) {
  3110  	op := &request.Operation{
  3111  		Name:       opExecuteChangeSet,
  3112  		HTTPMethod: "POST",
  3113  		HTTPPath:   "/",
  3114  	}
  3115  
  3116  	if input == nil {
  3117  		input = &ExecuteChangeSetInput{}
  3118  	}
  3119  
  3120  	output = &ExecuteChangeSetOutput{}
  3121  	req = c.newRequest(op, input, output)
  3122  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3123  	return
  3124  }
  3125  
  3126  // ExecuteChangeSet API operation for AWS CloudFormation.
  3127  //
  3128  // Updates a stack using the input information that was provided when the specified
  3129  // change set was created. After the call successfully completes, CloudFormation
  3130  // starts updating the stack. Use the DescribeStacks action to view the status
  3131  // of the update.
  3132  //
  3133  // When you execute a change set, CloudFormation deletes all other change sets
  3134  // associated with the stack because they aren't valid for the updated stack.
  3135  //
  3136  // If a stack policy is associated with the stack, CloudFormation enforces the
  3137  // policy during the update. You can't specify a temporary stack policy that
  3138  // overrides the current policy.
  3139  //
  3140  // To create a change set for the entire stack hierachy, IncludeNestedStacks
  3141  // must have been set to True.
  3142  //
  3143  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3144  // with awserr.Error's Code and Message methods to get detailed information about
  3145  // the error.
  3146  //
  3147  // See the AWS API reference guide for AWS CloudFormation's
  3148  // API operation ExecuteChangeSet for usage and error information.
  3149  //
  3150  // Returned Error Codes:
  3151  //   * ErrCodeInvalidChangeSetStatusException "InvalidChangeSetStatus"
  3152  //   The specified change set can't be used to update the stack. For example,
  3153  //   the change set status might be CREATE_IN_PROGRESS, or the stack status might
  3154  //   be UPDATE_IN_PROGRESS.
  3155  //
  3156  //   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
  3157  //   The specified change set name or ID doesn't exit. To view valid change sets
  3158  //   for a stack, use the ListChangeSets action.
  3159  //
  3160  //   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
  3161  //   The template contains resources with capabilities that weren't specified
  3162  //   in the Capabilities parameter.
  3163  //
  3164  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
  3165  //   A client request token already exists.
  3166  //
  3167  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet
  3168  func (c *CloudFormation) ExecuteChangeSet(input *ExecuteChangeSetInput) (*ExecuteChangeSetOutput, error) {
  3169  	req, out := c.ExecuteChangeSetRequest(input)
  3170  	return out, req.Send()
  3171  }
  3172  
  3173  // ExecuteChangeSetWithContext is the same as ExecuteChangeSet with the addition of
  3174  // the ability to pass a context and additional request options.
  3175  //
  3176  // See ExecuteChangeSet for details on how to use this API operation.
  3177  //
  3178  // The context must be non-nil and will be used for request cancellation. If
  3179  // the context is nil a panic will occur. In the future the SDK may create
  3180  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3181  // for more information on using Contexts.
  3182  func (c *CloudFormation) ExecuteChangeSetWithContext(ctx aws.Context, input *ExecuteChangeSetInput, opts ...request.Option) (*ExecuteChangeSetOutput, error) {
  3183  	req, out := c.ExecuteChangeSetRequest(input)
  3184  	req.SetContext(ctx)
  3185  	req.ApplyOptions(opts...)
  3186  	return out, req.Send()
  3187  }
  3188  
  3189  const opGetStackPolicy = "GetStackPolicy"
  3190  
  3191  // GetStackPolicyRequest generates a "aws/request.Request" representing the
  3192  // client's request for the GetStackPolicy operation. The "output" return
  3193  // value will be populated with the request's response once the request completes
  3194  // successfully.
  3195  //
  3196  // Use "Send" method on the returned Request to send the API call to the service.
  3197  // the "output" return value is not valid until after Send returns without error.
  3198  //
  3199  // See GetStackPolicy for more information on using the GetStackPolicy
  3200  // API call, and error handling.
  3201  //
  3202  // This method is useful when you want to inject custom logic or configuration
  3203  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3204  //
  3205  //
  3206  //    // Example sending a request using the GetStackPolicyRequest method.
  3207  //    req, resp := client.GetStackPolicyRequest(params)
  3208  //
  3209  //    err := req.Send()
  3210  //    if err == nil { // resp is now filled
  3211  //        fmt.Println(resp)
  3212  //    }
  3213  //
  3214  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
  3215  func (c *CloudFormation) GetStackPolicyRequest(input *GetStackPolicyInput) (req *request.Request, output *GetStackPolicyOutput) {
  3216  	op := &request.Operation{
  3217  		Name:       opGetStackPolicy,
  3218  		HTTPMethod: "POST",
  3219  		HTTPPath:   "/",
  3220  	}
  3221  
  3222  	if input == nil {
  3223  		input = &GetStackPolicyInput{}
  3224  	}
  3225  
  3226  	output = &GetStackPolicyOutput{}
  3227  	req = c.newRequest(op, input, output)
  3228  	return
  3229  }
  3230  
  3231  // GetStackPolicy API operation for AWS CloudFormation.
  3232  //
  3233  // Returns the stack policy for a specified stack. If a stack doesn't have a
  3234  // policy, a null value is returned.
  3235  //
  3236  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3237  // with awserr.Error's Code and Message methods to get detailed information about
  3238  // the error.
  3239  //
  3240  // See the AWS API reference guide for AWS CloudFormation's
  3241  // API operation GetStackPolicy for usage and error information.
  3242  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy
  3243  func (c *CloudFormation) GetStackPolicy(input *GetStackPolicyInput) (*GetStackPolicyOutput, error) {
  3244  	req, out := c.GetStackPolicyRequest(input)
  3245  	return out, req.Send()
  3246  }
  3247  
  3248  // GetStackPolicyWithContext is the same as GetStackPolicy with the addition of
  3249  // the ability to pass a context and additional request options.
  3250  //
  3251  // See GetStackPolicy for details on how to use this API operation.
  3252  //
  3253  // The context must be non-nil and will be used for request cancellation. If
  3254  // the context is nil a panic will occur. In the future the SDK may create
  3255  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3256  // for more information on using Contexts.
  3257  func (c *CloudFormation) GetStackPolicyWithContext(ctx aws.Context, input *GetStackPolicyInput, opts ...request.Option) (*GetStackPolicyOutput, error) {
  3258  	req, out := c.GetStackPolicyRequest(input)
  3259  	req.SetContext(ctx)
  3260  	req.ApplyOptions(opts...)
  3261  	return out, req.Send()
  3262  }
  3263  
  3264  const opGetTemplate = "GetTemplate"
  3265  
  3266  // GetTemplateRequest generates a "aws/request.Request" representing the
  3267  // client's request for the GetTemplate operation. The "output" return
  3268  // value will be populated with the request's response once the request completes
  3269  // successfully.
  3270  //
  3271  // Use "Send" method on the returned Request to send the API call to the service.
  3272  // the "output" return value is not valid until after Send returns without error.
  3273  //
  3274  // See GetTemplate for more information on using the GetTemplate
  3275  // API call, and error handling.
  3276  //
  3277  // This method is useful when you want to inject custom logic or configuration
  3278  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3279  //
  3280  //
  3281  //    // Example sending a request using the GetTemplateRequest method.
  3282  //    req, resp := client.GetTemplateRequest(params)
  3283  //
  3284  //    err := req.Send()
  3285  //    if err == nil { // resp is now filled
  3286  //        fmt.Println(resp)
  3287  //    }
  3288  //
  3289  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
  3290  func (c *CloudFormation) GetTemplateRequest(input *GetTemplateInput) (req *request.Request, output *GetTemplateOutput) {
  3291  	op := &request.Operation{
  3292  		Name:       opGetTemplate,
  3293  		HTTPMethod: "POST",
  3294  		HTTPPath:   "/",
  3295  	}
  3296  
  3297  	if input == nil {
  3298  		input = &GetTemplateInput{}
  3299  	}
  3300  
  3301  	output = &GetTemplateOutput{}
  3302  	req = c.newRequest(op, input, output)
  3303  	return
  3304  }
  3305  
  3306  // GetTemplate API operation for AWS CloudFormation.
  3307  //
  3308  // Returns the template body for a specified stack. You can get the template
  3309  // for running or deleted stacks.
  3310  //
  3311  // For deleted stacks, GetTemplate returns the template for up to 90 days after
  3312  // the stack has been deleted.
  3313  //
  3314  // If the template does not exist, a ValidationError is returned.
  3315  //
  3316  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3317  // with awserr.Error's Code and Message methods to get detailed information about
  3318  // the error.
  3319  //
  3320  // See the AWS API reference guide for AWS CloudFormation's
  3321  // API operation GetTemplate for usage and error information.
  3322  //
  3323  // Returned Error Codes:
  3324  //   * ErrCodeChangeSetNotFoundException "ChangeSetNotFound"
  3325  //   The specified change set name or ID doesn't exit. To view valid change sets
  3326  //   for a stack, use the ListChangeSets action.
  3327  //
  3328  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate
  3329  func (c *CloudFormation) GetTemplate(input *GetTemplateInput) (*GetTemplateOutput, error) {
  3330  	req, out := c.GetTemplateRequest(input)
  3331  	return out, req.Send()
  3332  }
  3333  
  3334  // GetTemplateWithContext is the same as GetTemplate with the addition of
  3335  // the ability to pass a context and additional request options.
  3336  //
  3337  // See GetTemplate for details on how to use this API operation.
  3338  //
  3339  // The context must be non-nil and will be used for request cancellation. If
  3340  // the context is nil a panic will occur. In the future the SDK may create
  3341  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3342  // for more information on using Contexts.
  3343  func (c *CloudFormation) GetTemplateWithContext(ctx aws.Context, input *GetTemplateInput, opts ...request.Option) (*GetTemplateOutput, error) {
  3344  	req, out := c.GetTemplateRequest(input)
  3345  	req.SetContext(ctx)
  3346  	req.ApplyOptions(opts...)
  3347  	return out, req.Send()
  3348  }
  3349  
  3350  const opGetTemplateSummary = "GetTemplateSummary"
  3351  
  3352  // GetTemplateSummaryRequest generates a "aws/request.Request" representing the
  3353  // client's request for the GetTemplateSummary operation. The "output" return
  3354  // value will be populated with the request's response once the request completes
  3355  // successfully.
  3356  //
  3357  // Use "Send" method on the returned Request to send the API call to the service.
  3358  // the "output" return value is not valid until after Send returns without error.
  3359  //
  3360  // See GetTemplateSummary for more information on using the GetTemplateSummary
  3361  // API call, and error handling.
  3362  //
  3363  // This method is useful when you want to inject custom logic or configuration
  3364  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3365  //
  3366  //
  3367  //    // Example sending a request using the GetTemplateSummaryRequest method.
  3368  //    req, resp := client.GetTemplateSummaryRequest(params)
  3369  //
  3370  //    err := req.Send()
  3371  //    if err == nil { // resp is now filled
  3372  //        fmt.Println(resp)
  3373  //    }
  3374  //
  3375  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
  3376  func (c *CloudFormation) GetTemplateSummaryRequest(input *GetTemplateSummaryInput) (req *request.Request, output *GetTemplateSummaryOutput) {
  3377  	op := &request.Operation{
  3378  		Name:       opGetTemplateSummary,
  3379  		HTTPMethod: "POST",
  3380  		HTTPPath:   "/",
  3381  	}
  3382  
  3383  	if input == nil {
  3384  		input = &GetTemplateSummaryInput{}
  3385  	}
  3386  
  3387  	output = &GetTemplateSummaryOutput{}
  3388  	req = c.newRequest(op, input, output)
  3389  	return
  3390  }
  3391  
  3392  // GetTemplateSummary API operation for AWS CloudFormation.
  3393  //
  3394  // Returns information about a new or existing template. The GetTemplateSummary
  3395  // action is useful for viewing parameter information, such as default parameter
  3396  // values and parameter types, before you create or update a stack or stack
  3397  // set.
  3398  //
  3399  // You can use the GetTemplateSummary action when you submit a template, or
  3400  // you can get template information for a stack set, or a running or deleted
  3401  // stack.
  3402  //
  3403  // For deleted stacks, GetTemplateSummary returns the template information for
  3404  // up to 90 days after the stack has been deleted. If the template does not
  3405  // exist, a ValidationError is returned.
  3406  //
  3407  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3408  // with awserr.Error's Code and Message methods to get detailed information about
  3409  // the error.
  3410  //
  3411  // See the AWS API reference guide for AWS CloudFormation's
  3412  // API operation GetTemplateSummary for usage and error information.
  3413  //
  3414  // Returned Error Codes:
  3415  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  3416  //   The specified stack set doesn't exist.
  3417  //
  3418  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary
  3419  func (c *CloudFormation) GetTemplateSummary(input *GetTemplateSummaryInput) (*GetTemplateSummaryOutput, error) {
  3420  	req, out := c.GetTemplateSummaryRequest(input)
  3421  	return out, req.Send()
  3422  }
  3423  
  3424  // GetTemplateSummaryWithContext is the same as GetTemplateSummary with the addition of
  3425  // the ability to pass a context and additional request options.
  3426  //
  3427  // See GetTemplateSummary for details on how to use this API operation.
  3428  //
  3429  // The context must be non-nil and will be used for request cancellation. If
  3430  // the context is nil a panic will occur. In the future the SDK may create
  3431  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3432  // for more information on using Contexts.
  3433  func (c *CloudFormation) GetTemplateSummaryWithContext(ctx aws.Context, input *GetTemplateSummaryInput, opts ...request.Option) (*GetTemplateSummaryOutput, error) {
  3434  	req, out := c.GetTemplateSummaryRequest(input)
  3435  	req.SetContext(ctx)
  3436  	req.ApplyOptions(opts...)
  3437  	return out, req.Send()
  3438  }
  3439  
  3440  const opImportStacksToStackSet = "ImportStacksToStackSet"
  3441  
  3442  // ImportStacksToStackSetRequest generates a "aws/request.Request" representing the
  3443  // client's request for the ImportStacksToStackSet operation. The "output" return
  3444  // value will be populated with the request's response once the request completes
  3445  // successfully.
  3446  //
  3447  // Use "Send" method on the returned Request to send the API call to the service.
  3448  // the "output" return value is not valid until after Send returns without error.
  3449  //
  3450  // See ImportStacksToStackSet for more information on using the ImportStacksToStackSet
  3451  // API call, and error handling.
  3452  //
  3453  // This method is useful when you want to inject custom logic or configuration
  3454  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3455  //
  3456  //
  3457  //    // Example sending a request using the ImportStacksToStackSetRequest method.
  3458  //    req, resp := client.ImportStacksToStackSetRequest(params)
  3459  //
  3460  //    err := req.Send()
  3461  //    if err == nil { // resp is now filled
  3462  //        fmt.Println(resp)
  3463  //    }
  3464  //
  3465  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
  3466  func (c *CloudFormation) ImportStacksToStackSetRequest(input *ImportStacksToStackSetInput) (req *request.Request, output *ImportStacksToStackSetOutput) {
  3467  	op := &request.Operation{
  3468  		Name:       opImportStacksToStackSet,
  3469  		HTTPMethod: "POST",
  3470  		HTTPPath:   "/",
  3471  	}
  3472  
  3473  	if input == nil {
  3474  		input = &ImportStacksToStackSetInput{}
  3475  	}
  3476  
  3477  	output = &ImportStacksToStackSetOutput{}
  3478  	req = c.newRequest(op, input, output)
  3479  	return
  3480  }
  3481  
  3482  // ImportStacksToStackSet API operation for AWS CloudFormation.
  3483  //
  3484  // Import existing stacks into a new stack sets. Use the stack import operation
  3485  // to import up to 10 stacks into a new stack set in the same account as the
  3486  // source stack or in a different administrator account and Region, by specifying
  3487  // the stack ID of the stack you intend to import.
  3488  //
  3489  // ImportStacksToStackSet is only supported by self-managed permissions.
  3490  //
  3491  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3492  // with awserr.Error's Code and Message methods to get detailed information about
  3493  // the error.
  3494  //
  3495  // See the AWS API reference guide for AWS CloudFormation's
  3496  // API operation ImportStacksToStackSet for usage and error information.
  3497  //
  3498  // Returned Error Codes:
  3499  //   * ErrCodeLimitExceededException "LimitExceededException"
  3500  //   The quota for the resource has already been reached.
  3501  //
  3502  //   For information on resource and stack limitations, see Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
  3503  //   in the CloudFormation User Guide.
  3504  //
  3505  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  3506  //   The specified stack set doesn't exist.
  3507  //
  3508  //   * ErrCodeInvalidOperationException "InvalidOperationException"
  3509  //   The specified operation isn't valid.
  3510  //
  3511  //   * ErrCodeOperationInProgressException "OperationInProgressException"
  3512  //   Another operation is currently in progress for this stack set. Only one operation
  3513  //   can be performed for a stack set at a given time.
  3514  //
  3515  //   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
  3516  //   The specified operation ID already exists.
  3517  //
  3518  //   * ErrCodeStackNotFoundException "StackNotFoundException"
  3519  //   The specified stack ARN doesn’t exist or stack doesn’t exist corresponding
  3520  //   to the ARN in input.
  3521  //
  3522  //   * ErrCodeStaleRequestException "StaleRequestException"
  3523  //   Another operation has been performed on this stack set since the specified
  3524  //   operation was performed.
  3525  //
  3526  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ImportStacksToStackSet
  3527  func (c *CloudFormation) ImportStacksToStackSet(input *ImportStacksToStackSetInput) (*ImportStacksToStackSetOutput, error) {
  3528  	req, out := c.ImportStacksToStackSetRequest(input)
  3529  	return out, req.Send()
  3530  }
  3531  
  3532  // ImportStacksToStackSetWithContext is the same as ImportStacksToStackSet with the addition of
  3533  // the ability to pass a context and additional request options.
  3534  //
  3535  // See ImportStacksToStackSet for details on how to use this API operation.
  3536  //
  3537  // The context must be non-nil and will be used for request cancellation. If
  3538  // the context is nil a panic will occur. In the future the SDK may create
  3539  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3540  // for more information on using Contexts.
  3541  func (c *CloudFormation) ImportStacksToStackSetWithContext(ctx aws.Context, input *ImportStacksToStackSetInput, opts ...request.Option) (*ImportStacksToStackSetOutput, error) {
  3542  	req, out := c.ImportStacksToStackSetRequest(input)
  3543  	req.SetContext(ctx)
  3544  	req.ApplyOptions(opts...)
  3545  	return out, req.Send()
  3546  }
  3547  
  3548  const opListChangeSets = "ListChangeSets"
  3549  
  3550  // ListChangeSetsRequest generates a "aws/request.Request" representing the
  3551  // client's request for the ListChangeSets operation. The "output" return
  3552  // value will be populated with the request's response once the request completes
  3553  // successfully.
  3554  //
  3555  // Use "Send" method on the returned Request to send the API call to the service.
  3556  // the "output" return value is not valid until after Send returns without error.
  3557  //
  3558  // See ListChangeSets for more information on using the ListChangeSets
  3559  // API call, and error handling.
  3560  //
  3561  // This method is useful when you want to inject custom logic or configuration
  3562  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3563  //
  3564  //
  3565  //    // Example sending a request using the ListChangeSetsRequest method.
  3566  //    req, resp := client.ListChangeSetsRequest(params)
  3567  //
  3568  //    err := req.Send()
  3569  //    if err == nil { // resp is now filled
  3570  //        fmt.Println(resp)
  3571  //    }
  3572  //
  3573  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
  3574  func (c *CloudFormation) ListChangeSetsRequest(input *ListChangeSetsInput) (req *request.Request, output *ListChangeSetsOutput) {
  3575  	op := &request.Operation{
  3576  		Name:       opListChangeSets,
  3577  		HTTPMethod: "POST",
  3578  		HTTPPath:   "/",
  3579  		Paginator: &request.Paginator{
  3580  			InputTokens:     []string{"NextToken"},
  3581  			OutputTokens:    []string{"NextToken"},
  3582  			LimitToken:      "",
  3583  			TruncationToken: "",
  3584  		},
  3585  	}
  3586  
  3587  	if input == nil {
  3588  		input = &ListChangeSetsInput{}
  3589  	}
  3590  
  3591  	output = &ListChangeSetsOutput{}
  3592  	req = c.newRequest(op, input, output)
  3593  	return
  3594  }
  3595  
  3596  // ListChangeSets API operation for AWS CloudFormation.
  3597  //
  3598  // Returns the ID and status of each active change set for a stack. For example,
  3599  // CloudFormation lists change sets that are in the CREATE_IN_PROGRESS or CREATE_PENDING
  3600  // state.
  3601  //
  3602  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3603  // with awserr.Error's Code and Message methods to get detailed information about
  3604  // the error.
  3605  //
  3606  // See the AWS API reference guide for AWS CloudFormation's
  3607  // API operation ListChangeSets for usage and error information.
  3608  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets
  3609  func (c *CloudFormation) ListChangeSets(input *ListChangeSetsInput) (*ListChangeSetsOutput, error) {
  3610  	req, out := c.ListChangeSetsRequest(input)
  3611  	return out, req.Send()
  3612  }
  3613  
  3614  // ListChangeSetsWithContext is the same as ListChangeSets with the addition of
  3615  // the ability to pass a context and additional request options.
  3616  //
  3617  // See ListChangeSets for details on how to use this API operation.
  3618  //
  3619  // The context must be non-nil and will be used for request cancellation. If
  3620  // the context is nil a panic will occur. In the future the SDK may create
  3621  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3622  // for more information on using Contexts.
  3623  func (c *CloudFormation) ListChangeSetsWithContext(ctx aws.Context, input *ListChangeSetsInput, opts ...request.Option) (*ListChangeSetsOutput, error) {
  3624  	req, out := c.ListChangeSetsRequest(input)
  3625  	req.SetContext(ctx)
  3626  	req.ApplyOptions(opts...)
  3627  	return out, req.Send()
  3628  }
  3629  
  3630  // ListChangeSetsPages iterates over the pages of a ListChangeSets operation,
  3631  // calling the "fn" function with the response data for each page. To stop
  3632  // iterating, return false from the fn function.
  3633  //
  3634  // See ListChangeSets method for more information on how to use this operation.
  3635  //
  3636  // Note: This operation can generate multiple requests to a service.
  3637  //
  3638  //    // Example iterating over at most 3 pages of a ListChangeSets operation.
  3639  //    pageNum := 0
  3640  //    err := client.ListChangeSetsPages(params,
  3641  //        func(page *cloudformation.ListChangeSetsOutput, lastPage bool) bool {
  3642  //            pageNum++
  3643  //            fmt.Println(page)
  3644  //            return pageNum <= 3
  3645  //        })
  3646  //
  3647  func (c *CloudFormation) ListChangeSetsPages(input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool) error {
  3648  	return c.ListChangeSetsPagesWithContext(aws.BackgroundContext(), input, fn)
  3649  }
  3650  
  3651  // ListChangeSetsPagesWithContext same as ListChangeSetsPages except
  3652  // it takes a Context and allows setting request options on the pages.
  3653  //
  3654  // The context must be non-nil and will be used for request cancellation. If
  3655  // the context is nil a panic will occur. In the future the SDK may create
  3656  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3657  // for more information on using Contexts.
  3658  func (c *CloudFormation) ListChangeSetsPagesWithContext(ctx aws.Context, input *ListChangeSetsInput, fn func(*ListChangeSetsOutput, bool) bool, opts ...request.Option) error {
  3659  	p := request.Pagination{
  3660  		NewRequest: func() (*request.Request, error) {
  3661  			var inCpy *ListChangeSetsInput
  3662  			if input != nil {
  3663  				tmp := *input
  3664  				inCpy = &tmp
  3665  			}
  3666  			req, _ := c.ListChangeSetsRequest(inCpy)
  3667  			req.SetContext(ctx)
  3668  			req.ApplyOptions(opts...)
  3669  			return req, nil
  3670  		},
  3671  	}
  3672  
  3673  	for p.Next() {
  3674  		if !fn(p.Page().(*ListChangeSetsOutput), !p.HasNextPage()) {
  3675  			break
  3676  		}
  3677  	}
  3678  
  3679  	return p.Err()
  3680  }
  3681  
  3682  const opListExports = "ListExports"
  3683  
  3684  // ListExportsRequest generates a "aws/request.Request" representing the
  3685  // client's request for the ListExports operation. The "output" return
  3686  // value will be populated with the request's response once the request completes
  3687  // successfully.
  3688  //
  3689  // Use "Send" method on the returned Request to send the API call to the service.
  3690  // the "output" return value is not valid until after Send returns without error.
  3691  //
  3692  // See ListExports for more information on using the ListExports
  3693  // API call, and error handling.
  3694  //
  3695  // This method is useful when you want to inject custom logic or configuration
  3696  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3697  //
  3698  //
  3699  //    // Example sending a request using the ListExportsRequest method.
  3700  //    req, resp := client.ListExportsRequest(params)
  3701  //
  3702  //    err := req.Send()
  3703  //    if err == nil { // resp is now filled
  3704  //        fmt.Println(resp)
  3705  //    }
  3706  //
  3707  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
  3708  func (c *CloudFormation) ListExportsRequest(input *ListExportsInput) (req *request.Request, output *ListExportsOutput) {
  3709  	op := &request.Operation{
  3710  		Name:       opListExports,
  3711  		HTTPMethod: "POST",
  3712  		HTTPPath:   "/",
  3713  		Paginator: &request.Paginator{
  3714  			InputTokens:     []string{"NextToken"},
  3715  			OutputTokens:    []string{"NextToken"},
  3716  			LimitToken:      "",
  3717  			TruncationToken: "",
  3718  		},
  3719  	}
  3720  
  3721  	if input == nil {
  3722  		input = &ListExportsInput{}
  3723  	}
  3724  
  3725  	output = &ListExportsOutput{}
  3726  	req = c.newRequest(op, input, output)
  3727  	return
  3728  }
  3729  
  3730  // ListExports API operation for AWS CloudFormation.
  3731  //
  3732  // Lists all exported output values in the account and Region in which you call
  3733  // this action. Use this action to see the exported output values that you can
  3734  // import into other stacks. To import values, use the Fn::ImportValue (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
  3735  // function.
  3736  //
  3737  // For more information, see CloudFormation Export Stack Output Values (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html).
  3738  //
  3739  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3740  // with awserr.Error's Code and Message methods to get detailed information about
  3741  // the error.
  3742  //
  3743  // See the AWS API reference guide for AWS CloudFormation's
  3744  // API operation ListExports for usage and error information.
  3745  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports
  3746  func (c *CloudFormation) ListExports(input *ListExportsInput) (*ListExportsOutput, error) {
  3747  	req, out := c.ListExportsRequest(input)
  3748  	return out, req.Send()
  3749  }
  3750  
  3751  // ListExportsWithContext is the same as ListExports with the addition of
  3752  // the ability to pass a context and additional request options.
  3753  //
  3754  // See ListExports for details on how to use this API operation.
  3755  //
  3756  // The context must be non-nil and will be used for request cancellation. If
  3757  // the context is nil a panic will occur. In the future the SDK may create
  3758  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3759  // for more information on using Contexts.
  3760  func (c *CloudFormation) ListExportsWithContext(ctx aws.Context, input *ListExportsInput, opts ...request.Option) (*ListExportsOutput, error) {
  3761  	req, out := c.ListExportsRequest(input)
  3762  	req.SetContext(ctx)
  3763  	req.ApplyOptions(opts...)
  3764  	return out, req.Send()
  3765  }
  3766  
  3767  // ListExportsPages iterates over the pages of a ListExports operation,
  3768  // calling the "fn" function with the response data for each page. To stop
  3769  // iterating, return false from the fn function.
  3770  //
  3771  // See ListExports method for more information on how to use this operation.
  3772  //
  3773  // Note: This operation can generate multiple requests to a service.
  3774  //
  3775  //    // Example iterating over at most 3 pages of a ListExports operation.
  3776  //    pageNum := 0
  3777  //    err := client.ListExportsPages(params,
  3778  //        func(page *cloudformation.ListExportsOutput, lastPage bool) bool {
  3779  //            pageNum++
  3780  //            fmt.Println(page)
  3781  //            return pageNum <= 3
  3782  //        })
  3783  //
  3784  func (c *CloudFormation) ListExportsPages(input *ListExportsInput, fn func(*ListExportsOutput, bool) bool) error {
  3785  	return c.ListExportsPagesWithContext(aws.BackgroundContext(), input, fn)
  3786  }
  3787  
  3788  // ListExportsPagesWithContext same as ListExportsPages except
  3789  // it takes a Context and allows setting request options on the pages.
  3790  //
  3791  // The context must be non-nil and will be used for request cancellation. If
  3792  // the context is nil a panic will occur. In the future the SDK may create
  3793  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3794  // for more information on using Contexts.
  3795  func (c *CloudFormation) ListExportsPagesWithContext(ctx aws.Context, input *ListExportsInput, fn func(*ListExportsOutput, bool) bool, opts ...request.Option) error {
  3796  	p := request.Pagination{
  3797  		NewRequest: func() (*request.Request, error) {
  3798  			var inCpy *ListExportsInput
  3799  			if input != nil {
  3800  				tmp := *input
  3801  				inCpy = &tmp
  3802  			}
  3803  			req, _ := c.ListExportsRequest(inCpy)
  3804  			req.SetContext(ctx)
  3805  			req.ApplyOptions(opts...)
  3806  			return req, nil
  3807  		},
  3808  	}
  3809  
  3810  	for p.Next() {
  3811  		if !fn(p.Page().(*ListExportsOutput), !p.HasNextPage()) {
  3812  			break
  3813  		}
  3814  	}
  3815  
  3816  	return p.Err()
  3817  }
  3818  
  3819  const opListImports = "ListImports"
  3820  
  3821  // ListImportsRequest generates a "aws/request.Request" representing the
  3822  // client's request for the ListImports operation. The "output" return
  3823  // value will be populated with the request's response once the request completes
  3824  // successfully.
  3825  //
  3826  // Use "Send" method on the returned Request to send the API call to the service.
  3827  // the "output" return value is not valid until after Send returns without error.
  3828  //
  3829  // See ListImports for more information on using the ListImports
  3830  // API call, and error handling.
  3831  //
  3832  // This method is useful when you want to inject custom logic or configuration
  3833  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3834  //
  3835  //
  3836  //    // Example sending a request using the ListImportsRequest method.
  3837  //    req, resp := client.ListImportsRequest(params)
  3838  //
  3839  //    err := req.Send()
  3840  //    if err == nil { // resp is now filled
  3841  //        fmt.Println(resp)
  3842  //    }
  3843  //
  3844  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
  3845  func (c *CloudFormation) ListImportsRequest(input *ListImportsInput) (req *request.Request, output *ListImportsOutput) {
  3846  	op := &request.Operation{
  3847  		Name:       opListImports,
  3848  		HTTPMethod: "POST",
  3849  		HTTPPath:   "/",
  3850  		Paginator: &request.Paginator{
  3851  			InputTokens:     []string{"NextToken"},
  3852  			OutputTokens:    []string{"NextToken"},
  3853  			LimitToken:      "",
  3854  			TruncationToken: "",
  3855  		},
  3856  	}
  3857  
  3858  	if input == nil {
  3859  		input = &ListImportsInput{}
  3860  	}
  3861  
  3862  	output = &ListImportsOutput{}
  3863  	req = c.newRequest(op, input, output)
  3864  	return
  3865  }
  3866  
  3867  // ListImports API operation for AWS CloudFormation.
  3868  //
  3869  // Lists all stacks that are importing an exported output value. To modify or
  3870  // remove an exported output value, first use this action to see which stacks
  3871  // are using it. To see the exported output values in your account, see ListExports.
  3872  //
  3873  // For more information about importing an exported output value, see the Fn::ImportValue
  3874  // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)
  3875  // function.
  3876  //
  3877  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3878  // with awserr.Error's Code and Message methods to get detailed information about
  3879  // the error.
  3880  //
  3881  // See the AWS API reference guide for AWS CloudFormation's
  3882  // API operation ListImports for usage and error information.
  3883  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports
  3884  func (c *CloudFormation) ListImports(input *ListImportsInput) (*ListImportsOutput, error) {
  3885  	req, out := c.ListImportsRequest(input)
  3886  	return out, req.Send()
  3887  }
  3888  
  3889  // ListImportsWithContext is the same as ListImports with the addition of
  3890  // the ability to pass a context and additional request options.
  3891  //
  3892  // See ListImports for details on how to use this API operation.
  3893  //
  3894  // The context must be non-nil and will be used for request cancellation. If
  3895  // the context is nil a panic will occur. In the future the SDK may create
  3896  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3897  // for more information on using Contexts.
  3898  func (c *CloudFormation) ListImportsWithContext(ctx aws.Context, input *ListImportsInput, opts ...request.Option) (*ListImportsOutput, error) {
  3899  	req, out := c.ListImportsRequest(input)
  3900  	req.SetContext(ctx)
  3901  	req.ApplyOptions(opts...)
  3902  	return out, req.Send()
  3903  }
  3904  
  3905  // ListImportsPages iterates over the pages of a ListImports operation,
  3906  // calling the "fn" function with the response data for each page. To stop
  3907  // iterating, return false from the fn function.
  3908  //
  3909  // See ListImports method for more information on how to use this operation.
  3910  //
  3911  // Note: This operation can generate multiple requests to a service.
  3912  //
  3913  //    // Example iterating over at most 3 pages of a ListImports operation.
  3914  //    pageNum := 0
  3915  //    err := client.ListImportsPages(params,
  3916  //        func(page *cloudformation.ListImportsOutput, lastPage bool) bool {
  3917  //            pageNum++
  3918  //            fmt.Println(page)
  3919  //            return pageNum <= 3
  3920  //        })
  3921  //
  3922  func (c *CloudFormation) ListImportsPages(input *ListImportsInput, fn func(*ListImportsOutput, bool) bool) error {
  3923  	return c.ListImportsPagesWithContext(aws.BackgroundContext(), input, fn)
  3924  }
  3925  
  3926  // ListImportsPagesWithContext same as ListImportsPages except
  3927  // it takes a Context and allows setting request options on the pages.
  3928  //
  3929  // The context must be non-nil and will be used for request cancellation. If
  3930  // the context is nil a panic will occur. In the future the SDK may create
  3931  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3932  // for more information on using Contexts.
  3933  func (c *CloudFormation) ListImportsPagesWithContext(ctx aws.Context, input *ListImportsInput, fn func(*ListImportsOutput, bool) bool, opts ...request.Option) error {
  3934  	p := request.Pagination{
  3935  		NewRequest: func() (*request.Request, error) {
  3936  			var inCpy *ListImportsInput
  3937  			if input != nil {
  3938  				tmp := *input
  3939  				inCpy = &tmp
  3940  			}
  3941  			req, _ := c.ListImportsRequest(inCpy)
  3942  			req.SetContext(ctx)
  3943  			req.ApplyOptions(opts...)
  3944  			return req, nil
  3945  		},
  3946  	}
  3947  
  3948  	for p.Next() {
  3949  		if !fn(p.Page().(*ListImportsOutput), !p.HasNextPage()) {
  3950  			break
  3951  		}
  3952  	}
  3953  
  3954  	return p.Err()
  3955  }
  3956  
  3957  const opListStackInstances = "ListStackInstances"
  3958  
  3959  // ListStackInstancesRequest generates a "aws/request.Request" representing the
  3960  // client's request for the ListStackInstances operation. The "output" return
  3961  // value will be populated with the request's response once the request completes
  3962  // successfully.
  3963  //
  3964  // Use "Send" method on the returned Request to send the API call to the service.
  3965  // the "output" return value is not valid until after Send returns without error.
  3966  //
  3967  // See ListStackInstances for more information on using the ListStackInstances
  3968  // API call, and error handling.
  3969  //
  3970  // This method is useful when you want to inject custom logic or configuration
  3971  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3972  //
  3973  //
  3974  //    // Example sending a request using the ListStackInstancesRequest method.
  3975  //    req, resp := client.ListStackInstancesRequest(params)
  3976  //
  3977  //    err := req.Send()
  3978  //    if err == nil { // resp is now filled
  3979  //        fmt.Println(resp)
  3980  //    }
  3981  //
  3982  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
  3983  func (c *CloudFormation) ListStackInstancesRequest(input *ListStackInstancesInput) (req *request.Request, output *ListStackInstancesOutput) {
  3984  	op := &request.Operation{
  3985  		Name:       opListStackInstances,
  3986  		HTTPMethod: "POST",
  3987  		HTTPPath:   "/",
  3988  		Paginator: &request.Paginator{
  3989  			InputTokens:     []string{"NextToken"},
  3990  			OutputTokens:    []string{"NextToken"},
  3991  			LimitToken:      "MaxResults",
  3992  			TruncationToken: "",
  3993  		},
  3994  	}
  3995  
  3996  	if input == nil {
  3997  		input = &ListStackInstancesInput{}
  3998  	}
  3999  
  4000  	output = &ListStackInstancesOutput{}
  4001  	req = c.newRequest(op, input, output)
  4002  	return
  4003  }
  4004  
  4005  // ListStackInstances API operation for AWS CloudFormation.
  4006  //
  4007  // Returns summary information about stack instances that are associated with
  4008  // the specified stack set. You can filter for stack instances that are associated
  4009  // with a specific Amazon Web Services account name or Region, or that have
  4010  // a specific status.
  4011  //
  4012  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4013  // with awserr.Error's Code and Message methods to get detailed information about
  4014  // the error.
  4015  //
  4016  // See the AWS API reference guide for AWS CloudFormation's
  4017  // API operation ListStackInstances for usage and error information.
  4018  //
  4019  // Returned Error Codes:
  4020  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  4021  //   The specified stack set doesn't exist.
  4022  //
  4023  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances
  4024  func (c *CloudFormation) ListStackInstances(input *ListStackInstancesInput) (*ListStackInstancesOutput, error) {
  4025  	req, out := c.ListStackInstancesRequest(input)
  4026  	return out, req.Send()
  4027  }
  4028  
  4029  // ListStackInstancesWithContext is the same as ListStackInstances with the addition of
  4030  // the ability to pass a context and additional request options.
  4031  //
  4032  // See ListStackInstances for details on how to use this API operation.
  4033  //
  4034  // The context must be non-nil and will be used for request cancellation. If
  4035  // the context is nil a panic will occur. In the future the SDK may create
  4036  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4037  // for more information on using Contexts.
  4038  func (c *CloudFormation) ListStackInstancesWithContext(ctx aws.Context, input *ListStackInstancesInput, opts ...request.Option) (*ListStackInstancesOutput, error) {
  4039  	req, out := c.ListStackInstancesRequest(input)
  4040  	req.SetContext(ctx)
  4041  	req.ApplyOptions(opts...)
  4042  	return out, req.Send()
  4043  }
  4044  
  4045  // ListStackInstancesPages iterates over the pages of a ListStackInstances operation,
  4046  // calling the "fn" function with the response data for each page. To stop
  4047  // iterating, return false from the fn function.
  4048  //
  4049  // See ListStackInstances method for more information on how to use this operation.
  4050  //
  4051  // Note: This operation can generate multiple requests to a service.
  4052  //
  4053  //    // Example iterating over at most 3 pages of a ListStackInstances operation.
  4054  //    pageNum := 0
  4055  //    err := client.ListStackInstancesPages(params,
  4056  //        func(page *cloudformation.ListStackInstancesOutput, lastPage bool) bool {
  4057  //            pageNum++
  4058  //            fmt.Println(page)
  4059  //            return pageNum <= 3
  4060  //        })
  4061  //
  4062  func (c *CloudFormation) ListStackInstancesPages(input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool) error {
  4063  	return c.ListStackInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
  4064  }
  4065  
  4066  // ListStackInstancesPagesWithContext same as ListStackInstancesPages except
  4067  // it takes a Context and allows setting request options on the pages.
  4068  //
  4069  // The context must be non-nil and will be used for request cancellation. If
  4070  // the context is nil a panic will occur. In the future the SDK may create
  4071  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4072  // for more information on using Contexts.
  4073  func (c *CloudFormation) ListStackInstancesPagesWithContext(ctx aws.Context, input *ListStackInstancesInput, fn func(*ListStackInstancesOutput, bool) bool, opts ...request.Option) error {
  4074  	p := request.Pagination{
  4075  		NewRequest: func() (*request.Request, error) {
  4076  			var inCpy *ListStackInstancesInput
  4077  			if input != nil {
  4078  				tmp := *input
  4079  				inCpy = &tmp
  4080  			}
  4081  			req, _ := c.ListStackInstancesRequest(inCpy)
  4082  			req.SetContext(ctx)
  4083  			req.ApplyOptions(opts...)
  4084  			return req, nil
  4085  		},
  4086  	}
  4087  
  4088  	for p.Next() {
  4089  		if !fn(p.Page().(*ListStackInstancesOutput), !p.HasNextPage()) {
  4090  			break
  4091  		}
  4092  	}
  4093  
  4094  	return p.Err()
  4095  }
  4096  
  4097  const opListStackResources = "ListStackResources"
  4098  
  4099  // ListStackResourcesRequest generates a "aws/request.Request" representing the
  4100  // client's request for the ListStackResources operation. The "output" return
  4101  // value will be populated with the request's response once the request completes
  4102  // successfully.
  4103  //
  4104  // Use "Send" method on the returned Request to send the API call to the service.
  4105  // the "output" return value is not valid until after Send returns without error.
  4106  //
  4107  // See ListStackResources for more information on using the ListStackResources
  4108  // API call, and error handling.
  4109  //
  4110  // This method is useful when you want to inject custom logic or configuration
  4111  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4112  //
  4113  //
  4114  //    // Example sending a request using the ListStackResourcesRequest method.
  4115  //    req, resp := client.ListStackResourcesRequest(params)
  4116  //
  4117  //    err := req.Send()
  4118  //    if err == nil { // resp is now filled
  4119  //        fmt.Println(resp)
  4120  //    }
  4121  //
  4122  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
  4123  func (c *CloudFormation) ListStackResourcesRequest(input *ListStackResourcesInput) (req *request.Request, output *ListStackResourcesOutput) {
  4124  	op := &request.Operation{
  4125  		Name:       opListStackResources,
  4126  		HTTPMethod: "POST",
  4127  		HTTPPath:   "/",
  4128  		Paginator: &request.Paginator{
  4129  			InputTokens:     []string{"NextToken"},
  4130  			OutputTokens:    []string{"NextToken"},
  4131  			LimitToken:      "",
  4132  			TruncationToken: "",
  4133  		},
  4134  	}
  4135  
  4136  	if input == nil {
  4137  		input = &ListStackResourcesInput{}
  4138  	}
  4139  
  4140  	output = &ListStackResourcesOutput{}
  4141  	req = c.newRequest(op, input, output)
  4142  	return
  4143  }
  4144  
  4145  // ListStackResources API operation for AWS CloudFormation.
  4146  //
  4147  // Returns descriptions of all resources of the specified stack.
  4148  //
  4149  // For deleted stacks, ListStackResources returns resource information for up
  4150  // to 90 days after the stack has been deleted.
  4151  //
  4152  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4153  // with awserr.Error's Code and Message methods to get detailed information about
  4154  // the error.
  4155  //
  4156  // See the AWS API reference guide for AWS CloudFormation's
  4157  // API operation ListStackResources for usage and error information.
  4158  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources
  4159  func (c *CloudFormation) ListStackResources(input *ListStackResourcesInput) (*ListStackResourcesOutput, error) {
  4160  	req, out := c.ListStackResourcesRequest(input)
  4161  	return out, req.Send()
  4162  }
  4163  
  4164  // ListStackResourcesWithContext is the same as ListStackResources with the addition of
  4165  // the ability to pass a context and additional request options.
  4166  //
  4167  // See ListStackResources for details on how to use this API operation.
  4168  //
  4169  // The context must be non-nil and will be used for request cancellation. If
  4170  // the context is nil a panic will occur. In the future the SDK may create
  4171  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4172  // for more information on using Contexts.
  4173  func (c *CloudFormation) ListStackResourcesWithContext(ctx aws.Context, input *ListStackResourcesInput, opts ...request.Option) (*ListStackResourcesOutput, error) {
  4174  	req, out := c.ListStackResourcesRequest(input)
  4175  	req.SetContext(ctx)
  4176  	req.ApplyOptions(opts...)
  4177  	return out, req.Send()
  4178  }
  4179  
  4180  // ListStackResourcesPages iterates over the pages of a ListStackResources operation,
  4181  // calling the "fn" function with the response data for each page. To stop
  4182  // iterating, return false from the fn function.
  4183  //
  4184  // See ListStackResources method for more information on how to use this operation.
  4185  //
  4186  // Note: This operation can generate multiple requests to a service.
  4187  //
  4188  //    // Example iterating over at most 3 pages of a ListStackResources operation.
  4189  //    pageNum := 0
  4190  //    err := client.ListStackResourcesPages(params,
  4191  //        func(page *cloudformation.ListStackResourcesOutput, lastPage bool) bool {
  4192  //            pageNum++
  4193  //            fmt.Println(page)
  4194  //            return pageNum <= 3
  4195  //        })
  4196  //
  4197  func (c *CloudFormation) ListStackResourcesPages(input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool) error {
  4198  	return c.ListStackResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
  4199  }
  4200  
  4201  // ListStackResourcesPagesWithContext same as ListStackResourcesPages except
  4202  // it takes a Context and allows setting request options on the pages.
  4203  //
  4204  // The context must be non-nil and will be used for request cancellation. If
  4205  // the context is nil a panic will occur. In the future the SDK may create
  4206  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4207  // for more information on using Contexts.
  4208  func (c *CloudFormation) ListStackResourcesPagesWithContext(ctx aws.Context, input *ListStackResourcesInput, fn func(*ListStackResourcesOutput, bool) bool, opts ...request.Option) error {
  4209  	p := request.Pagination{
  4210  		NewRequest: func() (*request.Request, error) {
  4211  			var inCpy *ListStackResourcesInput
  4212  			if input != nil {
  4213  				tmp := *input
  4214  				inCpy = &tmp
  4215  			}
  4216  			req, _ := c.ListStackResourcesRequest(inCpy)
  4217  			req.SetContext(ctx)
  4218  			req.ApplyOptions(opts...)
  4219  			return req, nil
  4220  		},
  4221  	}
  4222  
  4223  	for p.Next() {
  4224  		if !fn(p.Page().(*ListStackResourcesOutput), !p.HasNextPage()) {
  4225  			break
  4226  		}
  4227  	}
  4228  
  4229  	return p.Err()
  4230  }
  4231  
  4232  const opListStackSetOperationResults = "ListStackSetOperationResults"
  4233  
  4234  // ListStackSetOperationResultsRequest generates a "aws/request.Request" representing the
  4235  // client's request for the ListStackSetOperationResults operation. The "output" return
  4236  // value will be populated with the request's response once the request completes
  4237  // successfully.
  4238  //
  4239  // Use "Send" method on the returned Request to send the API call to the service.
  4240  // the "output" return value is not valid until after Send returns without error.
  4241  //
  4242  // See ListStackSetOperationResults for more information on using the ListStackSetOperationResults
  4243  // API call, and error handling.
  4244  //
  4245  // This method is useful when you want to inject custom logic or configuration
  4246  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4247  //
  4248  //
  4249  //    // Example sending a request using the ListStackSetOperationResultsRequest method.
  4250  //    req, resp := client.ListStackSetOperationResultsRequest(params)
  4251  //
  4252  //    err := req.Send()
  4253  //    if err == nil { // resp is now filled
  4254  //        fmt.Println(resp)
  4255  //    }
  4256  //
  4257  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
  4258  func (c *CloudFormation) ListStackSetOperationResultsRequest(input *ListStackSetOperationResultsInput) (req *request.Request, output *ListStackSetOperationResultsOutput) {
  4259  	op := &request.Operation{
  4260  		Name:       opListStackSetOperationResults,
  4261  		HTTPMethod: "POST",
  4262  		HTTPPath:   "/",
  4263  		Paginator: &request.Paginator{
  4264  			InputTokens:     []string{"NextToken"},
  4265  			OutputTokens:    []string{"NextToken"},
  4266  			LimitToken:      "MaxResults",
  4267  			TruncationToken: "",
  4268  		},
  4269  	}
  4270  
  4271  	if input == nil {
  4272  		input = &ListStackSetOperationResultsInput{}
  4273  	}
  4274  
  4275  	output = &ListStackSetOperationResultsOutput{}
  4276  	req = c.newRequest(op, input, output)
  4277  	return
  4278  }
  4279  
  4280  // ListStackSetOperationResults API operation for AWS CloudFormation.
  4281  //
  4282  // Returns summary information about the results of a stack set operation.
  4283  //
  4284  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4285  // with awserr.Error's Code and Message methods to get detailed information about
  4286  // the error.
  4287  //
  4288  // See the AWS API reference guide for AWS CloudFormation's
  4289  // API operation ListStackSetOperationResults for usage and error information.
  4290  //
  4291  // Returned Error Codes:
  4292  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  4293  //   The specified stack set doesn't exist.
  4294  //
  4295  //   * ErrCodeOperationNotFoundException "OperationNotFoundException"
  4296  //   The specified ID refers to an operation that doesn't exist.
  4297  //
  4298  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults
  4299  func (c *CloudFormation) ListStackSetOperationResults(input *ListStackSetOperationResultsInput) (*ListStackSetOperationResultsOutput, error) {
  4300  	req, out := c.ListStackSetOperationResultsRequest(input)
  4301  	return out, req.Send()
  4302  }
  4303  
  4304  // ListStackSetOperationResultsWithContext is the same as ListStackSetOperationResults with the addition of
  4305  // the ability to pass a context and additional request options.
  4306  //
  4307  // See ListStackSetOperationResults for details on how to use this API operation.
  4308  //
  4309  // The context must be non-nil and will be used for request cancellation. If
  4310  // the context is nil a panic will occur. In the future the SDK may create
  4311  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4312  // for more information on using Contexts.
  4313  func (c *CloudFormation) ListStackSetOperationResultsWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, opts ...request.Option) (*ListStackSetOperationResultsOutput, error) {
  4314  	req, out := c.ListStackSetOperationResultsRequest(input)
  4315  	req.SetContext(ctx)
  4316  	req.ApplyOptions(opts...)
  4317  	return out, req.Send()
  4318  }
  4319  
  4320  // ListStackSetOperationResultsPages iterates over the pages of a ListStackSetOperationResults operation,
  4321  // calling the "fn" function with the response data for each page. To stop
  4322  // iterating, return false from the fn function.
  4323  //
  4324  // See ListStackSetOperationResults method for more information on how to use this operation.
  4325  //
  4326  // Note: This operation can generate multiple requests to a service.
  4327  //
  4328  //    // Example iterating over at most 3 pages of a ListStackSetOperationResults operation.
  4329  //    pageNum := 0
  4330  //    err := client.ListStackSetOperationResultsPages(params,
  4331  //        func(page *cloudformation.ListStackSetOperationResultsOutput, lastPage bool) bool {
  4332  //            pageNum++
  4333  //            fmt.Println(page)
  4334  //            return pageNum <= 3
  4335  //        })
  4336  //
  4337  func (c *CloudFormation) ListStackSetOperationResultsPages(input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool) error {
  4338  	return c.ListStackSetOperationResultsPagesWithContext(aws.BackgroundContext(), input, fn)
  4339  }
  4340  
  4341  // ListStackSetOperationResultsPagesWithContext same as ListStackSetOperationResultsPages except
  4342  // it takes a Context and allows setting request options on the pages.
  4343  //
  4344  // The context must be non-nil and will be used for request cancellation. If
  4345  // the context is nil a panic will occur. In the future the SDK may create
  4346  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4347  // for more information on using Contexts.
  4348  func (c *CloudFormation) ListStackSetOperationResultsPagesWithContext(ctx aws.Context, input *ListStackSetOperationResultsInput, fn func(*ListStackSetOperationResultsOutput, bool) bool, opts ...request.Option) error {
  4349  	p := request.Pagination{
  4350  		NewRequest: func() (*request.Request, error) {
  4351  			var inCpy *ListStackSetOperationResultsInput
  4352  			if input != nil {
  4353  				tmp := *input
  4354  				inCpy = &tmp
  4355  			}
  4356  			req, _ := c.ListStackSetOperationResultsRequest(inCpy)
  4357  			req.SetContext(ctx)
  4358  			req.ApplyOptions(opts...)
  4359  			return req, nil
  4360  		},
  4361  	}
  4362  
  4363  	for p.Next() {
  4364  		if !fn(p.Page().(*ListStackSetOperationResultsOutput), !p.HasNextPage()) {
  4365  			break
  4366  		}
  4367  	}
  4368  
  4369  	return p.Err()
  4370  }
  4371  
  4372  const opListStackSetOperations = "ListStackSetOperations"
  4373  
  4374  // ListStackSetOperationsRequest generates a "aws/request.Request" representing the
  4375  // client's request for the ListStackSetOperations operation. The "output" return
  4376  // value will be populated with the request's response once the request completes
  4377  // successfully.
  4378  //
  4379  // Use "Send" method on the returned Request to send the API call to the service.
  4380  // the "output" return value is not valid until after Send returns without error.
  4381  //
  4382  // See ListStackSetOperations for more information on using the ListStackSetOperations
  4383  // API call, and error handling.
  4384  //
  4385  // This method is useful when you want to inject custom logic or configuration
  4386  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4387  //
  4388  //
  4389  //    // Example sending a request using the ListStackSetOperationsRequest method.
  4390  //    req, resp := client.ListStackSetOperationsRequest(params)
  4391  //
  4392  //    err := req.Send()
  4393  //    if err == nil { // resp is now filled
  4394  //        fmt.Println(resp)
  4395  //    }
  4396  //
  4397  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
  4398  func (c *CloudFormation) ListStackSetOperationsRequest(input *ListStackSetOperationsInput) (req *request.Request, output *ListStackSetOperationsOutput) {
  4399  	op := &request.Operation{
  4400  		Name:       opListStackSetOperations,
  4401  		HTTPMethod: "POST",
  4402  		HTTPPath:   "/",
  4403  		Paginator: &request.Paginator{
  4404  			InputTokens:     []string{"NextToken"},
  4405  			OutputTokens:    []string{"NextToken"},
  4406  			LimitToken:      "MaxResults",
  4407  			TruncationToken: "",
  4408  		},
  4409  	}
  4410  
  4411  	if input == nil {
  4412  		input = &ListStackSetOperationsInput{}
  4413  	}
  4414  
  4415  	output = &ListStackSetOperationsOutput{}
  4416  	req = c.newRequest(op, input, output)
  4417  	return
  4418  }
  4419  
  4420  // ListStackSetOperations API operation for AWS CloudFormation.
  4421  //
  4422  // Returns summary information about operations performed on a stack set.
  4423  //
  4424  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4425  // with awserr.Error's Code and Message methods to get detailed information about
  4426  // the error.
  4427  //
  4428  // See the AWS API reference guide for AWS CloudFormation's
  4429  // API operation ListStackSetOperations for usage and error information.
  4430  //
  4431  // Returned Error Codes:
  4432  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  4433  //   The specified stack set doesn't exist.
  4434  //
  4435  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations
  4436  func (c *CloudFormation) ListStackSetOperations(input *ListStackSetOperationsInput) (*ListStackSetOperationsOutput, error) {
  4437  	req, out := c.ListStackSetOperationsRequest(input)
  4438  	return out, req.Send()
  4439  }
  4440  
  4441  // ListStackSetOperationsWithContext is the same as ListStackSetOperations with the addition of
  4442  // the ability to pass a context and additional request options.
  4443  //
  4444  // See ListStackSetOperations for details on how to use this API operation.
  4445  //
  4446  // The context must be non-nil and will be used for request cancellation. If
  4447  // the context is nil a panic will occur. In the future the SDK may create
  4448  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4449  // for more information on using Contexts.
  4450  func (c *CloudFormation) ListStackSetOperationsWithContext(ctx aws.Context, input *ListStackSetOperationsInput, opts ...request.Option) (*ListStackSetOperationsOutput, error) {
  4451  	req, out := c.ListStackSetOperationsRequest(input)
  4452  	req.SetContext(ctx)
  4453  	req.ApplyOptions(opts...)
  4454  	return out, req.Send()
  4455  }
  4456  
  4457  // ListStackSetOperationsPages iterates over the pages of a ListStackSetOperations operation,
  4458  // calling the "fn" function with the response data for each page. To stop
  4459  // iterating, return false from the fn function.
  4460  //
  4461  // See ListStackSetOperations method for more information on how to use this operation.
  4462  //
  4463  // Note: This operation can generate multiple requests to a service.
  4464  //
  4465  //    // Example iterating over at most 3 pages of a ListStackSetOperations operation.
  4466  //    pageNum := 0
  4467  //    err := client.ListStackSetOperationsPages(params,
  4468  //        func(page *cloudformation.ListStackSetOperationsOutput, lastPage bool) bool {
  4469  //            pageNum++
  4470  //            fmt.Println(page)
  4471  //            return pageNum <= 3
  4472  //        })
  4473  //
  4474  func (c *CloudFormation) ListStackSetOperationsPages(input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool) error {
  4475  	return c.ListStackSetOperationsPagesWithContext(aws.BackgroundContext(), input, fn)
  4476  }
  4477  
  4478  // ListStackSetOperationsPagesWithContext same as ListStackSetOperationsPages except
  4479  // it takes a Context and allows setting request options on the pages.
  4480  //
  4481  // The context must be non-nil and will be used for request cancellation. If
  4482  // the context is nil a panic will occur. In the future the SDK may create
  4483  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4484  // for more information on using Contexts.
  4485  func (c *CloudFormation) ListStackSetOperationsPagesWithContext(ctx aws.Context, input *ListStackSetOperationsInput, fn func(*ListStackSetOperationsOutput, bool) bool, opts ...request.Option) error {
  4486  	p := request.Pagination{
  4487  		NewRequest: func() (*request.Request, error) {
  4488  			var inCpy *ListStackSetOperationsInput
  4489  			if input != nil {
  4490  				tmp := *input
  4491  				inCpy = &tmp
  4492  			}
  4493  			req, _ := c.ListStackSetOperationsRequest(inCpy)
  4494  			req.SetContext(ctx)
  4495  			req.ApplyOptions(opts...)
  4496  			return req, nil
  4497  		},
  4498  	}
  4499  
  4500  	for p.Next() {
  4501  		if !fn(p.Page().(*ListStackSetOperationsOutput), !p.HasNextPage()) {
  4502  			break
  4503  		}
  4504  	}
  4505  
  4506  	return p.Err()
  4507  }
  4508  
  4509  const opListStackSets = "ListStackSets"
  4510  
  4511  // ListStackSetsRequest generates a "aws/request.Request" representing the
  4512  // client's request for the ListStackSets operation. The "output" return
  4513  // value will be populated with the request's response once the request completes
  4514  // successfully.
  4515  //
  4516  // Use "Send" method on the returned Request to send the API call to the service.
  4517  // the "output" return value is not valid until after Send returns without error.
  4518  //
  4519  // See ListStackSets for more information on using the ListStackSets
  4520  // API call, and error handling.
  4521  //
  4522  // This method is useful when you want to inject custom logic or configuration
  4523  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4524  //
  4525  //
  4526  //    // Example sending a request using the ListStackSetsRequest method.
  4527  //    req, resp := client.ListStackSetsRequest(params)
  4528  //
  4529  //    err := req.Send()
  4530  //    if err == nil { // resp is now filled
  4531  //        fmt.Println(resp)
  4532  //    }
  4533  //
  4534  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
  4535  func (c *CloudFormation) ListStackSetsRequest(input *ListStackSetsInput) (req *request.Request, output *ListStackSetsOutput) {
  4536  	op := &request.Operation{
  4537  		Name:       opListStackSets,
  4538  		HTTPMethod: "POST",
  4539  		HTTPPath:   "/",
  4540  		Paginator: &request.Paginator{
  4541  			InputTokens:     []string{"NextToken"},
  4542  			OutputTokens:    []string{"NextToken"},
  4543  			LimitToken:      "MaxResults",
  4544  			TruncationToken: "",
  4545  		},
  4546  	}
  4547  
  4548  	if input == nil {
  4549  		input = &ListStackSetsInput{}
  4550  	}
  4551  
  4552  	output = &ListStackSetsOutput{}
  4553  	req = c.newRequest(op, input, output)
  4554  	return
  4555  }
  4556  
  4557  // ListStackSets API operation for AWS CloudFormation.
  4558  //
  4559  // Returns summary information about stack sets that are associated with the
  4560  // user.
  4561  //
  4562  //    * [Self-managed permissions] If you set the CallAs parameter to SELF while
  4563  //    signed in to your Amazon Web Services account, ListStackSets returns all
  4564  //    self-managed stack sets in your Amazon Web Services account.
  4565  //
  4566  //    * [Service-managed permissions] If you set the CallAs parameter to SELF
  4567  //    while signed in to the organization's management account, ListStackSets
  4568  //    returns all stack sets in the management account.
  4569  //
  4570  //    * [Service-managed permissions] If you set the CallAs parameter to DELEGATED_ADMIN
  4571  //    while signed in to your member account, ListStackSets returns all stack
  4572  //    sets with service-managed permissions in the management account.
  4573  //
  4574  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4575  // with awserr.Error's Code and Message methods to get detailed information about
  4576  // the error.
  4577  //
  4578  // See the AWS API reference guide for AWS CloudFormation's
  4579  // API operation ListStackSets for usage and error information.
  4580  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets
  4581  func (c *CloudFormation) ListStackSets(input *ListStackSetsInput) (*ListStackSetsOutput, error) {
  4582  	req, out := c.ListStackSetsRequest(input)
  4583  	return out, req.Send()
  4584  }
  4585  
  4586  // ListStackSetsWithContext is the same as ListStackSets with the addition of
  4587  // the ability to pass a context and additional request options.
  4588  //
  4589  // See ListStackSets for details on how to use this API operation.
  4590  //
  4591  // The context must be non-nil and will be used for request cancellation. If
  4592  // the context is nil a panic will occur. In the future the SDK may create
  4593  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4594  // for more information on using Contexts.
  4595  func (c *CloudFormation) ListStackSetsWithContext(ctx aws.Context, input *ListStackSetsInput, opts ...request.Option) (*ListStackSetsOutput, error) {
  4596  	req, out := c.ListStackSetsRequest(input)
  4597  	req.SetContext(ctx)
  4598  	req.ApplyOptions(opts...)
  4599  	return out, req.Send()
  4600  }
  4601  
  4602  // ListStackSetsPages iterates over the pages of a ListStackSets operation,
  4603  // calling the "fn" function with the response data for each page. To stop
  4604  // iterating, return false from the fn function.
  4605  //
  4606  // See ListStackSets method for more information on how to use this operation.
  4607  //
  4608  // Note: This operation can generate multiple requests to a service.
  4609  //
  4610  //    // Example iterating over at most 3 pages of a ListStackSets operation.
  4611  //    pageNum := 0
  4612  //    err := client.ListStackSetsPages(params,
  4613  //        func(page *cloudformation.ListStackSetsOutput, lastPage bool) bool {
  4614  //            pageNum++
  4615  //            fmt.Println(page)
  4616  //            return pageNum <= 3
  4617  //        })
  4618  //
  4619  func (c *CloudFormation) ListStackSetsPages(input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool) error {
  4620  	return c.ListStackSetsPagesWithContext(aws.BackgroundContext(), input, fn)
  4621  }
  4622  
  4623  // ListStackSetsPagesWithContext same as ListStackSetsPages except
  4624  // it takes a Context and allows setting request options on the pages.
  4625  //
  4626  // The context must be non-nil and will be used for request cancellation. If
  4627  // the context is nil a panic will occur. In the future the SDK may create
  4628  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4629  // for more information on using Contexts.
  4630  func (c *CloudFormation) ListStackSetsPagesWithContext(ctx aws.Context, input *ListStackSetsInput, fn func(*ListStackSetsOutput, bool) bool, opts ...request.Option) error {
  4631  	p := request.Pagination{
  4632  		NewRequest: func() (*request.Request, error) {
  4633  			var inCpy *ListStackSetsInput
  4634  			if input != nil {
  4635  				tmp := *input
  4636  				inCpy = &tmp
  4637  			}
  4638  			req, _ := c.ListStackSetsRequest(inCpy)
  4639  			req.SetContext(ctx)
  4640  			req.ApplyOptions(opts...)
  4641  			return req, nil
  4642  		},
  4643  	}
  4644  
  4645  	for p.Next() {
  4646  		if !fn(p.Page().(*ListStackSetsOutput), !p.HasNextPage()) {
  4647  			break
  4648  		}
  4649  	}
  4650  
  4651  	return p.Err()
  4652  }
  4653  
  4654  const opListStacks = "ListStacks"
  4655  
  4656  // ListStacksRequest generates a "aws/request.Request" representing the
  4657  // client's request for the ListStacks operation. The "output" return
  4658  // value will be populated with the request's response once the request completes
  4659  // successfully.
  4660  //
  4661  // Use "Send" method on the returned Request to send the API call to the service.
  4662  // the "output" return value is not valid until after Send returns without error.
  4663  //
  4664  // See ListStacks for more information on using the ListStacks
  4665  // API call, and error handling.
  4666  //
  4667  // This method is useful when you want to inject custom logic or configuration
  4668  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4669  //
  4670  //
  4671  //    // Example sending a request using the ListStacksRequest method.
  4672  //    req, resp := client.ListStacksRequest(params)
  4673  //
  4674  //    err := req.Send()
  4675  //    if err == nil { // resp is now filled
  4676  //        fmt.Println(resp)
  4677  //    }
  4678  //
  4679  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
  4680  func (c *CloudFormation) ListStacksRequest(input *ListStacksInput) (req *request.Request, output *ListStacksOutput) {
  4681  	op := &request.Operation{
  4682  		Name:       opListStacks,
  4683  		HTTPMethod: "POST",
  4684  		HTTPPath:   "/",
  4685  		Paginator: &request.Paginator{
  4686  			InputTokens:     []string{"NextToken"},
  4687  			OutputTokens:    []string{"NextToken"},
  4688  			LimitToken:      "",
  4689  			TruncationToken: "",
  4690  		},
  4691  	}
  4692  
  4693  	if input == nil {
  4694  		input = &ListStacksInput{}
  4695  	}
  4696  
  4697  	output = &ListStacksOutput{}
  4698  	req = c.newRequest(op, input, output)
  4699  	return
  4700  }
  4701  
  4702  // ListStacks API operation for AWS CloudFormation.
  4703  //
  4704  // Returns the summary information for stacks whose status matches the specified
  4705  // StackStatusFilter. Summary information for stacks that have been deleted
  4706  // is kept for 90 days after the stack is deleted. If no StackStatusFilter is
  4707  // specified, summary information for all stacks is returned (including existing
  4708  // stacks and stacks that have been deleted).
  4709  //
  4710  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4711  // with awserr.Error's Code and Message methods to get detailed information about
  4712  // the error.
  4713  //
  4714  // See the AWS API reference guide for AWS CloudFormation's
  4715  // API operation ListStacks for usage and error information.
  4716  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks
  4717  func (c *CloudFormation) ListStacks(input *ListStacksInput) (*ListStacksOutput, error) {
  4718  	req, out := c.ListStacksRequest(input)
  4719  	return out, req.Send()
  4720  }
  4721  
  4722  // ListStacksWithContext is the same as ListStacks with the addition of
  4723  // the ability to pass a context and additional request options.
  4724  //
  4725  // See ListStacks for details on how to use this API operation.
  4726  //
  4727  // The context must be non-nil and will be used for request cancellation. If
  4728  // the context is nil a panic will occur. In the future the SDK may create
  4729  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4730  // for more information on using Contexts.
  4731  func (c *CloudFormation) ListStacksWithContext(ctx aws.Context, input *ListStacksInput, opts ...request.Option) (*ListStacksOutput, error) {
  4732  	req, out := c.ListStacksRequest(input)
  4733  	req.SetContext(ctx)
  4734  	req.ApplyOptions(opts...)
  4735  	return out, req.Send()
  4736  }
  4737  
  4738  // ListStacksPages iterates over the pages of a ListStacks operation,
  4739  // calling the "fn" function with the response data for each page. To stop
  4740  // iterating, return false from the fn function.
  4741  //
  4742  // See ListStacks method for more information on how to use this operation.
  4743  //
  4744  // Note: This operation can generate multiple requests to a service.
  4745  //
  4746  //    // Example iterating over at most 3 pages of a ListStacks operation.
  4747  //    pageNum := 0
  4748  //    err := client.ListStacksPages(params,
  4749  //        func(page *cloudformation.ListStacksOutput, lastPage bool) bool {
  4750  //            pageNum++
  4751  //            fmt.Println(page)
  4752  //            return pageNum <= 3
  4753  //        })
  4754  //
  4755  func (c *CloudFormation) ListStacksPages(input *ListStacksInput, fn func(*ListStacksOutput, bool) bool) error {
  4756  	return c.ListStacksPagesWithContext(aws.BackgroundContext(), input, fn)
  4757  }
  4758  
  4759  // ListStacksPagesWithContext same as ListStacksPages except
  4760  // it takes a Context and allows setting request options on the pages.
  4761  //
  4762  // The context must be non-nil and will be used for request cancellation. If
  4763  // the context is nil a panic will occur. In the future the SDK may create
  4764  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4765  // for more information on using Contexts.
  4766  func (c *CloudFormation) ListStacksPagesWithContext(ctx aws.Context, input *ListStacksInput, fn func(*ListStacksOutput, bool) bool, opts ...request.Option) error {
  4767  	p := request.Pagination{
  4768  		NewRequest: func() (*request.Request, error) {
  4769  			var inCpy *ListStacksInput
  4770  			if input != nil {
  4771  				tmp := *input
  4772  				inCpy = &tmp
  4773  			}
  4774  			req, _ := c.ListStacksRequest(inCpy)
  4775  			req.SetContext(ctx)
  4776  			req.ApplyOptions(opts...)
  4777  			return req, nil
  4778  		},
  4779  	}
  4780  
  4781  	for p.Next() {
  4782  		if !fn(p.Page().(*ListStacksOutput), !p.HasNextPage()) {
  4783  			break
  4784  		}
  4785  	}
  4786  
  4787  	return p.Err()
  4788  }
  4789  
  4790  const opListTypeRegistrations = "ListTypeRegistrations"
  4791  
  4792  // ListTypeRegistrationsRequest generates a "aws/request.Request" representing the
  4793  // client's request for the ListTypeRegistrations operation. The "output" return
  4794  // value will be populated with the request's response once the request completes
  4795  // successfully.
  4796  //
  4797  // Use "Send" method on the returned Request to send the API call to the service.
  4798  // the "output" return value is not valid until after Send returns without error.
  4799  //
  4800  // See ListTypeRegistrations for more information on using the ListTypeRegistrations
  4801  // API call, and error handling.
  4802  //
  4803  // This method is useful when you want to inject custom logic or configuration
  4804  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4805  //
  4806  //
  4807  //    // Example sending a request using the ListTypeRegistrationsRequest method.
  4808  //    req, resp := client.ListTypeRegistrationsRequest(params)
  4809  //
  4810  //    err := req.Send()
  4811  //    if err == nil { // resp is now filled
  4812  //        fmt.Println(resp)
  4813  //    }
  4814  //
  4815  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
  4816  func (c *CloudFormation) ListTypeRegistrationsRequest(input *ListTypeRegistrationsInput) (req *request.Request, output *ListTypeRegistrationsOutput) {
  4817  	op := &request.Operation{
  4818  		Name:       opListTypeRegistrations,
  4819  		HTTPMethod: "POST",
  4820  		HTTPPath:   "/",
  4821  		Paginator: &request.Paginator{
  4822  			InputTokens:     []string{"NextToken"},
  4823  			OutputTokens:    []string{"NextToken"},
  4824  			LimitToken:      "MaxResults",
  4825  			TruncationToken: "",
  4826  		},
  4827  	}
  4828  
  4829  	if input == nil {
  4830  		input = &ListTypeRegistrationsInput{}
  4831  	}
  4832  
  4833  	output = &ListTypeRegistrationsOutput{}
  4834  	req = c.newRequest(op, input, output)
  4835  	return
  4836  }
  4837  
  4838  // ListTypeRegistrations API operation for AWS CloudFormation.
  4839  //
  4840  // Returns a list of registration tokens for the specified extension(s).
  4841  //
  4842  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4843  // with awserr.Error's Code and Message methods to get detailed information about
  4844  // the error.
  4845  //
  4846  // See the AWS API reference guide for AWS CloudFormation's
  4847  // API operation ListTypeRegistrations for usage and error information.
  4848  //
  4849  // Returned Error Codes:
  4850  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  4851  //   An error occurred during a CloudFormation registry operation.
  4852  //
  4853  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations
  4854  func (c *CloudFormation) ListTypeRegistrations(input *ListTypeRegistrationsInput) (*ListTypeRegistrationsOutput, error) {
  4855  	req, out := c.ListTypeRegistrationsRequest(input)
  4856  	return out, req.Send()
  4857  }
  4858  
  4859  // ListTypeRegistrationsWithContext is the same as ListTypeRegistrations with the addition of
  4860  // the ability to pass a context and additional request options.
  4861  //
  4862  // See ListTypeRegistrations for details on how to use this API operation.
  4863  //
  4864  // The context must be non-nil and will be used for request cancellation. If
  4865  // the context is nil a panic will occur. In the future the SDK may create
  4866  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4867  // for more information on using Contexts.
  4868  func (c *CloudFormation) ListTypeRegistrationsWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, opts ...request.Option) (*ListTypeRegistrationsOutput, error) {
  4869  	req, out := c.ListTypeRegistrationsRequest(input)
  4870  	req.SetContext(ctx)
  4871  	req.ApplyOptions(opts...)
  4872  	return out, req.Send()
  4873  }
  4874  
  4875  // ListTypeRegistrationsPages iterates over the pages of a ListTypeRegistrations operation,
  4876  // calling the "fn" function with the response data for each page. To stop
  4877  // iterating, return false from the fn function.
  4878  //
  4879  // See ListTypeRegistrations method for more information on how to use this operation.
  4880  //
  4881  // Note: This operation can generate multiple requests to a service.
  4882  //
  4883  //    // Example iterating over at most 3 pages of a ListTypeRegistrations operation.
  4884  //    pageNum := 0
  4885  //    err := client.ListTypeRegistrationsPages(params,
  4886  //        func(page *cloudformation.ListTypeRegistrationsOutput, lastPage bool) bool {
  4887  //            pageNum++
  4888  //            fmt.Println(page)
  4889  //            return pageNum <= 3
  4890  //        })
  4891  //
  4892  func (c *CloudFormation) ListTypeRegistrationsPages(input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool) error {
  4893  	return c.ListTypeRegistrationsPagesWithContext(aws.BackgroundContext(), input, fn)
  4894  }
  4895  
  4896  // ListTypeRegistrationsPagesWithContext same as ListTypeRegistrationsPages except
  4897  // it takes a Context and allows setting request options on the pages.
  4898  //
  4899  // The context must be non-nil and will be used for request cancellation. If
  4900  // the context is nil a panic will occur. In the future the SDK may create
  4901  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4902  // for more information on using Contexts.
  4903  func (c *CloudFormation) ListTypeRegistrationsPagesWithContext(ctx aws.Context, input *ListTypeRegistrationsInput, fn func(*ListTypeRegistrationsOutput, bool) bool, opts ...request.Option) error {
  4904  	p := request.Pagination{
  4905  		NewRequest: func() (*request.Request, error) {
  4906  			var inCpy *ListTypeRegistrationsInput
  4907  			if input != nil {
  4908  				tmp := *input
  4909  				inCpy = &tmp
  4910  			}
  4911  			req, _ := c.ListTypeRegistrationsRequest(inCpy)
  4912  			req.SetContext(ctx)
  4913  			req.ApplyOptions(opts...)
  4914  			return req, nil
  4915  		},
  4916  	}
  4917  
  4918  	for p.Next() {
  4919  		if !fn(p.Page().(*ListTypeRegistrationsOutput), !p.HasNextPage()) {
  4920  			break
  4921  		}
  4922  	}
  4923  
  4924  	return p.Err()
  4925  }
  4926  
  4927  const opListTypeVersions = "ListTypeVersions"
  4928  
  4929  // ListTypeVersionsRequest generates a "aws/request.Request" representing the
  4930  // client's request for the ListTypeVersions operation. The "output" return
  4931  // value will be populated with the request's response once the request completes
  4932  // successfully.
  4933  //
  4934  // Use "Send" method on the returned Request to send the API call to the service.
  4935  // the "output" return value is not valid until after Send returns without error.
  4936  //
  4937  // See ListTypeVersions for more information on using the ListTypeVersions
  4938  // API call, and error handling.
  4939  //
  4940  // This method is useful when you want to inject custom logic or configuration
  4941  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4942  //
  4943  //
  4944  //    // Example sending a request using the ListTypeVersionsRequest method.
  4945  //    req, resp := client.ListTypeVersionsRequest(params)
  4946  //
  4947  //    err := req.Send()
  4948  //    if err == nil { // resp is now filled
  4949  //        fmt.Println(resp)
  4950  //    }
  4951  //
  4952  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
  4953  func (c *CloudFormation) ListTypeVersionsRequest(input *ListTypeVersionsInput) (req *request.Request, output *ListTypeVersionsOutput) {
  4954  	op := &request.Operation{
  4955  		Name:       opListTypeVersions,
  4956  		HTTPMethod: "POST",
  4957  		HTTPPath:   "/",
  4958  		Paginator: &request.Paginator{
  4959  			InputTokens:     []string{"NextToken"},
  4960  			OutputTokens:    []string{"NextToken"},
  4961  			LimitToken:      "MaxResults",
  4962  			TruncationToken: "",
  4963  		},
  4964  	}
  4965  
  4966  	if input == nil {
  4967  		input = &ListTypeVersionsInput{}
  4968  	}
  4969  
  4970  	output = &ListTypeVersionsOutput{}
  4971  	req = c.newRequest(op, input, output)
  4972  	return
  4973  }
  4974  
  4975  // ListTypeVersions API operation for AWS CloudFormation.
  4976  //
  4977  // Returns summary information about the versions of an extension.
  4978  //
  4979  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4980  // with awserr.Error's Code and Message methods to get detailed information about
  4981  // the error.
  4982  //
  4983  // See the AWS API reference guide for AWS CloudFormation's
  4984  // API operation ListTypeVersions for usage and error information.
  4985  //
  4986  // Returned Error Codes:
  4987  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  4988  //   An error occurred during a CloudFormation registry operation.
  4989  //
  4990  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions
  4991  func (c *CloudFormation) ListTypeVersions(input *ListTypeVersionsInput) (*ListTypeVersionsOutput, error) {
  4992  	req, out := c.ListTypeVersionsRequest(input)
  4993  	return out, req.Send()
  4994  }
  4995  
  4996  // ListTypeVersionsWithContext is the same as ListTypeVersions with the addition of
  4997  // the ability to pass a context and additional request options.
  4998  //
  4999  // See ListTypeVersions for details on how to use this API operation.
  5000  //
  5001  // The context must be non-nil and will be used for request cancellation. If
  5002  // the context is nil a panic will occur. In the future the SDK may create
  5003  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5004  // for more information on using Contexts.
  5005  func (c *CloudFormation) ListTypeVersionsWithContext(ctx aws.Context, input *ListTypeVersionsInput, opts ...request.Option) (*ListTypeVersionsOutput, error) {
  5006  	req, out := c.ListTypeVersionsRequest(input)
  5007  	req.SetContext(ctx)
  5008  	req.ApplyOptions(opts...)
  5009  	return out, req.Send()
  5010  }
  5011  
  5012  // ListTypeVersionsPages iterates over the pages of a ListTypeVersions operation,
  5013  // calling the "fn" function with the response data for each page. To stop
  5014  // iterating, return false from the fn function.
  5015  //
  5016  // See ListTypeVersions method for more information on how to use this operation.
  5017  //
  5018  // Note: This operation can generate multiple requests to a service.
  5019  //
  5020  //    // Example iterating over at most 3 pages of a ListTypeVersions operation.
  5021  //    pageNum := 0
  5022  //    err := client.ListTypeVersionsPages(params,
  5023  //        func(page *cloudformation.ListTypeVersionsOutput, lastPage bool) bool {
  5024  //            pageNum++
  5025  //            fmt.Println(page)
  5026  //            return pageNum <= 3
  5027  //        })
  5028  //
  5029  func (c *CloudFormation) ListTypeVersionsPages(input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool) error {
  5030  	return c.ListTypeVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
  5031  }
  5032  
  5033  // ListTypeVersionsPagesWithContext same as ListTypeVersionsPages except
  5034  // it takes a Context and allows setting request options on the pages.
  5035  //
  5036  // The context must be non-nil and will be used for request cancellation. If
  5037  // the context is nil a panic will occur. In the future the SDK may create
  5038  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5039  // for more information on using Contexts.
  5040  func (c *CloudFormation) ListTypeVersionsPagesWithContext(ctx aws.Context, input *ListTypeVersionsInput, fn func(*ListTypeVersionsOutput, bool) bool, opts ...request.Option) error {
  5041  	p := request.Pagination{
  5042  		NewRequest: func() (*request.Request, error) {
  5043  			var inCpy *ListTypeVersionsInput
  5044  			if input != nil {
  5045  				tmp := *input
  5046  				inCpy = &tmp
  5047  			}
  5048  			req, _ := c.ListTypeVersionsRequest(inCpy)
  5049  			req.SetContext(ctx)
  5050  			req.ApplyOptions(opts...)
  5051  			return req, nil
  5052  		},
  5053  	}
  5054  
  5055  	for p.Next() {
  5056  		if !fn(p.Page().(*ListTypeVersionsOutput), !p.HasNextPage()) {
  5057  			break
  5058  		}
  5059  	}
  5060  
  5061  	return p.Err()
  5062  }
  5063  
  5064  const opListTypes = "ListTypes"
  5065  
  5066  // ListTypesRequest generates a "aws/request.Request" representing the
  5067  // client's request for the ListTypes operation. The "output" return
  5068  // value will be populated with the request's response once the request completes
  5069  // successfully.
  5070  //
  5071  // Use "Send" method on the returned Request to send the API call to the service.
  5072  // the "output" return value is not valid until after Send returns without error.
  5073  //
  5074  // See ListTypes for more information on using the ListTypes
  5075  // API call, and error handling.
  5076  //
  5077  // This method is useful when you want to inject custom logic or configuration
  5078  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5079  //
  5080  //
  5081  //    // Example sending a request using the ListTypesRequest method.
  5082  //    req, resp := client.ListTypesRequest(params)
  5083  //
  5084  //    err := req.Send()
  5085  //    if err == nil { // resp is now filled
  5086  //        fmt.Println(resp)
  5087  //    }
  5088  //
  5089  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
  5090  func (c *CloudFormation) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) {
  5091  	op := &request.Operation{
  5092  		Name:       opListTypes,
  5093  		HTTPMethod: "POST",
  5094  		HTTPPath:   "/",
  5095  		Paginator: &request.Paginator{
  5096  			InputTokens:     []string{"NextToken"},
  5097  			OutputTokens:    []string{"NextToken"},
  5098  			LimitToken:      "MaxResults",
  5099  			TruncationToken: "",
  5100  		},
  5101  	}
  5102  
  5103  	if input == nil {
  5104  		input = &ListTypesInput{}
  5105  	}
  5106  
  5107  	output = &ListTypesOutput{}
  5108  	req = c.newRequest(op, input, output)
  5109  	return
  5110  }
  5111  
  5112  // ListTypes API operation for AWS CloudFormation.
  5113  //
  5114  // Returns summary information about extension that have been registered with
  5115  // CloudFormation.
  5116  //
  5117  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5118  // with awserr.Error's Code and Message methods to get detailed information about
  5119  // the error.
  5120  //
  5121  // See the AWS API reference guide for AWS CloudFormation's
  5122  // API operation ListTypes for usage and error information.
  5123  //
  5124  // Returned Error Codes:
  5125  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  5126  //   An error occurred during a CloudFormation registry operation.
  5127  //
  5128  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes
  5129  func (c *CloudFormation) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) {
  5130  	req, out := c.ListTypesRequest(input)
  5131  	return out, req.Send()
  5132  }
  5133  
  5134  // ListTypesWithContext is the same as ListTypes with the addition of
  5135  // the ability to pass a context and additional request options.
  5136  //
  5137  // See ListTypes for details on how to use this API operation.
  5138  //
  5139  // The context must be non-nil and will be used for request cancellation. If
  5140  // the context is nil a panic will occur. In the future the SDK may create
  5141  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5142  // for more information on using Contexts.
  5143  func (c *CloudFormation) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) {
  5144  	req, out := c.ListTypesRequest(input)
  5145  	req.SetContext(ctx)
  5146  	req.ApplyOptions(opts...)
  5147  	return out, req.Send()
  5148  }
  5149  
  5150  // ListTypesPages iterates over the pages of a ListTypes operation,
  5151  // calling the "fn" function with the response data for each page. To stop
  5152  // iterating, return false from the fn function.
  5153  //
  5154  // See ListTypes method for more information on how to use this operation.
  5155  //
  5156  // Note: This operation can generate multiple requests to a service.
  5157  //
  5158  //    // Example iterating over at most 3 pages of a ListTypes operation.
  5159  //    pageNum := 0
  5160  //    err := client.ListTypesPages(params,
  5161  //        func(page *cloudformation.ListTypesOutput, lastPage bool) bool {
  5162  //            pageNum++
  5163  //            fmt.Println(page)
  5164  //            return pageNum <= 3
  5165  //        })
  5166  //
  5167  func (c *CloudFormation) ListTypesPages(input *ListTypesInput, fn func(*ListTypesOutput, bool) bool) error {
  5168  	return c.ListTypesPagesWithContext(aws.BackgroundContext(), input, fn)
  5169  }
  5170  
  5171  // ListTypesPagesWithContext same as ListTypesPages except
  5172  // it takes a Context and allows setting request options on the pages.
  5173  //
  5174  // The context must be non-nil and will be used for request cancellation. If
  5175  // the context is nil a panic will occur. In the future the SDK may create
  5176  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5177  // for more information on using Contexts.
  5178  func (c *CloudFormation) ListTypesPagesWithContext(ctx aws.Context, input *ListTypesInput, fn func(*ListTypesOutput, bool) bool, opts ...request.Option) error {
  5179  	p := request.Pagination{
  5180  		NewRequest: func() (*request.Request, error) {
  5181  			var inCpy *ListTypesInput
  5182  			if input != nil {
  5183  				tmp := *input
  5184  				inCpy = &tmp
  5185  			}
  5186  			req, _ := c.ListTypesRequest(inCpy)
  5187  			req.SetContext(ctx)
  5188  			req.ApplyOptions(opts...)
  5189  			return req, nil
  5190  		},
  5191  	}
  5192  
  5193  	for p.Next() {
  5194  		if !fn(p.Page().(*ListTypesOutput), !p.HasNextPage()) {
  5195  			break
  5196  		}
  5197  	}
  5198  
  5199  	return p.Err()
  5200  }
  5201  
  5202  const opPublishType = "PublishType"
  5203  
  5204  // PublishTypeRequest generates a "aws/request.Request" representing the
  5205  // client's request for the PublishType operation. The "output" return
  5206  // value will be populated with the request's response once the request completes
  5207  // successfully.
  5208  //
  5209  // Use "Send" method on the returned Request to send the API call to the service.
  5210  // the "output" return value is not valid until after Send returns without error.
  5211  //
  5212  // See PublishType for more information on using the PublishType
  5213  // API call, and error handling.
  5214  //
  5215  // This method is useful when you want to inject custom logic or configuration
  5216  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5217  //
  5218  //
  5219  //    // Example sending a request using the PublishTypeRequest method.
  5220  //    req, resp := client.PublishTypeRequest(params)
  5221  //
  5222  //    err := req.Send()
  5223  //    if err == nil { // resp is now filled
  5224  //        fmt.Println(resp)
  5225  //    }
  5226  //
  5227  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
  5228  func (c *CloudFormation) PublishTypeRequest(input *PublishTypeInput) (req *request.Request, output *PublishTypeOutput) {
  5229  	op := &request.Operation{
  5230  		Name:       opPublishType,
  5231  		HTTPMethod: "POST",
  5232  		HTTPPath:   "/",
  5233  	}
  5234  
  5235  	if input == nil {
  5236  		input = &PublishTypeInput{}
  5237  	}
  5238  
  5239  	output = &PublishTypeOutput{}
  5240  	req = c.newRequest(op, input, output)
  5241  	return
  5242  }
  5243  
  5244  // PublishType API operation for AWS CloudFormation.
  5245  //
  5246  // Publishes the specified extension to the CloudFormation registry as a public
  5247  // extension in this region. Public extensions are available for use by all
  5248  // CloudFormation users. For more information on publishing extensions, see
  5249  // Publishing extensions to make them available for public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
  5250  // in the CloudFormation CLI User Guide.
  5251  //
  5252  // To publish an extension, you must be registered as a publisher with CloudFormation.
  5253  // For more information, see RegisterPublisher (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterPublisher.html).
  5254  //
  5255  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5256  // with awserr.Error's Code and Message methods to get detailed information about
  5257  // the error.
  5258  //
  5259  // See the AWS API reference guide for AWS CloudFormation's
  5260  // API operation PublishType for usage and error information.
  5261  //
  5262  // Returned Error Codes:
  5263  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  5264  //   An error occurred during a CloudFormation registry operation.
  5265  //
  5266  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
  5267  //   The specified extension does not exist in the CloudFormation registry.
  5268  //
  5269  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PublishType
  5270  func (c *CloudFormation) PublishType(input *PublishTypeInput) (*PublishTypeOutput, error) {
  5271  	req, out := c.PublishTypeRequest(input)
  5272  	return out, req.Send()
  5273  }
  5274  
  5275  // PublishTypeWithContext is the same as PublishType with the addition of
  5276  // the ability to pass a context and additional request options.
  5277  //
  5278  // See PublishType for details on how to use this API operation.
  5279  //
  5280  // The context must be non-nil and will be used for request cancellation. If
  5281  // the context is nil a panic will occur. In the future the SDK may create
  5282  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5283  // for more information on using Contexts.
  5284  func (c *CloudFormation) PublishTypeWithContext(ctx aws.Context, input *PublishTypeInput, opts ...request.Option) (*PublishTypeOutput, error) {
  5285  	req, out := c.PublishTypeRequest(input)
  5286  	req.SetContext(ctx)
  5287  	req.ApplyOptions(opts...)
  5288  	return out, req.Send()
  5289  }
  5290  
  5291  const opRecordHandlerProgress = "RecordHandlerProgress"
  5292  
  5293  // RecordHandlerProgressRequest generates a "aws/request.Request" representing the
  5294  // client's request for the RecordHandlerProgress operation. The "output" return
  5295  // value will be populated with the request's response once the request completes
  5296  // successfully.
  5297  //
  5298  // Use "Send" method on the returned Request to send the API call to the service.
  5299  // the "output" return value is not valid until after Send returns without error.
  5300  //
  5301  // See RecordHandlerProgress for more information on using the RecordHandlerProgress
  5302  // API call, and error handling.
  5303  //
  5304  // This method is useful when you want to inject custom logic or configuration
  5305  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5306  //
  5307  //
  5308  //    // Example sending a request using the RecordHandlerProgressRequest method.
  5309  //    req, resp := client.RecordHandlerProgressRequest(params)
  5310  //
  5311  //    err := req.Send()
  5312  //    if err == nil { // resp is now filled
  5313  //        fmt.Println(resp)
  5314  //    }
  5315  //
  5316  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
  5317  func (c *CloudFormation) RecordHandlerProgressRequest(input *RecordHandlerProgressInput) (req *request.Request, output *RecordHandlerProgressOutput) {
  5318  	op := &request.Operation{
  5319  		Name:       opRecordHandlerProgress,
  5320  		HTTPMethod: "POST",
  5321  		HTTPPath:   "/",
  5322  	}
  5323  
  5324  	if input == nil {
  5325  		input = &RecordHandlerProgressInput{}
  5326  	}
  5327  
  5328  	output = &RecordHandlerProgressOutput{}
  5329  	req = c.newRequest(op, input, output)
  5330  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5331  	return
  5332  }
  5333  
  5334  // RecordHandlerProgress API operation for AWS CloudFormation.
  5335  //
  5336  // Reports progress of a resource handler to CloudFormation.
  5337  //
  5338  // Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
  5339  // Do not use this API in your code.
  5340  //
  5341  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5342  // with awserr.Error's Code and Message methods to get detailed information about
  5343  // the error.
  5344  //
  5345  // See the AWS API reference guide for AWS CloudFormation's
  5346  // API operation RecordHandlerProgress for usage and error information.
  5347  //
  5348  // Returned Error Codes:
  5349  //   * ErrCodeInvalidStateTransitionException "InvalidStateTransition"
  5350  //   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
  5351  //   CloudFormation does not return this error to users.
  5352  //
  5353  //   * ErrCodeOperationStatusCheckFailedException "ConditionalCheckFailed"
  5354  //   Error reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
  5355  //   CloudFormation does not return this error to users.
  5356  //
  5357  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress
  5358  func (c *CloudFormation) RecordHandlerProgress(input *RecordHandlerProgressInput) (*RecordHandlerProgressOutput, error) {
  5359  	req, out := c.RecordHandlerProgressRequest(input)
  5360  	return out, req.Send()
  5361  }
  5362  
  5363  // RecordHandlerProgressWithContext is the same as RecordHandlerProgress with the addition of
  5364  // the ability to pass a context and additional request options.
  5365  //
  5366  // See RecordHandlerProgress for details on how to use this API operation.
  5367  //
  5368  // The context must be non-nil and will be used for request cancellation. If
  5369  // the context is nil a panic will occur. In the future the SDK may create
  5370  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5371  // for more information on using Contexts.
  5372  func (c *CloudFormation) RecordHandlerProgressWithContext(ctx aws.Context, input *RecordHandlerProgressInput, opts ...request.Option) (*RecordHandlerProgressOutput, error) {
  5373  	req, out := c.RecordHandlerProgressRequest(input)
  5374  	req.SetContext(ctx)
  5375  	req.ApplyOptions(opts...)
  5376  	return out, req.Send()
  5377  }
  5378  
  5379  const opRegisterPublisher = "RegisterPublisher"
  5380  
  5381  // RegisterPublisherRequest generates a "aws/request.Request" representing the
  5382  // client's request for the RegisterPublisher operation. The "output" return
  5383  // value will be populated with the request's response once the request completes
  5384  // successfully.
  5385  //
  5386  // Use "Send" method on the returned Request to send the API call to the service.
  5387  // the "output" return value is not valid until after Send returns without error.
  5388  //
  5389  // See RegisterPublisher for more information on using the RegisterPublisher
  5390  // API call, and error handling.
  5391  //
  5392  // This method is useful when you want to inject custom logic or configuration
  5393  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5394  //
  5395  //
  5396  //    // Example sending a request using the RegisterPublisherRequest method.
  5397  //    req, resp := client.RegisterPublisherRequest(params)
  5398  //
  5399  //    err := req.Send()
  5400  //    if err == nil { // resp is now filled
  5401  //        fmt.Println(resp)
  5402  //    }
  5403  //
  5404  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
  5405  func (c *CloudFormation) RegisterPublisherRequest(input *RegisterPublisherInput) (req *request.Request, output *RegisterPublisherOutput) {
  5406  	op := &request.Operation{
  5407  		Name:       opRegisterPublisher,
  5408  		HTTPMethod: "POST",
  5409  		HTTPPath:   "/",
  5410  	}
  5411  
  5412  	if input == nil {
  5413  		input = &RegisterPublisherInput{}
  5414  	}
  5415  
  5416  	output = &RegisterPublisherOutput{}
  5417  	req = c.newRequest(op, input, output)
  5418  	return
  5419  }
  5420  
  5421  // RegisterPublisher API operation for AWS CloudFormation.
  5422  //
  5423  // Registers your account as a publisher of public extensions in the CloudFormation
  5424  // registry. Public extensions are available for use by all CloudFormation users.
  5425  // This publisher ID applies to your account in all Amazon Web Services Regions.
  5426  //
  5427  // For information on requirements for registering as a public extension publisher,
  5428  // see Registering your account to publish CloudFormation extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
  5429  // in the CloudFormation CLI User Guide.
  5430  //
  5431  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5432  // with awserr.Error's Code and Message methods to get detailed information about
  5433  // the error.
  5434  //
  5435  // See the AWS API reference guide for AWS CloudFormation's
  5436  // API operation RegisterPublisher for usage and error information.
  5437  //
  5438  // Returned Error Codes:
  5439  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  5440  //   An error occurred during a CloudFormation registry operation.
  5441  //
  5442  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterPublisher
  5443  func (c *CloudFormation) RegisterPublisher(input *RegisterPublisherInput) (*RegisterPublisherOutput, error) {
  5444  	req, out := c.RegisterPublisherRequest(input)
  5445  	return out, req.Send()
  5446  }
  5447  
  5448  // RegisterPublisherWithContext is the same as RegisterPublisher with the addition of
  5449  // the ability to pass a context and additional request options.
  5450  //
  5451  // See RegisterPublisher for details on how to use this API operation.
  5452  //
  5453  // The context must be non-nil and will be used for request cancellation. If
  5454  // the context is nil a panic will occur. In the future the SDK may create
  5455  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5456  // for more information on using Contexts.
  5457  func (c *CloudFormation) RegisterPublisherWithContext(ctx aws.Context, input *RegisterPublisherInput, opts ...request.Option) (*RegisterPublisherOutput, error) {
  5458  	req, out := c.RegisterPublisherRequest(input)
  5459  	req.SetContext(ctx)
  5460  	req.ApplyOptions(opts...)
  5461  	return out, req.Send()
  5462  }
  5463  
  5464  const opRegisterType = "RegisterType"
  5465  
  5466  // RegisterTypeRequest generates a "aws/request.Request" representing the
  5467  // client's request for the RegisterType operation. The "output" return
  5468  // value will be populated with the request's response once the request completes
  5469  // successfully.
  5470  //
  5471  // Use "Send" method on the returned Request to send the API call to the service.
  5472  // the "output" return value is not valid until after Send returns without error.
  5473  //
  5474  // See RegisterType for more information on using the RegisterType
  5475  // API call, and error handling.
  5476  //
  5477  // This method is useful when you want to inject custom logic or configuration
  5478  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5479  //
  5480  //
  5481  //    // Example sending a request using the RegisterTypeRequest method.
  5482  //    req, resp := client.RegisterTypeRequest(params)
  5483  //
  5484  //    err := req.Send()
  5485  //    if err == nil { // resp is now filled
  5486  //        fmt.Println(resp)
  5487  //    }
  5488  //
  5489  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
  5490  func (c *CloudFormation) RegisterTypeRequest(input *RegisterTypeInput) (req *request.Request, output *RegisterTypeOutput) {
  5491  	op := &request.Operation{
  5492  		Name:       opRegisterType,
  5493  		HTTPMethod: "POST",
  5494  		HTTPPath:   "/",
  5495  	}
  5496  
  5497  	if input == nil {
  5498  		input = &RegisterTypeInput{}
  5499  	}
  5500  
  5501  	output = &RegisterTypeOutput{}
  5502  	req = c.newRequest(op, input, output)
  5503  	return
  5504  }
  5505  
  5506  // RegisterType API operation for AWS CloudFormation.
  5507  //
  5508  // Registers an extension with the CloudFormation service. Registering an extension
  5509  // makes it available for use in CloudFormation templates in your Amazon Web
  5510  // Services account, and includes:
  5511  //
  5512  //    * Validating the extension schema
  5513  //
  5514  //    * Determining which handlers, if any, have been specified for the extension
  5515  //
  5516  //    * Making the extension available for use in your account
  5517  //
  5518  // For more information on how to develop extensions and ready them for registeration,
  5519  // see Creating Resource Providers (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)
  5520  // in the CloudFormation CLI User Guide.
  5521  //
  5522  // You can have a maximum of 50 resource extension versions registered at a
  5523  // time. This maximum is per account and per region. Use DeregisterType (AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
  5524  // to deregister specific extension versions if necessary.
  5525  //
  5526  // Once you have initiated a registration request using RegisterType , you can
  5527  // use DescribeTypeRegistration to monitor the progress of the registration
  5528  // request.
  5529  //
  5530  // Once you have registered a private extension in your account and region,
  5531  // use SetTypeConfiguration (AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html)
  5532  // to specify configuration properties for the extension. For more information,
  5533  // see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
  5534  // in the CloudFormation User Guide.
  5535  //
  5536  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5537  // with awserr.Error's Code and Message methods to get detailed information about
  5538  // the error.
  5539  //
  5540  // See the AWS API reference guide for AWS CloudFormation's
  5541  // API operation RegisterType for usage and error information.
  5542  //
  5543  // Returned Error Codes:
  5544  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  5545  //   An error occurred during a CloudFormation registry operation.
  5546  //
  5547  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType
  5548  func (c *CloudFormation) RegisterType(input *RegisterTypeInput) (*RegisterTypeOutput, error) {
  5549  	req, out := c.RegisterTypeRequest(input)
  5550  	return out, req.Send()
  5551  }
  5552  
  5553  // RegisterTypeWithContext is the same as RegisterType with the addition of
  5554  // the ability to pass a context and additional request options.
  5555  //
  5556  // See RegisterType for details on how to use this API operation.
  5557  //
  5558  // The context must be non-nil and will be used for request cancellation. If
  5559  // the context is nil a panic will occur. In the future the SDK may create
  5560  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5561  // for more information on using Contexts.
  5562  func (c *CloudFormation) RegisterTypeWithContext(ctx aws.Context, input *RegisterTypeInput, opts ...request.Option) (*RegisterTypeOutput, error) {
  5563  	req, out := c.RegisterTypeRequest(input)
  5564  	req.SetContext(ctx)
  5565  	req.ApplyOptions(opts...)
  5566  	return out, req.Send()
  5567  }
  5568  
  5569  const opRollbackStack = "RollbackStack"
  5570  
  5571  // RollbackStackRequest generates a "aws/request.Request" representing the
  5572  // client's request for the RollbackStack operation. The "output" return
  5573  // value will be populated with the request's response once the request completes
  5574  // successfully.
  5575  //
  5576  // Use "Send" method on the returned Request to send the API call to the service.
  5577  // the "output" return value is not valid until after Send returns without error.
  5578  //
  5579  // See RollbackStack for more information on using the RollbackStack
  5580  // API call, and error handling.
  5581  //
  5582  // This method is useful when you want to inject custom logic or configuration
  5583  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5584  //
  5585  //
  5586  //    // Example sending a request using the RollbackStackRequest method.
  5587  //    req, resp := client.RollbackStackRequest(params)
  5588  //
  5589  //    err := req.Send()
  5590  //    if err == nil { // resp is now filled
  5591  //        fmt.Println(resp)
  5592  //    }
  5593  //
  5594  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack
  5595  func (c *CloudFormation) RollbackStackRequest(input *RollbackStackInput) (req *request.Request, output *RollbackStackOutput) {
  5596  	op := &request.Operation{
  5597  		Name:       opRollbackStack,
  5598  		HTTPMethod: "POST",
  5599  		HTTPPath:   "/",
  5600  	}
  5601  
  5602  	if input == nil {
  5603  		input = &RollbackStackInput{}
  5604  	}
  5605  
  5606  	output = &RollbackStackOutput{}
  5607  	req = c.newRequest(op, input, output)
  5608  	return
  5609  }
  5610  
  5611  // RollbackStack API operation for AWS CloudFormation.
  5612  //
  5613  // When specifying RollbackStack, you preserve the state of previously provisioned
  5614  // resources when an operation fails. You can check the status of the stack
  5615  // through the DescribeStacks API.
  5616  //
  5617  // Rolls back the specified stack to the last known stable state from CREATE_FAILED
  5618  // or UPDATE_FAILED stack statuses.
  5619  //
  5620  // This operation will delete a stack if it doesn't contain a last known stable
  5621  // state. A last known stable state includes any status in a *_COMPLETE. This
  5622  // includes the following stack statuses.
  5623  //
  5624  //    * CREATE_COMPLETE
  5625  //
  5626  //    * UPDATE_COMPLETE
  5627  //
  5628  //    * UPDATE_ROLLBACK_COMPLETE
  5629  //
  5630  //    * IMPORT_COMPLETE
  5631  //
  5632  //    * IMPORT_ROLLBACK_COMPLETE
  5633  //
  5634  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5635  // with awserr.Error's Code and Message methods to get detailed information about
  5636  // the error.
  5637  //
  5638  // See the AWS API reference guide for AWS CloudFormation's
  5639  // API operation RollbackStack for usage and error information.
  5640  //
  5641  // Returned Error Codes:
  5642  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
  5643  //   A client request token already exists.
  5644  //
  5645  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackStack
  5646  func (c *CloudFormation) RollbackStack(input *RollbackStackInput) (*RollbackStackOutput, error) {
  5647  	req, out := c.RollbackStackRequest(input)
  5648  	return out, req.Send()
  5649  }
  5650  
  5651  // RollbackStackWithContext is the same as RollbackStack with the addition of
  5652  // the ability to pass a context and additional request options.
  5653  //
  5654  // See RollbackStack for details on how to use this API operation.
  5655  //
  5656  // The context must be non-nil and will be used for request cancellation. If
  5657  // the context is nil a panic will occur. In the future the SDK may create
  5658  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5659  // for more information on using Contexts.
  5660  func (c *CloudFormation) RollbackStackWithContext(ctx aws.Context, input *RollbackStackInput, opts ...request.Option) (*RollbackStackOutput, error) {
  5661  	req, out := c.RollbackStackRequest(input)
  5662  	req.SetContext(ctx)
  5663  	req.ApplyOptions(opts...)
  5664  	return out, req.Send()
  5665  }
  5666  
  5667  const opSetStackPolicy = "SetStackPolicy"
  5668  
  5669  // SetStackPolicyRequest generates a "aws/request.Request" representing the
  5670  // client's request for the SetStackPolicy operation. The "output" return
  5671  // value will be populated with the request's response once the request completes
  5672  // successfully.
  5673  //
  5674  // Use "Send" method on the returned Request to send the API call to the service.
  5675  // the "output" return value is not valid until after Send returns without error.
  5676  //
  5677  // See SetStackPolicy for more information on using the SetStackPolicy
  5678  // API call, and error handling.
  5679  //
  5680  // This method is useful when you want to inject custom logic or configuration
  5681  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5682  //
  5683  //
  5684  //    // Example sending a request using the SetStackPolicyRequest method.
  5685  //    req, resp := client.SetStackPolicyRequest(params)
  5686  //
  5687  //    err := req.Send()
  5688  //    if err == nil { // resp is now filled
  5689  //        fmt.Println(resp)
  5690  //    }
  5691  //
  5692  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
  5693  func (c *CloudFormation) SetStackPolicyRequest(input *SetStackPolicyInput) (req *request.Request, output *SetStackPolicyOutput) {
  5694  	op := &request.Operation{
  5695  		Name:       opSetStackPolicy,
  5696  		HTTPMethod: "POST",
  5697  		HTTPPath:   "/",
  5698  	}
  5699  
  5700  	if input == nil {
  5701  		input = &SetStackPolicyInput{}
  5702  	}
  5703  
  5704  	output = &SetStackPolicyOutput{}
  5705  	req = c.newRequest(op, input, output)
  5706  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5707  	return
  5708  }
  5709  
  5710  // SetStackPolicy API operation for AWS CloudFormation.
  5711  //
  5712  // Sets a stack policy for a specified stack.
  5713  //
  5714  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5715  // with awserr.Error's Code and Message methods to get detailed information about
  5716  // the error.
  5717  //
  5718  // See the AWS API reference guide for AWS CloudFormation's
  5719  // API operation SetStackPolicy for usage and error information.
  5720  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy
  5721  func (c *CloudFormation) SetStackPolicy(input *SetStackPolicyInput) (*SetStackPolicyOutput, error) {
  5722  	req, out := c.SetStackPolicyRequest(input)
  5723  	return out, req.Send()
  5724  }
  5725  
  5726  // SetStackPolicyWithContext is the same as SetStackPolicy with the addition of
  5727  // the ability to pass a context and additional request options.
  5728  //
  5729  // See SetStackPolicy for details on how to use this API operation.
  5730  //
  5731  // The context must be non-nil and will be used for request cancellation. If
  5732  // the context is nil a panic will occur. In the future the SDK may create
  5733  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5734  // for more information on using Contexts.
  5735  func (c *CloudFormation) SetStackPolicyWithContext(ctx aws.Context, input *SetStackPolicyInput, opts ...request.Option) (*SetStackPolicyOutput, error) {
  5736  	req, out := c.SetStackPolicyRequest(input)
  5737  	req.SetContext(ctx)
  5738  	req.ApplyOptions(opts...)
  5739  	return out, req.Send()
  5740  }
  5741  
  5742  const opSetTypeConfiguration = "SetTypeConfiguration"
  5743  
  5744  // SetTypeConfigurationRequest generates a "aws/request.Request" representing the
  5745  // client's request for the SetTypeConfiguration operation. The "output" return
  5746  // value will be populated with the request's response once the request completes
  5747  // successfully.
  5748  //
  5749  // Use "Send" method on the returned Request to send the API call to the service.
  5750  // the "output" return value is not valid until after Send returns without error.
  5751  //
  5752  // See SetTypeConfiguration for more information on using the SetTypeConfiguration
  5753  // API call, and error handling.
  5754  //
  5755  // This method is useful when you want to inject custom logic or configuration
  5756  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5757  //
  5758  //
  5759  //    // Example sending a request using the SetTypeConfigurationRequest method.
  5760  //    req, resp := client.SetTypeConfigurationRequest(params)
  5761  //
  5762  //    err := req.Send()
  5763  //    if err == nil { // resp is now filled
  5764  //        fmt.Println(resp)
  5765  //    }
  5766  //
  5767  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
  5768  func (c *CloudFormation) SetTypeConfigurationRequest(input *SetTypeConfigurationInput) (req *request.Request, output *SetTypeConfigurationOutput) {
  5769  	op := &request.Operation{
  5770  		Name:       opSetTypeConfiguration,
  5771  		HTTPMethod: "POST",
  5772  		HTTPPath:   "/",
  5773  	}
  5774  
  5775  	if input == nil {
  5776  		input = &SetTypeConfigurationInput{}
  5777  	}
  5778  
  5779  	output = &SetTypeConfigurationOutput{}
  5780  	req = c.newRequest(op, input, output)
  5781  	return
  5782  }
  5783  
  5784  // SetTypeConfiguration API operation for AWS CloudFormation.
  5785  //
  5786  // Specifies the configuration data for a registered CloudFormation extension,
  5787  // in the given account and region.
  5788  //
  5789  // To view the current configuration data for an extension, refer to the ConfigurationSchema
  5790  // element of DescribeType (AWSCloudFormation/latest/APIReference/API_DescribeType.html).
  5791  // For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
  5792  // in the CloudFormation User Guide.
  5793  //
  5794  // It is strongly recommended that you use dynamic references to restrict sensitive
  5795  // configuration definitions, such as third-party credentials. For more details
  5796  // on dynamic references, see Using dynamic references to specify template values
  5797  // (https://docs.aws.amazon.com/) in the CloudFormation User Guide.
  5798  //
  5799  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5800  // with awserr.Error's Code and Message methods to get detailed information about
  5801  // the error.
  5802  //
  5803  // See the AWS API reference guide for AWS CloudFormation's
  5804  // API operation SetTypeConfiguration for usage and error information.
  5805  //
  5806  // Returned Error Codes:
  5807  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  5808  //   An error occurred during a CloudFormation registry operation.
  5809  //
  5810  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
  5811  //   The specified extension does not exist in the CloudFormation registry.
  5812  //
  5813  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeConfiguration
  5814  func (c *CloudFormation) SetTypeConfiguration(input *SetTypeConfigurationInput) (*SetTypeConfigurationOutput, error) {
  5815  	req, out := c.SetTypeConfigurationRequest(input)
  5816  	return out, req.Send()
  5817  }
  5818  
  5819  // SetTypeConfigurationWithContext is the same as SetTypeConfiguration with the addition of
  5820  // the ability to pass a context and additional request options.
  5821  //
  5822  // See SetTypeConfiguration for details on how to use this API operation.
  5823  //
  5824  // The context must be non-nil and will be used for request cancellation. If
  5825  // the context is nil a panic will occur. In the future the SDK may create
  5826  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5827  // for more information on using Contexts.
  5828  func (c *CloudFormation) SetTypeConfigurationWithContext(ctx aws.Context, input *SetTypeConfigurationInput, opts ...request.Option) (*SetTypeConfigurationOutput, error) {
  5829  	req, out := c.SetTypeConfigurationRequest(input)
  5830  	req.SetContext(ctx)
  5831  	req.ApplyOptions(opts...)
  5832  	return out, req.Send()
  5833  }
  5834  
  5835  const opSetTypeDefaultVersion = "SetTypeDefaultVersion"
  5836  
  5837  // SetTypeDefaultVersionRequest generates a "aws/request.Request" representing the
  5838  // client's request for the SetTypeDefaultVersion operation. The "output" return
  5839  // value will be populated with the request's response once the request completes
  5840  // successfully.
  5841  //
  5842  // Use "Send" method on the returned Request to send the API call to the service.
  5843  // the "output" return value is not valid until after Send returns without error.
  5844  //
  5845  // See SetTypeDefaultVersion for more information on using the SetTypeDefaultVersion
  5846  // API call, and error handling.
  5847  //
  5848  // This method is useful when you want to inject custom logic or configuration
  5849  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5850  //
  5851  //
  5852  //    // Example sending a request using the SetTypeDefaultVersionRequest method.
  5853  //    req, resp := client.SetTypeDefaultVersionRequest(params)
  5854  //
  5855  //    err := req.Send()
  5856  //    if err == nil { // resp is now filled
  5857  //        fmt.Println(resp)
  5858  //    }
  5859  //
  5860  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
  5861  func (c *CloudFormation) SetTypeDefaultVersionRequest(input *SetTypeDefaultVersionInput) (req *request.Request, output *SetTypeDefaultVersionOutput) {
  5862  	op := &request.Operation{
  5863  		Name:       opSetTypeDefaultVersion,
  5864  		HTTPMethod: "POST",
  5865  		HTTPPath:   "/",
  5866  	}
  5867  
  5868  	if input == nil {
  5869  		input = &SetTypeDefaultVersionInput{}
  5870  	}
  5871  
  5872  	output = &SetTypeDefaultVersionOutput{}
  5873  	req = c.newRequest(op, input, output)
  5874  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5875  	return
  5876  }
  5877  
  5878  // SetTypeDefaultVersion API operation for AWS CloudFormation.
  5879  //
  5880  // Specify the default version of an extension. The default version of an extension
  5881  // will be used in CloudFormation operations.
  5882  //
  5883  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5884  // with awserr.Error's Code and Message methods to get detailed information about
  5885  // the error.
  5886  //
  5887  // See the AWS API reference guide for AWS CloudFormation's
  5888  // API operation SetTypeDefaultVersion for usage and error information.
  5889  //
  5890  // Returned Error Codes:
  5891  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  5892  //   An error occurred during a CloudFormation registry operation.
  5893  //
  5894  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
  5895  //   The specified extension does not exist in the CloudFormation registry.
  5896  //
  5897  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion
  5898  func (c *CloudFormation) SetTypeDefaultVersion(input *SetTypeDefaultVersionInput) (*SetTypeDefaultVersionOutput, error) {
  5899  	req, out := c.SetTypeDefaultVersionRequest(input)
  5900  	return out, req.Send()
  5901  }
  5902  
  5903  // SetTypeDefaultVersionWithContext is the same as SetTypeDefaultVersion with the addition of
  5904  // the ability to pass a context and additional request options.
  5905  //
  5906  // See SetTypeDefaultVersion for details on how to use this API operation.
  5907  //
  5908  // The context must be non-nil and will be used for request cancellation. If
  5909  // the context is nil a panic will occur. In the future the SDK may create
  5910  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5911  // for more information on using Contexts.
  5912  func (c *CloudFormation) SetTypeDefaultVersionWithContext(ctx aws.Context, input *SetTypeDefaultVersionInput, opts ...request.Option) (*SetTypeDefaultVersionOutput, error) {
  5913  	req, out := c.SetTypeDefaultVersionRequest(input)
  5914  	req.SetContext(ctx)
  5915  	req.ApplyOptions(opts...)
  5916  	return out, req.Send()
  5917  }
  5918  
  5919  const opSignalResource = "SignalResource"
  5920  
  5921  // SignalResourceRequest generates a "aws/request.Request" representing the
  5922  // client's request for the SignalResource operation. The "output" return
  5923  // value will be populated with the request's response once the request completes
  5924  // successfully.
  5925  //
  5926  // Use "Send" method on the returned Request to send the API call to the service.
  5927  // the "output" return value is not valid until after Send returns without error.
  5928  //
  5929  // See SignalResource for more information on using the SignalResource
  5930  // API call, and error handling.
  5931  //
  5932  // This method is useful when you want to inject custom logic or configuration
  5933  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5934  //
  5935  //
  5936  //    // Example sending a request using the SignalResourceRequest method.
  5937  //    req, resp := client.SignalResourceRequest(params)
  5938  //
  5939  //    err := req.Send()
  5940  //    if err == nil { // resp is now filled
  5941  //        fmt.Println(resp)
  5942  //    }
  5943  //
  5944  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
  5945  func (c *CloudFormation) SignalResourceRequest(input *SignalResourceInput) (req *request.Request, output *SignalResourceOutput) {
  5946  	op := &request.Operation{
  5947  		Name:       opSignalResource,
  5948  		HTTPMethod: "POST",
  5949  		HTTPPath:   "/",
  5950  	}
  5951  
  5952  	if input == nil {
  5953  		input = &SignalResourceInput{}
  5954  	}
  5955  
  5956  	output = &SignalResourceOutput{}
  5957  	req = c.newRequest(op, input, output)
  5958  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5959  	return
  5960  }
  5961  
  5962  // SignalResource API operation for AWS CloudFormation.
  5963  //
  5964  // Sends a signal to the specified resource with a success or failure status.
  5965  // You can use the SignalResource API in conjunction with a creation policy
  5966  // or update policy. CloudFormation doesn't proceed with a stack creation or
  5967  // update until resources receive the required number of signals or the timeout
  5968  // period is exceeded. The SignalResource API is useful in cases where you want
  5969  // to send signals from anywhere other than an Amazon EC2 instance.
  5970  //
  5971  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5972  // with awserr.Error's Code and Message methods to get detailed information about
  5973  // the error.
  5974  //
  5975  // See the AWS API reference guide for AWS CloudFormation's
  5976  // API operation SignalResource for usage and error information.
  5977  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource
  5978  func (c *CloudFormation) SignalResource(input *SignalResourceInput) (*SignalResourceOutput, error) {
  5979  	req, out := c.SignalResourceRequest(input)
  5980  	return out, req.Send()
  5981  }
  5982  
  5983  // SignalResourceWithContext is the same as SignalResource with the addition of
  5984  // the ability to pass a context and additional request options.
  5985  //
  5986  // See SignalResource for details on how to use this API operation.
  5987  //
  5988  // The context must be non-nil and will be used for request cancellation. If
  5989  // the context is nil a panic will occur. In the future the SDK may create
  5990  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5991  // for more information on using Contexts.
  5992  func (c *CloudFormation) SignalResourceWithContext(ctx aws.Context, input *SignalResourceInput, opts ...request.Option) (*SignalResourceOutput, error) {
  5993  	req, out := c.SignalResourceRequest(input)
  5994  	req.SetContext(ctx)
  5995  	req.ApplyOptions(opts...)
  5996  	return out, req.Send()
  5997  }
  5998  
  5999  const opStopStackSetOperation = "StopStackSetOperation"
  6000  
  6001  // StopStackSetOperationRequest generates a "aws/request.Request" representing the
  6002  // client's request for the StopStackSetOperation operation. The "output" return
  6003  // value will be populated with the request's response once the request completes
  6004  // successfully.
  6005  //
  6006  // Use "Send" method on the returned Request to send the API call to the service.
  6007  // the "output" return value is not valid until after Send returns without error.
  6008  //
  6009  // See StopStackSetOperation for more information on using the StopStackSetOperation
  6010  // API call, and error handling.
  6011  //
  6012  // This method is useful when you want to inject custom logic or configuration
  6013  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6014  //
  6015  //
  6016  //    // Example sending a request using the StopStackSetOperationRequest method.
  6017  //    req, resp := client.StopStackSetOperationRequest(params)
  6018  //
  6019  //    err := req.Send()
  6020  //    if err == nil { // resp is now filled
  6021  //        fmt.Println(resp)
  6022  //    }
  6023  //
  6024  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
  6025  func (c *CloudFormation) StopStackSetOperationRequest(input *StopStackSetOperationInput) (req *request.Request, output *StopStackSetOperationOutput) {
  6026  	op := &request.Operation{
  6027  		Name:       opStopStackSetOperation,
  6028  		HTTPMethod: "POST",
  6029  		HTTPPath:   "/",
  6030  	}
  6031  
  6032  	if input == nil {
  6033  		input = &StopStackSetOperationInput{}
  6034  	}
  6035  
  6036  	output = &StopStackSetOperationOutput{}
  6037  	req = c.newRequest(op, input, output)
  6038  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6039  	return
  6040  }
  6041  
  6042  // StopStackSetOperation API operation for AWS CloudFormation.
  6043  //
  6044  // Stops an in-progress operation on a stack set and its associated stack instances.
  6045  //
  6046  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6047  // with awserr.Error's Code and Message methods to get detailed information about
  6048  // the error.
  6049  //
  6050  // See the AWS API reference guide for AWS CloudFormation's
  6051  // API operation StopStackSetOperation for usage and error information.
  6052  //
  6053  // Returned Error Codes:
  6054  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  6055  //   The specified stack set doesn't exist.
  6056  //
  6057  //   * ErrCodeOperationNotFoundException "OperationNotFoundException"
  6058  //   The specified ID refers to an operation that doesn't exist.
  6059  //
  6060  //   * ErrCodeInvalidOperationException "InvalidOperationException"
  6061  //   The specified operation isn't valid.
  6062  //
  6063  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation
  6064  func (c *CloudFormation) StopStackSetOperation(input *StopStackSetOperationInput) (*StopStackSetOperationOutput, error) {
  6065  	req, out := c.StopStackSetOperationRequest(input)
  6066  	return out, req.Send()
  6067  }
  6068  
  6069  // StopStackSetOperationWithContext is the same as StopStackSetOperation with the addition of
  6070  // the ability to pass a context and additional request options.
  6071  //
  6072  // See StopStackSetOperation for details on how to use this API operation.
  6073  //
  6074  // The context must be non-nil and will be used for request cancellation. If
  6075  // the context is nil a panic will occur. In the future the SDK may create
  6076  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6077  // for more information on using Contexts.
  6078  func (c *CloudFormation) StopStackSetOperationWithContext(ctx aws.Context, input *StopStackSetOperationInput, opts ...request.Option) (*StopStackSetOperationOutput, error) {
  6079  	req, out := c.StopStackSetOperationRequest(input)
  6080  	req.SetContext(ctx)
  6081  	req.ApplyOptions(opts...)
  6082  	return out, req.Send()
  6083  }
  6084  
  6085  const opTestType = "TestType"
  6086  
  6087  // TestTypeRequest generates a "aws/request.Request" representing the
  6088  // client's request for the TestType operation. The "output" return
  6089  // value will be populated with the request's response once the request completes
  6090  // successfully.
  6091  //
  6092  // Use "Send" method on the returned Request to send the API call to the service.
  6093  // the "output" return value is not valid until after Send returns without error.
  6094  //
  6095  // See TestType for more information on using the TestType
  6096  // API call, and error handling.
  6097  //
  6098  // This method is useful when you want to inject custom logic or configuration
  6099  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6100  //
  6101  //
  6102  //    // Example sending a request using the TestTypeRequest method.
  6103  //    req, resp := client.TestTypeRequest(params)
  6104  //
  6105  //    err := req.Send()
  6106  //    if err == nil { // resp is now filled
  6107  //        fmt.Println(resp)
  6108  //    }
  6109  //
  6110  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
  6111  func (c *CloudFormation) TestTypeRequest(input *TestTypeInput) (req *request.Request, output *TestTypeOutput) {
  6112  	op := &request.Operation{
  6113  		Name:       opTestType,
  6114  		HTTPMethod: "POST",
  6115  		HTTPPath:   "/",
  6116  	}
  6117  
  6118  	if input == nil {
  6119  		input = &TestTypeInput{}
  6120  	}
  6121  
  6122  	output = &TestTypeOutput{}
  6123  	req = c.newRequest(op, input, output)
  6124  	return
  6125  }
  6126  
  6127  // TestType API operation for AWS CloudFormation.
  6128  //
  6129  // Tests a registered extension to make sure it meets all necessary requirements
  6130  // for being published in the CloudFormation registry.
  6131  //
  6132  //    * For resource types, this includes passing all contracts tests defined
  6133  //    for the type.
  6134  //
  6135  //    * For modules, this includes determining if the module's model meets all
  6136  //    necessary requirements.
  6137  //
  6138  // For more information, see Testing your public extension prior to publishing
  6139  // (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-testing)
  6140  // in the CloudFormation CLI User Guide.
  6141  //
  6142  // If you do not specify a version, CloudFormation uses the default version
  6143  // of the extension in your account and region for testing.
  6144  //
  6145  // To perform testing, CloudFormation assumes the execution role specified when
  6146  // the type was registered. For more information, see RegisterType (AWSCloudFormation/latest/APIReference/API_RegisterType.html).
  6147  //
  6148  // Once you've initiated testing on an extension using TestType, you can use
  6149  // DescribeType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html)
  6150  // to monitor the current test status and test status description for the extension.
  6151  //
  6152  // An extension must have a test status of PASSED before it can be published.
  6153  // For more information, see Publishing extensions to make them available for
  6154  // public use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
  6155  // in the CloudFormation CLI User Guide.
  6156  //
  6157  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6158  // with awserr.Error's Code and Message methods to get detailed information about
  6159  // the error.
  6160  //
  6161  // See the AWS API reference guide for AWS CloudFormation's
  6162  // API operation TestType for usage and error information.
  6163  //
  6164  // Returned Error Codes:
  6165  //   * ErrCodeCFNRegistryException "CFNRegistryException"
  6166  //   An error occurred during a CloudFormation registry operation.
  6167  //
  6168  //   * ErrCodeTypeNotFoundException "TypeNotFoundException"
  6169  //   The specified extension does not exist in the CloudFormation registry.
  6170  //
  6171  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TestType
  6172  func (c *CloudFormation) TestType(input *TestTypeInput) (*TestTypeOutput, error) {
  6173  	req, out := c.TestTypeRequest(input)
  6174  	return out, req.Send()
  6175  }
  6176  
  6177  // TestTypeWithContext is the same as TestType with the addition of
  6178  // the ability to pass a context and additional request options.
  6179  //
  6180  // See TestType for details on how to use this API operation.
  6181  //
  6182  // The context must be non-nil and will be used for request cancellation. If
  6183  // the context is nil a panic will occur. In the future the SDK may create
  6184  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6185  // for more information on using Contexts.
  6186  func (c *CloudFormation) TestTypeWithContext(ctx aws.Context, input *TestTypeInput, opts ...request.Option) (*TestTypeOutput, error) {
  6187  	req, out := c.TestTypeRequest(input)
  6188  	req.SetContext(ctx)
  6189  	req.ApplyOptions(opts...)
  6190  	return out, req.Send()
  6191  }
  6192  
  6193  const opUpdateStack = "UpdateStack"
  6194  
  6195  // UpdateStackRequest generates a "aws/request.Request" representing the
  6196  // client's request for the UpdateStack operation. The "output" return
  6197  // value will be populated with the request's response once the request completes
  6198  // successfully.
  6199  //
  6200  // Use "Send" method on the returned Request to send the API call to the service.
  6201  // the "output" return value is not valid until after Send returns without error.
  6202  //
  6203  // See UpdateStack for more information on using the UpdateStack
  6204  // API call, and error handling.
  6205  //
  6206  // This method is useful when you want to inject custom logic or configuration
  6207  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6208  //
  6209  //
  6210  //    // Example sending a request using the UpdateStackRequest method.
  6211  //    req, resp := client.UpdateStackRequest(params)
  6212  //
  6213  //    err := req.Send()
  6214  //    if err == nil { // resp is now filled
  6215  //        fmt.Println(resp)
  6216  //    }
  6217  //
  6218  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
  6219  func (c *CloudFormation) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
  6220  	op := &request.Operation{
  6221  		Name:       opUpdateStack,
  6222  		HTTPMethod: "POST",
  6223  		HTTPPath:   "/",
  6224  	}
  6225  
  6226  	if input == nil {
  6227  		input = &UpdateStackInput{}
  6228  	}
  6229  
  6230  	output = &UpdateStackOutput{}
  6231  	req = c.newRequest(op, input, output)
  6232  	return
  6233  }
  6234  
  6235  // UpdateStack API operation for AWS CloudFormation.
  6236  //
  6237  // Updates a stack as specified in the template. After the call completes successfully,
  6238  // the stack update starts. You can check the status of the stack via the DescribeStacks
  6239  // action.
  6240  //
  6241  // To get a copy of the template for an existing stack, you can use the GetTemplate
  6242  // action.
  6243  //
  6244  // For more information about creating an update template, updating a stack,
  6245  // and monitoring the progress of the update, see Updating a Stack (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).
  6246  //
  6247  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6248  // with awserr.Error's Code and Message methods to get detailed information about
  6249  // the error.
  6250  //
  6251  // See the AWS API reference guide for AWS CloudFormation's
  6252  // API operation UpdateStack for usage and error information.
  6253  //
  6254  // Returned Error Codes:
  6255  //   * ErrCodeInsufficientCapabilitiesException "InsufficientCapabilitiesException"
  6256  //   The template contains resources with capabilities that weren't specified
  6257  //   in the Capabilities parameter.
  6258  //
  6259  //   * ErrCodeTokenAlreadyExistsException "TokenAlreadyExistsException"
  6260  //   A client request token already exists.
  6261  //
  6262  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack
  6263  func (c *CloudFormation) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
  6264  	req, out := c.UpdateStackRequest(input)
  6265  	return out, req.Send()
  6266  }
  6267  
  6268  // UpdateStackWithContext is the same as UpdateStack with the addition of
  6269  // the ability to pass a context and additional request options.
  6270  //
  6271  // See UpdateStack for details on how to use this API operation.
  6272  //
  6273  // The context must be non-nil and will be used for request cancellation. If
  6274  // the context is nil a panic will occur. In the future the SDK may create
  6275  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6276  // for more information on using Contexts.
  6277  func (c *CloudFormation) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
  6278  	req, out := c.UpdateStackRequest(input)
  6279  	req.SetContext(ctx)
  6280  	req.ApplyOptions(opts...)
  6281  	return out, req.Send()
  6282  }
  6283  
  6284  const opUpdateStackInstances = "UpdateStackInstances"
  6285  
  6286  // UpdateStackInstancesRequest generates a "aws/request.Request" representing the
  6287  // client's request for the UpdateStackInstances operation. The "output" return
  6288  // value will be populated with the request's response once the request completes
  6289  // successfully.
  6290  //
  6291  // Use "Send" method on the returned Request to send the API call to the service.
  6292  // the "output" return value is not valid until after Send returns without error.
  6293  //
  6294  // See UpdateStackInstances for more information on using the UpdateStackInstances
  6295  // API call, and error handling.
  6296  //
  6297  // This method is useful when you want to inject custom logic or configuration
  6298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6299  //
  6300  //
  6301  //    // Example sending a request using the UpdateStackInstancesRequest method.
  6302  //    req, resp := client.UpdateStackInstancesRequest(params)
  6303  //
  6304  //    err := req.Send()
  6305  //    if err == nil { // resp is now filled
  6306  //        fmt.Println(resp)
  6307  //    }
  6308  //
  6309  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
  6310  func (c *CloudFormation) UpdateStackInstancesRequest(input *UpdateStackInstancesInput) (req *request.Request, output *UpdateStackInstancesOutput) {
  6311  	op := &request.Operation{
  6312  		Name:       opUpdateStackInstances,
  6313  		HTTPMethod: "POST",
  6314  		HTTPPath:   "/",
  6315  	}
  6316  
  6317  	if input == nil {
  6318  		input = &UpdateStackInstancesInput{}
  6319  	}
  6320  
  6321  	output = &UpdateStackInstancesOutput{}
  6322  	req = c.newRequest(op, input, output)
  6323  	return
  6324  }
  6325  
  6326  // UpdateStackInstances API operation for AWS CloudFormation.
  6327  //
  6328  // Updates the parameter values for stack instances for the specified accounts,
  6329  // within the specified Regions. A stack instance refers to a stack in a specific
  6330  // account and Region.
  6331  //
  6332  // You can only update stack instances in Regions and accounts where they already
  6333  // exist; to create additional stack instances, use CreateStackInstances (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html).
  6334  //
  6335  // During stack set updates, any parameters overridden for a stack instance
  6336  // are not updated, but retain their overridden value.
  6337  //
  6338  // You can only update the parameter values that are specified in the stack
  6339  // set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
  6340  // to update the stack set template. If you add a parameter to a template, before
  6341  // you can override the parameter value specified in the stack set you must
  6342  // first use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
  6343  // to update all stack instances with the updated template and parameter value
  6344  // specified in the stack set. Once a stack instance has been updated with the
  6345  // new parameter, you can then override the parameter value using UpdateStackInstances.
  6346  //
  6347  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6348  // with awserr.Error's Code and Message methods to get detailed information about
  6349  // the error.
  6350  //
  6351  // See the AWS API reference guide for AWS CloudFormation's
  6352  // API operation UpdateStackInstances for usage and error information.
  6353  //
  6354  // Returned Error Codes:
  6355  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  6356  //   The specified stack set doesn't exist.
  6357  //
  6358  //   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
  6359  //   The specified stack instance doesn't exist.
  6360  //
  6361  //   * ErrCodeOperationInProgressException "OperationInProgressException"
  6362  //   Another operation is currently in progress for this stack set. Only one operation
  6363  //   can be performed for a stack set at a given time.
  6364  //
  6365  //   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
  6366  //   The specified operation ID already exists.
  6367  //
  6368  //   * ErrCodeStaleRequestException "StaleRequestException"
  6369  //   Another operation has been performed on this stack set since the specified
  6370  //   operation was performed.
  6371  //
  6372  //   * ErrCodeInvalidOperationException "InvalidOperationException"
  6373  //   The specified operation isn't valid.
  6374  //
  6375  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances
  6376  func (c *CloudFormation) UpdateStackInstances(input *UpdateStackInstancesInput) (*UpdateStackInstancesOutput, error) {
  6377  	req, out := c.UpdateStackInstancesRequest(input)
  6378  	return out, req.Send()
  6379  }
  6380  
  6381  // UpdateStackInstancesWithContext is the same as UpdateStackInstances with the addition of
  6382  // the ability to pass a context and additional request options.
  6383  //
  6384  // See UpdateStackInstances for details on how to use this API operation.
  6385  //
  6386  // The context must be non-nil and will be used for request cancellation. If
  6387  // the context is nil a panic will occur. In the future the SDK may create
  6388  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6389  // for more information on using Contexts.
  6390  func (c *CloudFormation) UpdateStackInstancesWithContext(ctx aws.Context, input *UpdateStackInstancesInput, opts ...request.Option) (*UpdateStackInstancesOutput, error) {
  6391  	req, out := c.UpdateStackInstancesRequest(input)
  6392  	req.SetContext(ctx)
  6393  	req.ApplyOptions(opts...)
  6394  	return out, req.Send()
  6395  }
  6396  
  6397  const opUpdateStackSet = "UpdateStackSet"
  6398  
  6399  // UpdateStackSetRequest generates a "aws/request.Request" representing the
  6400  // client's request for the UpdateStackSet operation. The "output" return
  6401  // value will be populated with the request's response once the request completes
  6402  // successfully.
  6403  //
  6404  // Use "Send" method on the returned Request to send the API call to the service.
  6405  // the "output" return value is not valid until after Send returns without error.
  6406  //
  6407  // See UpdateStackSet for more information on using the UpdateStackSet
  6408  // API call, and error handling.
  6409  //
  6410  // This method is useful when you want to inject custom logic or configuration
  6411  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6412  //
  6413  //
  6414  //    // Example sending a request using the UpdateStackSetRequest method.
  6415  //    req, resp := client.UpdateStackSetRequest(params)
  6416  //
  6417  //    err := req.Send()
  6418  //    if err == nil { // resp is now filled
  6419  //        fmt.Println(resp)
  6420  //    }
  6421  //
  6422  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
  6423  func (c *CloudFormation) UpdateStackSetRequest(input *UpdateStackSetInput) (req *request.Request, output *UpdateStackSetOutput) {
  6424  	op := &request.Operation{
  6425  		Name:       opUpdateStackSet,
  6426  		HTTPMethod: "POST",
  6427  		HTTPPath:   "/",
  6428  	}
  6429  
  6430  	if input == nil {
  6431  		input = &UpdateStackSetInput{}
  6432  	}
  6433  
  6434  	output = &UpdateStackSetOutput{}
  6435  	req = c.newRequest(op, input, output)
  6436  	return
  6437  }
  6438  
  6439  // UpdateStackSet API operation for AWS CloudFormation.
  6440  //
  6441  // Updates the stack set, and associated stack instances in the specified accounts
  6442  // and Regions.
  6443  //
  6444  // Even if the stack set operation created by updating the stack set fails (completely
  6445  // or partially, below or above a specified failure tolerance), the stack set
  6446  // is updated with your changes. Subsequent CreateStackInstances calls on the
  6447  // specified stack set use the updated stack set.
  6448  //
  6449  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6450  // with awserr.Error's Code and Message methods to get detailed information about
  6451  // the error.
  6452  //
  6453  // See the AWS API reference guide for AWS CloudFormation's
  6454  // API operation UpdateStackSet for usage and error information.
  6455  //
  6456  // Returned Error Codes:
  6457  //   * ErrCodeStackSetNotFoundException "StackSetNotFoundException"
  6458  //   The specified stack set doesn't exist.
  6459  //
  6460  //   * ErrCodeOperationInProgressException "OperationInProgressException"
  6461  //   Another operation is currently in progress for this stack set. Only one operation
  6462  //   can be performed for a stack set at a given time.
  6463  //
  6464  //   * ErrCodeOperationIdAlreadyExistsException "OperationIdAlreadyExistsException"
  6465  //   The specified operation ID already exists.
  6466  //
  6467  //   * ErrCodeStaleRequestException "StaleRequestException"
  6468  //   Another operation has been performed on this stack set since the specified
  6469  //   operation was performed.
  6470  //
  6471  //   * ErrCodeInvalidOperationException "InvalidOperationException"
  6472  //   The specified operation isn't valid.
  6473  //
  6474  //   * ErrCodeStackInstanceNotFoundException "StackInstanceNotFoundException"
  6475  //   The specified stack instance doesn't exist.
  6476  //
  6477  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet
  6478  func (c *CloudFormation) UpdateStackSet(input *UpdateStackSetInput) (*UpdateStackSetOutput, error) {
  6479  	req, out := c.UpdateStackSetRequest(input)
  6480  	return out, req.Send()
  6481  }
  6482  
  6483  // UpdateStackSetWithContext is the same as UpdateStackSet with the addition of
  6484  // the ability to pass a context and additional request options.
  6485  //
  6486  // See UpdateStackSet for details on how to use this API operation.
  6487  //
  6488  // The context must be non-nil and will be used for request cancellation. If
  6489  // the context is nil a panic will occur. In the future the SDK may create
  6490  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6491  // for more information on using Contexts.
  6492  func (c *CloudFormation) UpdateStackSetWithContext(ctx aws.Context, input *UpdateStackSetInput, opts ...request.Option) (*UpdateStackSetOutput, error) {
  6493  	req, out := c.UpdateStackSetRequest(input)
  6494  	req.SetContext(ctx)
  6495  	req.ApplyOptions(opts...)
  6496  	return out, req.Send()
  6497  }
  6498  
  6499  const opUpdateTerminationProtection = "UpdateTerminationProtection"
  6500  
  6501  // UpdateTerminationProtectionRequest generates a "aws/request.Request" representing the
  6502  // client's request for the UpdateTerminationProtection operation. The "output" return
  6503  // value will be populated with the request's response once the request completes
  6504  // successfully.
  6505  //
  6506  // Use "Send" method on the returned Request to send the API call to the service.
  6507  // the "output" return value is not valid until after Send returns without error.
  6508  //
  6509  // See UpdateTerminationProtection for more information on using the UpdateTerminationProtection
  6510  // API call, and error handling.
  6511  //
  6512  // This method is useful when you want to inject custom logic or configuration
  6513  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6514  //
  6515  //
  6516  //    // Example sending a request using the UpdateTerminationProtectionRequest method.
  6517  //    req, resp := client.UpdateTerminationProtectionRequest(params)
  6518  //
  6519  //    err := req.Send()
  6520  //    if err == nil { // resp is now filled
  6521  //        fmt.Println(resp)
  6522  //    }
  6523  //
  6524  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
  6525  func (c *CloudFormation) UpdateTerminationProtectionRequest(input *UpdateTerminationProtectionInput) (req *request.Request, output *UpdateTerminationProtectionOutput) {
  6526  	op := &request.Operation{
  6527  		Name:       opUpdateTerminationProtection,
  6528  		HTTPMethod: "POST",
  6529  		HTTPPath:   "/",
  6530  	}
  6531  
  6532  	if input == nil {
  6533  		input = &UpdateTerminationProtectionInput{}
  6534  	}
  6535  
  6536  	output = &UpdateTerminationProtectionOutput{}
  6537  	req = c.newRequest(op, input, output)
  6538  	return
  6539  }
  6540  
  6541  // UpdateTerminationProtection API operation for AWS CloudFormation.
  6542  //
  6543  // Updates termination protection for the specified stack. If a user attempts
  6544  // to delete a stack with termination protection enabled, the operation fails
  6545  // and the stack remains unchanged. For more information, see Protecting a Stack
  6546  // From Being Deleted (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
  6547  // in the CloudFormation User Guide.
  6548  //
  6549  // For nested stacks (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
  6550  // termination protection is set on the root stack and cannot be changed directly
  6551  // on the nested stack.
  6552  //
  6553  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6554  // with awserr.Error's Code and Message methods to get detailed information about
  6555  // the error.
  6556  //
  6557  // See the AWS API reference guide for AWS CloudFormation's
  6558  // API operation UpdateTerminationProtection for usage and error information.
  6559  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection
  6560  func (c *CloudFormation) UpdateTerminationProtection(input *UpdateTerminationProtectionInput) (*UpdateTerminationProtectionOutput, error) {
  6561  	req, out := c.UpdateTerminationProtectionRequest(input)
  6562  	return out, req.Send()
  6563  }
  6564  
  6565  // UpdateTerminationProtectionWithContext is the same as UpdateTerminationProtection with the addition of
  6566  // the ability to pass a context and additional request options.
  6567  //
  6568  // See UpdateTerminationProtection for details on how to use this API operation.
  6569  //
  6570  // The context must be non-nil and will be used for request cancellation. If
  6571  // the context is nil a panic will occur. In the future the SDK may create
  6572  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6573  // for more information on using Contexts.
  6574  func (c *CloudFormation) UpdateTerminationProtectionWithContext(ctx aws.Context, input *UpdateTerminationProtectionInput, opts ...request.Option) (*UpdateTerminationProtectionOutput, error) {
  6575  	req, out := c.UpdateTerminationProtectionRequest(input)
  6576  	req.SetContext(ctx)
  6577  	req.ApplyOptions(opts...)
  6578  	return out, req.Send()
  6579  }
  6580  
  6581  const opValidateTemplate = "ValidateTemplate"
  6582  
  6583  // ValidateTemplateRequest generates a "aws/request.Request" representing the
  6584  // client's request for the ValidateTemplate operation. The "output" return
  6585  // value will be populated with the request's response once the request completes
  6586  // successfully.
  6587  //
  6588  // Use "Send" method on the returned Request to send the API call to the service.
  6589  // the "output" return value is not valid until after Send returns without error.
  6590  //
  6591  // See ValidateTemplate for more information on using the ValidateTemplate
  6592  // API call, and error handling.
  6593  //
  6594  // This method is useful when you want to inject custom logic or configuration
  6595  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6596  //
  6597  //
  6598  //    // Example sending a request using the ValidateTemplateRequest method.
  6599  //    req, resp := client.ValidateTemplateRequest(params)
  6600  //
  6601  //    err := req.Send()
  6602  //    if err == nil { // resp is now filled
  6603  //        fmt.Println(resp)
  6604  //    }
  6605  //
  6606  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
  6607  func (c *CloudFormation) ValidateTemplateRequest(input *ValidateTemplateInput) (req *request.Request, output *ValidateTemplateOutput) {
  6608  	op := &request.Operation{
  6609  		Name:       opValidateTemplate,
  6610  		HTTPMethod: "POST",
  6611  		HTTPPath:   "/",
  6612  	}
  6613  
  6614  	if input == nil {
  6615  		input = &ValidateTemplateInput{}
  6616  	}
  6617  
  6618  	output = &ValidateTemplateOutput{}
  6619  	req = c.newRequest(op, input, output)
  6620  	return
  6621  }
  6622  
  6623  // ValidateTemplate API operation for AWS CloudFormation.
  6624  //
  6625  // Validates a specified template. CloudFormation first checks if the template
  6626  // is valid JSON. If it isn't, CloudFormation checks if the template is valid
  6627  // YAML. If both these checks fail, CloudFormation returns a template validation
  6628  // error.
  6629  //
  6630  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6631  // with awserr.Error's Code and Message methods to get detailed information about
  6632  // the error.
  6633  //
  6634  // See the AWS API reference guide for AWS CloudFormation's
  6635  // API operation ValidateTemplate for usage and error information.
  6636  // See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate
  6637  func (c *CloudFormation) ValidateTemplate(input *ValidateTemplateInput) (*ValidateTemplateOutput, error) {
  6638  	req, out := c.ValidateTemplateRequest(input)
  6639  	return out, req.Send()
  6640  }
  6641  
  6642  // ValidateTemplateWithContext is the same as ValidateTemplate with the addition of
  6643  // the ability to pass a context and additional request options.
  6644  //
  6645  // See ValidateTemplate for details on how to use this API operation.
  6646  //
  6647  // The context must be non-nil and will be used for request cancellation. If
  6648  // the context is nil a panic will occur. In the future the SDK may create
  6649  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6650  // for more information on using Contexts.
  6651  func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *ValidateTemplateInput, opts ...request.Option) (*ValidateTemplateOutput, error) {
  6652  	req, out := c.ValidateTemplateRequest(input)
  6653  	req.SetContext(ctx)
  6654  	req.ApplyOptions(opts...)
  6655  	return out, req.Send()
  6656  }
  6657  
  6658  // Structure that contains the results of the account gate function which CloudFormation
  6659  // invokes, if present, before proceeding with a stack set operation in an account
  6660  // and Region.
  6661  //
  6662  // For each account and Region, CloudFormation lets you specify a Lambda function
  6663  // that encapsulates any requirements that must be met before CloudFormation
  6664  // can proceed with a stack set operation in that account and Region. CloudFormation
  6665  // invokes the function each time a stack set operation is requested for that
  6666  // account and Region; if the function returns FAILED, CloudFormation cancels
  6667  // the operation in that account and Region, and sets the stack set operation
  6668  // result status for that account and Region to FAILED.
  6669  //
  6670  // For more information, see Configuring a target account gate (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html).
  6671  type AccountGateResult struct {
  6672  	_ struct{} `type:"structure"`
  6673  
  6674  	// The status of the account gate function.
  6675  	//
  6676  	//    * SUCCEEDED: The account gate function has determined that the account
  6677  	//    and Region passes any requirements for a stack set operation to occur.
  6678  	//    CloudFormation proceeds with the stack operation in that account and Region.
  6679  	//
  6680  	//    * FAILED: The account gate function has determined that the account and
  6681  	//    Region does not meet the requirements for a stack set operation to occur.
  6682  	//    AWS CloudFormation cancels the stack set operation in that account and
  6683  	//    Region, and sets the stack set operation result status for that account
  6684  	//    and Region to FAILED.
  6685  	//
  6686  	//    * SKIPPED: CloudFormation has skipped calling the account gate function
  6687  	//    for this account and Region, for one of the following reasons: An account
  6688  	//    gate function has not been specified for the account and Region. CloudFormation
  6689  	//    proceeds with the stack set operation in this account and Region. The
  6690  	//    AWSCloudFormationStackSetExecutionRole of the stack set adminstration
  6691  	//    account lacks permissions to invoke the function. CloudFormation proceeds
  6692  	//    with the stack set operation in this account and Region. Either no action
  6693  	//    is necessary, or no action is possible, on the stack. CloudFormation skips
  6694  	//    the stack set operation in this account and Region.
  6695  	Status *string `type:"string" enum:"AccountGateStatus"`
  6696  
  6697  	// The reason for the account gate status assigned to this account and Region
  6698  	// for the stack set operation.
  6699  	StatusReason *string `type:"string"`
  6700  }
  6701  
  6702  // String returns the string representation.
  6703  //
  6704  // API parameter values that are decorated as "sensitive" in the API will not
  6705  // be included in the string output. The member name will be present, but the
  6706  // value will be replaced with "sensitive".
  6707  func (s AccountGateResult) String() string {
  6708  	return awsutil.Prettify(s)
  6709  }
  6710  
  6711  // GoString returns the string representation.
  6712  //
  6713  // API parameter values that are decorated as "sensitive" in the API will not
  6714  // be included in the string output. The member name will be present, but the
  6715  // value will be replaced with "sensitive".
  6716  func (s AccountGateResult) GoString() string {
  6717  	return s.String()
  6718  }
  6719  
  6720  // SetStatus sets the Status field's value.
  6721  func (s *AccountGateResult) SetStatus(v string) *AccountGateResult {
  6722  	s.Status = &v
  6723  	return s
  6724  }
  6725  
  6726  // SetStatusReason sets the StatusReason field's value.
  6727  func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult {
  6728  	s.StatusReason = &v
  6729  	return s
  6730  }
  6731  
  6732  // The AccountLimit data type.
  6733  //
  6734  // CloudFormation has the following limits per account:
  6735  //
  6736  //    * Number of concurrent resources
  6737  //
  6738  //    * Number of stacks
  6739  //
  6740  //    * Number of stack outputs
  6741  //
  6742  // For more information about these account limits, and other CloudFormation
  6743  // limits, see CloudFormation Limits (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html)
  6744  // in the CloudFormation User Guide.
  6745  type AccountLimit struct {
  6746  	_ struct{} `type:"structure"`
  6747  
  6748  	// The name of the account limit.
  6749  	//
  6750  	// Values: ConcurrentResourcesLimit | StackLimit | StackOutputsLimit
  6751  	Name *string `type:"string"`
  6752  
  6753  	// The value that is associated with the account limit name.
  6754  	Value *int64 `type:"integer"`
  6755  }
  6756  
  6757  // String returns the string representation.
  6758  //
  6759  // API parameter values that are decorated as "sensitive" in the API will not
  6760  // be included in the string output. The member name will be present, but the
  6761  // value will be replaced with "sensitive".
  6762  func (s AccountLimit) String() string {
  6763  	return awsutil.Prettify(s)
  6764  }
  6765  
  6766  // GoString returns the string representation.
  6767  //
  6768  // API parameter values that are decorated as "sensitive" in the API will not
  6769  // be included in the string output. The member name will be present, but the
  6770  // value will be replaced with "sensitive".
  6771  func (s AccountLimit) GoString() string {
  6772  	return s.String()
  6773  }
  6774  
  6775  // SetName sets the Name field's value.
  6776  func (s *AccountLimit) SetName(v string) *AccountLimit {
  6777  	s.Name = &v
  6778  	return s
  6779  }
  6780  
  6781  // SetValue sets the Value field's value.
  6782  func (s *AccountLimit) SetValue(v int64) *AccountLimit {
  6783  	s.Value = &v
  6784  	return s
  6785  }
  6786  
  6787  type ActivateTypeInput struct {
  6788  	_ struct{} `type:"structure"`
  6789  
  6790  	// Whether to automatically update the extension in this account and region
  6791  	// when a new minor version is published by the extension publisher. Major versions
  6792  	// released by the publisher must be manually updated.
  6793  	//
  6794  	// The default is true.
  6795  	AutoUpdate *bool `type:"boolean"`
  6796  
  6797  	// The name of the IAM execution role to use to activate the extension.
  6798  	ExecutionRoleArn *string `min:"1" type:"string"`
  6799  
  6800  	// Contains logging configuration information for an extension.
  6801  	LoggingConfig *LoggingConfig `type:"structure"`
  6802  
  6803  	// The major version of this extension you want to activate, if multiple major
  6804  	// versions are available. The default is the latest major version. CloudFormation
  6805  	// uses the latest available minor version of the major version selected.
  6806  	//
  6807  	// You can specify MajorVersion or VersionBump, but not both.
  6808  	MajorVersion *int64 `min:"1" type:"long"`
  6809  
  6810  	// The Amazon Resource Number (ARN) of the public extension.
  6811  	//
  6812  	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
  6813  	PublicTypeArn *string `type:"string"`
  6814  
  6815  	// The ID of the extension publisher.
  6816  	//
  6817  	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
  6818  	PublisherId *string `min:"1" type:"string"`
  6819  
  6820  	// The extension type.
  6821  	//
  6822  	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
  6823  	Type *string `type:"string" enum:"ThirdPartyType"`
  6824  
  6825  	// The name of the extension.
  6826  	//
  6827  	// Conditional: You must specify PublicTypeArn, or TypeName, Type, and PublisherId.
  6828  	TypeName *string `min:"10" type:"string"`
  6829  
  6830  	// An alias to assign to the public extension, in this account and region. If
  6831  	// you specify an alias for the extension, CloudFormation treats the alias as
  6832  	// the extension type name within this account and region. You must use the
  6833  	// alias to refer to the extension in your templates, API calls, and CloudFormation
  6834  	// console.
  6835  	//
  6836  	// An extension alias must be unique within a given account and region. You
  6837  	// can activate the same public resource multiple times in the same account
  6838  	// and region, using different type name aliases.
  6839  	TypeNameAlias *string `min:"10" type:"string"`
  6840  
  6841  	// Manually updates a previously-activated type to a new major or minor version,
  6842  	// if available. You can also use this parameter to update the value of AutoUpdate.
  6843  	//
  6844  	//    * MAJOR: CloudFormation updates the extension to the newest major version,
  6845  	//    if one is available.
  6846  	//
  6847  	//    * MINOR: CloudFormation updates the extension to the newest minor version,
  6848  	//    if one is available.
  6849  	VersionBump *string `type:"string" enum:"VersionBump"`
  6850  }
  6851  
  6852  // String returns the string representation.
  6853  //
  6854  // API parameter values that are decorated as "sensitive" in the API will not
  6855  // be included in the string output. The member name will be present, but the
  6856  // value will be replaced with "sensitive".
  6857  func (s ActivateTypeInput) String() string {
  6858  	return awsutil.Prettify(s)
  6859  }
  6860  
  6861  // GoString returns the string representation.
  6862  //
  6863  // API parameter values that are decorated as "sensitive" in the API will not
  6864  // be included in the string output. The member name will be present, but the
  6865  // value will be replaced with "sensitive".
  6866  func (s ActivateTypeInput) GoString() string {
  6867  	return s.String()
  6868  }
  6869  
  6870  // Validate inspects the fields of the type to determine if they are valid.
  6871  func (s *ActivateTypeInput) Validate() error {
  6872  	invalidParams := request.ErrInvalidParams{Context: "ActivateTypeInput"}
  6873  	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
  6874  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
  6875  	}
  6876  	if s.MajorVersion != nil && *s.MajorVersion < 1 {
  6877  		invalidParams.Add(request.NewErrParamMinValue("MajorVersion", 1))
  6878  	}
  6879  	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
  6880  		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
  6881  	}
  6882  	if s.TypeName != nil && len(*s.TypeName) < 10 {
  6883  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
  6884  	}
  6885  	if s.TypeNameAlias != nil && len(*s.TypeNameAlias) < 10 {
  6886  		invalidParams.Add(request.NewErrParamMinLen("TypeNameAlias", 10))
  6887  	}
  6888  	if s.LoggingConfig != nil {
  6889  		if err := s.LoggingConfig.Validate(); err != nil {
  6890  			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
  6891  		}
  6892  	}
  6893  
  6894  	if invalidParams.Len() > 0 {
  6895  		return invalidParams
  6896  	}
  6897  	return nil
  6898  }
  6899  
  6900  // SetAutoUpdate sets the AutoUpdate field's value.
  6901  func (s *ActivateTypeInput) SetAutoUpdate(v bool) *ActivateTypeInput {
  6902  	s.AutoUpdate = &v
  6903  	return s
  6904  }
  6905  
  6906  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
  6907  func (s *ActivateTypeInput) SetExecutionRoleArn(v string) *ActivateTypeInput {
  6908  	s.ExecutionRoleArn = &v
  6909  	return s
  6910  }
  6911  
  6912  // SetLoggingConfig sets the LoggingConfig field's value.
  6913  func (s *ActivateTypeInput) SetLoggingConfig(v *LoggingConfig) *ActivateTypeInput {
  6914  	s.LoggingConfig = v
  6915  	return s
  6916  }
  6917  
  6918  // SetMajorVersion sets the MajorVersion field's value.
  6919  func (s *ActivateTypeInput) SetMajorVersion(v int64) *ActivateTypeInput {
  6920  	s.MajorVersion = &v
  6921  	return s
  6922  }
  6923  
  6924  // SetPublicTypeArn sets the PublicTypeArn field's value.
  6925  func (s *ActivateTypeInput) SetPublicTypeArn(v string) *ActivateTypeInput {
  6926  	s.PublicTypeArn = &v
  6927  	return s
  6928  }
  6929  
  6930  // SetPublisherId sets the PublisherId field's value.
  6931  func (s *ActivateTypeInput) SetPublisherId(v string) *ActivateTypeInput {
  6932  	s.PublisherId = &v
  6933  	return s
  6934  }
  6935  
  6936  // SetType sets the Type field's value.
  6937  func (s *ActivateTypeInput) SetType(v string) *ActivateTypeInput {
  6938  	s.Type = &v
  6939  	return s
  6940  }
  6941  
  6942  // SetTypeName sets the TypeName field's value.
  6943  func (s *ActivateTypeInput) SetTypeName(v string) *ActivateTypeInput {
  6944  	s.TypeName = &v
  6945  	return s
  6946  }
  6947  
  6948  // SetTypeNameAlias sets the TypeNameAlias field's value.
  6949  func (s *ActivateTypeInput) SetTypeNameAlias(v string) *ActivateTypeInput {
  6950  	s.TypeNameAlias = &v
  6951  	return s
  6952  }
  6953  
  6954  // SetVersionBump sets the VersionBump field's value.
  6955  func (s *ActivateTypeInput) SetVersionBump(v string) *ActivateTypeInput {
  6956  	s.VersionBump = &v
  6957  	return s
  6958  }
  6959  
  6960  type ActivateTypeOutput struct {
  6961  	_ struct{} `type:"structure"`
  6962  
  6963  	// The Amazon Resource Number (ARN) of the activated extension, in this account
  6964  	// and region.
  6965  	Arn *string `type:"string"`
  6966  }
  6967  
  6968  // String returns the string representation.
  6969  //
  6970  // API parameter values that are decorated as "sensitive" in the API will not
  6971  // be included in the string output. The member name will be present, but the
  6972  // value will be replaced with "sensitive".
  6973  func (s ActivateTypeOutput) String() string {
  6974  	return awsutil.Prettify(s)
  6975  }
  6976  
  6977  // GoString returns the string representation.
  6978  //
  6979  // API parameter values that are decorated as "sensitive" in the API will not
  6980  // be included in the string output. The member name will be present, but the
  6981  // value will be replaced with "sensitive".
  6982  func (s ActivateTypeOutput) GoString() string {
  6983  	return s.String()
  6984  }
  6985  
  6986  // SetArn sets the Arn field's value.
  6987  func (s *ActivateTypeOutput) SetArn(v string) *ActivateTypeOutput {
  6988  	s.Arn = &v
  6989  	return s
  6990  }
  6991  
  6992  // [Service-managed permissions] Describes whether StackSets automatically deploys
  6993  // to Organizations accounts that are added to a target organization or organizational
  6994  // unit (OU).
  6995  type AutoDeployment struct {
  6996  	_ struct{} `type:"structure"`
  6997  
  6998  	// If set to true, StackSets automatically deploys additional stack instances
  6999  	// to Organizations accounts that are added to a target organization or organizational
  7000  	// unit (OU) in the specified Regions. If an account is removed from a target
  7001  	// organization or OU, StackSets deletes stack instances from the account in
  7002  	// the specified Regions.
  7003  	Enabled *bool `type:"boolean"`
  7004  
  7005  	// If set to true, stack resources are retained when an account is removed from
  7006  	// a target organization or OU. If set to false, stack resources are deleted.
  7007  	// Specify only if Enabled is set to True.
  7008  	RetainStacksOnAccountRemoval *bool `type:"boolean"`
  7009  }
  7010  
  7011  // String returns the string representation.
  7012  //
  7013  // API parameter values that are decorated as "sensitive" in the API will not
  7014  // be included in the string output. The member name will be present, but the
  7015  // value will be replaced with "sensitive".
  7016  func (s AutoDeployment) String() string {
  7017  	return awsutil.Prettify(s)
  7018  }
  7019  
  7020  // GoString returns the string representation.
  7021  //
  7022  // API parameter values that are decorated as "sensitive" in the API will not
  7023  // be included in the string output. The member name will be present, but the
  7024  // value will be replaced with "sensitive".
  7025  func (s AutoDeployment) GoString() string {
  7026  	return s.String()
  7027  }
  7028  
  7029  // SetEnabled sets the Enabled field's value.
  7030  func (s *AutoDeployment) SetEnabled(v bool) *AutoDeployment {
  7031  	s.Enabled = &v
  7032  	return s
  7033  }
  7034  
  7035  // SetRetainStacksOnAccountRemoval sets the RetainStacksOnAccountRemoval field's value.
  7036  func (s *AutoDeployment) SetRetainStacksOnAccountRemoval(v bool) *AutoDeployment {
  7037  	s.RetainStacksOnAccountRemoval = &v
  7038  	return s
  7039  }
  7040  
  7041  // Detailed information concerning an error generated during the setting of
  7042  // configuration data for a CloudFormation extension.
  7043  type BatchDescribeTypeConfigurationsError struct {
  7044  	_ struct{} `type:"structure"`
  7045  
  7046  	// The error code.
  7047  	ErrorCode *string `min:"3" type:"string"`
  7048  
  7049  	// The error message.
  7050  	ErrorMessage *string `min:"1" type:"string"`
  7051  
  7052  	// Identifying information for the configuration of a CloudFormation extension.
  7053  	TypeConfigurationIdentifier *TypeConfigurationIdentifier `type:"structure"`
  7054  }
  7055  
  7056  // String returns the string representation.
  7057  //
  7058  // API parameter values that are decorated as "sensitive" in the API will not
  7059  // be included in the string output. The member name will be present, but the
  7060  // value will be replaced with "sensitive".
  7061  func (s BatchDescribeTypeConfigurationsError) String() string {
  7062  	return awsutil.Prettify(s)
  7063  }
  7064  
  7065  // GoString returns the string representation.
  7066  //
  7067  // API parameter values that are decorated as "sensitive" in the API will not
  7068  // be included in the string output. The member name will be present, but the
  7069  // value will be replaced with "sensitive".
  7070  func (s BatchDescribeTypeConfigurationsError) GoString() string {
  7071  	return s.String()
  7072  }
  7073  
  7074  // SetErrorCode sets the ErrorCode field's value.
  7075  func (s *BatchDescribeTypeConfigurationsError) SetErrorCode(v string) *BatchDescribeTypeConfigurationsError {
  7076  	s.ErrorCode = &v
  7077  	return s
  7078  }
  7079  
  7080  // SetErrorMessage sets the ErrorMessage field's value.
  7081  func (s *BatchDescribeTypeConfigurationsError) SetErrorMessage(v string) *BatchDescribeTypeConfigurationsError {
  7082  	s.ErrorMessage = &v
  7083  	return s
  7084  }
  7085  
  7086  // SetTypeConfigurationIdentifier sets the TypeConfigurationIdentifier field's value.
  7087  func (s *BatchDescribeTypeConfigurationsError) SetTypeConfigurationIdentifier(v *TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsError {
  7088  	s.TypeConfigurationIdentifier = v
  7089  	return s
  7090  }
  7091  
  7092  type BatchDescribeTypeConfigurationsInput struct {
  7093  	_ struct{} `type:"structure"`
  7094  
  7095  	// The list of identifiers for the desired extension configurations.
  7096  	//
  7097  	// TypeConfigurationIdentifiers is a required field
  7098  	TypeConfigurationIdentifiers []*TypeConfigurationIdentifier `min:"1" type:"list" required:"true"`
  7099  }
  7100  
  7101  // String returns the string representation.
  7102  //
  7103  // API parameter values that are decorated as "sensitive" in the API will not
  7104  // be included in the string output. The member name will be present, but the
  7105  // value will be replaced with "sensitive".
  7106  func (s BatchDescribeTypeConfigurationsInput) String() string {
  7107  	return awsutil.Prettify(s)
  7108  }
  7109  
  7110  // GoString returns the string representation.
  7111  //
  7112  // API parameter values that are decorated as "sensitive" in the API will not
  7113  // be included in the string output. The member name will be present, but the
  7114  // value will be replaced with "sensitive".
  7115  func (s BatchDescribeTypeConfigurationsInput) GoString() string {
  7116  	return s.String()
  7117  }
  7118  
  7119  // Validate inspects the fields of the type to determine if they are valid.
  7120  func (s *BatchDescribeTypeConfigurationsInput) Validate() error {
  7121  	invalidParams := request.ErrInvalidParams{Context: "BatchDescribeTypeConfigurationsInput"}
  7122  	if s.TypeConfigurationIdentifiers == nil {
  7123  		invalidParams.Add(request.NewErrParamRequired("TypeConfigurationIdentifiers"))
  7124  	}
  7125  	if s.TypeConfigurationIdentifiers != nil && len(s.TypeConfigurationIdentifiers) < 1 {
  7126  		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationIdentifiers", 1))
  7127  	}
  7128  	if s.TypeConfigurationIdentifiers != nil {
  7129  		for i, v := range s.TypeConfigurationIdentifiers {
  7130  			if v == nil {
  7131  				continue
  7132  			}
  7133  			if err := v.Validate(); err != nil {
  7134  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TypeConfigurationIdentifiers", i), err.(request.ErrInvalidParams))
  7135  			}
  7136  		}
  7137  	}
  7138  
  7139  	if invalidParams.Len() > 0 {
  7140  		return invalidParams
  7141  	}
  7142  	return nil
  7143  }
  7144  
  7145  // SetTypeConfigurationIdentifiers sets the TypeConfigurationIdentifiers field's value.
  7146  func (s *BatchDescribeTypeConfigurationsInput) SetTypeConfigurationIdentifiers(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsInput {
  7147  	s.TypeConfigurationIdentifiers = v
  7148  	return s
  7149  }
  7150  
  7151  type BatchDescribeTypeConfigurationsOutput struct {
  7152  	_ struct{} `type:"structure"`
  7153  
  7154  	// A list of information concerning any errors generated during the setting
  7155  	// of the specified configurations.
  7156  	Errors []*BatchDescribeTypeConfigurationsError `type:"list"`
  7157  
  7158  	// A list of any of the specified extension configurations from the CloudFormation
  7159  	// registry.
  7160  	TypeConfigurations []*TypeConfigurationDetails `type:"list"`
  7161  
  7162  	// A list of any of the specified extension configurations that CloudFormation
  7163  	// could not process for any reason.
  7164  	UnprocessedTypeConfigurations []*TypeConfigurationIdentifier `type:"list"`
  7165  }
  7166  
  7167  // String returns the string representation.
  7168  //
  7169  // API parameter values that are decorated as "sensitive" in the API will not
  7170  // be included in the string output. The member name will be present, but the
  7171  // value will be replaced with "sensitive".
  7172  func (s BatchDescribeTypeConfigurationsOutput) String() string {
  7173  	return awsutil.Prettify(s)
  7174  }
  7175  
  7176  // GoString returns the string representation.
  7177  //
  7178  // API parameter values that are decorated as "sensitive" in the API will not
  7179  // be included in the string output. The member name will be present, but the
  7180  // value will be replaced with "sensitive".
  7181  func (s BatchDescribeTypeConfigurationsOutput) GoString() string {
  7182  	return s.String()
  7183  }
  7184  
  7185  // SetErrors sets the Errors field's value.
  7186  func (s *BatchDescribeTypeConfigurationsOutput) SetErrors(v []*BatchDescribeTypeConfigurationsError) *BatchDescribeTypeConfigurationsOutput {
  7187  	s.Errors = v
  7188  	return s
  7189  }
  7190  
  7191  // SetTypeConfigurations sets the TypeConfigurations field's value.
  7192  func (s *BatchDescribeTypeConfigurationsOutput) SetTypeConfigurations(v []*TypeConfigurationDetails) *BatchDescribeTypeConfigurationsOutput {
  7193  	s.TypeConfigurations = v
  7194  	return s
  7195  }
  7196  
  7197  // SetUnprocessedTypeConfigurations sets the UnprocessedTypeConfigurations field's value.
  7198  func (s *BatchDescribeTypeConfigurationsOutput) SetUnprocessedTypeConfigurations(v []*TypeConfigurationIdentifier) *BatchDescribeTypeConfigurationsOutput {
  7199  	s.UnprocessedTypeConfigurations = v
  7200  	return s
  7201  }
  7202  
  7203  // The input for the CancelUpdateStack action.
  7204  type CancelUpdateStackInput struct {
  7205  	_ struct{} `type:"structure"`
  7206  
  7207  	// A unique identifier for this CancelUpdateStack request. Specify this token
  7208  	// if you plan to retry requests so that CloudFormation knows that you're not
  7209  	// attempting to cancel an update on a stack with the same name. You might retry
  7210  	// CancelUpdateStack requests to ensure that CloudFormation successfully received
  7211  	// them.
  7212  	ClientRequestToken *string `min:"1" type:"string"`
  7213  
  7214  	// The name or the unique stack ID that is associated with the stack.
  7215  	//
  7216  	// StackName is a required field
  7217  	StackName *string `type:"string" required:"true"`
  7218  }
  7219  
  7220  // String returns the string representation.
  7221  //
  7222  // API parameter values that are decorated as "sensitive" in the API will not
  7223  // be included in the string output. The member name will be present, but the
  7224  // value will be replaced with "sensitive".
  7225  func (s CancelUpdateStackInput) String() string {
  7226  	return awsutil.Prettify(s)
  7227  }
  7228  
  7229  // GoString returns the string representation.
  7230  //
  7231  // API parameter values that are decorated as "sensitive" in the API will not
  7232  // be included in the string output. The member name will be present, but the
  7233  // value will be replaced with "sensitive".
  7234  func (s CancelUpdateStackInput) GoString() string {
  7235  	return s.String()
  7236  }
  7237  
  7238  // Validate inspects the fields of the type to determine if they are valid.
  7239  func (s *CancelUpdateStackInput) Validate() error {
  7240  	invalidParams := request.ErrInvalidParams{Context: "CancelUpdateStackInput"}
  7241  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  7242  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  7243  	}
  7244  	if s.StackName == nil {
  7245  		invalidParams.Add(request.NewErrParamRequired("StackName"))
  7246  	}
  7247  
  7248  	if invalidParams.Len() > 0 {
  7249  		return invalidParams
  7250  	}
  7251  	return nil
  7252  }
  7253  
  7254  // SetClientRequestToken sets the ClientRequestToken field's value.
  7255  func (s *CancelUpdateStackInput) SetClientRequestToken(v string) *CancelUpdateStackInput {
  7256  	s.ClientRequestToken = &v
  7257  	return s
  7258  }
  7259  
  7260  // SetStackName sets the StackName field's value.
  7261  func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput {
  7262  	s.StackName = &v
  7263  	return s
  7264  }
  7265  
  7266  type CancelUpdateStackOutput struct {
  7267  	_ struct{} `type:"structure"`
  7268  }
  7269  
  7270  // String returns the string representation.
  7271  //
  7272  // API parameter values that are decorated as "sensitive" in the API will not
  7273  // be included in the string output. The member name will be present, but the
  7274  // value will be replaced with "sensitive".
  7275  func (s CancelUpdateStackOutput) String() string {
  7276  	return awsutil.Prettify(s)
  7277  }
  7278  
  7279  // GoString returns the string representation.
  7280  //
  7281  // API parameter values that are decorated as "sensitive" in the API will not
  7282  // be included in the string output. The member name will be present, but the
  7283  // value will be replaced with "sensitive".
  7284  func (s CancelUpdateStackOutput) GoString() string {
  7285  	return s.String()
  7286  }
  7287  
  7288  // The Change structure describes the changes CloudFormation will perform if
  7289  // you execute the change set.
  7290  type Change struct {
  7291  	_ struct{} `type:"structure"`
  7292  
  7293  	// A ResourceChange structure that describes the resource and action that CloudFormation
  7294  	// will perform.
  7295  	ResourceChange *ResourceChange `type:"structure"`
  7296  
  7297  	// The type of entity that CloudFormation changes. Currently, the only entity
  7298  	// type is Resource.
  7299  	Type *string `type:"string" enum:"ChangeType"`
  7300  }
  7301  
  7302  // String returns the string representation.
  7303  //
  7304  // API parameter values that are decorated as "sensitive" in the API will not
  7305  // be included in the string output. The member name will be present, but the
  7306  // value will be replaced with "sensitive".
  7307  func (s Change) String() string {
  7308  	return awsutil.Prettify(s)
  7309  }
  7310  
  7311  // GoString returns the string representation.
  7312  //
  7313  // API parameter values that are decorated as "sensitive" in the API will not
  7314  // be included in the string output. The member name will be present, but the
  7315  // value will be replaced with "sensitive".
  7316  func (s Change) GoString() string {
  7317  	return s.String()
  7318  }
  7319  
  7320  // SetResourceChange sets the ResourceChange field's value.
  7321  func (s *Change) SetResourceChange(v *ResourceChange) *Change {
  7322  	s.ResourceChange = v
  7323  	return s
  7324  }
  7325  
  7326  // SetType sets the Type field's value.
  7327  func (s *Change) SetType(v string) *Change {
  7328  	s.Type = &v
  7329  	return s
  7330  }
  7331  
  7332  // The ChangeSetSummary structure describes a change set, its status, and the
  7333  // stack with which it's associated.
  7334  type ChangeSetSummary struct {
  7335  	_ struct{} `type:"structure"`
  7336  
  7337  	// The ID of the change set.
  7338  	ChangeSetId *string `min:"1" type:"string"`
  7339  
  7340  	// The name of the change set.
  7341  	ChangeSetName *string `min:"1" type:"string"`
  7342  
  7343  	// The start time when the change set was created, in UTC.
  7344  	CreationTime *time.Time `type:"timestamp"`
  7345  
  7346  	// Descriptive information about the change set.
  7347  	Description *string `min:"1" type:"string"`
  7348  
  7349  	// If the change set execution status is AVAILABLE, you can execute the change
  7350  	// set. If you can’t execute the change set, the status indicates why. For
  7351  	// example, a change set might be in an UNAVAILABLE state because CloudFormation
  7352  	// is still creating it or in an OBSOLETE state because the stack was already
  7353  	// updated.
  7354  	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
  7355  
  7356  	// Specifies the current setting of IncludeNestedStacks for the change set.
  7357  	IncludeNestedStacks *bool `type:"boolean"`
  7358  
  7359  	// The parent change set ID.
  7360  	ParentChangeSetId *string `min:"1" type:"string"`
  7361  
  7362  	// The root change set ID.
  7363  	RootChangeSetId *string `min:"1" type:"string"`
  7364  
  7365  	// The ID of the stack with which the change set is associated.
  7366  	StackId *string `type:"string"`
  7367  
  7368  	// The name of the stack with which the change set is associated.
  7369  	StackName *string `type:"string"`
  7370  
  7371  	// The state of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
  7372  	// or FAILED.
  7373  	Status *string `type:"string" enum:"ChangeSetStatus"`
  7374  
  7375  	// A description of the change set's status. For example, if your change set
  7376  	// is in the FAILED state, CloudFormation shows the error message.
  7377  	StatusReason *string `type:"string"`
  7378  }
  7379  
  7380  // String returns the string representation.
  7381  //
  7382  // API parameter values that are decorated as "sensitive" in the API will not
  7383  // be included in the string output. The member name will be present, but the
  7384  // value will be replaced with "sensitive".
  7385  func (s ChangeSetSummary) String() string {
  7386  	return awsutil.Prettify(s)
  7387  }
  7388  
  7389  // GoString returns the string representation.
  7390  //
  7391  // API parameter values that are decorated as "sensitive" in the API will not
  7392  // be included in the string output. The member name will be present, but the
  7393  // value will be replaced with "sensitive".
  7394  func (s ChangeSetSummary) GoString() string {
  7395  	return s.String()
  7396  }
  7397  
  7398  // SetChangeSetId sets the ChangeSetId field's value.
  7399  func (s *ChangeSetSummary) SetChangeSetId(v string) *ChangeSetSummary {
  7400  	s.ChangeSetId = &v
  7401  	return s
  7402  }
  7403  
  7404  // SetChangeSetName sets the ChangeSetName field's value.
  7405  func (s *ChangeSetSummary) SetChangeSetName(v string) *ChangeSetSummary {
  7406  	s.ChangeSetName = &v
  7407  	return s
  7408  }
  7409  
  7410  // SetCreationTime sets the CreationTime field's value.
  7411  func (s *ChangeSetSummary) SetCreationTime(v time.Time) *ChangeSetSummary {
  7412  	s.CreationTime = &v
  7413  	return s
  7414  }
  7415  
  7416  // SetDescription sets the Description field's value.
  7417  func (s *ChangeSetSummary) SetDescription(v string) *ChangeSetSummary {
  7418  	s.Description = &v
  7419  	return s
  7420  }
  7421  
  7422  // SetExecutionStatus sets the ExecutionStatus field's value.
  7423  func (s *ChangeSetSummary) SetExecutionStatus(v string) *ChangeSetSummary {
  7424  	s.ExecutionStatus = &v
  7425  	return s
  7426  }
  7427  
  7428  // SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
  7429  func (s *ChangeSetSummary) SetIncludeNestedStacks(v bool) *ChangeSetSummary {
  7430  	s.IncludeNestedStacks = &v
  7431  	return s
  7432  }
  7433  
  7434  // SetParentChangeSetId sets the ParentChangeSetId field's value.
  7435  func (s *ChangeSetSummary) SetParentChangeSetId(v string) *ChangeSetSummary {
  7436  	s.ParentChangeSetId = &v
  7437  	return s
  7438  }
  7439  
  7440  // SetRootChangeSetId sets the RootChangeSetId field's value.
  7441  func (s *ChangeSetSummary) SetRootChangeSetId(v string) *ChangeSetSummary {
  7442  	s.RootChangeSetId = &v
  7443  	return s
  7444  }
  7445  
  7446  // SetStackId sets the StackId field's value.
  7447  func (s *ChangeSetSummary) SetStackId(v string) *ChangeSetSummary {
  7448  	s.StackId = &v
  7449  	return s
  7450  }
  7451  
  7452  // SetStackName sets the StackName field's value.
  7453  func (s *ChangeSetSummary) SetStackName(v string) *ChangeSetSummary {
  7454  	s.StackName = &v
  7455  	return s
  7456  }
  7457  
  7458  // SetStatus sets the Status field's value.
  7459  func (s *ChangeSetSummary) SetStatus(v string) *ChangeSetSummary {
  7460  	s.Status = &v
  7461  	return s
  7462  }
  7463  
  7464  // SetStatusReason sets the StatusReason field's value.
  7465  func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary {
  7466  	s.StatusReason = &v
  7467  	return s
  7468  }
  7469  
  7470  // The input for the ContinueUpdateRollback action.
  7471  type ContinueUpdateRollbackInput struct {
  7472  	_ struct{} `type:"structure"`
  7473  
  7474  	// A unique identifier for this ContinueUpdateRollback request. Specify this
  7475  	// token if you plan to retry requests so that CloudFormationknows that you're
  7476  	// not attempting to continue the rollback to a stack with the same name. You
  7477  	// might retry ContinueUpdateRollback requests to ensure that CloudFormation
  7478  	// successfully received them.
  7479  	ClientRequestToken *string `min:"1" type:"string"`
  7480  
  7481  	// A list of the logical IDs of the resources that CloudFormation skips during
  7482  	// the continue update rollback operation. You can specify only resources that
  7483  	// are in the UPDATE_FAILED state because a rollback failed. You can't specify
  7484  	// resources that are in the UPDATE_FAILED state for other reasons, for example,
  7485  	// because an update was cancelled. To check why a resource update failed, use
  7486  	// the DescribeStackResources action, and view the resource status reason.
  7487  	//
  7488  	// Specify this property to skip rolling back resources that CloudFormation
  7489  	// can't successfully roll back. We recommend that you troubleshoot (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed)
  7490  	// resources before skipping them. CloudFormation sets the status of the specified
  7491  	// resources to UPDATE_COMPLETE and continues to roll back the stack. After
  7492  	// the rollback is complete, the state of the skipped resources will be inconsistent
  7493  	// with the state of the resources in the stack template. Before performing
  7494  	// another stack update, you must update the stack or resources to be consistent
  7495  	// with each other. If you don't, subsequent stack updates might fail, and the
  7496  	// stack will become unrecoverable.
  7497  	//
  7498  	// Specify the minimum number of resources required to successfully roll back
  7499  	// your stack. For example, a failed resource update might cause dependent resources
  7500  	// to fail. In this case, it might not be necessary to skip the dependent resources.
  7501  	//
  7502  	// To skip resources that are part of nested stacks, use the following format:
  7503  	// NestedStackName.ResourceLogicalID. If you want to specify the logical ID
  7504  	// of a stack resource (Type: AWS::CloudFormation::Stack) in the ResourcesToSkip
  7505  	// list, then its corresponding embedded stack must be in one of the following
  7506  	// states: DELETE_IN_PROGRESS, DELETE_COMPLETE, or DELETE_FAILED.
  7507  	//
  7508  	// Don't confuse a child stack's name with its corresponding logical ID defined
  7509  	// in the parent stack. For an example of a continue update rollback operation
  7510  	// with nested stacks, see Using ResourcesToSkip to recover a nested stacks
  7511  	// hierarchy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks).
  7512  	ResourcesToSkip []*string `type:"list"`
  7513  
  7514  	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
  7515  	// role that CloudFormation assumes to roll back the stack. CloudFormation uses
  7516  	// the role's credentials to make calls on your behalf. CloudFormation always
  7517  	// uses this role for all future operations on the stack. As long as users have
  7518  	// permission to operate on the stack, CloudFormation uses this role even if
  7519  	// the users don't have permission to pass it. Ensure that the role grants least
  7520  	// privilege.
  7521  	//
  7522  	// If you don't specify a value, CloudFormation uses the role that was previously
  7523  	// associated with the stack. If no role is available, CloudFormation uses a
  7524  	// temporary session that is generated from your user credentials.
  7525  	RoleARN *string `min:"20" type:"string"`
  7526  
  7527  	// The name or the unique ID of the stack that you want to continue rolling
  7528  	// back.
  7529  	//
  7530  	// Don't specify the name of a nested stack (a stack that was created by using
  7531  	// the AWS::CloudFormation::Stack resource). Instead, use this operation on
  7532  	// the parent stack (the stack that contains the AWS::CloudFormation::Stack
  7533  	// resource).
  7534  	//
  7535  	// StackName is a required field
  7536  	StackName *string `min:"1" type:"string" required:"true"`
  7537  }
  7538  
  7539  // String returns the string representation.
  7540  //
  7541  // API parameter values that are decorated as "sensitive" in the API will not
  7542  // be included in the string output. The member name will be present, but the
  7543  // value will be replaced with "sensitive".
  7544  func (s ContinueUpdateRollbackInput) String() string {
  7545  	return awsutil.Prettify(s)
  7546  }
  7547  
  7548  // GoString returns the string representation.
  7549  //
  7550  // API parameter values that are decorated as "sensitive" in the API will not
  7551  // be included in the string output. The member name will be present, but the
  7552  // value will be replaced with "sensitive".
  7553  func (s ContinueUpdateRollbackInput) GoString() string {
  7554  	return s.String()
  7555  }
  7556  
  7557  // Validate inspects the fields of the type to determine if they are valid.
  7558  func (s *ContinueUpdateRollbackInput) Validate() error {
  7559  	invalidParams := request.ErrInvalidParams{Context: "ContinueUpdateRollbackInput"}
  7560  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  7561  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  7562  	}
  7563  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
  7564  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
  7565  	}
  7566  	if s.StackName == nil {
  7567  		invalidParams.Add(request.NewErrParamRequired("StackName"))
  7568  	}
  7569  	if s.StackName != nil && len(*s.StackName) < 1 {
  7570  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
  7571  	}
  7572  
  7573  	if invalidParams.Len() > 0 {
  7574  		return invalidParams
  7575  	}
  7576  	return nil
  7577  }
  7578  
  7579  // SetClientRequestToken sets the ClientRequestToken field's value.
  7580  func (s *ContinueUpdateRollbackInput) SetClientRequestToken(v string) *ContinueUpdateRollbackInput {
  7581  	s.ClientRequestToken = &v
  7582  	return s
  7583  }
  7584  
  7585  // SetResourcesToSkip sets the ResourcesToSkip field's value.
  7586  func (s *ContinueUpdateRollbackInput) SetResourcesToSkip(v []*string) *ContinueUpdateRollbackInput {
  7587  	s.ResourcesToSkip = v
  7588  	return s
  7589  }
  7590  
  7591  // SetRoleARN sets the RoleARN field's value.
  7592  func (s *ContinueUpdateRollbackInput) SetRoleARN(v string) *ContinueUpdateRollbackInput {
  7593  	s.RoleARN = &v
  7594  	return s
  7595  }
  7596  
  7597  // SetStackName sets the StackName field's value.
  7598  func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRollbackInput {
  7599  	s.StackName = &v
  7600  	return s
  7601  }
  7602  
  7603  // The output for a ContinueUpdateRollback action.
  7604  type ContinueUpdateRollbackOutput struct {
  7605  	_ struct{} `type:"structure"`
  7606  }
  7607  
  7608  // String returns the string representation.
  7609  //
  7610  // API parameter values that are decorated as "sensitive" in the API will not
  7611  // be included in the string output. The member name will be present, but the
  7612  // value will be replaced with "sensitive".
  7613  func (s ContinueUpdateRollbackOutput) String() string {
  7614  	return awsutil.Prettify(s)
  7615  }
  7616  
  7617  // GoString returns the string representation.
  7618  //
  7619  // API parameter values that are decorated as "sensitive" in the API will not
  7620  // be included in the string output. The member name will be present, but the
  7621  // value will be replaced with "sensitive".
  7622  func (s ContinueUpdateRollbackOutput) GoString() string {
  7623  	return s.String()
  7624  }
  7625  
  7626  // The input for the CreateChangeSet action.
  7627  type CreateChangeSetInput struct {
  7628  	_ struct{} `type:"structure"`
  7629  
  7630  	// In some cases, you must explicitly acknowledge that your stack template contains
  7631  	// certain capabilities in order for CloudFormation to create the stack.
  7632  	//
  7633  	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
  7634  	//    resources that can affect permissions in your Amazon Web Services account;
  7635  	//    for example, by creating new Identity and Access Management (IAM) users.
  7636  	//    For those stacks, you must explicitly acknowledge this by specifying one
  7637  	//    of these capabilities. The following IAM resources require you to specify
  7638  	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
  7639  	//    IAM resources, you can specify either capability. If you have IAM resources
  7640  	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
  7641  	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
  7642  	//    error. If your stack template contains these resources, we recommend that
  7643  	//    you review all permissions associated with them and edit their permissions
  7644  	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
  7645  	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
  7646  	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
  7647  	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
  7648  	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
  7649  	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
  7650  	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
  7651  	//    For more information, see Acknowledging IAM Resources in CloudFormation
  7652  	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
  7653  	//
  7654  	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
  7655  	//    custom processing on templates; this can include simple actions like find-and-replace
  7656  	//    operations, all the way to extensive transformations of entire templates.
  7657  	//    Because of this, users typically create a change set from the processed
  7658  	//    template, so that they can review the changes resulting from the macros
  7659  	//    before actually creating the stack. If your stack template contains one
  7660  	//    or more macros, and you choose to create a stack directly from the processed
  7661  	//    template, without first reviewing the resulting changes in a change set,
  7662  	//    you must acknowledge this capability. This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
  7663  	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
  7664  	//    transforms, which are macros hosted by CloudFormation. This capacity does
  7665  	//    not apply to creating change sets, and specifying it when creating change
  7666  	//    sets has no effect. If you want to create a stack from a stack template
  7667  	//    that contains macros and nested stacks, you must create or update the
  7668  	//    stack directly from the template using the CreateStack or UpdateStack
  7669  	//    action, and specifying this capability. For more information on macros,
  7670  	//    see Using CloudFormation Macros to Perform Custom Processing on Templates
  7671  	//    (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
  7672  	Capabilities []*string `type:"list"`
  7673  
  7674  	// The name of the change set. The name must be unique among all change sets
  7675  	// that are associated with the specified stack.
  7676  	//
  7677  	// A change set name can contain only alphanumeric, case sensitive characters
  7678  	// and hyphens. It must start with an alphabetic character and cannot exceed
  7679  	// 128 characters.
  7680  	//
  7681  	// ChangeSetName is a required field
  7682  	ChangeSetName *string `min:"1" type:"string" required:"true"`
  7683  
  7684  	// The type of change set operation. To create a change set for a new stack,
  7685  	// specify CREATE. To create a change set for an existing stack, specify UPDATE.
  7686  	// To create a change set for an import operation, specify IMPORT.
  7687  	//
  7688  	// If you create a change set for a new stack, CloudFormation creates a stack
  7689  	// with a unique stack ID, but no template or resources. The stack will be in
  7690  	// the REVIEW_IN_PROGRESS (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995)
  7691  	// state until you execute the change set.
  7692  	//
  7693  	// By default, CloudFormation specifies UPDATE. You can't use the UPDATE type
  7694  	// to create a change set for a new stack or the CREATE type to create a change
  7695  	// set for an existing stack.
  7696  	ChangeSetType *string `type:"string" enum:"ChangeSetType"`
  7697  
  7698  	// A unique identifier for this CreateChangeSet request. Specify this token
  7699  	// if you plan to retry requests so that CloudFormation knows that you're not
  7700  	// attempting to create another change set with the same name. You might retry
  7701  	// CreateChangeSet requests to ensure that CloudFormation successfully received
  7702  	// them.
  7703  	ClientToken *string `min:"1" type:"string"`
  7704  
  7705  	// A description to help you identify this change set.
  7706  	Description *string `min:"1" type:"string"`
  7707  
  7708  	// Creates a change set for the all nested stacks specified in the template.
  7709  	// The default behavior of this action is set to False. To include nested sets
  7710  	// in a change set, specify True.
  7711  	IncludeNestedStacks *bool `type:"boolean"`
  7712  
  7713  	// The Amazon Resource Names (ARNs) of Amazon Simple Notification Service (Amazon
  7714  	// SNS) topics that CloudFormation associates with the stack. To remove all
  7715  	// associated notification topics, specify an empty list.
  7716  	NotificationARNs []*string `type:"list"`
  7717  
  7718  	// A list of Parameter structures that specify input parameters for the change
  7719  	// set. For more information, see the Parameter data type.
  7720  	Parameters []*Parameter `type:"list"`
  7721  
  7722  	// The template resource types that you have permissions to work with if you
  7723  	// execute this change set, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
  7724  	//
  7725  	// If the list of resource types doesn't include a resource type that you're
  7726  	// updating, the stack update fails. By default, CloudFormation grants permissions
  7727  	// to all resource types. Identity and Access Management (IAM) uses this parameter
  7728  	// for condition keys in IAM policies for CloudFormation. For more information,
  7729  	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
  7730  	// in the CloudFormation User Guide.
  7731  	ResourceTypes []*string `type:"list"`
  7732  
  7733  	// The resources to import into your stack.
  7734  	ResourcesToImport []*ResourceToImport `type:"list"`
  7735  
  7736  	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
  7737  	// role that CloudFormation assumes when executing the change set. CloudFormation
  7738  	// uses the role's credentials to make calls on your behalf. CloudFormation
  7739  	// uses this role for all future operations on the stack. As long as users have
  7740  	// permission to operate on the stack, CloudFormation uses this role even if
  7741  	// the users don't have permission to pass it. Ensure that the role grants least
  7742  	// privilege.
  7743  	//
  7744  	// If you don't specify a value, CloudFormation uses the role that was previously
  7745  	// associated with the stack. If no role is available, CloudFormation uses a
  7746  	// temporary session that is generated from your user credentials.
  7747  	RoleARN *string `min:"20" type:"string"`
  7748  
  7749  	// The rollback triggers for CloudFormation to monitor during stack creation
  7750  	// and updating operations, and for the specified monitoring period afterwards.
  7751  	RollbackConfiguration *RollbackConfiguration `type:"structure"`
  7752  
  7753  	// The name or the unique ID of the stack for which you are creating a change
  7754  	// set. CloudFormation generates the change set by comparing this stack's information
  7755  	// with the information that you submit, such as a modified template or different
  7756  	// parameter input values.
  7757  	//
  7758  	// StackName is a required field
  7759  	StackName *string `min:"1" type:"string" required:"true"`
  7760  
  7761  	// Key-value pairs to associate with this stack. CloudFormation also propagates
  7762  	// these tags to resources in the stack. You can specify a maximum of 50 tags.
  7763  	Tags []*Tag `type:"list"`
  7764  
  7765  	// A structure that contains the body of the revised template, with a minimum
  7766  	// length of 1 byte and a maximum length of 51,200 bytes. CloudFormation generates
  7767  	// the change set by comparing this template with the template of the stack
  7768  	// that you specified.
  7769  	//
  7770  	// Conditional: You must specify only TemplateBody or TemplateURL.
  7771  	TemplateBody *string `min:"1" type:"string"`
  7772  
  7773  	// The location of the file that contains the revised template. The URL must
  7774  	// point to a template (max size: 460,800 bytes) that is located in an S3 bucket
  7775  	// or a Systems Manager document. CloudFormation generates the change set by
  7776  	// comparing this template with the stack that you specified.
  7777  	//
  7778  	// Conditional: You must specify only TemplateBody or TemplateURL.
  7779  	TemplateURL *string `min:"1" type:"string"`
  7780  
  7781  	// Whether to reuse the template that is associated with the stack to create
  7782  	// the change set.
  7783  	UsePreviousTemplate *bool `type:"boolean"`
  7784  }
  7785  
  7786  // String returns the string representation.
  7787  //
  7788  // API parameter values that are decorated as "sensitive" in the API will not
  7789  // be included in the string output. The member name will be present, but the
  7790  // value will be replaced with "sensitive".
  7791  func (s CreateChangeSetInput) String() string {
  7792  	return awsutil.Prettify(s)
  7793  }
  7794  
  7795  // GoString returns the string representation.
  7796  //
  7797  // API parameter values that are decorated as "sensitive" in the API will not
  7798  // be included in the string output. The member name will be present, but the
  7799  // value will be replaced with "sensitive".
  7800  func (s CreateChangeSetInput) GoString() string {
  7801  	return s.String()
  7802  }
  7803  
  7804  // Validate inspects the fields of the type to determine if they are valid.
  7805  func (s *CreateChangeSetInput) Validate() error {
  7806  	invalidParams := request.ErrInvalidParams{Context: "CreateChangeSetInput"}
  7807  	if s.ChangeSetName == nil {
  7808  		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
  7809  	}
  7810  	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
  7811  		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
  7812  	}
  7813  	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
  7814  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
  7815  	}
  7816  	if s.Description != nil && len(*s.Description) < 1 {
  7817  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  7818  	}
  7819  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
  7820  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
  7821  	}
  7822  	if s.StackName == nil {
  7823  		invalidParams.Add(request.NewErrParamRequired("StackName"))
  7824  	}
  7825  	if s.StackName != nil && len(*s.StackName) < 1 {
  7826  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
  7827  	}
  7828  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
  7829  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
  7830  	}
  7831  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
  7832  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
  7833  	}
  7834  	if s.ResourcesToImport != nil {
  7835  		for i, v := range s.ResourcesToImport {
  7836  			if v == nil {
  7837  				continue
  7838  			}
  7839  			if err := v.Validate(); err != nil {
  7840  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourcesToImport", i), err.(request.ErrInvalidParams))
  7841  			}
  7842  		}
  7843  	}
  7844  	if s.RollbackConfiguration != nil {
  7845  		if err := s.RollbackConfiguration.Validate(); err != nil {
  7846  			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
  7847  		}
  7848  	}
  7849  	if s.Tags != nil {
  7850  		for i, v := range s.Tags {
  7851  			if v == nil {
  7852  				continue
  7853  			}
  7854  			if err := v.Validate(); err != nil {
  7855  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  7856  			}
  7857  		}
  7858  	}
  7859  
  7860  	if invalidParams.Len() > 0 {
  7861  		return invalidParams
  7862  	}
  7863  	return nil
  7864  }
  7865  
  7866  // SetCapabilities sets the Capabilities field's value.
  7867  func (s *CreateChangeSetInput) SetCapabilities(v []*string) *CreateChangeSetInput {
  7868  	s.Capabilities = v
  7869  	return s
  7870  }
  7871  
  7872  // SetChangeSetName sets the ChangeSetName field's value.
  7873  func (s *CreateChangeSetInput) SetChangeSetName(v string) *CreateChangeSetInput {
  7874  	s.ChangeSetName = &v
  7875  	return s
  7876  }
  7877  
  7878  // SetChangeSetType sets the ChangeSetType field's value.
  7879  func (s *CreateChangeSetInput) SetChangeSetType(v string) *CreateChangeSetInput {
  7880  	s.ChangeSetType = &v
  7881  	return s
  7882  }
  7883  
  7884  // SetClientToken sets the ClientToken field's value.
  7885  func (s *CreateChangeSetInput) SetClientToken(v string) *CreateChangeSetInput {
  7886  	s.ClientToken = &v
  7887  	return s
  7888  }
  7889  
  7890  // SetDescription sets the Description field's value.
  7891  func (s *CreateChangeSetInput) SetDescription(v string) *CreateChangeSetInput {
  7892  	s.Description = &v
  7893  	return s
  7894  }
  7895  
  7896  // SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
  7897  func (s *CreateChangeSetInput) SetIncludeNestedStacks(v bool) *CreateChangeSetInput {
  7898  	s.IncludeNestedStacks = &v
  7899  	return s
  7900  }
  7901  
  7902  // SetNotificationARNs sets the NotificationARNs field's value.
  7903  func (s *CreateChangeSetInput) SetNotificationARNs(v []*string) *CreateChangeSetInput {
  7904  	s.NotificationARNs = v
  7905  	return s
  7906  }
  7907  
  7908  // SetParameters sets the Parameters field's value.
  7909  func (s *CreateChangeSetInput) SetParameters(v []*Parameter) *CreateChangeSetInput {
  7910  	s.Parameters = v
  7911  	return s
  7912  }
  7913  
  7914  // SetResourceTypes sets the ResourceTypes field's value.
  7915  func (s *CreateChangeSetInput) SetResourceTypes(v []*string) *CreateChangeSetInput {
  7916  	s.ResourceTypes = v
  7917  	return s
  7918  }
  7919  
  7920  // SetResourcesToImport sets the ResourcesToImport field's value.
  7921  func (s *CreateChangeSetInput) SetResourcesToImport(v []*ResourceToImport) *CreateChangeSetInput {
  7922  	s.ResourcesToImport = v
  7923  	return s
  7924  }
  7925  
  7926  // SetRoleARN sets the RoleARN field's value.
  7927  func (s *CreateChangeSetInput) SetRoleARN(v string) *CreateChangeSetInput {
  7928  	s.RoleARN = &v
  7929  	return s
  7930  }
  7931  
  7932  // SetRollbackConfiguration sets the RollbackConfiguration field's value.
  7933  func (s *CreateChangeSetInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateChangeSetInput {
  7934  	s.RollbackConfiguration = v
  7935  	return s
  7936  }
  7937  
  7938  // SetStackName sets the StackName field's value.
  7939  func (s *CreateChangeSetInput) SetStackName(v string) *CreateChangeSetInput {
  7940  	s.StackName = &v
  7941  	return s
  7942  }
  7943  
  7944  // SetTags sets the Tags field's value.
  7945  func (s *CreateChangeSetInput) SetTags(v []*Tag) *CreateChangeSetInput {
  7946  	s.Tags = v
  7947  	return s
  7948  }
  7949  
  7950  // SetTemplateBody sets the TemplateBody field's value.
  7951  func (s *CreateChangeSetInput) SetTemplateBody(v string) *CreateChangeSetInput {
  7952  	s.TemplateBody = &v
  7953  	return s
  7954  }
  7955  
  7956  // SetTemplateURL sets the TemplateURL field's value.
  7957  func (s *CreateChangeSetInput) SetTemplateURL(v string) *CreateChangeSetInput {
  7958  	s.TemplateURL = &v
  7959  	return s
  7960  }
  7961  
  7962  // SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
  7963  func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetInput {
  7964  	s.UsePreviousTemplate = &v
  7965  	return s
  7966  }
  7967  
  7968  // The output for the CreateChangeSet action.
  7969  type CreateChangeSetOutput struct {
  7970  	_ struct{} `type:"structure"`
  7971  
  7972  	// The Amazon Resource Name (ARN) of the change set.
  7973  	Id *string `min:"1" type:"string"`
  7974  
  7975  	// The unique ID of the stack.
  7976  	StackId *string `type:"string"`
  7977  }
  7978  
  7979  // String returns the string representation.
  7980  //
  7981  // API parameter values that are decorated as "sensitive" in the API will not
  7982  // be included in the string output. The member name will be present, but the
  7983  // value will be replaced with "sensitive".
  7984  func (s CreateChangeSetOutput) String() string {
  7985  	return awsutil.Prettify(s)
  7986  }
  7987  
  7988  // GoString returns the string representation.
  7989  //
  7990  // API parameter values that are decorated as "sensitive" in the API will not
  7991  // be included in the string output. The member name will be present, but the
  7992  // value will be replaced with "sensitive".
  7993  func (s CreateChangeSetOutput) GoString() string {
  7994  	return s.String()
  7995  }
  7996  
  7997  // SetId sets the Id field's value.
  7998  func (s *CreateChangeSetOutput) SetId(v string) *CreateChangeSetOutput {
  7999  	s.Id = &v
  8000  	return s
  8001  }
  8002  
  8003  // SetStackId sets the StackId field's value.
  8004  func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput {
  8005  	s.StackId = &v
  8006  	return s
  8007  }
  8008  
  8009  // The input for CreateStack action.
  8010  type CreateStackInput struct {
  8011  	_ struct{} `type:"structure"`
  8012  
  8013  	// In some cases, you must explicitly acknowledge that your stack template contains
  8014  	// certain capabilities in order for CloudFormation to create the stack.
  8015  	//
  8016  	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
  8017  	//    resources that can affect permissions in your Amazon Web Services account;
  8018  	//    for example, by creating new Identity and Access Management (IAM) users.
  8019  	//    For those stacks, you must explicitly acknowledge this by specifying one
  8020  	//    of these capabilities. The following IAM resources require you to specify
  8021  	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
  8022  	//    IAM resources, you can specify either capability. If you have IAM resources
  8023  	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
  8024  	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
  8025  	//    error. If your stack template contains these resources, we recommend that
  8026  	//    you review all permissions associated with them and edit their permissions
  8027  	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
  8028  	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
  8029  	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
  8030  	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
  8031  	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
  8032  	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
  8033  	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
  8034  	//    For more information, see Acknowledging IAM Resources in CloudFormation
  8035  	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
  8036  	//
  8037  	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
  8038  	//    custom processing on templates; this can include simple actions like find-and-replace
  8039  	//    operations, all the way to extensive transformations of entire templates.
  8040  	//    Because of this, users typically create a change set from the processed
  8041  	//    template, so that they can review the changes resulting from the macros
  8042  	//    before actually creating the stack. If your stack template contains one
  8043  	//    or more macros, and you choose to create a stack directly from the processed
  8044  	//    template, without first reviewing the resulting changes in a change set,
  8045  	//    you must acknowledge this capability. This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
  8046  	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
  8047  	//    transforms, which are macros hosted by CloudFormation. If you want to
  8048  	//    create a stack from a stack template that contains macros and nested stacks,
  8049  	//    you must create the stack directly from the template using this capability.
  8050  	//    You should only create stacks directly from a stack template that contains
  8051  	//    macros if you know what processing the macro performs. Each macro relies
  8052  	//    on an underlying Lambda service function for processing stack templates.
  8053  	//    Be aware that the Lambda function owner can update the function operation
  8054  	//    without CloudFormation being notified. For more information, see Using
  8055  	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
  8056  	Capabilities []*string `type:"list"`
  8057  
  8058  	// A unique identifier for this CreateStack request. Specify this token if you
  8059  	// plan to retry requests so that CloudFormation knows that you're not attempting
  8060  	// to create a stack with the same name. You might retry CreateStack requests
  8061  	// to ensure that CloudFormation successfully received them.
  8062  	//
  8063  	// All events triggered by a given stack operation are assigned the same client
  8064  	// request token, which you can use to track operations. For example, if you
  8065  	// execute a CreateStack operation with the token token1, then all the StackEvents
  8066  	// generated by that operation will have ClientRequestToken set as token1.
  8067  	//
  8068  	// In the console, stack operations display the client request token on the
  8069  	// Events tab. Stack operations that are initiated from the console use the
  8070  	// token format Console-StackOperation-ID, which helps you easily identify the
  8071  	// stack operation . For example, if you create a stack using the console, each
  8072  	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
  8073  	ClientRequestToken *string `min:"1" type:"string"`
  8074  
  8075  	// Set to true to disable rollback of the stack if stack creation failed. You
  8076  	// can specify either DisableRollback or OnFailure, but not both.
  8077  	//
  8078  	// Default: false
  8079  	DisableRollback *bool `type:"boolean"`
  8080  
  8081  	// Whether to enable termination protection on the specified stack. If a user
  8082  	// attempts to delete a stack with termination protection enabled, the operation
  8083  	// fails and the stack remains unchanged. For more information, see Protecting
  8084  	// a Stack From Being Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
  8085  	// in the CloudFormation User Guide. Termination protection is disabled on stacks
  8086  	// by default.
  8087  	//
  8088  	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
  8089  	// termination protection is set on the root stack and cannot be changed directly
  8090  	// on the nested stack.
  8091  	EnableTerminationProtection *bool `type:"boolean"`
  8092  
  8093  	// The Simple Notification Service (SNS) topic ARNs to publish stack related
  8094  	// events. You can find your SNS topic ARNs using the SNS console or your Command
  8095  	// Line Interface (CLI).
  8096  	NotificationARNs []*string `type:"list"`
  8097  
  8098  	// Determines what action will be taken if stack creation fails. This must be
  8099  	// one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure
  8100  	// or DisableRollback, but not both.
  8101  	//
  8102  	// Default: ROLLBACK
  8103  	OnFailure *string `type:"string" enum:"OnFailure"`
  8104  
  8105  	// A list of Parameter structures that specify input parameters for the stack.
  8106  	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
  8107  	// data type.
  8108  	Parameters []*Parameter `type:"list"`
  8109  
  8110  	// The template resource types that you have permissions to work with for this
  8111  	// create stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
  8112  	// Use the following syntax to describe template resource types: AWS::* (for
  8113  	// all Amazon Web Services resources), Custom::* (for all custom resources),
  8114  	// Custom::logical_ID (for a specific custom resource), AWS::service_name::*
  8115  	// (for all resources of a particular Amazon Web Services service), and AWS::service_name::resource_logical_ID
  8116  	// (for a specific Amazon Web Services resource).
  8117  	//
  8118  	// If the list of resource types doesn't include a resource that you're creating,
  8119  	// the stack creation fails. By default, CloudFormation grants permissions to
  8120  	// all resource types. Identity and Access Management (IAM) uses this parameter
  8121  	// for CloudFormation-specific condition keys in IAM policies. For more information,
  8122  	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
  8123  	ResourceTypes []*string `type:"list"`
  8124  
  8125  	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
  8126  	// role that CloudFormation assumes to create the stack. CloudFormation uses
  8127  	// the role's credentials to make calls on your behalf. CloudFormation always
  8128  	// uses this role for all future operations on the stack. As long as users have
  8129  	// permission to operate on the stack, CloudFormation uses this role even if
  8130  	// the users don't have permission to pass it. Ensure that the role grants least
  8131  	// privilege.
  8132  	//
  8133  	// If you don't specify a value, CloudFormation uses the role that was previously
  8134  	// associated with the stack. If no role is available, CloudFormation uses a
  8135  	// temporary session that is generated from your user credentials.
  8136  	RoleARN *string `min:"20" type:"string"`
  8137  
  8138  	// The rollback triggers for CloudFormation to monitor during stack creation
  8139  	// and updating operations, and for the specified monitoring period afterwards.
  8140  	RollbackConfiguration *RollbackConfiguration `type:"structure"`
  8141  
  8142  	// The name that is associated with the stack. The name must be unique in the
  8143  	// Region in which you are creating the stack.
  8144  	//
  8145  	// A stack name can contain only alphanumeric characters (case sensitive) and
  8146  	// hyphens. It must start with an alphabetical character and cannot be longer
  8147  	// than 128 characters.
  8148  	//
  8149  	// StackName is a required field
  8150  	StackName *string `type:"string" required:"true"`
  8151  
  8152  	// Structure containing the stack policy body. For more information, go to Prevent
  8153  	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
  8154  	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
  8155  	// or the StackPolicyURL parameter, but not both.
  8156  	StackPolicyBody *string `min:"1" type:"string"`
  8157  
  8158  	// Location of a file containing the stack policy. The URL must point to a policy
  8159  	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
  8160  	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
  8161  	// but not both.
  8162  	StackPolicyURL *string `min:"1" type:"string"`
  8163  
  8164  	// Key-value pairs to associate with this stack. CloudFormation also propagates
  8165  	// these tags to the resources created in the stack. A maximum number of 50
  8166  	// tags can be specified.
  8167  	Tags []*Tag `type:"list"`
  8168  
  8169  	// Structure containing the template body with a minimum length of 1 byte and
  8170  	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
  8171  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
  8172  	// in the CloudFormation User Guide.
  8173  	//
  8174  	// Conditional: You must specify either the TemplateBody or the TemplateURL
  8175  	// parameter, but not both.
  8176  	TemplateBody *string `min:"1" type:"string"`
  8177  
  8178  	// Location of file containing the template body. The URL must point to a template
  8179  	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
  8180  	// Manager document. For more information, go to the Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
  8181  	// in the CloudFormation User Guide.
  8182  	//
  8183  	// Conditional: You must specify either the TemplateBody or the TemplateURL
  8184  	// parameter, but not both.
  8185  	TemplateURL *string `min:"1" type:"string"`
  8186  
  8187  	// The amount of time that can pass before the stack status becomes CREATE_FAILED;
  8188  	// if DisableRollback is not set or is set to false, the stack will be rolled
  8189  	// back.
  8190  	TimeoutInMinutes *int64 `min:"1" type:"integer"`
  8191  }
  8192  
  8193  // String returns the string representation.
  8194  //
  8195  // API parameter values that are decorated as "sensitive" in the API will not
  8196  // be included in the string output. The member name will be present, but the
  8197  // value will be replaced with "sensitive".
  8198  func (s CreateStackInput) String() string {
  8199  	return awsutil.Prettify(s)
  8200  }
  8201  
  8202  // GoString returns the string representation.
  8203  //
  8204  // API parameter values that are decorated as "sensitive" in the API will not
  8205  // be included in the string output. The member name will be present, but the
  8206  // value will be replaced with "sensitive".
  8207  func (s CreateStackInput) GoString() string {
  8208  	return s.String()
  8209  }
  8210  
  8211  // Validate inspects the fields of the type to determine if they are valid.
  8212  func (s *CreateStackInput) Validate() error {
  8213  	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
  8214  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  8215  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  8216  	}
  8217  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
  8218  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
  8219  	}
  8220  	if s.StackName == nil {
  8221  		invalidParams.Add(request.NewErrParamRequired("StackName"))
  8222  	}
  8223  	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
  8224  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
  8225  	}
  8226  	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
  8227  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
  8228  	}
  8229  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
  8230  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
  8231  	}
  8232  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
  8233  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
  8234  	}
  8235  	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
  8236  		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
  8237  	}
  8238  	if s.RollbackConfiguration != nil {
  8239  		if err := s.RollbackConfiguration.Validate(); err != nil {
  8240  			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
  8241  		}
  8242  	}
  8243  	if s.Tags != nil {
  8244  		for i, v := range s.Tags {
  8245  			if v == nil {
  8246  				continue
  8247  			}
  8248  			if err := v.Validate(); err != nil {
  8249  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8250  			}
  8251  		}
  8252  	}
  8253  
  8254  	if invalidParams.Len() > 0 {
  8255  		return invalidParams
  8256  	}
  8257  	return nil
  8258  }
  8259  
  8260  // SetCapabilities sets the Capabilities field's value.
  8261  func (s *CreateStackInput) SetCapabilities(v []*string) *CreateStackInput {
  8262  	s.Capabilities = v
  8263  	return s
  8264  }
  8265  
  8266  // SetClientRequestToken sets the ClientRequestToken field's value.
  8267  func (s *CreateStackInput) SetClientRequestToken(v string) *CreateStackInput {
  8268  	s.ClientRequestToken = &v
  8269  	return s
  8270  }
  8271  
  8272  // SetDisableRollback sets the DisableRollback field's value.
  8273  func (s *CreateStackInput) SetDisableRollback(v bool) *CreateStackInput {
  8274  	s.DisableRollback = &v
  8275  	return s
  8276  }
  8277  
  8278  // SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
  8279  func (s *CreateStackInput) SetEnableTerminationProtection(v bool) *CreateStackInput {
  8280  	s.EnableTerminationProtection = &v
  8281  	return s
  8282  }
  8283  
  8284  // SetNotificationARNs sets the NotificationARNs field's value.
  8285  func (s *CreateStackInput) SetNotificationARNs(v []*string) *CreateStackInput {
  8286  	s.NotificationARNs = v
  8287  	return s
  8288  }
  8289  
  8290  // SetOnFailure sets the OnFailure field's value.
  8291  func (s *CreateStackInput) SetOnFailure(v string) *CreateStackInput {
  8292  	s.OnFailure = &v
  8293  	return s
  8294  }
  8295  
  8296  // SetParameters sets the Parameters field's value.
  8297  func (s *CreateStackInput) SetParameters(v []*Parameter) *CreateStackInput {
  8298  	s.Parameters = v
  8299  	return s
  8300  }
  8301  
  8302  // SetResourceTypes sets the ResourceTypes field's value.
  8303  func (s *CreateStackInput) SetResourceTypes(v []*string) *CreateStackInput {
  8304  	s.ResourceTypes = v
  8305  	return s
  8306  }
  8307  
  8308  // SetRoleARN sets the RoleARN field's value.
  8309  func (s *CreateStackInput) SetRoleARN(v string) *CreateStackInput {
  8310  	s.RoleARN = &v
  8311  	return s
  8312  }
  8313  
  8314  // SetRollbackConfiguration sets the RollbackConfiguration field's value.
  8315  func (s *CreateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *CreateStackInput {
  8316  	s.RollbackConfiguration = v
  8317  	return s
  8318  }
  8319  
  8320  // SetStackName sets the StackName field's value.
  8321  func (s *CreateStackInput) SetStackName(v string) *CreateStackInput {
  8322  	s.StackName = &v
  8323  	return s
  8324  }
  8325  
  8326  // SetStackPolicyBody sets the StackPolicyBody field's value.
  8327  func (s *CreateStackInput) SetStackPolicyBody(v string) *CreateStackInput {
  8328  	s.StackPolicyBody = &v
  8329  	return s
  8330  }
  8331  
  8332  // SetStackPolicyURL sets the StackPolicyURL field's value.
  8333  func (s *CreateStackInput) SetStackPolicyURL(v string) *CreateStackInput {
  8334  	s.StackPolicyURL = &v
  8335  	return s
  8336  }
  8337  
  8338  // SetTags sets the Tags field's value.
  8339  func (s *CreateStackInput) SetTags(v []*Tag) *CreateStackInput {
  8340  	s.Tags = v
  8341  	return s
  8342  }
  8343  
  8344  // SetTemplateBody sets the TemplateBody field's value.
  8345  func (s *CreateStackInput) SetTemplateBody(v string) *CreateStackInput {
  8346  	s.TemplateBody = &v
  8347  	return s
  8348  }
  8349  
  8350  // SetTemplateURL sets the TemplateURL field's value.
  8351  func (s *CreateStackInput) SetTemplateURL(v string) *CreateStackInput {
  8352  	s.TemplateURL = &v
  8353  	return s
  8354  }
  8355  
  8356  // SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
  8357  func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput {
  8358  	s.TimeoutInMinutes = &v
  8359  	return s
  8360  }
  8361  
  8362  type CreateStackInstancesInput struct {
  8363  	_ struct{} `type:"structure"`
  8364  
  8365  	// [Self-managed permissions] The names of one or more Amazon Web Services accounts
  8366  	// that you want to create stack instances in the specified Region(s) for.
  8367  	//
  8368  	// You can specify Accounts or DeploymentTargets, but not both.
  8369  	Accounts []*string `type:"list"`
  8370  
  8371  	// [Service-managed permissions] Specifies whether you are acting as an account
  8372  	// administrator in the organization's management account or as a delegated
  8373  	// administrator in a member account.
  8374  	//
  8375  	// By default, SELF is specified. Use SELF for stack sets with self-managed
  8376  	// permissions.
  8377  	//
  8378  	//    * If you are signed in to the management account, specify SELF.
  8379  	//
  8380  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
  8381  	//    Your Amazon Web Services account must be registered as a delegated administrator
  8382  	//    in the management account. For more information, see Register a delegated
  8383  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
  8384  	//    in the CloudFormation User Guide.
  8385  	CallAs *string `type:"string" enum:"CallAs"`
  8386  
  8387  	// [Service-managed permissions] The Organizations accounts for which to create
  8388  	// stack instances in the specified Regions.
  8389  	//
  8390  	// You can specify Accounts or DeploymentTargets, but not both.
  8391  	DeploymentTargets *DeploymentTargets `type:"structure"`
  8392  
  8393  	// The unique identifier for this stack set operation.
  8394  	//
  8395  	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
  8396  	// performs the stack set operation only once, even if you retry the request
  8397  	// multiple times. You might retry stack set operation requests to ensure that
  8398  	// CloudFormation successfully received them.
  8399  	//
  8400  	// If you don't specify an operation ID, the SDK generates one automatically.
  8401  	//
  8402  	// Repeating this stack set operation with a new operation ID retries all stack
  8403  	// instances whose status is OUTDATED.
  8404  	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
  8405  
  8406  	// Preferences for how CloudFormation performs this stack set operation.
  8407  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
  8408  
  8409  	// A list of stack set parameters whose values you want to override in the selected
  8410  	// stack instances.
  8411  	//
  8412  	// Any overridden parameter values will be applied to all stack instances in
  8413  	// the specified accounts and Regions. When specifying parameters and their
  8414  	// values, be aware of how CloudFormation sets parameter values during stack
  8415  	// instance operations:
  8416  	//
  8417  	//    * To override the current value for a parameter, include the parameter
  8418  	//    and specify its value.
  8419  	//
  8420  	//    * To leave an overridden parameter set to its present value, include the
  8421  	//    parameter and specify UsePreviousValue as true. (You cannot specify both
  8422  	//    a value and set UsePreviousValue to true.)
  8423  	//
  8424  	//    * To set an overridden parameter back to the value specified in the stack
  8425  	//    set, specify a parameter list but do not include the parameter in the
  8426  	//    list.
  8427  	//
  8428  	//    * To leave all parameters set to their present values, do not specify
  8429  	//    this property at all.
  8430  	//
  8431  	// During stack set updates, any parameter values overridden for a stack instance
  8432  	// are not updated, but retain their overridden value.
  8433  	//
  8434  	// You can only override the parameter values that are specified in the stack
  8435  	// set; to add or delete a parameter itself, use UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
  8436  	// to update the stack set template.
  8437  	ParameterOverrides []*Parameter `type:"list"`
  8438  
  8439  	// The names of one or more Regions where you want to create stack instances
  8440  	// using the specified Amazon Web Services accounts.
  8441  	//
  8442  	// Regions is a required field
  8443  	Regions []*string `type:"list" required:"true"`
  8444  
  8445  	// The name or unique ID of the stack set that you want to create stack instances
  8446  	// from.
  8447  	//
  8448  	// StackSetName is a required field
  8449  	StackSetName *string `type:"string" required:"true"`
  8450  }
  8451  
  8452  // String returns the string representation.
  8453  //
  8454  // API parameter values that are decorated as "sensitive" in the API will not
  8455  // be included in the string output. The member name will be present, but the
  8456  // value will be replaced with "sensitive".
  8457  func (s CreateStackInstancesInput) String() string {
  8458  	return awsutil.Prettify(s)
  8459  }
  8460  
  8461  // GoString returns the string representation.
  8462  //
  8463  // API parameter values that are decorated as "sensitive" in the API will not
  8464  // be included in the string output. The member name will be present, but the
  8465  // value will be replaced with "sensitive".
  8466  func (s CreateStackInstancesInput) GoString() string {
  8467  	return s.String()
  8468  }
  8469  
  8470  // Validate inspects the fields of the type to determine if they are valid.
  8471  func (s *CreateStackInstancesInput) Validate() error {
  8472  	invalidParams := request.ErrInvalidParams{Context: "CreateStackInstancesInput"}
  8473  	if s.OperationId != nil && len(*s.OperationId) < 1 {
  8474  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
  8475  	}
  8476  	if s.Regions == nil {
  8477  		invalidParams.Add(request.NewErrParamRequired("Regions"))
  8478  	}
  8479  	if s.StackSetName == nil {
  8480  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
  8481  	}
  8482  	if s.DeploymentTargets != nil {
  8483  		if err := s.DeploymentTargets.Validate(); err != nil {
  8484  			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
  8485  		}
  8486  	}
  8487  	if s.OperationPreferences != nil {
  8488  		if err := s.OperationPreferences.Validate(); err != nil {
  8489  			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
  8490  		}
  8491  	}
  8492  
  8493  	if invalidParams.Len() > 0 {
  8494  		return invalidParams
  8495  	}
  8496  	return nil
  8497  }
  8498  
  8499  // SetAccounts sets the Accounts field's value.
  8500  func (s *CreateStackInstancesInput) SetAccounts(v []*string) *CreateStackInstancesInput {
  8501  	s.Accounts = v
  8502  	return s
  8503  }
  8504  
  8505  // SetCallAs sets the CallAs field's value.
  8506  func (s *CreateStackInstancesInput) SetCallAs(v string) *CreateStackInstancesInput {
  8507  	s.CallAs = &v
  8508  	return s
  8509  }
  8510  
  8511  // SetDeploymentTargets sets the DeploymentTargets field's value.
  8512  func (s *CreateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *CreateStackInstancesInput {
  8513  	s.DeploymentTargets = v
  8514  	return s
  8515  }
  8516  
  8517  // SetOperationId sets the OperationId field's value.
  8518  func (s *CreateStackInstancesInput) SetOperationId(v string) *CreateStackInstancesInput {
  8519  	s.OperationId = &v
  8520  	return s
  8521  }
  8522  
  8523  // SetOperationPreferences sets the OperationPreferences field's value.
  8524  func (s *CreateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *CreateStackInstancesInput {
  8525  	s.OperationPreferences = v
  8526  	return s
  8527  }
  8528  
  8529  // SetParameterOverrides sets the ParameterOverrides field's value.
  8530  func (s *CreateStackInstancesInput) SetParameterOverrides(v []*Parameter) *CreateStackInstancesInput {
  8531  	s.ParameterOverrides = v
  8532  	return s
  8533  }
  8534  
  8535  // SetRegions sets the Regions field's value.
  8536  func (s *CreateStackInstancesInput) SetRegions(v []*string) *CreateStackInstancesInput {
  8537  	s.Regions = v
  8538  	return s
  8539  }
  8540  
  8541  // SetStackSetName sets the StackSetName field's value.
  8542  func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstancesInput {
  8543  	s.StackSetName = &v
  8544  	return s
  8545  }
  8546  
  8547  type CreateStackInstancesOutput struct {
  8548  	_ struct{} `type:"structure"`
  8549  
  8550  	// The unique identifier for this stack set operation.
  8551  	OperationId *string `min:"1" type:"string"`
  8552  }
  8553  
  8554  // String returns the string representation.
  8555  //
  8556  // API parameter values that are decorated as "sensitive" in the API will not
  8557  // be included in the string output. The member name will be present, but the
  8558  // value will be replaced with "sensitive".
  8559  func (s CreateStackInstancesOutput) String() string {
  8560  	return awsutil.Prettify(s)
  8561  }
  8562  
  8563  // GoString returns the string representation.
  8564  //
  8565  // API parameter values that are decorated as "sensitive" in the API will not
  8566  // be included in the string output. The member name will be present, but the
  8567  // value will be replaced with "sensitive".
  8568  func (s CreateStackInstancesOutput) GoString() string {
  8569  	return s.String()
  8570  }
  8571  
  8572  // SetOperationId sets the OperationId field's value.
  8573  func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstancesOutput {
  8574  	s.OperationId = &v
  8575  	return s
  8576  }
  8577  
  8578  // The output for a CreateStack action.
  8579  type CreateStackOutput struct {
  8580  	_ struct{} `type:"structure"`
  8581  
  8582  	// Unique identifier of the stack.
  8583  	StackId *string `type:"string"`
  8584  }
  8585  
  8586  // String returns the string representation.
  8587  //
  8588  // API parameter values that are decorated as "sensitive" in the API will not
  8589  // be included in the string output. The member name will be present, but the
  8590  // value will be replaced with "sensitive".
  8591  func (s CreateStackOutput) String() string {
  8592  	return awsutil.Prettify(s)
  8593  }
  8594  
  8595  // GoString returns the string representation.
  8596  //
  8597  // API parameter values that are decorated as "sensitive" in the API will not
  8598  // be included in the string output. The member name will be present, but the
  8599  // value will be replaced with "sensitive".
  8600  func (s CreateStackOutput) GoString() string {
  8601  	return s.String()
  8602  }
  8603  
  8604  // SetStackId sets the StackId field's value.
  8605  func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput {
  8606  	s.StackId = &v
  8607  	return s
  8608  }
  8609  
  8610  type CreateStackSetInput struct {
  8611  	_ struct{} `type:"structure"`
  8612  
  8613  	// The Amazon Resource Number (ARN) of the IAM role to use to create this stack
  8614  	// set.
  8615  	//
  8616  	// Specify an IAM role only if you are using customized administrator roles
  8617  	// to control which users or groups can manage specific stack sets within the
  8618  	// same administrator account. For more information, see Prerequisites: Granting
  8619  	// Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
  8620  	// in the CloudFormation User Guide.
  8621  	AdministrationRoleARN *string `min:"20" type:"string"`
  8622  
  8623  	// Describes whether StackSets automatically deploys to Organizations accounts
  8624  	// that are added to the target organization or organizational unit (OU). Specify
  8625  	// only if PermissionModel is SERVICE_MANAGED.
  8626  	AutoDeployment *AutoDeployment `type:"structure"`
  8627  
  8628  	// [Service-managed permissions] Specifies whether you are acting as an account
  8629  	// administrator in the organization's management account or as a delegated
  8630  	// administrator in a member account.
  8631  	//
  8632  	// By default, SELF is specified. Use SELF for stack sets with self-managed
  8633  	// permissions.
  8634  	//
  8635  	//    * To create a stack set with service-managed permissions while signed
  8636  	//    in to the management account, specify SELF.
  8637  	//
  8638  	//    * To create a stack set with service-managed permissions while signed
  8639  	//    in to a delegated administrator account, specify DELEGATED_ADMIN. Your
  8640  	//    Amazon Web Services account must be registered as a delegated admin in
  8641  	//    the management account. For more information, see Register a delegated
  8642  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
  8643  	//    in the CloudFormation User Guide.
  8644  	//
  8645  	// Stack sets with service-managed permissions are created in the management
  8646  	// account, including stack sets that are created by delegated administrators.
  8647  	CallAs *string `type:"string" enum:"CallAs"`
  8648  
  8649  	// In some cases, you must explicitly acknowledge that your stack set template
  8650  	// contains certain capabilities in order for CloudFormation to create the stack
  8651  	// set and related stack instances.
  8652  	//
  8653  	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
  8654  	//    resources that can affect permissions in your Amazon Web Services account;
  8655  	//    for example, by creating new Identity and Access Management (IAM) users.
  8656  	//    For those stack sets, you must explicitly acknowledge this by specifying
  8657  	//    one of these capabilities. The following IAM resources require you to
  8658  	//    specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.
  8659  	//    If you have IAM resources, you can specify either capability. If you have
  8660  	//    IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.
  8661  	//    If you don't specify either of these capabilities, CloudFormation returns
  8662  	//    an InsufficientCapabilities error. If your stack template contains these
  8663  	//    resources, we recommend that you review all permissions associated with
  8664  	//    them and edit their permissions if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
  8665  	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
  8666  	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
  8667  	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
  8668  	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
  8669  	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
  8670  	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
  8671  	//    For more information, see Acknowledging IAM Resources in CloudFormation
  8672  	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
  8673  	//
  8674  	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
  8675  	//    set template references one or more macros, you must create the stack
  8676  	//    set directly from the processed template, without first reviewing the
  8677  	//    resulting changes in a change set. To create the stack set directly, you
  8678  	//    must acknowledge this capability. For more information, see Using CloudFormation
  8679  	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
  8680  	//    Stack sets with service-managed permissions do not currently support the
  8681  	//    use of macros in templates. (This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
  8682  	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
  8683  	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
  8684  	//    this capability for a stack set with service-managed permissions, if you
  8685  	//    reference a macro in your template the stack set operation will fail.
  8686  	Capabilities []*string `type:"list"`
  8687  
  8688  	// A unique identifier for this CreateStackSet request. Specify this token if
  8689  	// you plan to retry requests so that CloudFormation knows that you're not attempting
  8690  	// to create another stack set with the same name. You might retry CreateStackSet
  8691  	// requests to ensure that CloudFormation successfully received them.
  8692  	//
  8693  	// If you don't specify an operation ID, the SDK generates one automatically.
  8694  	ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"`
  8695  
  8696  	// A description of the stack set. You can use the description to identify the
  8697  	// stack set's purpose or other important information.
  8698  	Description *string `min:"1" type:"string"`
  8699  
  8700  	// The name of the IAM execution role to use to create the stack set. If you
  8701  	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
  8702  	// role for the stack set operation.
  8703  	//
  8704  	// Specify an IAM role only if you are using customized execution roles to control
  8705  	// which stack resources users and groups can include in their stack sets.
  8706  	ExecutionRoleName *string `min:"1" type:"string"`
  8707  
  8708  	// The input parameters for the stack set template.
  8709  	Parameters []*Parameter `type:"list"`
  8710  
  8711  	// Describes how the IAM roles required for stack set operations are created.
  8712  	// By default, SELF-MANAGED is specified.
  8713  	//
  8714  	//    * With self-managed permissions, you must create the administrator and
  8715  	//    execution roles required to deploy to target accounts. For more information,
  8716  	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
  8717  	//
  8718  	//    * With service-managed permissions, StackSets automatically creates the
  8719  	//    IAM roles required to deploy to accounts managed by Organizations. For
  8720  	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
  8721  	PermissionModel *string `type:"string" enum:"PermissionModels"`
  8722  
  8723  	// The stack ID you are importing into a new stack set. Specify the Amazon Resource
  8724  	// Number (ARN) of the stack.
  8725  	StackId *string `type:"string"`
  8726  
  8727  	// The name to associate with the stack set. The name must be unique in the
  8728  	// Region where you create your stack set.
  8729  	//
  8730  	// A stack name can contain only alphanumeric characters (case-sensitive) and
  8731  	// hyphens. It must start with an alphabetic character and can't be longer than
  8732  	// 128 characters.
  8733  	//
  8734  	// StackSetName is a required field
  8735  	StackSetName *string `type:"string" required:"true"`
  8736  
  8737  	// The key-value pairs to associate with this stack set and the stacks created
  8738  	// from it. CloudFormation also propagates these tags to supported resources
  8739  	// that are created in the stacks. A maximum number of 50 tags can be specified.
  8740  	//
  8741  	// If you specify tags as part of a CreateStackSet action, CloudFormation checks
  8742  	// to see if you have the required IAM permission to tag resources. If you don't,
  8743  	// the entire CreateStackSet action fails with an access denied error, and the
  8744  	// stack set is not created.
  8745  	Tags []*Tag `type:"list"`
  8746  
  8747  	// The structure that contains the template body, with a minimum length of 1
  8748  	// byte and a maximum length of 51,200 bytes. For more information, see Template
  8749  	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
  8750  	// in the CloudFormation User Guide.
  8751  	//
  8752  	// Conditional: You must specify either the TemplateBody or the TemplateURL
  8753  	// parameter, but not both.
  8754  	TemplateBody *string `min:"1" type:"string"`
  8755  
  8756  	// The location of the file that contains the template body. The URL must point
  8757  	// to a template (maximum size: 460,800 bytes) that's located in an Amazon S3
  8758  	// bucket or a Systems Manager document. For more information, see Template
  8759  	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
  8760  	// in the CloudFormation User Guide.
  8761  	//
  8762  	// Conditional: You must specify either the TemplateBody or the TemplateURL
  8763  	// parameter, but not both.
  8764  	TemplateURL *string `min:"1" type:"string"`
  8765  }
  8766  
  8767  // String returns the string representation.
  8768  //
  8769  // API parameter values that are decorated as "sensitive" in the API will not
  8770  // be included in the string output. The member name will be present, but the
  8771  // value will be replaced with "sensitive".
  8772  func (s CreateStackSetInput) String() string {
  8773  	return awsutil.Prettify(s)
  8774  }
  8775  
  8776  // GoString returns the string representation.
  8777  //
  8778  // API parameter values that are decorated as "sensitive" in the API will not
  8779  // be included in the string output. The member name will be present, but the
  8780  // value will be replaced with "sensitive".
  8781  func (s CreateStackSetInput) GoString() string {
  8782  	return s.String()
  8783  }
  8784  
  8785  // Validate inspects the fields of the type to determine if they are valid.
  8786  func (s *CreateStackSetInput) Validate() error {
  8787  	invalidParams := request.ErrInvalidParams{Context: "CreateStackSetInput"}
  8788  	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
  8789  		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
  8790  	}
  8791  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  8792  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  8793  	}
  8794  	if s.Description != nil && len(*s.Description) < 1 {
  8795  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
  8796  	}
  8797  	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
  8798  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
  8799  	}
  8800  	if s.StackSetName == nil {
  8801  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
  8802  	}
  8803  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
  8804  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
  8805  	}
  8806  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
  8807  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
  8808  	}
  8809  	if s.Tags != nil {
  8810  		for i, v := range s.Tags {
  8811  			if v == nil {
  8812  				continue
  8813  			}
  8814  			if err := v.Validate(); err != nil {
  8815  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8816  			}
  8817  		}
  8818  	}
  8819  
  8820  	if invalidParams.Len() > 0 {
  8821  		return invalidParams
  8822  	}
  8823  	return nil
  8824  }
  8825  
  8826  // SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
  8827  func (s *CreateStackSetInput) SetAdministrationRoleARN(v string) *CreateStackSetInput {
  8828  	s.AdministrationRoleARN = &v
  8829  	return s
  8830  }
  8831  
  8832  // SetAutoDeployment sets the AutoDeployment field's value.
  8833  func (s *CreateStackSetInput) SetAutoDeployment(v *AutoDeployment) *CreateStackSetInput {
  8834  	s.AutoDeployment = v
  8835  	return s
  8836  }
  8837  
  8838  // SetCallAs sets the CallAs field's value.
  8839  func (s *CreateStackSetInput) SetCallAs(v string) *CreateStackSetInput {
  8840  	s.CallAs = &v
  8841  	return s
  8842  }
  8843  
  8844  // SetCapabilities sets the Capabilities field's value.
  8845  func (s *CreateStackSetInput) SetCapabilities(v []*string) *CreateStackSetInput {
  8846  	s.Capabilities = v
  8847  	return s
  8848  }
  8849  
  8850  // SetClientRequestToken sets the ClientRequestToken field's value.
  8851  func (s *CreateStackSetInput) SetClientRequestToken(v string) *CreateStackSetInput {
  8852  	s.ClientRequestToken = &v
  8853  	return s
  8854  }
  8855  
  8856  // SetDescription sets the Description field's value.
  8857  func (s *CreateStackSetInput) SetDescription(v string) *CreateStackSetInput {
  8858  	s.Description = &v
  8859  	return s
  8860  }
  8861  
  8862  // SetExecutionRoleName sets the ExecutionRoleName field's value.
  8863  func (s *CreateStackSetInput) SetExecutionRoleName(v string) *CreateStackSetInput {
  8864  	s.ExecutionRoleName = &v
  8865  	return s
  8866  }
  8867  
  8868  // SetParameters sets the Parameters field's value.
  8869  func (s *CreateStackSetInput) SetParameters(v []*Parameter) *CreateStackSetInput {
  8870  	s.Parameters = v
  8871  	return s
  8872  }
  8873  
  8874  // SetPermissionModel sets the PermissionModel field's value.
  8875  func (s *CreateStackSetInput) SetPermissionModel(v string) *CreateStackSetInput {
  8876  	s.PermissionModel = &v
  8877  	return s
  8878  }
  8879  
  8880  // SetStackId sets the StackId field's value.
  8881  func (s *CreateStackSetInput) SetStackId(v string) *CreateStackSetInput {
  8882  	s.StackId = &v
  8883  	return s
  8884  }
  8885  
  8886  // SetStackSetName sets the StackSetName field's value.
  8887  func (s *CreateStackSetInput) SetStackSetName(v string) *CreateStackSetInput {
  8888  	s.StackSetName = &v
  8889  	return s
  8890  }
  8891  
  8892  // SetTags sets the Tags field's value.
  8893  func (s *CreateStackSetInput) SetTags(v []*Tag) *CreateStackSetInput {
  8894  	s.Tags = v
  8895  	return s
  8896  }
  8897  
  8898  // SetTemplateBody sets the TemplateBody field's value.
  8899  func (s *CreateStackSetInput) SetTemplateBody(v string) *CreateStackSetInput {
  8900  	s.TemplateBody = &v
  8901  	return s
  8902  }
  8903  
  8904  // SetTemplateURL sets the TemplateURL field's value.
  8905  func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput {
  8906  	s.TemplateURL = &v
  8907  	return s
  8908  }
  8909  
  8910  type CreateStackSetOutput struct {
  8911  	_ struct{} `type:"structure"`
  8912  
  8913  	// The ID of the stack set that you're creating.
  8914  	StackSetId *string `type:"string"`
  8915  }
  8916  
  8917  // String returns the string representation.
  8918  //
  8919  // API parameter values that are decorated as "sensitive" in the API will not
  8920  // be included in the string output. The member name will be present, but the
  8921  // value will be replaced with "sensitive".
  8922  func (s CreateStackSetOutput) String() string {
  8923  	return awsutil.Prettify(s)
  8924  }
  8925  
  8926  // GoString returns the string representation.
  8927  //
  8928  // API parameter values that are decorated as "sensitive" in the API will not
  8929  // be included in the string output. The member name will be present, but the
  8930  // value will be replaced with "sensitive".
  8931  func (s CreateStackSetOutput) GoString() string {
  8932  	return s.String()
  8933  }
  8934  
  8935  // SetStackSetId sets the StackSetId field's value.
  8936  func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput {
  8937  	s.StackSetId = &v
  8938  	return s
  8939  }
  8940  
  8941  type DeactivateTypeInput struct {
  8942  	_ struct{} `type:"structure"`
  8943  
  8944  	// The Amazon Resource Name (ARN) for the extension, in this account and region.
  8945  	//
  8946  	// Conditional: You must specify either Arn, or TypeName and Type.
  8947  	Arn *string `type:"string"`
  8948  
  8949  	// The extension type.
  8950  	//
  8951  	// Conditional: You must specify either Arn, or TypeName and Type.
  8952  	Type *string `type:"string" enum:"ThirdPartyType"`
  8953  
  8954  	// The type name of the extension, in this account and region. If you specified
  8955  	// a type name alias when enabling the extension, use the type name alias.
  8956  	//
  8957  	// Conditional: You must specify either Arn, or TypeName and Type.
  8958  	TypeName *string `min:"10" type:"string"`
  8959  }
  8960  
  8961  // String returns the string representation.
  8962  //
  8963  // API parameter values that are decorated as "sensitive" in the API will not
  8964  // be included in the string output. The member name will be present, but the
  8965  // value will be replaced with "sensitive".
  8966  func (s DeactivateTypeInput) String() string {
  8967  	return awsutil.Prettify(s)
  8968  }
  8969  
  8970  // GoString returns the string representation.
  8971  //
  8972  // API parameter values that are decorated as "sensitive" in the API will not
  8973  // be included in the string output. The member name will be present, but the
  8974  // value will be replaced with "sensitive".
  8975  func (s DeactivateTypeInput) GoString() string {
  8976  	return s.String()
  8977  }
  8978  
  8979  // Validate inspects the fields of the type to determine if they are valid.
  8980  func (s *DeactivateTypeInput) Validate() error {
  8981  	invalidParams := request.ErrInvalidParams{Context: "DeactivateTypeInput"}
  8982  	if s.TypeName != nil && len(*s.TypeName) < 10 {
  8983  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
  8984  	}
  8985  
  8986  	if invalidParams.Len() > 0 {
  8987  		return invalidParams
  8988  	}
  8989  	return nil
  8990  }
  8991  
  8992  // SetArn sets the Arn field's value.
  8993  func (s *DeactivateTypeInput) SetArn(v string) *DeactivateTypeInput {
  8994  	s.Arn = &v
  8995  	return s
  8996  }
  8997  
  8998  // SetType sets the Type field's value.
  8999  func (s *DeactivateTypeInput) SetType(v string) *DeactivateTypeInput {
  9000  	s.Type = &v
  9001  	return s
  9002  }
  9003  
  9004  // SetTypeName sets the TypeName field's value.
  9005  func (s *DeactivateTypeInput) SetTypeName(v string) *DeactivateTypeInput {
  9006  	s.TypeName = &v
  9007  	return s
  9008  }
  9009  
  9010  type DeactivateTypeOutput struct {
  9011  	_ struct{} `type:"structure"`
  9012  }
  9013  
  9014  // String returns the string representation.
  9015  //
  9016  // API parameter values that are decorated as "sensitive" in the API will not
  9017  // be included in the string output. The member name will be present, but the
  9018  // value will be replaced with "sensitive".
  9019  func (s DeactivateTypeOutput) String() string {
  9020  	return awsutil.Prettify(s)
  9021  }
  9022  
  9023  // GoString returns the string representation.
  9024  //
  9025  // API parameter values that are decorated as "sensitive" in the API will not
  9026  // be included in the string output. The member name will be present, but the
  9027  // value will be replaced with "sensitive".
  9028  func (s DeactivateTypeOutput) GoString() string {
  9029  	return s.String()
  9030  }
  9031  
  9032  // The input for the DeleteChangeSet action.
  9033  type DeleteChangeSetInput struct {
  9034  	_ struct{} `type:"structure"`
  9035  
  9036  	// The name or Amazon Resource Name (ARN) of the change set that you want to
  9037  	// delete.
  9038  	//
  9039  	// ChangeSetName is a required field
  9040  	ChangeSetName *string `min:"1" type:"string" required:"true"`
  9041  
  9042  	// If you specified the name of a change set to delete, specify the stack name
  9043  	// or ID (ARN) that is associated with it.
  9044  	StackName *string `min:"1" type:"string"`
  9045  }
  9046  
  9047  // String returns the string representation.
  9048  //
  9049  // API parameter values that are decorated as "sensitive" in the API will not
  9050  // be included in the string output. The member name will be present, but the
  9051  // value will be replaced with "sensitive".
  9052  func (s DeleteChangeSetInput) String() string {
  9053  	return awsutil.Prettify(s)
  9054  }
  9055  
  9056  // GoString returns the string representation.
  9057  //
  9058  // API parameter values that are decorated as "sensitive" in the API will not
  9059  // be included in the string output. The member name will be present, but the
  9060  // value will be replaced with "sensitive".
  9061  func (s DeleteChangeSetInput) GoString() string {
  9062  	return s.String()
  9063  }
  9064  
  9065  // Validate inspects the fields of the type to determine if they are valid.
  9066  func (s *DeleteChangeSetInput) Validate() error {
  9067  	invalidParams := request.ErrInvalidParams{Context: "DeleteChangeSetInput"}
  9068  	if s.ChangeSetName == nil {
  9069  		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
  9070  	}
  9071  	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
  9072  		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
  9073  	}
  9074  	if s.StackName != nil && len(*s.StackName) < 1 {
  9075  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
  9076  	}
  9077  
  9078  	if invalidParams.Len() > 0 {
  9079  		return invalidParams
  9080  	}
  9081  	return nil
  9082  }
  9083  
  9084  // SetChangeSetName sets the ChangeSetName field's value.
  9085  func (s *DeleteChangeSetInput) SetChangeSetName(v string) *DeleteChangeSetInput {
  9086  	s.ChangeSetName = &v
  9087  	return s
  9088  }
  9089  
  9090  // SetStackName sets the StackName field's value.
  9091  func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput {
  9092  	s.StackName = &v
  9093  	return s
  9094  }
  9095  
  9096  // The output for the DeleteChangeSet action.
  9097  type DeleteChangeSetOutput struct {
  9098  	_ struct{} `type:"structure"`
  9099  }
  9100  
  9101  // String returns the string representation.
  9102  //
  9103  // API parameter values that are decorated as "sensitive" in the API will not
  9104  // be included in the string output. The member name will be present, but the
  9105  // value will be replaced with "sensitive".
  9106  func (s DeleteChangeSetOutput) String() string {
  9107  	return awsutil.Prettify(s)
  9108  }
  9109  
  9110  // GoString returns the string representation.
  9111  //
  9112  // API parameter values that are decorated as "sensitive" in the API will not
  9113  // be included in the string output. The member name will be present, but the
  9114  // value will be replaced with "sensitive".
  9115  func (s DeleteChangeSetOutput) GoString() string {
  9116  	return s.String()
  9117  }
  9118  
  9119  // The input for DeleteStack action.
  9120  type DeleteStackInput struct {
  9121  	_ struct{} `type:"structure"`
  9122  
  9123  	// A unique identifier for this DeleteStack request. Specify this token if you
  9124  	// plan to retry requests so that CloudFormation knows that you're not attempting
  9125  	// to delete a stack with the same name. You might retry DeleteStack requests
  9126  	// to ensure that CloudFormation successfully received them.
  9127  	//
  9128  	// All events triggered by a given stack operation are assigned the same client
  9129  	// request token, which you can use to track operations. For example, if you
  9130  	// execute a CreateStack operation with the token token1, then all the StackEvents
  9131  	// generated by that operation will have ClientRequestToken set as token1.
  9132  	//
  9133  	// In the console, stack operations display the client request token on the
  9134  	// Events tab. Stack operations that are initiated from the console use the
  9135  	// token format Console-StackOperation-ID, which helps you easily identify the
  9136  	// stack operation . For example, if you create a stack using the console, each
  9137  	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
  9138  	ClientRequestToken *string `min:"1" type:"string"`
  9139  
  9140  	// For stacks in the DELETE_FAILED state, a list of resource logical IDs that
  9141  	// are associated with the resources you want to retain. During deletion, CloudFormation
  9142  	// deletes the stack but does not delete the retained resources.
  9143  	//
  9144  	// Retaining resources is useful when you cannot delete a resource, such as
  9145  	// a non-empty S3 bucket, but you want to delete the stack.
  9146  	RetainResources []*string `type:"list"`
  9147  
  9148  	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
  9149  	// role that CloudFormation assumes to delete the stack. CloudFormation uses
  9150  	// the role's credentials to make calls on your behalf.
  9151  	//
  9152  	// If you don't specify a value, CloudFormation uses the role that was previously
  9153  	// associated with the stack. If no role is available, CloudFormation uses a
  9154  	// temporary session that is generated from your user credentials.
  9155  	RoleARN *string `min:"20" type:"string"`
  9156  
  9157  	// The name or the unique stack ID that is associated with the stack.
  9158  	//
  9159  	// StackName is a required field
  9160  	StackName *string `type:"string" required:"true"`
  9161  }
  9162  
  9163  // String returns the string representation.
  9164  //
  9165  // API parameter values that are decorated as "sensitive" in the API will not
  9166  // be included in the string output. The member name will be present, but the
  9167  // value will be replaced with "sensitive".
  9168  func (s DeleteStackInput) String() string {
  9169  	return awsutil.Prettify(s)
  9170  }
  9171  
  9172  // GoString returns the string representation.
  9173  //
  9174  // API parameter values that are decorated as "sensitive" in the API will not
  9175  // be included in the string output. The member name will be present, but the
  9176  // value will be replaced with "sensitive".
  9177  func (s DeleteStackInput) GoString() string {
  9178  	return s.String()
  9179  }
  9180  
  9181  // Validate inspects the fields of the type to determine if they are valid.
  9182  func (s *DeleteStackInput) Validate() error {
  9183  	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
  9184  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  9185  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  9186  	}
  9187  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
  9188  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
  9189  	}
  9190  	if s.StackName == nil {
  9191  		invalidParams.Add(request.NewErrParamRequired("StackName"))
  9192  	}
  9193  
  9194  	if invalidParams.Len() > 0 {
  9195  		return invalidParams
  9196  	}
  9197  	return nil
  9198  }
  9199  
  9200  // SetClientRequestToken sets the ClientRequestToken field's value.
  9201  func (s *DeleteStackInput) SetClientRequestToken(v string) *DeleteStackInput {
  9202  	s.ClientRequestToken = &v
  9203  	return s
  9204  }
  9205  
  9206  // SetRetainResources sets the RetainResources field's value.
  9207  func (s *DeleteStackInput) SetRetainResources(v []*string) *DeleteStackInput {
  9208  	s.RetainResources = v
  9209  	return s
  9210  }
  9211  
  9212  // SetRoleARN sets the RoleARN field's value.
  9213  func (s *DeleteStackInput) SetRoleARN(v string) *DeleteStackInput {
  9214  	s.RoleARN = &v
  9215  	return s
  9216  }
  9217  
  9218  // SetStackName sets the StackName field's value.
  9219  func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput {
  9220  	s.StackName = &v
  9221  	return s
  9222  }
  9223  
  9224  type DeleteStackInstancesInput struct {
  9225  	_ struct{} `type:"structure"`
  9226  
  9227  	// [Self-managed permissions] The names of the Amazon Web Services accounts
  9228  	// that you want to delete stack instances for.
  9229  	//
  9230  	// You can specify Accounts or DeploymentTargets, but not both.
  9231  	Accounts []*string `type:"list"`
  9232  
  9233  	// [Service-managed permissions] Specifies whether you are acting as an account
  9234  	// administrator in the organization's management account or as a delegated
  9235  	// administrator in a member account.
  9236  	//
  9237  	// By default, SELF is specified. Use SELF for stack sets with self-managed
  9238  	// permissions.
  9239  	//
  9240  	//    * If you are signed in to the management account, specify SELF.
  9241  	//
  9242  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
  9243  	//    Your Amazon Web Services account must be registered as a delegated administrator
  9244  	//    in the management account. For more information, see Register a delegated
  9245  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
  9246  	//    in the CloudFormation User Guide.
  9247  	CallAs *string `type:"string" enum:"CallAs"`
  9248  
  9249  	// [Service-managed permissions] The Organizations accounts from which to delete
  9250  	// stack instances.
  9251  	//
  9252  	// You can specify Accounts or DeploymentTargets, but not both.
  9253  	DeploymentTargets *DeploymentTargets `type:"structure"`
  9254  
  9255  	// The unique identifier for this stack set operation.
  9256  	//
  9257  	// If you don't specify an operation ID, the SDK generates one automatically.
  9258  	//
  9259  	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
  9260  	// performs the stack set operation only once, even if you retry the request
  9261  	// multiple times. You can retry stack set operation requests to ensure that
  9262  	// CloudFormation successfully received them.
  9263  	//
  9264  	// Repeating this stack set operation with a new operation ID retries all stack
  9265  	// instances whose status is OUTDATED.
  9266  	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
  9267  
  9268  	// Preferences for how CloudFormation performs this stack set operation.
  9269  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
  9270  
  9271  	// The Regions where you want to delete stack set instances.
  9272  	//
  9273  	// Regions is a required field
  9274  	Regions []*string `type:"list" required:"true"`
  9275  
  9276  	// Removes the stack instances from the specified stack set, but doesn't delete
  9277  	// the stacks. You can't reassociate a retained stack or add an existing, saved
  9278  	// stack to a new stack set.
  9279  	//
  9280  	// For more information, see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
  9281  	//
  9282  	// RetainStacks is a required field
  9283  	RetainStacks *bool `type:"boolean" required:"true"`
  9284  
  9285  	// The name or unique ID of the stack set that you want to delete stack instances
  9286  	// for.
  9287  	//
  9288  	// StackSetName is a required field
  9289  	StackSetName *string `type:"string" required:"true"`
  9290  }
  9291  
  9292  // String returns the string representation.
  9293  //
  9294  // API parameter values that are decorated as "sensitive" in the API will not
  9295  // be included in the string output. The member name will be present, but the
  9296  // value will be replaced with "sensitive".
  9297  func (s DeleteStackInstancesInput) String() string {
  9298  	return awsutil.Prettify(s)
  9299  }
  9300  
  9301  // GoString returns the string representation.
  9302  //
  9303  // API parameter values that are decorated as "sensitive" in the API will not
  9304  // be included in the string output. The member name will be present, but the
  9305  // value will be replaced with "sensitive".
  9306  func (s DeleteStackInstancesInput) GoString() string {
  9307  	return s.String()
  9308  }
  9309  
  9310  // Validate inspects the fields of the type to determine if they are valid.
  9311  func (s *DeleteStackInstancesInput) Validate() error {
  9312  	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInstancesInput"}
  9313  	if s.OperationId != nil && len(*s.OperationId) < 1 {
  9314  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
  9315  	}
  9316  	if s.Regions == nil {
  9317  		invalidParams.Add(request.NewErrParamRequired("Regions"))
  9318  	}
  9319  	if s.RetainStacks == nil {
  9320  		invalidParams.Add(request.NewErrParamRequired("RetainStacks"))
  9321  	}
  9322  	if s.StackSetName == nil {
  9323  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
  9324  	}
  9325  	if s.DeploymentTargets != nil {
  9326  		if err := s.DeploymentTargets.Validate(); err != nil {
  9327  			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
  9328  		}
  9329  	}
  9330  	if s.OperationPreferences != nil {
  9331  		if err := s.OperationPreferences.Validate(); err != nil {
  9332  			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
  9333  		}
  9334  	}
  9335  
  9336  	if invalidParams.Len() > 0 {
  9337  		return invalidParams
  9338  	}
  9339  	return nil
  9340  }
  9341  
  9342  // SetAccounts sets the Accounts field's value.
  9343  func (s *DeleteStackInstancesInput) SetAccounts(v []*string) *DeleteStackInstancesInput {
  9344  	s.Accounts = v
  9345  	return s
  9346  }
  9347  
  9348  // SetCallAs sets the CallAs field's value.
  9349  func (s *DeleteStackInstancesInput) SetCallAs(v string) *DeleteStackInstancesInput {
  9350  	s.CallAs = &v
  9351  	return s
  9352  }
  9353  
  9354  // SetDeploymentTargets sets the DeploymentTargets field's value.
  9355  func (s *DeleteStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *DeleteStackInstancesInput {
  9356  	s.DeploymentTargets = v
  9357  	return s
  9358  }
  9359  
  9360  // SetOperationId sets the OperationId field's value.
  9361  func (s *DeleteStackInstancesInput) SetOperationId(v string) *DeleteStackInstancesInput {
  9362  	s.OperationId = &v
  9363  	return s
  9364  }
  9365  
  9366  // SetOperationPreferences sets the OperationPreferences field's value.
  9367  func (s *DeleteStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *DeleteStackInstancesInput {
  9368  	s.OperationPreferences = v
  9369  	return s
  9370  }
  9371  
  9372  // SetRegions sets the Regions field's value.
  9373  func (s *DeleteStackInstancesInput) SetRegions(v []*string) *DeleteStackInstancesInput {
  9374  	s.Regions = v
  9375  	return s
  9376  }
  9377  
  9378  // SetRetainStacks sets the RetainStacks field's value.
  9379  func (s *DeleteStackInstancesInput) SetRetainStacks(v bool) *DeleteStackInstancesInput {
  9380  	s.RetainStacks = &v
  9381  	return s
  9382  }
  9383  
  9384  // SetStackSetName sets the StackSetName field's value.
  9385  func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstancesInput {
  9386  	s.StackSetName = &v
  9387  	return s
  9388  }
  9389  
  9390  type DeleteStackInstancesOutput struct {
  9391  	_ struct{} `type:"structure"`
  9392  
  9393  	// The unique identifier for this stack set operation.
  9394  	OperationId *string `min:"1" type:"string"`
  9395  }
  9396  
  9397  // String returns the string representation.
  9398  //
  9399  // API parameter values that are decorated as "sensitive" in the API will not
  9400  // be included in the string output. The member name will be present, but the
  9401  // value will be replaced with "sensitive".
  9402  func (s DeleteStackInstancesOutput) String() string {
  9403  	return awsutil.Prettify(s)
  9404  }
  9405  
  9406  // GoString returns the string representation.
  9407  //
  9408  // API parameter values that are decorated as "sensitive" in the API will not
  9409  // be included in the string output. The member name will be present, but the
  9410  // value will be replaced with "sensitive".
  9411  func (s DeleteStackInstancesOutput) GoString() string {
  9412  	return s.String()
  9413  }
  9414  
  9415  // SetOperationId sets the OperationId field's value.
  9416  func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstancesOutput {
  9417  	s.OperationId = &v
  9418  	return s
  9419  }
  9420  
  9421  type DeleteStackOutput struct {
  9422  	_ struct{} `type:"structure"`
  9423  }
  9424  
  9425  // String returns the string representation.
  9426  //
  9427  // API parameter values that are decorated as "sensitive" in the API will not
  9428  // be included in the string output. The member name will be present, but the
  9429  // value will be replaced with "sensitive".
  9430  func (s DeleteStackOutput) String() string {
  9431  	return awsutil.Prettify(s)
  9432  }
  9433  
  9434  // GoString returns the string representation.
  9435  //
  9436  // API parameter values that are decorated as "sensitive" in the API will not
  9437  // be included in the string output. The member name will be present, but the
  9438  // value will be replaced with "sensitive".
  9439  func (s DeleteStackOutput) GoString() string {
  9440  	return s.String()
  9441  }
  9442  
  9443  type DeleteStackSetInput struct {
  9444  	_ struct{} `type:"structure"`
  9445  
  9446  	// [Service-managed permissions] Specifies whether you are acting as an account
  9447  	// administrator in the organization's management account or as a delegated
  9448  	// administrator in a member account.
  9449  	//
  9450  	// By default, SELF is specified. Use SELF for stack sets with self-managed
  9451  	// permissions.
  9452  	//
  9453  	//    * If you are signed in to the management account, specify SELF.
  9454  	//
  9455  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
  9456  	//    Your Amazon Web Services account must be registered as a delegated administrator
  9457  	//    in the management account. For more information, see Register a delegated
  9458  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
  9459  	//    in the CloudFormation User Guide.
  9460  	CallAs *string `type:"string" enum:"CallAs"`
  9461  
  9462  	// The name or unique ID of the stack set that you're deleting. You can obtain
  9463  	// this value by running ListStackSets.
  9464  	//
  9465  	// StackSetName is a required field
  9466  	StackSetName *string `type:"string" required:"true"`
  9467  }
  9468  
  9469  // String returns the string representation.
  9470  //
  9471  // API parameter values that are decorated as "sensitive" in the API will not
  9472  // be included in the string output. The member name will be present, but the
  9473  // value will be replaced with "sensitive".
  9474  func (s DeleteStackSetInput) String() string {
  9475  	return awsutil.Prettify(s)
  9476  }
  9477  
  9478  // GoString returns the string representation.
  9479  //
  9480  // API parameter values that are decorated as "sensitive" in the API will not
  9481  // be included in the string output. The member name will be present, but the
  9482  // value will be replaced with "sensitive".
  9483  func (s DeleteStackSetInput) GoString() string {
  9484  	return s.String()
  9485  }
  9486  
  9487  // Validate inspects the fields of the type to determine if they are valid.
  9488  func (s *DeleteStackSetInput) Validate() error {
  9489  	invalidParams := request.ErrInvalidParams{Context: "DeleteStackSetInput"}
  9490  	if s.StackSetName == nil {
  9491  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
  9492  	}
  9493  
  9494  	if invalidParams.Len() > 0 {
  9495  		return invalidParams
  9496  	}
  9497  	return nil
  9498  }
  9499  
  9500  // SetCallAs sets the CallAs field's value.
  9501  func (s *DeleteStackSetInput) SetCallAs(v string) *DeleteStackSetInput {
  9502  	s.CallAs = &v
  9503  	return s
  9504  }
  9505  
  9506  // SetStackSetName sets the StackSetName field's value.
  9507  func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput {
  9508  	s.StackSetName = &v
  9509  	return s
  9510  }
  9511  
  9512  type DeleteStackSetOutput struct {
  9513  	_ struct{} `type:"structure"`
  9514  }
  9515  
  9516  // String returns the string representation.
  9517  //
  9518  // API parameter values that are decorated as "sensitive" in the API will not
  9519  // be included in the string output. The member name will be present, but the
  9520  // value will be replaced with "sensitive".
  9521  func (s DeleteStackSetOutput) String() string {
  9522  	return awsutil.Prettify(s)
  9523  }
  9524  
  9525  // GoString returns the string representation.
  9526  //
  9527  // API parameter values that are decorated as "sensitive" in the API will not
  9528  // be included in the string output. The member name will be present, but the
  9529  // value will be replaced with "sensitive".
  9530  func (s DeleteStackSetOutput) GoString() string {
  9531  	return s.String()
  9532  }
  9533  
  9534  // [Service-managed permissions] The Organizations accounts to which StackSets
  9535  // deploys. StackSets does not deploy stack instances to the organization management
  9536  // account, even if the organization management account is in your organization
  9537  // or in an OU in your organization.
  9538  //
  9539  // For update operations, you can specify either Accounts or OrganizationalUnitIds.
  9540  // For create and delete operations, specify OrganizationalUnitIds.
  9541  type DeploymentTargets struct {
  9542  	_ struct{} `type:"structure"`
  9543  
  9544  	// The names of one or more Amazon Web Services accounts for which you want
  9545  	// to deploy stack set updates.
  9546  	Accounts []*string `type:"list"`
  9547  
  9548  	// Returns the value of the AccountsUrl property.
  9549  	AccountsUrl *string `min:"1" type:"string"`
  9550  
  9551  	// The organization root ID or organizational unit (OU) IDs to which StackSets
  9552  	// deploys.
  9553  	OrganizationalUnitIds []*string `type:"list"`
  9554  }
  9555  
  9556  // String returns the string representation.
  9557  //
  9558  // API parameter values that are decorated as "sensitive" in the API will not
  9559  // be included in the string output. The member name will be present, but the
  9560  // value will be replaced with "sensitive".
  9561  func (s DeploymentTargets) String() string {
  9562  	return awsutil.Prettify(s)
  9563  }
  9564  
  9565  // GoString returns the string representation.
  9566  //
  9567  // API parameter values that are decorated as "sensitive" in the API will not
  9568  // be included in the string output. The member name will be present, but the
  9569  // value will be replaced with "sensitive".
  9570  func (s DeploymentTargets) GoString() string {
  9571  	return s.String()
  9572  }
  9573  
  9574  // Validate inspects the fields of the type to determine if they are valid.
  9575  func (s *DeploymentTargets) Validate() error {
  9576  	invalidParams := request.ErrInvalidParams{Context: "DeploymentTargets"}
  9577  	if s.AccountsUrl != nil && len(*s.AccountsUrl) < 1 {
  9578  		invalidParams.Add(request.NewErrParamMinLen("AccountsUrl", 1))
  9579  	}
  9580  
  9581  	if invalidParams.Len() > 0 {
  9582  		return invalidParams
  9583  	}
  9584  	return nil
  9585  }
  9586  
  9587  // SetAccounts sets the Accounts field's value.
  9588  func (s *DeploymentTargets) SetAccounts(v []*string) *DeploymentTargets {
  9589  	s.Accounts = v
  9590  	return s
  9591  }
  9592  
  9593  // SetAccountsUrl sets the AccountsUrl field's value.
  9594  func (s *DeploymentTargets) SetAccountsUrl(v string) *DeploymentTargets {
  9595  	s.AccountsUrl = &v
  9596  	return s
  9597  }
  9598  
  9599  // SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
  9600  func (s *DeploymentTargets) SetOrganizationalUnitIds(v []*string) *DeploymentTargets {
  9601  	s.OrganizationalUnitIds = v
  9602  	return s
  9603  }
  9604  
  9605  type DeregisterTypeInput struct {
  9606  	_ struct{} `type:"structure"`
  9607  
  9608  	// The Amazon Resource Name (ARN) of the extension.
  9609  	//
  9610  	// Conditional: You must specify either TypeName and Type, or Arn.
  9611  	Arn *string `type:"string"`
  9612  
  9613  	// The kind of extension.
  9614  	//
  9615  	// Conditional: You must specify either TypeName and Type, or Arn.
  9616  	Type *string `type:"string" enum:"RegistryType"`
  9617  
  9618  	// The name of the extension.
  9619  	//
  9620  	// Conditional: You must specify either TypeName and Type, or Arn.
  9621  	TypeName *string `min:"10" type:"string"`
  9622  
  9623  	// The ID of a specific version of the extension. The version ID is the value
  9624  	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
  9625  	// when it is registered.
  9626  	VersionId *string `min:"1" type:"string"`
  9627  }
  9628  
  9629  // String returns the string representation.
  9630  //
  9631  // API parameter values that are decorated as "sensitive" in the API will not
  9632  // be included in the string output. The member name will be present, but the
  9633  // value will be replaced with "sensitive".
  9634  func (s DeregisterTypeInput) String() string {
  9635  	return awsutil.Prettify(s)
  9636  }
  9637  
  9638  // GoString returns the string representation.
  9639  //
  9640  // API parameter values that are decorated as "sensitive" in the API will not
  9641  // be included in the string output. The member name will be present, but the
  9642  // value will be replaced with "sensitive".
  9643  func (s DeregisterTypeInput) GoString() string {
  9644  	return s.String()
  9645  }
  9646  
  9647  // Validate inspects the fields of the type to determine if they are valid.
  9648  func (s *DeregisterTypeInput) Validate() error {
  9649  	invalidParams := request.ErrInvalidParams{Context: "DeregisterTypeInput"}
  9650  	if s.TypeName != nil && len(*s.TypeName) < 10 {
  9651  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
  9652  	}
  9653  	if s.VersionId != nil && len(*s.VersionId) < 1 {
  9654  		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
  9655  	}
  9656  
  9657  	if invalidParams.Len() > 0 {
  9658  		return invalidParams
  9659  	}
  9660  	return nil
  9661  }
  9662  
  9663  // SetArn sets the Arn field's value.
  9664  func (s *DeregisterTypeInput) SetArn(v string) *DeregisterTypeInput {
  9665  	s.Arn = &v
  9666  	return s
  9667  }
  9668  
  9669  // SetType sets the Type field's value.
  9670  func (s *DeregisterTypeInput) SetType(v string) *DeregisterTypeInput {
  9671  	s.Type = &v
  9672  	return s
  9673  }
  9674  
  9675  // SetTypeName sets the TypeName field's value.
  9676  func (s *DeregisterTypeInput) SetTypeName(v string) *DeregisterTypeInput {
  9677  	s.TypeName = &v
  9678  	return s
  9679  }
  9680  
  9681  // SetVersionId sets the VersionId field's value.
  9682  func (s *DeregisterTypeInput) SetVersionId(v string) *DeregisterTypeInput {
  9683  	s.VersionId = &v
  9684  	return s
  9685  }
  9686  
  9687  type DeregisterTypeOutput struct {
  9688  	_ struct{} `type:"structure"`
  9689  }
  9690  
  9691  // String returns the string representation.
  9692  //
  9693  // API parameter values that are decorated as "sensitive" in the API will not
  9694  // be included in the string output. The member name will be present, but the
  9695  // value will be replaced with "sensitive".
  9696  func (s DeregisterTypeOutput) String() string {
  9697  	return awsutil.Prettify(s)
  9698  }
  9699  
  9700  // GoString returns the string representation.
  9701  //
  9702  // API parameter values that are decorated as "sensitive" in the API will not
  9703  // be included in the string output. The member name will be present, but the
  9704  // value will be replaced with "sensitive".
  9705  func (s DeregisterTypeOutput) GoString() string {
  9706  	return s.String()
  9707  }
  9708  
  9709  // The input for the DescribeAccountLimits action.
  9710  type DescribeAccountLimitsInput struct {
  9711  	_ struct{} `type:"structure"`
  9712  
  9713  	// A string that identifies the next page of limits that you want to retrieve.
  9714  	NextToken *string `min:"1" type:"string"`
  9715  }
  9716  
  9717  // String returns the string representation.
  9718  //
  9719  // API parameter values that are decorated as "sensitive" in the API will not
  9720  // be included in the string output. The member name will be present, but the
  9721  // value will be replaced with "sensitive".
  9722  func (s DescribeAccountLimitsInput) String() string {
  9723  	return awsutil.Prettify(s)
  9724  }
  9725  
  9726  // GoString returns the string representation.
  9727  //
  9728  // API parameter values that are decorated as "sensitive" in the API will not
  9729  // be included in the string output. The member name will be present, but the
  9730  // value will be replaced with "sensitive".
  9731  func (s DescribeAccountLimitsInput) GoString() string {
  9732  	return s.String()
  9733  }
  9734  
  9735  // Validate inspects the fields of the type to determine if they are valid.
  9736  func (s *DescribeAccountLimitsInput) Validate() error {
  9737  	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountLimitsInput"}
  9738  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  9739  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  9740  	}
  9741  
  9742  	if invalidParams.Len() > 0 {
  9743  		return invalidParams
  9744  	}
  9745  	return nil
  9746  }
  9747  
  9748  // SetNextToken sets the NextToken field's value.
  9749  func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimitsInput {
  9750  	s.NextToken = &v
  9751  	return s
  9752  }
  9753  
  9754  // The output for the DescribeAccountLimits action.
  9755  type DescribeAccountLimitsOutput struct {
  9756  	_ struct{} `type:"structure"`
  9757  
  9758  	// An account limit structure that contain a list of CloudFormation account
  9759  	// limits and their values.
  9760  	AccountLimits []*AccountLimit `type:"list"`
  9761  
  9762  	// If the output exceeds 1 MB in size, a string that identifies the next page
  9763  	// of limits. If no additional page exists, this value is null.
  9764  	NextToken *string `min:"1" type:"string"`
  9765  }
  9766  
  9767  // String returns the string representation.
  9768  //
  9769  // API parameter values that are decorated as "sensitive" in the API will not
  9770  // be included in the string output. The member name will be present, but the
  9771  // value will be replaced with "sensitive".
  9772  func (s DescribeAccountLimitsOutput) String() string {
  9773  	return awsutil.Prettify(s)
  9774  }
  9775  
  9776  // GoString returns the string representation.
  9777  //
  9778  // API parameter values that are decorated as "sensitive" in the API will not
  9779  // be included in the string output. The member name will be present, but the
  9780  // value will be replaced with "sensitive".
  9781  func (s DescribeAccountLimitsOutput) GoString() string {
  9782  	return s.String()
  9783  }
  9784  
  9785  // SetAccountLimits sets the AccountLimits field's value.
  9786  func (s *DescribeAccountLimitsOutput) SetAccountLimits(v []*AccountLimit) *DescribeAccountLimitsOutput {
  9787  	s.AccountLimits = v
  9788  	return s
  9789  }
  9790  
  9791  // SetNextToken sets the NextToken field's value.
  9792  func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLimitsOutput {
  9793  	s.NextToken = &v
  9794  	return s
  9795  }
  9796  
  9797  // The input for the DescribeChangeSet action.
  9798  type DescribeChangeSetInput struct {
  9799  	_ struct{} `type:"structure"`
  9800  
  9801  	// The name or Amazon Resource Name (ARN) of the change set that you want to
  9802  	// describe.
  9803  	//
  9804  	// ChangeSetName is a required field
  9805  	ChangeSetName *string `min:"1" type:"string" required:"true"`
  9806  
  9807  	// A string (provided by the DescribeChangeSet response output) that identifies
  9808  	// the next page of information that you want to retrieve.
  9809  	NextToken *string `min:"1" type:"string"`
  9810  
  9811  	// If you specified the name of a change set, specify the stack name or ID (ARN)
  9812  	// of the change set you want to describe.
  9813  	StackName *string `min:"1" type:"string"`
  9814  }
  9815  
  9816  // String returns the string representation.
  9817  //
  9818  // API parameter values that are decorated as "sensitive" in the API will not
  9819  // be included in the string output. The member name will be present, but the
  9820  // value will be replaced with "sensitive".
  9821  func (s DescribeChangeSetInput) String() string {
  9822  	return awsutil.Prettify(s)
  9823  }
  9824  
  9825  // GoString returns the string representation.
  9826  //
  9827  // API parameter values that are decorated as "sensitive" in the API will not
  9828  // be included in the string output. The member name will be present, but the
  9829  // value will be replaced with "sensitive".
  9830  func (s DescribeChangeSetInput) GoString() string {
  9831  	return s.String()
  9832  }
  9833  
  9834  // Validate inspects the fields of the type to determine if they are valid.
  9835  func (s *DescribeChangeSetInput) Validate() error {
  9836  	invalidParams := request.ErrInvalidParams{Context: "DescribeChangeSetInput"}
  9837  	if s.ChangeSetName == nil {
  9838  		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
  9839  	}
  9840  	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
  9841  		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
  9842  	}
  9843  	if s.NextToken != nil && len(*s.NextToken) < 1 {
  9844  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
  9845  	}
  9846  	if s.StackName != nil && len(*s.StackName) < 1 {
  9847  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
  9848  	}
  9849  
  9850  	if invalidParams.Len() > 0 {
  9851  		return invalidParams
  9852  	}
  9853  	return nil
  9854  }
  9855  
  9856  // SetChangeSetName sets the ChangeSetName field's value.
  9857  func (s *DescribeChangeSetInput) SetChangeSetName(v string) *DescribeChangeSetInput {
  9858  	s.ChangeSetName = &v
  9859  	return s
  9860  }
  9861  
  9862  // SetNextToken sets the NextToken field's value.
  9863  func (s *DescribeChangeSetInput) SetNextToken(v string) *DescribeChangeSetInput {
  9864  	s.NextToken = &v
  9865  	return s
  9866  }
  9867  
  9868  // SetStackName sets the StackName field's value.
  9869  func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput {
  9870  	s.StackName = &v
  9871  	return s
  9872  }
  9873  
  9874  // The output for the DescribeChangeSet action.
  9875  type DescribeChangeSetOutput struct {
  9876  	_ struct{} `type:"structure"`
  9877  
  9878  	// If you execute the change set, the list of capabilities that were explicitly
  9879  	// acknowledged when the change set was created.
  9880  	Capabilities []*string `type:"list"`
  9881  
  9882  	// The ARN of the change set.
  9883  	ChangeSetId *string `min:"1" type:"string"`
  9884  
  9885  	// The name of the change set.
  9886  	ChangeSetName *string `min:"1" type:"string"`
  9887  
  9888  	// A list of Change structures that describes the resources CloudFormation changes
  9889  	// if you execute the change set.
  9890  	Changes []*Change `type:"list"`
  9891  
  9892  	// The start time when the change set was created, in UTC.
  9893  	CreationTime *time.Time `type:"timestamp"`
  9894  
  9895  	// Information about the change set.
  9896  	Description *string `min:"1" type:"string"`
  9897  
  9898  	// If the change set execution status is AVAILABLE, you can execute the change
  9899  	// set. If you can’t execute the change set, the status indicates why. For
  9900  	// example, a change set might be in an UNAVAILABLE state because CloudFormation
  9901  	// is still creating it or in an OBSOLETE state because the stack was already
  9902  	// updated.
  9903  	ExecutionStatus *string `type:"string" enum:"ExecutionStatus"`
  9904  
  9905  	// Verifies if IncludeNestedStacks is set to True.
  9906  	IncludeNestedStacks *bool `type:"boolean"`
  9907  
  9908  	// If the output exceeds 1 MB, a string that identifies the next page of changes.
  9909  	// If there is no additional page, this value is null.
  9910  	NextToken *string `min:"1" type:"string"`
  9911  
  9912  	// The ARNs of the Amazon Simple Notification Service (Amazon SNS) topics that
  9913  	// will be associated with the stack if you execute the change set.
  9914  	NotificationARNs []*string `type:"list"`
  9915  
  9916  	// A list of Parameter structures that describes the input parameters and their
  9917  	// values used to create the change set. For more information, see the Parameter
  9918  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
  9919  	// data type.
  9920  	Parameters []*Parameter `type:"list"`
  9921  
  9922  	// Specifies the change set ID of the parent change set in the current nested
  9923  	// change set hierarchy.
  9924  	ParentChangeSetId *string `min:"1" type:"string"`
  9925  
  9926  	// The rollback triggers for CloudFormation to monitor during stack creation
  9927  	// and updating operations, and for the specified monitoring period afterwards.
  9928  	RollbackConfiguration *RollbackConfiguration `type:"structure"`
  9929  
  9930  	// Specifies the change set ID of the root change set in the current nested
  9931  	// change set hierarchy.
  9932  	RootChangeSetId *string `min:"1" type:"string"`
  9933  
  9934  	// The ARN of the stack that is associated with the change set.
  9935  	StackId *string `type:"string"`
  9936  
  9937  	// The name of the stack that is associated with the change set.
  9938  	StackName *string `type:"string"`
  9939  
  9940  	// The current status of the change set, such as CREATE_IN_PROGRESS, CREATE_COMPLETE,
  9941  	// or FAILED.
  9942  	Status *string `type:"string" enum:"ChangeSetStatus"`
  9943  
  9944  	// A description of the change set's status. For example, if your attempt to
  9945  	// create a change set failed, CloudFormation shows the error message.
  9946  	StatusReason *string `type:"string"`
  9947  
  9948  	// If you execute the change set, the tags that will be associated with the
  9949  	// stack.
  9950  	Tags []*Tag `type:"list"`
  9951  }
  9952  
  9953  // String returns the string representation.
  9954  //
  9955  // API parameter values that are decorated as "sensitive" in the API will not
  9956  // be included in the string output. The member name will be present, but the
  9957  // value will be replaced with "sensitive".
  9958  func (s DescribeChangeSetOutput) String() string {
  9959  	return awsutil.Prettify(s)
  9960  }
  9961  
  9962  // GoString returns the string representation.
  9963  //
  9964  // API parameter values that are decorated as "sensitive" in the API will not
  9965  // be included in the string output. The member name will be present, but the
  9966  // value will be replaced with "sensitive".
  9967  func (s DescribeChangeSetOutput) GoString() string {
  9968  	return s.String()
  9969  }
  9970  
  9971  // SetCapabilities sets the Capabilities field's value.
  9972  func (s *DescribeChangeSetOutput) SetCapabilities(v []*string) *DescribeChangeSetOutput {
  9973  	s.Capabilities = v
  9974  	return s
  9975  }
  9976  
  9977  // SetChangeSetId sets the ChangeSetId field's value.
  9978  func (s *DescribeChangeSetOutput) SetChangeSetId(v string) *DescribeChangeSetOutput {
  9979  	s.ChangeSetId = &v
  9980  	return s
  9981  }
  9982  
  9983  // SetChangeSetName sets the ChangeSetName field's value.
  9984  func (s *DescribeChangeSetOutput) SetChangeSetName(v string) *DescribeChangeSetOutput {
  9985  	s.ChangeSetName = &v
  9986  	return s
  9987  }
  9988  
  9989  // SetChanges sets the Changes field's value.
  9990  func (s *DescribeChangeSetOutput) SetChanges(v []*Change) *DescribeChangeSetOutput {
  9991  	s.Changes = v
  9992  	return s
  9993  }
  9994  
  9995  // SetCreationTime sets the CreationTime field's value.
  9996  func (s *DescribeChangeSetOutput) SetCreationTime(v time.Time) *DescribeChangeSetOutput {
  9997  	s.CreationTime = &v
  9998  	return s
  9999  }
 10000  
 10001  // SetDescription sets the Description field's value.
 10002  func (s *DescribeChangeSetOutput) SetDescription(v string) *DescribeChangeSetOutput {
 10003  	s.Description = &v
 10004  	return s
 10005  }
 10006  
 10007  // SetExecutionStatus sets the ExecutionStatus field's value.
 10008  func (s *DescribeChangeSetOutput) SetExecutionStatus(v string) *DescribeChangeSetOutput {
 10009  	s.ExecutionStatus = &v
 10010  	return s
 10011  }
 10012  
 10013  // SetIncludeNestedStacks sets the IncludeNestedStacks field's value.
 10014  func (s *DescribeChangeSetOutput) SetIncludeNestedStacks(v bool) *DescribeChangeSetOutput {
 10015  	s.IncludeNestedStacks = &v
 10016  	return s
 10017  }
 10018  
 10019  // SetNextToken sets the NextToken field's value.
 10020  func (s *DescribeChangeSetOutput) SetNextToken(v string) *DescribeChangeSetOutput {
 10021  	s.NextToken = &v
 10022  	return s
 10023  }
 10024  
 10025  // SetNotificationARNs sets the NotificationARNs field's value.
 10026  func (s *DescribeChangeSetOutput) SetNotificationARNs(v []*string) *DescribeChangeSetOutput {
 10027  	s.NotificationARNs = v
 10028  	return s
 10029  }
 10030  
 10031  // SetParameters sets the Parameters field's value.
 10032  func (s *DescribeChangeSetOutput) SetParameters(v []*Parameter) *DescribeChangeSetOutput {
 10033  	s.Parameters = v
 10034  	return s
 10035  }
 10036  
 10037  // SetParentChangeSetId sets the ParentChangeSetId field's value.
 10038  func (s *DescribeChangeSetOutput) SetParentChangeSetId(v string) *DescribeChangeSetOutput {
 10039  	s.ParentChangeSetId = &v
 10040  	return s
 10041  }
 10042  
 10043  // SetRollbackConfiguration sets the RollbackConfiguration field's value.
 10044  func (s *DescribeChangeSetOutput) SetRollbackConfiguration(v *RollbackConfiguration) *DescribeChangeSetOutput {
 10045  	s.RollbackConfiguration = v
 10046  	return s
 10047  }
 10048  
 10049  // SetRootChangeSetId sets the RootChangeSetId field's value.
 10050  func (s *DescribeChangeSetOutput) SetRootChangeSetId(v string) *DescribeChangeSetOutput {
 10051  	s.RootChangeSetId = &v
 10052  	return s
 10053  }
 10054  
 10055  // SetStackId sets the StackId field's value.
 10056  func (s *DescribeChangeSetOutput) SetStackId(v string) *DescribeChangeSetOutput {
 10057  	s.StackId = &v
 10058  	return s
 10059  }
 10060  
 10061  // SetStackName sets the StackName field's value.
 10062  func (s *DescribeChangeSetOutput) SetStackName(v string) *DescribeChangeSetOutput {
 10063  	s.StackName = &v
 10064  	return s
 10065  }
 10066  
 10067  // SetStatus sets the Status field's value.
 10068  func (s *DescribeChangeSetOutput) SetStatus(v string) *DescribeChangeSetOutput {
 10069  	s.Status = &v
 10070  	return s
 10071  }
 10072  
 10073  // SetStatusReason sets the StatusReason field's value.
 10074  func (s *DescribeChangeSetOutput) SetStatusReason(v string) *DescribeChangeSetOutput {
 10075  	s.StatusReason = &v
 10076  	return s
 10077  }
 10078  
 10079  // SetTags sets the Tags field's value.
 10080  func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput {
 10081  	s.Tags = v
 10082  	return s
 10083  }
 10084  
 10085  type DescribePublisherInput struct {
 10086  	_ struct{} `type:"structure"`
 10087  
 10088  	// The ID of the extension publisher.
 10089  	//
 10090  	// If you do not supply a PublisherId, and you have registered as an extension
 10091  	// publisher, DescribePublisher returns information about your own publisher
 10092  	// account.
 10093  	PublisherId *string `min:"1" type:"string"`
 10094  }
 10095  
 10096  // String returns the string representation.
 10097  //
 10098  // API parameter values that are decorated as "sensitive" in the API will not
 10099  // be included in the string output. The member name will be present, but the
 10100  // value will be replaced with "sensitive".
 10101  func (s DescribePublisherInput) String() string {
 10102  	return awsutil.Prettify(s)
 10103  }
 10104  
 10105  // GoString returns the string representation.
 10106  //
 10107  // API parameter values that are decorated as "sensitive" in the API will not
 10108  // be included in the string output. The member name will be present, but the
 10109  // value will be replaced with "sensitive".
 10110  func (s DescribePublisherInput) GoString() string {
 10111  	return s.String()
 10112  }
 10113  
 10114  // Validate inspects the fields of the type to determine if they are valid.
 10115  func (s *DescribePublisherInput) Validate() error {
 10116  	invalidParams := request.ErrInvalidParams{Context: "DescribePublisherInput"}
 10117  	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
 10118  		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
 10119  	}
 10120  
 10121  	if invalidParams.Len() > 0 {
 10122  		return invalidParams
 10123  	}
 10124  	return nil
 10125  }
 10126  
 10127  // SetPublisherId sets the PublisherId field's value.
 10128  func (s *DescribePublisherInput) SetPublisherId(v string) *DescribePublisherInput {
 10129  	s.PublisherId = &v
 10130  	return s
 10131  }
 10132  
 10133  type DescribePublisherOutput struct {
 10134  	_ struct{} `type:"structure"`
 10135  
 10136  	// The type of account used as the identity provider when registering this publisher
 10137  	// with CloudFormation.
 10138  	IdentityProvider *string `type:"string" enum:"IdentityProvider"`
 10139  
 10140  	// The ID of the extension publisher.
 10141  	PublisherId *string `min:"1" type:"string"`
 10142  
 10143  	// The URL to the publisher's profile with the identity provider.
 10144  	PublisherProfile *string `type:"string"`
 10145  
 10146  	// Whether the publisher is verified. Currently, all registered publishers are
 10147  	// verified.
 10148  	PublisherStatus *string `type:"string" enum:"PublisherStatus"`
 10149  }
 10150  
 10151  // String returns the string representation.
 10152  //
 10153  // API parameter values that are decorated as "sensitive" in the API will not
 10154  // be included in the string output. The member name will be present, but the
 10155  // value will be replaced with "sensitive".
 10156  func (s DescribePublisherOutput) String() string {
 10157  	return awsutil.Prettify(s)
 10158  }
 10159  
 10160  // GoString returns the string representation.
 10161  //
 10162  // API parameter values that are decorated as "sensitive" in the API will not
 10163  // be included in the string output. The member name will be present, but the
 10164  // value will be replaced with "sensitive".
 10165  func (s DescribePublisherOutput) GoString() string {
 10166  	return s.String()
 10167  }
 10168  
 10169  // SetIdentityProvider sets the IdentityProvider field's value.
 10170  func (s *DescribePublisherOutput) SetIdentityProvider(v string) *DescribePublisherOutput {
 10171  	s.IdentityProvider = &v
 10172  	return s
 10173  }
 10174  
 10175  // SetPublisherId sets the PublisherId field's value.
 10176  func (s *DescribePublisherOutput) SetPublisherId(v string) *DescribePublisherOutput {
 10177  	s.PublisherId = &v
 10178  	return s
 10179  }
 10180  
 10181  // SetPublisherProfile sets the PublisherProfile field's value.
 10182  func (s *DescribePublisherOutput) SetPublisherProfile(v string) *DescribePublisherOutput {
 10183  	s.PublisherProfile = &v
 10184  	return s
 10185  }
 10186  
 10187  // SetPublisherStatus sets the PublisherStatus field's value.
 10188  func (s *DescribePublisherOutput) SetPublisherStatus(v string) *DescribePublisherOutput {
 10189  	s.PublisherStatus = &v
 10190  	return s
 10191  }
 10192  
 10193  type DescribeStackDriftDetectionStatusInput struct {
 10194  	_ struct{} `type:"structure"`
 10195  
 10196  	// The ID of the drift detection results of this operation.
 10197  	//
 10198  	// CloudFormation generates new results, with a new drift detection ID, each
 10199  	// time this operation is run. However, the number of drift results CloudFormation
 10200  	// retains for any given stack, and for how long, may vary.
 10201  	//
 10202  	// StackDriftDetectionId is a required field
 10203  	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
 10204  }
 10205  
 10206  // String returns the string representation.
 10207  //
 10208  // API parameter values that are decorated as "sensitive" in the API will not
 10209  // be included in the string output. The member name will be present, but the
 10210  // value will be replaced with "sensitive".
 10211  func (s DescribeStackDriftDetectionStatusInput) String() string {
 10212  	return awsutil.Prettify(s)
 10213  }
 10214  
 10215  // GoString returns the string representation.
 10216  //
 10217  // API parameter values that are decorated as "sensitive" in the API will not
 10218  // be included in the string output. The member name will be present, but the
 10219  // value will be replaced with "sensitive".
 10220  func (s DescribeStackDriftDetectionStatusInput) GoString() string {
 10221  	return s.String()
 10222  }
 10223  
 10224  // Validate inspects the fields of the type to determine if they are valid.
 10225  func (s *DescribeStackDriftDetectionStatusInput) Validate() error {
 10226  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackDriftDetectionStatusInput"}
 10227  	if s.StackDriftDetectionId == nil {
 10228  		invalidParams.Add(request.NewErrParamRequired("StackDriftDetectionId"))
 10229  	}
 10230  	if s.StackDriftDetectionId != nil && len(*s.StackDriftDetectionId) < 1 {
 10231  		invalidParams.Add(request.NewErrParamMinLen("StackDriftDetectionId", 1))
 10232  	}
 10233  
 10234  	if invalidParams.Len() > 0 {
 10235  		return invalidParams
 10236  	}
 10237  	return nil
 10238  }
 10239  
 10240  // SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
 10241  func (s *DescribeStackDriftDetectionStatusInput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusInput {
 10242  	s.StackDriftDetectionId = &v
 10243  	return s
 10244  }
 10245  
 10246  type DescribeStackDriftDetectionStatusOutput struct {
 10247  	_ struct{} `type:"structure"`
 10248  
 10249  	// The status of the stack drift detection operation.
 10250  	//
 10251  	//    * DETECTION_COMPLETE: The stack drift detection operation has successfully
 10252  	//    completed for all resources in the stack that support drift detection.
 10253  	//    (Resources that do not currently support stack detection remain unchecked.)
 10254  	//    If you specified logical resource IDs for CloudFormation to use as a filter
 10255  	//    for the stack drift detection operation, only the resources with those
 10256  	//    logical IDs are checked for drift.
 10257  	//
 10258  	//    * DETECTION_FAILED: The stack drift detection operation has failed for
 10259  	//    at least one resource in the stack. Results will be available for resources
 10260  	//    on which CloudFormation successfully completed drift detection.
 10261  	//
 10262  	//    * DETECTION_IN_PROGRESS: The stack drift detection operation is currently
 10263  	//    in progress.
 10264  	//
 10265  	// DetectionStatus is a required field
 10266  	DetectionStatus *string `type:"string" required:"true" enum:"StackDriftDetectionStatus"`
 10267  
 10268  	// The reason the stack drift detection operation has its current status.
 10269  	DetectionStatusReason *string `type:"string"`
 10270  
 10271  	// Total number of stack resources that have drifted. This is NULL until the
 10272  	// drift detection operation reaches a status of DETECTION_COMPLETE. This value
 10273  	// will be 0 for stacks whose drift status is IN_SYNC.
 10274  	DriftedStackResourceCount *int64 `type:"integer"`
 10275  
 10276  	// The ID of the drift detection results of this operation.
 10277  	//
 10278  	// CloudFormation generates new results, with a new drift detection ID, each
 10279  	// time this operation is run. However, the number of reports CloudFormation
 10280  	// retains for any given stack, and for how long, may vary.
 10281  	//
 10282  	// StackDriftDetectionId is a required field
 10283  	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
 10284  
 10285  	// Status of the stack's actual configuration compared to its expected configuration.
 10286  	//
 10287  	//    * DRIFTED: The stack differs from its expected template configuration.
 10288  	//    A stack is considered to have drifted if one or more of its resources
 10289  	//    have drifted.
 10290  	//
 10291  	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
 10292  	//    its expected template configuration.
 10293  	//
 10294  	//    * IN_SYNC: The stack's actual configuration matches its expected template
 10295  	//    configuration.
 10296  	//
 10297  	//    * UNKNOWN: This value is reserved for future use.
 10298  	StackDriftStatus *string `type:"string" enum:"StackDriftStatus"`
 10299  
 10300  	// The ID of the stack.
 10301  	//
 10302  	// StackId is a required field
 10303  	StackId *string `type:"string" required:"true"`
 10304  
 10305  	// Time at which the stack drift detection operation was initiated.
 10306  	//
 10307  	// Timestamp is a required field
 10308  	Timestamp *time.Time `type:"timestamp" required:"true"`
 10309  }
 10310  
 10311  // String returns the string representation.
 10312  //
 10313  // API parameter values that are decorated as "sensitive" in the API will not
 10314  // be included in the string output. The member name will be present, but the
 10315  // value will be replaced with "sensitive".
 10316  func (s DescribeStackDriftDetectionStatusOutput) String() string {
 10317  	return awsutil.Prettify(s)
 10318  }
 10319  
 10320  // GoString returns the string representation.
 10321  //
 10322  // API parameter values that are decorated as "sensitive" in the API will not
 10323  // be included in the string output. The member name will be present, but the
 10324  // value will be replaced with "sensitive".
 10325  func (s DescribeStackDriftDetectionStatusOutput) GoString() string {
 10326  	return s.String()
 10327  }
 10328  
 10329  // SetDetectionStatus sets the DetectionStatus field's value.
 10330  func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatus(v string) *DescribeStackDriftDetectionStatusOutput {
 10331  	s.DetectionStatus = &v
 10332  	return s
 10333  }
 10334  
 10335  // SetDetectionStatusReason sets the DetectionStatusReason field's value.
 10336  func (s *DescribeStackDriftDetectionStatusOutput) SetDetectionStatusReason(v string) *DescribeStackDriftDetectionStatusOutput {
 10337  	s.DetectionStatusReason = &v
 10338  	return s
 10339  }
 10340  
 10341  // SetDriftedStackResourceCount sets the DriftedStackResourceCount field's value.
 10342  func (s *DescribeStackDriftDetectionStatusOutput) SetDriftedStackResourceCount(v int64) *DescribeStackDriftDetectionStatusOutput {
 10343  	s.DriftedStackResourceCount = &v
 10344  	return s
 10345  }
 10346  
 10347  // SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
 10348  func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftDetectionId(v string) *DescribeStackDriftDetectionStatusOutput {
 10349  	s.StackDriftDetectionId = &v
 10350  	return s
 10351  }
 10352  
 10353  // SetStackDriftStatus sets the StackDriftStatus field's value.
 10354  func (s *DescribeStackDriftDetectionStatusOutput) SetStackDriftStatus(v string) *DescribeStackDriftDetectionStatusOutput {
 10355  	s.StackDriftStatus = &v
 10356  	return s
 10357  }
 10358  
 10359  // SetStackId sets the StackId field's value.
 10360  func (s *DescribeStackDriftDetectionStatusOutput) SetStackId(v string) *DescribeStackDriftDetectionStatusOutput {
 10361  	s.StackId = &v
 10362  	return s
 10363  }
 10364  
 10365  // SetTimestamp sets the Timestamp field's value.
 10366  func (s *DescribeStackDriftDetectionStatusOutput) SetTimestamp(v time.Time) *DescribeStackDriftDetectionStatusOutput {
 10367  	s.Timestamp = &v
 10368  	return s
 10369  }
 10370  
 10371  // The input for DescribeStackEvents action.
 10372  type DescribeStackEventsInput struct {
 10373  	_ struct{} `type:"structure"`
 10374  
 10375  	// A string that identifies the next page of events that you want to retrieve.
 10376  	NextToken *string `min:"1" type:"string"`
 10377  
 10378  	// The name or the unique stack ID that is associated with the stack, which
 10379  	// are not always interchangeable:
 10380  	//
 10381  	//    * Running stacks: You can specify either the stack's name or its unique
 10382  	//    stack ID.
 10383  	//
 10384  	//    * Deleted stacks: You must specify the unique stack ID.
 10385  	//
 10386  	// Default: There is no default value.
 10387  	StackName *string `type:"string"`
 10388  }
 10389  
 10390  // String returns the string representation.
 10391  //
 10392  // API parameter values that are decorated as "sensitive" in the API will not
 10393  // be included in the string output. The member name will be present, but the
 10394  // value will be replaced with "sensitive".
 10395  func (s DescribeStackEventsInput) String() string {
 10396  	return awsutil.Prettify(s)
 10397  }
 10398  
 10399  // GoString returns the string representation.
 10400  //
 10401  // API parameter values that are decorated as "sensitive" in the API will not
 10402  // be included in the string output. The member name will be present, but the
 10403  // value will be replaced with "sensitive".
 10404  func (s DescribeStackEventsInput) GoString() string {
 10405  	return s.String()
 10406  }
 10407  
 10408  // Validate inspects the fields of the type to determine if they are valid.
 10409  func (s *DescribeStackEventsInput) Validate() error {
 10410  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackEventsInput"}
 10411  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 10412  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 10413  	}
 10414  
 10415  	if invalidParams.Len() > 0 {
 10416  		return invalidParams
 10417  	}
 10418  	return nil
 10419  }
 10420  
 10421  // SetNextToken sets the NextToken field's value.
 10422  func (s *DescribeStackEventsInput) SetNextToken(v string) *DescribeStackEventsInput {
 10423  	s.NextToken = &v
 10424  	return s
 10425  }
 10426  
 10427  // SetStackName sets the StackName field's value.
 10428  func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsInput {
 10429  	s.StackName = &v
 10430  	return s
 10431  }
 10432  
 10433  // The output for a DescribeStackEvents action.
 10434  type DescribeStackEventsOutput struct {
 10435  	_ struct{} `type:"structure"`
 10436  
 10437  	// If the output exceeds 1 MB in size, a string that identifies the next page
 10438  	// of events. If no additional page exists, this value is null.
 10439  	NextToken *string `min:"1" type:"string"`
 10440  
 10441  	// A list of StackEvents structures.
 10442  	StackEvents []*StackEvent `type:"list"`
 10443  }
 10444  
 10445  // String returns the string representation.
 10446  //
 10447  // API parameter values that are decorated as "sensitive" in the API will not
 10448  // be included in the string output. The member name will be present, but the
 10449  // value will be replaced with "sensitive".
 10450  func (s DescribeStackEventsOutput) String() string {
 10451  	return awsutil.Prettify(s)
 10452  }
 10453  
 10454  // GoString returns the string representation.
 10455  //
 10456  // API parameter values that are decorated as "sensitive" in the API will not
 10457  // be included in the string output. The member name will be present, but the
 10458  // value will be replaced with "sensitive".
 10459  func (s DescribeStackEventsOutput) GoString() string {
 10460  	return s.String()
 10461  }
 10462  
 10463  // SetNextToken sets the NextToken field's value.
 10464  func (s *DescribeStackEventsOutput) SetNextToken(v string) *DescribeStackEventsOutput {
 10465  	s.NextToken = &v
 10466  	return s
 10467  }
 10468  
 10469  // SetStackEvents sets the StackEvents field's value.
 10470  func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeStackEventsOutput {
 10471  	s.StackEvents = v
 10472  	return s
 10473  }
 10474  
 10475  type DescribeStackInstanceInput struct {
 10476  	_ struct{} `type:"structure"`
 10477  
 10478  	// [Service-managed permissions] Specifies whether you are acting as an account
 10479  	// administrator in the organization's management account or as a delegated
 10480  	// administrator in a member account.
 10481  	//
 10482  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 10483  	// permissions.
 10484  	//
 10485  	//    * If you are signed in to the management account, specify SELF.
 10486  	//
 10487  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 10488  	//    Your Amazon Web Services account must be registered as a delegated administrator
 10489  	//    in the management account. For more information, see Register a delegated
 10490  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 10491  	//    in the CloudFormation User Guide.
 10492  	CallAs *string `type:"string" enum:"CallAs"`
 10493  
 10494  	// The ID of an Amazon Web Services account that's associated with this stack
 10495  	// instance.
 10496  	//
 10497  	// StackInstanceAccount is a required field
 10498  	StackInstanceAccount *string `type:"string" required:"true"`
 10499  
 10500  	// The name of a Region that's associated with this stack instance.
 10501  	//
 10502  	// StackInstanceRegion is a required field
 10503  	StackInstanceRegion *string `type:"string" required:"true"`
 10504  
 10505  	// The name or the unique stack ID of the stack set that you want to get stack
 10506  	// instance information for.
 10507  	//
 10508  	// StackSetName is a required field
 10509  	StackSetName *string `type:"string" required:"true"`
 10510  }
 10511  
 10512  // String returns the string representation.
 10513  //
 10514  // API parameter values that are decorated as "sensitive" in the API will not
 10515  // be included in the string output. The member name will be present, but the
 10516  // value will be replaced with "sensitive".
 10517  func (s DescribeStackInstanceInput) String() string {
 10518  	return awsutil.Prettify(s)
 10519  }
 10520  
 10521  // GoString returns the string representation.
 10522  //
 10523  // API parameter values that are decorated as "sensitive" in the API will not
 10524  // be included in the string output. The member name will be present, but the
 10525  // value will be replaced with "sensitive".
 10526  func (s DescribeStackInstanceInput) GoString() string {
 10527  	return s.String()
 10528  }
 10529  
 10530  // Validate inspects the fields of the type to determine if they are valid.
 10531  func (s *DescribeStackInstanceInput) Validate() error {
 10532  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackInstanceInput"}
 10533  	if s.StackInstanceAccount == nil {
 10534  		invalidParams.Add(request.NewErrParamRequired("StackInstanceAccount"))
 10535  	}
 10536  	if s.StackInstanceRegion == nil {
 10537  		invalidParams.Add(request.NewErrParamRequired("StackInstanceRegion"))
 10538  	}
 10539  	if s.StackSetName == nil {
 10540  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 10541  	}
 10542  
 10543  	if invalidParams.Len() > 0 {
 10544  		return invalidParams
 10545  	}
 10546  	return nil
 10547  }
 10548  
 10549  // SetCallAs sets the CallAs field's value.
 10550  func (s *DescribeStackInstanceInput) SetCallAs(v string) *DescribeStackInstanceInput {
 10551  	s.CallAs = &v
 10552  	return s
 10553  }
 10554  
 10555  // SetStackInstanceAccount sets the StackInstanceAccount field's value.
 10556  func (s *DescribeStackInstanceInput) SetStackInstanceAccount(v string) *DescribeStackInstanceInput {
 10557  	s.StackInstanceAccount = &v
 10558  	return s
 10559  }
 10560  
 10561  // SetStackInstanceRegion sets the StackInstanceRegion field's value.
 10562  func (s *DescribeStackInstanceInput) SetStackInstanceRegion(v string) *DescribeStackInstanceInput {
 10563  	s.StackInstanceRegion = &v
 10564  	return s
 10565  }
 10566  
 10567  // SetStackSetName sets the StackSetName field's value.
 10568  func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackInstanceInput {
 10569  	s.StackSetName = &v
 10570  	return s
 10571  }
 10572  
 10573  type DescribeStackInstanceOutput struct {
 10574  	_ struct{} `type:"structure"`
 10575  
 10576  	// The stack instance that matches the specified request parameters.
 10577  	StackInstance *StackInstance `type:"structure"`
 10578  }
 10579  
 10580  // String returns the string representation.
 10581  //
 10582  // API parameter values that are decorated as "sensitive" in the API will not
 10583  // be included in the string output. The member name will be present, but the
 10584  // value will be replaced with "sensitive".
 10585  func (s DescribeStackInstanceOutput) String() string {
 10586  	return awsutil.Prettify(s)
 10587  }
 10588  
 10589  // GoString returns the string representation.
 10590  //
 10591  // API parameter values that are decorated as "sensitive" in the API will not
 10592  // be included in the string output. The member name will be present, but the
 10593  // value will be replaced with "sensitive".
 10594  func (s DescribeStackInstanceOutput) GoString() string {
 10595  	return s.String()
 10596  }
 10597  
 10598  // SetStackInstance sets the StackInstance field's value.
 10599  func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *DescribeStackInstanceOutput {
 10600  	s.StackInstance = v
 10601  	return s
 10602  }
 10603  
 10604  type DescribeStackResourceDriftsInput struct {
 10605  	_ struct{} `type:"structure"`
 10606  
 10607  	// The maximum number of results to be returned with a single call. If the number
 10608  	// of available results exceeds this maximum, the response includes a NextToken
 10609  	// value that you can assign to the NextToken request parameter to get the next
 10610  	// set of results.
 10611  	MaxResults *int64 `min:"1" type:"integer"`
 10612  
 10613  	// A string that identifies the next page of stack resource drift results.
 10614  	NextToken *string `min:"1" type:"string"`
 10615  
 10616  	// The name of the stack for which you want drift information.
 10617  	//
 10618  	// StackName is a required field
 10619  	StackName *string `min:"1" type:"string" required:"true"`
 10620  
 10621  	// The resource drift status values to use as filters for the resource drift
 10622  	// results returned.
 10623  	//
 10624  	//    * DELETED: The resource differs from its expected template configuration
 10625  	//    in that the resource has been deleted.
 10626  	//
 10627  	//    * MODIFIED: One or more resource properties differ from their expected
 10628  	//    template values.
 10629  	//
 10630  	//    * IN_SYNC: The resources's actual configuration matches its expected template
 10631  	//    configuration.
 10632  	//
 10633  	//    * NOT_CHECKED: CloudFormation does not currently return this value.
 10634  	StackResourceDriftStatusFilters []*string `min:"1" type:"list"`
 10635  }
 10636  
 10637  // String returns the string representation.
 10638  //
 10639  // API parameter values that are decorated as "sensitive" in the API will not
 10640  // be included in the string output. The member name will be present, but the
 10641  // value will be replaced with "sensitive".
 10642  func (s DescribeStackResourceDriftsInput) String() string {
 10643  	return awsutil.Prettify(s)
 10644  }
 10645  
 10646  // GoString returns the string representation.
 10647  //
 10648  // API parameter values that are decorated as "sensitive" in the API will not
 10649  // be included in the string output. The member name will be present, but the
 10650  // value will be replaced with "sensitive".
 10651  func (s DescribeStackResourceDriftsInput) GoString() string {
 10652  	return s.String()
 10653  }
 10654  
 10655  // Validate inspects the fields of the type to determine if they are valid.
 10656  func (s *DescribeStackResourceDriftsInput) Validate() error {
 10657  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceDriftsInput"}
 10658  	if s.MaxResults != nil && *s.MaxResults < 1 {
 10659  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 10660  	}
 10661  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 10662  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 10663  	}
 10664  	if s.StackName == nil {
 10665  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 10666  	}
 10667  	if s.StackName != nil && len(*s.StackName) < 1 {
 10668  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 10669  	}
 10670  	if s.StackResourceDriftStatusFilters != nil && len(s.StackResourceDriftStatusFilters) < 1 {
 10671  		invalidParams.Add(request.NewErrParamMinLen("StackResourceDriftStatusFilters", 1))
 10672  	}
 10673  
 10674  	if invalidParams.Len() > 0 {
 10675  		return invalidParams
 10676  	}
 10677  	return nil
 10678  }
 10679  
 10680  // SetMaxResults sets the MaxResults field's value.
 10681  func (s *DescribeStackResourceDriftsInput) SetMaxResults(v int64) *DescribeStackResourceDriftsInput {
 10682  	s.MaxResults = &v
 10683  	return s
 10684  }
 10685  
 10686  // SetNextToken sets the NextToken field's value.
 10687  func (s *DescribeStackResourceDriftsInput) SetNextToken(v string) *DescribeStackResourceDriftsInput {
 10688  	s.NextToken = &v
 10689  	return s
 10690  }
 10691  
 10692  // SetStackName sets the StackName field's value.
 10693  func (s *DescribeStackResourceDriftsInput) SetStackName(v string) *DescribeStackResourceDriftsInput {
 10694  	s.StackName = &v
 10695  	return s
 10696  }
 10697  
 10698  // SetStackResourceDriftStatusFilters sets the StackResourceDriftStatusFilters field's value.
 10699  func (s *DescribeStackResourceDriftsInput) SetStackResourceDriftStatusFilters(v []*string) *DescribeStackResourceDriftsInput {
 10700  	s.StackResourceDriftStatusFilters = v
 10701  	return s
 10702  }
 10703  
 10704  type DescribeStackResourceDriftsOutput struct {
 10705  	_ struct{} `type:"structure"`
 10706  
 10707  	// If the request doesn't return all of the remaining results, NextToken is
 10708  	// set to a token. To retrieve the next set of results, call DescribeStackResourceDrifts
 10709  	// again and assign that token to the request object's NextToken parameter.
 10710  	// If the request returns all results, NextToken is set to null.
 10711  	NextToken *string `min:"1" type:"string"`
 10712  
 10713  	// Drift information for the resources that have been checked for drift in the
 10714  	// specified stack. This includes actual and expected configuration values for
 10715  	// resources where CloudFormation detects drift.
 10716  	//
 10717  	// For a given stack, there will be one StackResourceDrift for each stack resource
 10718  	// that has been checked for drift. Resources that have not yet been checked
 10719  	// for drift are not included. Resources that do not currently support drift
 10720  	// detection are not checked, and so not included. For a list of resources that
 10721  	// support drift detection, see Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
 10722  	//
 10723  	// StackResourceDrifts is a required field
 10724  	StackResourceDrifts []*StackResourceDrift `type:"list" required:"true"`
 10725  }
 10726  
 10727  // String returns the string representation.
 10728  //
 10729  // API parameter values that are decorated as "sensitive" in the API will not
 10730  // be included in the string output. The member name will be present, but the
 10731  // value will be replaced with "sensitive".
 10732  func (s DescribeStackResourceDriftsOutput) String() string {
 10733  	return awsutil.Prettify(s)
 10734  }
 10735  
 10736  // GoString returns the string representation.
 10737  //
 10738  // API parameter values that are decorated as "sensitive" in the API will not
 10739  // be included in the string output. The member name will be present, but the
 10740  // value will be replaced with "sensitive".
 10741  func (s DescribeStackResourceDriftsOutput) GoString() string {
 10742  	return s.String()
 10743  }
 10744  
 10745  // SetNextToken sets the NextToken field's value.
 10746  func (s *DescribeStackResourceDriftsOutput) SetNextToken(v string) *DescribeStackResourceDriftsOutput {
 10747  	s.NextToken = &v
 10748  	return s
 10749  }
 10750  
 10751  // SetStackResourceDrifts sets the StackResourceDrifts field's value.
 10752  func (s *DescribeStackResourceDriftsOutput) SetStackResourceDrifts(v []*StackResourceDrift) *DescribeStackResourceDriftsOutput {
 10753  	s.StackResourceDrifts = v
 10754  	return s
 10755  }
 10756  
 10757  // The input for DescribeStackResource action.
 10758  type DescribeStackResourceInput struct {
 10759  	_ struct{} `type:"structure"`
 10760  
 10761  	// The logical name of the resource as specified in the template.
 10762  	//
 10763  	// Default: There is no default value.
 10764  	//
 10765  	// LogicalResourceId is a required field
 10766  	LogicalResourceId *string `type:"string" required:"true"`
 10767  
 10768  	// The name or the unique stack ID that is associated with the stack, which
 10769  	// are not always interchangeable:
 10770  	//
 10771  	//    * Running stacks: You can specify either the stack's name or its unique
 10772  	//    stack ID.
 10773  	//
 10774  	//    * Deleted stacks: You must specify the unique stack ID.
 10775  	//
 10776  	// Default: There is no default value.
 10777  	//
 10778  	// StackName is a required field
 10779  	StackName *string `type:"string" required:"true"`
 10780  }
 10781  
 10782  // String returns the string representation.
 10783  //
 10784  // API parameter values that are decorated as "sensitive" in the API will not
 10785  // be included in the string output. The member name will be present, but the
 10786  // value will be replaced with "sensitive".
 10787  func (s DescribeStackResourceInput) String() string {
 10788  	return awsutil.Prettify(s)
 10789  }
 10790  
 10791  // GoString returns the string representation.
 10792  //
 10793  // API parameter values that are decorated as "sensitive" in the API will not
 10794  // be included in the string output. The member name will be present, but the
 10795  // value will be replaced with "sensitive".
 10796  func (s DescribeStackResourceInput) GoString() string {
 10797  	return s.String()
 10798  }
 10799  
 10800  // Validate inspects the fields of the type to determine if they are valid.
 10801  func (s *DescribeStackResourceInput) Validate() error {
 10802  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackResourceInput"}
 10803  	if s.LogicalResourceId == nil {
 10804  		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
 10805  	}
 10806  	if s.StackName == nil {
 10807  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 10808  	}
 10809  
 10810  	if invalidParams.Len() > 0 {
 10811  		return invalidParams
 10812  	}
 10813  	return nil
 10814  }
 10815  
 10816  // SetLogicalResourceId sets the LogicalResourceId field's value.
 10817  func (s *DescribeStackResourceInput) SetLogicalResourceId(v string) *DescribeStackResourceInput {
 10818  	s.LogicalResourceId = &v
 10819  	return s
 10820  }
 10821  
 10822  // SetStackName sets the StackName field's value.
 10823  func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResourceInput {
 10824  	s.StackName = &v
 10825  	return s
 10826  }
 10827  
 10828  // The output for a DescribeStackResource action.
 10829  type DescribeStackResourceOutput struct {
 10830  	_ struct{} `type:"structure"`
 10831  
 10832  	// A StackResourceDetail structure containing the description of the specified
 10833  	// resource in the specified stack.
 10834  	StackResourceDetail *StackResourceDetail `type:"structure"`
 10835  }
 10836  
 10837  // String returns the string representation.
 10838  //
 10839  // API parameter values that are decorated as "sensitive" in the API will not
 10840  // be included in the string output. The member name will be present, but the
 10841  // value will be replaced with "sensitive".
 10842  func (s DescribeStackResourceOutput) String() string {
 10843  	return awsutil.Prettify(s)
 10844  }
 10845  
 10846  // GoString returns the string representation.
 10847  //
 10848  // API parameter values that are decorated as "sensitive" in the API will not
 10849  // be included in the string output. The member name will be present, but the
 10850  // value will be replaced with "sensitive".
 10851  func (s DescribeStackResourceOutput) GoString() string {
 10852  	return s.String()
 10853  }
 10854  
 10855  // SetStackResourceDetail sets the StackResourceDetail field's value.
 10856  func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDetail) *DescribeStackResourceOutput {
 10857  	s.StackResourceDetail = v
 10858  	return s
 10859  }
 10860  
 10861  // The input for DescribeStackResources action.
 10862  type DescribeStackResourcesInput struct {
 10863  	_ struct{} `type:"structure"`
 10864  
 10865  	// The logical name of the resource as specified in the template.
 10866  	//
 10867  	// Default: There is no default value.
 10868  	LogicalResourceId *string `type:"string"`
 10869  
 10870  	// The name or unique identifier that corresponds to a physical instance ID
 10871  	// of a resource supported by CloudFormation.
 10872  	//
 10873  	// For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId
 10874  	// corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources
 10875  	// to find which stack the instance belongs to and what other resources are
 10876  	// part of the stack.
 10877  	//
 10878  	// Required: Conditional. If you do not specify PhysicalResourceId, you must
 10879  	// specify StackName.
 10880  	//
 10881  	// Default: There is no default value.
 10882  	PhysicalResourceId *string `type:"string"`
 10883  
 10884  	// The name or the unique stack ID that is associated with the stack, which
 10885  	// are not always interchangeable:
 10886  	//
 10887  	//    * Running stacks: You can specify either the stack's name or its unique
 10888  	//    stack ID.
 10889  	//
 10890  	//    * Deleted stacks: You must specify the unique stack ID.
 10891  	//
 10892  	// Default: There is no default value.
 10893  	//
 10894  	// Required: Conditional. If you do not specify StackName, you must specify
 10895  	// PhysicalResourceId.
 10896  	StackName *string `type:"string"`
 10897  }
 10898  
 10899  // String returns the string representation.
 10900  //
 10901  // API parameter values that are decorated as "sensitive" in the API will not
 10902  // be included in the string output. The member name will be present, but the
 10903  // value will be replaced with "sensitive".
 10904  func (s DescribeStackResourcesInput) String() string {
 10905  	return awsutil.Prettify(s)
 10906  }
 10907  
 10908  // GoString returns the string representation.
 10909  //
 10910  // API parameter values that are decorated as "sensitive" in the API will not
 10911  // be included in the string output. The member name will be present, but the
 10912  // value will be replaced with "sensitive".
 10913  func (s DescribeStackResourcesInput) GoString() string {
 10914  	return s.String()
 10915  }
 10916  
 10917  // SetLogicalResourceId sets the LogicalResourceId field's value.
 10918  func (s *DescribeStackResourcesInput) SetLogicalResourceId(v string) *DescribeStackResourcesInput {
 10919  	s.LogicalResourceId = &v
 10920  	return s
 10921  }
 10922  
 10923  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 10924  func (s *DescribeStackResourcesInput) SetPhysicalResourceId(v string) *DescribeStackResourcesInput {
 10925  	s.PhysicalResourceId = &v
 10926  	return s
 10927  }
 10928  
 10929  // SetStackName sets the StackName field's value.
 10930  func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResourcesInput {
 10931  	s.StackName = &v
 10932  	return s
 10933  }
 10934  
 10935  // The output for a DescribeStackResources action.
 10936  type DescribeStackResourcesOutput struct {
 10937  	_ struct{} `type:"structure"`
 10938  
 10939  	// A list of StackResource structures.
 10940  	StackResources []*StackResource `type:"list"`
 10941  }
 10942  
 10943  // String returns the string representation.
 10944  //
 10945  // API parameter values that are decorated as "sensitive" in the API will not
 10946  // be included in the string output. The member name will be present, but the
 10947  // value will be replaced with "sensitive".
 10948  func (s DescribeStackResourcesOutput) String() string {
 10949  	return awsutil.Prettify(s)
 10950  }
 10951  
 10952  // GoString returns the string representation.
 10953  //
 10954  // API parameter values that are decorated as "sensitive" in the API will not
 10955  // be included in the string output. The member name will be present, but the
 10956  // value will be replaced with "sensitive".
 10957  func (s DescribeStackResourcesOutput) GoString() string {
 10958  	return s.String()
 10959  }
 10960  
 10961  // SetStackResources sets the StackResources field's value.
 10962  func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *DescribeStackResourcesOutput {
 10963  	s.StackResources = v
 10964  	return s
 10965  }
 10966  
 10967  type DescribeStackSetInput struct {
 10968  	_ struct{} `type:"structure"`
 10969  
 10970  	// [Service-managed permissions] Specifies whether you are acting as an account
 10971  	// administrator in the organization's management account or as a delegated
 10972  	// administrator in a member account.
 10973  	//
 10974  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 10975  	// permissions.
 10976  	//
 10977  	//    * If you are signed in to the management account, specify SELF.
 10978  	//
 10979  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 10980  	//    Your Amazon Web Services account must be registered as a delegated administrator
 10981  	//    in the management account. For more information, see Register a delegated
 10982  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 10983  	//    in the CloudFormation User Guide.
 10984  	CallAs *string `type:"string" enum:"CallAs"`
 10985  
 10986  	// The name or unique ID of the stack set whose description you want.
 10987  	//
 10988  	// StackSetName is a required field
 10989  	StackSetName *string `type:"string" required:"true"`
 10990  }
 10991  
 10992  // String returns the string representation.
 10993  //
 10994  // API parameter values that are decorated as "sensitive" in the API will not
 10995  // be included in the string output. The member name will be present, but the
 10996  // value will be replaced with "sensitive".
 10997  func (s DescribeStackSetInput) String() string {
 10998  	return awsutil.Prettify(s)
 10999  }
 11000  
 11001  // GoString returns the string representation.
 11002  //
 11003  // API parameter values that are decorated as "sensitive" in the API will not
 11004  // be included in the string output. The member name will be present, but the
 11005  // value will be replaced with "sensitive".
 11006  func (s DescribeStackSetInput) GoString() string {
 11007  	return s.String()
 11008  }
 11009  
 11010  // Validate inspects the fields of the type to determine if they are valid.
 11011  func (s *DescribeStackSetInput) Validate() error {
 11012  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetInput"}
 11013  	if s.StackSetName == nil {
 11014  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 11015  	}
 11016  
 11017  	if invalidParams.Len() > 0 {
 11018  		return invalidParams
 11019  	}
 11020  	return nil
 11021  }
 11022  
 11023  // SetCallAs sets the CallAs field's value.
 11024  func (s *DescribeStackSetInput) SetCallAs(v string) *DescribeStackSetInput {
 11025  	s.CallAs = &v
 11026  	return s
 11027  }
 11028  
 11029  // SetStackSetName sets the StackSetName field's value.
 11030  func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput {
 11031  	s.StackSetName = &v
 11032  	return s
 11033  }
 11034  
 11035  type DescribeStackSetOperationInput struct {
 11036  	_ struct{} `type:"structure"`
 11037  
 11038  	// [Service-managed permissions] Specifies whether you are acting as an account
 11039  	// administrator in the organization's management account or as a delegated
 11040  	// administrator in a member account.
 11041  	//
 11042  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 11043  	// permissions.
 11044  	//
 11045  	//    * If you are signed in to the management account, specify SELF.
 11046  	//
 11047  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 11048  	//    Your Amazon Web Services account must be registered as a delegated administrator
 11049  	//    in the management account. For more information, see Register a delegated
 11050  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 11051  	//    in the CloudFormation User Guide.
 11052  	CallAs *string `type:"string" enum:"CallAs"`
 11053  
 11054  	// The unique ID of the stack set operation.
 11055  	//
 11056  	// OperationId is a required field
 11057  	OperationId *string `min:"1" type:"string" required:"true"`
 11058  
 11059  	// The name or the unique stack ID of the stack set for the stack operation.
 11060  	//
 11061  	// StackSetName is a required field
 11062  	StackSetName *string `type:"string" required:"true"`
 11063  }
 11064  
 11065  // String returns the string representation.
 11066  //
 11067  // API parameter values that are decorated as "sensitive" in the API will not
 11068  // be included in the string output. The member name will be present, but the
 11069  // value will be replaced with "sensitive".
 11070  func (s DescribeStackSetOperationInput) String() string {
 11071  	return awsutil.Prettify(s)
 11072  }
 11073  
 11074  // GoString returns the string representation.
 11075  //
 11076  // API parameter values that are decorated as "sensitive" in the API will not
 11077  // be included in the string output. The member name will be present, but the
 11078  // value will be replaced with "sensitive".
 11079  func (s DescribeStackSetOperationInput) GoString() string {
 11080  	return s.String()
 11081  }
 11082  
 11083  // Validate inspects the fields of the type to determine if they are valid.
 11084  func (s *DescribeStackSetOperationInput) Validate() error {
 11085  	invalidParams := request.ErrInvalidParams{Context: "DescribeStackSetOperationInput"}
 11086  	if s.OperationId == nil {
 11087  		invalidParams.Add(request.NewErrParamRequired("OperationId"))
 11088  	}
 11089  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 11090  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 11091  	}
 11092  	if s.StackSetName == nil {
 11093  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 11094  	}
 11095  
 11096  	if invalidParams.Len() > 0 {
 11097  		return invalidParams
 11098  	}
 11099  	return nil
 11100  }
 11101  
 11102  // SetCallAs sets the CallAs field's value.
 11103  func (s *DescribeStackSetOperationInput) SetCallAs(v string) *DescribeStackSetOperationInput {
 11104  	s.CallAs = &v
 11105  	return s
 11106  }
 11107  
 11108  // SetOperationId sets the OperationId field's value.
 11109  func (s *DescribeStackSetOperationInput) SetOperationId(v string) *DescribeStackSetOperationInput {
 11110  	s.OperationId = &v
 11111  	return s
 11112  }
 11113  
 11114  // SetStackSetName sets the StackSetName field's value.
 11115  func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStackSetOperationInput {
 11116  	s.StackSetName = &v
 11117  	return s
 11118  }
 11119  
 11120  type DescribeStackSetOperationOutput struct {
 11121  	_ struct{} `type:"structure"`
 11122  
 11123  	// The specified stack set operation.
 11124  	StackSetOperation *StackSetOperation `type:"structure"`
 11125  }
 11126  
 11127  // String returns the string representation.
 11128  //
 11129  // API parameter values that are decorated as "sensitive" in the API will not
 11130  // be included in the string output. The member name will be present, but the
 11131  // value will be replaced with "sensitive".
 11132  func (s DescribeStackSetOperationOutput) String() string {
 11133  	return awsutil.Prettify(s)
 11134  }
 11135  
 11136  // GoString returns the string representation.
 11137  //
 11138  // API parameter values that are decorated as "sensitive" in the API will not
 11139  // be included in the string output. The member name will be present, but the
 11140  // value will be replaced with "sensitive".
 11141  func (s DescribeStackSetOperationOutput) GoString() string {
 11142  	return s.String()
 11143  }
 11144  
 11145  // SetStackSetOperation sets the StackSetOperation field's value.
 11146  func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperation) *DescribeStackSetOperationOutput {
 11147  	s.StackSetOperation = v
 11148  	return s
 11149  }
 11150  
 11151  type DescribeStackSetOutput struct {
 11152  	_ struct{} `type:"structure"`
 11153  
 11154  	// The specified stack set.
 11155  	StackSet *StackSet `type:"structure"`
 11156  }
 11157  
 11158  // String returns the string representation.
 11159  //
 11160  // API parameter values that are decorated as "sensitive" in the API will not
 11161  // be included in the string output. The member name will be present, but the
 11162  // value will be replaced with "sensitive".
 11163  func (s DescribeStackSetOutput) String() string {
 11164  	return awsutil.Prettify(s)
 11165  }
 11166  
 11167  // GoString returns the string representation.
 11168  //
 11169  // API parameter values that are decorated as "sensitive" in the API will not
 11170  // be included in the string output. The member name will be present, but the
 11171  // value will be replaced with "sensitive".
 11172  func (s DescribeStackSetOutput) GoString() string {
 11173  	return s.String()
 11174  }
 11175  
 11176  // SetStackSet sets the StackSet field's value.
 11177  func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutput {
 11178  	s.StackSet = v
 11179  	return s
 11180  }
 11181  
 11182  // The input for DescribeStacks action.
 11183  type DescribeStacksInput struct {
 11184  	_ struct{} `type:"structure"`
 11185  
 11186  	// A string that identifies the next page of stacks that you want to retrieve.
 11187  	NextToken *string `min:"1" type:"string"`
 11188  
 11189  	// The name or the unique stack ID that is associated with the stack, which
 11190  	// are not always interchangeable:
 11191  	//
 11192  	//    * Running stacks: You can specify either the stack's name or its unique
 11193  	//    stack ID.
 11194  	//
 11195  	//    * Deleted stacks: You must specify the unique stack ID.
 11196  	//
 11197  	// Default: There is no default value.
 11198  	StackName *string `type:"string"`
 11199  }
 11200  
 11201  // String returns the string representation.
 11202  //
 11203  // API parameter values that are decorated as "sensitive" in the API will not
 11204  // be included in the string output. The member name will be present, but the
 11205  // value will be replaced with "sensitive".
 11206  func (s DescribeStacksInput) String() string {
 11207  	return awsutil.Prettify(s)
 11208  }
 11209  
 11210  // GoString returns the string representation.
 11211  //
 11212  // API parameter values that are decorated as "sensitive" in the API will not
 11213  // be included in the string output. The member name will be present, but the
 11214  // value will be replaced with "sensitive".
 11215  func (s DescribeStacksInput) GoString() string {
 11216  	return s.String()
 11217  }
 11218  
 11219  // Validate inspects the fields of the type to determine if they are valid.
 11220  func (s *DescribeStacksInput) Validate() error {
 11221  	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
 11222  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 11223  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 11224  	}
 11225  
 11226  	if invalidParams.Len() > 0 {
 11227  		return invalidParams
 11228  	}
 11229  	return nil
 11230  }
 11231  
 11232  // SetNextToken sets the NextToken field's value.
 11233  func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
 11234  	s.NextToken = &v
 11235  	return s
 11236  }
 11237  
 11238  // SetStackName sets the StackName field's value.
 11239  func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput {
 11240  	s.StackName = &v
 11241  	return s
 11242  }
 11243  
 11244  // The output for a DescribeStacks action.
 11245  type DescribeStacksOutput struct {
 11246  	_ struct{} `type:"structure"`
 11247  
 11248  	// If the output exceeds 1 MB in size, a string that identifies the next page
 11249  	// of stacks. If no additional page exists, this value is null.
 11250  	NextToken *string `min:"1" type:"string"`
 11251  
 11252  	// A list of stack structures.
 11253  	Stacks []*Stack `type:"list"`
 11254  }
 11255  
 11256  // String returns the string representation.
 11257  //
 11258  // API parameter values that are decorated as "sensitive" in the API will not
 11259  // be included in the string output. The member name will be present, but the
 11260  // value will be replaced with "sensitive".
 11261  func (s DescribeStacksOutput) String() string {
 11262  	return awsutil.Prettify(s)
 11263  }
 11264  
 11265  // GoString returns the string representation.
 11266  //
 11267  // API parameter values that are decorated as "sensitive" in the API will not
 11268  // be included in the string output. The member name will be present, but the
 11269  // value will be replaced with "sensitive".
 11270  func (s DescribeStacksOutput) GoString() string {
 11271  	return s.String()
 11272  }
 11273  
 11274  // SetNextToken sets the NextToken field's value.
 11275  func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
 11276  	s.NextToken = &v
 11277  	return s
 11278  }
 11279  
 11280  // SetStacks sets the Stacks field's value.
 11281  func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
 11282  	s.Stacks = v
 11283  	return s
 11284  }
 11285  
 11286  type DescribeTypeInput struct {
 11287  	_ struct{} `type:"structure"`
 11288  
 11289  	// The Amazon Resource Name (ARN) of the extension.
 11290  	//
 11291  	// Conditional: You must specify either TypeName and Type, or Arn.
 11292  	Arn *string `type:"string"`
 11293  
 11294  	// The version number of a public third-party extension.
 11295  	PublicVersionNumber *string `min:"5" type:"string"`
 11296  
 11297  	// The publisher ID of the extension publisher.
 11298  	//
 11299  	// Extensions provided by Amazon are not assigned a publisher ID.
 11300  	PublisherId *string `min:"1" type:"string"`
 11301  
 11302  	// The kind of extension.
 11303  	//
 11304  	// Conditional: You must specify either TypeName and Type, or Arn.
 11305  	Type *string `type:"string" enum:"RegistryType"`
 11306  
 11307  	// The name of the extension.
 11308  	//
 11309  	// Conditional: You must specify either TypeName and Type, or Arn.
 11310  	TypeName *string `min:"10" type:"string"`
 11311  
 11312  	// The ID of a specific version of the extension. The version ID is the value
 11313  	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
 11314  	// when it is registered.
 11315  	//
 11316  	// If you specify a VersionId, DescribeType returns information about that specific
 11317  	// extension version. Otherwise, it returns information about the default extension
 11318  	// version.
 11319  	VersionId *string `min:"1" type:"string"`
 11320  }
 11321  
 11322  // String returns the string representation.
 11323  //
 11324  // API parameter values that are decorated as "sensitive" in the API will not
 11325  // be included in the string output. The member name will be present, but the
 11326  // value will be replaced with "sensitive".
 11327  func (s DescribeTypeInput) String() string {
 11328  	return awsutil.Prettify(s)
 11329  }
 11330  
 11331  // GoString returns the string representation.
 11332  //
 11333  // API parameter values that are decorated as "sensitive" in the API will not
 11334  // be included in the string output. The member name will be present, but the
 11335  // value will be replaced with "sensitive".
 11336  func (s DescribeTypeInput) GoString() string {
 11337  	return s.String()
 11338  }
 11339  
 11340  // Validate inspects the fields of the type to determine if they are valid.
 11341  func (s *DescribeTypeInput) Validate() error {
 11342  	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeInput"}
 11343  	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
 11344  		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
 11345  	}
 11346  	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
 11347  		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
 11348  	}
 11349  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 11350  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 11351  	}
 11352  	if s.VersionId != nil && len(*s.VersionId) < 1 {
 11353  		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
 11354  	}
 11355  
 11356  	if invalidParams.Len() > 0 {
 11357  		return invalidParams
 11358  	}
 11359  	return nil
 11360  }
 11361  
 11362  // SetArn sets the Arn field's value.
 11363  func (s *DescribeTypeInput) SetArn(v string) *DescribeTypeInput {
 11364  	s.Arn = &v
 11365  	return s
 11366  }
 11367  
 11368  // SetPublicVersionNumber sets the PublicVersionNumber field's value.
 11369  func (s *DescribeTypeInput) SetPublicVersionNumber(v string) *DescribeTypeInput {
 11370  	s.PublicVersionNumber = &v
 11371  	return s
 11372  }
 11373  
 11374  // SetPublisherId sets the PublisherId field's value.
 11375  func (s *DescribeTypeInput) SetPublisherId(v string) *DescribeTypeInput {
 11376  	s.PublisherId = &v
 11377  	return s
 11378  }
 11379  
 11380  // SetType sets the Type field's value.
 11381  func (s *DescribeTypeInput) SetType(v string) *DescribeTypeInput {
 11382  	s.Type = &v
 11383  	return s
 11384  }
 11385  
 11386  // SetTypeName sets the TypeName field's value.
 11387  func (s *DescribeTypeInput) SetTypeName(v string) *DescribeTypeInput {
 11388  	s.TypeName = &v
 11389  	return s
 11390  }
 11391  
 11392  // SetVersionId sets the VersionId field's value.
 11393  func (s *DescribeTypeInput) SetVersionId(v string) *DescribeTypeInput {
 11394  	s.VersionId = &v
 11395  	return s
 11396  }
 11397  
 11398  type DescribeTypeOutput struct {
 11399  	_ struct{} `type:"structure"`
 11400  
 11401  	// The Amazon Resource Name (ARN) of the extension.
 11402  	Arn *string `type:"string"`
 11403  
 11404  	// Whether CloudFormation automatically updates the extension in this account
 11405  	// and region when a new minor version is published by the extension publisher.
 11406  	// Major versions released by the publisher must be manually updated. For more
 11407  	// information, see Activating public extensions for use in your account (AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable)
 11408  	// in the CloudFormation User Guide.
 11409  	AutoUpdate *bool `type:"boolean"`
 11410  
 11411  	// A JSON string that represent the current configuration data for the extension
 11412  	// in this account and region.
 11413  	//
 11414  	// To set the configuration data for an extension, use SetTypeConfiguration
 11415  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetTypeConfiguration.html).
 11416  	// For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
 11417  	// in the CloudFormation User Guide.
 11418  	ConfigurationSchema *string `min:"1" type:"string"`
 11419  
 11420  	// The ID of the default version of the extension. The default version is used
 11421  	// when the extension version is not specified.
 11422  	//
 11423  	// This applies only to private extensions you have registered in your account.
 11424  	// For public extensions, both those provided by Amazon and published by third
 11425  	// parties, CloudFormation returns null. For more information, see RegisterType
 11426  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
 11427  	//
 11428  	// To set the default version of an extension, use SetTypeDefaultVersion .
 11429  	DefaultVersionId *string `min:"1" type:"string"`
 11430  
 11431  	// The deprecation status of the extension version.
 11432  	//
 11433  	// Valid values include:
 11434  	//
 11435  	//    * LIVE: The extension is activated or registered and can be used in CloudFormation
 11436  	//    operations, dependent on its provisioning behavior and visibility scope.
 11437  	//
 11438  	//    * DEPRECATED: The extension has been deactivated or deregistered and can
 11439  	//    no longer be used in CloudFormation operations.
 11440  	//
 11441  	// For public third-party extensions, CloudFormation returns null.
 11442  	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
 11443  
 11444  	// The description of the extension.
 11445  	Description *string `min:"1" type:"string"`
 11446  
 11447  	// The URL of a page providing detailed documentation for this extension.
 11448  	DocumentationUrl *string `type:"string"`
 11449  
 11450  	// The Amazon Resource Name (ARN) of the IAM execution role used to register
 11451  	// the extension. This applies only to private extensions you have registered
 11452  	// in your account. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
 11453  	//
 11454  	// If the registered extension calls any Amazon Web Services APIs, you must
 11455  	// create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
 11456  	// that includes the necessary permissions to call those Amazon Web Services
 11457  	// APIs, and provision that execution role in your account. CloudFormation then
 11458  	// assumes that execution role to provide your extension with the appropriate
 11459  	// credentials.
 11460  	ExecutionRoleArn *string `min:"1" type:"string"`
 11461  
 11462  	// Whether or not the extension is activated in the account and region.
 11463  	//
 11464  	// This only applies to public third-party extensions. For all other extensions,
 11465  	// CloudFormation returns null.
 11466  	IsActivated *bool `type:"boolean"`
 11467  
 11468  	// Whether the specified extension version is set as the default version.
 11469  	//
 11470  	// This applies only to private extensions you have registered in your account,
 11471  	// and extensions published by Amazon. For public third-party extensions, whether
 11472  	// or not they are activated in your account, CloudFormation returns null.
 11473  	IsDefaultVersion *bool `type:"boolean"`
 11474  
 11475  	// When the specified extension version was registered. This applies only to:
 11476  	//
 11477  	//    * Private extensions you have registered in your account. For more information,
 11478  	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
 11479  	//
 11480  	//    * Public extensions you have activated in your account with auto-update
 11481  	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
 11482  	LastUpdated *time.Time `type:"timestamp"`
 11483  
 11484  	// The latest version of a public extension that is available for use.
 11485  	//
 11486  	// This only applies if you specify a public extension, and you do not specify
 11487  	// a version. For all other requests, CloudFormation returns null.
 11488  	LatestPublicVersion *string `min:"5" type:"string"`
 11489  
 11490  	// Contains logging configuration information for private extensions. This applies
 11491  	// only to private extensions you have registered in your account. For public
 11492  	// extensions, both those provided by Amazon and published by third parties,
 11493  	// CloudFormation returns null. For more information, see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
 11494  	LoggingConfig *LoggingConfig `type:"structure"`
 11495  
 11496  	// For public extensions that have been activated for this account and region,
 11497  	// the Amazon Resource Name (ARN) of the public extension.
 11498  	OriginalTypeArn *string `type:"string"`
 11499  
 11500  	// For public extensions that have been activated for this account and region,
 11501  	// the type name of the public extension.
 11502  	//
 11503  	// If you specified a TypeNameAlias when enabling the extension in this account
 11504  	// and region, CloudFormation treats that alias as the extension's type name
 11505  	// within the account and region, not the type name of the public extension.
 11506  	// For more information, see Specifying aliases to refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
 11507  	// in the CloudFormation User Guide.
 11508  	OriginalTypeName *string `min:"10" type:"string"`
 11509  
 11510  	// For resource type extensions, the provisioning behavior of the resource type.
 11511  	// CloudFormation determines the provisioning type during registration, based
 11512  	// on the types of handlers in the schema handler package submitted.
 11513  	//
 11514  	// Valid values include:
 11515  	//
 11516  	//    * FULLY_MUTABLE: The resource type includes an update handler to process
 11517  	//    updates to the type during stack update operations.
 11518  	//
 11519  	//    * IMMUTABLE: The resource type does not include an update handler, so
 11520  	//    the type cannot be updated and must instead be replaced during stack update
 11521  	//    operations.
 11522  	//
 11523  	//    * NON_PROVISIONABLE: The resource type does not include all of the following
 11524  	//    handlers, and therefore cannot actually be provisioned. create read delete
 11525  	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
 11526  
 11527  	// The version number of a public third-party extension.
 11528  	//
 11529  	// This applies only if you specify a public extension you have activated in
 11530  	// your account, or specify a public extension without specifying a version.
 11531  	// For all other extensions, CloudFormation returns null.
 11532  	PublicVersionNumber *string `min:"5" type:"string"`
 11533  
 11534  	// The publisher ID of the extension publisher.
 11535  	//
 11536  	// This applies only to public third-party extensions. For private registered
 11537  	// extensions, and extensions provided by Amazon, CloudFormation returns null.
 11538  	PublisherId *string `min:"1" type:"string"`
 11539  
 11540  	// For extensions that are modules, the public third-party extensions that must
 11541  	// be activated in your account in order for the module itself to be activated.
 11542  	RequiredActivatedTypes []*RequiredActivatedType `type:"list"`
 11543  
 11544  	// The schema that defines the extension.
 11545  	//
 11546  	// For more information on extension schemas, see Resource Provider Schema (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)
 11547  	// in the CloudFormation CLI User Guide.
 11548  	Schema *string `min:"1" type:"string"`
 11549  
 11550  	// The URL of the source code for the extension.
 11551  	SourceUrl *string `type:"string"`
 11552  
 11553  	// When the specified private extension version was registered or activated
 11554  	// in your account.
 11555  	TimeCreated *time.Time `type:"timestamp"`
 11556  
 11557  	// The kind of extension.
 11558  	Type *string `type:"string" enum:"RegistryType"`
 11559  
 11560  	// The name of the extension.
 11561  	//
 11562  	// If the extension is a public third-party type you have activated with a type
 11563  	// name alias, CloudFormation returns the type name alias. For more information,
 11564  	// see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
 11565  	TypeName *string `min:"10" type:"string"`
 11566  
 11567  	// The contract test status of the registered extension version. To return the
 11568  	// extension test status of a specifc extension version, you must specify VersionId.
 11569  	//
 11570  	// This applies only to registered private extension versions. CloudFormation
 11571  	// does not return this information for public extensions, whether or not they
 11572  	// are activated in your account.
 11573  	//
 11574  	//    * PASSED: The extension has passed all its contract tests. An extension
 11575  	//    must have a test status of PASSED before it can be published. For more
 11576  	//    information, see Publishing extensions to make them available for public
 11577  	//    use (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-publish.html)
 11578  	//    in the CloudFormation Command Line Interface User Guide.
 11579  	//
 11580  	//    * FAILED: The extension has failed one or more contract tests.
 11581  	//
 11582  	//    * IN_PROGRESS: Contract tests are currently being performed on the extension.
 11583  	//
 11584  	//    * NOT_TESTED: Contract tests have not been performed on the extension.
 11585  	TypeTestsStatus *string `type:"string" enum:"TypeTestsStatus"`
 11586  
 11587  	// The description of the test status. To return the extension test status of
 11588  	// a specifc extension version, you must specify VersionId.
 11589  	//
 11590  	// This applies only to registered private extension versions. CloudFormation
 11591  	// does not return this information for public extensions, whether or not they
 11592  	// are activated in your account.
 11593  	TypeTestsStatusDescription *string `min:"1" type:"string"`
 11594  
 11595  	// The scope at which the extension is visible and usable in CloudFormation
 11596  	// operations.
 11597  	//
 11598  	// Valid values include:
 11599  	//
 11600  	//    * PRIVATE: The extension is only visible and usable within the account
 11601  	//    in which it is registered. CloudFormation marks any extensions you register
 11602  	//    as PRIVATE.
 11603  	//
 11604  	//    * PUBLIC: The extension is publically visible and usable within any Amazon
 11605  	//    account.
 11606  	Visibility *string `type:"string" enum:"Visibility"`
 11607  }
 11608  
 11609  // String returns the string representation.
 11610  //
 11611  // API parameter values that are decorated as "sensitive" in the API will not
 11612  // be included in the string output. The member name will be present, but the
 11613  // value will be replaced with "sensitive".
 11614  func (s DescribeTypeOutput) String() string {
 11615  	return awsutil.Prettify(s)
 11616  }
 11617  
 11618  // GoString returns the string representation.
 11619  //
 11620  // API parameter values that are decorated as "sensitive" in the API will not
 11621  // be included in the string output. The member name will be present, but the
 11622  // value will be replaced with "sensitive".
 11623  func (s DescribeTypeOutput) GoString() string {
 11624  	return s.String()
 11625  }
 11626  
 11627  // SetArn sets the Arn field's value.
 11628  func (s *DescribeTypeOutput) SetArn(v string) *DescribeTypeOutput {
 11629  	s.Arn = &v
 11630  	return s
 11631  }
 11632  
 11633  // SetAutoUpdate sets the AutoUpdate field's value.
 11634  func (s *DescribeTypeOutput) SetAutoUpdate(v bool) *DescribeTypeOutput {
 11635  	s.AutoUpdate = &v
 11636  	return s
 11637  }
 11638  
 11639  // SetConfigurationSchema sets the ConfigurationSchema field's value.
 11640  func (s *DescribeTypeOutput) SetConfigurationSchema(v string) *DescribeTypeOutput {
 11641  	s.ConfigurationSchema = &v
 11642  	return s
 11643  }
 11644  
 11645  // SetDefaultVersionId sets the DefaultVersionId field's value.
 11646  func (s *DescribeTypeOutput) SetDefaultVersionId(v string) *DescribeTypeOutput {
 11647  	s.DefaultVersionId = &v
 11648  	return s
 11649  }
 11650  
 11651  // SetDeprecatedStatus sets the DeprecatedStatus field's value.
 11652  func (s *DescribeTypeOutput) SetDeprecatedStatus(v string) *DescribeTypeOutput {
 11653  	s.DeprecatedStatus = &v
 11654  	return s
 11655  }
 11656  
 11657  // SetDescription sets the Description field's value.
 11658  func (s *DescribeTypeOutput) SetDescription(v string) *DescribeTypeOutput {
 11659  	s.Description = &v
 11660  	return s
 11661  }
 11662  
 11663  // SetDocumentationUrl sets the DocumentationUrl field's value.
 11664  func (s *DescribeTypeOutput) SetDocumentationUrl(v string) *DescribeTypeOutput {
 11665  	s.DocumentationUrl = &v
 11666  	return s
 11667  }
 11668  
 11669  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
 11670  func (s *DescribeTypeOutput) SetExecutionRoleArn(v string) *DescribeTypeOutput {
 11671  	s.ExecutionRoleArn = &v
 11672  	return s
 11673  }
 11674  
 11675  // SetIsActivated sets the IsActivated field's value.
 11676  func (s *DescribeTypeOutput) SetIsActivated(v bool) *DescribeTypeOutput {
 11677  	s.IsActivated = &v
 11678  	return s
 11679  }
 11680  
 11681  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 11682  func (s *DescribeTypeOutput) SetIsDefaultVersion(v bool) *DescribeTypeOutput {
 11683  	s.IsDefaultVersion = &v
 11684  	return s
 11685  }
 11686  
 11687  // SetLastUpdated sets the LastUpdated field's value.
 11688  func (s *DescribeTypeOutput) SetLastUpdated(v time.Time) *DescribeTypeOutput {
 11689  	s.LastUpdated = &v
 11690  	return s
 11691  }
 11692  
 11693  // SetLatestPublicVersion sets the LatestPublicVersion field's value.
 11694  func (s *DescribeTypeOutput) SetLatestPublicVersion(v string) *DescribeTypeOutput {
 11695  	s.LatestPublicVersion = &v
 11696  	return s
 11697  }
 11698  
 11699  // SetLoggingConfig sets the LoggingConfig field's value.
 11700  func (s *DescribeTypeOutput) SetLoggingConfig(v *LoggingConfig) *DescribeTypeOutput {
 11701  	s.LoggingConfig = v
 11702  	return s
 11703  }
 11704  
 11705  // SetOriginalTypeArn sets the OriginalTypeArn field's value.
 11706  func (s *DescribeTypeOutput) SetOriginalTypeArn(v string) *DescribeTypeOutput {
 11707  	s.OriginalTypeArn = &v
 11708  	return s
 11709  }
 11710  
 11711  // SetOriginalTypeName sets the OriginalTypeName field's value.
 11712  func (s *DescribeTypeOutput) SetOriginalTypeName(v string) *DescribeTypeOutput {
 11713  	s.OriginalTypeName = &v
 11714  	return s
 11715  }
 11716  
 11717  // SetProvisioningType sets the ProvisioningType field's value.
 11718  func (s *DescribeTypeOutput) SetProvisioningType(v string) *DescribeTypeOutput {
 11719  	s.ProvisioningType = &v
 11720  	return s
 11721  }
 11722  
 11723  // SetPublicVersionNumber sets the PublicVersionNumber field's value.
 11724  func (s *DescribeTypeOutput) SetPublicVersionNumber(v string) *DescribeTypeOutput {
 11725  	s.PublicVersionNumber = &v
 11726  	return s
 11727  }
 11728  
 11729  // SetPublisherId sets the PublisherId field's value.
 11730  func (s *DescribeTypeOutput) SetPublisherId(v string) *DescribeTypeOutput {
 11731  	s.PublisherId = &v
 11732  	return s
 11733  }
 11734  
 11735  // SetRequiredActivatedTypes sets the RequiredActivatedTypes field's value.
 11736  func (s *DescribeTypeOutput) SetRequiredActivatedTypes(v []*RequiredActivatedType) *DescribeTypeOutput {
 11737  	s.RequiredActivatedTypes = v
 11738  	return s
 11739  }
 11740  
 11741  // SetSchema sets the Schema field's value.
 11742  func (s *DescribeTypeOutput) SetSchema(v string) *DescribeTypeOutput {
 11743  	s.Schema = &v
 11744  	return s
 11745  }
 11746  
 11747  // SetSourceUrl sets the SourceUrl field's value.
 11748  func (s *DescribeTypeOutput) SetSourceUrl(v string) *DescribeTypeOutput {
 11749  	s.SourceUrl = &v
 11750  	return s
 11751  }
 11752  
 11753  // SetTimeCreated sets the TimeCreated field's value.
 11754  func (s *DescribeTypeOutput) SetTimeCreated(v time.Time) *DescribeTypeOutput {
 11755  	s.TimeCreated = &v
 11756  	return s
 11757  }
 11758  
 11759  // SetType sets the Type field's value.
 11760  func (s *DescribeTypeOutput) SetType(v string) *DescribeTypeOutput {
 11761  	s.Type = &v
 11762  	return s
 11763  }
 11764  
 11765  // SetTypeName sets the TypeName field's value.
 11766  func (s *DescribeTypeOutput) SetTypeName(v string) *DescribeTypeOutput {
 11767  	s.TypeName = &v
 11768  	return s
 11769  }
 11770  
 11771  // SetTypeTestsStatus sets the TypeTestsStatus field's value.
 11772  func (s *DescribeTypeOutput) SetTypeTestsStatus(v string) *DescribeTypeOutput {
 11773  	s.TypeTestsStatus = &v
 11774  	return s
 11775  }
 11776  
 11777  // SetTypeTestsStatusDescription sets the TypeTestsStatusDescription field's value.
 11778  func (s *DescribeTypeOutput) SetTypeTestsStatusDescription(v string) *DescribeTypeOutput {
 11779  	s.TypeTestsStatusDescription = &v
 11780  	return s
 11781  }
 11782  
 11783  // SetVisibility sets the Visibility field's value.
 11784  func (s *DescribeTypeOutput) SetVisibility(v string) *DescribeTypeOutput {
 11785  	s.Visibility = &v
 11786  	return s
 11787  }
 11788  
 11789  type DescribeTypeRegistrationInput struct {
 11790  	_ struct{} `type:"structure"`
 11791  
 11792  	// The identifier for this registration request.
 11793  	//
 11794  	// This registration token is generated by CloudFormation when you initiate
 11795  	// a registration request using RegisterType .
 11796  	//
 11797  	// RegistrationToken is a required field
 11798  	RegistrationToken *string `min:"1" type:"string" required:"true"`
 11799  }
 11800  
 11801  // String returns the string representation.
 11802  //
 11803  // API parameter values that are decorated as "sensitive" in the API will not
 11804  // be included in the string output. The member name will be present, but the
 11805  // value will be replaced with "sensitive".
 11806  func (s DescribeTypeRegistrationInput) String() string {
 11807  	return awsutil.Prettify(s)
 11808  }
 11809  
 11810  // GoString returns the string representation.
 11811  //
 11812  // API parameter values that are decorated as "sensitive" in the API will not
 11813  // be included in the string output. The member name will be present, but the
 11814  // value will be replaced with "sensitive".
 11815  func (s DescribeTypeRegistrationInput) GoString() string {
 11816  	return s.String()
 11817  }
 11818  
 11819  // Validate inspects the fields of the type to determine if they are valid.
 11820  func (s *DescribeTypeRegistrationInput) Validate() error {
 11821  	invalidParams := request.ErrInvalidParams{Context: "DescribeTypeRegistrationInput"}
 11822  	if s.RegistrationToken == nil {
 11823  		invalidParams.Add(request.NewErrParamRequired("RegistrationToken"))
 11824  	}
 11825  	if s.RegistrationToken != nil && len(*s.RegistrationToken) < 1 {
 11826  		invalidParams.Add(request.NewErrParamMinLen("RegistrationToken", 1))
 11827  	}
 11828  
 11829  	if invalidParams.Len() > 0 {
 11830  		return invalidParams
 11831  	}
 11832  	return nil
 11833  }
 11834  
 11835  // SetRegistrationToken sets the RegistrationToken field's value.
 11836  func (s *DescribeTypeRegistrationInput) SetRegistrationToken(v string) *DescribeTypeRegistrationInput {
 11837  	s.RegistrationToken = &v
 11838  	return s
 11839  }
 11840  
 11841  type DescribeTypeRegistrationOutput struct {
 11842  	_ struct{} `type:"structure"`
 11843  
 11844  	// The description of the extension registration request.
 11845  	Description *string `min:"1" type:"string"`
 11846  
 11847  	// The current status of the extension registration request.
 11848  	ProgressStatus *string `type:"string" enum:"RegistrationStatus"`
 11849  
 11850  	// The Amazon Resource Name (ARN) of the extension being registered.
 11851  	//
 11852  	// For registration requests with a ProgressStatus of other than COMPLETE, this
 11853  	// will be null.
 11854  	TypeArn *string `type:"string"`
 11855  
 11856  	// The Amazon Resource Name (ARN) of this specific version of the extension
 11857  	// being registered.
 11858  	//
 11859  	// For registration requests with a ProgressStatus of other than COMPLETE, this
 11860  	// will be null.
 11861  	TypeVersionArn *string `type:"string"`
 11862  }
 11863  
 11864  // String returns the string representation.
 11865  //
 11866  // API parameter values that are decorated as "sensitive" in the API will not
 11867  // be included in the string output. The member name will be present, but the
 11868  // value will be replaced with "sensitive".
 11869  func (s DescribeTypeRegistrationOutput) String() string {
 11870  	return awsutil.Prettify(s)
 11871  }
 11872  
 11873  // GoString returns the string representation.
 11874  //
 11875  // API parameter values that are decorated as "sensitive" in the API will not
 11876  // be included in the string output. The member name will be present, but the
 11877  // value will be replaced with "sensitive".
 11878  func (s DescribeTypeRegistrationOutput) GoString() string {
 11879  	return s.String()
 11880  }
 11881  
 11882  // SetDescription sets the Description field's value.
 11883  func (s *DescribeTypeRegistrationOutput) SetDescription(v string) *DescribeTypeRegistrationOutput {
 11884  	s.Description = &v
 11885  	return s
 11886  }
 11887  
 11888  // SetProgressStatus sets the ProgressStatus field's value.
 11889  func (s *DescribeTypeRegistrationOutput) SetProgressStatus(v string) *DescribeTypeRegistrationOutput {
 11890  	s.ProgressStatus = &v
 11891  	return s
 11892  }
 11893  
 11894  // SetTypeArn sets the TypeArn field's value.
 11895  func (s *DescribeTypeRegistrationOutput) SetTypeArn(v string) *DescribeTypeRegistrationOutput {
 11896  	s.TypeArn = &v
 11897  	return s
 11898  }
 11899  
 11900  // SetTypeVersionArn sets the TypeVersionArn field's value.
 11901  func (s *DescribeTypeRegistrationOutput) SetTypeVersionArn(v string) *DescribeTypeRegistrationOutput {
 11902  	s.TypeVersionArn = &v
 11903  	return s
 11904  }
 11905  
 11906  type DetectStackDriftInput struct {
 11907  	_ struct{} `type:"structure"`
 11908  
 11909  	// The logical names of any resources you want to use as filters.
 11910  	LogicalResourceIds []*string `min:"1" type:"list"`
 11911  
 11912  	// The name of the stack for which you want to detect drift.
 11913  	//
 11914  	// StackName is a required field
 11915  	StackName *string `min:"1" type:"string" required:"true"`
 11916  }
 11917  
 11918  // String returns the string representation.
 11919  //
 11920  // API parameter values that are decorated as "sensitive" in the API will not
 11921  // be included in the string output. The member name will be present, but the
 11922  // value will be replaced with "sensitive".
 11923  func (s DetectStackDriftInput) String() string {
 11924  	return awsutil.Prettify(s)
 11925  }
 11926  
 11927  // GoString returns the string representation.
 11928  //
 11929  // API parameter values that are decorated as "sensitive" in the API will not
 11930  // be included in the string output. The member name will be present, but the
 11931  // value will be replaced with "sensitive".
 11932  func (s DetectStackDriftInput) GoString() string {
 11933  	return s.String()
 11934  }
 11935  
 11936  // Validate inspects the fields of the type to determine if they are valid.
 11937  func (s *DetectStackDriftInput) Validate() error {
 11938  	invalidParams := request.ErrInvalidParams{Context: "DetectStackDriftInput"}
 11939  	if s.LogicalResourceIds != nil && len(s.LogicalResourceIds) < 1 {
 11940  		invalidParams.Add(request.NewErrParamMinLen("LogicalResourceIds", 1))
 11941  	}
 11942  	if s.StackName == nil {
 11943  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 11944  	}
 11945  	if s.StackName != nil && len(*s.StackName) < 1 {
 11946  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 11947  	}
 11948  
 11949  	if invalidParams.Len() > 0 {
 11950  		return invalidParams
 11951  	}
 11952  	return nil
 11953  }
 11954  
 11955  // SetLogicalResourceIds sets the LogicalResourceIds field's value.
 11956  func (s *DetectStackDriftInput) SetLogicalResourceIds(v []*string) *DetectStackDriftInput {
 11957  	s.LogicalResourceIds = v
 11958  	return s
 11959  }
 11960  
 11961  // SetStackName sets the StackName field's value.
 11962  func (s *DetectStackDriftInput) SetStackName(v string) *DetectStackDriftInput {
 11963  	s.StackName = &v
 11964  	return s
 11965  }
 11966  
 11967  type DetectStackDriftOutput struct {
 11968  	_ struct{} `type:"structure"`
 11969  
 11970  	// The ID of the drift detection results of this operation.
 11971  	//
 11972  	// CloudFormation generates new results, with a new drift detection ID, each
 11973  	// time this operation is run. However, the number of drift results CloudFormation
 11974  	// retains for any given stack, and for how long, may vary.
 11975  	//
 11976  	// StackDriftDetectionId is a required field
 11977  	StackDriftDetectionId *string `min:"1" type:"string" required:"true"`
 11978  }
 11979  
 11980  // String returns the string representation.
 11981  //
 11982  // API parameter values that are decorated as "sensitive" in the API will not
 11983  // be included in the string output. The member name will be present, but the
 11984  // value will be replaced with "sensitive".
 11985  func (s DetectStackDriftOutput) String() string {
 11986  	return awsutil.Prettify(s)
 11987  }
 11988  
 11989  // GoString returns the string representation.
 11990  //
 11991  // API parameter values that are decorated as "sensitive" in the API will not
 11992  // be included in the string output. The member name will be present, but the
 11993  // value will be replaced with "sensitive".
 11994  func (s DetectStackDriftOutput) GoString() string {
 11995  	return s.String()
 11996  }
 11997  
 11998  // SetStackDriftDetectionId sets the StackDriftDetectionId field's value.
 11999  func (s *DetectStackDriftOutput) SetStackDriftDetectionId(v string) *DetectStackDriftOutput {
 12000  	s.StackDriftDetectionId = &v
 12001  	return s
 12002  }
 12003  
 12004  type DetectStackResourceDriftInput struct {
 12005  	_ struct{} `type:"structure"`
 12006  
 12007  	// The logical name of the resource for which to return drift information.
 12008  	//
 12009  	// LogicalResourceId is a required field
 12010  	LogicalResourceId *string `type:"string" required:"true"`
 12011  
 12012  	// The name of the stack to which the resource belongs.
 12013  	//
 12014  	// StackName is a required field
 12015  	StackName *string `min:"1" type:"string" required:"true"`
 12016  }
 12017  
 12018  // String returns the string representation.
 12019  //
 12020  // API parameter values that are decorated as "sensitive" in the API will not
 12021  // be included in the string output. The member name will be present, but the
 12022  // value will be replaced with "sensitive".
 12023  func (s DetectStackResourceDriftInput) String() string {
 12024  	return awsutil.Prettify(s)
 12025  }
 12026  
 12027  // GoString returns the string representation.
 12028  //
 12029  // API parameter values that are decorated as "sensitive" in the API will not
 12030  // be included in the string output. The member name will be present, but the
 12031  // value will be replaced with "sensitive".
 12032  func (s DetectStackResourceDriftInput) GoString() string {
 12033  	return s.String()
 12034  }
 12035  
 12036  // Validate inspects the fields of the type to determine if they are valid.
 12037  func (s *DetectStackResourceDriftInput) Validate() error {
 12038  	invalidParams := request.ErrInvalidParams{Context: "DetectStackResourceDriftInput"}
 12039  	if s.LogicalResourceId == nil {
 12040  		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
 12041  	}
 12042  	if s.StackName == nil {
 12043  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 12044  	}
 12045  	if s.StackName != nil && len(*s.StackName) < 1 {
 12046  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 12047  	}
 12048  
 12049  	if invalidParams.Len() > 0 {
 12050  		return invalidParams
 12051  	}
 12052  	return nil
 12053  }
 12054  
 12055  // SetLogicalResourceId sets the LogicalResourceId field's value.
 12056  func (s *DetectStackResourceDriftInput) SetLogicalResourceId(v string) *DetectStackResourceDriftInput {
 12057  	s.LogicalResourceId = &v
 12058  	return s
 12059  }
 12060  
 12061  // SetStackName sets the StackName field's value.
 12062  func (s *DetectStackResourceDriftInput) SetStackName(v string) *DetectStackResourceDriftInput {
 12063  	s.StackName = &v
 12064  	return s
 12065  }
 12066  
 12067  type DetectStackResourceDriftOutput struct {
 12068  	_ struct{} `type:"structure"`
 12069  
 12070  	// Information about whether the resource's actual configuration has drifted
 12071  	// from its expected template configuration, including actual and expected property
 12072  	// values and any differences detected.
 12073  	//
 12074  	// StackResourceDrift is a required field
 12075  	StackResourceDrift *StackResourceDrift `type:"structure" required:"true"`
 12076  }
 12077  
 12078  // String returns the string representation.
 12079  //
 12080  // API parameter values that are decorated as "sensitive" in the API will not
 12081  // be included in the string output. The member name will be present, but the
 12082  // value will be replaced with "sensitive".
 12083  func (s DetectStackResourceDriftOutput) String() string {
 12084  	return awsutil.Prettify(s)
 12085  }
 12086  
 12087  // GoString returns the string representation.
 12088  //
 12089  // API parameter values that are decorated as "sensitive" in the API will not
 12090  // be included in the string output. The member name will be present, but the
 12091  // value will be replaced with "sensitive".
 12092  func (s DetectStackResourceDriftOutput) GoString() string {
 12093  	return s.String()
 12094  }
 12095  
 12096  // SetStackResourceDrift sets the StackResourceDrift field's value.
 12097  func (s *DetectStackResourceDriftOutput) SetStackResourceDrift(v *StackResourceDrift) *DetectStackResourceDriftOutput {
 12098  	s.StackResourceDrift = v
 12099  	return s
 12100  }
 12101  
 12102  type DetectStackSetDriftInput struct {
 12103  	_ struct{} `type:"structure"`
 12104  
 12105  	// [Service-managed permissions] Specifies whether you are acting as an account
 12106  	// administrator in the organization's management account or as a delegated
 12107  	// administrator in a member account.
 12108  	//
 12109  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 12110  	// permissions.
 12111  	//
 12112  	//    * If you are signed in to the management account, specify SELF.
 12113  	//
 12114  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 12115  	//    Your Amazon Web Services account must be registered as a delegated administrator
 12116  	//    in the management account. For more information, see Register a delegated
 12117  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 12118  	//    in the CloudFormation User Guide.
 12119  	CallAs *string `type:"string" enum:"CallAs"`
 12120  
 12121  	// The ID of the stack set operation.
 12122  	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
 12123  
 12124  	// The user-specified preferences for how CloudFormation performs a stack set
 12125  	// operation.
 12126  	//
 12127  	// For more information on maximum concurrent accounts and failure tolerance,
 12128  	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
 12129  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
 12130  
 12131  	// The name of the stack set on which to perform the drift detection operation.
 12132  	//
 12133  	// StackSetName is a required field
 12134  	StackSetName *string `type:"string" required:"true"`
 12135  }
 12136  
 12137  // String returns the string representation.
 12138  //
 12139  // API parameter values that are decorated as "sensitive" in the API will not
 12140  // be included in the string output. The member name will be present, but the
 12141  // value will be replaced with "sensitive".
 12142  func (s DetectStackSetDriftInput) String() string {
 12143  	return awsutil.Prettify(s)
 12144  }
 12145  
 12146  // GoString returns the string representation.
 12147  //
 12148  // API parameter values that are decorated as "sensitive" in the API will not
 12149  // be included in the string output. The member name will be present, but the
 12150  // value will be replaced with "sensitive".
 12151  func (s DetectStackSetDriftInput) GoString() string {
 12152  	return s.String()
 12153  }
 12154  
 12155  // Validate inspects the fields of the type to determine if they are valid.
 12156  func (s *DetectStackSetDriftInput) Validate() error {
 12157  	invalidParams := request.ErrInvalidParams{Context: "DetectStackSetDriftInput"}
 12158  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 12159  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 12160  	}
 12161  	if s.StackSetName == nil {
 12162  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 12163  	}
 12164  	if s.OperationPreferences != nil {
 12165  		if err := s.OperationPreferences.Validate(); err != nil {
 12166  			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
 12167  		}
 12168  	}
 12169  
 12170  	if invalidParams.Len() > 0 {
 12171  		return invalidParams
 12172  	}
 12173  	return nil
 12174  }
 12175  
 12176  // SetCallAs sets the CallAs field's value.
 12177  func (s *DetectStackSetDriftInput) SetCallAs(v string) *DetectStackSetDriftInput {
 12178  	s.CallAs = &v
 12179  	return s
 12180  }
 12181  
 12182  // SetOperationId sets the OperationId field's value.
 12183  func (s *DetectStackSetDriftInput) SetOperationId(v string) *DetectStackSetDriftInput {
 12184  	s.OperationId = &v
 12185  	return s
 12186  }
 12187  
 12188  // SetOperationPreferences sets the OperationPreferences field's value.
 12189  func (s *DetectStackSetDriftInput) SetOperationPreferences(v *StackSetOperationPreferences) *DetectStackSetDriftInput {
 12190  	s.OperationPreferences = v
 12191  	return s
 12192  }
 12193  
 12194  // SetStackSetName sets the StackSetName field's value.
 12195  func (s *DetectStackSetDriftInput) SetStackSetName(v string) *DetectStackSetDriftInput {
 12196  	s.StackSetName = &v
 12197  	return s
 12198  }
 12199  
 12200  type DetectStackSetDriftOutput struct {
 12201  	_ struct{} `type:"structure"`
 12202  
 12203  	// The ID of the drift detection stack set operation.
 12204  	//
 12205  	// you can use this operation id with DescribeStackSetOperation to monitor the
 12206  	// progress of the drift detection operation.
 12207  	OperationId *string `min:"1" type:"string"`
 12208  }
 12209  
 12210  // String returns the string representation.
 12211  //
 12212  // API parameter values that are decorated as "sensitive" in the API will not
 12213  // be included in the string output. The member name will be present, but the
 12214  // value will be replaced with "sensitive".
 12215  func (s DetectStackSetDriftOutput) String() string {
 12216  	return awsutil.Prettify(s)
 12217  }
 12218  
 12219  // GoString returns the string representation.
 12220  //
 12221  // API parameter values that are decorated as "sensitive" in the API will not
 12222  // be included in the string output. The member name will be present, but the
 12223  // value will be replaced with "sensitive".
 12224  func (s DetectStackSetDriftOutput) GoString() string {
 12225  	return s.String()
 12226  }
 12227  
 12228  // SetOperationId sets the OperationId field's value.
 12229  func (s *DetectStackSetDriftOutput) SetOperationId(v string) *DetectStackSetDriftOutput {
 12230  	s.OperationId = &v
 12231  	return s
 12232  }
 12233  
 12234  // The input for an EstimateTemplateCost action.
 12235  type EstimateTemplateCostInput struct {
 12236  	_ struct{} `type:"structure"`
 12237  
 12238  	// A list of Parameter structures that specify input parameters.
 12239  	Parameters []*Parameter `type:"list"`
 12240  
 12241  	// Structure containing the template body with a minimum length of 1 byte and
 12242  	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
 12243  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 12244  	// in the CloudFormation User Guide.)
 12245  	//
 12246  	// Conditional: You must pass TemplateBody or TemplateURL. If both are passed,
 12247  	// only TemplateBody is used.
 12248  	TemplateBody *string `min:"1" type:"string"`
 12249  
 12250  	// Location of file containing the template body. The URL must point to a template
 12251  	// that is located in an Amazon S3 bucket or a Systems Manager document. For
 12252  	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 12253  	// in the CloudFormation User Guide.
 12254  	//
 12255  	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
 12256  	// only TemplateBody is used.
 12257  	TemplateURL *string `min:"1" type:"string"`
 12258  }
 12259  
 12260  // String returns the string representation.
 12261  //
 12262  // API parameter values that are decorated as "sensitive" in the API will not
 12263  // be included in the string output. The member name will be present, but the
 12264  // value will be replaced with "sensitive".
 12265  func (s EstimateTemplateCostInput) String() string {
 12266  	return awsutil.Prettify(s)
 12267  }
 12268  
 12269  // GoString returns the string representation.
 12270  //
 12271  // API parameter values that are decorated as "sensitive" in the API will not
 12272  // be included in the string output. The member name will be present, but the
 12273  // value will be replaced with "sensitive".
 12274  func (s EstimateTemplateCostInput) GoString() string {
 12275  	return s.String()
 12276  }
 12277  
 12278  // Validate inspects the fields of the type to determine if they are valid.
 12279  func (s *EstimateTemplateCostInput) Validate() error {
 12280  	invalidParams := request.ErrInvalidParams{Context: "EstimateTemplateCostInput"}
 12281  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
 12282  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
 12283  	}
 12284  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
 12285  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
 12286  	}
 12287  
 12288  	if invalidParams.Len() > 0 {
 12289  		return invalidParams
 12290  	}
 12291  	return nil
 12292  }
 12293  
 12294  // SetParameters sets the Parameters field's value.
 12295  func (s *EstimateTemplateCostInput) SetParameters(v []*Parameter) *EstimateTemplateCostInput {
 12296  	s.Parameters = v
 12297  	return s
 12298  }
 12299  
 12300  // SetTemplateBody sets the TemplateBody field's value.
 12301  func (s *EstimateTemplateCostInput) SetTemplateBody(v string) *EstimateTemplateCostInput {
 12302  	s.TemplateBody = &v
 12303  	return s
 12304  }
 12305  
 12306  // SetTemplateURL sets the TemplateURL field's value.
 12307  func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCostInput {
 12308  	s.TemplateURL = &v
 12309  	return s
 12310  }
 12311  
 12312  // The output for a EstimateTemplateCost action.
 12313  type EstimateTemplateCostOutput struct {
 12314  	_ struct{} `type:"structure"`
 12315  
 12316  	// An Amazon Web Services Simple Monthly Calculator URL with a query string
 12317  	// that describes the resources required to run the template.
 12318  	Url *string `type:"string"`
 12319  }
 12320  
 12321  // String returns the string representation.
 12322  //
 12323  // API parameter values that are decorated as "sensitive" in the API will not
 12324  // be included in the string output. The member name will be present, but the
 12325  // value will be replaced with "sensitive".
 12326  func (s EstimateTemplateCostOutput) String() string {
 12327  	return awsutil.Prettify(s)
 12328  }
 12329  
 12330  // GoString returns the string representation.
 12331  //
 12332  // API parameter values that are decorated as "sensitive" in the API will not
 12333  // be included in the string output. The member name will be present, but the
 12334  // value will be replaced with "sensitive".
 12335  func (s EstimateTemplateCostOutput) GoString() string {
 12336  	return s.String()
 12337  }
 12338  
 12339  // SetUrl sets the Url field's value.
 12340  func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutput {
 12341  	s.Url = &v
 12342  	return s
 12343  }
 12344  
 12345  // The input for the ExecuteChangeSet action.
 12346  type ExecuteChangeSetInput struct {
 12347  	_ struct{} `type:"structure"`
 12348  
 12349  	// The name or ARN of the change set that you want use to update the specified
 12350  	// stack.
 12351  	//
 12352  	// ChangeSetName is a required field
 12353  	ChangeSetName *string `min:"1" type:"string" required:"true"`
 12354  
 12355  	// A unique identifier for this ExecuteChangeSet request. Specify this token
 12356  	// if you plan to retry requests so that CloudFormation knows that you're not
 12357  	// attempting to execute a change set to update a stack with the same name.
 12358  	// You might retry ExecuteChangeSet requests to ensure that CloudFormation successfully
 12359  	// received them.
 12360  	ClientRequestToken *string `min:"1" type:"string"`
 12361  
 12362  	// Preserves the state of previously provisioned resources when an operation
 12363  	// fails.
 12364  	//
 12365  	// Default: True
 12366  	DisableRollback *bool `type:"boolean"`
 12367  
 12368  	// If you specified the name of a change set, specify the stack name or ID (ARN)
 12369  	// that is associated with the change set you want to execute.
 12370  	StackName *string `min:"1" type:"string"`
 12371  }
 12372  
 12373  // String returns the string representation.
 12374  //
 12375  // API parameter values that are decorated as "sensitive" in the API will not
 12376  // be included in the string output. The member name will be present, but the
 12377  // value will be replaced with "sensitive".
 12378  func (s ExecuteChangeSetInput) String() string {
 12379  	return awsutil.Prettify(s)
 12380  }
 12381  
 12382  // GoString returns the string representation.
 12383  //
 12384  // API parameter values that are decorated as "sensitive" in the API will not
 12385  // be included in the string output. The member name will be present, but the
 12386  // value will be replaced with "sensitive".
 12387  func (s ExecuteChangeSetInput) GoString() string {
 12388  	return s.String()
 12389  }
 12390  
 12391  // Validate inspects the fields of the type to determine if they are valid.
 12392  func (s *ExecuteChangeSetInput) Validate() error {
 12393  	invalidParams := request.ErrInvalidParams{Context: "ExecuteChangeSetInput"}
 12394  	if s.ChangeSetName == nil {
 12395  		invalidParams.Add(request.NewErrParamRequired("ChangeSetName"))
 12396  	}
 12397  	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
 12398  		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
 12399  	}
 12400  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 12401  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 12402  	}
 12403  	if s.StackName != nil && len(*s.StackName) < 1 {
 12404  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 12405  	}
 12406  
 12407  	if invalidParams.Len() > 0 {
 12408  		return invalidParams
 12409  	}
 12410  	return nil
 12411  }
 12412  
 12413  // SetChangeSetName sets the ChangeSetName field's value.
 12414  func (s *ExecuteChangeSetInput) SetChangeSetName(v string) *ExecuteChangeSetInput {
 12415  	s.ChangeSetName = &v
 12416  	return s
 12417  }
 12418  
 12419  // SetClientRequestToken sets the ClientRequestToken field's value.
 12420  func (s *ExecuteChangeSetInput) SetClientRequestToken(v string) *ExecuteChangeSetInput {
 12421  	s.ClientRequestToken = &v
 12422  	return s
 12423  }
 12424  
 12425  // SetDisableRollback sets the DisableRollback field's value.
 12426  func (s *ExecuteChangeSetInput) SetDisableRollback(v bool) *ExecuteChangeSetInput {
 12427  	s.DisableRollback = &v
 12428  	return s
 12429  }
 12430  
 12431  // SetStackName sets the StackName field's value.
 12432  func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput {
 12433  	s.StackName = &v
 12434  	return s
 12435  }
 12436  
 12437  // The output for the ExecuteChangeSet action.
 12438  type ExecuteChangeSetOutput struct {
 12439  	_ struct{} `type:"structure"`
 12440  }
 12441  
 12442  // String returns the string representation.
 12443  //
 12444  // API parameter values that are decorated as "sensitive" in the API will not
 12445  // be included in the string output. The member name will be present, but the
 12446  // value will be replaced with "sensitive".
 12447  func (s ExecuteChangeSetOutput) String() string {
 12448  	return awsutil.Prettify(s)
 12449  }
 12450  
 12451  // GoString returns the string representation.
 12452  //
 12453  // API parameter values that are decorated as "sensitive" in the API will not
 12454  // be included in the string output. The member name will be present, but the
 12455  // value will be replaced with "sensitive".
 12456  func (s ExecuteChangeSetOutput) GoString() string {
 12457  	return s.String()
 12458  }
 12459  
 12460  // The Export structure describes the exported output values for a stack.
 12461  type Export struct {
 12462  	_ struct{} `type:"structure"`
 12463  
 12464  	// The stack that contains the exported output name and value.
 12465  	ExportingStackId *string `type:"string"`
 12466  
 12467  	// The name of exported output value. Use this name and the Fn::ImportValue
 12468  	// function to import the associated value into other stacks. The name is defined
 12469  	// in the Export field in the associated stack's Outputs section.
 12470  	Name *string `type:"string"`
 12471  
 12472  	// The value of the exported output, such as a resource physical ID. This value
 12473  	// is defined in the Export field in the associated stack's Outputs section.
 12474  	Value *string `type:"string"`
 12475  }
 12476  
 12477  // String returns the string representation.
 12478  //
 12479  // API parameter values that are decorated as "sensitive" in the API will not
 12480  // be included in the string output. The member name will be present, but the
 12481  // value will be replaced with "sensitive".
 12482  func (s Export) String() string {
 12483  	return awsutil.Prettify(s)
 12484  }
 12485  
 12486  // GoString returns the string representation.
 12487  //
 12488  // API parameter values that are decorated as "sensitive" in the API will not
 12489  // be included in the string output. The member name will be present, but the
 12490  // value will be replaced with "sensitive".
 12491  func (s Export) GoString() string {
 12492  	return s.String()
 12493  }
 12494  
 12495  // SetExportingStackId sets the ExportingStackId field's value.
 12496  func (s *Export) SetExportingStackId(v string) *Export {
 12497  	s.ExportingStackId = &v
 12498  	return s
 12499  }
 12500  
 12501  // SetName sets the Name field's value.
 12502  func (s *Export) SetName(v string) *Export {
 12503  	s.Name = &v
 12504  	return s
 12505  }
 12506  
 12507  // SetValue sets the Value field's value.
 12508  func (s *Export) SetValue(v string) *Export {
 12509  	s.Value = &v
 12510  	return s
 12511  }
 12512  
 12513  // The input for the GetStackPolicy action.
 12514  type GetStackPolicyInput struct {
 12515  	_ struct{} `type:"structure"`
 12516  
 12517  	// The name or unique stack ID that is associated with the stack whose policy
 12518  	// you want to get.
 12519  	//
 12520  	// StackName is a required field
 12521  	StackName *string `type:"string" required:"true"`
 12522  }
 12523  
 12524  // String returns the string representation.
 12525  //
 12526  // API parameter values that are decorated as "sensitive" in the API will not
 12527  // be included in the string output. The member name will be present, but the
 12528  // value will be replaced with "sensitive".
 12529  func (s GetStackPolicyInput) String() string {
 12530  	return awsutil.Prettify(s)
 12531  }
 12532  
 12533  // GoString returns the string representation.
 12534  //
 12535  // API parameter values that are decorated as "sensitive" in the API will not
 12536  // be included in the string output. The member name will be present, but the
 12537  // value will be replaced with "sensitive".
 12538  func (s GetStackPolicyInput) GoString() string {
 12539  	return s.String()
 12540  }
 12541  
 12542  // Validate inspects the fields of the type to determine if they are valid.
 12543  func (s *GetStackPolicyInput) Validate() error {
 12544  	invalidParams := request.ErrInvalidParams{Context: "GetStackPolicyInput"}
 12545  	if s.StackName == nil {
 12546  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 12547  	}
 12548  
 12549  	if invalidParams.Len() > 0 {
 12550  		return invalidParams
 12551  	}
 12552  	return nil
 12553  }
 12554  
 12555  // SetStackName sets the StackName field's value.
 12556  func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput {
 12557  	s.StackName = &v
 12558  	return s
 12559  }
 12560  
 12561  // The output for the GetStackPolicy action.
 12562  type GetStackPolicyOutput struct {
 12563  	_ struct{} `type:"structure"`
 12564  
 12565  	// Structure containing the stack policy body. (For more information, go to
 12566  	// Prevent Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
 12567  	// in the CloudFormation User Guide.)
 12568  	StackPolicyBody *string `min:"1" type:"string"`
 12569  }
 12570  
 12571  // String returns the string representation.
 12572  //
 12573  // API parameter values that are decorated as "sensitive" in the API will not
 12574  // be included in the string output. The member name will be present, but the
 12575  // value will be replaced with "sensitive".
 12576  func (s GetStackPolicyOutput) String() string {
 12577  	return awsutil.Prettify(s)
 12578  }
 12579  
 12580  // GoString returns the string representation.
 12581  //
 12582  // API parameter values that are decorated as "sensitive" in the API will not
 12583  // be included in the string output. The member name will be present, but the
 12584  // value will be replaced with "sensitive".
 12585  func (s GetStackPolicyOutput) GoString() string {
 12586  	return s.String()
 12587  }
 12588  
 12589  // SetStackPolicyBody sets the StackPolicyBody field's value.
 12590  func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutput {
 12591  	s.StackPolicyBody = &v
 12592  	return s
 12593  }
 12594  
 12595  // The input for a GetTemplate action.
 12596  type GetTemplateInput struct {
 12597  	_ struct{} `type:"structure"`
 12598  
 12599  	// The name or Amazon Resource Name (ARN) of a change set for which CloudFormation
 12600  	// returns the associated template. If you specify a name, you must also specify
 12601  	// the StackName.
 12602  	ChangeSetName *string `min:"1" type:"string"`
 12603  
 12604  	// The name or the unique stack ID that is associated with the stack, which
 12605  	// are not always interchangeable:
 12606  	//
 12607  	//    * Running stacks: You can specify either the stack's name or its unique
 12608  	//    stack ID.
 12609  	//
 12610  	//    * Deleted stacks: You must specify the unique stack ID.
 12611  	//
 12612  	// Default: There is no default value.
 12613  	StackName *string `type:"string"`
 12614  
 12615  	// For templates that include transforms, the stage of the template that CloudFormation
 12616  	// returns. To get the user-submitted template, specify Original. To get the
 12617  	// template after CloudFormation has processed all transforms, specify Processed.
 12618  	//
 12619  	// If the template doesn't include transforms, Original and Processed return
 12620  	// the same template. By default, CloudFormation specifies Processed.
 12621  	TemplateStage *string `type:"string" enum:"TemplateStage"`
 12622  }
 12623  
 12624  // String returns the string representation.
 12625  //
 12626  // API parameter values that are decorated as "sensitive" in the API will not
 12627  // be included in the string output. The member name will be present, but the
 12628  // value will be replaced with "sensitive".
 12629  func (s GetTemplateInput) String() string {
 12630  	return awsutil.Prettify(s)
 12631  }
 12632  
 12633  // GoString returns the string representation.
 12634  //
 12635  // API parameter values that are decorated as "sensitive" in the API will not
 12636  // be included in the string output. The member name will be present, but the
 12637  // value will be replaced with "sensitive".
 12638  func (s GetTemplateInput) GoString() string {
 12639  	return s.String()
 12640  }
 12641  
 12642  // Validate inspects the fields of the type to determine if they are valid.
 12643  func (s *GetTemplateInput) Validate() error {
 12644  	invalidParams := request.ErrInvalidParams{Context: "GetTemplateInput"}
 12645  	if s.ChangeSetName != nil && len(*s.ChangeSetName) < 1 {
 12646  		invalidParams.Add(request.NewErrParamMinLen("ChangeSetName", 1))
 12647  	}
 12648  
 12649  	if invalidParams.Len() > 0 {
 12650  		return invalidParams
 12651  	}
 12652  	return nil
 12653  }
 12654  
 12655  // SetChangeSetName sets the ChangeSetName field's value.
 12656  func (s *GetTemplateInput) SetChangeSetName(v string) *GetTemplateInput {
 12657  	s.ChangeSetName = &v
 12658  	return s
 12659  }
 12660  
 12661  // SetStackName sets the StackName field's value.
 12662  func (s *GetTemplateInput) SetStackName(v string) *GetTemplateInput {
 12663  	s.StackName = &v
 12664  	return s
 12665  }
 12666  
 12667  // SetTemplateStage sets the TemplateStage field's value.
 12668  func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput {
 12669  	s.TemplateStage = &v
 12670  	return s
 12671  }
 12672  
 12673  // The output for GetTemplate action.
 12674  type GetTemplateOutput struct {
 12675  	_ struct{} `type:"structure"`
 12676  
 12677  	// The stage of the template that you can retrieve. For stacks, the Original
 12678  	// and Processed templates are always available. For change sets, the Original
 12679  	// template is always available. After CloudFormation finishes creating the
 12680  	// change set, the Processed template becomes available.
 12681  	StagesAvailable []*string `type:"list"`
 12682  
 12683  	// Structure containing the template body. (For more information, go to Template
 12684  	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 12685  	// in the CloudFormation User Guide.)
 12686  	//
 12687  	// CloudFormation returns the same template that was used when the stack was
 12688  	// created.
 12689  	TemplateBody *string `min:"1" type:"string"`
 12690  }
 12691  
 12692  // String returns the string representation.
 12693  //
 12694  // API parameter values that are decorated as "sensitive" in the API will not
 12695  // be included in the string output. The member name will be present, but the
 12696  // value will be replaced with "sensitive".
 12697  func (s GetTemplateOutput) String() string {
 12698  	return awsutil.Prettify(s)
 12699  }
 12700  
 12701  // GoString returns the string representation.
 12702  //
 12703  // API parameter values that are decorated as "sensitive" in the API will not
 12704  // be included in the string output. The member name will be present, but the
 12705  // value will be replaced with "sensitive".
 12706  func (s GetTemplateOutput) GoString() string {
 12707  	return s.String()
 12708  }
 12709  
 12710  // SetStagesAvailable sets the StagesAvailable field's value.
 12711  func (s *GetTemplateOutput) SetStagesAvailable(v []*string) *GetTemplateOutput {
 12712  	s.StagesAvailable = v
 12713  	return s
 12714  }
 12715  
 12716  // SetTemplateBody sets the TemplateBody field's value.
 12717  func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput {
 12718  	s.TemplateBody = &v
 12719  	return s
 12720  }
 12721  
 12722  // The input for the GetTemplateSummary action.
 12723  type GetTemplateSummaryInput struct {
 12724  	_ struct{} `type:"structure"`
 12725  
 12726  	// [Service-managed permissions] Specifies whether you are acting as an account
 12727  	// administrator in the organization's management account or as a delegated
 12728  	// administrator in a member account.
 12729  	//
 12730  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 12731  	// permissions.
 12732  	//
 12733  	//    * If you are signed in to the management account, specify SELF.
 12734  	//
 12735  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 12736  	//    Your Amazon Web Services account must be registered as a delegated administrator
 12737  	//    in the management account. For more information, see Register a delegated
 12738  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 12739  	//    in the CloudFormation User Guide.
 12740  	CallAs *string `type:"string" enum:"CallAs"`
 12741  
 12742  	// The name or the stack ID that is associated with the stack, which are not
 12743  	// always interchangeable. For running stacks, you can specify either the stack's
 12744  	// name or its unique stack ID. For deleted stack, you must specify the unique
 12745  	// stack ID.
 12746  	//
 12747  	// Conditional: You must specify only one of the following parameters: StackName,
 12748  	// StackSetName, TemplateBody, or TemplateURL.
 12749  	StackName *string `min:"1" type:"string"`
 12750  
 12751  	// The name or unique ID of the stack set from which the stack was created.
 12752  	//
 12753  	// Conditional: You must specify only one of the following parameters: StackName,
 12754  	// StackSetName, TemplateBody, or TemplateURL.
 12755  	StackSetName *string `type:"string"`
 12756  
 12757  	// Structure containing the template body with a minimum length of 1 byte and
 12758  	// a maximum length of 51,200 bytes. For more information about templates, see
 12759  	// Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 12760  	// in the CloudFormation User Guide.
 12761  	//
 12762  	// Conditional: You must specify only one of the following parameters: StackName,
 12763  	// StackSetName, TemplateBody, or TemplateURL.
 12764  	TemplateBody *string `min:"1" type:"string"`
 12765  
 12766  	// Location of file containing the template body. The URL must point to a template
 12767  	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
 12768  	// Manager document. For more information about templates, see Template Anatomy
 12769  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 12770  	// in the CloudFormation User Guide.
 12771  	//
 12772  	// Conditional: You must specify only one of the following parameters: StackName,
 12773  	// StackSetName, TemplateBody, or TemplateURL.
 12774  	TemplateURL *string `min:"1" type:"string"`
 12775  }
 12776  
 12777  // String returns the string representation.
 12778  //
 12779  // API parameter values that are decorated as "sensitive" in the API will not
 12780  // be included in the string output. The member name will be present, but the
 12781  // value will be replaced with "sensitive".
 12782  func (s GetTemplateSummaryInput) String() string {
 12783  	return awsutil.Prettify(s)
 12784  }
 12785  
 12786  // GoString returns the string representation.
 12787  //
 12788  // API parameter values that are decorated as "sensitive" in the API will not
 12789  // be included in the string output. The member name will be present, but the
 12790  // value will be replaced with "sensitive".
 12791  func (s GetTemplateSummaryInput) GoString() string {
 12792  	return s.String()
 12793  }
 12794  
 12795  // Validate inspects the fields of the type to determine if they are valid.
 12796  func (s *GetTemplateSummaryInput) Validate() error {
 12797  	invalidParams := request.ErrInvalidParams{Context: "GetTemplateSummaryInput"}
 12798  	if s.StackName != nil && len(*s.StackName) < 1 {
 12799  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 12800  	}
 12801  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
 12802  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
 12803  	}
 12804  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
 12805  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
 12806  	}
 12807  
 12808  	if invalidParams.Len() > 0 {
 12809  		return invalidParams
 12810  	}
 12811  	return nil
 12812  }
 12813  
 12814  // SetCallAs sets the CallAs field's value.
 12815  func (s *GetTemplateSummaryInput) SetCallAs(v string) *GetTemplateSummaryInput {
 12816  	s.CallAs = &v
 12817  	return s
 12818  }
 12819  
 12820  // SetStackName sets the StackName field's value.
 12821  func (s *GetTemplateSummaryInput) SetStackName(v string) *GetTemplateSummaryInput {
 12822  	s.StackName = &v
 12823  	return s
 12824  }
 12825  
 12826  // SetStackSetName sets the StackSetName field's value.
 12827  func (s *GetTemplateSummaryInput) SetStackSetName(v string) *GetTemplateSummaryInput {
 12828  	s.StackSetName = &v
 12829  	return s
 12830  }
 12831  
 12832  // SetTemplateBody sets the TemplateBody field's value.
 12833  func (s *GetTemplateSummaryInput) SetTemplateBody(v string) *GetTemplateSummaryInput {
 12834  	s.TemplateBody = &v
 12835  	return s
 12836  }
 12837  
 12838  // SetTemplateURL sets the TemplateURL field's value.
 12839  func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryInput {
 12840  	s.TemplateURL = &v
 12841  	return s
 12842  }
 12843  
 12844  // The output for the GetTemplateSummary action.
 12845  type GetTemplateSummaryOutput struct {
 12846  	_ struct{} `type:"structure"`
 12847  
 12848  	// The capabilities found within the template. If your template contains IAM
 12849  	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
 12850  	// for this parameter when you use the CreateStack or UpdateStack actions with
 12851  	// your template; otherwise, those actions return an InsufficientCapabilities
 12852  	// error.
 12853  	//
 12854  	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
 12855  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
 12856  	Capabilities []*string `type:"list"`
 12857  
 12858  	// The list of resources that generated the values in the Capabilities response
 12859  	// element.
 12860  	CapabilitiesReason *string `type:"string"`
 12861  
 12862  	// A list of the transforms that are declared in the template.
 12863  	DeclaredTransforms []*string `type:"list"`
 12864  
 12865  	// The value that is defined in the Description property of the template.
 12866  	Description *string `min:"1" type:"string"`
 12867  
 12868  	// The value that is defined for the Metadata property of the template.
 12869  	Metadata *string `type:"string"`
 12870  
 12871  	// A list of parameter declarations that describe various properties for each
 12872  	// parameter.
 12873  	Parameters []*ParameterDeclaration `type:"list"`
 12874  
 12875  	// A list of resource identifier summaries that describe the target resources
 12876  	// of an import operation and the properties you can provide during the import
 12877  	// to identify the target resources. For example, BucketName is a possible identifier
 12878  	// property for an AWS::S3::Bucket resource.
 12879  	ResourceIdentifierSummaries []*ResourceIdentifierSummary `type:"list"`
 12880  
 12881  	// A list of all the template resource types that are defined in the template,
 12882  	// such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance.
 12883  	ResourceTypes []*string `type:"list"`
 12884  
 12885  	// The Amazon Web Services template format version, which identifies the capabilities
 12886  	// of the template.
 12887  	Version *string `type:"string"`
 12888  }
 12889  
 12890  // String returns the string representation.
 12891  //
 12892  // API parameter values that are decorated as "sensitive" in the API will not
 12893  // be included in the string output. The member name will be present, but the
 12894  // value will be replaced with "sensitive".
 12895  func (s GetTemplateSummaryOutput) String() string {
 12896  	return awsutil.Prettify(s)
 12897  }
 12898  
 12899  // GoString returns the string representation.
 12900  //
 12901  // API parameter values that are decorated as "sensitive" in the API will not
 12902  // be included in the string output. The member name will be present, but the
 12903  // value will be replaced with "sensitive".
 12904  func (s GetTemplateSummaryOutput) GoString() string {
 12905  	return s.String()
 12906  }
 12907  
 12908  // SetCapabilities sets the Capabilities field's value.
 12909  func (s *GetTemplateSummaryOutput) SetCapabilities(v []*string) *GetTemplateSummaryOutput {
 12910  	s.Capabilities = v
 12911  	return s
 12912  }
 12913  
 12914  // SetCapabilitiesReason sets the CapabilitiesReason field's value.
 12915  func (s *GetTemplateSummaryOutput) SetCapabilitiesReason(v string) *GetTemplateSummaryOutput {
 12916  	s.CapabilitiesReason = &v
 12917  	return s
 12918  }
 12919  
 12920  // SetDeclaredTransforms sets the DeclaredTransforms field's value.
 12921  func (s *GetTemplateSummaryOutput) SetDeclaredTransforms(v []*string) *GetTemplateSummaryOutput {
 12922  	s.DeclaredTransforms = v
 12923  	return s
 12924  }
 12925  
 12926  // SetDescription sets the Description field's value.
 12927  func (s *GetTemplateSummaryOutput) SetDescription(v string) *GetTemplateSummaryOutput {
 12928  	s.Description = &v
 12929  	return s
 12930  }
 12931  
 12932  // SetMetadata sets the Metadata field's value.
 12933  func (s *GetTemplateSummaryOutput) SetMetadata(v string) *GetTemplateSummaryOutput {
 12934  	s.Metadata = &v
 12935  	return s
 12936  }
 12937  
 12938  // SetParameters sets the Parameters field's value.
 12939  func (s *GetTemplateSummaryOutput) SetParameters(v []*ParameterDeclaration) *GetTemplateSummaryOutput {
 12940  	s.Parameters = v
 12941  	return s
 12942  }
 12943  
 12944  // SetResourceIdentifierSummaries sets the ResourceIdentifierSummaries field's value.
 12945  func (s *GetTemplateSummaryOutput) SetResourceIdentifierSummaries(v []*ResourceIdentifierSummary) *GetTemplateSummaryOutput {
 12946  	s.ResourceIdentifierSummaries = v
 12947  	return s
 12948  }
 12949  
 12950  // SetResourceTypes sets the ResourceTypes field's value.
 12951  func (s *GetTemplateSummaryOutput) SetResourceTypes(v []*string) *GetTemplateSummaryOutput {
 12952  	s.ResourceTypes = v
 12953  	return s
 12954  }
 12955  
 12956  // SetVersion sets the Version field's value.
 12957  func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutput {
 12958  	s.Version = &v
 12959  	return s
 12960  }
 12961  
 12962  type ImportStacksToStackSetInput struct {
 12963  	_ struct{} `type:"structure"`
 12964  
 12965  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 12966  	// permissions.
 12967  	//
 12968  	//    * If you are signed in to the management account, specify SELF.
 12969  	//
 12970  	//    * For service managed stack sets, specify DELEGATED_ADMIN.
 12971  	CallAs *string `type:"string" enum:"CallAs"`
 12972  
 12973  	// A unique, user defined, identifier for the stack set operation.
 12974  	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
 12975  
 12976  	// The user-specified preferences for how CloudFormation performs a stack set
 12977  	// operation.
 12978  	//
 12979  	// For more information on maximum concurrent accounts and failure tolerance,
 12980  	// see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
 12981  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
 12982  
 12983  	// The IDs of the stacks you are importing into a stack set. You import up to
 12984  	// 10 stacks per stack set at a time.
 12985  	//
 12986  	// StackIds is a required field
 12987  	StackIds []*string `type:"list" required:"true"`
 12988  
 12989  	// The name of the stack set. The name must be unique in the Region where you
 12990  	// create your stack set.
 12991  	//
 12992  	// StackSetName is a required field
 12993  	StackSetName *string `type:"string" required:"true"`
 12994  }
 12995  
 12996  // String returns the string representation.
 12997  //
 12998  // API parameter values that are decorated as "sensitive" in the API will not
 12999  // be included in the string output. The member name will be present, but the
 13000  // value will be replaced with "sensitive".
 13001  func (s ImportStacksToStackSetInput) String() string {
 13002  	return awsutil.Prettify(s)
 13003  }
 13004  
 13005  // GoString returns the string representation.
 13006  //
 13007  // API parameter values that are decorated as "sensitive" in the API will not
 13008  // be included in the string output. The member name will be present, but the
 13009  // value will be replaced with "sensitive".
 13010  func (s ImportStacksToStackSetInput) GoString() string {
 13011  	return s.String()
 13012  }
 13013  
 13014  // Validate inspects the fields of the type to determine if they are valid.
 13015  func (s *ImportStacksToStackSetInput) Validate() error {
 13016  	invalidParams := request.ErrInvalidParams{Context: "ImportStacksToStackSetInput"}
 13017  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 13018  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 13019  	}
 13020  	if s.StackIds == nil {
 13021  		invalidParams.Add(request.NewErrParamRequired("StackIds"))
 13022  	}
 13023  	if s.StackSetName == nil {
 13024  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 13025  	}
 13026  	if s.OperationPreferences != nil {
 13027  		if err := s.OperationPreferences.Validate(); err != nil {
 13028  			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
 13029  		}
 13030  	}
 13031  
 13032  	if invalidParams.Len() > 0 {
 13033  		return invalidParams
 13034  	}
 13035  	return nil
 13036  }
 13037  
 13038  // SetCallAs sets the CallAs field's value.
 13039  func (s *ImportStacksToStackSetInput) SetCallAs(v string) *ImportStacksToStackSetInput {
 13040  	s.CallAs = &v
 13041  	return s
 13042  }
 13043  
 13044  // SetOperationId sets the OperationId field's value.
 13045  func (s *ImportStacksToStackSetInput) SetOperationId(v string) *ImportStacksToStackSetInput {
 13046  	s.OperationId = &v
 13047  	return s
 13048  }
 13049  
 13050  // SetOperationPreferences sets the OperationPreferences field's value.
 13051  func (s *ImportStacksToStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *ImportStacksToStackSetInput {
 13052  	s.OperationPreferences = v
 13053  	return s
 13054  }
 13055  
 13056  // SetStackIds sets the StackIds field's value.
 13057  func (s *ImportStacksToStackSetInput) SetStackIds(v []*string) *ImportStacksToStackSetInput {
 13058  	s.StackIds = v
 13059  	return s
 13060  }
 13061  
 13062  // SetStackSetName sets the StackSetName field's value.
 13063  func (s *ImportStacksToStackSetInput) SetStackSetName(v string) *ImportStacksToStackSetInput {
 13064  	s.StackSetName = &v
 13065  	return s
 13066  }
 13067  
 13068  type ImportStacksToStackSetOutput struct {
 13069  	_ struct{} `type:"structure"`
 13070  
 13071  	// The unique identifier for the stack set operation.
 13072  	OperationId *string `min:"1" type:"string"`
 13073  }
 13074  
 13075  // String returns the string representation.
 13076  //
 13077  // API parameter values that are decorated as "sensitive" in the API will not
 13078  // be included in the string output. The member name will be present, but the
 13079  // value will be replaced with "sensitive".
 13080  func (s ImportStacksToStackSetOutput) String() string {
 13081  	return awsutil.Prettify(s)
 13082  }
 13083  
 13084  // GoString returns the string representation.
 13085  //
 13086  // API parameter values that are decorated as "sensitive" in the API will not
 13087  // be included in the string output. The member name will be present, but the
 13088  // value will be replaced with "sensitive".
 13089  func (s ImportStacksToStackSetOutput) GoString() string {
 13090  	return s.String()
 13091  }
 13092  
 13093  // SetOperationId sets the OperationId field's value.
 13094  func (s *ImportStacksToStackSetOutput) SetOperationId(v string) *ImportStacksToStackSetOutput {
 13095  	s.OperationId = &v
 13096  	return s
 13097  }
 13098  
 13099  // The input for the ListChangeSets action.
 13100  type ListChangeSetsInput struct {
 13101  	_ struct{} `type:"structure"`
 13102  
 13103  	// A string (provided by the ListChangeSets response output) that identifies
 13104  	// the next page of change sets that you want to retrieve.
 13105  	NextToken *string `min:"1" type:"string"`
 13106  
 13107  	// The name or the Amazon Resource Name (ARN) of the stack for which you want
 13108  	// to list change sets.
 13109  	//
 13110  	// StackName is a required field
 13111  	StackName *string `min:"1" type:"string" required:"true"`
 13112  }
 13113  
 13114  // String returns the string representation.
 13115  //
 13116  // API parameter values that are decorated as "sensitive" in the API will not
 13117  // be included in the string output. The member name will be present, but the
 13118  // value will be replaced with "sensitive".
 13119  func (s ListChangeSetsInput) String() string {
 13120  	return awsutil.Prettify(s)
 13121  }
 13122  
 13123  // GoString returns the string representation.
 13124  //
 13125  // API parameter values that are decorated as "sensitive" in the API will not
 13126  // be included in the string output. The member name will be present, but the
 13127  // value will be replaced with "sensitive".
 13128  func (s ListChangeSetsInput) GoString() string {
 13129  	return s.String()
 13130  }
 13131  
 13132  // Validate inspects the fields of the type to determine if they are valid.
 13133  func (s *ListChangeSetsInput) Validate() error {
 13134  	invalidParams := request.ErrInvalidParams{Context: "ListChangeSetsInput"}
 13135  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13136  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13137  	}
 13138  	if s.StackName == nil {
 13139  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 13140  	}
 13141  	if s.StackName != nil && len(*s.StackName) < 1 {
 13142  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 13143  	}
 13144  
 13145  	if invalidParams.Len() > 0 {
 13146  		return invalidParams
 13147  	}
 13148  	return nil
 13149  }
 13150  
 13151  // SetNextToken sets the NextToken field's value.
 13152  func (s *ListChangeSetsInput) SetNextToken(v string) *ListChangeSetsInput {
 13153  	s.NextToken = &v
 13154  	return s
 13155  }
 13156  
 13157  // SetStackName sets the StackName field's value.
 13158  func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput {
 13159  	s.StackName = &v
 13160  	return s
 13161  }
 13162  
 13163  // The output for the ListChangeSets action.
 13164  type ListChangeSetsOutput struct {
 13165  	_ struct{} `type:"structure"`
 13166  
 13167  	// If the output exceeds 1 MB, a string that identifies the next page of change
 13168  	// sets. If there is no additional page, this value is null.
 13169  	NextToken *string `min:"1" type:"string"`
 13170  
 13171  	// A list of ChangeSetSummary structures that provides the ID and status of
 13172  	// each change set for the specified stack.
 13173  	Summaries []*ChangeSetSummary `type:"list"`
 13174  }
 13175  
 13176  // String returns the string representation.
 13177  //
 13178  // API parameter values that are decorated as "sensitive" in the API will not
 13179  // be included in the string output. The member name will be present, but the
 13180  // value will be replaced with "sensitive".
 13181  func (s ListChangeSetsOutput) String() string {
 13182  	return awsutil.Prettify(s)
 13183  }
 13184  
 13185  // GoString returns the string representation.
 13186  //
 13187  // API parameter values that are decorated as "sensitive" in the API will not
 13188  // be included in the string output. The member name will be present, but the
 13189  // value will be replaced with "sensitive".
 13190  func (s ListChangeSetsOutput) GoString() string {
 13191  	return s.String()
 13192  }
 13193  
 13194  // SetNextToken sets the NextToken field's value.
 13195  func (s *ListChangeSetsOutput) SetNextToken(v string) *ListChangeSetsOutput {
 13196  	s.NextToken = &v
 13197  	return s
 13198  }
 13199  
 13200  // SetSummaries sets the Summaries field's value.
 13201  func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSetsOutput {
 13202  	s.Summaries = v
 13203  	return s
 13204  }
 13205  
 13206  type ListExportsInput struct {
 13207  	_ struct{} `type:"structure"`
 13208  
 13209  	// A string (provided by the ListExports response output) that identifies the
 13210  	// next page of exported output values that you asked to retrieve.
 13211  	NextToken *string `min:"1" type:"string"`
 13212  }
 13213  
 13214  // String returns the string representation.
 13215  //
 13216  // API parameter values that are decorated as "sensitive" in the API will not
 13217  // be included in the string output. The member name will be present, but the
 13218  // value will be replaced with "sensitive".
 13219  func (s ListExportsInput) String() string {
 13220  	return awsutil.Prettify(s)
 13221  }
 13222  
 13223  // GoString returns the string representation.
 13224  //
 13225  // API parameter values that are decorated as "sensitive" in the API will not
 13226  // be included in the string output. The member name will be present, but the
 13227  // value will be replaced with "sensitive".
 13228  func (s ListExportsInput) GoString() string {
 13229  	return s.String()
 13230  }
 13231  
 13232  // Validate inspects the fields of the type to determine if they are valid.
 13233  func (s *ListExportsInput) Validate() error {
 13234  	invalidParams := request.ErrInvalidParams{Context: "ListExportsInput"}
 13235  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13236  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13237  	}
 13238  
 13239  	if invalidParams.Len() > 0 {
 13240  		return invalidParams
 13241  	}
 13242  	return nil
 13243  }
 13244  
 13245  // SetNextToken sets the NextToken field's value.
 13246  func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput {
 13247  	s.NextToken = &v
 13248  	return s
 13249  }
 13250  
 13251  type ListExportsOutput struct {
 13252  	_ struct{} `type:"structure"`
 13253  
 13254  	// The output for the ListExports action.
 13255  	Exports []*Export `type:"list"`
 13256  
 13257  	// If the output exceeds 100 exported output values, a string that identifies
 13258  	// the next page of exports. If there is no additional page, this value is null.
 13259  	NextToken *string `min:"1" type:"string"`
 13260  }
 13261  
 13262  // String returns the string representation.
 13263  //
 13264  // API parameter values that are decorated as "sensitive" in the API will not
 13265  // be included in the string output. The member name will be present, but the
 13266  // value will be replaced with "sensitive".
 13267  func (s ListExportsOutput) String() string {
 13268  	return awsutil.Prettify(s)
 13269  }
 13270  
 13271  // GoString returns the string representation.
 13272  //
 13273  // API parameter values that are decorated as "sensitive" in the API will not
 13274  // be included in the string output. The member name will be present, but the
 13275  // value will be replaced with "sensitive".
 13276  func (s ListExportsOutput) GoString() string {
 13277  	return s.String()
 13278  }
 13279  
 13280  // SetExports sets the Exports field's value.
 13281  func (s *ListExportsOutput) SetExports(v []*Export) *ListExportsOutput {
 13282  	s.Exports = v
 13283  	return s
 13284  }
 13285  
 13286  // SetNextToken sets the NextToken field's value.
 13287  func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput {
 13288  	s.NextToken = &v
 13289  	return s
 13290  }
 13291  
 13292  type ListImportsInput struct {
 13293  	_ struct{} `type:"structure"`
 13294  
 13295  	// The name of the exported output value. CloudFormation returns the stack names
 13296  	// that are importing this value.
 13297  	//
 13298  	// ExportName is a required field
 13299  	ExportName *string `type:"string" required:"true"`
 13300  
 13301  	// A string (provided by the ListImports response output) that identifies the
 13302  	// next page of stacks that are importing the specified exported output value.
 13303  	NextToken *string `min:"1" type:"string"`
 13304  }
 13305  
 13306  // String returns the string representation.
 13307  //
 13308  // API parameter values that are decorated as "sensitive" in the API will not
 13309  // be included in the string output. The member name will be present, but the
 13310  // value will be replaced with "sensitive".
 13311  func (s ListImportsInput) String() string {
 13312  	return awsutil.Prettify(s)
 13313  }
 13314  
 13315  // GoString returns the string representation.
 13316  //
 13317  // API parameter values that are decorated as "sensitive" in the API will not
 13318  // be included in the string output. The member name will be present, but the
 13319  // value will be replaced with "sensitive".
 13320  func (s ListImportsInput) GoString() string {
 13321  	return s.String()
 13322  }
 13323  
 13324  // Validate inspects the fields of the type to determine if they are valid.
 13325  func (s *ListImportsInput) Validate() error {
 13326  	invalidParams := request.ErrInvalidParams{Context: "ListImportsInput"}
 13327  	if s.ExportName == nil {
 13328  		invalidParams.Add(request.NewErrParamRequired("ExportName"))
 13329  	}
 13330  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13331  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13332  	}
 13333  
 13334  	if invalidParams.Len() > 0 {
 13335  		return invalidParams
 13336  	}
 13337  	return nil
 13338  }
 13339  
 13340  // SetExportName sets the ExportName field's value.
 13341  func (s *ListImportsInput) SetExportName(v string) *ListImportsInput {
 13342  	s.ExportName = &v
 13343  	return s
 13344  }
 13345  
 13346  // SetNextToken sets the NextToken field's value.
 13347  func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput {
 13348  	s.NextToken = &v
 13349  	return s
 13350  }
 13351  
 13352  type ListImportsOutput struct {
 13353  	_ struct{} `type:"structure"`
 13354  
 13355  	// A list of stack names that are importing the specified exported output value.
 13356  	Imports []*string `type:"list"`
 13357  
 13358  	// A string that identifies the next page of exports. If there is no additional
 13359  	// page, this value is null.
 13360  	NextToken *string `min:"1" type:"string"`
 13361  }
 13362  
 13363  // String returns the string representation.
 13364  //
 13365  // API parameter values that are decorated as "sensitive" in the API will not
 13366  // be included in the string output. The member name will be present, but the
 13367  // value will be replaced with "sensitive".
 13368  func (s ListImportsOutput) String() string {
 13369  	return awsutil.Prettify(s)
 13370  }
 13371  
 13372  // GoString returns the string representation.
 13373  //
 13374  // API parameter values that are decorated as "sensitive" in the API will not
 13375  // be included in the string output. The member name will be present, but the
 13376  // value will be replaced with "sensitive".
 13377  func (s ListImportsOutput) GoString() string {
 13378  	return s.String()
 13379  }
 13380  
 13381  // SetImports sets the Imports field's value.
 13382  func (s *ListImportsOutput) SetImports(v []*string) *ListImportsOutput {
 13383  	s.Imports = v
 13384  	return s
 13385  }
 13386  
 13387  // SetNextToken sets the NextToken field's value.
 13388  func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput {
 13389  	s.NextToken = &v
 13390  	return s
 13391  }
 13392  
 13393  type ListStackInstancesInput struct {
 13394  	_ struct{} `type:"structure"`
 13395  
 13396  	// [Service-managed permissions] Specifies whether you are acting as an account
 13397  	// administrator in the organization's management account or as a delegated
 13398  	// administrator in a member account.
 13399  	//
 13400  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 13401  	// permissions.
 13402  	//
 13403  	//    * If you are signed in to the management account, specify SELF.
 13404  	//
 13405  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 13406  	//    Your Amazon Web Services account must be registered as a delegated administrator
 13407  	//    in the management account. For more information, see Register a delegated
 13408  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 13409  	//    in the CloudFormation User Guide.
 13410  	CallAs *string `type:"string" enum:"CallAs"`
 13411  
 13412  	// The status that stack instances are filtered by.
 13413  	Filters []*StackInstanceFilter `type:"list"`
 13414  
 13415  	// The maximum number of results to be returned with a single call. If the number
 13416  	// of available results exceeds this maximum, the response includes a NextToken
 13417  	// value that you can assign to the NextToken request parameter to get the next
 13418  	// set of results.
 13419  	MaxResults *int64 `min:"1" type:"integer"`
 13420  
 13421  	// If the previous request didn't return all of the remaining results, the response's
 13422  	// NextToken parameter value is set to a token. To retrieve the next set of
 13423  	// results, call ListStackInstances again and assign that token to the request
 13424  	// object's NextToken parameter. If there are no remaining results, the previous
 13425  	// response object's NextToken parameter is set to null.
 13426  	NextToken *string `min:"1" type:"string"`
 13427  
 13428  	// The name of the Amazon Web Services account that you want to list stack instances
 13429  	// for.
 13430  	StackInstanceAccount *string `type:"string"`
 13431  
 13432  	// The name of the Region where you want to list stack instances.
 13433  	StackInstanceRegion *string `type:"string"`
 13434  
 13435  	// The name or unique ID of the stack set that you want to list stack instances
 13436  	// for.
 13437  	//
 13438  	// StackSetName is a required field
 13439  	StackSetName *string `type:"string" required:"true"`
 13440  }
 13441  
 13442  // String returns the string representation.
 13443  //
 13444  // API parameter values that are decorated as "sensitive" in the API will not
 13445  // be included in the string output. The member name will be present, but the
 13446  // value will be replaced with "sensitive".
 13447  func (s ListStackInstancesInput) String() string {
 13448  	return awsutil.Prettify(s)
 13449  }
 13450  
 13451  // GoString returns the string representation.
 13452  //
 13453  // API parameter values that are decorated as "sensitive" in the API will not
 13454  // be included in the string output. The member name will be present, but the
 13455  // value will be replaced with "sensitive".
 13456  func (s ListStackInstancesInput) GoString() string {
 13457  	return s.String()
 13458  }
 13459  
 13460  // Validate inspects the fields of the type to determine if they are valid.
 13461  func (s *ListStackInstancesInput) Validate() error {
 13462  	invalidParams := request.ErrInvalidParams{Context: "ListStackInstancesInput"}
 13463  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13464  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13465  	}
 13466  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13467  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13468  	}
 13469  	if s.StackSetName == nil {
 13470  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 13471  	}
 13472  	if s.Filters != nil {
 13473  		for i, v := range s.Filters {
 13474  			if v == nil {
 13475  				continue
 13476  			}
 13477  			if err := v.Validate(); err != nil {
 13478  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
 13479  			}
 13480  		}
 13481  	}
 13482  
 13483  	if invalidParams.Len() > 0 {
 13484  		return invalidParams
 13485  	}
 13486  	return nil
 13487  }
 13488  
 13489  // SetCallAs sets the CallAs field's value.
 13490  func (s *ListStackInstancesInput) SetCallAs(v string) *ListStackInstancesInput {
 13491  	s.CallAs = &v
 13492  	return s
 13493  }
 13494  
 13495  // SetFilters sets the Filters field's value.
 13496  func (s *ListStackInstancesInput) SetFilters(v []*StackInstanceFilter) *ListStackInstancesInput {
 13497  	s.Filters = v
 13498  	return s
 13499  }
 13500  
 13501  // SetMaxResults sets the MaxResults field's value.
 13502  func (s *ListStackInstancesInput) SetMaxResults(v int64) *ListStackInstancesInput {
 13503  	s.MaxResults = &v
 13504  	return s
 13505  }
 13506  
 13507  // SetNextToken sets the NextToken field's value.
 13508  func (s *ListStackInstancesInput) SetNextToken(v string) *ListStackInstancesInput {
 13509  	s.NextToken = &v
 13510  	return s
 13511  }
 13512  
 13513  // SetStackInstanceAccount sets the StackInstanceAccount field's value.
 13514  func (s *ListStackInstancesInput) SetStackInstanceAccount(v string) *ListStackInstancesInput {
 13515  	s.StackInstanceAccount = &v
 13516  	return s
 13517  }
 13518  
 13519  // SetStackInstanceRegion sets the StackInstanceRegion field's value.
 13520  func (s *ListStackInstancesInput) SetStackInstanceRegion(v string) *ListStackInstancesInput {
 13521  	s.StackInstanceRegion = &v
 13522  	return s
 13523  }
 13524  
 13525  // SetStackSetName sets the StackSetName field's value.
 13526  func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesInput {
 13527  	s.StackSetName = &v
 13528  	return s
 13529  }
 13530  
 13531  type ListStackInstancesOutput struct {
 13532  	_ struct{} `type:"structure"`
 13533  
 13534  	// If the request doesn't return all of the remaining results, NextToken is
 13535  	// set to a token. To retrieve the next set of results, call ListStackInstances
 13536  	// again and assign that token to the request object's NextToken parameter.
 13537  	// If the request returns all results, NextToken is set to null.
 13538  	NextToken *string `min:"1" type:"string"`
 13539  
 13540  	// A list of StackInstanceSummary structures that contain information about
 13541  	// the specified stack instances.
 13542  	Summaries []*StackInstanceSummary `type:"list"`
 13543  }
 13544  
 13545  // String returns the string representation.
 13546  //
 13547  // API parameter values that are decorated as "sensitive" in the API will not
 13548  // be included in the string output. The member name will be present, but the
 13549  // value will be replaced with "sensitive".
 13550  func (s ListStackInstancesOutput) String() string {
 13551  	return awsutil.Prettify(s)
 13552  }
 13553  
 13554  // GoString returns the string representation.
 13555  //
 13556  // API parameter values that are decorated as "sensitive" in the API will not
 13557  // be included in the string output. The member name will be present, but the
 13558  // value will be replaced with "sensitive".
 13559  func (s ListStackInstancesOutput) GoString() string {
 13560  	return s.String()
 13561  }
 13562  
 13563  // SetNextToken sets the NextToken field's value.
 13564  func (s *ListStackInstancesOutput) SetNextToken(v string) *ListStackInstancesOutput {
 13565  	s.NextToken = &v
 13566  	return s
 13567  }
 13568  
 13569  // SetSummaries sets the Summaries field's value.
 13570  func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *ListStackInstancesOutput {
 13571  	s.Summaries = v
 13572  	return s
 13573  }
 13574  
 13575  // The input for the ListStackResource action.
 13576  type ListStackResourcesInput struct {
 13577  	_ struct{} `type:"structure"`
 13578  
 13579  	// A string that identifies the next page of stack resources that you want to
 13580  	// retrieve.
 13581  	NextToken *string `min:"1" type:"string"`
 13582  
 13583  	// The name or the unique stack ID that is associated with the stack, which
 13584  	// are not always interchangeable:
 13585  	//
 13586  	//    * Running stacks: You can specify either the stack's name or its unique
 13587  	//    stack ID.
 13588  	//
 13589  	//    * Deleted stacks: You must specify the unique stack ID.
 13590  	//
 13591  	// Default: There is no default value.
 13592  	//
 13593  	// StackName is a required field
 13594  	StackName *string `type:"string" required:"true"`
 13595  }
 13596  
 13597  // String returns the string representation.
 13598  //
 13599  // API parameter values that are decorated as "sensitive" in the API will not
 13600  // be included in the string output. The member name will be present, but the
 13601  // value will be replaced with "sensitive".
 13602  func (s ListStackResourcesInput) String() string {
 13603  	return awsutil.Prettify(s)
 13604  }
 13605  
 13606  // GoString returns the string representation.
 13607  //
 13608  // API parameter values that are decorated as "sensitive" in the API will not
 13609  // be included in the string output. The member name will be present, but the
 13610  // value will be replaced with "sensitive".
 13611  func (s ListStackResourcesInput) GoString() string {
 13612  	return s.String()
 13613  }
 13614  
 13615  // Validate inspects the fields of the type to determine if they are valid.
 13616  func (s *ListStackResourcesInput) Validate() error {
 13617  	invalidParams := request.ErrInvalidParams{Context: "ListStackResourcesInput"}
 13618  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13619  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13620  	}
 13621  	if s.StackName == nil {
 13622  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 13623  	}
 13624  
 13625  	if invalidParams.Len() > 0 {
 13626  		return invalidParams
 13627  	}
 13628  	return nil
 13629  }
 13630  
 13631  // SetNextToken sets the NextToken field's value.
 13632  func (s *ListStackResourcesInput) SetNextToken(v string) *ListStackResourcesInput {
 13633  	s.NextToken = &v
 13634  	return s
 13635  }
 13636  
 13637  // SetStackName sets the StackName field's value.
 13638  func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInput {
 13639  	s.StackName = &v
 13640  	return s
 13641  }
 13642  
 13643  // The output for a ListStackResources action.
 13644  type ListStackResourcesOutput struct {
 13645  	_ struct{} `type:"structure"`
 13646  
 13647  	// If the output exceeds 1 MB, a string that identifies the next page of stack
 13648  	// resources. If no additional page exists, this value is null.
 13649  	NextToken *string `min:"1" type:"string"`
 13650  
 13651  	// A list of StackResourceSummary structures.
 13652  	StackResourceSummaries []*StackResourceSummary `type:"list"`
 13653  }
 13654  
 13655  // String returns the string representation.
 13656  //
 13657  // API parameter values that are decorated as "sensitive" in the API will not
 13658  // be included in the string output. The member name will be present, but the
 13659  // value will be replaced with "sensitive".
 13660  func (s ListStackResourcesOutput) String() string {
 13661  	return awsutil.Prettify(s)
 13662  }
 13663  
 13664  // GoString returns the string representation.
 13665  //
 13666  // API parameter values that are decorated as "sensitive" in the API will not
 13667  // be included in the string output. The member name will be present, but the
 13668  // value will be replaced with "sensitive".
 13669  func (s ListStackResourcesOutput) GoString() string {
 13670  	return s.String()
 13671  }
 13672  
 13673  // SetNextToken sets the NextToken field's value.
 13674  func (s *ListStackResourcesOutput) SetNextToken(v string) *ListStackResourcesOutput {
 13675  	s.NextToken = &v
 13676  	return s
 13677  }
 13678  
 13679  // SetStackResourceSummaries sets the StackResourceSummaries field's value.
 13680  func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceSummary) *ListStackResourcesOutput {
 13681  	s.StackResourceSummaries = v
 13682  	return s
 13683  }
 13684  
 13685  type ListStackSetOperationResultsInput struct {
 13686  	_ struct{} `type:"structure"`
 13687  
 13688  	// [Service-managed permissions] Specifies whether you are acting as an account
 13689  	// administrator in the organization's management account or as a delegated
 13690  	// administrator in a member account.
 13691  	//
 13692  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 13693  	// permissions.
 13694  	//
 13695  	//    * If you are signed in to the management account, specify SELF.
 13696  	//
 13697  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 13698  	//    Your Amazon Web Services account must be registered as a delegated administrator
 13699  	//    in the management account. For more information, see Register a delegated
 13700  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 13701  	//    in the CloudFormation User Guide.
 13702  	CallAs *string `type:"string" enum:"CallAs"`
 13703  
 13704  	// The maximum number of results to be returned with a single call. If the number
 13705  	// of available results exceeds this maximum, the response includes a NextToken
 13706  	// value that you can assign to the NextToken request parameter to get the next
 13707  	// set of results.
 13708  	MaxResults *int64 `min:"1" type:"integer"`
 13709  
 13710  	// If the previous request didn't return all of the remaining results, the response
 13711  	// object's NextToken parameter value is set to a token. To retrieve the next
 13712  	// set of results, call ListStackSetOperationResults again and assign that token
 13713  	// to the request object's NextToken parameter. If there are no remaining results,
 13714  	// the previous response object's NextToken parameter is set to null.
 13715  	NextToken *string `min:"1" type:"string"`
 13716  
 13717  	// The ID of the stack set operation.
 13718  	//
 13719  	// OperationId is a required field
 13720  	OperationId *string `min:"1" type:"string" required:"true"`
 13721  
 13722  	// The name or unique ID of the stack set that you want to get operation results
 13723  	// for.
 13724  	//
 13725  	// StackSetName is a required field
 13726  	StackSetName *string `type:"string" required:"true"`
 13727  }
 13728  
 13729  // String returns the string representation.
 13730  //
 13731  // API parameter values that are decorated as "sensitive" in the API will not
 13732  // be included in the string output. The member name will be present, but the
 13733  // value will be replaced with "sensitive".
 13734  func (s ListStackSetOperationResultsInput) String() string {
 13735  	return awsutil.Prettify(s)
 13736  }
 13737  
 13738  // GoString returns the string representation.
 13739  //
 13740  // API parameter values that are decorated as "sensitive" in the API will not
 13741  // be included in the string output. The member name will be present, but the
 13742  // value will be replaced with "sensitive".
 13743  func (s ListStackSetOperationResultsInput) GoString() string {
 13744  	return s.String()
 13745  }
 13746  
 13747  // Validate inspects the fields of the type to determine if they are valid.
 13748  func (s *ListStackSetOperationResultsInput) Validate() error {
 13749  	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationResultsInput"}
 13750  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13751  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13752  	}
 13753  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13754  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13755  	}
 13756  	if s.OperationId == nil {
 13757  		invalidParams.Add(request.NewErrParamRequired("OperationId"))
 13758  	}
 13759  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 13760  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 13761  	}
 13762  	if s.StackSetName == nil {
 13763  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 13764  	}
 13765  
 13766  	if invalidParams.Len() > 0 {
 13767  		return invalidParams
 13768  	}
 13769  	return nil
 13770  }
 13771  
 13772  // SetCallAs sets the CallAs field's value.
 13773  func (s *ListStackSetOperationResultsInput) SetCallAs(v string) *ListStackSetOperationResultsInput {
 13774  	s.CallAs = &v
 13775  	return s
 13776  }
 13777  
 13778  // SetMaxResults sets the MaxResults field's value.
 13779  func (s *ListStackSetOperationResultsInput) SetMaxResults(v int64) *ListStackSetOperationResultsInput {
 13780  	s.MaxResults = &v
 13781  	return s
 13782  }
 13783  
 13784  // SetNextToken sets the NextToken field's value.
 13785  func (s *ListStackSetOperationResultsInput) SetNextToken(v string) *ListStackSetOperationResultsInput {
 13786  	s.NextToken = &v
 13787  	return s
 13788  }
 13789  
 13790  // SetOperationId sets the OperationId field's value.
 13791  func (s *ListStackSetOperationResultsInput) SetOperationId(v string) *ListStackSetOperationResultsInput {
 13792  	s.OperationId = &v
 13793  	return s
 13794  }
 13795  
 13796  // SetStackSetName sets the StackSetName field's value.
 13797  func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStackSetOperationResultsInput {
 13798  	s.StackSetName = &v
 13799  	return s
 13800  }
 13801  
 13802  type ListStackSetOperationResultsOutput struct {
 13803  	_ struct{} `type:"structure"`
 13804  
 13805  	// If the request doesn't return all results, NextToken is set to a token. To
 13806  	// retrieve the next set of results, call ListOperationResults again and assign
 13807  	// that token to the request object's NextToken parameter. If there are no remaining
 13808  	// results, NextToken is set to null.
 13809  	NextToken *string `min:"1" type:"string"`
 13810  
 13811  	// A list of StackSetOperationResultSummary structures that contain information
 13812  	// about the specified operation results, for accounts and Regions that are
 13813  	// included in the operation.
 13814  	Summaries []*StackSetOperationResultSummary `type:"list"`
 13815  }
 13816  
 13817  // String returns the string representation.
 13818  //
 13819  // API parameter values that are decorated as "sensitive" in the API will not
 13820  // be included in the string output. The member name will be present, but the
 13821  // value will be replaced with "sensitive".
 13822  func (s ListStackSetOperationResultsOutput) String() string {
 13823  	return awsutil.Prettify(s)
 13824  }
 13825  
 13826  // GoString returns the string representation.
 13827  //
 13828  // API parameter values that are decorated as "sensitive" in the API will not
 13829  // be included in the string output. The member name will be present, but the
 13830  // value will be replaced with "sensitive".
 13831  func (s ListStackSetOperationResultsOutput) GoString() string {
 13832  	return s.String()
 13833  }
 13834  
 13835  // SetNextToken sets the NextToken field's value.
 13836  func (s *ListStackSetOperationResultsOutput) SetNextToken(v string) *ListStackSetOperationResultsOutput {
 13837  	s.NextToken = &v
 13838  	return s
 13839  }
 13840  
 13841  // SetSummaries sets the Summaries field's value.
 13842  func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperationResultSummary) *ListStackSetOperationResultsOutput {
 13843  	s.Summaries = v
 13844  	return s
 13845  }
 13846  
 13847  type ListStackSetOperationsInput struct {
 13848  	_ struct{} `type:"structure"`
 13849  
 13850  	// [Service-managed permissions] Specifies whether you are acting as an account
 13851  	// administrator in the organization's management account or as a delegated
 13852  	// administrator in a member account.
 13853  	//
 13854  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 13855  	// permissions.
 13856  	//
 13857  	//    * If you are signed in to the management account, specify SELF.
 13858  	//
 13859  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 13860  	//    Your Amazon Web Services account must be registered as a delegated administrator
 13861  	//    in the management account. For more information, see Register a delegated
 13862  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 13863  	//    in the CloudFormation User Guide.
 13864  	CallAs *string `type:"string" enum:"CallAs"`
 13865  
 13866  	// The maximum number of results to be returned with a single call. If the number
 13867  	// of available results exceeds this maximum, the response includes a NextToken
 13868  	// value that you can assign to the NextToken request parameter to get the next
 13869  	// set of results.
 13870  	MaxResults *int64 `min:"1" type:"integer"`
 13871  
 13872  	// If the previous paginated request didn't return all of the remaining results,
 13873  	// the response object's NextToken parameter value is set to a token. To retrieve
 13874  	// the next set of results, call ListStackSetOperations again and assign that
 13875  	// token to the request object's NextToken parameter. If there are no remaining
 13876  	// results, the previous response object's NextToken parameter is set to null.
 13877  	NextToken *string `min:"1" type:"string"`
 13878  
 13879  	// The name or unique ID of the stack set that you want to get operation summaries
 13880  	// for.
 13881  	//
 13882  	// StackSetName is a required field
 13883  	StackSetName *string `type:"string" required:"true"`
 13884  }
 13885  
 13886  // String returns the string representation.
 13887  //
 13888  // API parameter values that are decorated as "sensitive" in the API will not
 13889  // be included in the string output. The member name will be present, but the
 13890  // value will be replaced with "sensitive".
 13891  func (s ListStackSetOperationsInput) String() string {
 13892  	return awsutil.Prettify(s)
 13893  }
 13894  
 13895  // GoString returns the string representation.
 13896  //
 13897  // API parameter values that are decorated as "sensitive" in the API will not
 13898  // be included in the string output. The member name will be present, but the
 13899  // value will be replaced with "sensitive".
 13900  func (s ListStackSetOperationsInput) GoString() string {
 13901  	return s.String()
 13902  }
 13903  
 13904  // Validate inspects the fields of the type to determine if they are valid.
 13905  func (s *ListStackSetOperationsInput) Validate() error {
 13906  	invalidParams := request.ErrInvalidParams{Context: "ListStackSetOperationsInput"}
 13907  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13908  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13909  	}
 13910  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 13911  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 13912  	}
 13913  	if s.StackSetName == nil {
 13914  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 13915  	}
 13916  
 13917  	if invalidParams.Len() > 0 {
 13918  		return invalidParams
 13919  	}
 13920  	return nil
 13921  }
 13922  
 13923  // SetCallAs sets the CallAs field's value.
 13924  func (s *ListStackSetOperationsInput) SetCallAs(v string) *ListStackSetOperationsInput {
 13925  	s.CallAs = &v
 13926  	return s
 13927  }
 13928  
 13929  // SetMaxResults sets the MaxResults field's value.
 13930  func (s *ListStackSetOperationsInput) SetMaxResults(v int64) *ListStackSetOperationsInput {
 13931  	s.MaxResults = &v
 13932  	return s
 13933  }
 13934  
 13935  // SetNextToken sets the NextToken field's value.
 13936  func (s *ListStackSetOperationsInput) SetNextToken(v string) *ListStackSetOperationsInput {
 13937  	s.NextToken = &v
 13938  	return s
 13939  }
 13940  
 13941  // SetStackSetName sets the StackSetName field's value.
 13942  func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOperationsInput {
 13943  	s.StackSetName = &v
 13944  	return s
 13945  }
 13946  
 13947  type ListStackSetOperationsOutput struct {
 13948  	_ struct{} `type:"structure"`
 13949  
 13950  	// If the request doesn't return all results, NextToken is set to a token. To
 13951  	// retrieve the next set of results, call ListOperationResults again and assign
 13952  	// that token to the request object's NextToken parameter. If there are no remaining
 13953  	// results, NextToken is set to null.
 13954  	NextToken *string `min:"1" type:"string"`
 13955  
 13956  	// A list of StackSetOperationSummary structures that contain summary information
 13957  	// about operations for the specified stack set.
 13958  	Summaries []*StackSetOperationSummary `type:"list"`
 13959  }
 13960  
 13961  // String returns the string representation.
 13962  //
 13963  // API parameter values that are decorated as "sensitive" in the API will not
 13964  // be included in the string output. The member name will be present, but the
 13965  // value will be replaced with "sensitive".
 13966  func (s ListStackSetOperationsOutput) String() string {
 13967  	return awsutil.Prettify(s)
 13968  }
 13969  
 13970  // GoString returns the string representation.
 13971  //
 13972  // API parameter values that are decorated as "sensitive" in the API will not
 13973  // be included in the string output. The member name will be present, but the
 13974  // value will be replaced with "sensitive".
 13975  func (s ListStackSetOperationsOutput) GoString() string {
 13976  	return s.String()
 13977  }
 13978  
 13979  // SetNextToken sets the NextToken field's value.
 13980  func (s *ListStackSetOperationsOutput) SetNextToken(v string) *ListStackSetOperationsOutput {
 13981  	s.NextToken = &v
 13982  	return s
 13983  }
 13984  
 13985  // SetSummaries sets the Summaries field's value.
 13986  func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummary) *ListStackSetOperationsOutput {
 13987  	s.Summaries = v
 13988  	return s
 13989  }
 13990  
 13991  type ListStackSetsInput struct {
 13992  	_ struct{} `type:"structure"`
 13993  
 13994  	// [Service-managed permissions] Specifies whether you are acting as an account
 13995  	// administrator in the management account or as a delegated administrator in
 13996  	// a member account.
 13997  	//
 13998  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 13999  	// permissions.
 14000  	//
 14001  	//    * If you are signed in to the management account, specify SELF.
 14002  	//
 14003  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 14004  	//    Your Amazon Web Services account must be registered as a delegated administrator
 14005  	//    in the management account. For more information, see Register a delegated
 14006  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 14007  	//    in the CloudFormation User Guide.
 14008  	CallAs *string `type:"string" enum:"CallAs"`
 14009  
 14010  	// The maximum number of results to be returned with a single call. If the number
 14011  	// of available results exceeds this maximum, the response includes a NextToken
 14012  	// value that you can assign to the NextToken request parameter to get the next
 14013  	// set of results.
 14014  	MaxResults *int64 `min:"1" type:"integer"`
 14015  
 14016  	// If the previous paginated request didn't return all of the remaining results,
 14017  	// the response object's NextToken parameter value is set to a token. To retrieve
 14018  	// the next set of results, call ListStackSets again and assign that token to
 14019  	// the request object's NextToken parameter. If there are no remaining results,
 14020  	// the previous response object's NextToken parameter is set to null.
 14021  	NextToken *string `min:"1" type:"string"`
 14022  
 14023  	// The status of the stack sets that you want to get summary information about.
 14024  	Status *string `type:"string" enum:"StackSetStatus"`
 14025  }
 14026  
 14027  // String returns the string representation.
 14028  //
 14029  // API parameter values that are decorated as "sensitive" in the API will not
 14030  // be included in the string output. The member name will be present, but the
 14031  // value will be replaced with "sensitive".
 14032  func (s ListStackSetsInput) String() string {
 14033  	return awsutil.Prettify(s)
 14034  }
 14035  
 14036  // GoString returns the string representation.
 14037  //
 14038  // API parameter values that are decorated as "sensitive" in the API will not
 14039  // be included in the string output. The member name will be present, but the
 14040  // value will be replaced with "sensitive".
 14041  func (s ListStackSetsInput) GoString() string {
 14042  	return s.String()
 14043  }
 14044  
 14045  // Validate inspects the fields of the type to determine if they are valid.
 14046  func (s *ListStackSetsInput) Validate() error {
 14047  	invalidParams := request.ErrInvalidParams{Context: "ListStackSetsInput"}
 14048  	if s.MaxResults != nil && *s.MaxResults < 1 {
 14049  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 14050  	}
 14051  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 14052  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 14053  	}
 14054  
 14055  	if invalidParams.Len() > 0 {
 14056  		return invalidParams
 14057  	}
 14058  	return nil
 14059  }
 14060  
 14061  // SetCallAs sets the CallAs field's value.
 14062  func (s *ListStackSetsInput) SetCallAs(v string) *ListStackSetsInput {
 14063  	s.CallAs = &v
 14064  	return s
 14065  }
 14066  
 14067  // SetMaxResults sets the MaxResults field's value.
 14068  func (s *ListStackSetsInput) SetMaxResults(v int64) *ListStackSetsInput {
 14069  	s.MaxResults = &v
 14070  	return s
 14071  }
 14072  
 14073  // SetNextToken sets the NextToken field's value.
 14074  func (s *ListStackSetsInput) SetNextToken(v string) *ListStackSetsInput {
 14075  	s.NextToken = &v
 14076  	return s
 14077  }
 14078  
 14079  // SetStatus sets the Status field's value.
 14080  func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput {
 14081  	s.Status = &v
 14082  	return s
 14083  }
 14084  
 14085  type ListStackSetsOutput struct {
 14086  	_ struct{} `type:"structure"`
 14087  
 14088  	// If the request doesn't return all of the remaining results, NextToken is
 14089  	// set to a token. To retrieve the next set of results, call ListStackInstances
 14090  	// again and assign that token to the request object's NextToken parameter.
 14091  	// If the request returns all results, NextToken is set to null.
 14092  	NextToken *string `min:"1" type:"string"`
 14093  
 14094  	// A list of StackSetSummary structures that contain information about the user's
 14095  	// stack sets.
 14096  	Summaries []*StackSetSummary `type:"list"`
 14097  }
 14098  
 14099  // String returns the string representation.
 14100  //
 14101  // API parameter values that are decorated as "sensitive" in the API will not
 14102  // be included in the string output. The member name will be present, but the
 14103  // value will be replaced with "sensitive".
 14104  func (s ListStackSetsOutput) String() string {
 14105  	return awsutil.Prettify(s)
 14106  }
 14107  
 14108  // GoString returns the string representation.
 14109  //
 14110  // API parameter values that are decorated as "sensitive" in the API will not
 14111  // be included in the string output. The member name will be present, but the
 14112  // value will be replaced with "sensitive".
 14113  func (s ListStackSetsOutput) GoString() string {
 14114  	return s.String()
 14115  }
 14116  
 14117  // SetNextToken sets the NextToken field's value.
 14118  func (s *ListStackSetsOutput) SetNextToken(v string) *ListStackSetsOutput {
 14119  	s.NextToken = &v
 14120  	return s
 14121  }
 14122  
 14123  // SetSummaries sets the Summaries field's value.
 14124  func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsOutput {
 14125  	s.Summaries = v
 14126  	return s
 14127  }
 14128  
 14129  // The input for ListStacks action.
 14130  type ListStacksInput struct {
 14131  	_ struct{} `type:"structure"`
 14132  
 14133  	// A string that identifies the next page of stacks that you want to retrieve.
 14134  	NextToken *string `min:"1" type:"string"`
 14135  
 14136  	// Stack status to use as a filter. Specify one or more stack status codes to
 14137  	// list only stacks with the specified status codes. For a complete list of
 14138  	// stack status codes, see the StackStatus parameter of the Stack data type.
 14139  	StackStatusFilter []*string `type:"list"`
 14140  }
 14141  
 14142  // String returns the string representation.
 14143  //
 14144  // API parameter values that are decorated as "sensitive" in the API will not
 14145  // be included in the string output. The member name will be present, but the
 14146  // value will be replaced with "sensitive".
 14147  func (s ListStacksInput) String() string {
 14148  	return awsutil.Prettify(s)
 14149  }
 14150  
 14151  // GoString returns the string representation.
 14152  //
 14153  // API parameter values that are decorated as "sensitive" in the API will not
 14154  // be included in the string output. The member name will be present, but the
 14155  // value will be replaced with "sensitive".
 14156  func (s ListStacksInput) GoString() string {
 14157  	return s.String()
 14158  }
 14159  
 14160  // Validate inspects the fields of the type to determine if they are valid.
 14161  func (s *ListStacksInput) Validate() error {
 14162  	invalidParams := request.ErrInvalidParams{Context: "ListStacksInput"}
 14163  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 14164  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 14165  	}
 14166  
 14167  	if invalidParams.Len() > 0 {
 14168  		return invalidParams
 14169  	}
 14170  	return nil
 14171  }
 14172  
 14173  // SetNextToken sets the NextToken field's value.
 14174  func (s *ListStacksInput) SetNextToken(v string) *ListStacksInput {
 14175  	s.NextToken = &v
 14176  	return s
 14177  }
 14178  
 14179  // SetStackStatusFilter sets the StackStatusFilter field's value.
 14180  func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput {
 14181  	s.StackStatusFilter = v
 14182  	return s
 14183  }
 14184  
 14185  // The output for ListStacks action.
 14186  type ListStacksOutput struct {
 14187  	_ struct{} `type:"structure"`
 14188  
 14189  	// If the output exceeds 1 MB in size, a string that identifies the next page
 14190  	// of stacks. If no additional page exists, this value is null.
 14191  	NextToken *string `min:"1" type:"string"`
 14192  
 14193  	// A list of StackSummary structures containing information about the specified
 14194  	// stacks.
 14195  	StackSummaries []*StackSummary `type:"list"`
 14196  }
 14197  
 14198  // String returns the string representation.
 14199  //
 14200  // API parameter values that are decorated as "sensitive" in the API will not
 14201  // be included in the string output. The member name will be present, but the
 14202  // value will be replaced with "sensitive".
 14203  func (s ListStacksOutput) String() string {
 14204  	return awsutil.Prettify(s)
 14205  }
 14206  
 14207  // GoString returns the string representation.
 14208  //
 14209  // API parameter values that are decorated as "sensitive" in the API will not
 14210  // be included in the string output. The member name will be present, but the
 14211  // value will be replaced with "sensitive".
 14212  func (s ListStacksOutput) GoString() string {
 14213  	return s.String()
 14214  }
 14215  
 14216  // SetNextToken sets the NextToken field's value.
 14217  func (s *ListStacksOutput) SetNextToken(v string) *ListStacksOutput {
 14218  	s.NextToken = &v
 14219  	return s
 14220  }
 14221  
 14222  // SetStackSummaries sets the StackSummaries field's value.
 14223  func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutput {
 14224  	s.StackSummaries = v
 14225  	return s
 14226  }
 14227  
 14228  type ListTypeRegistrationsInput struct {
 14229  	_ struct{} `type:"structure"`
 14230  
 14231  	// The maximum number of results to be returned with a single call. If the number
 14232  	// of available results exceeds this maximum, the response includes a NextToken
 14233  	// value that you can assign to the NextToken request parameter to get the next
 14234  	// set of results.
 14235  	MaxResults *int64 `min:"1" type:"integer"`
 14236  
 14237  	// If the previous paginated request didn't return all of the remaining results,
 14238  	// the response object's NextToken parameter value is set to a token. To retrieve
 14239  	// the next set of results, call this action again and assign that token to
 14240  	// the request object's NextToken parameter. If there are no remaining results,
 14241  	// the previous response object's NextToken parameter is set to null.
 14242  	NextToken *string `min:"1" type:"string"`
 14243  
 14244  	// The current status of the extension registration request.
 14245  	//
 14246  	// The default is IN_PROGRESS.
 14247  	RegistrationStatusFilter *string `type:"string" enum:"RegistrationStatus"`
 14248  
 14249  	// The kind of extension.
 14250  	//
 14251  	// Conditional: You must specify either TypeName and Type, or Arn.
 14252  	Type *string `type:"string" enum:"RegistryType"`
 14253  
 14254  	// The Amazon Resource Name (ARN) of the extension.
 14255  	//
 14256  	// Conditional: You must specify either TypeName and Type, or Arn.
 14257  	TypeArn *string `type:"string"`
 14258  
 14259  	// The name of the extension.
 14260  	//
 14261  	// Conditional: You must specify either TypeName and Type, or Arn.
 14262  	TypeName *string `min:"10" type:"string"`
 14263  }
 14264  
 14265  // String returns the string representation.
 14266  //
 14267  // API parameter values that are decorated as "sensitive" in the API will not
 14268  // be included in the string output. The member name will be present, but the
 14269  // value will be replaced with "sensitive".
 14270  func (s ListTypeRegistrationsInput) String() string {
 14271  	return awsutil.Prettify(s)
 14272  }
 14273  
 14274  // GoString returns the string representation.
 14275  //
 14276  // API parameter values that are decorated as "sensitive" in the API will not
 14277  // be included in the string output. The member name will be present, but the
 14278  // value will be replaced with "sensitive".
 14279  func (s ListTypeRegistrationsInput) GoString() string {
 14280  	return s.String()
 14281  }
 14282  
 14283  // Validate inspects the fields of the type to determine if they are valid.
 14284  func (s *ListTypeRegistrationsInput) Validate() error {
 14285  	invalidParams := request.ErrInvalidParams{Context: "ListTypeRegistrationsInput"}
 14286  	if s.MaxResults != nil && *s.MaxResults < 1 {
 14287  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 14288  	}
 14289  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 14290  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 14291  	}
 14292  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 14293  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 14294  	}
 14295  
 14296  	if invalidParams.Len() > 0 {
 14297  		return invalidParams
 14298  	}
 14299  	return nil
 14300  }
 14301  
 14302  // SetMaxResults sets the MaxResults field's value.
 14303  func (s *ListTypeRegistrationsInput) SetMaxResults(v int64) *ListTypeRegistrationsInput {
 14304  	s.MaxResults = &v
 14305  	return s
 14306  }
 14307  
 14308  // SetNextToken sets the NextToken field's value.
 14309  func (s *ListTypeRegistrationsInput) SetNextToken(v string) *ListTypeRegistrationsInput {
 14310  	s.NextToken = &v
 14311  	return s
 14312  }
 14313  
 14314  // SetRegistrationStatusFilter sets the RegistrationStatusFilter field's value.
 14315  func (s *ListTypeRegistrationsInput) SetRegistrationStatusFilter(v string) *ListTypeRegistrationsInput {
 14316  	s.RegistrationStatusFilter = &v
 14317  	return s
 14318  }
 14319  
 14320  // SetType sets the Type field's value.
 14321  func (s *ListTypeRegistrationsInput) SetType(v string) *ListTypeRegistrationsInput {
 14322  	s.Type = &v
 14323  	return s
 14324  }
 14325  
 14326  // SetTypeArn sets the TypeArn field's value.
 14327  func (s *ListTypeRegistrationsInput) SetTypeArn(v string) *ListTypeRegistrationsInput {
 14328  	s.TypeArn = &v
 14329  	return s
 14330  }
 14331  
 14332  // SetTypeName sets the TypeName field's value.
 14333  func (s *ListTypeRegistrationsInput) SetTypeName(v string) *ListTypeRegistrationsInput {
 14334  	s.TypeName = &v
 14335  	return s
 14336  }
 14337  
 14338  type ListTypeRegistrationsOutput struct {
 14339  	_ struct{} `type:"structure"`
 14340  
 14341  	// If the request doesn't return all of the remaining results, NextToken is
 14342  	// set to a token. To retrieve the next set of results, call this action again
 14343  	// and assign that token to the request object's NextToken parameter. If the
 14344  	// request returns all results, NextToken is set to null.
 14345  	NextToken *string `min:"1" type:"string"`
 14346  
 14347  	// A list of extension registration tokens.
 14348  	//
 14349  	// Use DescribeTypeRegistration to return detailed information about a type
 14350  	// registration request.
 14351  	RegistrationTokenList []*string `type:"list"`
 14352  }
 14353  
 14354  // String returns the string representation.
 14355  //
 14356  // API parameter values that are decorated as "sensitive" in the API will not
 14357  // be included in the string output. The member name will be present, but the
 14358  // value will be replaced with "sensitive".
 14359  func (s ListTypeRegistrationsOutput) String() string {
 14360  	return awsutil.Prettify(s)
 14361  }
 14362  
 14363  // GoString returns the string representation.
 14364  //
 14365  // API parameter values that are decorated as "sensitive" in the API will not
 14366  // be included in the string output. The member name will be present, but the
 14367  // value will be replaced with "sensitive".
 14368  func (s ListTypeRegistrationsOutput) GoString() string {
 14369  	return s.String()
 14370  }
 14371  
 14372  // SetNextToken sets the NextToken field's value.
 14373  func (s *ListTypeRegistrationsOutput) SetNextToken(v string) *ListTypeRegistrationsOutput {
 14374  	s.NextToken = &v
 14375  	return s
 14376  }
 14377  
 14378  // SetRegistrationTokenList sets the RegistrationTokenList field's value.
 14379  func (s *ListTypeRegistrationsOutput) SetRegistrationTokenList(v []*string) *ListTypeRegistrationsOutput {
 14380  	s.RegistrationTokenList = v
 14381  	return s
 14382  }
 14383  
 14384  type ListTypeVersionsInput struct {
 14385  	_ struct{} `type:"structure"`
 14386  
 14387  	// The Amazon Resource Name (ARN) of the extension for which you want version
 14388  	// summary information.
 14389  	//
 14390  	// Conditional: You must specify either TypeName and Type, or Arn.
 14391  	Arn *string `type:"string"`
 14392  
 14393  	// The deprecation status of the extension versions that you want to get summary
 14394  	// information about.
 14395  	//
 14396  	// Valid values include:
 14397  	//
 14398  	//    * LIVE: The extension version is registered and can be used in CloudFormation
 14399  	//    operations, dependent on its provisioning behavior and visibility scope.
 14400  	//
 14401  	//    * DEPRECATED: The extension version has been deregistered and can no longer
 14402  	//    be used in CloudFormation operations.
 14403  	//
 14404  	// The default is LIVE.
 14405  	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
 14406  
 14407  	// The maximum number of results to be returned with a single call. If the number
 14408  	// of available results exceeds this maximum, the response includes a NextToken
 14409  	// value that you can assign to the NextToken request parameter to get the next
 14410  	// set of results.
 14411  	MaxResults *int64 `min:"1" type:"integer"`
 14412  
 14413  	// If the previous paginated request didn't return all of the remaining results,
 14414  	// the response object's NextToken parameter value is set to a token. To retrieve
 14415  	// the next set of results, call this action again and assign that token to
 14416  	// the request object's NextToken parameter. If there are no remaining results,
 14417  	// the previous response object's NextToken parameter is set to null.
 14418  	NextToken *string `min:"1" type:"string"`
 14419  
 14420  	// The publisher ID of the extension publisher.
 14421  	//
 14422  	// Extensions published by Amazon are not assigned a publisher ID.
 14423  	PublisherId *string `min:"1" type:"string"`
 14424  
 14425  	// The kind of the extension.
 14426  	//
 14427  	// Conditional: You must specify either TypeName and Type, or Arn.
 14428  	Type *string `type:"string" enum:"RegistryType"`
 14429  
 14430  	// The name of the extension for which you want version summary information.
 14431  	//
 14432  	// Conditional: You must specify either TypeName and Type, or Arn.
 14433  	TypeName *string `min:"10" type:"string"`
 14434  }
 14435  
 14436  // String returns the string representation.
 14437  //
 14438  // API parameter values that are decorated as "sensitive" in the API will not
 14439  // be included in the string output. The member name will be present, but the
 14440  // value will be replaced with "sensitive".
 14441  func (s ListTypeVersionsInput) String() string {
 14442  	return awsutil.Prettify(s)
 14443  }
 14444  
 14445  // GoString returns the string representation.
 14446  //
 14447  // API parameter values that are decorated as "sensitive" in the API will not
 14448  // be included in the string output. The member name will be present, but the
 14449  // value will be replaced with "sensitive".
 14450  func (s ListTypeVersionsInput) GoString() string {
 14451  	return s.String()
 14452  }
 14453  
 14454  // Validate inspects the fields of the type to determine if they are valid.
 14455  func (s *ListTypeVersionsInput) Validate() error {
 14456  	invalidParams := request.ErrInvalidParams{Context: "ListTypeVersionsInput"}
 14457  	if s.MaxResults != nil && *s.MaxResults < 1 {
 14458  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 14459  	}
 14460  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 14461  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 14462  	}
 14463  	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
 14464  		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
 14465  	}
 14466  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 14467  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 14468  	}
 14469  
 14470  	if invalidParams.Len() > 0 {
 14471  		return invalidParams
 14472  	}
 14473  	return nil
 14474  }
 14475  
 14476  // SetArn sets the Arn field's value.
 14477  func (s *ListTypeVersionsInput) SetArn(v string) *ListTypeVersionsInput {
 14478  	s.Arn = &v
 14479  	return s
 14480  }
 14481  
 14482  // SetDeprecatedStatus sets the DeprecatedStatus field's value.
 14483  func (s *ListTypeVersionsInput) SetDeprecatedStatus(v string) *ListTypeVersionsInput {
 14484  	s.DeprecatedStatus = &v
 14485  	return s
 14486  }
 14487  
 14488  // SetMaxResults sets the MaxResults field's value.
 14489  func (s *ListTypeVersionsInput) SetMaxResults(v int64) *ListTypeVersionsInput {
 14490  	s.MaxResults = &v
 14491  	return s
 14492  }
 14493  
 14494  // SetNextToken sets the NextToken field's value.
 14495  func (s *ListTypeVersionsInput) SetNextToken(v string) *ListTypeVersionsInput {
 14496  	s.NextToken = &v
 14497  	return s
 14498  }
 14499  
 14500  // SetPublisherId sets the PublisherId field's value.
 14501  func (s *ListTypeVersionsInput) SetPublisherId(v string) *ListTypeVersionsInput {
 14502  	s.PublisherId = &v
 14503  	return s
 14504  }
 14505  
 14506  // SetType sets the Type field's value.
 14507  func (s *ListTypeVersionsInput) SetType(v string) *ListTypeVersionsInput {
 14508  	s.Type = &v
 14509  	return s
 14510  }
 14511  
 14512  // SetTypeName sets the TypeName field's value.
 14513  func (s *ListTypeVersionsInput) SetTypeName(v string) *ListTypeVersionsInput {
 14514  	s.TypeName = &v
 14515  	return s
 14516  }
 14517  
 14518  type ListTypeVersionsOutput struct {
 14519  	_ struct{} `type:"structure"`
 14520  
 14521  	// If the request doesn't return all of the remaining results, NextToken is
 14522  	// set to a token. To retrieve the next set of results, call this action again
 14523  	// and assign that token to the request object's NextToken parameter. If the
 14524  	// request returns all results, NextToken is set to null.
 14525  	NextToken *string `min:"1" type:"string"`
 14526  
 14527  	// A list of TypeVersionSummary structures that contain information about the
 14528  	// specified extension's versions.
 14529  	TypeVersionSummaries []*TypeVersionSummary `type:"list"`
 14530  }
 14531  
 14532  // String returns the string representation.
 14533  //
 14534  // API parameter values that are decorated as "sensitive" in the API will not
 14535  // be included in the string output. The member name will be present, but the
 14536  // value will be replaced with "sensitive".
 14537  func (s ListTypeVersionsOutput) String() string {
 14538  	return awsutil.Prettify(s)
 14539  }
 14540  
 14541  // GoString returns the string representation.
 14542  //
 14543  // API parameter values that are decorated as "sensitive" in the API will not
 14544  // be included in the string output. The member name will be present, but the
 14545  // value will be replaced with "sensitive".
 14546  func (s ListTypeVersionsOutput) GoString() string {
 14547  	return s.String()
 14548  }
 14549  
 14550  // SetNextToken sets the NextToken field's value.
 14551  func (s *ListTypeVersionsOutput) SetNextToken(v string) *ListTypeVersionsOutput {
 14552  	s.NextToken = &v
 14553  	return s
 14554  }
 14555  
 14556  // SetTypeVersionSummaries sets the TypeVersionSummaries field's value.
 14557  func (s *ListTypeVersionsOutput) SetTypeVersionSummaries(v []*TypeVersionSummary) *ListTypeVersionsOutput {
 14558  	s.TypeVersionSummaries = v
 14559  	return s
 14560  }
 14561  
 14562  type ListTypesInput struct {
 14563  	_ struct{} `type:"structure"`
 14564  
 14565  	// The deprecation status of the extension that you want to get summary information
 14566  	// about.
 14567  	//
 14568  	// Valid values include:
 14569  	//
 14570  	//    * LIVE: The extension is registered for use in CloudFormation operations.
 14571  	//
 14572  	//    * DEPRECATED: The extension has been deregistered and can no longer be
 14573  	//    used in CloudFormation operations.
 14574  	DeprecatedStatus *string `type:"string" enum:"DeprecatedStatus"`
 14575  
 14576  	// Filter criteria to use in determining which extensions to return.
 14577  	//
 14578  	// If you specify a filter, CloudFormation ignores any specified Visibility
 14579  	// value when returning the list of types.
 14580  	Filters *TypeFilters `type:"structure"`
 14581  
 14582  	// The maximum number of results to be returned with a single call. If the number
 14583  	// of available results exceeds this maximum, the response includes a NextToken
 14584  	// value that you can assign to the NextToken request parameter to get the next
 14585  	// set of results.
 14586  	MaxResults *int64 `min:"1" type:"integer"`
 14587  
 14588  	// If the previous paginated request didn't return all of the remaining results,
 14589  	// the response object's NextToken parameter value is set to a token. To retrieve
 14590  	// the next set of results, call this action again and assign that token to
 14591  	// the request object's NextToken parameter. If there are no remaining results,
 14592  	// the previous response object's NextToken parameter is set to null.
 14593  	NextToken *string `min:"1" type:"string"`
 14594  
 14595  	// For resource types, the provisioning behavior of the resource type. CloudFormation
 14596  	// determines the provisioning type during registration, based on the types
 14597  	// of handlers in the schema handler package submitted.
 14598  	//
 14599  	// Valid values include:
 14600  	//
 14601  	//    * FULLY_MUTABLE: The resource type includes an update handler to process
 14602  	//    updates to the type during stack update operations.
 14603  	//
 14604  	//    * IMMUTABLE: The resource type does not include an update handler, so
 14605  	//    the type cannot be updated and must instead be replaced during stack update
 14606  	//    operations.
 14607  	//
 14608  	//    * NON_PROVISIONABLE: The resource type does not include create, read,
 14609  	//    and delete handlers, and therefore cannot actually be provisioned.
 14610  	//
 14611  	// The default is FULLY_MUTABLE.
 14612  	ProvisioningType *string `type:"string" enum:"ProvisioningType"`
 14613  
 14614  	// The type of extension.
 14615  	Type *string `type:"string" enum:"RegistryType"`
 14616  
 14617  	// The scope at which the extensions are visible and usable in CloudFormation
 14618  	// operations.
 14619  	//
 14620  	// Valid values include:
 14621  	//
 14622  	//    * PRIVATE: Extensions that are visible and usable within this account
 14623  	//    and region. This includes: Private extensions you have registered in this
 14624  	//    account and region. Public extensions that you have activated in this
 14625  	//    account and region.
 14626  	//
 14627  	//    * PUBLIC: Extensions that are publicly visible and available to be activated
 14628  	//    within any Amazon account. This includes extensions from Amazon, as well
 14629  	//    as third-party publishers.
 14630  	//
 14631  	// The default is PRIVATE.
 14632  	Visibility *string `type:"string" enum:"Visibility"`
 14633  }
 14634  
 14635  // String returns the string representation.
 14636  //
 14637  // API parameter values that are decorated as "sensitive" in the API will not
 14638  // be included in the string output. The member name will be present, but the
 14639  // value will be replaced with "sensitive".
 14640  func (s ListTypesInput) String() string {
 14641  	return awsutil.Prettify(s)
 14642  }
 14643  
 14644  // GoString returns the string representation.
 14645  //
 14646  // API parameter values that are decorated as "sensitive" in the API will not
 14647  // be included in the string output. The member name will be present, but the
 14648  // value will be replaced with "sensitive".
 14649  func (s ListTypesInput) GoString() string {
 14650  	return s.String()
 14651  }
 14652  
 14653  // Validate inspects the fields of the type to determine if they are valid.
 14654  func (s *ListTypesInput) Validate() error {
 14655  	invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"}
 14656  	if s.MaxResults != nil && *s.MaxResults < 1 {
 14657  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 14658  	}
 14659  	if s.NextToken != nil && len(*s.NextToken) < 1 {
 14660  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
 14661  	}
 14662  	if s.Filters != nil {
 14663  		if err := s.Filters.Validate(); err != nil {
 14664  			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
 14665  		}
 14666  	}
 14667  
 14668  	if invalidParams.Len() > 0 {
 14669  		return invalidParams
 14670  	}
 14671  	return nil
 14672  }
 14673  
 14674  // SetDeprecatedStatus sets the DeprecatedStatus field's value.
 14675  func (s *ListTypesInput) SetDeprecatedStatus(v string) *ListTypesInput {
 14676  	s.DeprecatedStatus = &v
 14677  	return s
 14678  }
 14679  
 14680  // SetFilters sets the Filters field's value.
 14681  func (s *ListTypesInput) SetFilters(v *TypeFilters) *ListTypesInput {
 14682  	s.Filters = v
 14683  	return s
 14684  }
 14685  
 14686  // SetMaxResults sets the MaxResults field's value.
 14687  func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput {
 14688  	s.MaxResults = &v
 14689  	return s
 14690  }
 14691  
 14692  // SetNextToken sets the NextToken field's value.
 14693  func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput {
 14694  	s.NextToken = &v
 14695  	return s
 14696  }
 14697  
 14698  // SetProvisioningType sets the ProvisioningType field's value.
 14699  func (s *ListTypesInput) SetProvisioningType(v string) *ListTypesInput {
 14700  	s.ProvisioningType = &v
 14701  	return s
 14702  }
 14703  
 14704  // SetType sets the Type field's value.
 14705  func (s *ListTypesInput) SetType(v string) *ListTypesInput {
 14706  	s.Type = &v
 14707  	return s
 14708  }
 14709  
 14710  // SetVisibility sets the Visibility field's value.
 14711  func (s *ListTypesInput) SetVisibility(v string) *ListTypesInput {
 14712  	s.Visibility = &v
 14713  	return s
 14714  }
 14715  
 14716  type ListTypesOutput struct {
 14717  	_ struct{} `type:"structure"`
 14718  
 14719  	// If the request doesn't return all of the remaining results, NextToken is
 14720  	// set to a token. To retrieve the next set of results, call this action again
 14721  	// and assign that token to the request object's NextToken parameter. If the
 14722  	// request returns all results, NextToken is set to null.
 14723  	NextToken *string `min:"1" type:"string"`
 14724  
 14725  	// A list of TypeSummary structures that contain information about the specified
 14726  	// extensions.
 14727  	TypeSummaries []*TypeSummary `type:"list"`
 14728  }
 14729  
 14730  // String returns the string representation.
 14731  //
 14732  // API parameter values that are decorated as "sensitive" in the API will not
 14733  // be included in the string output. The member name will be present, but the
 14734  // value will be replaced with "sensitive".
 14735  func (s ListTypesOutput) String() string {
 14736  	return awsutil.Prettify(s)
 14737  }
 14738  
 14739  // GoString returns the string representation.
 14740  //
 14741  // API parameter values that are decorated as "sensitive" in the API will not
 14742  // be included in the string output. The member name will be present, but the
 14743  // value will be replaced with "sensitive".
 14744  func (s ListTypesOutput) GoString() string {
 14745  	return s.String()
 14746  }
 14747  
 14748  // SetNextToken sets the NextToken field's value.
 14749  func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput {
 14750  	s.NextToken = &v
 14751  	return s
 14752  }
 14753  
 14754  // SetTypeSummaries sets the TypeSummaries field's value.
 14755  func (s *ListTypesOutput) SetTypeSummaries(v []*TypeSummary) *ListTypesOutput {
 14756  	s.TypeSummaries = v
 14757  	return s
 14758  }
 14759  
 14760  // Contains logging configuration information for an extension.
 14761  type LoggingConfig struct {
 14762  	_ struct{} `type:"structure"`
 14763  
 14764  	// The Amazon CloudWatch log group to which CloudFormation sends error logging
 14765  	// information when invoking the extension's handlers.
 14766  	//
 14767  	// LogGroupName is a required field
 14768  	LogGroupName *string `min:"1" type:"string" required:"true"`
 14769  
 14770  	// The ARN of the role that CloudFormation should assume when sending log entries
 14771  	// to CloudWatch logs.
 14772  	//
 14773  	// LogRoleArn is a required field
 14774  	LogRoleArn *string `min:"1" type:"string" required:"true"`
 14775  }
 14776  
 14777  // String returns the string representation.
 14778  //
 14779  // API parameter values that are decorated as "sensitive" in the API will not
 14780  // be included in the string output. The member name will be present, but the
 14781  // value will be replaced with "sensitive".
 14782  func (s LoggingConfig) String() string {
 14783  	return awsutil.Prettify(s)
 14784  }
 14785  
 14786  // GoString returns the string representation.
 14787  //
 14788  // API parameter values that are decorated as "sensitive" in the API will not
 14789  // be included in the string output. The member name will be present, but the
 14790  // value will be replaced with "sensitive".
 14791  func (s LoggingConfig) GoString() string {
 14792  	return s.String()
 14793  }
 14794  
 14795  // Validate inspects the fields of the type to determine if they are valid.
 14796  func (s *LoggingConfig) Validate() error {
 14797  	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
 14798  	if s.LogGroupName == nil {
 14799  		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
 14800  	}
 14801  	if s.LogGroupName != nil && len(*s.LogGroupName) < 1 {
 14802  		invalidParams.Add(request.NewErrParamMinLen("LogGroupName", 1))
 14803  	}
 14804  	if s.LogRoleArn == nil {
 14805  		invalidParams.Add(request.NewErrParamRequired("LogRoleArn"))
 14806  	}
 14807  	if s.LogRoleArn != nil && len(*s.LogRoleArn) < 1 {
 14808  		invalidParams.Add(request.NewErrParamMinLen("LogRoleArn", 1))
 14809  	}
 14810  
 14811  	if invalidParams.Len() > 0 {
 14812  		return invalidParams
 14813  	}
 14814  	return nil
 14815  }
 14816  
 14817  // SetLogGroupName sets the LogGroupName field's value.
 14818  func (s *LoggingConfig) SetLogGroupName(v string) *LoggingConfig {
 14819  	s.LogGroupName = &v
 14820  	return s
 14821  }
 14822  
 14823  // SetLogRoleArn sets the LogRoleArn field's value.
 14824  func (s *LoggingConfig) SetLogRoleArn(v string) *LoggingConfig {
 14825  	s.LogRoleArn = &v
 14826  	return s
 14827  }
 14828  
 14829  // Contains information about the module from which the resource was created,
 14830  // if the resource was created from a module included in the stack template.
 14831  //
 14832  // For more information on modules, see Using modules to encapsulate and reuse
 14833  // resource configurations (AWSCloudFormation/latest/UserGuide/modules.html)
 14834  // in the CloudFormation User Guide.
 14835  type ModuleInfo struct {
 14836  	_ struct{} `type:"structure"`
 14837  
 14838  	// A concantenated list of the logical IDs of the module or modules containing
 14839  	// the resource. Modules are listed starting with the inner-most nested module,
 14840  	// and separated by /.
 14841  	//
 14842  	// In the following example, the resource was created from a module, moduleA,
 14843  	// that is nested inside a parent module, moduleB.
 14844  	//
 14845  	// moduleA/moduleB
 14846  	//
 14847  	// For more information, see Referencing resources in a module (AWSCloudFormation/latest/UserGuide/modules.html#module-ref-resources)
 14848  	// in the CloudFormation User Guide.
 14849  	LogicalIdHierarchy *string `type:"string"`
 14850  
 14851  	// A concantenated list of the the module type or types containing the resource.
 14852  	// Module types are listed starting with the inner-most nested module, and separated
 14853  	// by /.
 14854  	//
 14855  	// In the following example, the resource was created from a module of type
 14856  	// AWS::First::Example::MODULE, that is nested inside a parent module of type
 14857  	// AWS::Second::Example::MODULE.
 14858  	//
 14859  	// AWS::First::Example::MODULE/AWS::Second::Example::MODULE
 14860  	TypeHierarchy *string `type:"string"`
 14861  }
 14862  
 14863  // String returns the string representation.
 14864  //
 14865  // API parameter values that are decorated as "sensitive" in the API will not
 14866  // be included in the string output. The member name will be present, but the
 14867  // value will be replaced with "sensitive".
 14868  func (s ModuleInfo) String() string {
 14869  	return awsutil.Prettify(s)
 14870  }
 14871  
 14872  // GoString returns the string representation.
 14873  //
 14874  // API parameter values that are decorated as "sensitive" in the API will not
 14875  // be included in the string output. The member name will be present, but the
 14876  // value will be replaced with "sensitive".
 14877  func (s ModuleInfo) GoString() string {
 14878  	return s.String()
 14879  }
 14880  
 14881  // SetLogicalIdHierarchy sets the LogicalIdHierarchy field's value.
 14882  func (s *ModuleInfo) SetLogicalIdHierarchy(v string) *ModuleInfo {
 14883  	s.LogicalIdHierarchy = &v
 14884  	return s
 14885  }
 14886  
 14887  // SetTypeHierarchy sets the TypeHierarchy field's value.
 14888  func (s *ModuleInfo) SetTypeHierarchy(v string) *ModuleInfo {
 14889  	s.TypeHierarchy = &v
 14890  	return s
 14891  }
 14892  
 14893  // The Output data type.
 14894  type Output struct {
 14895  	_ struct{} `type:"structure"`
 14896  
 14897  	// User defined description associated with the output.
 14898  	Description *string `min:"1" type:"string"`
 14899  
 14900  	// The name of the export associated with the output.
 14901  	ExportName *string `type:"string"`
 14902  
 14903  	// The key associated with the output.
 14904  	OutputKey *string `type:"string"`
 14905  
 14906  	// The value associated with the output.
 14907  	OutputValue *string `type:"string"`
 14908  }
 14909  
 14910  // String returns the string representation.
 14911  //
 14912  // API parameter values that are decorated as "sensitive" in the API will not
 14913  // be included in the string output. The member name will be present, but the
 14914  // value will be replaced with "sensitive".
 14915  func (s Output) String() string {
 14916  	return awsutil.Prettify(s)
 14917  }
 14918  
 14919  // GoString returns the string representation.
 14920  //
 14921  // API parameter values that are decorated as "sensitive" in the API will not
 14922  // be included in the string output. The member name will be present, but the
 14923  // value will be replaced with "sensitive".
 14924  func (s Output) GoString() string {
 14925  	return s.String()
 14926  }
 14927  
 14928  // SetDescription sets the Description field's value.
 14929  func (s *Output) SetDescription(v string) *Output {
 14930  	s.Description = &v
 14931  	return s
 14932  }
 14933  
 14934  // SetExportName sets the ExportName field's value.
 14935  func (s *Output) SetExportName(v string) *Output {
 14936  	s.ExportName = &v
 14937  	return s
 14938  }
 14939  
 14940  // SetOutputKey sets the OutputKey field's value.
 14941  func (s *Output) SetOutputKey(v string) *Output {
 14942  	s.OutputKey = &v
 14943  	return s
 14944  }
 14945  
 14946  // SetOutputValue sets the OutputValue field's value.
 14947  func (s *Output) SetOutputValue(v string) *Output {
 14948  	s.OutputValue = &v
 14949  	return s
 14950  }
 14951  
 14952  // The Parameter data type.
 14953  type Parameter struct {
 14954  	_ struct{} `type:"structure"`
 14955  
 14956  	// The key associated with the parameter. If you don't specify a key and value
 14957  	// for a particular parameter, CloudFormation uses the default value that is
 14958  	// specified in your template.
 14959  	ParameterKey *string `type:"string"`
 14960  
 14961  	// The input value associated with the parameter.
 14962  	ParameterValue *string `type:"string"`
 14963  
 14964  	// Read-only. The value that corresponds to a Systems Manager parameter key.
 14965  	// This field is returned only for SSM parameter types (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types)
 14966  	// in the template.
 14967  	ResolvedValue *string `type:"string"`
 14968  
 14969  	// During a stack update, use the existing parameter value that the stack is
 14970  	// using for a given parameter key. If you specify true, do not specify a parameter
 14971  	// value.
 14972  	UsePreviousValue *bool `type:"boolean"`
 14973  }
 14974  
 14975  // String returns the string representation.
 14976  //
 14977  // API parameter values that are decorated as "sensitive" in the API will not
 14978  // be included in the string output. The member name will be present, but the
 14979  // value will be replaced with "sensitive".
 14980  func (s Parameter) String() string {
 14981  	return awsutil.Prettify(s)
 14982  }
 14983  
 14984  // GoString returns the string representation.
 14985  //
 14986  // API parameter values that are decorated as "sensitive" in the API will not
 14987  // be included in the string output. The member name will be present, but the
 14988  // value will be replaced with "sensitive".
 14989  func (s Parameter) GoString() string {
 14990  	return s.String()
 14991  }
 14992  
 14993  // SetParameterKey sets the ParameterKey field's value.
 14994  func (s *Parameter) SetParameterKey(v string) *Parameter {
 14995  	s.ParameterKey = &v
 14996  	return s
 14997  }
 14998  
 14999  // SetParameterValue sets the ParameterValue field's value.
 15000  func (s *Parameter) SetParameterValue(v string) *Parameter {
 15001  	s.ParameterValue = &v
 15002  	return s
 15003  }
 15004  
 15005  // SetResolvedValue sets the ResolvedValue field's value.
 15006  func (s *Parameter) SetResolvedValue(v string) *Parameter {
 15007  	s.ResolvedValue = &v
 15008  	return s
 15009  }
 15010  
 15011  // SetUsePreviousValue sets the UsePreviousValue field's value.
 15012  func (s *Parameter) SetUsePreviousValue(v bool) *Parameter {
 15013  	s.UsePreviousValue = &v
 15014  	return s
 15015  }
 15016  
 15017  // A set of criteria that CloudFormation uses to validate parameter values.
 15018  // Although other constraints might be defined in the stack template, CloudFormation
 15019  // returns only the AllowedValues property.
 15020  type ParameterConstraints struct {
 15021  	_ struct{} `type:"structure"`
 15022  
 15023  	// A list of values that are permitted for a parameter.
 15024  	AllowedValues []*string `type:"list"`
 15025  }
 15026  
 15027  // String returns the string representation.
 15028  //
 15029  // API parameter values that are decorated as "sensitive" in the API will not
 15030  // be included in the string output. The member name will be present, but the
 15031  // value will be replaced with "sensitive".
 15032  func (s ParameterConstraints) String() string {
 15033  	return awsutil.Prettify(s)
 15034  }
 15035  
 15036  // GoString returns the string representation.
 15037  //
 15038  // API parameter values that are decorated as "sensitive" in the API will not
 15039  // be included in the string output. The member name will be present, but the
 15040  // value will be replaced with "sensitive".
 15041  func (s ParameterConstraints) GoString() string {
 15042  	return s.String()
 15043  }
 15044  
 15045  // SetAllowedValues sets the AllowedValues field's value.
 15046  func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstraints {
 15047  	s.AllowedValues = v
 15048  	return s
 15049  }
 15050  
 15051  // The ParameterDeclaration data type.
 15052  type ParameterDeclaration struct {
 15053  	_ struct{} `type:"structure"`
 15054  
 15055  	// The default value of the parameter.
 15056  	DefaultValue *string `type:"string"`
 15057  
 15058  	// The description that is associate with the parameter.
 15059  	Description *string `min:"1" type:"string"`
 15060  
 15061  	// Flag that indicates whether the parameter value is shown as plain text in
 15062  	// logs and in the Amazon Web Services Management Console.
 15063  	NoEcho *bool `type:"boolean"`
 15064  
 15065  	// The criteria that CloudFormation uses to validate parameter values.
 15066  	ParameterConstraints *ParameterConstraints `type:"structure"`
 15067  
 15068  	// The name that is associated with the parameter.
 15069  	ParameterKey *string `type:"string"`
 15070  
 15071  	// The type of parameter.
 15072  	ParameterType *string `type:"string"`
 15073  }
 15074  
 15075  // String returns the string representation.
 15076  //
 15077  // API parameter values that are decorated as "sensitive" in the API will not
 15078  // be included in the string output. The member name will be present, but the
 15079  // value will be replaced with "sensitive".
 15080  func (s ParameterDeclaration) String() string {
 15081  	return awsutil.Prettify(s)
 15082  }
 15083  
 15084  // GoString returns the string representation.
 15085  //
 15086  // API parameter values that are decorated as "sensitive" in the API will not
 15087  // be included in the string output. The member name will be present, but the
 15088  // value will be replaced with "sensitive".
 15089  func (s ParameterDeclaration) GoString() string {
 15090  	return s.String()
 15091  }
 15092  
 15093  // SetDefaultValue sets the DefaultValue field's value.
 15094  func (s *ParameterDeclaration) SetDefaultValue(v string) *ParameterDeclaration {
 15095  	s.DefaultValue = &v
 15096  	return s
 15097  }
 15098  
 15099  // SetDescription sets the Description field's value.
 15100  func (s *ParameterDeclaration) SetDescription(v string) *ParameterDeclaration {
 15101  	s.Description = &v
 15102  	return s
 15103  }
 15104  
 15105  // SetNoEcho sets the NoEcho field's value.
 15106  func (s *ParameterDeclaration) SetNoEcho(v bool) *ParameterDeclaration {
 15107  	s.NoEcho = &v
 15108  	return s
 15109  }
 15110  
 15111  // SetParameterConstraints sets the ParameterConstraints field's value.
 15112  func (s *ParameterDeclaration) SetParameterConstraints(v *ParameterConstraints) *ParameterDeclaration {
 15113  	s.ParameterConstraints = v
 15114  	return s
 15115  }
 15116  
 15117  // SetParameterKey sets the ParameterKey field's value.
 15118  func (s *ParameterDeclaration) SetParameterKey(v string) *ParameterDeclaration {
 15119  	s.ParameterKey = &v
 15120  	return s
 15121  }
 15122  
 15123  // SetParameterType sets the ParameterType field's value.
 15124  func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration {
 15125  	s.ParameterType = &v
 15126  	return s
 15127  }
 15128  
 15129  // Context information that enables CloudFormation to uniquely identify a resource.
 15130  // CloudFormation uses context key-value pairs in cases where a resource's logical
 15131  // and physical IDs are not enough to uniquely identify that resource. Each
 15132  // context key-value pair specifies a resource that contains the targeted resource.
 15133  type PhysicalResourceIdContextKeyValuePair struct {
 15134  	_ struct{} `type:"structure"`
 15135  
 15136  	// The resource context key.
 15137  	//
 15138  	// Key is a required field
 15139  	Key *string `type:"string" required:"true"`
 15140  
 15141  	// The resource context value.
 15142  	//
 15143  	// Value is a required field
 15144  	Value *string `type:"string" required:"true"`
 15145  }
 15146  
 15147  // String returns the string representation.
 15148  //
 15149  // API parameter values that are decorated as "sensitive" in the API will not
 15150  // be included in the string output. The member name will be present, but the
 15151  // value will be replaced with "sensitive".
 15152  func (s PhysicalResourceIdContextKeyValuePair) String() string {
 15153  	return awsutil.Prettify(s)
 15154  }
 15155  
 15156  // GoString returns the string representation.
 15157  //
 15158  // API parameter values that are decorated as "sensitive" in the API will not
 15159  // be included in the string output. The member name will be present, but the
 15160  // value will be replaced with "sensitive".
 15161  func (s PhysicalResourceIdContextKeyValuePair) GoString() string {
 15162  	return s.String()
 15163  }
 15164  
 15165  // SetKey sets the Key field's value.
 15166  func (s *PhysicalResourceIdContextKeyValuePair) SetKey(v string) *PhysicalResourceIdContextKeyValuePair {
 15167  	s.Key = &v
 15168  	return s
 15169  }
 15170  
 15171  // SetValue sets the Value field's value.
 15172  func (s *PhysicalResourceIdContextKeyValuePair) SetValue(v string) *PhysicalResourceIdContextKeyValuePair {
 15173  	s.Value = &v
 15174  	return s
 15175  }
 15176  
 15177  // Information about a resource property whose actual value differs from its
 15178  // expected value, as defined in the stack template and any values specified
 15179  // as template parameters. These will be present only for resources whose StackResourceDriftStatus
 15180  // is MODIFIED. For more information, see Detecting Unregulated Configuration
 15181  // Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 15182  type PropertyDifference struct {
 15183  	_ struct{} `type:"structure"`
 15184  
 15185  	// The actual property value of the resource property.
 15186  	//
 15187  	// ActualValue is a required field
 15188  	ActualValue *string `type:"string" required:"true"`
 15189  
 15190  	// The type of property difference.
 15191  	//
 15192  	//    * ADD: A value has been added to a resource property that is an array
 15193  	//    or list data type.
 15194  	//
 15195  	//    * REMOVE: The property has been removed from the current resource configuration.
 15196  	//
 15197  	//    * NOT_EQUAL: The current property value differs from its expected value
 15198  	//    (as defined in the stack template and any values specified as template
 15199  	//    parameters).
 15200  	//
 15201  	// DifferenceType is a required field
 15202  	DifferenceType *string `type:"string" required:"true" enum:"DifferenceType"`
 15203  
 15204  	// The expected property value of the resource property, as defined in the stack
 15205  	// template and any values specified as template parameters.
 15206  	//
 15207  	// ExpectedValue is a required field
 15208  	ExpectedValue *string `type:"string" required:"true"`
 15209  
 15210  	// The fully-qualified path to the resource property.
 15211  	//
 15212  	// PropertyPath is a required field
 15213  	PropertyPath *string `type:"string" required:"true"`
 15214  }
 15215  
 15216  // String returns the string representation.
 15217  //
 15218  // API parameter values that are decorated as "sensitive" in the API will not
 15219  // be included in the string output. The member name will be present, but the
 15220  // value will be replaced with "sensitive".
 15221  func (s PropertyDifference) String() string {
 15222  	return awsutil.Prettify(s)
 15223  }
 15224  
 15225  // GoString returns the string representation.
 15226  //
 15227  // API parameter values that are decorated as "sensitive" in the API will not
 15228  // be included in the string output. The member name will be present, but the
 15229  // value will be replaced with "sensitive".
 15230  func (s PropertyDifference) GoString() string {
 15231  	return s.String()
 15232  }
 15233  
 15234  // SetActualValue sets the ActualValue field's value.
 15235  func (s *PropertyDifference) SetActualValue(v string) *PropertyDifference {
 15236  	s.ActualValue = &v
 15237  	return s
 15238  }
 15239  
 15240  // SetDifferenceType sets the DifferenceType field's value.
 15241  func (s *PropertyDifference) SetDifferenceType(v string) *PropertyDifference {
 15242  	s.DifferenceType = &v
 15243  	return s
 15244  }
 15245  
 15246  // SetExpectedValue sets the ExpectedValue field's value.
 15247  func (s *PropertyDifference) SetExpectedValue(v string) *PropertyDifference {
 15248  	s.ExpectedValue = &v
 15249  	return s
 15250  }
 15251  
 15252  // SetPropertyPath sets the PropertyPath field's value.
 15253  func (s *PropertyDifference) SetPropertyPath(v string) *PropertyDifference {
 15254  	s.PropertyPath = &v
 15255  	return s
 15256  }
 15257  
 15258  type PublishTypeInput struct {
 15259  	_ struct{} `type:"structure"`
 15260  
 15261  	// The Amazon Resource Number (ARN) of the extension.
 15262  	//
 15263  	// Conditional: You must specify Arn, or TypeName and Type.
 15264  	Arn *string `type:"string"`
 15265  
 15266  	// The version number to assign to this version of the extension.
 15267  	//
 15268  	// Use the following format, and adhere to semantic versioning when assigning
 15269  	// a version number to your extension:
 15270  	//
 15271  	// MAJOR.MINOR.PATCH
 15272  	//
 15273  	// For more information, see Semantic Versioning 2.0.0 (https://semver.org/).
 15274  	//
 15275  	// If you do not specify a version number, CloudFormation increments the version
 15276  	// number by one minor version release.
 15277  	//
 15278  	// The first time you publish a type, CloudFormation sets the version number
 15279  	// to 1.0.0, regardless of the value you specify.
 15280  	PublicVersionNumber *string `min:"5" type:"string"`
 15281  
 15282  	// The type of the extension.
 15283  	//
 15284  	// Conditional: You must specify Arn, or TypeName and Type.
 15285  	Type *string `type:"string" enum:"ThirdPartyType"`
 15286  
 15287  	// The name of the extension.
 15288  	//
 15289  	// Conditional: You must specify Arn, or TypeName and Type.
 15290  	TypeName *string `min:"10" type:"string"`
 15291  }
 15292  
 15293  // String returns the string representation.
 15294  //
 15295  // API parameter values that are decorated as "sensitive" in the API will not
 15296  // be included in the string output. The member name will be present, but the
 15297  // value will be replaced with "sensitive".
 15298  func (s PublishTypeInput) String() string {
 15299  	return awsutil.Prettify(s)
 15300  }
 15301  
 15302  // GoString returns the string representation.
 15303  //
 15304  // API parameter values that are decorated as "sensitive" in the API will not
 15305  // be included in the string output. The member name will be present, but the
 15306  // value will be replaced with "sensitive".
 15307  func (s PublishTypeInput) GoString() string {
 15308  	return s.String()
 15309  }
 15310  
 15311  // Validate inspects the fields of the type to determine if they are valid.
 15312  func (s *PublishTypeInput) Validate() error {
 15313  	invalidParams := request.ErrInvalidParams{Context: "PublishTypeInput"}
 15314  	if s.PublicVersionNumber != nil && len(*s.PublicVersionNumber) < 5 {
 15315  		invalidParams.Add(request.NewErrParamMinLen("PublicVersionNumber", 5))
 15316  	}
 15317  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 15318  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 15319  	}
 15320  
 15321  	if invalidParams.Len() > 0 {
 15322  		return invalidParams
 15323  	}
 15324  	return nil
 15325  }
 15326  
 15327  // SetArn sets the Arn field's value.
 15328  func (s *PublishTypeInput) SetArn(v string) *PublishTypeInput {
 15329  	s.Arn = &v
 15330  	return s
 15331  }
 15332  
 15333  // SetPublicVersionNumber sets the PublicVersionNumber field's value.
 15334  func (s *PublishTypeInput) SetPublicVersionNumber(v string) *PublishTypeInput {
 15335  	s.PublicVersionNumber = &v
 15336  	return s
 15337  }
 15338  
 15339  // SetType sets the Type field's value.
 15340  func (s *PublishTypeInput) SetType(v string) *PublishTypeInput {
 15341  	s.Type = &v
 15342  	return s
 15343  }
 15344  
 15345  // SetTypeName sets the TypeName field's value.
 15346  func (s *PublishTypeInput) SetTypeName(v string) *PublishTypeInput {
 15347  	s.TypeName = &v
 15348  	return s
 15349  }
 15350  
 15351  type PublishTypeOutput struct {
 15352  	_ struct{} `type:"structure"`
 15353  
 15354  	// The Amazon Resource Number (ARN) assigned to the public extension upon publication.
 15355  	PublicTypeArn *string `type:"string"`
 15356  }
 15357  
 15358  // String returns the string representation.
 15359  //
 15360  // API parameter values that are decorated as "sensitive" in the API will not
 15361  // be included in the string output. The member name will be present, but the
 15362  // value will be replaced with "sensitive".
 15363  func (s PublishTypeOutput) String() string {
 15364  	return awsutil.Prettify(s)
 15365  }
 15366  
 15367  // GoString returns the string representation.
 15368  //
 15369  // API parameter values that are decorated as "sensitive" in the API will not
 15370  // be included in the string output. The member name will be present, but the
 15371  // value will be replaced with "sensitive".
 15372  func (s PublishTypeOutput) GoString() string {
 15373  	return s.String()
 15374  }
 15375  
 15376  // SetPublicTypeArn sets the PublicTypeArn field's value.
 15377  func (s *PublishTypeOutput) SetPublicTypeArn(v string) *PublishTypeOutput {
 15378  	s.PublicTypeArn = &v
 15379  	return s
 15380  }
 15381  
 15382  type RecordHandlerProgressInput struct {
 15383  	_ struct{} `type:"structure"`
 15384  
 15385  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15386  	//
 15387  	// BearerToken is a required field
 15388  	BearerToken *string `min:"1" type:"string" required:"true"`
 15389  
 15390  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15391  	ClientRequestToken *string `min:"1" type:"string"`
 15392  
 15393  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15394  	CurrentOperationStatus *string `type:"string" enum:"OperationStatus"`
 15395  
 15396  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15397  	ErrorCode *string `type:"string" enum:"HandlerErrorCode"`
 15398  
 15399  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15400  	//
 15401  	// OperationStatus is a required field
 15402  	OperationStatus *string `type:"string" required:"true" enum:"OperationStatus"`
 15403  
 15404  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15405  	ResourceModel *string `min:"1" type:"string"`
 15406  
 15407  	// Reserved for use by the CloudFormation CLI (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html).
 15408  	StatusMessage *string `type:"string"`
 15409  }
 15410  
 15411  // String returns the string representation.
 15412  //
 15413  // API parameter values that are decorated as "sensitive" in the API will not
 15414  // be included in the string output. The member name will be present, but the
 15415  // value will be replaced with "sensitive".
 15416  func (s RecordHandlerProgressInput) String() string {
 15417  	return awsutil.Prettify(s)
 15418  }
 15419  
 15420  // GoString returns the string representation.
 15421  //
 15422  // API parameter values that are decorated as "sensitive" in the API will not
 15423  // be included in the string output. The member name will be present, but the
 15424  // value will be replaced with "sensitive".
 15425  func (s RecordHandlerProgressInput) GoString() string {
 15426  	return s.String()
 15427  }
 15428  
 15429  // Validate inspects the fields of the type to determine if they are valid.
 15430  func (s *RecordHandlerProgressInput) Validate() error {
 15431  	invalidParams := request.ErrInvalidParams{Context: "RecordHandlerProgressInput"}
 15432  	if s.BearerToken == nil {
 15433  		invalidParams.Add(request.NewErrParamRequired("BearerToken"))
 15434  	}
 15435  	if s.BearerToken != nil && len(*s.BearerToken) < 1 {
 15436  		invalidParams.Add(request.NewErrParamMinLen("BearerToken", 1))
 15437  	}
 15438  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 15439  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 15440  	}
 15441  	if s.OperationStatus == nil {
 15442  		invalidParams.Add(request.NewErrParamRequired("OperationStatus"))
 15443  	}
 15444  	if s.ResourceModel != nil && len(*s.ResourceModel) < 1 {
 15445  		invalidParams.Add(request.NewErrParamMinLen("ResourceModel", 1))
 15446  	}
 15447  
 15448  	if invalidParams.Len() > 0 {
 15449  		return invalidParams
 15450  	}
 15451  	return nil
 15452  }
 15453  
 15454  // SetBearerToken sets the BearerToken field's value.
 15455  func (s *RecordHandlerProgressInput) SetBearerToken(v string) *RecordHandlerProgressInput {
 15456  	s.BearerToken = &v
 15457  	return s
 15458  }
 15459  
 15460  // SetClientRequestToken sets the ClientRequestToken field's value.
 15461  func (s *RecordHandlerProgressInput) SetClientRequestToken(v string) *RecordHandlerProgressInput {
 15462  	s.ClientRequestToken = &v
 15463  	return s
 15464  }
 15465  
 15466  // SetCurrentOperationStatus sets the CurrentOperationStatus field's value.
 15467  func (s *RecordHandlerProgressInput) SetCurrentOperationStatus(v string) *RecordHandlerProgressInput {
 15468  	s.CurrentOperationStatus = &v
 15469  	return s
 15470  }
 15471  
 15472  // SetErrorCode sets the ErrorCode field's value.
 15473  func (s *RecordHandlerProgressInput) SetErrorCode(v string) *RecordHandlerProgressInput {
 15474  	s.ErrorCode = &v
 15475  	return s
 15476  }
 15477  
 15478  // SetOperationStatus sets the OperationStatus field's value.
 15479  func (s *RecordHandlerProgressInput) SetOperationStatus(v string) *RecordHandlerProgressInput {
 15480  	s.OperationStatus = &v
 15481  	return s
 15482  }
 15483  
 15484  // SetResourceModel sets the ResourceModel field's value.
 15485  func (s *RecordHandlerProgressInput) SetResourceModel(v string) *RecordHandlerProgressInput {
 15486  	s.ResourceModel = &v
 15487  	return s
 15488  }
 15489  
 15490  // SetStatusMessage sets the StatusMessage field's value.
 15491  func (s *RecordHandlerProgressInput) SetStatusMessage(v string) *RecordHandlerProgressInput {
 15492  	s.StatusMessage = &v
 15493  	return s
 15494  }
 15495  
 15496  type RecordHandlerProgressOutput struct {
 15497  	_ struct{} `type:"structure"`
 15498  }
 15499  
 15500  // String returns the string representation.
 15501  //
 15502  // API parameter values that are decorated as "sensitive" in the API will not
 15503  // be included in the string output. The member name will be present, but the
 15504  // value will be replaced with "sensitive".
 15505  func (s RecordHandlerProgressOutput) String() string {
 15506  	return awsutil.Prettify(s)
 15507  }
 15508  
 15509  // GoString returns the string representation.
 15510  //
 15511  // API parameter values that are decorated as "sensitive" in the API will not
 15512  // be included in the string output. The member name will be present, but the
 15513  // value will be replaced with "sensitive".
 15514  func (s RecordHandlerProgressOutput) GoString() string {
 15515  	return s.String()
 15516  }
 15517  
 15518  type RegisterPublisherInput struct {
 15519  	_ struct{} `type:"structure"`
 15520  
 15521  	// Whether you accept the Terms and Conditions (https://cloudformation-registry-documents.s3.amazonaws.com/Terms_and_Conditions_for_AWS_CloudFormation_Registry_Publishers.pdf)
 15522  	// for publishing extensions in the CloudFormation registry. You must accept
 15523  	// the terms and conditions in order to register to publish public extensions
 15524  	// to the CloudFormation registry.
 15525  	//
 15526  	// The default is false.
 15527  	AcceptTermsAndConditions *bool `type:"boolean"`
 15528  
 15529  	// If you are using a Bitbucket or GitHub account for identity verification,
 15530  	// the Amazon Resource Name (ARN) for your connection to that account.
 15531  	//
 15532  	// For more information, see Registering your account to publish CloudFormation
 15533  	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html#publish-extension-prereqs)
 15534  	// in the CloudFormation CLI User Guide.
 15535  	ConnectionArn *string `min:"1" type:"string"`
 15536  }
 15537  
 15538  // String returns the string representation.
 15539  //
 15540  // API parameter values that are decorated as "sensitive" in the API will not
 15541  // be included in the string output. The member name will be present, but the
 15542  // value will be replaced with "sensitive".
 15543  func (s RegisterPublisherInput) String() string {
 15544  	return awsutil.Prettify(s)
 15545  }
 15546  
 15547  // GoString returns the string representation.
 15548  //
 15549  // API parameter values that are decorated as "sensitive" in the API will not
 15550  // be included in the string output. The member name will be present, but the
 15551  // value will be replaced with "sensitive".
 15552  func (s RegisterPublisherInput) GoString() string {
 15553  	return s.String()
 15554  }
 15555  
 15556  // Validate inspects the fields of the type to determine if they are valid.
 15557  func (s *RegisterPublisherInput) Validate() error {
 15558  	invalidParams := request.ErrInvalidParams{Context: "RegisterPublisherInput"}
 15559  	if s.ConnectionArn != nil && len(*s.ConnectionArn) < 1 {
 15560  		invalidParams.Add(request.NewErrParamMinLen("ConnectionArn", 1))
 15561  	}
 15562  
 15563  	if invalidParams.Len() > 0 {
 15564  		return invalidParams
 15565  	}
 15566  	return nil
 15567  }
 15568  
 15569  // SetAcceptTermsAndConditions sets the AcceptTermsAndConditions field's value.
 15570  func (s *RegisterPublisherInput) SetAcceptTermsAndConditions(v bool) *RegisterPublisherInput {
 15571  	s.AcceptTermsAndConditions = &v
 15572  	return s
 15573  }
 15574  
 15575  // SetConnectionArn sets the ConnectionArn field's value.
 15576  func (s *RegisterPublisherInput) SetConnectionArn(v string) *RegisterPublisherInput {
 15577  	s.ConnectionArn = &v
 15578  	return s
 15579  }
 15580  
 15581  type RegisterPublisherOutput struct {
 15582  	_ struct{} `type:"structure"`
 15583  
 15584  	// The ID assigned this account by CloudFormation for publishing extensions.
 15585  	PublisherId *string `min:"1" type:"string"`
 15586  }
 15587  
 15588  // String returns the string representation.
 15589  //
 15590  // API parameter values that are decorated as "sensitive" in the API will not
 15591  // be included in the string output. The member name will be present, but the
 15592  // value will be replaced with "sensitive".
 15593  func (s RegisterPublisherOutput) String() string {
 15594  	return awsutil.Prettify(s)
 15595  }
 15596  
 15597  // GoString returns the string representation.
 15598  //
 15599  // API parameter values that are decorated as "sensitive" in the API will not
 15600  // be included in the string output. The member name will be present, but the
 15601  // value will be replaced with "sensitive".
 15602  func (s RegisterPublisherOutput) GoString() string {
 15603  	return s.String()
 15604  }
 15605  
 15606  // SetPublisherId sets the PublisherId field's value.
 15607  func (s *RegisterPublisherOutput) SetPublisherId(v string) *RegisterPublisherOutput {
 15608  	s.PublisherId = &v
 15609  	return s
 15610  }
 15611  
 15612  type RegisterTypeInput struct {
 15613  	_ struct{} `type:"structure"`
 15614  
 15615  	// A unique identifier that acts as an idempotency key for this registration
 15616  	// request. Specifying a client request token prevents CloudFormation from generating
 15617  	// more than one version of an extension from the same registeration request,
 15618  	// even if the request is submitted multiple times.
 15619  	ClientRequestToken *string `min:"1" type:"string"`
 15620  
 15621  	// The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume
 15622  	// when invoking the extension.
 15623  	//
 15624  	// For CloudFormation to assume the specified execution role, the role must
 15625  	// contain a trust relationship with the CloudFormation service principle (resources.cloudformation.amazonaws.com).
 15626  	// For more information on adding trust relationships, see Modifying a role
 15627  	// trust policy (IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)
 15628  	// in the Identity and Access Management User Guide.
 15629  	//
 15630  	// If your extension calls Amazon Web Services APIs in any of its handlers,
 15631  	// you must create an IAM execution role (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
 15632  	// that includes the necessary permissions to call those Amazon Web Services
 15633  	// APIs, and provision that execution role in your account. When CloudFormation
 15634  	// needs to invoke the resource type handler, CloudFormation assumes this execution
 15635  	// role to create a temporary session token, which it then passes to the resource
 15636  	// type handler, thereby supplying your resource type with the appropriate credentials.
 15637  	ExecutionRoleArn *string `min:"1" type:"string"`
 15638  
 15639  	// Specifies logging configuration information for an extension.
 15640  	LoggingConfig *LoggingConfig `type:"structure"`
 15641  
 15642  	// A url to the S3 bucket containing the extension project package that contains
 15643  	// the neccessary files for the extension you want to register.
 15644  	//
 15645  	// For information on generating a schema handler package for the extension
 15646  	// you want to register, see submit (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html)
 15647  	// in the CloudFormation CLI User Guide.
 15648  	//
 15649  	// The user registering the extension must be able to access the package in
 15650  	// the S3 bucket. That is, the user needs to have GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)
 15651  	// permissions for the schema handler package. For more information, see Actions,
 15652  	// Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html)
 15653  	// in the Identity and Access Management User Guide.
 15654  	//
 15655  	// SchemaHandlerPackage is a required field
 15656  	SchemaHandlerPackage *string `min:"1" type:"string" required:"true"`
 15657  
 15658  	// The kind of extension.
 15659  	Type *string `type:"string" enum:"RegistryType"`
 15660  
 15661  	// The name of the extension being registered.
 15662  	//
 15663  	// We recommend that extension names adhere to the following patterns:
 15664  	//
 15665  	//    * For resource types, company_or_organization::service::type.
 15666  	//
 15667  	//    * For modules, company_or_organization::service::type::MODULE.
 15668  	//
 15669  	// The following organization namespaces are reserved and cannot be used in
 15670  	// your extension names:
 15671  	//
 15672  	//    * Alexa
 15673  	//
 15674  	//    * AMZN
 15675  	//
 15676  	//    * Amazon
 15677  	//
 15678  	//    * AWS
 15679  	//
 15680  	//    * Custom
 15681  	//
 15682  	//    * Dev
 15683  	//
 15684  	// TypeName is a required field
 15685  	TypeName *string `min:"10" type:"string" required:"true"`
 15686  }
 15687  
 15688  // String returns the string representation.
 15689  //
 15690  // API parameter values that are decorated as "sensitive" in the API will not
 15691  // be included in the string output. The member name will be present, but the
 15692  // value will be replaced with "sensitive".
 15693  func (s RegisterTypeInput) String() string {
 15694  	return awsutil.Prettify(s)
 15695  }
 15696  
 15697  // GoString returns the string representation.
 15698  //
 15699  // API parameter values that are decorated as "sensitive" in the API will not
 15700  // be included in the string output. The member name will be present, but the
 15701  // value will be replaced with "sensitive".
 15702  func (s RegisterTypeInput) GoString() string {
 15703  	return s.String()
 15704  }
 15705  
 15706  // Validate inspects the fields of the type to determine if they are valid.
 15707  func (s *RegisterTypeInput) Validate() error {
 15708  	invalidParams := request.ErrInvalidParams{Context: "RegisterTypeInput"}
 15709  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 15710  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 15711  	}
 15712  	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 1 {
 15713  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 1))
 15714  	}
 15715  	if s.SchemaHandlerPackage == nil {
 15716  		invalidParams.Add(request.NewErrParamRequired("SchemaHandlerPackage"))
 15717  	}
 15718  	if s.SchemaHandlerPackage != nil && len(*s.SchemaHandlerPackage) < 1 {
 15719  		invalidParams.Add(request.NewErrParamMinLen("SchemaHandlerPackage", 1))
 15720  	}
 15721  	if s.TypeName == nil {
 15722  		invalidParams.Add(request.NewErrParamRequired("TypeName"))
 15723  	}
 15724  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 15725  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 15726  	}
 15727  	if s.LoggingConfig != nil {
 15728  		if err := s.LoggingConfig.Validate(); err != nil {
 15729  			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
 15730  		}
 15731  	}
 15732  
 15733  	if invalidParams.Len() > 0 {
 15734  		return invalidParams
 15735  	}
 15736  	return nil
 15737  }
 15738  
 15739  // SetClientRequestToken sets the ClientRequestToken field's value.
 15740  func (s *RegisterTypeInput) SetClientRequestToken(v string) *RegisterTypeInput {
 15741  	s.ClientRequestToken = &v
 15742  	return s
 15743  }
 15744  
 15745  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
 15746  func (s *RegisterTypeInput) SetExecutionRoleArn(v string) *RegisterTypeInput {
 15747  	s.ExecutionRoleArn = &v
 15748  	return s
 15749  }
 15750  
 15751  // SetLoggingConfig sets the LoggingConfig field's value.
 15752  func (s *RegisterTypeInput) SetLoggingConfig(v *LoggingConfig) *RegisterTypeInput {
 15753  	s.LoggingConfig = v
 15754  	return s
 15755  }
 15756  
 15757  // SetSchemaHandlerPackage sets the SchemaHandlerPackage field's value.
 15758  func (s *RegisterTypeInput) SetSchemaHandlerPackage(v string) *RegisterTypeInput {
 15759  	s.SchemaHandlerPackage = &v
 15760  	return s
 15761  }
 15762  
 15763  // SetType sets the Type field's value.
 15764  func (s *RegisterTypeInput) SetType(v string) *RegisterTypeInput {
 15765  	s.Type = &v
 15766  	return s
 15767  }
 15768  
 15769  // SetTypeName sets the TypeName field's value.
 15770  func (s *RegisterTypeInput) SetTypeName(v string) *RegisterTypeInput {
 15771  	s.TypeName = &v
 15772  	return s
 15773  }
 15774  
 15775  type RegisterTypeOutput struct {
 15776  	_ struct{} `type:"structure"`
 15777  
 15778  	// The identifier for this registration request.
 15779  	//
 15780  	// Use this registration token when calling DescribeTypeRegistration , which
 15781  	// returns information about the status and IDs of the extension registration.
 15782  	RegistrationToken *string `min:"1" type:"string"`
 15783  }
 15784  
 15785  // String returns the string representation.
 15786  //
 15787  // API parameter values that are decorated as "sensitive" in the API will not
 15788  // be included in the string output. The member name will be present, but the
 15789  // value will be replaced with "sensitive".
 15790  func (s RegisterTypeOutput) String() string {
 15791  	return awsutil.Prettify(s)
 15792  }
 15793  
 15794  // GoString returns the string representation.
 15795  //
 15796  // API parameter values that are decorated as "sensitive" in the API will not
 15797  // be included in the string output. The member name will be present, but the
 15798  // value will be replaced with "sensitive".
 15799  func (s RegisterTypeOutput) GoString() string {
 15800  	return s.String()
 15801  }
 15802  
 15803  // SetRegistrationToken sets the RegistrationToken field's value.
 15804  func (s *RegisterTypeOutput) SetRegistrationToken(v string) *RegisterTypeOutput {
 15805  	s.RegistrationToken = &v
 15806  	return s
 15807  }
 15808  
 15809  // For extensions that are modules, a public third-party extension that must
 15810  // be activated in your account in order for the module itself to be activated.
 15811  //
 15812  // For more information, see Activating public modules for use in your account
 15813  // (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/modules.html#module-enabling)
 15814  // in the CloudFormation User Guide.
 15815  type RequiredActivatedType struct {
 15816  	_ struct{} `type:"structure"`
 15817  
 15818  	// The type name of the public extension.
 15819  	//
 15820  	// If you specified a TypeNameAlias when enabling the extension in this account
 15821  	// and region, CloudFormation treats that alias as the extension's type name
 15822  	// within the account and region, not the type name of the public extension.
 15823  	// For more information, see Specifying aliases to refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
 15824  	// in the CloudFormation User Guide.
 15825  	OriginalTypeName *string `min:"10" type:"string"`
 15826  
 15827  	// The publisher ID of the extension publisher.
 15828  	PublisherId *string `min:"1" type:"string"`
 15829  
 15830  	// A list of the major versions of the extension type that the macro supports.
 15831  	SupportedMajorVersions []*int64 `type:"list"`
 15832  
 15833  	// An alias assigned to the public extension, in this account and region. If
 15834  	// you specify an alias for the extension, CloudFormation treats the alias as
 15835  	// the extension type name within this account and region. You must use the
 15836  	// alias to refer to the extension in your templates, API calls, and CloudFormation
 15837  	// console.
 15838  	TypeNameAlias *string `min:"10" type:"string"`
 15839  }
 15840  
 15841  // String returns the string representation.
 15842  //
 15843  // API parameter values that are decorated as "sensitive" in the API will not
 15844  // be included in the string output. The member name will be present, but the
 15845  // value will be replaced with "sensitive".
 15846  func (s RequiredActivatedType) String() string {
 15847  	return awsutil.Prettify(s)
 15848  }
 15849  
 15850  // GoString returns the string representation.
 15851  //
 15852  // API parameter values that are decorated as "sensitive" in the API will not
 15853  // be included in the string output. The member name will be present, but the
 15854  // value will be replaced with "sensitive".
 15855  func (s RequiredActivatedType) GoString() string {
 15856  	return s.String()
 15857  }
 15858  
 15859  // SetOriginalTypeName sets the OriginalTypeName field's value.
 15860  func (s *RequiredActivatedType) SetOriginalTypeName(v string) *RequiredActivatedType {
 15861  	s.OriginalTypeName = &v
 15862  	return s
 15863  }
 15864  
 15865  // SetPublisherId sets the PublisherId field's value.
 15866  func (s *RequiredActivatedType) SetPublisherId(v string) *RequiredActivatedType {
 15867  	s.PublisherId = &v
 15868  	return s
 15869  }
 15870  
 15871  // SetSupportedMajorVersions sets the SupportedMajorVersions field's value.
 15872  func (s *RequiredActivatedType) SetSupportedMajorVersions(v []*int64) *RequiredActivatedType {
 15873  	s.SupportedMajorVersions = v
 15874  	return s
 15875  }
 15876  
 15877  // SetTypeNameAlias sets the TypeNameAlias field's value.
 15878  func (s *RequiredActivatedType) SetTypeNameAlias(v string) *RequiredActivatedType {
 15879  	s.TypeNameAlias = &v
 15880  	return s
 15881  }
 15882  
 15883  // The ResourceChange structure describes the resource and the action that CloudFormation
 15884  // will perform on it if you execute this change set.
 15885  type ResourceChange struct {
 15886  	_ struct{} `type:"structure"`
 15887  
 15888  	// The action that CloudFormation takes on the resource, such as Add (adds a
 15889  	// new resource), Modify (changes a resource), Remove (deletes a resource),
 15890  	// Import (imports a resource), or Dynamic (exact action for the resource cannot
 15891  	// be determined).
 15892  	Action *string `type:"string" enum:"ChangeAction"`
 15893  
 15894  	// The change set ID of the nested change set.
 15895  	ChangeSetId *string `min:"1" type:"string"`
 15896  
 15897  	// For the Modify action, a list of ResourceChangeDetail structures that describes
 15898  	// the changes that CloudFormation will make to the resource.
 15899  	Details []*ResourceChangeDetail `type:"list"`
 15900  
 15901  	// The resource's logical ID, which is defined in the stack's template.
 15902  	LogicalResourceId *string `type:"string"`
 15903  
 15904  	// Contains information about the module from which the resource was created,
 15905  	// if the resource was created from a module included in the stack template.
 15906  	ModuleInfo *ModuleInfo `type:"structure"`
 15907  
 15908  	// The resource's physical ID (resource name). Resources that you are adding
 15909  	// don't have physical IDs because they haven't been created.
 15910  	PhysicalResourceId *string `type:"string"`
 15911  
 15912  	// For the Modify action, indicates whether CloudFormation will replace the
 15913  	// resource by creating a new one and deleting the old one. This value depends
 15914  	// on the value of the RequiresRecreation property in the ResourceTargetDefinition
 15915  	// structure. For example, if the RequiresRecreation field is Always and the
 15916  	// Evaluation field is Static, Replacement is True. If the RequiresRecreation
 15917  	// field is Always and the Evaluation field is Dynamic, Replacement is Conditionally.
 15918  	//
 15919  	// If you have multiple changes with different RequiresRecreation values, the
 15920  	// Replacement value depends on the change with the most impact. A RequiresRecreation
 15921  	// value of Always has the most impact, followed by Conditionally, and then
 15922  	// Never.
 15923  	Replacement *string `type:"string" enum:"Replacement"`
 15924  
 15925  	// The type of CloudFormation resource, such as AWS::S3::Bucket.
 15926  	ResourceType *string `min:"1" type:"string"`
 15927  
 15928  	// For the Modify action, indicates which resource attribute is triggering this
 15929  	// update, such as a change in the resource attribute's Metadata, Properties,
 15930  	// or Tags.
 15931  	Scope []*string `type:"list"`
 15932  }
 15933  
 15934  // String returns the string representation.
 15935  //
 15936  // API parameter values that are decorated as "sensitive" in the API will not
 15937  // be included in the string output. The member name will be present, but the
 15938  // value will be replaced with "sensitive".
 15939  func (s ResourceChange) String() string {
 15940  	return awsutil.Prettify(s)
 15941  }
 15942  
 15943  // GoString returns the string representation.
 15944  //
 15945  // API parameter values that are decorated as "sensitive" in the API will not
 15946  // be included in the string output. The member name will be present, but the
 15947  // value will be replaced with "sensitive".
 15948  func (s ResourceChange) GoString() string {
 15949  	return s.String()
 15950  }
 15951  
 15952  // SetAction sets the Action field's value.
 15953  func (s *ResourceChange) SetAction(v string) *ResourceChange {
 15954  	s.Action = &v
 15955  	return s
 15956  }
 15957  
 15958  // SetChangeSetId sets the ChangeSetId field's value.
 15959  func (s *ResourceChange) SetChangeSetId(v string) *ResourceChange {
 15960  	s.ChangeSetId = &v
 15961  	return s
 15962  }
 15963  
 15964  // SetDetails sets the Details field's value.
 15965  func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange {
 15966  	s.Details = v
 15967  	return s
 15968  }
 15969  
 15970  // SetLogicalResourceId sets the LogicalResourceId field's value.
 15971  func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange {
 15972  	s.LogicalResourceId = &v
 15973  	return s
 15974  }
 15975  
 15976  // SetModuleInfo sets the ModuleInfo field's value.
 15977  func (s *ResourceChange) SetModuleInfo(v *ModuleInfo) *ResourceChange {
 15978  	s.ModuleInfo = v
 15979  	return s
 15980  }
 15981  
 15982  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 15983  func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange {
 15984  	s.PhysicalResourceId = &v
 15985  	return s
 15986  }
 15987  
 15988  // SetReplacement sets the Replacement field's value.
 15989  func (s *ResourceChange) SetReplacement(v string) *ResourceChange {
 15990  	s.Replacement = &v
 15991  	return s
 15992  }
 15993  
 15994  // SetResourceType sets the ResourceType field's value.
 15995  func (s *ResourceChange) SetResourceType(v string) *ResourceChange {
 15996  	s.ResourceType = &v
 15997  	return s
 15998  }
 15999  
 16000  // SetScope sets the Scope field's value.
 16001  func (s *ResourceChange) SetScope(v []*string) *ResourceChange {
 16002  	s.Scope = v
 16003  	return s
 16004  }
 16005  
 16006  // For a resource with Modify as the action, the ResourceChange structure describes
 16007  // the changes CloudFormation will make to that resource.
 16008  type ResourceChangeDetail struct {
 16009  	_ struct{} `type:"structure"`
 16010  
 16011  	// The identity of the entity that triggered this change. This entity is a member
 16012  	// of the group that is specified by the ChangeSource field. For example, if
 16013  	// you modified the value of the KeyPairName parameter, the CausingEntity is
 16014  	// the name of the parameter (KeyPairName).
 16015  	//
 16016  	// If the ChangeSource value is DirectModification, no value is given for CausingEntity.
 16017  	CausingEntity *string `type:"string"`
 16018  
 16019  	// The group to which the CausingEntity value belongs. There are five entity
 16020  	// groups:
 16021  	//
 16022  	//    * ResourceReference entities are Ref intrinsic functions that refer to
 16023  	//    resources in the template, such as { "Ref" : "MyEC2InstanceResource" }.
 16024  	//
 16025  	//    * ParameterReference entities are Ref intrinsic functions that get template
 16026  	//    parameter values, such as { "Ref" : "MyPasswordParameter" }.
 16027  	//
 16028  	//    * ResourceAttribute entities are Fn::GetAtt intrinsic functions that get
 16029  	//    resource attribute values, such as { "Fn::GetAtt" : [ "MyEC2InstanceResource",
 16030  	//    "PublicDnsName" ] }.
 16031  	//
 16032  	//    * DirectModification entities are changes that are made directly to the
 16033  	//    template.
 16034  	//
 16035  	//    * Automatic entities are AWS::CloudFormation::Stack resource types, which
 16036  	//    are also known as nested stacks. If you made no changes to the AWS::CloudFormation::Stack
 16037  	//    resource, CloudFormation sets the ChangeSource to Automatic because the
 16038  	//    nested stack's template might have changed. Changes to a nested stack's
 16039  	//    template aren't visible to CloudFormation until you run an update on the
 16040  	//    parent stack.
 16041  	ChangeSource *string `type:"string" enum:"ChangeSource"`
 16042  
 16043  	// Indicates whether CloudFormation can determine the target value, and whether
 16044  	// the target value will change before you execute a change set.
 16045  	//
 16046  	// For Static evaluations, CloudFormation can determine that the target value
 16047  	// will change, and its value. For example, if you directly modify the InstanceType
 16048  	// property of an EC2 instance, CloudFormation knows that this property value
 16049  	// will change, and its value, so this is a Static evaluation.
 16050  	//
 16051  	// For Dynamic evaluations, cannot determine the target value because it depends
 16052  	// on the result of an intrinsic function, such as a Ref or Fn::GetAtt intrinsic
 16053  	// function, when the stack is updated. For example, if your template includes
 16054  	// a reference to a resource that is conditionally recreated, the value of the
 16055  	// reference (the physical ID of the resource) might change, depending on if
 16056  	// the resource is recreated. If the resource is recreated, it will have a new
 16057  	// physical ID, so all references to that resource will also be updated.
 16058  	Evaluation *string `type:"string" enum:"EvaluationType"`
 16059  
 16060  	// A ResourceTargetDefinition structure that describes the field that CloudFormation
 16061  	// will change and whether the resource will be recreated.
 16062  	Target *ResourceTargetDefinition `type:"structure"`
 16063  }
 16064  
 16065  // String returns the string representation.
 16066  //
 16067  // API parameter values that are decorated as "sensitive" in the API will not
 16068  // be included in the string output. The member name will be present, but the
 16069  // value will be replaced with "sensitive".
 16070  func (s ResourceChangeDetail) String() string {
 16071  	return awsutil.Prettify(s)
 16072  }
 16073  
 16074  // GoString returns the string representation.
 16075  //
 16076  // API parameter values that are decorated as "sensitive" in the API will not
 16077  // be included in the string output. The member name will be present, but the
 16078  // value will be replaced with "sensitive".
 16079  func (s ResourceChangeDetail) GoString() string {
 16080  	return s.String()
 16081  }
 16082  
 16083  // SetCausingEntity sets the CausingEntity field's value.
 16084  func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail {
 16085  	s.CausingEntity = &v
 16086  	return s
 16087  }
 16088  
 16089  // SetChangeSource sets the ChangeSource field's value.
 16090  func (s *ResourceChangeDetail) SetChangeSource(v string) *ResourceChangeDetail {
 16091  	s.ChangeSource = &v
 16092  	return s
 16093  }
 16094  
 16095  // SetEvaluation sets the Evaluation field's value.
 16096  func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail {
 16097  	s.Evaluation = &v
 16098  	return s
 16099  }
 16100  
 16101  // SetTarget sets the Target field's value.
 16102  func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail {
 16103  	s.Target = v
 16104  	return s
 16105  }
 16106  
 16107  // Describes the target resources of a specific type in your import template
 16108  // (for example, all AWS::S3::Bucket resources) and the properties you can provide
 16109  // during the import to identify resources of that type.
 16110  type ResourceIdentifierSummary struct {
 16111  	_ struct{} `type:"structure"`
 16112  
 16113  	// The logical IDs of the target resources of the specified ResourceType, as
 16114  	// defined in the import template.
 16115  	LogicalResourceIds []*string `min:"1" type:"list"`
 16116  
 16117  	// The resource properties you can provide during the import to identify your
 16118  	// target resources. For example, BucketName is a possible identifier property
 16119  	// for AWS::S3::Bucket resources.
 16120  	ResourceIdentifiers []*string `type:"list"`
 16121  
 16122  	// The template resource type of the target resources, such as AWS::S3::Bucket.
 16123  	ResourceType *string `min:"1" type:"string"`
 16124  }
 16125  
 16126  // String returns the string representation.
 16127  //
 16128  // API parameter values that are decorated as "sensitive" in the API will not
 16129  // be included in the string output. The member name will be present, but the
 16130  // value will be replaced with "sensitive".
 16131  func (s ResourceIdentifierSummary) String() string {
 16132  	return awsutil.Prettify(s)
 16133  }
 16134  
 16135  // GoString returns the string representation.
 16136  //
 16137  // API parameter values that are decorated as "sensitive" in the API will not
 16138  // be included in the string output. The member name will be present, but the
 16139  // value will be replaced with "sensitive".
 16140  func (s ResourceIdentifierSummary) GoString() string {
 16141  	return s.String()
 16142  }
 16143  
 16144  // SetLogicalResourceIds sets the LogicalResourceIds field's value.
 16145  func (s *ResourceIdentifierSummary) SetLogicalResourceIds(v []*string) *ResourceIdentifierSummary {
 16146  	s.LogicalResourceIds = v
 16147  	return s
 16148  }
 16149  
 16150  // SetResourceIdentifiers sets the ResourceIdentifiers field's value.
 16151  func (s *ResourceIdentifierSummary) SetResourceIdentifiers(v []*string) *ResourceIdentifierSummary {
 16152  	s.ResourceIdentifiers = v
 16153  	return s
 16154  }
 16155  
 16156  // SetResourceType sets the ResourceType field's value.
 16157  func (s *ResourceIdentifierSummary) SetResourceType(v string) *ResourceIdentifierSummary {
 16158  	s.ResourceType = &v
 16159  	return s
 16160  }
 16161  
 16162  // The field that CloudFormation will change, such as the name of a resource's
 16163  // property, and whether the resource will be recreated.
 16164  type ResourceTargetDefinition struct {
 16165  	_ struct{} `type:"structure"`
 16166  
 16167  	// Indicates which resource attribute is triggering this update, such as a change
 16168  	// in the resource attribute's Metadata, Properties, or Tags.
 16169  	Attribute *string `type:"string" enum:"ResourceAttribute"`
 16170  
 16171  	// If the Attribute value is Properties, the name of the property. For all other
 16172  	// attributes, the value is null.
 16173  	Name *string `type:"string"`
 16174  
 16175  	// If the Attribute value is Properties, indicates whether a change to this
 16176  	// property causes the resource to be recreated. The value can be Never, Always,
 16177  	// or Conditionally. To determine the conditions for a Conditionally recreation,
 16178  	// see the update behavior for that property (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
 16179  	// in the CloudFormation User Guide.
 16180  	RequiresRecreation *string `type:"string" enum:"RequiresRecreation"`
 16181  }
 16182  
 16183  // String returns the string representation.
 16184  //
 16185  // API parameter values that are decorated as "sensitive" in the API will not
 16186  // be included in the string output. The member name will be present, but the
 16187  // value will be replaced with "sensitive".
 16188  func (s ResourceTargetDefinition) String() string {
 16189  	return awsutil.Prettify(s)
 16190  }
 16191  
 16192  // GoString returns the string representation.
 16193  //
 16194  // API parameter values that are decorated as "sensitive" in the API will not
 16195  // be included in the string output. The member name will be present, but the
 16196  // value will be replaced with "sensitive".
 16197  func (s ResourceTargetDefinition) GoString() string {
 16198  	return s.String()
 16199  }
 16200  
 16201  // SetAttribute sets the Attribute field's value.
 16202  func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition {
 16203  	s.Attribute = &v
 16204  	return s
 16205  }
 16206  
 16207  // SetName sets the Name field's value.
 16208  func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition {
 16209  	s.Name = &v
 16210  	return s
 16211  }
 16212  
 16213  // SetRequiresRecreation sets the RequiresRecreation field's value.
 16214  func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition {
 16215  	s.RequiresRecreation = &v
 16216  	return s
 16217  }
 16218  
 16219  // Describes the target resource of an import operation.
 16220  type ResourceToImport struct {
 16221  	_ struct{} `type:"structure"`
 16222  
 16223  	// The logical ID of the target resource as specified in the template.
 16224  	//
 16225  	// LogicalResourceId is a required field
 16226  	LogicalResourceId *string `type:"string" required:"true"`
 16227  
 16228  	// A key-value pair that identifies the target resource. The key is an identifier
 16229  	// property (for example, BucketName for AWS::S3::Bucket resources) and the
 16230  	// value is the actual property value (for example, MyS3Bucket).
 16231  	//
 16232  	// ResourceIdentifier is a required field
 16233  	ResourceIdentifier map[string]*string `min:"1" type:"map" required:"true"`
 16234  
 16235  	// The type of resource to import into your stack, such as AWS::S3::Bucket.
 16236  	// For a list of supported resource types, see Resources that support import
 16237  	// operations (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)
 16238  	// in the CloudFormation User Guide.
 16239  	//
 16240  	// ResourceType is a required field
 16241  	ResourceType *string `min:"1" type:"string" required:"true"`
 16242  }
 16243  
 16244  // String returns the string representation.
 16245  //
 16246  // API parameter values that are decorated as "sensitive" in the API will not
 16247  // be included in the string output. The member name will be present, but the
 16248  // value will be replaced with "sensitive".
 16249  func (s ResourceToImport) String() string {
 16250  	return awsutil.Prettify(s)
 16251  }
 16252  
 16253  // GoString returns the string representation.
 16254  //
 16255  // API parameter values that are decorated as "sensitive" in the API will not
 16256  // be included in the string output. The member name will be present, but the
 16257  // value will be replaced with "sensitive".
 16258  func (s ResourceToImport) GoString() string {
 16259  	return s.String()
 16260  }
 16261  
 16262  // Validate inspects the fields of the type to determine if they are valid.
 16263  func (s *ResourceToImport) Validate() error {
 16264  	invalidParams := request.ErrInvalidParams{Context: "ResourceToImport"}
 16265  	if s.LogicalResourceId == nil {
 16266  		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
 16267  	}
 16268  	if s.ResourceIdentifier == nil {
 16269  		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
 16270  	}
 16271  	if s.ResourceIdentifier != nil && len(s.ResourceIdentifier) < 1 {
 16272  		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
 16273  	}
 16274  	if s.ResourceType == nil {
 16275  		invalidParams.Add(request.NewErrParamRequired("ResourceType"))
 16276  	}
 16277  	if s.ResourceType != nil && len(*s.ResourceType) < 1 {
 16278  		invalidParams.Add(request.NewErrParamMinLen("ResourceType", 1))
 16279  	}
 16280  
 16281  	if invalidParams.Len() > 0 {
 16282  		return invalidParams
 16283  	}
 16284  	return nil
 16285  }
 16286  
 16287  // SetLogicalResourceId sets the LogicalResourceId field's value.
 16288  func (s *ResourceToImport) SetLogicalResourceId(v string) *ResourceToImport {
 16289  	s.LogicalResourceId = &v
 16290  	return s
 16291  }
 16292  
 16293  // SetResourceIdentifier sets the ResourceIdentifier field's value.
 16294  func (s *ResourceToImport) SetResourceIdentifier(v map[string]*string) *ResourceToImport {
 16295  	s.ResourceIdentifier = v
 16296  	return s
 16297  }
 16298  
 16299  // SetResourceType sets the ResourceType field's value.
 16300  func (s *ResourceToImport) SetResourceType(v string) *ResourceToImport {
 16301  	s.ResourceType = &v
 16302  	return s
 16303  }
 16304  
 16305  // Structure containing the rollback triggers for CloudFormation to monitor
 16306  // during stack creation and updating operations, and for the specified monitoring
 16307  // period afterwards.
 16308  //
 16309  // Rollback triggers enable you to have CloudFormation monitor the state of
 16310  // your application during stack creation and updating, and to roll back that
 16311  // operation if the application breaches the threshold of any of the alarms
 16312  // you've specified. For more information, see Monitor and Roll Back Stack Operations
 16313  // (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html).
 16314  type RollbackConfiguration struct {
 16315  	_ struct{} `type:"structure"`
 16316  
 16317  	// The amount of time, in minutes, during which CloudFormation should monitor
 16318  	// all the rollback triggers after the stack creation or update operation deploys
 16319  	// all necessary resources.
 16320  	//
 16321  	// The default is 0 minutes.
 16322  	//
 16323  	// If you specify a monitoring period but do not specify any rollback triggers,
 16324  	// CloudFormation still waits the specified period of time before cleaning up
 16325  	// old resources after update operations. You can use this monitoring period
 16326  	// to perform any manual stack validation desired, and manually cancel the stack
 16327  	// creation or update (using CancelUpdateStack (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html),
 16328  	// for example) as necessary.
 16329  	//
 16330  	// If you specify 0 for this parameter, CloudFormation still monitors the specified
 16331  	// rollback triggers during stack creation and update operations. Then, for
 16332  	// update operations, it begins disposing of old resources immediately once
 16333  	// the operation completes.
 16334  	MonitoringTimeInMinutes *int64 `type:"integer"`
 16335  
 16336  	// The triggers to monitor during stack creation or update actions.
 16337  	//
 16338  	// By default, CloudFormation saves the rollback triggers specified for a stack
 16339  	// and applies them to any subsequent update operations for the stack, unless
 16340  	// you specify otherwise. If you do specify rollback triggers for this parameter,
 16341  	// those triggers replace any list of triggers previously specified for the
 16342  	// stack. This means:
 16343  	//
 16344  	//    * To use the rollback triggers previously specified for this stack, if
 16345  	//    any, don't specify this parameter.
 16346  	//
 16347  	//    * To specify new or updated rollback triggers, you must specify all the
 16348  	//    triggers that you want used for this stack, even triggers you've specifed
 16349  	//    before (for example, when creating the stack or during a previous stack
 16350  	//    update). Any triggers that you don't include in the updated list of triggers
 16351  	//    are no longer applied to the stack.
 16352  	//
 16353  	//    * To remove all currently specified triggers, specify an empty list for
 16354  	//    this parameter.
 16355  	//
 16356  	// If a specified trigger is missing, the entire stack operation fails and is
 16357  	// rolled back.
 16358  	RollbackTriggers []*RollbackTrigger `type:"list"`
 16359  }
 16360  
 16361  // String returns the string representation.
 16362  //
 16363  // API parameter values that are decorated as "sensitive" in the API will not
 16364  // be included in the string output. The member name will be present, but the
 16365  // value will be replaced with "sensitive".
 16366  func (s RollbackConfiguration) String() string {
 16367  	return awsutil.Prettify(s)
 16368  }
 16369  
 16370  // GoString returns the string representation.
 16371  //
 16372  // API parameter values that are decorated as "sensitive" in the API will not
 16373  // be included in the string output. The member name will be present, but the
 16374  // value will be replaced with "sensitive".
 16375  func (s RollbackConfiguration) GoString() string {
 16376  	return s.String()
 16377  }
 16378  
 16379  // Validate inspects the fields of the type to determine if they are valid.
 16380  func (s *RollbackConfiguration) Validate() error {
 16381  	invalidParams := request.ErrInvalidParams{Context: "RollbackConfiguration"}
 16382  	if s.RollbackTriggers != nil {
 16383  		for i, v := range s.RollbackTriggers {
 16384  			if v == nil {
 16385  				continue
 16386  			}
 16387  			if err := v.Validate(); err != nil {
 16388  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RollbackTriggers", i), err.(request.ErrInvalidParams))
 16389  			}
 16390  		}
 16391  	}
 16392  
 16393  	if invalidParams.Len() > 0 {
 16394  		return invalidParams
 16395  	}
 16396  	return nil
 16397  }
 16398  
 16399  // SetMonitoringTimeInMinutes sets the MonitoringTimeInMinutes field's value.
 16400  func (s *RollbackConfiguration) SetMonitoringTimeInMinutes(v int64) *RollbackConfiguration {
 16401  	s.MonitoringTimeInMinutes = &v
 16402  	return s
 16403  }
 16404  
 16405  // SetRollbackTriggers sets the RollbackTriggers field's value.
 16406  func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *RollbackConfiguration {
 16407  	s.RollbackTriggers = v
 16408  	return s
 16409  }
 16410  
 16411  type RollbackStackInput struct {
 16412  	_ struct{} `type:"structure"`
 16413  
 16414  	// A unique identifier for this RollbackStack request.
 16415  	ClientRequestToken *string `min:"1" type:"string"`
 16416  
 16417  	// The Amazon Resource Name (ARN) of an Identity and Access Management role
 16418  	// that CloudFormation assumes to rollback the stack.
 16419  	RoleARN *string `min:"20" type:"string"`
 16420  
 16421  	// The name that is associated with the stack.
 16422  	//
 16423  	// StackName is a required field
 16424  	StackName *string `min:"1" type:"string" required:"true"`
 16425  }
 16426  
 16427  // String returns the string representation.
 16428  //
 16429  // API parameter values that are decorated as "sensitive" in the API will not
 16430  // be included in the string output. The member name will be present, but the
 16431  // value will be replaced with "sensitive".
 16432  func (s RollbackStackInput) String() string {
 16433  	return awsutil.Prettify(s)
 16434  }
 16435  
 16436  // GoString returns the string representation.
 16437  //
 16438  // API parameter values that are decorated as "sensitive" in the API will not
 16439  // be included in the string output. The member name will be present, but the
 16440  // value will be replaced with "sensitive".
 16441  func (s RollbackStackInput) GoString() string {
 16442  	return s.String()
 16443  }
 16444  
 16445  // Validate inspects the fields of the type to determine if they are valid.
 16446  func (s *RollbackStackInput) Validate() error {
 16447  	invalidParams := request.ErrInvalidParams{Context: "RollbackStackInput"}
 16448  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 16449  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 16450  	}
 16451  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
 16452  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
 16453  	}
 16454  	if s.StackName == nil {
 16455  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 16456  	}
 16457  	if s.StackName != nil && len(*s.StackName) < 1 {
 16458  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 16459  	}
 16460  
 16461  	if invalidParams.Len() > 0 {
 16462  		return invalidParams
 16463  	}
 16464  	return nil
 16465  }
 16466  
 16467  // SetClientRequestToken sets the ClientRequestToken field's value.
 16468  func (s *RollbackStackInput) SetClientRequestToken(v string) *RollbackStackInput {
 16469  	s.ClientRequestToken = &v
 16470  	return s
 16471  }
 16472  
 16473  // SetRoleARN sets the RoleARN field's value.
 16474  func (s *RollbackStackInput) SetRoleARN(v string) *RollbackStackInput {
 16475  	s.RoleARN = &v
 16476  	return s
 16477  }
 16478  
 16479  // SetStackName sets the StackName field's value.
 16480  func (s *RollbackStackInput) SetStackName(v string) *RollbackStackInput {
 16481  	s.StackName = &v
 16482  	return s
 16483  }
 16484  
 16485  type RollbackStackOutput struct {
 16486  	_ struct{} `type:"structure"`
 16487  
 16488  	// Unique identifier of the stack.
 16489  	StackId *string `type:"string"`
 16490  }
 16491  
 16492  // String returns the string representation.
 16493  //
 16494  // API parameter values that are decorated as "sensitive" in the API will not
 16495  // be included in the string output. The member name will be present, but the
 16496  // value will be replaced with "sensitive".
 16497  func (s RollbackStackOutput) String() string {
 16498  	return awsutil.Prettify(s)
 16499  }
 16500  
 16501  // GoString returns the string representation.
 16502  //
 16503  // API parameter values that are decorated as "sensitive" in the API will not
 16504  // be included in the string output. The member name will be present, but the
 16505  // value will be replaced with "sensitive".
 16506  func (s RollbackStackOutput) GoString() string {
 16507  	return s.String()
 16508  }
 16509  
 16510  // SetStackId sets the StackId field's value.
 16511  func (s *RollbackStackOutput) SetStackId(v string) *RollbackStackOutput {
 16512  	s.StackId = &v
 16513  	return s
 16514  }
 16515  
 16516  // A rollback trigger CloudFormation monitors during creation and updating of
 16517  // stacks. If any of the alarms you specify goes to ALARM state during the stack
 16518  // operation or within the specified monitoring period afterwards, CloudFormation
 16519  // rolls back the entire stack operation.
 16520  type RollbackTrigger struct {
 16521  	_ struct{} `type:"structure"`
 16522  
 16523  	// The Amazon Resource Name (ARN) of the rollback trigger.
 16524  	//
 16525  	// If a specified trigger is missing, the entire stack operation fails and is
 16526  	// rolled back.
 16527  	//
 16528  	// Arn is a required field
 16529  	Arn *string `type:"string" required:"true"`
 16530  
 16531  	// The resource type of the rollback trigger. Currently, AWS::CloudWatch::Alarm
 16532  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)
 16533  	// is the only supported resource type.
 16534  	//
 16535  	// Type is a required field
 16536  	Type *string `type:"string" required:"true"`
 16537  }
 16538  
 16539  // String returns the string representation.
 16540  //
 16541  // API parameter values that are decorated as "sensitive" in the API will not
 16542  // be included in the string output. The member name will be present, but the
 16543  // value will be replaced with "sensitive".
 16544  func (s RollbackTrigger) String() string {
 16545  	return awsutil.Prettify(s)
 16546  }
 16547  
 16548  // GoString returns the string representation.
 16549  //
 16550  // API parameter values that are decorated as "sensitive" in the API will not
 16551  // be included in the string output. The member name will be present, but the
 16552  // value will be replaced with "sensitive".
 16553  func (s RollbackTrigger) GoString() string {
 16554  	return s.String()
 16555  }
 16556  
 16557  // Validate inspects the fields of the type to determine if they are valid.
 16558  func (s *RollbackTrigger) Validate() error {
 16559  	invalidParams := request.ErrInvalidParams{Context: "RollbackTrigger"}
 16560  	if s.Arn == nil {
 16561  		invalidParams.Add(request.NewErrParamRequired("Arn"))
 16562  	}
 16563  	if s.Type == nil {
 16564  		invalidParams.Add(request.NewErrParamRequired("Type"))
 16565  	}
 16566  
 16567  	if invalidParams.Len() > 0 {
 16568  		return invalidParams
 16569  	}
 16570  	return nil
 16571  }
 16572  
 16573  // SetArn sets the Arn field's value.
 16574  func (s *RollbackTrigger) SetArn(v string) *RollbackTrigger {
 16575  	s.Arn = &v
 16576  	return s
 16577  }
 16578  
 16579  // SetType sets the Type field's value.
 16580  func (s *RollbackTrigger) SetType(v string) *RollbackTrigger {
 16581  	s.Type = &v
 16582  	return s
 16583  }
 16584  
 16585  // The input for the SetStackPolicy action.
 16586  type SetStackPolicyInput struct {
 16587  	_ struct{} `type:"structure"`
 16588  
 16589  	// The name or unique stack ID that you want to associate a policy with.
 16590  	//
 16591  	// StackName is a required field
 16592  	StackName *string `type:"string" required:"true"`
 16593  
 16594  	// Structure containing the stack policy body. For more information, go to Prevent
 16595  	// Updates to Stack Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)
 16596  	// in the CloudFormation User Guide. You can specify either the StackPolicyBody
 16597  	// or the StackPolicyURL parameter, but not both.
 16598  	StackPolicyBody *string `min:"1" type:"string"`
 16599  
 16600  	// Location of a file containing the stack policy. The URL must point to a policy
 16601  	// (maximum size: 16 KB) located in an S3 bucket in the same Region as the stack.
 16602  	// You can specify either the StackPolicyBody or the StackPolicyURL parameter,
 16603  	// but not both.
 16604  	StackPolicyURL *string `min:"1" type:"string"`
 16605  }
 16606  
 16607  // String returns the string representation.
 16608  //
 16609  // API parameter values that are decorated as "sensitive" in the API will not
 16610  // be included in the string output. The member name will be present, but the
 16611  // value will be replaced with "sensitive".
 16612  func (s SetStackPolicyInput) String() string {
 16613  	return awsutil.Prettify(s)
 16614  }
 16615  
 16616  // GoString returns the string representation.
 16617  //
 16618  // API parameter values that are decorated as "sensitive" in the API will not
 16619  // be included in the string output. The member name will be present, but the
 16620  // value will be replaced with "sensitive".
 16621  func (s SetStackPolicyInput) GoString() string {
 16622  	return s.String()
 16623  }
 16624  
 16625  // Validate inspects the fields of the type to determine if they are valid.
 16626  func (s *SetStackPolicyInput) Validate() error {
 16627  	invalidParams := request.ErrInvalidParams{Context: "SetStackPolicyInput"}
 16628  	if s.StackName == nil {
 16629  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 16630  	}
 16631  	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
 16632  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
 16633  	}
 16634  	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
 16635  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
 16636  	}
 16637  
 16638  	if invalidParams.Len() > 0 {
 16639  		return invalidParams
 16640  	}
 16641  	return nil
 16642  }
 16643  
 16644  // SetStackName sets the StackName field's value.
 16645  func (s *SetStackPolicyInput) SetStackName(v string) *SetStackPolicyInput {
 16646  	s.StackName = &v
 16647  	return s
 16648  }
 16649  
 16650  // SetStackPolicyBody sets the StackPolicyBody field's value.
 16651  func (s *SetStackPolicyInput) SetStackPolicyBody(v string) *SetStackPolicyInput {
 16652  	s.StackPolicyBody = &v
 16653  	return s
 16654  }
 16655  
 16656  // SetStackPolicyURL sets the StackPolicyURL field's value.
 16657  func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput {
 16658  	s.StackPolicyURL = &v
 16659  	return s
 16660  }
 16661  
 16662  type SetStackPolicyOutput struct {
 16663  	_ struct{} `type:"structure"`
 16664  }
 16665  
 16666  // String returns the string representation.
 16667  //
 16668  // API parameter values that are decorated as "sensitive" in the API will not
 16669  // be included in the string output. The member name will be present, but the
 16670  // value will be replaced with "sensitive".
 16671  func (s SetStackPolicyOutput) String() string {
 16672  	return awsutil.Prettify(s)
 16673  }
 16674  
 16675  // GoString returns the string representation.
 16676  //
 16677  // API parameter values that are decorated as "sensitive" in the API will not
 16678  // be included in the string output. The member name will be present, but the
 16679  // value will be replaced with "sensitive".
 16680  func (s SetStackPolicyOutput) GoString() string {
 16681  	return s.String()
 16682  }
 16683  
 16684  type SetTypeConfigurationInput struct {
 16685  	_ struct{} `type:"structure"`
 16686  
 16687  	// The configuration data for the extension, in this account and region.
 16688  	//
 16689  	// The configuration data must be formatted as JSON, and validate against the
 16690  	// schema returned in the ConfigurationSchema response element of API_DescribeType
 16691  	// (AWSCloudFormation/latest/APIReference/API_DescribeType.html). For more information,
 16692  	// see Defining account-level configuration data for an extension (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration)
 16693  	// in the CloudFormation CLI User Guide.
 16694  	//
 16695  	// Configuration is a required field
 16696  	Configuration *string `min:"1" type:"string" required:"true"`
 16697  
 16698  	// An alias by which to refer to this extension configuration data.
 16699  	//
 16700  	// Conditional: Specifying a configuration alias is required when setting a
 16701  	// configuration for a resource type extension.
 16702  	ConfigurationAlias *string `min:"1" type:"string"`
 16703  
 16704  	// The type of extension.
 16705  	//
 16706  	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
 16707  	Type *string `type:"string" enum:"ThirdPartyType"`
 16708  
 16709  	// The Amazon Resource Name (ARN) for the extension, in this account and region.
 16710  	//
 16711  	// For public extensions, this will be the ARN assigned when you activate the
 16712  	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
 16713  	// in this account and region. For private extensions, this will be the ARN
 16714  	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
 16715  	// in this account and region.
 16716  	//
 16717  	// Do not include the extension versions suffix at the end of the ARN. You can
 16718  	// set the configuration for an extension, but not for a specific extension
 16719  	// version.
 16720  	TypeArn *string `type:"string"`
 16721  
 16722  	// The name of the extension.
 16723  	//
 16724  	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
 16725  	TypeName *string `min:"10" type:"string"`
 16726  }
 16727  
 16728  // String returns the string representation.
 16729  //
 16730  // API parameter values that are decorated as "sensitive" in the API will not
 16731  // be included in the string output. The member name will be present, but the
 16732  // value will be replaced with "sensitive".
 16733  func (s SetTypeConfigurationInput) String() string {
 16734  	return awsutil.Prettify(s)
 16735  }
 16736  
 16737  // GoString returns the string representation.
 16738  //
 16739  // API parameter values that are decorated as "sensitive" in the API will not
 16740  // be included in the string output. The member name will be present, but the
 16741  // value will be replaced with "sensitive".
 16742  func (s SetTypeConfigurationInput) GoString() string {
 16743  	return s.String()
 16744  }
 16745  
 16746  // Validate inspects the fields of the type to determine if they are valid.
 16747  func (s *SetTypeConfigurationInput) Validate() error {
 16748  	invalidParams := request.ErrInvalidParams{Context: "SetTypeConfigurationInput"}
 16749  	if s.Configuration == nil {
 16750  		invalidParams.Add(request.NewErrParamRequired("Configuration"))
 16751  	}
 16752  	if s.Configuration != nil && len(*s.Configuration) < 1 {
 16753  		invalidParams.Add(request.NewErrParamMinLen("Configuration", 1))
 16754  	}
 16755  	if s.ConfigurationAlias != nil && len(*s.ConfigurationAlias) < 1 {
 16756  		invalidParams.Add(request.NewErrParamMinLen("ConfigurationAlias", 1))
 16757  	}
 16758  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 16759  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 16760  	}
 16761  
 16762  	if invalidParams.Len() > 0 {
 16763  		return invalidParams
 16764  	}
 16765  	return nil
 16766  }
 16767  
 16768  // SetConfiguration sets the Configuration field's value.
 16769  func (s *SetTypeConfigurationInput) SetConfiguration(v string) *SetTypeConfigurationInput {
 16770  	s.Configuration = &v
 16771  	return s
 16772  }
 16773  
 16774  // SetConfigurationAlias sets the ConfigurationAlias field's value.
 16775  func (s *SetTypeConfigurationInput) SetConfigurationAlias(v string) *SetTypeConfigurationInput {
 16776  	s.ConfigurationAlias = &v
 16777  	return s
 16778  }
 16779  
 16780  // SetType sets the Type field's value.
 16781  func (s *SetTypeConfigurationInput) SetType(v string) *SetTypeConfigurationInput {
 16782  	s.Type = &v
 16783  	return s
 16784  }
 16785  
 16786  // SetTypeArn sets the TypeArn field's value.
 16787  func (s *SetTypeConfigurationInput) SetTypeArn(v string) *SetTypeConfigurationInput {
 16788  	s.TypeArn = &v
 16789  	return s
 16790  }
 16791  
 16792  // SetTypeName sets the TypeName field's value.
 16793  func (s *SetTypeConfigurationInput) SetTypeName(v string) *SetTypeConfigurationInput {
 16794  	s.TypeName = &v
 16795  	return s
 16796  }
 16797  
 16798  type SetTypeConfigurationOutput struct {
 16799  	_ struct{} `type:"structure"`
 16800  
 16801  	// The Amazon Resource Name (ARN) for the configuration data, in this account
 16802  	// and region.
 16803  	//
 16804  	// Conditional: You must specify ConfigurationArn, or Type and TypeName.
 16805  	ConfigurationArn *string `type:"string"`
 16806  }
 16807  
 16808  // String returns the string representation.
 16809  //
 16810  // API parameter values that are decorated as "sensitive" in the API will not
 16811  // be included in the string output. The member name will be present, but the
 16812  // value will be replaced with "sensitive".
 16813  func (s SetTypeConfigurationOutput) String() string {
 16814  	return awsutil.Prettify(s)
 16815  }
 16816  
 16817  // GoString returns the string representation.
 16818  //
 16819  // API parameter values that are decorated as "sensitive" in the API will not
 16820  // be included in the string output. The member name will be present, but the
 16821  // value will be replaced with "sensitive".
 16822  func (s SetTypeConfigurationOutput) GoString() string {
 16823  	return s.String()
 16824  }
 16825  
 16826  // SetConfigurationArn sets the ConfigurationArn field's value.
 16827  func (s *SetTypeConfigurationOutput) SetConfigurationArn(v string) *SetTypeConfigurationOutput {
 16828  	s.ConfigurationArn = &v
 16829  	return s
 16830  }
 16831  
 16832  type SetTypeDefaultVersionInput struct {
 16833  	_ struct{} `type:"structure"`
 16834  
 16835  	// The Amazon Resource Name (ARN) of the extension for which you want version
 16836  	// summary information.
 16837  	//
 16838  	// Conditional: You must specify either TypeName and Type, or Arn.
 16839  	Arn *string `type:"string"`
 16840  
 16841  	// The kind of extension.
 16842  	//
 16843  	// Conditional: You must specify either TypeName and Type, or Arn.
 16844  	Type *string `type:"string" enum:"RegistryType"`
 16845  
 16846  	// The name of the extension.
 16847  	//
 16848  	// Conditional: You must specify either TypeName and Type, or Arn.
 16849  	TypeName *string `min:"10" type:"string"`
 16850  
 16851  	// The ID of a specific version of the extension. The version ID is the value
 16852  	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
 16853  	// when it is registered.
 16854  	VersionId *string `min:"1" type:"string"`
 16855  }
 16856  
 16857  // String returns the string representation.
 16858  //
 16859  // API parameter values that are decorated as "sensitive" in the API will not
 16860  // be included in the string output. The member name will be present, but the
 16861  // value will be replaced with "sensitive".
 16862  func (s SetTypeDefaultVersionInput) String() string {
 16863  	return awsutil.Prettify(s)
 16864  }
 16865  
 16866  // GoString returns the string representation.
 16867  //
 16868  // API parameter values that are decorated as "sensitive" in the API will not
 16869  // be included in the string output. The member name will be present, but the
 16870  // value will be replaced with "sensitive".
 16871  func (s SetTypeDefaultVersionInput) GoString() string {
 16872  	return s.String()
 16873  }
 16874  
 16875  // Validate inspects the fields of the type to determine if they are valid.
 16876  func (s *SetTypeDefaultVersionInput) Validate() error {
 16877  	invalidParams := request.ErrInvalidParams{Context: "SetTypeDefaultVersionInput"}
 16878  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 16879  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 16880  	}
 16881  	if s.VersionId != nil && len(*s.VersionId) < 1 {
 16882  		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
 16883  	}
 16884  
 16885  	if invalidParams.Len() > 0 {
 16886  		return invalidParams
 16887  	}
 16888  	return nil
 16889  }
 16890  
 16891  // SetArn sets the Arn field's value.
 16892  func (s *SetTypeDefaultVersionInput) SetArn(v string) *SetTypeDefaultVersionInput {
 16893  	s.Arn = &v
 16894  	return s
 16895  }
 16896  
 16897  // SetType sets the Type field's value.
 16898  func (s *SetTypeDefaultVersionInput) SetType(v string) *SetTypeDefaultVersionInput {
 16899  	s.Type = &v
 16900  	return s
 16901  }
 16902  
 16903  // SetTypeName sets the TypeName field's value.
 16904  func (s *SetTypeDefaultVersionInput) SetTypeName(v string) *SetTypeDefaultVersionInput {
 16905  	s.TypeName = &v
 16906  	return s
 16907  }
 16908  
 16909  // SetVersionId sets the VersionId field's value.
 16910  func (s *SetTypeDefaultVersionInput) SetVersionId(v string) *SetTypeDefaultVersionInput {
 16911  	s.VersionId = &v
 16912  	return s
 16913  }
 16914  
 16915  type SetTypeDefaultVersionOutput struct {
 16916  	_ struct{} `type:"structure"`
 16917  }
 16918  
 16919  // String returns the string representation.
 16920  //
 16921  // API parameter values that are decorated as "sensitive" in the API will not
 16922  // be included in the string output. The member name will be present, but the
 16923  // value will be replaced with "sensitive".
 16924  func (s SetTypeDefaultVersionOutput) String() string {
 16925  	return awsutil.Prettify(s)
 16926  }
 16927  
 16928  // GoString returns the string representation.
 16929  //
 16930  // API parameter values that are decorated as "sensitive" in the API will not
 16931  // be included in the string output. The member name will be present, but the
 16932  // value will be replaced with "sensitive".
 16933  func (s SetTypeDefaultVersionOutput) GoString() string {
 16934  	return s.String()
 16935  }
 16936  
 16937  // The input for the SignalResource action.
 16938  type SignalResourceInput struct {
 16939  	_ struct{} `type:"structure"`
 16940  
 16941  	// The logical ID of the resource that you want to signal. The logical ID is
 16942  	// the name of the resource that given in the template.
 16943  	//
 16944  	// LogicalResourceId is a required field
 16945  	LogicalResourceId *string `type:"string" required:"true"`
 16946  
 16947  	// The stack name or unique stack ID that includes the resource that you want
 16948  	// to signal.
 16949  	//
 16950  	// StackName is a required field
 16951  	StackName *string `min:"1" type:"string" required:"true"`
 16952  
 16953  	// The status of the signal, which is either success or failure. A failure signal
 16954  	// causes CloudFormation to immediately fail the stack creation or update.
 16955  	//
 16956  	// Status is a required field
 16957  	Status *string `type:"string" required:"true" enum:"ResourceSignalStatus"`
 16958  
 16959  	// A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling
 16960  	// groups, specify the instance ID that you are signaling as the unique ID.
 16961  	// If you send multiple signals to a single resource (such as signaling a wait
 16962  	// condition), each signal requires a different unique ID.
 16963  	//
 16964  	// UniqueId is a required field
 16965  	UniqueId *string `min:"1" type:"string" required:"true"`
 16966  }
 16967  
 16968  // String returns the string representation.
 16969  //
 16970  // API parameter values that are decorated as "sensitive" in the API will not
 16971  // be included in the string output. The member name will be present, but the
 16972  // value will be replaced with "sensitive".
 16973  func (s SignalResourceInput) String() string {
 16974  	return awsutil.Prettify(s)
 16975  }
 16976  
 16977  // GoString returns the string representation.
 16978  //
 16979  // API parameter values that are decorated as "sensitive" in the API will not
 16980  // be included in the string output. The member name will be present, but the
 16981  // value will be replaced with "sensitive".
 16982  func (s SignalResourceInput) GoString() string {
 16983  	return s.String()
 16984  }
 16985  
 16986  // Validate inspects the fields of the type to determine if they are valid.
 16987  func (s *SignalResourceInput) Validate() error {
 16988  	invalidParams := request.ErrInvalidParams{Context: "SignalResourceInput"}
 16989  	if s.LogicalResourceId == nil {
 16990  		invalidParams.Add(request.NewErrParamRequired("LogicalResourceId"))
 16991  	}
 16992  	if s.StackName == nil {
 16993  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 16994  	}
 16995  	if s.StackName != nil && len(*s.StackName) < 1 {
 16996  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 16997  	}
 16998  	if s.Status == nil {
 16999  		invalidParams.Add(request.NewErrParamRequired("Status"))
 17000  	}
 17001  	if s.UniqueId == nil {
 17002  		invalidParams.Add(request.NewErrParamRequired("UniqueId"))
 17003  	}
 17004  	if s.UniqueId != nil && len(*s.UniqueId) < 1 {
 17005  		invalidParams.Add(request.NewErrParamMinLen("UniqueId", 1))
 17006  	}
 17007  
 17008  	if invalidParams.Len() > 0 {
 17009  		return invalidParams
 17010  	}
 17011  	return nil
 17012  }
 17013  
 17014  // SetLogicalResourceId sets the LogicalResourceId field's value.
 17015  func (s *SignalResourceInput) SetLogicalResourceId(v string) *SignalResourceInput {
 17016  	s.LogicalResourceId = &v
 17017  	return s
 17018  }
 17019  
 17020  // SetStackName sets the StackName field's value.
 17021  func (s *SignalResourceInput) SetStackName(v string) *SignalResourceInput {
 17022  	s.StackName = &v
 17023  	return s
 17024  }
 17025  
 17026  // SetStatus sets the Status field's value.
 17027  func (s *SignalResourceInput) SetStatus(v string) *SignalResourceInput {
 17028  	s.Status = &v
 17029  	return s
 17030  }
 17031  
 17032  // SetUniqueId sets the UniqueId field's value.
 17033  func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput {
 17034  	s.UniqueId = &v
 17035  	return s
 17036  }
 17037  
 17038  type SignalResourceOutput struct {
 17039  	_ struct{} `type:"structure"`
 17040  }
 17041  
 17042  // String returns the string representation.
 17043  //
 17044  // API parameter values that are decorated as "sensitive" in the API will not
 17045  // be included in the string output. The member name will be present, but the
 17046  // value will be replaced with "sensitive".
 17047  func (s SignalResourceOutput) String() string {
 17048  	return awsutil.Prettify(s)
 17049  }
 17050  
 17051  // GoString returns the string representation.
 17052  //
 17053  // API parameter values that are decorated as "sensitive" in the API will not
 17054  // be included in the string output. The member name will be present, but the
 17055  // value will be replaced with "sensitive".
 17056  func (s SignalResourceOutput) GoString() string {
 17057  	return s.String()
 17058  }
 17059  
 17060  // The Stack data type.
 17061  type Stack struct {
 17062  	_ struct{} `type:"structure"`
 17063  
 17064  	// The capabilities allowed in the stack.
 17065  	Capabilities []*string `type:"list"`
 17066  
 17067  	// The unique ID of the change set.
 17068  	ChangeSetId *string `min:"1" type:"string"`
 17069  
 17070  	// The time at which the stack was created.
 17071  	//
 17072  	// CreationTime is a required field
 17073  	CreationTime *time.Time `type:"timestamp" required:"true"`
 17074  
 17075  	// The time the stack was deleted.
 17076  	DeletionTime *time.Time `type:"timestamp"`
 17077  
 17078  	// A user-defined description associated with the stack.
 17079  	Description *string `min:"1" type:"string"`
 17080  
 17081  	// Boolean to enable or disable rollback on stack creation failures:
 17082  	//
 17083  	//    * true: disable rollback
 17084  	//
 17085  	//    * false: enable rollback
 17086  	DisableRollback *bool `type:"boolean"`
 17087  
 17088  	// Information on whether a stack's actual configuration differs, or has drifted,
 17089  	// from it's expected configuration, as defined in the stack template and any
 17090  	// values specified as template parameters. For more information, see Detecting
 17091  	// Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 17092  	DriftInformation *StackDriftInformation `type:"structure"`
 17093  
 17094  	// Whether termination protection is enabled for the stack.
 17095  	//
 17096  	// For nested stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html),
 17097  	// termination protection is set on the root stack and cannot be changed directly
 17098  	// on the nested stack. For more information, see Protecting a Stack From Being
 17099  	// Deleted (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)
 17100  	// in the CloudFormation User Guide.
 17101  	EnableTerminationProtection *bool `type:"boolean"`
 17102  
 17103  	// The time the stack was last updated. This field will only be returned if
 17104  	// the stack has been updated at least once.
 17105  	LastUpdatedTime *time.Time `type:"timestamp"`
 17106  
 17107  	// SNS topic ARNs to which stack related events are published.
 17108  	NotificationARNs []*string `type:"list"`
 17109  
 17110  	// A list of output structures.
 17111  	Outputs []*Output `type:"list"`
 17112  
 17113  	// A list of Parameter structures.
 17114  	Parameters []*Parameter `type:"list"`
 17115  
 17116  	// For nested stacks--stacks created as resources for another stack--the stack
 17117  	// ID of the direct parent of this stack. For the first level of nested stacks,
 17118  	// the root stack is also the parent stack.
 17119  	//
 17120  	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
 17121  	// in the CloudFormation User Guide.
 17122  	ParentId *string `type:"string"`
 17123  
 17124  	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
 17125  	// role that is associated with the stack. During a stack operation, CloudFormation
 17126  	// uses this role's credentials to make calls on your behalf.
 17127  	RoleARN *string `min:"20" type:"string"`
 17128  
 17129  	// The rollback triggers for CloudFormation to monitor during stack creation
 17130  	// and updating operations, and for the specified monitoring period afterwards.
 17131  	RollbackConfiguration *RollbackConfiguration `type:"structure"`
 17132  
 17133  	// For nested stacks--stacks created as resources for another stack--the stack
 17134  	// ID of the top-level stack to which the nested stack ultimately belongs.
 17135  	//
 17136  	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
 17137  	// in the CloudFormation User Guide.
 17138  	RootId *string `type:"string"`
 17139  
 17140  	// Unique identifier of the stack.
 17141  	StackId *string `type:"string"`
 17142  
 17143  	// The name associated with the stack.
 17144  	//
 17145  	// StackName is a required field
 17146  	StackName *string `type:"string" required:"true"`
 17147  
 17148  	// Current status of the stack.
 17149  	//
 17150  	// StackStatus is a required field
 17151  	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
 17152  
 17153  	// Success/failure message associated with the stack status.
 17154  	StackStatusReason *string `type:"string"`
 17155  
 17156  	// A list of Tags that specify information about the stack.
 17157  	Tags []*Tag `type:"list"`
 17158  
 17159  	// The amount of time within which stack creation should complete.
 17160  	TimeoutInMinutes *int64 `min:"1" type:"integer"`
 17161  }
 17162  
 17163  // String returns the string representation.
 17164  //
 17165  // API parameter values that are decorated as "sensitive" in the API will not
 17166  // be included in the string output. The member name will be present, but the
 17167  // value will be replaced with "sensitive".
 17168  func (s Stack) String() string {
 17169  	return awsutil.Prettify(s)
 17170  }
 17171  
 17172  // GoString returns the string representation.
 17173  //
 17174  // API parameter values that are decorated as "sensitive" in the API will not
 17175  // be included in the string output. The member name will be present, but the
 17176  // value will be replaced with "sensitive".
 17177  func (s Stack) GoString() string {
 17178  	return s.String()
 17179  }
 17180  
 17181  // SetCapabilities sets the Capabilities field's value.
 17182  func (s *Stack) SetCapabilities(v []*string) *Stack {
 17183  	s.Capabilities = v
 17184  	return s
 17185  }
 17186  
 17187  // SetChangeSetId sets the ChangeSetId field's value.
 17188  func (s *Stack) SetChangeSetId(v string) *Stack {
 17189  	s.ChangeSetId = &v
 17190  	return s
 17191  }
 17192  
 17193  // SetCreationTime sets the CreationTime field's value.
 17194  func (s *Stack) SetCreationTime(v time.Time) *Stack {
 17195  	s.CreationTime = &v
 17196  	return s
 17197  }
 17198  
 17199  // SetDeletionTime sets the DeletionTime field's value.
 17200  func (s *Stack) SetDeletionTime(v time.Time) *Stack {
 17201  	s.DeletionTime = &v
 17202  	return s
 17203  }
 17204  
 17205  // SetDescription sets the Description field's value.
 17206  func (s *Stack) SetDescription(v string) *Stack {
 17207  	s.Description = &v
 17208  	return s
 17209  }
 17210  
 17211  // SetDisableRollback sets the DisableRollback field's value.
 17212  func (s *Stack) SetDisableRollback(v bool) *Stack {
 17213  	s.DisableRollback = &v
 17214  	return s
 17215  }
 17216  
 17217  // SetDriftInformation sets the DriftInformation field's value.
 17218  func (s *Stack) SetDriftInformation(v *StackDriftInformation) *Stack {
 17219  	s.DriftInformation = v
 17220  	return s
 17221  }
 17222  
 17223  // SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
 17224  func (s *Stack) SetEnableTerminationProtection(v bool) *Stack {
 17225  	s.EnableTerminationProtection = &v
 17226  	return s
 17227  }
 17228  
 17229  // SetLastUpdatedTime sets the LastUpdatedTime field's value.
 17230  func (s *Stack) SetLastUpdatedTime(v time.Time) *Stack {
 17231  	s.LastUpdatedTime = &v
 17232  	return s
 17233  }
 17234  
 17235  // SetNotificationARNs sets the NotificationARNs field's value.
 17236  func (s *Stack) SetNotificationARNs(v []*string) *Stack {
 17237  	s.NotificationARNs = v
 17238  	return s
 17239  }
 17240  
 17241  // SetOutputs sets the Outputs field's value.
 17242  func (s *Stack) SetOutputs(v []*Output) *Stack {
 17243  	s.Outputs = v
 17244  	return s
 17245  }
 17246  
 17247  // SetParameters sets the Parameters field's value.
 17248  func (s *Stack) SetParameters(v []*Parameter) *Stack {
 17249  	s.Parameters = v
 17250  	return s
 17251  }
 17252  
 17253  // SetParentId sets the ParentId field's value.
 17254  func (s *Stack) SetParentId(v string) *Stack {
 17255  	s.ParentId = &v
 17256  	return s
 17257  }
 17258  
 17259  // SetRoleARN sets the RoleARN field's value.
 17260  func (s *Stack) SetRoleARN(v string) *Stack {
 17261  	s.RoleARN = &v
 17262  	return s
 17263  }
 17264  
 17265  // SetRollbackConfiguration sets the RollbackConfiguration field's value.
 17266  func (s *Stack) SetRollbackConfiguration(v *RollbackConfiguration) *Stack {
 17267  	s.RollbackConfiguration = v
 17268  	return s
 17269  }
 17270  
 17271  // SetRootId sets the RootId field's value.
 17272  func (s *Stack) SetRootId(v string) *Stack {
 17273  	s.RootId = &v
 17274  	return s
 17275  }
 17276  
 17277  // SetStackId sets the StackId field's value.
 17278  func (s *Stack) SetStackId(v string) *Stack {
 17279  	s.StackId = &v
 17280  	return s
 17281  }
 17282  
 17283  // SetStackName sets the StackName field's value.
 17284  func (s *Stack) SetStackName(v string) *Stack {
 17285  	s.StackName = &v
 17286  	return s
 17287  }
 17288  
 17289  // SetStackStatus sets the StackStatus field's value.
 17290  func (s *Stack) SetStackStatus(v string) *Stack {
 17291  	s.StackStatus = &v
 17292  	return s
 17293  }
 17294  
 17295  // SetStackStatusReason sets the StackStatusReason field's value.
 17296  func (s *Stack) SetStackStatusReason(v string) *Stack {
 17297  	s.StackStatusReason = &v
 17298  	return s
 17299  }
 17300  
 17301  // SetTags sets the Tags field's value.
 17302  func (s *Stack) SetTags(v []*Tag) *Stack {
 17303  	s.Tags = v
 17304  	return s
 17305  }
 17306  
 17307  // SetTimeoutInMinutes sets the TimeoutInMinutes field's value.
 17308  func (s *Stack) SetTimeoutInMinutes(v int64) *Stack {
 17309  	s.TimeoutInMinutes = &v
 17310  	return s
 17311  }
 17312  
 17313  // Contains information about whether the stack's actual configuration differs,
 17314  // or has drifted, from its expected configuration, as defined in the stack
 17315  // template and any values specified as template parameters. A stack is considered
 17316  // to have drifted if one or more of its resources have drifted.
 17317  type StackDriftInformation struct {
 17318  	_ struct{} `type:"structure"`
 17319  
 17320  	// Most recent time when a drift detection operation was initiated on the stack,
 17321  	// or any of its individual resources that support drift detection.
 17322  	LastCheckTimestamp *time.Time `type:"timestamp"`
 17323  
 17324  	// Status of the stack's actual configuration compared to its expected template
 17325  	// configuration.
 17326  	//
 17327  	//    * DRIFTED: The stack differs from its expected template configuration.
 17328  	//    A stack is considered to have drifted if one or more of its resources
 17329  	//    have drifted.
 17330  	//
 17331  	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
 17332  	//    its expected template configuration.
 17333  	//
 17334  	//    * IN_SYNC: The stack's actual configuration matches its expected template
 17335  	//    configuration.
 17336  	//
 17337  	//    * UNKNOWN: This value is reserved for future use.
 17338  	//
 17339  	// StackDriftStatus is a required field
 17340  	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
 17341  }
 17342  
 17343  // String returns the string representation.
 17344  //
 17345  // API parameter values that are decorated as "sensitive" in the API will not
 17346  // be included in the string output. The member name will be present, but the
 17347  // value will be replaced with "sensitive".
 17348  func (s StackDriftInformation) String() string {
 17349  	return awsutil.Prettify(s)
 17350  }
 17351  
 17352  // GoString returns the string representation.
 17353  //
 17354  // API parameter values that are decorated as "sensitive" in the API will not
 17355  // be included in the string output. The member name will be present, but the
 17356  // value will be replaced with "sensitive".
 17357  func (s StackDriftInformation) GoString() string {
 17358  	return s.String()
 17359  }
 17360  
 17361  // SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
 17362  func (s *StackDriftInformation) SetLastCheckTimestamp(v time.Time) *StackDriftInformation {
 17363  	s.LastCheckTimestamp = &v
 17364  	return s
 17365  }
 17366  
 17367  // SetStackDriftStatus sets the StackDriftStatus field's value.
 17368  func (s *StackDriftInformation) SetStackDriftStatus(v string) *StackDriftInformation {
 17369  	s.StackDriftStatus = &v
 17370  	return s
 17371  }
 17372  
 17373  // Contains information about whether the stack's actual configuration differs,
 17374  // or has drifted, from its expected configuration, as defined in the stack
 17375  // template and any values specified as template parameters. A stack is considered
 17376  // to have drifted if one or more of its resources have drifted.
 17377  type StackDriftInformationSummary struct {
 17378  	_ struct{} `type:"structure"`
 17379  
 17380  	// Most recent time when a drift detection operation was initiated on the stack,
 17381  	// or any of its individual resources that support drift detection.
 17382  	LastCheckTimestamp *time.Time `type:"timestamp"`
 17383  
 17384  	// Status of the stack's actual configuration compared to its expected template
 17385  	// configuration.
 17386  	//
 17387  	//    * DRIFTED: The stack differs from its expected template configuration.
 17388  	//    A stack is considered to have drifted if one or more of its resources
 17389  	//    have drifted.
 17390  	//
 17391  	//    * NOT_CHECKED: CloudFormation has not checked if the stack differs from
 17392  	//    its expected template configuration.
 17393  	//
 17394  	//    * IN_SYNC: The stack's actual configuration matches its expected template
 17395  	//    configuration.
 17396  	//
 17397  	//    * UNKNOWN: This value is reserved for future use.
 17398  	//
 17399  	// StackDriftStatus is a required field
 17400  	StackDriftStatus *string `type:"string" required:"true" enum:"StackDriftStatus"`
 17401  }
 17402  
 17403  // String returns the string representation.
 17404  //
 17405  // API parameter values that are decorated as "sensitive" in the API will not
 17406  // be included in the string output. The member name will be present, but the
 17407  // value will be replaced with "sensitive".
 17408  func (s StackDriftInformationSummary) String() string {
 17409  	return awsutil.Prettify(s)
 17410  }
 17411  
 17412  // GoString returns the string representation.
 17413  //
 17414  // API parameter values that are decorated as "sensitive" in the API will not
 17415  // be included in the string output. The member name will be present, but the
 17416  // value will be replaced with "sensitive".
 17417  func (s StackDriftInformationSummary) GoString() string {
 17418  	return s.String()
 17419  }
 17420  
 17421  // SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
 17422  func (s *StackDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackDriftInformationSummary {
 17423  	s.LastCheckTimestamp = &v
 17424  	return s
 17425  }
 17426  
 17427  // SetStackDriftStatus sets the StackDriftStatus field's value.
 17428  func (s *StackDriftInformationSummary) SetStackDriftStatus(v string) *StackDriftInformationSummary {
 17429  	s.StackDriftStatus = &v
 17430  	return s
 17431  }
 17432  
 17433  // The StackEvent data type.
 17434  type StackEvent struct {
 17435  	_ struct{} `type:"structure"`
 17436  
 17437  	// The token passed to the operation that generated this event.
 17438  	//
 17439  	// All events triggered by a given stack operation are assigned the same client
 17440  	// request token, which you can use to track operations. For example, if you
 17441  	// execute a CreateStack operation with the token token1, then all the StackEvents
 17442  	// generated by that operation will have ClientRequestToken set as token1.
 17443  	//
 17444  	// In the console, stack operations display the client request token on the
 17445  	// Events tab. Stack operations that are initiated from the console use the
 17446  	// token format Console-StackOperation-ID, which helps you easily identify the
 17447  	// stack operation . For example, if you create a stack using the console, each
 17448  	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
 17449  	ClientRequestToken *string `min:"1" type:"string"`
 17450  
 17451  	// The unique ID of this event.
 17452  	//
 17453  	// EventId is a required field
 17454  	EventId *string `type:"string" required:"true"`
 17455  
 17456  	// The logical name of the resource specified in the template.
 17457  	LogicalResourceId *string `type:"string"`
 17458  
 17459  	// The name or unique identifier associated with the physical instance of the
 17460  	// resource.
 17461  	PhysicalResourceId *string `type:"string"`
 17462  
 17463  	// BLOB of the properties used to create the resource.
 17464  	ResourceProperties *string `type:"string"`
 17465  
 17466  	// Current status of the resource.
 17467  	ResourceStatus *string `type:"string" enum:"ResourceStatus"`
 17468  
 17469  	// Success/failure message associated with the resource.
 17470  	ResourceStatusReason *string `type:"string"`
 17471  
 17472  	// Type of resource. (For more information, go to Amazon Web Services Resource
 17473  	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
 17474  	// in the CloudFormation User Guide.)
 17475  	ResourceType *string `min:"1" type:"string"`
 17476  
 17477  	// The unique ID name of the instance of the stack.
 17478  	//
 17479  	// StackId is a required field
 17480  	StackId *string `type:"string" required:"true"`
 17481  
 17482  	// The name associated with a stack.
 17483  	//
 17484  	// StackName is a required field
 17485  	StackName *string `type:"string" required:"true"`
 17486  
 17487  	// Time the status was updated.
 17488  	//
 17489  	// Timestamp is a required field
 17490  	Timestamp *time.Time `type:"timestamp" required:"true"`
 17491  }
 17492  
 17493  // String returns the string representation.
 17494  //
 17495  // API parameter values that are decorated as "sensitive" in the API will not
 17496  // be included in the string output. The member name will be present, but the
 17497  // value will be replaced with "sensitive".
 17498  func (s StackEvent) String() string {
 17499  	return awsutil.Prettify(s)
 17500  }
 17501  
 17502  // GoString returns the string representation.
 17503  //
 17504  // API parameter values that are decorated as "sensitive" in the API will not
 17505  // be included in the string output. The member name will be present, but the
 17506  // value will be replaced with "sensitive".
 17507  func (s StackEvent) GoString() string {
 17508  	return s.String()
 17509  }
 17510  
 17511  // SetClientRequestToken sets the ClientRequestToken field's value.
 17512  func (s *StackEvent) SetClientRequestToken(v string) *StackEvent {
 17513  	s.ClientRequestToken = &v
 17514  	return s
 17515  }
 17516  
 17517  // SetEventId sets the EventId field's value.
 17518  func (s *StackEvent) SetEventId(v string) *StackEvent {
 17519  	s.EventId = &v
 17520  	return s
 17521  }
 17522  
 17523  // SetLogicalResourceId sets the LogicalResourceId field's value.
 17524  func (s *StackEvent) SetLogicalResourceId(v string) *StackEvent {
 17525  	s.LogicalResourceId = &v
 17526  	return s
 17527  }
 17528  
 17529  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 17530  func (s *StackEvent) SetPhysicalResourceId(v string) *StackEvent {
 17531  	s.PhysicalResourceId = &v
 17532  	return s
 17533  }
 17534  
 17535  // SetResourceProperties sets the ResourceProperties field's value.
 17536  func (s *StackEvent) SetResourceProperties(v string) *StackEvent {
 17537  	s.ResourceProperties = &v
 17538  	return s
 17539  }
 17540  
 17541  // SetResourceStatus sets the ResourceStatus field's value.
 17542  func (s *StackEvent) SetResourceStatus(v string) *StackEvent {
 17543  	s.ResourceStatus = &v
 17544  	return s
 17545  }
 17546  
 17547  // SetResourceStatusReason sets the ResourceStatusReason field's value.
 17548  func (s *StackEvent) SetResourceStatusReason(v string) *StackEvent {
 17549  	s.ResourceStatusReason = &v
 17550  	return s
 17551  }
 17552  
 17553  // SetResourceType sets the ResourceType field's value.
 17554  func (s *StackEvent) SetResourceType(v string) *StackEvent {
 17555  	s.ResourceType = &v
 17556  	return s
 17557  }
 17558  
 17559  // SetStackId sets the StackId field's value.
 17560  func (s *StackEvent) SetStackId(v string) *StackEvent {
 17561  	s.StackId = &v
 17562  	return s
 17563  }
 17564  
 17565  // SetStackName sets the StackName field's value.
 17566  func (s *StackEvent) SetStackName(v string) *StackEvent {
 17567  	s.StackName = &v
 17568  	return s
 17569  }
 17570  
 17571  // SetTimestamp sets the Timestamp field's value.
 17572  func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent {
 17573  	s.Timestamp = &v
 17574  	return s
 17575  }
 17576  
 17577  // An CloudFormation stack, in a specific account and Region, that's part of
 17578  // a stack set operation. A stack instance is a reference to an attempted or
 17579  // actual stack in a given account within a given Region. A stack instance can
 17580  // exist without a stack—for example, if the stack couldn't be created for
 17581  // some reason. A stack instance is associated with only one stack set. Each
 17582  // stack instance contains the ID of its associated stack set, as well as the
 17583  // ID of the actual stack and the stack status.
 17584  type StackInstance struct {
 17585  	_ struct{} `type:"structure"`
 17586  
 17587  	// [Self-managed permissions] The name of the Amazon Web Services account that
 17588  	// the stack instance is associated with.
 17589  	Account *string `type:"string"`
 17590  
 17591  	// Status of the stack instance's actual configuration compared to the expected
 17592  	// template and parameter configuration of the stack set to which it belongs.
 17593  	//
 17594  	//    * DRIFTED: The stack differs from the expected template and parameter
 17595  	//    configuration of the stack set to which it belongs. A stack instance is
 17596  	//    considered to have drifted if one or more of the resources in the associated
 17597  	//    stack have drifted.
 17598  	//
 17599  	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
 17600  	//    from its expected stack set configuration.
 17601  	//
 17602  	//    * IN_SYNC: The stack instance's actual configuration matches its expected
 17603  	//    stack set configuration.
 17604  	//
 17605  	//    * UNKNOWN: This value is reserved for future use.
 17606  	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
 17607  
 17608  	// Most recent time when CloudFormation performed a drift detection operation
 17609  	// on the stack instance. This value will be NULL for any stack instance on
 17610  	// which drift detection has not yet been performed.
 17611  	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
 17612  
 17613  	// [Service-managed permissions] The organization root ID or organizational
 17614  	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
 17615  	OrganizationalUnitId *string `type:"string"`
 17616  
 17617  	// A list of parameters from the stack set template whose values have been overridden
 17618  	// in this stack instance.
 17619  	ParameterOverrides []*Parameter `type:"list"`
 17620  
 17621  	// The name of the Amazon Web Services Region that the stack instance is associated
 17622  	// with.
 17623  	Region *string `type:"string"`
 17624  
 17625  	// The ID of the stack instance.
 17626  	StackId *string `type:"string"`
 17627  
 17628  	// The detailed status of the stack instance.
 17629  	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
 17630  
 17631  	// The name or unique ID of the stack set that the stack instance is associated
 17632  	// with.
 17633  	StackSetId *string `type:"string"`
 17634  
 17635  	// The status of the stack instance, in terms of its synchronization with its
 17636  	// associated stack set.
 17637  	//
 17638  	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
 17639  	//    stack in an unstable state. Stacks in this state are excluded from further
 17640  	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
 17641  	//    operation, with RetainStacks set to true, to delete the stack instance,
 17642  	//    and then delete the stack manually.
 17643  	//
 17644  	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
 17645  	//    The associated stack failed during a CreateStackSet or UpdateStackSet
 17646  	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
 17647  	//    that failed or was stopped before the stack was created or updated.
 17648  	//
 17649  	//    * CURRENT: The stack is currently up to date with the stack set.
 17650  	Status *string `type:"string" enum:"StackInstanceStatus"`
 17651  
 17652  	// The explanation for the specific status code that is assigned to this stack
 17653  	// instance.
 17654  	StatusReason *string `type:"string"`
 17655  }
 17656  
 17657  // String returns the string representation.
 17658  //
 17659  // API parameter values that are decorated as "sensitive" in the API will not
 17660  // be included in the string output. The member name will be present, but the
 17661  // value will be replaced with "sensitive".
 17662  func (s StackInstance) String() string {
 17663  	return awsutil.Prettify(s)
 17664  }
 17665  
 17666  // GoString returns the string representation.
 17667  //
 17668  // API parameter values that are decorated as "sensitive" in the API will not
 17669  // be included in the string output. The member name will be present, but the
 17670  // value will be replaced with "sensitive".
 17671  func (s StackInstance) GoString() string {
 17672  	return s.String()
 17673  }
 17674  
 17675  // SetAccount sets the Account field's value.
 17676  func (s *StackInstance) SetAccount(v string) *StackInstance {
 17677  	s.Account = &v
 17678  	return s
 17679  }
 17680  
 17681  // SetDriftStatus sets the DriftStatus field's value.
 17682  func (s *StackInstance) SetDriftStatus(v string) *StackInstance {
 17683  	s.DriftStatus = &v
 17684  	return s
 17685  }
 17686  
 17687  // SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
 17688  func (s *StackInstance) SetLastDriftCheckTimestamp(v time.Time) *StackInstance {
 17689  	s.LastDriftCheckTimestamp = &v
 17690  	return s
 17691  }
 17692  
 17693  // SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
 17694  func (s *StackInstance) SetOrganizationalUnitId(v string) *StackInstance {
 17695  	s.OrganizationalUnitId = &v
 17696  	return s
 17697  }
 17698  
 17699  // SetParameterOverrides sets the ParameterOverrides field's value.
 17700  func (s *StackInstance) SetParameterOverrides(v []*Parameter) *StackInstance {
 17701  	s.ParameterOverrides = v
 17702  	return s
 17703  }
 17704  
 17705  // SetRegion sets the Region field's value.
 17706  func (s *StackInstance) SetRegion(v string) *StackInstance {
 17707  	s.Region = &v
 17708  	return s
 17709  }
 17710  
 17711  // SetStackId sets the StackId field's value.
 17712  func (s *StackInstance) SetStackId(v string) *StackInstance {
 17713  	s.StackId = &v
 17714  	return s
 17715  }
 17716  
 17717  // SetStackInstanceStatus sets the StackInstanceStatus field's value.
 17718  func (s *StackInstance) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstance {
 17719  	s.StackInstanceStatus = v
 17720  	return s
 17721  }
 17722  
 17723  // SetStackSetId sets the StackSetId field's value.
 17724  func (s *StackInstance) SetStackSetId(v string) *StackInstance {
 17725  	s.StackSetId = &v
 17726  	return s
 17727  }
 17728  
 17729  // SetStatus sets the Status field's value.
 17730  func (s *StackInstance) SetStatus(v string) *StackInstance {
 17731  	s.Status = &v
 17732  	return s
 17733  }
 17734  
 17735  // SetStatusReason sets the StatusReason field's value.
 17736  func (s *StackInstance) SetStatusReason(v string) *StackInstance {
 17737  	s.StatusReason = &v
 17738  	return s
 17739  }
 17740  
 17741  // The detailed status of the stack instance.
 17742  type StackInstanceComprehensiveStatus struct {
 17743  	_ struct{} `type:"structure"`
 17744  
 17745  	//    * CANCELLED: The operation in the specified account and Region has been
 17746  	//    cancelled. This is either because a user has stopped the stack set operation,
 17747  	//    or because the failure tolerance of the stack set operation has been exceeded.
 17748  	//
 17749  	//    * FAILED: The operation in the specified account and Region failed. If
 17750  	//    the stack set operation fails in enough accounts within a Region, the
 17751  	//    failure tolerance for the stack set operation as a whole might be exceeded.
 17752  	//
 17753  	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
 17754  	//    stack in an unstable state. Stacks in this state are excluded from further
 17755  	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
 17756  	//    operation, with RetainStacks set to true, to delete the stack instance,
 17757  	//    and then delete the stack manually.
 17758  	//
 17759  	//    * PENDING: The operation in the specified account and Region has yet to
 17760  	//    start.
 17761  	//
 17762  	//    * RUNNING: The operation in the specified account and Region is currently
 17763  	//    in progress.
 17764  	//
 17765  	//    * SUCCEEDED: The operation in the specified account and Region completed
 17766  	//    successfully.
 17767  	DetailedStatus *string `type:"string" enum:"StackInstanceDetailedStatus"`
 17768  }
 17769  
 17770  // String returns the string representation.
 17771  //
 17772  // API parameter values that are decorated as "sensitive" in the API will not
 17773  // be included in the string output. The member name will be present, but the
 17774  // value will be replaced with "sensitive".
 17775  func (s StackInstanceComprehensiveStatus) String() string {
 17776  	return awsutil.Prettify(s)
 17777  }
 17778  
 17779  // GoString returns the string representation.
 17780  //
 17781  // API parameter values that are decorated as "sensitive" in the API will not
 17782  // be included in the string output. The member name will be present, but the
 17783  // value will be replaced with "sensitive".
 17784  func (s StackInstanceComprehensiveStatus) GoString() string {
 17785  	return s.String()
 17786  }
 17787  
 17788  // SetDetailedStatus sets the DetailedStatus field's value.
 17789  func (s *StackInstanceComprehensiveStatus) SetDetailedStatus(v string) *StackInstanceComprehensiveStatus {
 17790  	s.DetailedStatus = &v
 17791  	return s
 17792  }
 17793  
 17794  // The status that stack instances are filtered by.
 17795  type StackInstanceFilter struct {
 17796  	_ struct{} `type:"structure"`
 17797  
 17798  	// The type of filter to apply.
 17799  	Name *string `type:"string" enum:"StackInstanceFilterName"`
 17800  
 17801  	// The status to filter by.
 17802  	Values *string `min:"6" type:"string"`
 17803  }
 17804  
 17805  // String returns the string representation.
 17806  //
 17807  // API parameter values that are decorated as "sensitive" in the API will not
 17808  // be included in the string output. The member name will be present, but the
 17809  // value will be replaced with "sensitive".
 17810  func (s StackInstanceFilter) String() string {
 17811  	return awsutil.Prettify(s)
 17812  }
 17813  
 17814  // GoString returns the string representation.
 17815  //
 17816  // API parameter values that are decorated as "sensitive" in the API will not
 17817  // be included in the string output. The member name will be present, but the
 17818  // value will be replaced with "sensitive".
 17819  func (s StackInstanceFilter) GoString() string {
 17820  	return s.String()
 17821  }
 17822  
 17823  // Validate inspects the fields of the type to determine if they are valid.
 17824  func (s *StackInstanceFilter) Validate() error {
 17825  	invalidParams := request.ErrInvalidParams{Context: "StackInstanceFilter"}
 17826  	if s.Values != nil && len(*s.Values) < 6 {
 17827  		invalidParams.Add(request.NewErrParamMinLen("Values", 6))
 17828  	}
 17829  
 17830  	if invalidParams.Len() > 0 {
 17831  		return invalidParams
 17832  	}
 17833  	return nil
 17834  }
 17835  
 17836  // SetName sets the Name field's value.
 17837  func (s *StackInstanceFilter) SetName(v string) *StackInstanceFilter {
 17838  	s.Name = &v
 17839  	return s
 17840  }
 17841  
 17842  // SetValues sets the Values field's value.
 17843  func (s *StackInstanceFilter) SetValues(v string) *StackInstanceFilter {
 17844  	s.Values = &v
 17845  	return s
 17846  }
 17847  
 17848  // The structure that contains summary information about a stack instance.
 17849  type StackInstanceSummary struct {
 17850  	_ struct{} `type:"structure"`
 17851  
 17852  	// [Self-managed permissions] The name of the Amazon Web Services account that
 17853  	// the stack instance is associated with.
 17854  	Account *string `type:"string"`
 17855  
 17856  	// Status of the stack instance's actual configuration compared to the expected
 17857  	// template and parameter configuration of the stack set to which it belongs.
 17858  	//
 17859  	//    * DRIFTED: The stack differs from the expected template and parameter
 17860  	//    configuration of the stack set to which it belongs. A stack instance is
 17861  	//    considered to have drifted if one or more of the resources in the associated
 17862  	//    stack have drifted.
 17863  	//
 17864  	//    * NOT_CHECKED: CloudFormation has not checked if the stack instance differs
 17865  	//    from its expected stack set configuration.
 17866  	//
 17867  	//    * IN_SYNC: The stack instance's actual configuration matches its expected
 17868  	//    stack set configuration.
 17869  	//
 17870  	//    * UNKNOWN: This value is reserved for future use.
 17871  	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
 17872  
 17873  	// Most recent time when CloudFormation performed a drift detection operation
 17874  	// on the stack instance. This value will be NULL for any stack instance on
 17875  	// which drift detection has not yet been performed.
 17876  	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
 17877  
 17878  	// [Service-managed permissions] The organization root ID or organizational
 17879  	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
 17880  	OrganizationalUnitId *string `type:"string"`
 17881  
 17882  	// The name of the Amazon Web Services Region that the stack instance is associated
 17883  	// with.
 17884  	Region *string `type:"string"`
 17885  
 17886  	// The ID of the stack instance.
 17887  	StackId *string `type:"string"`
 17888  
 17889  	// The detailed status of the stack instance.
 17890  	StackInstanceStatus *StackInstanceComprehensiveStatus `type:"structure"`
 17891  
 17892  	// The name or unique ID of the stack set that the stack instance is associated
 17893  	// with.
 17894  	StackSetId *string `type:"string"`
 17895  
 17896  	// The status of the stack instance, in terms of its synchronization with its
 17897  	// associated stack set.
 17898  	//
 17899  	//    * INOPERABLE: A DeleteStackInstances operation has failed and left the
 17900  	//    stack in an unstable state. Stacks in this state are excluded from further
 17901  	//    UpdateStackSet operations. You might need to perform a DeleteStackInstances
 17902  	//    operation, with RetainStacks set to true, to delete the stack instance,
 17903  	//    and then delete the stack manually.
 17904  	//
 17905  	//    * OUTDATED: The stack isn't currently up to date with the stack set because:
 17906  	//    The associated stack failed during a CreateStackSet or UpdateStackSet
 17907  	//    operation. The stack was part of a CreateStackSet or UpdateStackSet operation
 17908  	//    that failed or was stopped before the stack was created or updated.
 17909  	//
 17910  	//    * CURRENT: The stack is currently up to date with the stack set.
 17911  	Status *string `type:"string" enum:"StackInstanceStatus"`
 17912  
 17913  	// The explanation for the specific status code assigned to this stack instance.
 17914  	StatusReason *string `type:"string"`
 17915  }
 17916  
 17917  // String returns the string representation.
 17918  //
 17919  // API parameter values that are decorated as "sensitive" in the API will not
 17920  // be included in the string output. The member name will be present, but the
 17921  // value will be replaced with "sensitive".
 17922  func (s StackInstanceSummary) String() string {
 17923  	return awsutil.Prettify(s)
 17924  }
 17925  
 17926  // GoString returns the string representation.
 17927  //
 17928  // API parameter values that are decorated as "sensitive" in the API will not
 17929  // be included in the string output. The member name will be present, but the
 17930  // value will be replaced with "sensitive".
 17931  func (s StackInstanceSummary) GoString() string {
 17932  	return s.String()
 17933  }
 17934  
 17935  // SetAccount sets the Account field's value.
 17936  func (s *StackInstanceSummary) SetAccount(v string) *StackInstanceSummary {
 17937  	s.Account = &v
 17938  	return s
 17939  }
 17940  
 17941  // SetDriftStatus sets the DriftStatus field's value.
 17942  func (s *StackInstanceSummary) SetDriftStatus(v string) *StackInstanceSummary {
 17943  	s.DriftStatus = &v
 17944  	return s
 17945  }
 17946  
 17947  // SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
 17948  func (s *StackInstanceSummary) SetLastDriftCheckTimestamp(v time.Time) *StackInstanceSummary {
 17949  	s.LastDriftCheckTimestamp = &v
 17950  	return s
 17951  }
 17952  
 17953  // SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
 17954  func (s *StackInstanceSummary) SetOrganizationalUnitId(v string) *StackInstanceSummary {
 17955  	s.OrganizationalUnitId = &v
 17956  	return s
 17957  }
 17958  
 17959  // SetRegion sets the Region field's value.
 17960  func (s *StackInstanceSummary) SetRegion(v string) *StackInstanceSummary {
 17961  	s.Region = &v
 17962  	return s
 17963  }
 17964  
 17965  // SetStackId sets the StackId field's value.
 17966  func (s *StackInstanceSummary) SetStackId(v string) *StackInstanceSummary {
 17967  	s.StackId = &v
 17968  	return s
 17969  }
 17970  
 17971  // SetStackInstanceStatus sets the StackInstanceStatus field's value.
 17972  func (s *StackInstanceSummary) SetStackInstanceStatus(v *StackInstanceComprehensiveStatus) *StackInstanceSummary {
 17973  	s.StackInstanceStatus = v
 17974  	return s
 17975  }
 17976  
 17977  // SetStackSetId sets the StackSetId field's value.
 17978  func (s *StackInstanceSummary) SetStackSetId(v string) *StackInstanceSummary {
 17979  	s.StackSetId = &v
 17980  	return s
 17981  }
 17982  
 17983  // SetStatus sets the Status field's value.
 17984  func (s *StackInstanceSummary) SetStatus(v string) *StackInstanceSummary {
 17985  	s.Status = &v
 17986  	return s
 17987  }
 17988  
 17989  // SetStatusReason sets the StatusReason field's value.
 17990  func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary {
 17991  	s.StatusReason = &v
 17992  	return s
 17993  }
 17994  
 17995  // The StackResource data type.
 17996  type StackResource struct {
 17997  	_ struct{} `type:"structure"`
 17998  
 17999  	// User defined description associated with the resource.
 18000  	Description *string `min:"1" type:"string"`
 18001  
 18002  	// Information about whether the resource's actual configuration differs, or
 18003  	// has drifted, from its expected configuration, as defined in the stack template
 18004  	// and any values specified as template parameters. For more information, see
 18005  	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 18006  	DriftInformation *StackResourceDriftInformation `type:"structure"`
 18007  
 18008  	// The logical name of the resource specified in the template.
 18009  	//
 18010  	// LogicalResourceId is a required field
 18011  	LogicalResourceId *string `type:"string" required:"true"`
 18012  
 18013  	// Contains information about the module from which the resource was created,
 18014  	// if the resource was created from a module included in the stack template.
 18015  	ModuleInfo *ModuleInfo `type:"structure"`
 18016  
 18017  	// The name or unique identifier that corresponds to a physical instance ID
 18018  	// of a resource supported by CloudFormation.
 18019  	PhysicalResourceId *string `type:"string"`
 18020  
 18021  	// Current status of the resource.
 18022  	//
 18023  	// ResourceStatus is a required field
 18024  	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
 18025  
 18026  	// Success/failure message associated with the resource.
 18027  	ResourceStatusReason *string `type:"string"`
 18028  
 18029  	// Type of resource. (For more information, go to Amazon Web Services Resource
 18030  	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
 18031  	// in the CloudFormation User Guide.)
 18032  	//
 18033  	// ResourceType is a required field
 18034  	ResourceType *string `min:"1" type:"string" required:"true"`
 18035  
 18036  	// Unique identifier of the stack.
 18037  	StackId *string `type:"string"`
 18038  
 18039  	// The name associated with the stack.
 18040  	StackName *string `type:"string"`
 18041  
 18042  	// Time the status was updated.
 18043  	//
 18044  	// Timestamp is a required field
 18045  	Timestamp *time.Time `type:"timestamp" required:"true"`
 18046  }
 18047  
 18048  // String returns the string representation.
 18049  //
 18050  // API parameter values that are decorated as "sensitive" in the API will not
 18051  // be included in the string output. The member name will be present, but the
 18052  // value will be replaced with "sensitive".
 18053  func (s StackResource) String() string {
 18054  	return awsutil.Prettify(s)
 18055  }
 18056  
 18057  // GoString returns the string representation.
 18058  //
 18059  // API parameter values that are decorated as "sensitive" in the API will not
 18060  // be included in the string output. The member name will be present, but the
 18061  // value will be replaced with "sensitive".
 18062  func (s StackResource) GoString() string {
 18063  	return s.String()
 18064  }
 18065  
 18066  // SetDescription sets the Description field's value.
 18067  func (s *StackResource) SetDescription(v string) *StackResource {
 18068  	s.Description = &v
 18069  	return s
 18070  }
 18071  
 18072  // SetDriftInformation sets the DriftInformation field's value.
 18073  func (s *StackResource) SetDriftInformation(v *StackResourceDriftInformation) *StackResource {
 18074  	s.DriftInformation = v
 18075  	return s
 18076  }
 18077  
 18078  // SetLogicalResourceId sets the LogicalResourceId field's value.
 18079  func (s *StackResource) SetLogicalResourceId(v string) *StackResource {
 18080  	s.LogicalResourceId = &v
 18081  	return s
 18082  }
 18083  
 18084  // SetModuleInfo sets the ModuleInfo field's value.
 18085  func (s *StackResource) SetModuleInfo(v *ModuleInfo) *StackResource {
 18086  	s.ModuleInfo = v
 18087  	return s
 18088  }
 18089  
 18090  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 18091  func (s *StackResource) SetPhysicalResourceId(v string) *StackResource {
 18092  	s.PhysicalResourceId = &v
 18093  	return s
 18094  }
 18095  
 18096  // SetResourceStatus sets the ResourceStatus field's value.
 18097  func (s *StackResource) SetResourceStatus(v string) *StackResource {
 18098  	s.ResourceStatus = &v
 18099  	return s
 18100  }
 18101  
 18102  // SetResourceStatusReason sets the ResourceStatusReason field's value.
 18103  func (s *StackResource) SetResourceStatusReason(v string) *StackResource {
 18104  	s.ResourceStatusReason = &v
 18105  	return s
 18106  }
 18107  
 18108  // SetResourceType sets the ResourceType field's value.
 18109  func (s *StackResource) SetResourceType(v string) *StackResource {
 18110  	s.ResourceType = &v
 18111  	return s
 18112  }
 18113  
 18114  // SetStackId sets the StackId field's value.
 18115  func (s *StackResource) SetStackId(v string) *StackResource {
 18116  	s.StackId = &v
 18117  	return s
 18118  }
 18119  
 18120  // SetStackName sets the StackName field's value.
 18121  func (s *StackResource) SetStackName(v string) *StackResource {
 18122  	s.StackName = &v
 18123  	return s
 18124  }
 18125  
 18126  // SetTimestamp sets the Timestamp field's value.
 18127  func (s *StackResource) SetTimestamp(v time.Time) *StackResource {
 18128  	s.Timestamp = &v
 18129  	return s
 18130  }
 18131  
 18132  // Contains detailed information about the specified stack resource.
 18133  type StackResourceDetail struct {
 18134  	_ struct{} `type:"structure"`
 18135  
 18136  	// User defined description associated with the resource.
 18137  	Description *string `min:"1" type:"string"`
 18138  
 18139  	// Information about whether the resource's actual configuration differs, or
 18140  	// has drifted, from its expected configuration, as defined in the stack template
 18141  	// and any values specified as template parameters. For more information, see
 18142  	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 18143  	DriftInformation *StackResourceDriftInformation `type:"structure"`
 18144  
 18145  	// Time the status was updated.
 18146  	//
 18147  	// LastUpdatedTimestamp is a required field
 18148  	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
 18149  
 18150  	// The logical name of the resource specified in the template.
 18151  	//
 18152  	// LogicalResourceId is a required field
 18153  	LogicalResourceId *string `type:"string" required:"true"`
 18154  
 18155  	// The content of the Metadata attribute declared for the resource. For more
 18156  	// information, see Metadata Attribute (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html)
 18157  	// in the CloudFormation User Guide.
 18158  	Metadata *string `type:"string"`
 18159  
 18160  	// Contains information about the module from which the resource was created,
 18161  	// if the resource was created from a module included in the stack template.
 18162  	ModuleInfo *ModuleInfo `type:"structure"`
 18163  
 18164  	// The name or unique identifier that corresponds to a physical instance ID
 18165  	// of a resource supported by CloudFormation.
 18166  	PhysicalResourceId *string `type:"string"`
 18167  
 18168  	// Current status of the resource.
 18169  	//
 18170  	// ResourceStatus is a required field
 18171  	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
 18172  
 18173  	// Success/failure message associated with the resource.
 18174  	ResourceStatusReason *string `type:"string"`
 18175  
 18176  	// Type of resource. ((For more information, go to Amazon Web Services Resource
 18177  	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
 18178  	// in the CloudFormation User Guide.)
 18179  	//
 18180  	// ResourceType is a required field
 18181  	ResourceType *string `min:"1" type:"string" required:"true"`
 18182  
 18183  	// Unique identifier of the stack.
 18184  	StackId *string `type:"string"`
 18185  
 18186  	// The name associated with the stack.
 18187  	StackName *string `type:"string"`
 18188  }
 18189  
 18190  // String returns the string representation.
 18191  //
 18192  // API parameter values that are decorated as "sensitive" in the API will not
 18193  // be included in the string output. The member name will be present, but the
 18194  // value will be replaced with "sensitive".
 18195  func (s StackResourceDetail) String() string {
 18196  	return awsutil.Prettify(s)
 18197  }
 18198  
 18199  // GoString returns the string representation.
 18200  //
 18201  // API parameter values that are decorated as "sensitive" in the API will not
 18202  // be included in the string output. The member name will be present, but the
 18203  // value will be replaced with "sensitive".
 18204  func (s StackResourceDetail) GoString() string {
 18205  	return s.String()
 18206  }
 18207  
 18208  // SetDescription sets the Description field's value.
 18209  func (s *StackResourceDetail) SetDescription(v string) *StackResourceDetail {
 18210  	s.Description = &v
 18211  	return s
 18212  }
 18213  
 18214  // SetDriftInformation sets the DriftInformation field's value.
 18215  func (s *StackResourceDetail) SetDriftInformation(v *StackResourceDriftInformation) *StackResourceDetail {
 18216  	s.DriftInformation = v
 18217  	return s
 18218  }
 18219  
 18220  // SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
 18221  func (s *StackResourceDetail) SetLastUpdatedTimestamp(v time.Time) *StackResourceDetail {
 18222  	s.LastUpdatedTimestamp = &v
 18223  	return s
 18224  }
 18225  
 18226  // SetLogicalResourceId sets the LogicalResourceId field's value.
 18227  func (s *StackResourceDetail) SetLogicalResourceId(v string) *StackResourceDetail {
 18228  	s.LogicalResourceId = &v
 18229  	return s
 18230  }
 18231  
 18232  // SetMetadata sets the Metadata field's value.
 18233  func (s *StackResourceDetail) SetMetadata(v string) *StackResourceDetail {
 18234  	s.Metadata = &v
 18235  	return s
 18236  }
 18237  
 18238  // SetModuleInfo sets the ModuleInfo field's value.
 18239  func (s *StackResourceDetail) SetModuleInfo(v *ModuleInfo) *StackResourceDetail {
 18240  	s.ModuleInfo = v
 18241  	return s
 18242  }
 18243  
 18244  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 18245  func (s *StackResourceDetail) SetPhysicalResourceId(v string) *StackResourceDetail {
 18246  	s.PhysicalResourceId = &v
 18247  	return s
 18248  }
 18249  
 18250  // SetResourceStatus sets the ResourceStatus field's value.
 18251  func (s *StackResourceDetail) SetResourceStatus(v string) *StackResourceDetail {
 18252  	s.ResourceStatus = &v
 18253  	return s
 18254  }
 18255  
 18256  // SetResourceStatusReason sets the ResourceStatusReason field's value.
 18257  func (s *StackResourceDetail) SetResourceStatusReason(v string) *StackResourceDetail {
 18258  	s.ResourceStatusReason = &v
 18259  	return s
 18260  }
 18261  
 18262  // SetResourceType sets the ResourceType field's value.
 18263  func (s *StackResourceDetail) SetResourceType(v string) *StackResourceDetail {
 18264  	s.ResourceType = &v
 18265  	return s
 18266  }
 18267  
 18268  // SetStackId sets the StackId field's value.
 18269  func (s *StackResourceDetail) SetStackId(v string) *StackResourceDetail {
 18270  	s.StackId = &v
 18271  	return s
 18272  }
 18273  
 18274  // SetStackName sets the StackName field's value.
 18275  func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail {
 18276  	s.StackName = &v
 18277  	return s
 18278  }
 18279  
 18280  // Contains the drift information for a resource that has been checked for drift.
 18281  // This includes actual and expected property values for resources in which
 18282  // CloudFormation has detected drift. Only resource properties explicitly defined
 18283  // in the stack template are checked for drift. For more information, see Detecting
 18284  // Unregulated Configuration Changes to Stacks and Resources (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 18285  //
 18286  // Resources that do not currently support drift detection cannot be checked.
 18287  // For a list of resources that support drift detection, see Resources that
 18288  // Support Drift Detection (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
 18289  //
 18290  // Use DetectStackResourceDrift to detect drift on individual resources, or
 18291  // DetectStackDrift to detect drift on all resources in a given stack that support
 18292  // drift detection.
 18293  type StackResourceDrift struct {
 18294  	_ struct{} `type:"structure"`
 18295  
 18296  	// A JSON structure containing the actual property values of the stack resource.
 18297  	//
 18298  	// For resources whose StackResourceDriftStatus is DELETED, this structure will
 18299  	// not be present.
 18300  	ActualProperties *string `type:"string"`
 18301  
 18302  	// A JSON structure containing the expected property values of the stack resource,
 18303  	// as defined in the stack template and any values specified as template parameters.
 18304  	//
 18305  	// For resources whose StackResourceDriftStatus is DELETED, this structure will
 18306  	// not be present.
 18307  	ExpectedProperties *string `type:"string"`
 18308  
 18309  	// The logical name of the resource specified in the template.
 18310  	//
 18311  	// LogicalResourceId is a required field
 18312  	LogicalResourceId *string `type:"string" required:"true"`
 18313  
 18314  	// Contains information about the module from which the resource was created,
 18315  	// if the resource was created from a module included in the stack template.
 18316  	ModuleInfo *ModuleInfo `type:"structure"`
 18317  
 18318  	// The name or unique identifier that corresponds to a physical instance ID
 18319  	// of a resource supported by CloudFormation.
 18320  	PhysicalResourceId *string `type:"string"`
 18321  
 18322  	// Context information that enables CloudFormation to uniquely identify a resource.
 18323  	// CloudFormation uses context key-value pairs in cases where a resource's logical
 18324  	// and physical IDs are not enough to uniquely identify that resource. Each
 18325  	// context key-value pair specifies a unique resource that contains the targeted
 18326  	// resource.
 18327  	PhysicalResourceIdContext []*PhysicalResourceIdContextKeyValuePair `type:"list"`
 18328  
 18329  	// A collection of the resource properties whose actual values differ from their
 18330  	// expected values. These will be present only for resources whose StackResourceDriftStatus
 18331  	// is MODIFIED.
 18332  	PropertyDifferences []*PropertyDifference `type:"list"`
 18333  
 18334  	// The type of the resource.
 18335  	//
 18336  	// ResourceType is a required field
 18337  	ResourceType *string `min:"1" type:"string" required:"true"`
 18338  
 18339  	// The ID of the stack.
 18340  	//
 18341  	// StackId is a required field
 18342  	StackId *string `type:"string" required:"true"`
 18343  
 18344  	// Status of the resource's actual configuration compared to its expected configuration
 18345  	//
 18346  	//    * DELETED: The resource differs from its expected template configuration
 18347  	//    because the resource has been deleted.
 18348  	//
 18349  	//    * MODIFIED: One or more resource properties differ from their expected
 18350  	//    values (as defined in the stack template and any values specified as template
 18351  	//    parameters).
 18352  	//
 18353  	//    * IN_SYNC: The resources's actual configuration matches its expected template
 18354  	//    configuration.
 18355  	//
 18356  	//    * NOT_CHECKED: CloudFormation does not currently return this value.
 18357  	//
 18358  	// StackResourceDriftStatus is a required field
 18359  	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
 18360  
 18361  	// Time at which CloudFormation performed drift detection on the stack resource.
 18362  	//
 18363  	// Timestamp is a required field
 18364  	Timestamp *time.Time `type:"timestamp" required:"true"`
 18365  }
 18366  
 18367  // String returns the string representation.
 18368  //
 18369  // API parameter values that are decorated as "sensitive" in the API will not
 18370  // be included in the string output. The member name will be present, but the
 18371  // value will be replaced with "sensitive".
 18372  func (s StackResourceDrift) String() string {
 18373  	return awsutil.Prettify(s)
 18374  }
 18375  
 18376  // GoString returns the string representation.
 18377  //
 18378  // API parameter values that are decorated as "sensitive" in the API will not
 18379  // be included in the string output. The member name will be present, but the
 18380  // value will be replaced with "sensitive".
 18381  func (s StackResourceDrift) GoString() string {
 18382  	return s.String()
 18383  }
 18384  
 18385  // SetActualProperties sets the ActualProperties field's value.
 18386  func (s *StackResourceDrift) SetActualProperties(v string) *StackResourceDrift {
 18387  	s.ActualProperties = &v
 18388  	return s
 18389  }
 18390  
 18391  // SetExpectedProperties sets the ExpectedProperties field's value.
 18392  func (s *StackResourceDrift) SetExpectedProperties(v string) *StackResourceDrift {
 18393  	s.ExpectedProperties = &v
 18394  	return s
 18395  }
 18396  
 18397  // SetLogicalResourceId sets the LogicalResourceId field's value.
 18398  func (s *StackResourceDrift) SetLogicalResourceId(v string) *StackResourceDrift {
 18399  	s.LogicalResourceId = &v
 18400  	return s
 18401  }
 18402  
 18403  // SetModuleInfo sets the ModuleInfo field's value.
 18404  func (s *StackResourceDrift) SetModuleInfo(v *ModuleInfo) *StackResourceDrift {
 18405  	s.ModuleInfo = v
 18406  	return s
 18407  }
 18408  
 18409  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 18410  func (s *StackResourceDrift) SetPhysicalResourceId(v string) *StackResourceDrift {
 18411  	s.PhysicalResourceId = &v
 18412  	return s
 18413  }
 18414  
 18415  // SetPhysicalResourceIdContext sets the PhysicalResourceIdContext field's value.
 18416  func (s *StackResourceDrift) SetPhysicalResourceIdContext(v []*PhysicalResourceIdContextKeyValuePair) *StackResourceDrift {
 18417  	s.PhysicalResourceIdContext = v
 18418  	return s
 18419  }
 18420  
 18421  // SetPropertyDifferences sets the PropertyDifferences field's value.
 18422  func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
 18423  	s.PropertyDifferences = v
 18424  	return s
 18425  }
 18426  
 18427  // SetResourceType sets the ResourceType field's value.
 18428  func (s *StackResourceDrift) SetResourceType(v string) *StackResourceDrift {
 18429  	s.ResourceType = &v
 18430  	return s
 18431  }
 18432  
 18433  // SetStackId sets the StackId field's value.
 18434  func (s *StackResourceDrift) SetStackId(v string) *StackResourceDrift {
 18435  	s.StackId = &v
 18436  	return s
 18437  }
 18438  
 18439  // SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
 18440  func (s *StackResourceDrift) SetStackResourceDriftStatus(v string) *StackResourceDrift {
 18441  	s.StackResourceDriftStatus = &v
 18442  	return s
 18443  }
 18444  
 18445  // SetTimestamp sets the Timestamp field's value.
 18446  func (s *StackResourceDrift) SetTimestamp(v time.Time) *StackResourceDrift {
 18447  	s.Timestamp = &v
 18448  	return s
 18449  }
 18450  
 18451  // Contains information about whether the resource's actual configuration differs,
 18452  // or has drifted, from its expected configuration.
 18453  type StackResourceDriftInformation struct {
 18454  	_ struct{} `type:"structure"`
 18455  
 18456  	// When CloudFormation last checked if the resource had drifted from its expected
 18457  	// configuration.
 18458  	LastCheckTimestamp *time.Time `type:"timestamp"`
 18459  
 18460  	// Status of the resource's actual configuration compared to its expected configuration
 18461  	//
 18462  	//    * DELETED: The resource differs from its expected configuration in that
 18463  	//    it has been deleted.
 18464  	//
 18465  	//    * MODIFIED: The resource differs from its expected configuration.
 18466  	//
 18467  	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
 18468  	//    from its expected configuration. Any resources that do not currently support
 18469  	//    drift detection have a status of NOT_CHECKED. For more information, see
 18470  	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
 18471  	//
 18472  	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
 18473  	//
 18474  	// StackResourceDriftStatus is a required field
 18475  	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
 18476  }
 18477  
 18478  // String returns the string representation.
 18479  //
 18480  // API parameter values that are decorated as "sensitive" in the API will not
 18481  // be included in the string output. The member name will be present, but the
 18482  // value will be replaced with "sensitive".
 18483  func (s StackResourceDriftInformation) String() string {
 18484  	return awsutil.Prettify(s)
 18485  }
 18486  
 18487  // GoString returns the string representation.
 18488  //
 18489  // API parameter values that are decorated as "sensitive" in the API will not
 18490  // be included in the string output. The member name will be present, but the
 18491  // value will be replaced with "sensitive".
 18492  func (s StackResourceDriftInformation) GoString() string {
 18493  	return s.String()
 18494  }
 18495  
 18496  // SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
 18497  func (s *StackResourceDriftInformation) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformation {
 18498  	s.LastCheckTimestamp = &v
 18499  	return s
 18500  }
 18501  
 18502  // SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
 18503  func (s *StackResourceDriftInformation) SetStackResourceDriftStatus(v string) *StackResourceDriftInformation {
 18504  	s.StackResourceDriftStatus = &v
 18505  	return s
 18506  }
 18507  
 18508  // Summarizes information about whether the resource's actual configuration
 18509  // differs, or has drifted, from its expected configuration.
 18510  type StackResourceDriftInformationSummary struct {
 18511  	_ struct{} `type:"structure"`
 18512  
 18513  	// When CloudFormation last checked if the resource had drifted from its expected
 18514  	// configuration.
 18515  	LastCheckTimestamp *time.Time `type:"timestamp"`
 18516  
 18517  	// Status of the resource's actual configuration compared to its expected configuration
 18518  	//
 18519  	//    * DELETED: The resource differs from its expected configuration in that
 18520  	//    it has been deleted.
 18521  	//
 18522  	//    * MODIFIED: The resource differs from its expected configuration.
 18523  	//
 18524  	//    * NOT_CHECKED: CloudFormation has not checked if the resource differs
 18525  	//    from its expected configuration. Any resources that do not currently support
 18526  	//    drift detection have a status of NOT_CHECKED. For more information, see
 18527  	//    Resources that Support Drift Detection (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html).
 18528  	//    If you performed an ContinueUpdateRollback operation on a stack, any resources
 18529  	//    included in ResourcesToSkip will also have a status of NOT_CHECKED. For
 18530  	//    more information on skipping resources during rollback operations, see
 18531  	//    Continue Rolling Back an Update (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html)
 18532  	//    in the CloudFormation User Guide.
 18533  	//
 18534  	//    * IN_SYNC: The resources's actual configuration matches its expected configuration.
 18535  	//
 18536  	// StackResourceDriftStatus is a required field
 18537  	StackResourceDriftStatus *string `type:"string" required:"true" enum:"StackResourceDriftStatus"`
 18538  }
 18539  
 18540  // String returns the string representation.
 18541  //
 18542  // API parameter values that are decorated as "sensitive" in the API will not
 18543  // be included in the string output. The member name will be present, but the
 18544  // value will be replaced with "sensitive".
 18545  func (s StackResourceDriftInformationSummary) String() string {
 18546  	return awsutil.Prettify(s)
 18547  }
 18548  
 18549  // GoString returns the string representation.
 18550  //
 18551  // API parameter values that are decorated as "sensitive" in the API will not
 18552  // be included in the string output. The member name will be present, but the
 18553  // value will be replaced with "sensitive".
 18554  func (s StackResourceDriftInformationSummary) GoString() string {
 18555  	return s.String()
 18556  }
 18557  
 18558  // SetLastCheckTimestamp sets the LastCheckTimestamp field's value.
 18559  func (s *StackResourceDriftInformationSummary) SetLastCheckTimestamp(v time.Time) *StackResourceDriftInformationSummary {
 18560  	s.LastCheckTimestamp = &v
 18561  	return s
 18562  }
 18563  
 18564  // SetStackResourceDriftStatus sets the StackResourceDriftStatus field's value.
 18565  func (s *StackResourceDriftInformationSummary) SetStackResourceDriftStatus(v string) *StackResourceDriftInformationSummary {
 18566  	s.StackResourceDriftStatus = &v
 18567  	return s
 18568  }
 18569  
 18570  // Contains high-level information about the specified stack resource.
 18571  type StackResourceSummary struct {
 18572  	_ struct{} `type:"structure"`
 18573  
 18574  	// Information about whether the resource's actual configuration differs, or
 18575  	// has drifted, from its expected configuration, as defined in the stack template
 18576  	// and any values specified as template parameters. For more information, see
 18577  	// Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 18578  	DriftInformation *StackResourceDriftInformationSummary `type:"structure"`
 18579  
 18580  	// Time the status was updated.
 18581  	//
 18582  	// LastUpdatedTimestamp is a required field
 18583  	LastUpdatedTimestamp *time.Time `type:"timestamp" required:"true"`
 18584  
 18585  	// The logical name of the resource specified in the template.
 18586  	//
 18587  	// LogicalResourceId is a required field
 18588  	LogicalResourceId *string `type:"string" required:"true"`
 18589  
 18590  	// Contains information about the module from which the resource was created,
 18591  	// if the resource was created from a module included in the stack template.
 18592  	ModuleInfo *ModuleInfo `type:"structure"`
 18593  
 18594  	// The name or unique identifier that corresponds to a physical instance ID
 18595  	// of the resource.
 18596  	PhysicalResourceId *string `type:"string"`
 18597  
 18598  	// Current status of the resource.
 18599  	//
 18600  	// ResourceStatus is a required field
 18601  	ResourceStatus *string `type:"string" required:"true" enum:"ResourceStatus"`
 18602  
 18603  	// Success/failure message associated with the resource.
 18604  	ResourceStatusReason *string `type:"string"`
 18605  
 18606  	// Type of resource. (For more information, go to Amazon Web Services Resource
 18607  	// Types Reference (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)
 18608  	// in the CloudFormation User Guide.)
 18609  	//
 18610  	// ResourceType is a required field
 18611  	ResourceType *string `min:"1" type:"string" required:"true"`
 18612  }
 18613  
 18614  // String returns the string representation.
 18615  //
 18616  // API parameter values that are decorated as "sensitive" in the API will not
 18617  // be included in the string output. The member name will be present, but the
 18618  // value will be replaced with "sensitive".
 18619  func (s StackResourceSummary) String() string {
 18620  	return awsutil.Prettify(s)
 18621  }
 18622  
 18623  // GoString returns the string representation.
 18624  //
 18625  // API parameter values that are decorated as "sensitive" in the API will not
 18626  // be included in the string output. The member name will be present, but the
 18627  // value will be replaced with "sensitive".
 18628  func (s StackResourceSummary) GoString() string {
 18629  	return s.String()
 18630  }
 18631  
 18632  // SetDriftInformation sets the DriftInformation field's value.
 18633  func (s *StackResourceSummary) SetDriftInformation(v *StackResourceDriftInformationSummary) *StackResourceSummary {
 18634  	s.DriftInformation = v
 18635  	return s
 18636  }
 18637  
 18638  // SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
 18639  func (s *StackResourceSummary) SetLastUpdatedTimestamp(v time.Time) *StackResourceSummary {
 18640  	s.LastUpdatedTimestamp = &v
 18641  	return s
 18642  }
 18643  
 18644  // SetLogicalResourceId sets the LogicalResourceId field's value.
 18645  func (s *StackResourceSummary) SetLogicalResourceId(v string) *StackResourceSummary {
 18646  	s.LogicalResourceId = &v
 18647  	return s
 18648  }
 18649  
 18650  // SetModuleInfo sets the ModuleInfo field's value.
 18651  func (s *StackResourceSummary) SetModuleInfo(v *ModuleInfo) *StackResourceSummary {
 18652  	s.ModuleInfo = v
 18653  	return s
 18654  }
 18655  
 18656  // SetPhysicalResourceId sets the PhysicalResourceId field's value.
 18657  func (s *StackResourceSummary) SetPhysicalResourceId(v string) *StackResourceSummary {
 18658  	s.PhysicalResourceId = &v
 18659  	return s
 18660  }
 18661  
 18662  // SetResourceStatus sets the ResourceStatus field's value.
 18663  func (s *StackResourceSummary) SetResourceStatus(v string) *StackResourceSummary {
 18664  	s.ResourceStatus = &v
 18665  	return s
 18666  }
 18667  
 18668  // SetResourceStatusReason sets the ResourceStatusReason field's value.
 18669  func (s *StackResourceSummary) SetResourceStatusReason(v string) *StackResourceSummary {
 18670  	s.ResourceStatusReason = &v
 18671  	return s
 18672  }
 18673  
 18674  // SetResourceType sets the ResourceType field's value.
 18675  func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary {
 18676  	s.ResourceType = &v
 18677  	return s
 18678  }
 18679  
 18680  // A structure that contains information about a stack set. A stack set enables
 18681  // you to provision stacks into Amazon Web Services accounts and across Regions
 18682  // by using a single CloudFormation template. In the stack set, you specify
 18683  // the template to use, as well as any parameters and capabilities that the
 18684  // template requires.
 18685  type StackSet struct {
 18686  	_ struct{} `type:"structure"`
 18687  
 18688  	// The Amazon Resource Number (ARN) of the IAM role used to create or update
 18689  	// the stack set.
 18690  	//
 18691  	// Use customized administrator roles to control which users or groups can manage
 18692  	// specific stack sets within the same administrator account. For more information,
 18693  	// see Prerequisites: Granting Permissions for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
 18694  	// in the CloudFormation User Guide.
 18695  	AdministrationRoleARN *string `min:"20" type:"string"`
 18696  
 18697  	// [Service-managed permissions] Describes whether StackSets automatically deploys
 18698  	// to Organizations accounts that are added to a target organization or organizational
 18699  	// unit (OU).
 18700  	AutoDeployment *AutoDeployment `type:"structure"`
 18701  
 18702  	// The capabilities that are allowed in the stack set. Some stack set templates
 18703  	// might include resources that can affect permissions in your Amazon Web Services
 18704  	// account—for example, by creating new Identity and Access Management (IAM)
 18705  	// users. For more information, see Acknowledging IAM Resources in CloudFormation
 18706  	// Templates. (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)
 18707  	Capabilities []*string `type:"list"`
 18708  
 18709  	// A description of the stack set that you specify when the stack set is created
 18710  	// or updated.
 18711  	Description *string `min:"1" type:"string"`
 18712  
 18713  	// The name of the IAM execution role used to create or update the stack set.
 18714  	//
 18715  	// Use customized execution roles to control which stack resources users and
 18716  	// groups can include in their stack sets.
 18717  	ExecutionRoleName *string `min:"1" type:"string"`
 18718  
 18719  	// [Service-managed permissions] The organization root ID or organizational
 18720  	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
 18721  	OrganizationalUnitIds []*string `type:"list"`
 18722  
 18723  	// A list of input parameters for a stack set.
 18724  	Parameters []*Parameter `type:"list"`
 18725  
 18726  	// Describes how the IAM roles required for stack set operations are created.
 18727  	//
 18728  	//    * With self-managed permissions, you must create the administrator and
 18729  	//    execution roles required to deploy to target accounts. For more information,
 18730  	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
 18731  	//
 18732  	//    * With service-managed permissions, StackSets automatically creates the
 18733  	//    IAM roles required to deploy to accounts managed by Organizations. For
 18734  	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
 18735  	PermissionModel *string `type:"string" enum:"PermissionModels"`
 18736  
 18737  	// The Amazon Resource Number (ARN) of the stack set.
 18738  	StackSetARN *string `type:"string"`
 18739  
 18740  	// Detailed information about the drift status of the stack set.
 18741  	//
 18742  	// For stack sets, contains information about the last completed drift operation
 18743  	// performed on the stack set. Information about drift operations currently
 18744  	// in progress is not included.
 18745  	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
 18746  
 18747  	// The ID of the stack set.
 18748  	StackSetId *string `type:"string"`
 18749  
 18750  	// The name that's associated with the stack set.
 18751  	StackSetName *string `type:"string"`
 18752  
 18753  	// The status of the stack set.
 18754  	Status *string `type:"string" enum:"StackSetStatus"`
 18755  
 18756  	// A list of tags that specify information about the stack set. A maximum number
 18757  	// of 50 tags can be specified.
 18758  	Tags []*Tag `type:"list"`
 18759  
 18760  	// The structure that contains the body of the template that was used to create
 18761  	// or update the stack set.
 18762  	TemplateBody *string `min:"1" type:"string"`
 18763  }
 18764  
 18765  // String returns the string representation.
 18766  //
 18767  // API parameter values that are decorated as "sensitive" in the API will not
 18768  // be included in the string output. The member name will be present, but the
 18769  // value will be replaced with "sensitive".
 18770  func (s StackSet) String() string {
 18771  	return awsutil.Prettify(s)
 18772  }
 18773  
 18774  // GoString returns the string representation.
 18775  //
 18776  // API parameter values that are decorated as "sensitive" in the API will not
 18777  // be included in the string output. The member name will be present, but the
 18778  // value will be replaced with "sensitive".
 18779  func (s StackSet) GoString() string {
 18780  	return s.String()
 18781  }
 18782  
 18783  // SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
 18784  func (s *StackSet) SetAdministrationRoleARN(v string) *StackSet {
 18785  	s.AdministrationRoleARN = &v
 18786  	return s
 18787  }
 18788  
 18789  // SetAutoDeployment sets the AutoDeployment field's value.
 18790  func (s *StackSet) SetAutoDeployment(v *AutoDeployment) *StackSet {
 18791  	s.AutoDeployment = v
 18792  	return s
 18793  }
 18794  
 18795  // SetCapabilities sets the Capabilities field's value.
 18796  func (s *StackSet) SetCapabilities(v []*string) *StackSet {
 18797  	s.Capabilities = v
 18798  	return s
 18799  }
 18800  
 18801  // SetDescription sets the Description field's value.
 18802  func (s *StackSet) SetDescription(v string) *StackSet {
 18803  	s.Description = &v
 18804  	return s
 18805  }
 18806  
 18807  // SetExecutionRoleName sets the ExecutionRoleName field's value.
 18808  func (s *StackSet) SetExecutionRoleName(v string) *StackSet {
 18809  	s.ExecutionRoleName = &v
 18810  	return s
 18811  }
 18812  
 18813  // SetOrganizationalUnitIds sets the OrganizationalUnitIds field's value.
 18814  func (s *StackSet) SetOrganizationalUnitIds(v []*string) *StackSet {
 18815  	s.OrganizationalUnitIds = v
 18816  	return s
 18817  }
 18818  
 18819  // SetParameters sets the Parameters field's value.
 18820  func (s *StackSet) SetParameters(v []*Parameter) *StackSet {
 18821  	s.Parameters = v
 18822  	return s
 18823  }
 18824  
 18825  // SetPermissionModel sets the PermissionModel field's value.
 18826  func (s *StackSet) SetPermissionModel(v string) *StackSet {
 18827  	s.PermissionModel = &v
 18828  	return s
 18829  }
 18830  
 18831  // SetStackSetARN sets the StackSetARN field's value.
 18832  func (s *StackSet) SetStackSetARN(v string) *StackSet {
 18833  	s.StackSetARN = &v
 18834  	return s
 18835  }
 18836  
 18837  // SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
 18838  func (s *StackSet) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSet {
 18839  	s.StackSetDriftDetectionDetails = v
 18840  	return s
 18841  }
 18842  
 18843  // SetStackSetId sets the StackSetId field's value.
 18844  func (s *StackSet) SetStackSetId(v string) *StackSet {
 18845  	s.StackSetId = &v
 18846  	return s
 18847  }
 18848  
 18849  // SetStackSetName sets the StackSetName field's value.
 18850  func (s *StackSet) SetStackSetName(v string) *StackSet {
 18851  	s.StackSetName = &v
 18852  	return s
 18853  }
 18854  
 18855  // SetStatus sets the Status field's value.
 18856  func (s *StackSet) SetStatus(v string) *StackSet {
 18857  	s.Status = &v
 18858  	return s
 18859  }
 18860  
 18861  // SetTags sets the Tags field's value.
 18862  func (s *StackSet) SetTags(v []*Tag) *StackSet {
 18863  	s.Tags = v
 18864  	return s
 18865  }
 18866  
 18867  // SetTemplateBody sets the TemplateBody field's value.
 18868  func (s *StackSet) SetTemplateBody(v string) *StackSet {
 18869  	s.TemplateBody = &v
 18870  	return s
 18871  }
 18872  
 18873  // Detailed information about the drift status of the stack set.
 18874  //
 18875  // For stack sets, contains information about the last completed drift operation
 18876  // performed on the stack set. Information about drift operations in-progress
 18877  // is not included.
 18878  //
 18879  // For stack set operations, includes information about drift operations currently
 18880  // being performed on the stack set.
 18881  //
 18882  // For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
 18883  // in the CloudFormation User Guide.
 18884  type StackSetDriftDetectionDetails struct {
 18885  	_ struct{} `type:"structure"`
 18886  
 18887  	// The status of the stack set drift detection operation.
 18888  	//
 18889  	//    * COMPLETED: The drift detection operation completed without failing on
 18890  	//    any stack instances.
 18891  	//
 18892  	//    * FAILED: The drift detection operation exceeded the specified failure
 18893  	//    tolerance.
 18894  	//
 18895  	//    * PARTIAL_SUCCESS: The drift detection operation completed without exceeding
 18896  	//    the failure tolerance for the operation.
 18897  	//
 18898  	//    * IN_PROGRESS: The drift detection operation is currently being performed.
 18899  	//
 18900  	//    * STOPPED: The user has cancelled the drift detection operation.
 18901  	DriftDetectionStatus *string `type:"string" enum:"StackSetDriftDetectionStatus"`
 18902  
 18903  	// Status of the stack set's actual configuration compared to its expected template
 18904  	// and parameter configuration. A stack set is considered to have drifted if
 18905  	// one or more of its stack instances have drifted from their expected template
 18906  	// and parameter configuration.
 18907  	//
 18908  	//    * DRIFTED: One or more of the stack instances belonging to the stack set
 18909  	//    stack differs from the expected template and parameter configuration.
 18910  	//    A stack instance is considered to have drifted if one or more of the resources
 18911  	//    in the associated stack have drifted.
 18912  	//
 18913  	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
 18914  	//
 18915  	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
 18916  	//    match from the expected template and parameter configuration.
 18917  	DriftStatus *string `type:"string" enum:"StackSetDriftStatus"`
 18918  
 18919  	// The number of stack instances that have drifted from the expected template
 18920  	// and parameter configuration of the stack set. A stack instance is considered
 18921  	// to have drifted if one or more of the resources in the associated stack do
 18922  	// not match their expected configuration.
 18923  	DriftedStackInstancesCount *int64 `type:"integer"`
 18924  
 18925  	// The number of stack instances for which the drift detection operation failed.
 18926  	FailedStackInstancesCount *int64 `type:"integer"`
 18927  
 18928  	// The number of stack instances that are currently being checked for drift.
 18929  	InProgressStackInstancesCount *int64 `type:"integer"`
 18930  
 18931  	// The number of stack instances which match the expected template and parameter
 18932  	// configuration of the stack set.
 18933  	InSyncStackInstancesCount *int64 `type:"integer"`
 18934  
 18935  	// Most recent time when CloudFormation performed a drift detection operation
 18936  	// on the stack set. This value will be NULL for any stack set on which drift
 18937  	// detection has not yet been performed.
 18938  	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
 18939  
 18940  	// The total number of stack instances belonging to this stack set.
 18941  	//
 18942  	// The total number of stack instances is equal to the total of:
 18943  	//
 18944  	//    * Stack instances that match the stack set configuration.
 18945  	//
 18946  	//    * Stack instances that have drifted from the stack set configuration.
 18947  	//
 18948  	//    * Stack instances where the drift detection operation has failed.
 18949  	//
 18950  	//    * Stack instances currently being checked for drift.
 18951  	TotalStackInstancesCount *int64 `type:"integer"`
 18952  }
 18953  
 18954  // String returns the string representation.
 18955  //
 18956  // API parameter values that are decorated as "sensitive" in the API will not
 18957  // be included in the string output. The member name will be present, but the
 18958  // value will be replaced with "sensitive".
 18959  func (s StackSetDriftDetectionDetails) String() string {
 18960  	return awsutil.Prettify(s)
 18961  }
 18962  
 18963  // GoString returns the string representation.
 18964  //
 18965  // API parameter values that are decorated as "sensitive" in the API will not
 18966  // be included in the string output. The member name will be present, but the
 18967  // value will be replaced with "sensitive".
 18968  func (s StackSetDriftDetectionDetails) GoString() string {
 18969  	return s.String()
 18970  }
 18971  
 18972  // SetDriftDetectionStatus sets the DriftDetectionStatus field's value.
 18973  func (s *StackSetDriftDetectionDetails) SetDriftDetectionStatus(v string) *StackSetDriftDetectionDetails {
 18974  	s.DriftDetectionStatus = &v
 18975  	return s
 18976  }
 18977  
 18978  // SetDriftStatus sets the DriftStatus field's value.
 18979  func (s *StackSetDriftDetectionDetails) SetDriftStatus(v string) *StackSetDriftDetectionDetails {
 18980  	s.DriftStatus = &v
 18981  	return s
 18982  }
 18983  
 18984  // SetDriftedStackInstancesCount sets the DriftedStackInstancesCount field's value.
 18985  func (s *StackSetDriftDetectionDetails) SetDriftedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
 18986  	s.DriftedStackInstancesCount = &v
 18987  	return s
 18988  }
 18989  
 18990  // SetFailedStackInstancesCount sets the FailedStackInstancesCount field's value.
 18991  func (s *StackSetDriftDetectionDetails) SetFailedStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
 18992  	s.FailedStackInstancesCount = &v
 18993  	return s
 18994  }
 18995  
 18996  // SetInProgressStackInstancesCount sets the InProgressStackInstancesCount field's value.
 18997  func (s *StackSetDriftDetectionDetails) SetInProgressStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
 18998  	s.InProgressStackInstancesCount = &v
 18999  	return s
 19000  }
 19001  
 19002  // SetInSyncStackInstancesCount sets the InSyncStackInstancesCount field's value.
 19003  func (s *StackSetDriftDetectionDetails) SetInSyncStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
 19004  	s.InSyncStackInstancesCount = &v
 19005  	return s
 19006  }
 19007  
 19008  // SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
 19009  func (s *StackSetDriftDetectionDetails) SetLastDriftCheckTimestamp(v time.Time) *StackSetDriftDetectionDetails {
 19010  	s.LastDriftCheckTimestamp = &v
 19011  	return s
 19012  }
 19013  
 19014  // SetTotalStackInstancesCount sets the TotalStackInstancesCount field's value.
 19015  func (s *StackSetDriftDetectionDetails) SetTotalStackInstancesCount(v int64) *StackSetDriftDetectionDetails {
 19016  	s.TotalStackInstancesCount = &v
 19017  	return s
 19018  }
 19019  
 19020  // The structure that contains information about a stack set operation.
 19021  type StackSetOperation struct {
 19022  	_ struct{} `type:"structure"`
 19023  
 19024  	// The type of stack set operation: CREATE, UPDATE, or DELETE. Create and delete
 19025  	// operations affect only the specified stack set instances that are associated
 19026  	// with the specified stack set. Update operations affect both the stack set
 19027  	// itself, as well as all associated stack set instances.
 19028  	Action *string `type:"string" enum:"StackSetOperationAction"`
 19029  
 19030  	// The Amazon Resource Number (ARN) of the IAM role used to perform this stack
 19031  	// set operation.
 19032  	//
 19033  	// Use customized administrator roles to control which users or groups can manage
 19034  	// specific stack sets within the same administrator account. For more information,
 19035  	// see Define Permissions for Multiple Administrators (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
 19036  	// in the CloudFormation User Guide.
 19037  	AdministrationRoleARN *string `min:"20" type:"string"`
 19038  
 19039  	// The time at which the operation was initiated. Note that the creation times
 19040  	// for the stack set operation might differ from the creation time of the individual
 19041  	// stacks themselves. This is because CloudFormation needs to perform preparatory
 19042  	// work for the operation, such as dispatching the work to the requested Regions,
 19043  	// before actually creating the first stacks.
 19044  	CreationTimestamp *time.Time `type:"timestamp"`
 19045  
 19046  	// [Service-managed permissions] The Organizations accounts affected by the
 19047  	// stack operation.
 19048  	DeploymentTargets *DeploymentTargets `type:"structure"`
 19049  
 19050  	// The time at which the stack set operation ended, across all accounts and
 19051  	// Regions specified. Note that this doesn't necessarily mean that the stack
 19052  	// set operation was successful, or even attempted, in each account or Region.
 19053  	EndTimestamp *time.Time `type:"timestamp"`
 19054  
 19055  	// The name of the IAM execution role used to create or update the stack set.
 19056  	//
 19057  	// Use customized execution roles to control which stack resources users and
 19058  	// groups can include in their stack sets.
 19059  	ExecutionRoleName *string `min:"1" type:"string"`
 19060  
 19061  	// The unique ID of a stack set operation.
 19062  	OperationId *string `min:"1" type:"string"`
 19063  
 19064  	// The preferences for how CloudFormation performs this stack set operation.
 19065  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
 19066  
 19067  	// For stack set operations of action type DELETE, specifies whether to remove
 19068  	// the stack instances from the specified stack set, but doesn't delete the
 19069  	// stacks. You can't reassociate a retained stack, or add an existing, saved
 19070  	// stack to a new stack set.
 19071  	RetainStacks *bool `type:"boolean"`
 19072  
 19073  	// Detailed information about the drift status of the stack set. This includes
 19074  	// information about drift operations currently being performed on the stack
 19075  	// set.
 19076  	//
 19077  	// this information will only be present for stack set operations whose Action
 19078  	// type is DETECT_DRIFT.
 19079  	//
 19080  	// For more information, see Detecting Unmanaged Changes in Stack Sets (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html)
 19081  	// in the CloudFormation User Guide.
 19082  	StackSetDriftDetectionDetails *StackSetDriftDetectionDetails `type:"structure"`
 19083  
 19084  	// The ID of the stack set.
 19085  	StackSetId *string `type:"string"`
 19086  
 19087  	// The status of the operation.
 19088  	//
 19089  	//    * FAILED: The operation exceeded the specified failure tolerance. The
 19090  	//    failure tolerance value that you've set for an operation is applied for
 19091  	//    each Region during stack create and update operations. If the number of
 19092  	//    failed stacks within a Region exceeds the failure tolerance, the status
 19093  	//    of the operation in the Region is set to FAILED. This in turn sets the
 19094  	//    status of the operation as a whole to FAILED, and CloudFormation cancels
 19095  	//    the operation in any remaining Regions.
 19096  	//
 19097  	//    * QUEUED: [Service-managed permissions] For automatic deployments that
 19098  	//    require a sequence of operations, the operation is queued to be performed.
 19099  	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
 19100  	//    in the CloudFormation User Guide.
 19101  	//
 19102  	//    * RUNNING: The operation is currently being performed.
 19103  	//
 19104  	//    * STOPPED: The user has cancelled the operation.
 19105  	//
 19106  	//    * STOPPING: The operation is in the process of stopping, at user request.
 19107  	//
 19108  	//    * SUCCEEDED: The operation completed creating or updating all the specified
 19109  	//    stacks without exceeding the failure tolerance for the operation.
 19110  	Status *string `type:"string" enum:"StackSetOperationStatus"`
 19111  }
 19112  
 19113  // String returns the string representation.
 19114  //
 19115  // API parameter values that are decorated as "sensitive" in the API will not
 19116  // be included in the string output. The member name will be present, but the
 19117  // value will be replaced with "sensitive".
 19118  func (s StackSetOperation) String() string {
 19119  	return awsutil.Prettify(s)
 19120  }
 19121  
 19122  // GoString returns the string representation.
 19123  //
 19124  // API parameter values that are decorated as "sensitive" in the API will not
 19125  // be included in the string output. The member name will be present, but the
 19126  // value will be replaced with "sensitive".
 19127  func (s StackSetOperation) GoString() string {
 19128  	return s.String()
 19129  }
 19130  
 19131  // SetAction sets the Action field's value.
 19132  func (s *StackSetOperation) SetAction(v string) *StackSetOperation {
 19133  	s.Action = &v
 19134  	return s
 19135  }
 19136  
 19137  // SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
 19138  func (s *StackSetOperation) SetAdministrationRoleARN(v string) *StackSetOperation {
 19139  	s.AdministrationRoleARN = &v
 19140  	return s
 19141  }
 19142  
 19143  // SetCreationTimestamp sets the CreationTimestamp field's value.
 19144  func (s *StackSetOperation) SetCreationTimestamp(v time.Time) *StackSetOperation {
 19145  	s.CreationTimestamp = &v
 19146  	return s
 19147  }
 19148  
 19149  // SetDeploymentTargets sets the DeploymentTargets field's value.
 19150  func (s *StackSetOperation) SetDeploymentTargets(v *DeploymentTargets) *StackSetOperation {
 19151  	s.DeploymentTargets = v
 19152  	return s
 19153  }
 19154  
 19155  // SetEndTimestamp sets the EndTimestamp field's value.
 19156  func (s *StackSetOperation) SetEndTimestamp(v time.Time) *StackSetOperation {
 19157  	s.EndTimestamp = &v
 19158  	return s
 19159  }
 19160  
 19161  // SetExecutionRoleName sets the ExecutionRoleName field's value.
 19162  func (s *StackSetOperation) SetExecutionRoleName(v string) *StackSetOperation {
 19163  	s.ExecutionRoleName = &v
 19164  	return s
 19165  }
 19166  
 19167  // SetOperationId sets the OperationId field's value.
 19168  func (s *StackSetOperation) SetOperationId(v string) *StackSetOperation {
 19169  	s.OperationId = &v
 19170  	return s
 19171  }
 19172  
 19173  // SetOperationPreferences sets the OperationPreferences field's value.
 19174  func (s *StackSetOperation) SetOperationPreferences(v *StackSetOperationPreferences) *StackSetOperation {
 19175  	s.OperationPreferences = v
 19176  	return s
 19177  }
 19178  
 19179  // SetRetainStacks sets the RetainStacks field's value.
 19180  func (s *StackSetOperation) SetRetainStacks(v bool) *StackSetOperation {
 19181  	s.RetainStacks = &v
 19182  	return s
 19183  }
 19184  
 19185  // SetStackSetDriftDetectionDetails sets the StackSetDriftDetectionDetails field's value.
 19186  func (s *StackSetOperation) SetStackSetDriftDetectionDetails(v *StackSetDriftDetectionDetails) *StackSetOperation {
 19187  	s.StackSetDriftDetectionDetails = v
 19188  	return s
 19189  }
 19190  
 19191  // SetStackSetId sets the StackSetId field's value.
 19192  func (s *StackSetOperation) SetStackSetId(v string) *StackSetOperation {
 19193  	s.StackSetId = &v
 19194  	return s
 19195  }
 19196  
 19197  // SetStatus sets the Status field's value.
 19198  func (s *StackSetOperation) SetStatus(v string) *StackSetOperation {
 19199  	s.Status = &v
 19200  	return s
 19201  }
 19202  
 19203  // The user-specified preferences for how CloudFormation performs a stack set
 19204  // operation.
 19205  //
 19206  // For more information on maximum concurrent accounts and failure tolerance,
 19207  // see Stack set operation options (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options).
 19208  type StackSetOperationPreferences struct {
 19209  	_ struct{} `type:"structure"`
 19210  
 19211  	// The number of accounts, per Region, for which this operation can fail before
 19212  	// CloudFormation stops the operation in that Region. If the operation is stopped
 19213  	// in a Region, CloudFormation doesn't attempt the operation in any subsequent
 19214  	// Regions.
 19215  	//
 19216  	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage
 19217  	// (but not both).
 19218  	//
 19219  	// By default, 0 is specified.
 19220  	FailureToleranceCount *int64 `type:"integer"`
 19221  
 19222  	// The percentage of accounts, per Region, for which this stack operation can
 19223  	// fail before CloudFormation stops the operation in that Region. If the operation
 19224  	// is stopped in a Region, CloudFormation doesn't attempt the operation in any
 19225  	// subsequent Regions.
 19226  	//
 19227  	// When calculating the number of accounts based on the specified percentage,
 19228  	// CloudFormation rounds down to the next whole number.
 19229  	//
 19230  	// Conditional: You must specify either FailureToleranceCount or FailureTolerancePercentage,
 19231  	// but not both.
 19232  	//
 19233  	// By default, 0 is specified.
 19234  	FailureTolerancePercentage *int64 `type:"integer"`
 19235  
 19236  	// The maximum number of accounts in which to perform this operation at one
 19237  	// time. This is dependent on the value of FailureToleranceCount. MaxConcurrentCount
 19238  	// is at most one more than the FailureToleranceCount.
 19239  	//
 19240  	// Note that this setting lets you specify the maximum for operations. For large
 19241  	// deployments, under certain circumstances the actual number of accounts acted
 19242  	// upon concurrently may be lower due to service throttling.
 19243  	//
 19244  	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
 19245  	// but not both.
 19246  	//
 19247  	// By default, 1 is specified.
 19248  	MaxConcurrentCount *int64 `min:"1" type:"integer"`
 19249  
 19250  	// The maximum percentage of accounts in which to perform this operation at
 19251  	// one time.
 19252  	//
 19253  	// When calculating the number of accounts based on the specified percentage,
 19254  	// CloudFormation rounds down to the next whole number. This is true except
 19255  	// in cases where rounding down would result is zero. In this case, CloudFormation
 19256  	// sets the number as one instead.
 19257  	//
 19258  	// Note that this setting lets you specify the maximum for operations. For large
 19259  	// deployments, under certain circumstances the actual number of accounts acted
 19260  	// upon concurrently may be lower due to service throttling.
 19261  	//
 19262  	// Conditional: You must specify either MaxConcurrentCount or MaxConcurrentPercentage,
 19263  	// but not both.
 19264  	//
 19265  	// By default, 1 is specified.
 19266  	MaxConcurrentPercentage *int64 `min:"1" type:"integer"`
 19267  
 19268  	// The concurrency type of deploying StackSets operations in Regions, could
 19269  	// be in parallel or one Region at a time.
 19270  	RegionConcurrencyType *string `type:"string" enum:"RegionConcurrencyType"`
 19271  
 19272  	// The order of the Regions in where you want to perform the stack operation.
 19273  	RegionOrder []*string `type:"list"`
 19274  }
 19275  
 19276  // String returns the string representation.
 19277  //
 19278  // API parameter values that are decorated as "sensitive" in the API will not
 19279  // be included in the string output. The member name will be present, but the
 19280  // value will be replaced with "sensitive".
 19281  func (s StackSetOperationPreferences) String() string {
 19282  	return awsutil.Prettify(s)
 19283  }
 19284  
 19285  // GoString returns the string representation.
 19286  //
 19287  // API parameter values that are decorated as "sensitive" in the API will not
 19288  // be included in the string output. The member name will be present, but the
 19289  // value will be replaced with "sensitive".
 19290  func (s StackSetOperationPreferences) GoString() string {
 19291  	return s.String()
 19292  }
 19293  
 19294  // Validate inspects the fields of the type to determine if they are valid.
 19295  func (s *StackSetOperationPreferences) Validate() error {
 19296  	invalidParams := request.ErrInvalidParams{Context: "StackSetOperationPreferences"}
 19297  	if s.MaxConcurrentCount != nil && *s.MaxConcurrentCount < 1 {
 19298  		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentCount", 1))
 19299  	}
 19300  	if s.MaxConcurrentPercentage != nil && *s.MaxConcurrentPercentage < 1 {
 19301  		invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentPercentage", 1))
 19302  	}
 19303  
 19304  	if invalidParams.Len() > 0 {
 19305  		return invalidParams
 19306  	}
 19307  	return nil
 19308  }
 19309  
 19310  // SetFailureToleranceCount sets the FailureToleranceCount field's value.
 19311  func (s *StackSetOperationPreferences) SetFailureToleranceCount(v int64) *StackSetOperationPreferences {
 19312  	s.FailureToleranceCount = &v
 19313  	return s
 19314  }
 19315  
 19316  // SetFailureTolerancePercentage sets the FailureTolerancePercentage field's value.
 19317  func (s *StackSetOperationPreferences) SetFailureTolerancePercentage(v int64) *StackSetOperationPreferences {
 19318  	s.FailureTolerancePercentage = &v
 19319  	return s
 19320  }
 19321  
 19322  // SetMaxConcurrentCount sets the MaxConcurrentCount field's value.
 19323  func (s *StackSetOperationPreferences) SetMaxConcurrentCount(v int64) *StackSetOperationPreferences {
 19324  	s.MaxConcurrentCount = &v
 19325  	return s
 19326  }
 19327  
 19328  // SetMaxConcurrentPercentage sets the MaxConcurrentPercentage field's value.
 19329  func (s *StackSetOperationPreferences) SetMaxConcurrentPercentage(v int64) *StackSetOperationPreferences {
 19330  	s.MaxConcurrentPercentage = &v
 19331  	return s
 19332  }
 19333  
 19334  // SetRegionConcurrencyType sets the RegionConcurrencyType field's value.
 19335  func (s *StackSetOperationPreferences) SetRegionConcurrencyType(v string) *StackSetOperationPreferences {
 19336  	s.RegionConcurrencyType = &v
 19337  	return s
 19338  }
 19339  
 19340  // SetRegionOrder sets the RegionOrder field's value.
 19341  func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOperationPreferences {
 19342  	s.RegionOrder = v
 19343  	return s
 19344  }
 19345  
 19346  // The structure that contains information about a specified operation's results
 19347  // for a given account in a given Region.
 19348  type StackSetOperationResultSummary struct {
 19349  	_ struct{} `type:"structure"`
 19350  
 19351  	// [Self-managed permissions] The name of the Amazon Web Services account for
 19352  	// this operation result.
 19353  	Account *string `type:"string"`
 19354  
 19355  	// The results of the account gate function CloudFormation invokes, if present,
 19356  	// before proceeding with stack set operations in an account
 19357  	AccountGateResult *AccountGateResult `type:"structure"`
 19358  
 19359  	// [Service-managed permissions] The organization root ID or organizational
 19360  	// unit (OU) IDs that you specified for DeploymentTargets (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html).
 19361  	OrganizationalUnitId *string `type:"string"`
 19362  
 19363  	// The name of the Amazon Web Services Region for this operation result.
 19364  	Region *string `type:"string"`
 19365  
 19366  	// The result status of the stack set operation for the given account in the
 19367  	// given Region.
 19368  	//
 19369  	//    * CANCELLED: The operation in the specified account and Region has been
 19370  	//    cancelled. This is either because a user has stopped the stack set operation,
 19371  	//    or because the failure tolerance of the stack set operation has been exceeded.
 19372  	//
 19373  	//    * FAILED: The operation in the specified account and Region failed. If
 19374  	//    the stack set operation fails in enough accounts within a Region, the
 19375  	//    failure tolerance for the stack set operation as a whole might be exceeded.
 19376  	//
 19377  	//    * RUNNING: The operation in the specified account and Region is currently
 19378  	//    in progress.
 19379  	//
 19380  	//    * PENDING: The operation in the specified account and Region has yet to
 19381  	//    start.
 19382  	//
 19383  	//    * SUCCEEDED: The operation in the specified account and Region completed
 19384  	//    successfully.
 19385  	Status *string `type:"string" enum:"StackSetOperationResultStatus"`
 19386  
 19387  	// The reason for the assigned result status.
 19388  	StatusReason *string `type:"string"`
 19389  }
 19390  
 19391  // String returns the string representation.
 19392  //
 19393  // API parameter values that are decorated as "sensitive" in the API will not
 19394  // be included in the string output. The member name will be present, but the
 19395  // value will be replaced with "sensitive".
 19396  func (s StackSetOperationResultSummary) String() string {
 19397  	return awsutil.Prettify(s)
 19398  }
 19399  
 19400  // GoString returns the string representation.
 19401  //
 19402  // API parameter values that are decorated as "sensitive" in the API will not
 19403  // be included in the string output. The member name will be present, but the
 19404  // value will be replaced with "sensitive".
 19405  func (s StackSetOperationResultSummary) GoString() string {
 19406  	return s.String()
 19407  }
 19408  
 19409  // SetAccount sets the Account field's value.
 19410  func (s *StackSetOperationResultSummary) SetAccount(v string) *StackSetOperationResultSummary {
 19411  	s.Account = &v
 19412  	return s
 19413  }
 19414  
 19415  // SetAccountGateResult sets the AccountGateResult field's value.
 19416  func (s *StackSetOperationResultSummary) SetAccountGateResult(v *AccountGateResult) *StackSetOperationResultSummary {
 19417  	s.AccountGateResult = v
 19418  	return s
 19419  }
 19420  
 19421  // SetOrganizationalUnitId sets the OrganizationalUnitId field's value.
 19422  func (s *StackSetOperationResultSummary) SetOrganizationalUnitId(v string) *StackSetOperationResultSummary {
 19423  	s.OrganizationalUnitId = &v
 19424  	return s
 19425  }
 19426  
 19427  // SetRegion sets the Region field's value.
 19428  func (s *StackSetOperationResultSummary) SetRegion(v string) *StackSetOperationResultSummary {
 19429  	s.Region = &v
 19430  	return s
 19431  }
 19432  
 19433  // SetStatus sets the Status field's value.
 19434  func (s *StackSetOperationResultSummary) SetStatus(v string) *StackSetOperationResultSummary {
 19435  	s.Status = &v
 19436  	return s
 19437  }
 19438  
 19439  // SetStatusReason sets the StatusReason field's value.
 19440  func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOperationResultSummary {
 19441  	s.StatusReason = &v
 19442  	return s
 19443  }
 19444  
 19445  // The structures that contain summary information about the specified operation.
 19446  type StackSetOperationSummary struct {
 19447  	_ struct{} `type:"structure"`
 19448  
 19449  	// The type of operation: CREATE, UPDATE, or DELETE. Create and delete operations
 19450  	// affect only the specified stack instances that are associated with the specified
 19451  	// stack set. Update operations affect both the stack set itself as well as
 19452  	// all associated stack set instances.
 19453  	Action *string `type:"string" enum:"StackSetOperationAction"`
 19454  
 19455  	// The time at which the operation was initiated. Note that the creation times
 19456  	// for the stack set operation might differ from the creation time of the individual
 19457  	// stacks themselves. This is because CloudFormation needs to perform preparatory
 19458  	// work for the operation, such as dispatching the work to the requested Regions,
 19459  	// before actually creating the first stacks.
 19460  	CreationTimestamp *time.Time `type:"timestamp"`
 19461  
 19462  	// The time at which the stack set operation ended, across all accounts and
 19463  	// Regions specified. Note that this doesn't necessarily mean that the stack
 19464  	// set operation was successful, or even attempted, in each account or Region.
 19465  	EndTimestamp *time.Time `type:"timestamp"`
 19466  
 19467  	// The unique ID of the stack set operation.
 19468  	OperationId *string `min:"1" type:"string"`
 19469  
 19470  	// The overall status of the operation.
 19471  	//
 19472  	//    * FAILED: The operation exceeded the specified failure tolerance. The
 19473  	//    failure tolerance value that you've set for an operation is applied for
 19474  	//    each Region during stack create and update operations. If the number of
 19475  	//    failed stacks within a Region exceeds the failure tolerance, the status
 19476  	//    of the operation in the Region is set to FAILED. This in turn sets the
 19477  	//    status of the operation as a whole to FAILED, and CloudFormation cancels
 19478  	//    the operation in any remaining Regions.
 19479  	//
 19480  	//    * QUEUED: [Service-managed permissions] For automatic deployments that
 19481  	//    require a sequence of operations, the operation is queued to be performed.
 19482  	//    For more information, see the stack set operation status codes (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes)
 19483  	//    in the CloudFormation User Guide.
 19484  	//
 19485  	//    * RUNNING: The operation is currently being performed.
 19486  	//
 19487  	//    * STOPPED: The user has cancelled the operation.
 19488  	//
 19489  	//    * STOPPING: The operation is in the process of stopping, at user request.
 19490  	//
 19491  	//    * SUCCEEDED: The operation completed creating or updating all the specified
 19492  	//    stacks without exceeding the failure tolerance for the operation.
 19493  	Status *string `type:"string" enum:"StackSetOperationStatus"`
 19494  }
 19495  
 19496  // String returns the string representation.
 19497  //
 19498  // API parameter values that are decorated as "sensitive" in the API will not
 19499  // be included in the string output. The member name will be present, but the
 19500  // value will be replaced with "sensitive".
 19501  func (s StackSetOperationSummary) String() string {
 19502  	return awsutil.Prettify(s)
 19503  }
 19504  
 19505  // GoString returns the string representation.
 19506  //
 19507  // API parameter values that are decorated as "sensitive" in the API will not
 19508  // be included in the string output. The member name will be present, but the
 19509  // value will be replaced with "sensitive".
 19510  func (s StackSetOperationSummary) GoString() string {
 19511  	return s.String()
 19512  }
 19513  
 19514  // SetAction sets the Action field's value.
 19515  func (s *StackSetOperationSummary) SetAction(v string) *StackSetOperationSummary {
 19516  	s.Action = &v
 19517  	return s
 19518  }
 19519  
 19520  // SetCreationTimestamp sets the CreationTimestamp field's value.
 19521  func (s *StackSetOperationSummary) SetCreationTimestamp(v time.Time) *StackSetOperationSummary {
 19522  	s.CreationTimestamp = &v
 19523  	return s
 19524  }
 19525  
 19526  // SetEndTimestamp sets the EndTimestamp field's value.
 19527  func (s *StackSetOperationSummary) SetEndTimestamp(v time.Time) *StackSetOperationSummary {
 19528  	s.EndTimestamp = &v
 19529  	return s
 19530  }
 19531  
 19532  // SetOperationId sets the OperationId field's value.
 19533  func (s *StackSetOperationSummary) SetOperationId(v string) *StackSetOperationSummary {
 19534  	s.OperationId = &v
 19535  	return s
 19536  }
 19537  
 19538  // SetStatus sets the Status field's value.
 19539  func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary {
 19540  	s.Status = &v
 19541  	return s
 19542  }
 19543  
 19544  // The structures that contain summary information about the specified stack
 19545  // set.
 19546  type StackSetSummary struct {
 19547  	_ struct{} `type:"structure"`
 19548  
 19549  	// [Service-managed permissions] Describes whether StackSets automatically deploys
 19550  	// to Organizations accounts that are added to a target organizational unit
 19551  	// (OU).
 19552  	AutoDeployment *AutoDeployment `type:"structure"`
 19553  
 19554  	// A description of the stack set that you specify when the stack set is created
 19555  	// or updated.
 19556  	Description *string `min:"1" type:"string"`
 19557  
 19558  	// Status of the stack set's actual configuration compared to its expected template
 19559  	// and parameter configuration. A stack set is considered to have drifted if
 19560  	// one or more of its stack instances have drifted from their expected template
 19561  	// and parameter configuration.
 19562  	//
 19563  	//    * DRIFTED: One or more of the stack instances belonging to the stack set
 19564  	//    stack differs from the expected template and parameter configuration.
 19565  	//    A stack instance is considered to have drifted if one or more of the resources
 19566  	//    in the associated stack have drifted.
 19567  	//
 19568  	//    * NOT_CHECKED: CloudFormation has not checked the stack set for drift.
 19569  	//
 19570  	//    * IN_SYNC: All of the stack instances belonging to the stack set stack
 19571  	//    match from the expected template and parameter configuration.
 19572  	//
 19573  	//    * UNKNOWN: This value is reserved for future use.
 19574  	DriftStatus *string `type:"string" enum:"StackDriftStatus"`
 19575  
 19576  	// Most recent time when CloudFormation performed a drift detection operation
 19577  	// on the stack set. This value will be NULL for any stack set on which drift
 19578  	// detection has not yet been performed.
 19579  	LastDriftCheckTimestamp *time.Time `type:"timestamp"`
 19580  
 19581  	// Describes how the IAM roles required for stack set operations are created.
 19582  	//
 19583  	//    * With self-managed permissions, you must create the administrator and
 19584  	//    execution roles required to deploy to target accounts. For more information,
 19585  	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
 19586  	//
 19587  	//    * With service-managed permissions, StackSets automatically creates the
 19588  	//    IAM roles required to deploy to accounts managed by Organizations. For
 19589  	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
 19590  	PermissionModel *string `type:"string" enum:"PermissionModels"`
 19591  
 19592  	// The ID of the stack set.
 19593  	StackSetId *string `type:"string"`
 19594  
 19595  	// The name of the stack set.
 19596  	StackSetName *string `type:"string"`
 19597  
 19598  	// The status of the stack set.
 19599  	Status *string `type:"string" enum:"StackSetStatus"`
 19600  }
 19601  
 19602  // String returns the string representation.
 19603  //
 19604  // API parameter values that are decorated as "sensitive" in the API will not
 19605  // be included in the string output. The member name will be present, but the
 19606  // value will be replaced with "sensitive".
 19607  func (s StackSetSummary) String() string {
 19608  	return awsutil.Prettify(s)
 19609  }
 19610  
 19611  // GoString returns the string representation.
 19612  //
 19613  // API parameter values that are decorated as "sensitive" in the API will not
 19614  // be included in the string output. The member name will be present, but the
 19615  // value will be replaced with "sensitive".
 19616  func (s StackSetSummary) GoString() string {
 19617  	return s.String()
 19618  }
 19619  
 19620  // SetAutoDeployment sets the AutoDeployment field's value.
 19621  func (s *StackSetSummary) SetAutoDeployment(v *AutoDeployment) *StackSetSummary {
 19622  	s.AutoDeployment = v
 19623  	return s
 19624  }
 19625  
 19626  // SetDescription sets the Description field's value.
 19627  func (s *StackSetSummary) SetDescription(v string) *StackSetSummary {
 19628  	s.Description = &v
 19629  	return s
 19630  }
 19631  
 19632  // SetDriftStatus sets the DriftStatus field's value.
 19633  func (s *StackSetSummary) SetDriftStatus(v string) *StackSetSummary {
 19634  	s.DriftStatus = &v
 19635  	return s
 19636  }
 19637  
 19638  // SetLastDriftCheckTimestamp sets the LastDriftCheckTimestamp field's value.
 19639  func (s *StackSetSummary) SetLastDriftCheckTimestamp(v time.Time) *StackSetSummary {
 19640  	s.LastDriftCheckTimestamp = &v
 19641  	return s
 19642  }
 19643  
 19644  // SetPermissionModel sets the PermissionModel field's value.
 19645  func (s *StackSetSummary) SetPermissionModel(v string) *StackSetSummary {
 19646  	s.PermissionModel = &v
 19647  	return s
 19648  }
 19649  
 19650  // SetStackSetId sets the StackSetId field's value.
 19651  func (s *StackSetSummary) SetStackSetId(v string) *StackSetSummary {
 19652  	s.StackSetId = &v
 19653  	return s
 19654  }
 19655  
 19656  // SetStackSetName sets the StackSetName field's value.
 19657  func (s *StackSetSummary) SetStackSetName(v string) *StackSetSummary {
 19658  	s.StackSetName = &v
 19659  	return s
 19660  }
 19661  
 19662  // SetStatus sets the Status field's value.
 19663  func (s *StackSetSummary) SetStatus(v string) *StackSetSummary {
 19664  	s.Status = &v
 19665  	return s
 19666  }
 19667  
 19668  // The StackSummary Data Type
 19669  type StackSummary struct {
 19670  	_ struct{} `type:"structure"`
 19671  
 19672  	// The time the stack was created.
 19673  	//
 19674  	// CreationTime is a required field
 19675  	CreationTime *time.Time `type:"timestamp" required:"true"`
 19676  
 19677  	// The time the stack was deleted.
 19678  	DeletionTime *time.Time `type:"timestamp"`
 19679  
 19680  	// Summarizes information on whether a stack's actual configuration differs,
 19681  	// or has drifted, from it's expected configuration, as defined in the stack
 19682  	// template and any values specified as template parameters. For more information,
 19683  	// see Detecting Unregulated Configuration Changes to Stacks and Resources (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html).
 19684  	DriftInformation *StackDriftInformationSummary `type:"structure"`
 19685  
 19686  	// The time the stack was last updated. This field will only be returned if
 19687  	// the stack has been updated at least once.
 19688  	LastUpdatedTime *time.Time `type:"timestamp"`
 19689  
 19690  	// For nested stacks--stacks created as resources for another stack--the stack
 19691  	// ID of the direct parent of this stack. For the first level of nested stacks,
 19692  	// the root stack is also the parent stack.
 19693  	//
 19694  	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
 19695  	// in the CloudFormation User Guide.
 19696  	ParentId *string `type:"string"`
 19697  
 19698  	// For nested stacks--stacks created as resources for another stack--the stack
 19699  	// ID of the top-level stack to which the nested stack ultimately belongs.
 19700  	//
 19701  	// For more information, see Working with Nested Stacks (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
 19702  	// in the CloudFormation User Guide.
 19703  	RootId *string `type:"string"`
 19704  
 19705  	// Unique stack identifier.
 19706  	StackId *string `type:"string"`
 19707  
 19708  	// The name associated with the stack.
 19709  	//
 19710  	// StackName is a required field
 19711  	StackName *string `type:"string" required:"true"`
 19712  
 19713  	// The current status of the stack.
 19714  	//
 19715  	// StackStatus is a required field
 19716  	StackStatus *string `type:"string" required:"true" enum:"StackStatus"`
 19717  
 19718  	// Success/Failure message associated with the stack status.
 19719  	StackStatusReason *string `type:"string"`
 19720  
 19721  	// The template description of the template used to create the stack.
 19722  	TemplateDescription *string `type:"string"`
 19723  }
 19724  
 19725  // String returns the string representation.
 19726  //
 19727  // API parameter values that are decorated as "sensitive" in the API will not
 19728  // be included in the string output. The member name will be present, but the
 19729  // value will be replaced with "sensitive".
 19730  func (s StackSummary) String() string {
 19731  	return awsutil.Prettify(s)
 19732  }
 19733  
 19734  // GoString returns the string representation.
 19735  //
 19736  // API parameter values that are decorated as "sensitive" in the API will not
 19737  // be included in the string output. The member name will be present, but the
 19738  // value will be replaced with "sensitive".
 19739  func (s StackSummary) GoString() string {
 19740  	return s.String()
 19741  }
 19742  
 19743  // SetCreationTime sets the CreationTime field's value.
 19744  func (s *StackSummary) SetCreationTime(v time.Time) *StackSummary {
 19745  	s.CreationTime = &v
 19746  	return s
 19747  }
 19748  
 19749  // SetDeletionTime sets the DeletionTime field's value.
 19750  func (s *StackSummary) SetDeletionTime(v time.Time) *StackSummary {
 19751  	s.DeletionTime = &v
 19752  	return s
 19753  }
 19754  
 19755  // SetDriftInformation sets the DriftInformation field's value.
 19756  func (s *StackSummary) SetDriftInformation(v *StackDriftInformationSummary) *StackSummary {
 19757  	s.DriftInformation = v
 19758  	return s
 19759  }
 19760  
 19761  // SetLastUpdatedTime sets the LastUpdatedTime field's value.
 19762  func (s *StackSummary) SetLastUpdatedTime(v time.Time) *StackSummary {
 19763  	s.LastUpdatedTime = &v
 19764  	return s
 19765  }
 19766  
 19767  // SetParentId sets the ParentId field's value.
 19768  func (s *StackSummary) SetParentId(v string) *StackSummary {
 19769  	s.ParentId = &v
 19770  	return s
 19771  }
 19772  
 19773  // SetRootId sets the RootId field's value.
 19774  func (s *StackSummary) SetRootId(v string) *StackSummary {
 19775  	s.RootId = &v
 19776  	return s
 19777  }
 19778  
 19779  // SetStackId sets the StackId field's value.
 19780  func (s *StackSummary) SetStackId(v string) *StackSummary {
 19781  	s.StackId = &v
 19782  	return s
 19783  }
 19784  
 19785  // SetStackName sets the StackName field's value.
 19786  func (s *StackSummary) SetStackName(v string) *StackSummary {
 19787  	s.StackName = &v
 19788  	return s
 19789  }
 19790  
 19791  // SetStackStatus sets the StackStatus field's value.
 19792  func (s *StackSummary) SetStackStatus(v string) *StackSummary {
 19793  	s.StackStatus = &v
 19794  	return s
 19795  }
 19796  
 19797  // SetStackStatusReason sets the StackStatusReason field's value.
 19798  func (s *StackSummary) SetStackStatusReason(v string) *StackSummary {
 19799  	s.StackStatusReason = &v
 19800  	return s
 19801  }
 19802  
 19803  // SetTemplateDescription sets the TemplateDescription field's value.
 19804  func (s *StackSummary) SetTemplateDescription(v string) *StackSummary {
 19805  	s.TemplateDescription = &v
 19806  	return s
 19807  }
 19808  
 19809  type StopStackSetOperationInput struct {
 19810  	_ struct{} `type:"structure"`
 19811  
 19812  	// [Service-managed permissions] Specifies whether you are acting as an account
 19813  	// administrator in the organization's management account or as a delegated
 19814  	// administrator in a member account.
 19815  	//
 19816  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 19817  	// permissions.
 19818  	//
 19819  	//    * If you are signed in to the management account, specify SELF.
 19820  	//
 19821  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 19822  	//    Your Amazon Web Services account must be registered as a delegated administrator
 19823  	//    in the management account. For more information, see Register a delegated
 19824  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 19825  	//    in the CloudFormation User Guide.
 19826  	CallAs *string `type:"string" enum:"CallAs"`
 19827  
 19828  	// The ID of the stack operation.
 19829  	//
 19830  	// OperationId is a required field
 19831  	OperationId *string `min:"1" type:"string" required:"true"`
 19832  
 19833  	// The name or unique ID of the stack set that you want to stop the operation
 19834  	// for.
 19835  	//
 19836  	// StackSetName is a required field
 19837  	StackSetName *string `type:"string" required:"true"`
 19838  }
 19839  
 19840  // String returns the string representation.
 19841  //
 19842  // API parameter values that are decorated as "sensitive" in the API will not
 19843  // be included in the string output. The member name will be present, but the
 19844  // value will be replaced with "sensitive".
 19845  func (s StopStackSetOperationInput) String() string {
 19846  	return awsutil.Prettify(s)
 19847  }
 19848  
 19849  // GoString returns the string representation.
 19850  //
 19851  // API parameter values that are decorated as "sensitive" in the API will not
 19852  // be included in the string output. The member name will be present, but the
 19853  // value will be replaced with "sensitive".
 19854  func (s StopStackSetOperationInput) GoString() string {
 19855  	return s.String()
 19856  }
 19857  
 19858  // Validate inspects the fields of the type to determine if they are valid.
 19859  func (s *StopStackSetOperationInput) Validate() error {
 19860  	invalidParams := request.ErrInvalidParams{Context: "StopStackSetOperationInput"}
 19861  	if s.OperationId == nil {
 19862  		invalidParams.Add(request.NewErrParamRequired("OperationId"))
 19863  	}
 19864  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 19865  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 19866  	}
 19867  	if s.StackSetName == nil {
 19868  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 19869  	}
 19870  
 19871  	if invalidParams.Len() > 0 {
 19872  		return invalidParams
 19873  	}
 19874  	return nil
 19875  }
 19876  
 19877  // SetCallAs sets the CallAs field's value.
 19878  func (s *StopStackSetOperationInput) SetCallAs(v string) *StopStackSetOperationInput {
 19879  	s.CallAs = &v
 19880  	return s
 19881  }
 19882  
 19883  // SetOperationId sets the OperationId field's value.
 19884  func (s *StopStackSetOperationInput) SetOperationId(v string) *StopStackSetOperationInput {
 19885  	s.OperationId = &v
 19886  	return s
 19887  }
 19888  
 19889  // SetStackSetName sets the StackSetName field's value.
 19890  func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOperationInput {
 19891  	s.StackSetName = &v
 19892  	return s
 19893  }
 19894  
 19895  type StopStackSetOperationOutput struct {
 19896  	_ struct{} `type:"structure"`
 19897  }
 19898  
 19899  // String returns the string representation.
 19900  //
 19901  // API parameter values that are decorated as "sensitive" in the API will not
 19902  // be included in the string output. The member name will be present, but the
 19903  // value will be replaced with "sensitive".
 19904  func (s StopStackSetOperationOutput) String() string {
 19905  	return awsutil.Prettify(s)
 19906  }
 19907  
 19908  // GoString returns the string representation.
 19909  //
 19910  // API parameter values that are decorated as "sensitive" in the API will not
 19911  // be included in the string output. The member name will be present, but the
 19912  // value will be replaced with "sensitive".
 19913  func (s StopStackSetOperationOutput) GoString() string {
 19914  	return s.String()
 19915  }
 19916  
 19917  // The Tag type enables you to specify a key-value pair that can be used to
 19918  // store information about an CloudFormation stack.
 19919  type Tag struct {
 19920  	_ struct{} `type:"structure"`
 19921  
 19922  	// Required. A string used to identify this tag. You can specify a maximum of
 19923  	// 128 characters for a tag key. Tags owned by Amazon Web Services (Amazon Web
 19924  	// Services) have the reserved prefix: aws:.
 19925  	//
 19926  	// Key is a required field
 19927  	Key *string `min:"1" type:"string" required:"true"`
 19928  
 19929  	// Required. A string containing the value for this tag. You can specify a maximum
 19930  	// of 256 characters for a tag value.
 19931  	//
 19932  	// Value is a required field
 19933  	Value *string `min:"1" type:"string" required:"true"`
 19934  }
 19935  
 19936  // String returns the string representation.
 19937  //
 19938  // API parameter values that are decorated as "sensitive" in the API will not
 19939  // be included in the string output. The member name will be present, but the
 19940  // value will be replaced with "sensitive".
 19941  func (s Tag) String() string {
 19942  	return awsutil.Prettify(s)
 19943  }
 19944  
 19945  // GoString returns the string representation.
 19946  //
 19947  // API parameter values that are decorated as "sensitive" in the API will not
 19948  // be included in the string output. The member name will be present, but the
 19949  // value will be replaced with "sensitive".
 19950  func (s Tag) GoString() string {
 19951  	return s.String()
 19952  }
 19953  
 19954  // Validate inspects the fields of the type to determine if they are valid.
 19955  func (s *Tag) Validate() error {
 19956  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 19957  	if s.Key == nil {
 19958  		invalidParams.Add(request.NewErrParamRequired("Key"))
 19959  	}
 19960  	if s.Key != nil && len(*s.Key) < 1 {
 19961  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 19962  	}
 19963  	if s.Value == nil {
 19964  		invalidParams.Add(request.NewErrParamRequired("Value"))
 19965  	}
 19966  	if s.Value != nil && len(*s.Value) < 1 {
 19967  		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
 19968  	}
 19969  
 19970  	if invalidParams.Len() > 0 {
 19971  		return invalidParams
 19972  	}
 19973  	return nil
 19974  }
 19975  
 19976  // SetKey sets the Key field's value.
 19977  func (s *Tag) SetKey(v string) *Tag {
 19978  	s.Key = &v
 19979  	return s
 19980  }
 19981  
 19982  // SetValue sets the Value field's value.
 19983  func (s *Tag) SetValue(v string) *Tag {
 19984  	s.Value = &v
 19985  	return s
 19986  }
 19987  
 19988  // The TemplateParameter data type.
 19989  type TemplateParameter struct {
 19990  	_ struct{} `type:"structure"`
 19991  
 19992  	// The default value associated with the parameter.
 19993  	DefaultValue *string `type:"string"`
 19994  
 19995  	// User defined description associated with the parameter.
 19996  	Description *string `min:"1" type:"string"`
 19997  
 19998  	// Flag indicating whether the parameter should be displayed as plain text in
 19999  	// logs and UIs.
 20000  	NoEcho *bool `type:"boolean"`
 20001  
 20002  	// The name associated with the parameter.
 20003  	ParameterKey *string `type:"string"`
 20004  }
 20005  
 20006  // String returns the string representation.
 20007  //
 20008  // API parameter values that are decorated as "sensitive" in the API will not
 20009  // be included in the string output. The member name will be present, but the
 20010  // value will be replaced with "sensitive".
 20011  func (s TemplateParameter) String() string {
 20012  	return awsutil.Prettify(s)
 20013  }
 20014  
 20015  // GoString returns the string representation.
 20016  //
 20017  // API parameter values that are decorated as "sensitive" in the API will not
 20018  // be included in the string output. The member name will be present, but the
 20019  // value will be replaced with "sensitive".
 20020  func (s TemplateParameter) GoString() string {
 20021  	return s.String()
 20022  }
 20023  
 20024  // SetDefaultValue sets the DefaultValue field's value.
 20025  func (s *TemplateParameter) SetDefaultValue(v string) *TemplateParameter {
 20026  	s.DefaultValue = &v
 20027  	return s
 20028  }
 20029  
 20030  // SetDescription sets the Description field's value.
 20031  func (s *TemplateParameter) SetDescription(v string) *TemplateParameter {
 20032  	s.Description = &v
 20033  	return s
 20034  }
 20035  
 20036  // SetNoEcho sets the NoEcho field's value.
 20037  func (s *TemplateParameter) SetNoEcho(v bool) *TemplateParameter {
 20038  	s.NoEcho = &v
 20039  	return s
 20040  }
 20041  
 20042  // SetParameterKey sets the ParameterKey field's value.
 20043  func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter {
 20044  	s.ParameterKey = &v
 20045  	return s
 20046  }
 20047  
 20048  type TestTypeInput struct {
 20049  	_ struct{} `type:"structure"`
 20050  
 20051  	// The Amazon Resource Number (ARN) of the extension.
 20052  	//
 20053  	// Conditional: You must specify Arn, or TypeName and Type.
 20054  	Arn *string `type:"string"`
 20055  
 20056  	// The S3 bucket to which CloudFormation delivers the contract test execution
 20057  	// logs.
 20058  	//
 20059  	// CloudFormation delivers the logs by the time contract testing has completed
 20060  	// and the extension has been assigned a test type status of PASSED or FAILED.
 20061  	//
 20062  	// The user calling TestType must be able to access items in the specified S3
 20063  	// bucket. Specifically, the user needs the following permissions:
 20064  	//
 20065  	//    * GetObject
 20066  	//
 20067  	//    * PutObject
 20068  	//
 20069  	// For more information, see Actions, Resources, and Condition Keys for Amazon
 20070  	// S3 (https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
 20071  	// in the Amazon Web Services Identity and Access Management User Guide.
 20072  	LogDeliveryBucket *string `min:"3" type:"string"`
 20073  
 20074  	// The type of the extension to test.
 20075  	//
 20076  	// Conditional: You must specify Arn, or TypeName and Type.
 20077  	Type *string `type:"string" enum:"ThirdPartyType"`
 20078  
 20079  	// The name of the extension to test.
 20080  	//
 20081  	// Conditional: You must specify Arn, or TypeName and Type.
 20082  	TypeName *string `min:"10" type:"string"`
 20083  
 20084  	// The version of the extension to test.
 20085  	//
 20086  	// You can specify the version id with either Arn, or with TypeName and Type.
 20087  	//
 20088  	// If you do not specify a version, CloudFormation uses the default version
 20089  	// of the extension in this account and region for testing.
 20090  	VersionId *string `min:"1" type:"string"`
 20091  }
 20092  
 20093  // String returns the string representation.
 20094  //
 20095  // API parameter values that are decorated as "sensitive" in the API will not
 20096  // be included in the string output. The member name will be present, but the
 20097  // value will be replaced with "sensitive".
 20098  func (s TestTypeInput) String() string {
 20099  	return awsutil.Prettify(s)
 20100  }
 20101  
 20102  // GoString returns the string representation.
 20103  //
 20104  // API parameter values that are decorated as "sensitive" in the API will not
 20105  // be included in the string output. The member name will be present, but the
 20106  // value will be replaced with "sensitive".
 20107  func (s TestTypeInput) GoString() string {
 20108  	return s.String()
 20109  }
 20110  
 20111  // Validate inspects the fields of the type to determine if they are valid.
 20112  func (s *TestTypeInput) Validate() error {
 20113  	invalidParams := request.ErrInvalidParams{Context: "TestTypeInput"}
 20114  	if s.LogDeliveryBucket != nil && len(*s.LogDeliveryBucket) < 3 {
 20115  		invalidParams.Add(request.NewErrParamMinLen("LogDeliveryBucket", 3))
 20116  	}
 20117  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 20118  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 20119  	}
 20120  	if s.VersionId != nil && len(*s.VersionId) < 1 {
 20121  		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
 20122  	}
 20123  
 20124  	if invalidParams.Len() > 0 {
 20125  		return invalidParams
 20126  	}
 20127  	return nil
 20128  }
 20129  
 20130  // SetArn sets the Arn field's value.
 20131  func (s *TestTypeInput) SetArn(v string) *TestTypeInput {
 20132  	s.Arn = &v
 20133  	return s
 20134  }
 20135  
 20136  // SetLogDeliveryBucket sets the LogDeliveryBucket field's value.
 20137  func (s *TestTypeInput) SetLogDeliveryBucket(v string) *TestTypeInput {
 20138  	s.LogDeliveryBucket = &v
 20139  	return s
 20140  }
 20141  
 20142  // SetType sets the Type field's value.
 20143  func (s *TestTypeInput) SetType(v string) *TestTypeInput {
 20144  	s.Type = &v
 20145  	return s
 20146  }
 20147  
 20148  // SetTypeName sets the TypeName field's value.
 20149  func (s *TestTypeInput) SetTypeName(v string) *TestTypeInput {
 20150  	s.TypeName = &v
 20151  	return s
 20152  }
 20153  
 20154  // SetVersionId sets the VersionId field's value.
 20155  func (s *TestTypeInput) SetVersionId(v string) *TestTypeInput {
 20156  	s.VersionId = &v
 20157  	return s
 20158  }
 20159  
 20160  type TestTypeOutput struct {
 20161  	_ struct{} `type:"structure"`
 20162  
 20163  	// The Amazon Resource Number (ARN) of the extension.
 20164  	TypeVersionArn *string `type:"string"`
 20165  }
 20166  
 20167  // String returns the string representation.
 20168  //
 20169  // API parameter values that are decorated as "sensitive" in the API will not
 20170  // be included in the string output. The member name will be present, but the
 20171  // value will be replaced with "sensitive".
 20172  func (s TestTypeOutput) String() string {
 20173  	return awsutil.Prettify(s)
 20174  }
 20175  
 20176  // GoString returns the string representation.
 20177  //
 20178  // API parameter values that are decorated as "sensitive" in the API will not
 20179  // be included in the string output. The member name will be present, but the
 20180  // value will be replaced with "sensitive".
 20181  func (s TestTypeOutput) GoString() string {
 20182  	return s.String()
 20183  }
 20184  
 20185  // SetTypeVersionArn sets the TypeVersionArn field's value.
 20186  func (s *TestTypeOutput) SetTypeVersionArn(v string) *TestTypeOutput {
 20187  	s.TypeVersionArn = &v
 20188  	return s
 20189  }
 20190  
 20191  // Detailed information concerning the specification of a CloudFormation extension
 20192  // in a given account and region.
 20193  //
 20194  // For more information, see Configuring extensions at the account level (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-register.html#registry-set-configuration)
 20195  // in the CloudFormation User Guide.
 20196  type TypeConfigurationDetails struct {
 20197  	_ struct{} `type:"structure"`
 20198  
 20199  	// The alias specified for this configuration, if one was specified when the
 20200  	// configuration was set.
 20201  	Alias *string `min:"1" type:"string"`
 20202  
 20203  	// The Amazon Resource Name (ARN) for the configuration data, in this account
 20204  	// and region.
 20205  	Arn *string `type:"string"`
 20206  
 20207  	// A JSON string specifying the configuration data for the extension, in this
 20208  	// account and region.
 20209  	//
 20210  	// If a configuration has not been set for a specified extension, CloudFormation
 20211  	// returns {}.
 20212  	Configuration *string `min:"1" type:"string"`
 20213  
 20214  	// Whether or not this configuration data is the default configuration for the
 20215  	// extension.
 20216  	IsDefaultConfiguration *bool `type:"boolean"`
 20217  
 20218  	// When the configuration data was last updated for this extension.
 20219  	//
 20220  	// If a configuration has not been set for a specified extension, CloudFormation
 20221  	// returns null.
 20222  	LastUpdated *time.Time `type:"timestamp"`
 20223  
 20224  	// The Amazon Resource Name (ARN) for the extension, in this account and region.
 20225  	//
 20226  	// For public extensions, this will be the ARN assigned when you activate the
 20227  	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
 20228  	// in this account and region. For private extensions, this will be the ARN
 20229  	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
 20230  	// in this account and region.
 20231  	TypeArn *string `type:"string"`
 20232  
 20233  	// The name of the extension.
 20234  	TypeName *string `min:"10" type:"string"`
 20235  }
 20236  
 20237  // String returns the string representation.
 20238  //
 20239  // API parameter values that are decorated as "sensitive" in the API will not
 20240  // be included in the string output. The member name will be present, but the
 20241  // value will be replaced with "sensitive".
 20242  func (s TypeConfigurationDetails) String() string {
 20243  	return awsutil.Prettify(s)
 20244  }
 20245  
 20246  // GoString returns the string representation.
 20247  //
 20248  // API parameter values that are decorated as "sensitive" in the API will not
 20249  // be included in the string output. The member name will be present, but the
 20250  // value will be replaced with "sensitive".
 20251  func (s TypeConfigurationDetails) GoString() string {
 20252  	return s.String()
 20253  }
 20254  
 20255  // SetAlias sets the Alias field's value.
 20256  func (s *TypeConfigurationDetails) SetAlias(v string) *TypeConfigurationDetails {
 20257  	s.Alias = &v
 20258  	return s
 20259  }
 20260  
 20261  // SetArn sets the Arn field's value.
 20262  func (s *TypeConfigurationDetails) SetArn(v string) *TypeConfigurationDetails {
 20263  	s.Arn = &v
 20264  	return s
 20265  }
 20266  
 20267  // SetConfiguration sets the Configuration field's value.
 20268  func (s *TypeConfigurationDetails) SetConfiguration(v string) *TypeConfigurationDetails {
 20269  	s.Configuration = &v
 20270  	return s
 20271  }
 20272  
 20273  // SetIsDefaultConfiguration sets the IsDefaultConfiguration field's value.
 20274  func (s *TypeConfigurationDetails) SetIsDefaultConfiguration(v bool) *TypeConfigurationDetails {
 20275  	s.IsDefaultConfiguration = &v
 20276  	return s
 20277  }
 20278  
 20279  // SetLastUpdated sets the LastUpdated field's value.
 20280  func (s *TypeConfigurationDetails) SetLastUpdated(v time.Time) *TypeConfigurationDetails {
 20281  	s.LastUpdated = &v
 20282  	return s
 20283  }
 20284  
 20285  // SetTypeArn sets the TypeArn field's value.
 20286  func (s *TypeConfigurationDetails) SetTypeArn(v string) *TypeConfigurationDetails {
 20287  	s.TypeArn = &v
 20288  	return s
 20289  }
 20290  
 20291  // SetTypeName sets the TypeName field's value.
 20292  func (s *TypeConfigurationDetails) SetTypeName(v string) *TypeConfigurationDetails {
 20293  	s.TypeName = &v
 20294  	return s
 20295  }
 20296  
 20297  // Identifying information for the configuration of a CloudFormation extension.
 20298  type TypeConfigurationIdentifier struct {
 20299  	_ struct{} `type:"structure"`
 20300  
 20301  	// The type of extension.
 20302  	Type *string `type:"string" enum:"ThirdPartyType"`
 20303  
 20304  	// The Amazon Resource Name (ARN) for the extension, in this account and region.
 20305  	//
 20306  	// For public extensions, this will be the ARN assigned when you activate the
 20307  	// type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
 20308  	// in this account and region. For private extensions, this will be the ARN
 20309  	// assigned when you register the type (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)
 20310  	// in this account and region.
 20311  	TypeArn *string `type:"string"`
 20312  
 20313  	// The alias specified for this configuration, if one was specified when the
 20314  	// configuration was set.
 20315  	TypeConfigurationAlias *string `min:"1" type:"string"`
 20316  
 20317  	// The Amazon Resource Name (ARN) for the configuration, in this account and
 20318  	// region.
 20319  	TypeConfigurationArn *string `type:"string"`
 20320  
 20321  	// The name of the extension type to which this configuration applies.
 20322  	TypeName *string `min:"10" type:"string"`
 20323  }
 20324  
 20325  // String returns the string representation.
 20326  //
 20327  // API parameter values that are decorated as "sensitive" in the API will not
 20328  // be included in the string output. The member name will be present, but the
 20329  // value will be replaced with "sensitive".
 20330  func (s TypeConfigurationIdentifier) String() string {
 20331  	return awsutil.Prettify(s)
 20332  }
 20333  
 20334  // GoString returns the string representation.
 20335  //
 20336  // API parameter values that are decorated as "sensitive" in the API will not
 20337  // be included in the string output. The member name will be present, but the
 20338  // value will be replaced with "sensitive".
 20339  func (s TypeConfigurationIdentifier) GoString() string {
 20340  	return s.String()
 20341  }
 20342  
 20343  // Validate inspects the fields of the type to determine if they are valid.
 20344  func (s *TypeConfigurationIdentifier) Validate() error {
 20345  	invalidParams := request.ErrInvalidParams{Context: "TypeConfigurationIdentifier"}
 20346  	if s.TypeConfigurationAlias != nil && len(*s.TypeConfigurationAlias) < 1 {
 20347  		invalidParams.Add(request.NewErrParamMinLen("TypeConfigurationAlias", 1))
 20348  	}
 20349  	if s.TypeName != nil && len(*s.TypeName) < 10 {
 20350  		invalidParams.Add(request.NewErrParamMinLen("TypeName", 10))
 20351  	}
 20352  
 20353  	if invalidParams.Len() > 0 {
 20354  		return invalidParams
 20355  	}
 20356  	return nil
 20357  }
 20358  
 20359  // SetType sets the Type field's value.
 20360  func (s *TypeConfigurationIdentifier) SetType(v string) *TypeConfigurationIdentifier {
 20361  	s.Type = &v
 20362  	return s
 20363  }
 20364  
 20365  // SetTypeArn sets the TypeArn field's value.
 20366  func (s *TypeConfigurationIdentifier) SetTypeArn(v string) *TypeConfigurationIdentifier {
 20367  	s.TypeArn = &v
 20368  	return s
 20369  }
 20370  
 20371  // SetTypeConfigurationAlias sets the TypeConfigurationAlias field's value.
 20372  func (s *TypeConfigurationIdentifier) SetTypeConfigurationAlias(v string) *TypeConfigurationIdentifier {
 20373  	s.TypeConfigurationAlias = &v
 20374  	return s
 20375  }
 20376  
 20377  // SetTypeConfigurationArn sets the TypeConfigurationArn field's value.
 20378  func (s *TypeConfigurationIdentifier) SetTypeConfigurationArn(v string) *TypeConfigurationIdentifier {
 20379  	s.TypeConfigurationArn = &v
 20380  	return s
 20381  }
 20382  
 20383  // SetTypeName sets the TypeName field's value.
 20384  func (s *TypeConfigurationIdentifier) SetTypeName(v string) *TypeConfigurationIdentifier {
 20385  	s.TypeName = &v
 20386  	return s
 20387  }
 20388  
 20389  // Filter criteria to use in determining which extensions to return.
 20390  type TypeFilters struct {
 20391  	_ struct{} `type:"structure"`
 20392  
 20393  	// The category of extensions to return.
 20394  	//
 20395  	//    * REGISTERED: Private extensions that have been registered for this account
 20396  	//    and region.
 20397  	//
 20398  	//    * ACTIVATED: Public extensions that have been activated for this account
 20399  	//    and region.
 20400  	//
 20401  	//    * THIRD-PARTY: Extensions available for use from publishers other than
 20402  	//    Amazon. This includes: Private extensions registered in the account. Public
 20403  	//    extensions from publishers other than Amazon, whether activated or not.
 20404  	//
 20405  	//    * AWS-TYPES: Extensions available for use from Amazon.
 20406  	Category *string `type:"string" enum:"Category"`
 20407  
 20408  	// The id of the publisher of the extension.
 20409  	//
 20410  	// Extensions published by Amazon are not assigned a publisher ID. Use the AWS-TYPES
 20411  	// category to specify a list of types published by Amazon.
 20412  	PublisherId *string `min:"1" type:"string"`
 20413  
 20414  	// A prefix to use as a filter for results.
 20415  	TypeNamePrefix *string `min:"1" type:"string"`
 20416  }
 20417  
 20418  // String returns the string representation.
 20419  //
 20420  // API parameter values that are decorated as "sensitive" in the API will not
 20421  // be included in the string output. The member name will be present, but the
 20422  // value will be replaced with "sensitive".
 20423  func (s TypeFilters) String() string {
 20424  	return awsutil.Prettify(s)
 20425  }
 20426  
 20427  // GoString returns the string representation.
 20428  //
 20429  // API parameter values that are decorated as "sensitive" in the API will not
 20430  // be included in the string output. The member name will be present, but the
 20431  // value will be replaced with "sensitive".
 20432  func (s TypeFilters) GoString() string {
 20433  	return s.String()
 20434  }
 20435  
 20436  // Validate inspects the fields of the type to determine if they are valid.
 20437  func (s *TypeFilters) Validate() error {
 20438  	invalidParams := request.ErrInvalidParams{Context: "TypeFilters"}
 20439  	if s.PublisherId != nil && len(*s.PublisherId) < 1 {
 20440  		invalidParams.Add(request.NewErrParamMinLen("PublisherId", 1))
 20441  	}
 20442  	if s.TypeNamePrefix != nil && len(*s.TypeNamePrefix) < 1 {
 20443  		invalidParams.Add(request.NewErrParamMinLen("TypeNamePrefix", 1))
 20444  	}
 20445  
 20446  	if invalidParams.Len() > 0 {
 20447  		return invalidParams
 20448  	}
 20449  	return nil
 20450  }
 20451  
 20452  // SetCategory sets the Category field's value.
 20453  func (s *TypeFilters) SetCategory(v string) *TypeFilters {
 20454  	s.Category = &v
 20455  	return s
 20456  }
 20457  
 20458  // SetPublisherId sets the PublisherId field's value.
 20459  func (s *TypeFilters) SetPublisherId(v string) *TypeFilters {
 20460  	s.PublisherId = &v
 20461  	return s
 20462  }
 20463  
 20464  // SetTypeNamePrefix sets the TypeNamePrefix field's value.
 20465  func (s *TypeFilters) SetTypeNamePrefix(v string) *TypeFilters {
 20466  	s.TypeNamePrefix = &v
 20467  	return s
 20468  }
 20469  
 20470  // Contains summary information about the specified CloudFormation extension.
 20471  type TypeSummary struct {
 20472  	_ struct{} `type:"structure"`
 20473  
 20474  	// The ID of the default version of the extension. The default version is used
 20475  	// when the extension version is not specified.
 20476  	//
 20477  	// This applies only to private extensions you have registered in your account.
 20478  	// For public extensions, both those provided by Amazon and published by third
 20479  	// parties, CloudFormation returns null. For more information, see RegisterType
 20480  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
 20481  	//
 20482  	// To set the default version of an extension, use SetTypeDefaultVersion .
 20483  	DefaultVersionId *string `min:"1" type:"string"`
 20484  
 20485  	// The description of the extension.
 20486  	Description *string `min:"1" type:"string"`
 20487  
 20488  	// Whether or not the extension is activated for this account and region.
 20489  	//
 20490  	// This applies only to third-party public extensions. Extensions published
 20491  	// by Amazon are activated by default.
 20492  	IsActivated *bool `type:"boolean"`
 20493  
 20494  	// When the specified extension version was registered. This applies only to:
 20495  	//
 20496  	//    * Private extensions you have registered in your account. For more information,
 20497  	//    see RegisterType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html).
 20498  	//
 20499  	//    * Public extensions you have activated in your account with auto-update
 20500  	//    specified. For more information, see ActivateType (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html).
 20501  	//
 20502  	// For all other extension types, CloudFormation returns null.
 20503  	LastUpdated *time.Time `type:"timestamp"`
 20504  
 20505  	// For public extensions that have been activated for this account and region,
 20506  	// the latest version of the public extension that is available. For any extensions
 20507  	// other than activated third-arty extensions, CloudFormation returns null.
 20508  	//
 20509  	// How you specified AutoUpdate when enabling the extension affects whether
 20510  	// CloudFormation automatically updates the extention in this account and region
 20511  	// when a new version is released. For more information, see Setting CloudFormation
 20512  	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
 20513  	// in the CloudFormation User Guide.
 20514  	LatestPublicVersion *string `min:"5" type:"string"`
 20515  
 20516  	// For public extensions that have been activated for this account and region,
 20517  	// the type name of the public extension.
 20518  	//
 20519  	// If you specified a TypeNameAlias when enabling the extension in this account
 20520  	// and region, CloudFormation treats that alias as the extension's type name
 20521  	// within the account and region, not the type name of the public extension.
 20522  	// For more information, see Specifying aliases to refer to extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-alias)
 20523  	// in the CloudFormation User Guide.
 20524  	OriginalTypeName *string `min:"10" type:"string"`
 20525  
 20526  	// For public extensions that have been activated for this account and region,
 20527  	// the version of the public extension to be used for CloudFormation operations
 20528  	// in this account and region.
 20529  	//
 20530  	// How you specified AutoUpdate when enabling the extension affects whether
 20531  	// CloudFormation automatically updates the extention in this account and region
 20532  	// when a new version is released. For more information, see Setting CloudFormation
 20533  	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
 20534  	// in the CloudFormation User Guide.
 20535  	PublicVersionNumber *string `min:"5" type:"string"`
 20536  
 20537  	// The ID of the extension publisher, if the extension is published by a third
 20538  	// party. Extensions published by Amazon do not return a publisher ID.
 20539  	PublisherId *string `min:"1" type:"string"`
 20540  
 20541  	// The service used to verify the publisher identity.
 20542  	//
 20543  	// For more information, see Registering your account to publish CloudFormation
 20544  	// extensions (https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/publish-extension.html)
 20545  	// in the CFN-CLI User Guide for Extension Development.
 20546  	PublisherIdentity *string `type:"string" enum:"IdentityProvider"`
 20547  
 20548  	// The publisher name, as defined in the public profile for that publisher in
 20549  	// the service used to verify the publisher identity.
 20550  	PublisherName *string `min:"1" type:"string"`
 20551  
 20552  	// The kind of extension.
 20553  	Type *string `type:"string" enum:"RegistryType"`
 20554  
 20555  	// The Amazon Resource Name (ARN) of the extension.
 20556  	TypeArn *string `type:"string"`
 20557  
 20558  	// The name of the extension.
 20559  	//
 20560  	// If you specified a TypeNameAlias when you activate this extension (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateType.html)
 20561  	// in your account and region, CloudFormation considers that alias as the type
 20562  	// name.
 20563  	TypeName *string `min:"10" type:"string"`
 20564  }
 20565  
 20566  // String returns the string representation.
 20567  //
 20568  // API parameter values that are decorated as "sensitive" in the API will not
 20569  // be included in the string output. The member name will be present, but the
 20570  // value will be replaced with "sensitive".
 20571  func (s TypeSummary) String() string {
 20572  	return awsutil.Prettify(s)
 20573  }
 20574  
 20575  // GoString returns the string representation.
 20576  //
 20577  // API parameter values that are decorated as "sensitive" in the API will not
 20578  // be included in the string output. The member name will be present, but the
 20579  // value will be replaced with "sensitive".
 20580  func (s TypeSummary) GoString() string {
 20581  	return s.String()
 20582  }
 20583  
 20584  // SetDefaultVersionId sets the DefaultVersionId field's value.
 20585  func (s *TypeSummary) SetDefaultVersionId(v string) *TypeSummary {
 20586  	s.DefaultVersionId = &v
 20587  	return s
 20588  }
 20589  
 20590  // SetDescription sets the Description field's value.
 20591  func (s *TypeSummary) SetDescription(v string) *TypeSummary {
 20592  	s.Description = &v
 20593  	return s
 20594  }
 20595  
 20596  // SetIsActivated sets the IsActivated field's value.
 20597  func (s *TypeSummary) SetIsActivated(v bool) *TypeSummary {
 20598  	s.IsActivated = &v
 20599  	return s
 20600  }
 20601  
 20602  // SetLastUpdated sets the LastUpdated field's value.
 20603  func (s *TypeSummary) SetLastUpdated(v time.Time) *TypeSummary {
 20604  	s.LastUpdated = &v
 20605  	return s
 20606  }
 20607  
 20608  // SetLatestPublicVersion sets the LatestPublicVersion field's value.
 20609  func (s *TypeSummary) SetLatestPublicVersion(v string) *TypeSummary {
 20610  	s.LatestPublicVersion = &v
 20611  	return s
 20612  }
 20613  
 20614  // SetOriginalTypeName sets the OriginalTypeName field's value.
 20615  func (s *TypeSummary) SetOriginalTypeName(v string) *TypeSummary {
 20616  	s.OriginalTypeName = &v
 20617  	return s
 20618  }
 20619  
 20620  // SetPublicVersionNumber sets the PublicVersionNumber field's value.
 20621  func (s *TypeSummary) SetPublicVersionNumber(v string) *TypeSummary {
 20622  	s.PublicVersionNumber = &v
 20623  	return s
 20624  }
 20625  
 20626  // SetPublisherId sets the PublisherId field's value.
 20627  func (s *TypeSummary) SetPublisherId(v string) *TypeSummary {
 20628  	s.PublisherId = &v
 20629  	return s
 20630  }
 20631  
 20632  // SetPublisherIdentity sets the PublisherIdentity field's value.
 20633  func (s *TypeSummary) SetPublisherIdentity(v string) *TypeSummary {
 20634  	s.PublisherIdentity = &v
 20635  	return s
 20636  }
 20637  
 20638  // SetPublisherName sets the PublisherName field's value.
 20639  func (s *TypeSummary) SetPublisherName(v string) *TypeSummary {
 20640  	s.PublisherName = &v
 20641  	return s
 20642  }
 20643  
 20644  // SetType sets the Type field's value.
 20645  func (s *TypeSummary) SetType(v string) *TypeSummary {
 20646  	s.Type = &v
 20647  	return s
 20648  }
 20649  
 20650  // SetTypeArn sets the TypeArn field's value.
 20651  func (s *TypeSummary) SetTypeArn(v string) *TypeSummary {
 20652  	s.TypeArn = &v
 20653  	return s
 20654  }
 20655  
 20656  // SetTypeName sets the TypeName field's value.
 20657  func (s *TypeSummary) SetTypeName(v string) *TypeSummary {
 20658  	s.TypeName = &v
 20659  	return s
 20660  }
 20661  
 20662  // Contains summary information about a specific version of a CloudFormation
 20663  // extension.
 20664  type TypeVersionSummary struct {
 20665  	_ struct{} `type:"structure"`
 20666  
 20667  	// The Amazon Resource Name (ARN) of the extension version.
 20668  	Arn *string `type:"string"`
 20669  
 20670  	// The description of the extension version.
 20671  	Description *string `min:"1" type:"string"`
 20672  
 20673  	// Whether the specified extension version is set as the default version.
 20674  	//
 20675  	// This applies only to private extensions you have registered in your account,
 20676  	// and extensions published by Amazon. For public third-party extensions, whether
 20677  	// or not they are activated in your account, CloudFormation returns null.
 20678  	IsDefaultVersion *bool `type:"boolean"`
 20679  
 20680  	// For public extensions that have been activated for this account and region,
 20681  	// the version of the public extension to be used for CloudFormation operations
 20682  	// in this account and region. For any extensions other than activated third-arty
 20683  	// extensions, CloudFormation returns null.
 20684  	//
 20685  	// How you specified AutoUpdate when enabling the extension affects whether
 20686  	// CloudFormation automatically updates the extention in this account and region
 20687  	// when a new version is released. For more information, see Setting CloudFormation
 20688  	// to automatically use new versions of extensions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html#registry-public-enable-auto)
 20689  	// in the CloudFormation User Guide.
 20690  	PublicVersionNumber *string `min:"5" type:"string"`
 20691  
 20692  	// When the version was registered.
 20693  	TimeCreated *time.Time `type:"timestamp"`
 20694  
 20695  	// The kind of extension.
 20696  	Type *string `type:"string" enum:"RegistryType"`
 20697  
 20698  	// The name of the extension.
 20699  	TypeName *string `min:"10" type:"string"`
 20700  
 20701  	// The ID of a specific version of the extension. The version ID is the value
 20702  	// at the end of the Amazon Resource Name (ARN) assigned to the extension version
 20703  	// when it is registered.
 20704  	VersionId *string `min:"1" type:"string"`
 20705  }
 20706  
 20707  // String returns the string representation.
 20708  //
 20709  // API parameter values that are decorated as "sensitive" in the API will not
 20710  // be included in the string output. The member name will be present, but the
 20711  // value will be replaced with "sensitive".
 20712  func (s TypeVersionSummary) String() string {
 20713  	return awsutil.Prettify(s)
 20714  }
 20715  
 20716  // GoString returns the string representation.
 20717  //
 20718  // API parameter values that are decorated as "sensitive" in the API will not
 20719  // be included in the string output. The member name will be present, but the
 20720  // value will be replaced with "sensitive".
 20721  func (s TypeVersionSummary) GoString() string {
 20722  	return s.String()
 20723  }
 20724  
 20725  // SetArn sets the Arn field's value.
 20726  func (s *TypeVersionSummary) SetArn(v string) *TypeVersionSummary {
 20727  	s.Arn = &v
 20728  	return s
 20729  }
 20730  
 20731  // SetDescription sets the Description field's value.
 20732  func (s *TypeVersionSummary) SetDescription(v string) *TypeVersionSummary {
 20733  	s.Description = &v
 20734  	return s
 20735  }
 20736  
 20737  // SetIsDefaultVersion sets the IsDefaultVersion field's value.
 20738  func (s *TypeVersionSummary) SetIsDefaultVersion(v bool) *TypeVersionSummary {
 20739  	s.IsDefaultVersion = &v
 20740  	return s
 20741  }
 20742  
 20743  // SetPublicVersionNumber sets the PublicVersionNumber field's value.
 20744  func (s *TypeVersionSummary) SetPublicVersionNumber(v string) *TypeVersionSummary {
 20745  	s.PublicVersionNumber = &v
 20746  	return s
 20747  }
 20748  
 20749  // SetTimeCreated sets the TimeCreated field's value.
 20750  func (s *TypeVersionSummary) SetTimeCreated(v time.Time) *TypeVersionSummary {
 20751  	s.TimeCreated = &v
 20752  	return s
 20753  }
 20754  
 20755  // SetType sets the Type field's value.
 20756  func (s *TypeVersionSummary) SetType(v string) *TypeVersionSummary {
 20757  	s.Type = &v
 20758  	return s
 20759  }
 20760  
 20761  // SetTypeName sets the TypeName field's value.
 20762  func (s *TypeVersionSummary) SetTypeName(v string) *TypeVersionSummary {
 20763  	s.TypeName = &v
 20764  	return s
 20765  }
 20766  
 20767  // SetVersionId sets the VersionId field's value.
 20768  func (s *TypeVersionSummary) SetVersionId(v string) *TypeVersionSummary {
 20769  	s.VersionId = &v
 20770  	return s
 20771  }
 20772  
 20773  // The input for an UpdateStack action.
 20774  type UpdateStackInput struct {
 20775  	_ struct{} `type:"structure"`
 20776  
 20777  	// In some cases, you must explicitly acknowledge that your stack template contains
 20778  	// certain capabilities in order for CloudFormation to update the stack.
 20779  	//
 20780  	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
 20781  	//    resources that can affect permissions in your Amazon Web Services account;
 20782  	//    for example, by creating new Identity and Access Management (IAM) users.
 20783  	//    For those stacks, you must explicitly acknowledge this by specifying one
 20784  	//    of these capabilities. The following IAM resources require you to specify
 20785  	//    either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability. If you have
 20786  	//    IAM resources, you can specify either capability. If you have IAM resources
 20787  	//    with custom names, you must specify CAPABILITY_NAMED_IAM. If you don't
 20788  	//    specify either of these capabilities, CloudFormation returns an InsufficientCapabilities
 20789  	//    error. If your stack template contains these resources, we recommend that
 20790  	//    you review all permissions associated with them and edit their permissions
 20791  	//    if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
 20792  	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
 20793  	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
 20794  	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
 20795  	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
 20796  	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
 20797  	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
 20798  	//    For more information, see Acknowledging IAM Resources in CloudFormation
 20799  	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
 20800  	//
 20801  	//    * CAPABILITY_AUTO_EXPAND Some template contain macros. Macros perform
 20802  	//    custom processing on templates; this can include simple actions like find-and-replace
 20803  	//    operations, all the way to extensive transformations of entire templates.
 20804  	//    Because of this, users typically create a change set from the processed
 20805  	//    template, so that they can review the changes resulting from the macros
 20806  	//    before actually updating the stack. If your stack template contains one
 20807  	//    or more macros, and you choose to update a stack directly from the processed
 20808  	//    template, without first reviewing the resulting changes in a change set,
 20809  	//    you must acknowledge this capability. This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
 20810  	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
 20811  	//    transforms, which are macros hosted by CloudFormation. If you want to
 20812  	//    update a stack from a stack template that contains macros and nested stacks,
 20813  	//    you must update the stack directly from the template using this capability.
 20814  	//    You should only update stacks directly from a stack template that contains
 20815  	//    macros if you know what processing the macro performs. Each macro relies
 20816  	//    on an underlying Lambda service function for processing stack templates.
 20817  	//    Be aware that the Lambda function owner can update the function operation
 20818  	//    without CloudFormation being notified. For more information, see Using
 20819  	//    CloudFormation Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
 20820  	Capabilities []*string `type:"list"`
 20821  
 20822  	// A unique identifier for this UpdateStack request. Specify this token if you
 20823  	// plan to retry requests so that CloudFormation knows that you're not attempting
 20824  	// to update a stack with the same name. You might retry UpdateStack requests
 20825  	// to ensure that CloudFormation successfully received them.
 20826  	//
 20827  	// All events triggered by a given stack operation are assigned the same client
 20828  	// request token, which you can use to track operations. For example, if you
 20829  	// execute a CreateStack operation with the token token1, then all the StackEvents
 20830  	// generated by that operation will have ClientRequestToken set as token1.
 20831  	//
 20832  	// In the console, stack operations display the client request token on the
 20833  	// Events tab. Stack operations that are initiated from the console use the
 20834  	// token format Console-StackOperation-ID, which helps you easily identify the
 20835  	// stack operation . For example, if you create a stack using the console, each
 20836  	// stack event would be assigned the same token in the following format: Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
 20837  	ClientRequestToken *string `min:"1" type:"string"`
 20838  
 20839  	// Preserve the state of previously provisioned resources when an operation
 20840  	// fails.
 20841  	//
 20842  	// Default: False
 20843  	DisableRollback *bool `type:"boolean"`
 20844  
 20845  	// Amazon Simple Notification Service topic Amazon Resource Names (ARNs) that
 20846  	// CloudFormation associates with the stack. Specify an empty list to remove
 20847  	// all notification topics.
 20848  	NotificationARNs []*string `type:"list"`
 20849  
 20850  	// A list of Parameter structures that specify input parameters for the stack.
 20851  	// For more information, see the Parameter (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)
 20852  	// data type.
 20853  	Parameters []*Parameter `type:"list"`
 20854  
 20855  	// The template resource types that you have permissions to work with for this
 20856  	// update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.
 20857  	//
 20858  	// If the list of resource types doesn't include a resource that you're updating,
 20859  	// the stack update fails. By default, CloudFormation grants permissions to
 20860  	// all resource types. Identity and Access Management (IAM) uses this parameter
 20861  	// for CloudFormation-specific condition keys in IAM policies. For more information,
 20862  	// see Controlling Access with Identity and Access Management (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
 20863  	ResourceTypes []*string `type:"list"`
 20864  
 20865  	// The Amazon Resource Name (ARN) of an Identity and Access Management (IAM)
 20866  	// role that CloudFormation assumes to update the stack. CloudFormation uses
 20867  	// the role's credentials to make calls on your behalf. CloudFormation always
 20868  	// uses this role for all future operations on the stack. As long as users have
 20869  	// permission to operate on the stack, CloudFormation uses this role even if
 20870  	// the users don't have permission to pass it. Ensure that the role grants least
 20871  	// privilege.
 20872  	//
 20873  	// If you don't specify a value, CloudFormation uses the role that was previously
 20874  	// associated with the stack. If no role is available, CloudFormation uses a
 20875  	// temporary session that is generated from your user credentials.
 20876  	RoleARN *string `min:"20" type:"string"`
 20877  
 20878  	// The rollback triggers for CloudFormation to monitor during stack creation
 20879  	// and updating operations, and for the specified monitoring period afterwards.
 20880  	RollbackConfiguration *RollbackConfiguration `type:"structure"`
 20881  
 20882  	// The name or unique stack ID of the stack to update.
 20883  	//
 20884  	// StackName is a required field
 20885  	StackName *string `type:"string" required:"true"`
 20886  
 20887  	// Structure containing a new stack policy body. You can specify either the
 20888  	// StackPolicyBody or the StackPolicyURL parameter, but not both.
 20889  	//
 20890  	// You might update the stack policy, for example, in order to protect a new
 20891  	// resource that you created during a stack update. If you do not specify a
 20892  	// stack policy, the current policy that is associated with the stack is unchanged.
 20893  	StackPolicyBody *string `min:"1" type:"string"`
 20894  
 20895  	// Structure containing the temporary overriding stack policy body. You can
 20896  	// specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL
 20897  	// parameter, but not both.
 20898  	//
 20899  	// If you want to update protected resources, specify a temporary overriding
 20900  	// stack policy during this update. If you do not specify a stack policy, the
 20901  	// current policy that is associated with the stack will be used.
 20902  	StackPolicyDuringUpdateBody *string `min:"1" type:"string"`
 20903  
 20904  	// Location of a file containing the temporary overriding stack policy. The
 20905  	// URL must point to a policy (max size: 16KB) located in an S3 bucket in the
 20906  	// same Region as the stack. You can specify either the StackPolicyDuringUpdateBody
 20907  	// or the StackPolicyDuringUpdateURL parameter, but not both.
 20908  	//
 20909  	// If you want to update protected resources, specify a temporary overriding
 20910  	// stack policy during this update. If you do not specify a stack policy, the
 20911  	// current policy that is associated with the stack will be used.
 20912  	StackPolicyDuringUpdateURL *string `min:"1" type:"string"`
 20913  
 20914  	// Location of a file containing the updated stack policy. The URL must point
 20915  	// to a policy (max size: 16KB) located in an S3 bucket in the same Region as
 20916  	// the stack. You can specify either the StackPolicyBody or the StackPolicyURL
 20917  	// parameter, but not both.
 20918  	//
 20919  	// You might update the stack policy, for example, in order to protect a new
 20920  	// resource that you created during a stack update. If you do not specify a
 20921  	// stack policy, the current policy that is associated with the stack is unchanged.
 20922  	StackPolicyURL *string `min:"1" type:"string"`
 20923  
 20924  	// Key-value pairs to associate with this stack. CloudFormation also propagates
 20925  	// these tags to supported resources in the stack. You can specify a maximum
 20926  	// number of 50 tags.
 20927  	//
 20928  	// If you don't specify this parameter, CloudFormation doesn't modify the stack's
 20929  	// tags. If you specify an empty value, CloudFormation removes all associated
 20930  	// tags.
 20931  	Tags []*Tag `type:"list"`
 20932  
 20933  	// Structure containing the template body with a minimum length of 1 byte and
 20934  	// a maximum length of 51,200 bytes. (For more information, go to Template Anatomy
 20935  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 20936  	// in the CloudFormation User Guide.)
 20937  	//
 20938  	// Conditional: You must specify only one of the following parameters: TemplateBody,
 20939  	// TemplateURL, or set the UsePreviousTemplate to true.
 20940  	TemplateBody *string `min:"1" type:"string"`
 20941  
 20942  	// Location of file containing the template body. The URL must point to a template
 20943  	// that is located in an Amazon S3 bucket or a Systems Manager document. For
 20944  	// more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 20945  	// in the CloudFormation User Guide.
 20946  	//
 20947  	// Conditional: You must specify only one of the following parameters: TemplateBody,
 20948  	// TemplateURL, or set the UsePreviousTemplate to true.
 20949  	TemplateURL *string `min:"1" type:"string"`
 20950  
 20951  	// Reuse the existing template that is associated with the stack that you are
 20952  	// updating.
 20953  	//
 20954  	// Conditional: You must specify only one of the following parameters: TemplateBody,
 20955  	// TemplateURL, or set the UsePreviousTemplate to true.
 20956  	UsePreviousTemplate *bool `type:"boolean"`
 20957  }
 20958  
 20959  // String returns the string representation.
 20960  //
 20961  // API parameter values that are decorated as "sensitive" in the API will not
 20962  // be included in the string output. The member name will be present, but the
 20963  // value will be replaced with "sensitive".
 20964  func (s UpdateStackInput) String() string {
 20965  	return awsutil.Prettify(s)
 20966  }
 20967  
 20968  // GoString returns the string representation.
 20969  //
 20970  // API parameter values that are decorated as "sensitive" in the API will not
 20971  // be included in the string output. The member name will be present, but the
 20972  // value will be replaced with "sensitive".
 20973  func (s UpdateStackInput) GoString() string {
 20974  	return s.String()
 20975  }
 20976  
 20977  // Validate inspects the fields of the type to determine if they are valid.
 20978  func (s *UpdateStackInput) Validate() error {
 20979  	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
 20980  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
 20981  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
 20982  	}
 20983  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
 20984  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
 20985  	}
 20986  	if s.StackName == nil {
 20987  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 20988  	}
 20989  	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
 20990  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
 20991  	}
 20992  	if s.StackPolicyDuringUpdateBody != nil && len(*s.StackPolicyDuringUpdateBody) < 1 {
 20993  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateBody", 1))
 20994  	}
 20995  	if s.StackPolicyDuringUpdateURL != nil && len(*s.StackPolicyDuringUpdateURL) < 1 {
 20996  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyDuringUpdateURL", 1))
 20997  	}
 20998  	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
 20999  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
 21000  	}
 21001  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
 21002  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
 21003  	}
 21004  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
 21005  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
 21006  	}
 21007  	if s.RollbackConfiguration != nil {
 21008  		if err := s.RollbackConfiguration.Validate(); err != nil {
 21009  			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
 21010  		}
 21011  	}
 21012  	if s.Tags != nil {
 21013  		for i, v := range s.Tags {
 21014  			if v == nil {
 21015  				continue
 21016  			}
 21017  			if err := v.Validate(); err != nil {
 21018  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 21019  			}
 21020  		}
 21021  	}
 21022  
 21023  	if invalidParams.Len() > 0 {
 21024  		return invalidParams
 21025  	}
 21026  	return nil
 21027  }
 21028  
 21029  // SetCapabilities sets the Capabilities field's value.
 21030  func (s *UpdateStackInput) SetCapabilities(v []*string) *UpdateStackInput {
 21031  	s.Capabilities = v
 21032  	return s
 21033  }
 21034  
 21035  // SetClientRequestToken sets the ClientRequestToken field's value.
 21036  func (s *UpdateStackInput) SetClientRequestToken(v string) *UpdateStackInput {
 21037  	s.ClientRequestToken = &v
 21038  	return s
 21039  }
 21040  
 21041  // SetDisableRollback sets the DisableRollback field's value.
 21042  func (s *UpdateStackInput) SetDisableRollback(v bool) *UpdateStackInput {
 21043  	s.DisableRollback = &v
 21044  	return s
 21045  }
 21046  
 21047  // SetNotificationARNs sets the NotificationARNs field's value.
 21048  func (s *UpdateStackInput) SetNotificationARNs(v []*string) *UpdateStackInput {
 21049  	s.NotificationARNs = v
 21050  	return s
 21051  }
 21052  
 21053  // SetParameters sets the Parameters field's value.
 21054  func (s *UpdateStackInput) SetParameters(v []*Parameter) *UpdateStackInput {
 21055  	s.Parameters = v
 21056  	return s
 21057  }
 21058  
 21059  // SetResourceTypes sets the ResourceTypes field's value.
 21060  func (s *UpdateStackInput) SetResourceTypes(v []*string) *UpdateStackInput {
 21061  	s.ResourceTypes = v
 21062  	return s
 21063  }
 21064  
 21065  // SetRoleARN sets the RoleARN field's value.
 21066  func (s *UpdateStackInput) SetRoleARN(v string) *UpdateStackInput {
 21067  	s.RoleARN = &v
 21068  	return s
 21069  }
 21070  
 21071  // SetRollbackConfiguration sets the RollbackConfiguration field's value.
 21072  func (s *UpdateStackInput) SetRollbackConfiguration(v *RollbackConfiguration) *UpdateStackInput {
 21073  	s.RollbackConfiguration = v
 21074  	return s
 21075  }
 21076  
 21077  // SetStackName sets the StackName field's value.
 21078  func (s *UpdateStackInput) SetStackName(v string) *UpdateStackInput {
 21079  	s.StackName = &v
 21080  	return s
 21081  }
 21082  
 21083  // SetStackPolicyBody sets the StackPolicyBody field's value.
 21084  func (s *UpdateStackInput) SetStackPolicyBody(v string) *UpdateStackInput {
 21085  	s.StackPolicyBody = &v
 21086  	return s
 21087  }
 21088  
 21089  // SetStackPolicyDuringUpdateBody sets the StackPolicyDuringUpdateBody field's value.
 21090  func (s *UpdateStackInput) SetStackPolicyDuringUpdateBody(v string) *UpdateStackInput {
 21091  	s.StackPolicyDuringUpdateBody = &v
 21092  	return s
 21093  }
 21094  
 21095  // SetStackPolicyDuringUpdateURL sets the StackPolicyDuringUpdateURL field's value.
 21096  func (s *UpdateStackInput) SetStackPolicyDuringUpdateURL(v string) *UpdateStackInput {
 21097  	s.StackPolicyDuringUpdateURL = &v
 21098  	return s
 21099  }
 21100  
 21101  // SetStackPolicyURL sets the StackPolicyURL field's value.
 21102  func (s *UpdateStackInput) SetStackPolicyURL(v string) *UpdateStackInput {
 21103  	s.StackPolicyURL = &v
 21104  	return s
 21105  }
 21106  
 21107  // SetTags sets the Tags field's value.
 21108  func (s *UpdateStackInput) SetTags(v []*Tag) *UpdateStackInput {
 21109  	s.Tags = v
 21110  	return s
 21111  }
 21112  
 21113  // SetTemplateBody sets the TemplateBody field's value.
 21114  func (s *UpdateStackInput) SetTemplateBody(v string) *UpdateStackInput {
 21115  	s.TemplateBody = &v
 21116  	return s
 21117  }
 21118  
 21119  // SetTemplateURL sets the TemplateURL field's value.
 21120  func (s *UpdateStackInput) SetTemplateURL(v string) *UpdateStackInput {
 21121  	s.TemplateURL = &v
 21122  	return s
 21123  }
 21124  
 21125  // SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
 21126  func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput {
 21127  	s.UsePreviousTemplate = &v
 21128  	return s
 21129  }
 21130  
 21131  type UpdateStackInstancesInput struct {
 21132  	_ struct{} `type:"structure"`
 21133  
 21134  	// [Self-managed permissions] The names of one or more Amazon Web Services accounts
 21135  	// for which you want to update parameter values for stack instances. The overridden
 21136  	// parameter values will be applied to all stack instances in the specified
 21137  	// accounts and Regions.
 21138  	//
 21139  	// You can specify Accounts or DeploymentTargets, but not both.
 21140  	Accounts []*string `type:"list"`
 21141  
 21142  	// [Service-managed permissions] Specifies whether you are acting as an account
 21143  	// administrator in the organization's management account or as a delegated
 21144  	// administrator in a member account.
 21145  	//
 21146  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 21147  	// permissions.
 21148  	//
 21149  	//    * If you are signed in to the management account, specify SELF.
 21150  	//
 21151  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 21152  	//    Your Amazon Web Services account must be registered as a delegated administrator
 21153  	//    in the management account. For more information, see Register a delegated
 21154  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 21155  	//    in the CloudFormation User Guide.
 21156  	CallAs *string `type:"string" enum:"CallAs"`
 21157  
 21158  	// [Service-managed permissions] The Organizations accounts for which you want
 21159  	// to update parameter values for stack instances. If your update targets OUs,
 21160  	// the overridden parameter values only apply to the accounts that are currently
 21161  	// in the target OUs and their child OUs. Accounts added to the target OUs and
 21162  	// their child OUs in the future won't use the overridden values.
 21163  	//
 21164  	// You can specify Accounts or DeploymentTargets, but not both.
 21165  	DeploymentTargets *DeploymentTargets `type:"structure"`
 21166  
 21167  	// The unique identifier for this stack set operation.
 21168  	//
 21169  	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
 21170  	// performs the stack set operation only once, even if you retry the request
 21171  	// multiple times. You might retry stack set operation requests to ensure that
 21172  	// CloudFormation successfully received them.
 21173  	//
 21174  	// If you don't specify an operation ID, the SDK generates one automatically.
 21175  	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
 21176  
 21177  	// Preferences for how CloudFormation performs this stack set operation.
 21178  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
 21179  
 21180  	// A list of input parameters whose values you want to update for the specified
 21181  	// stack instances.
 21182  	//
 21183  	// Any overridden parameter values will be applied to all stack instances in
 21184  	// the specified accounts and Regions. When specifying parameters and their
 21185  	// values, be aware of how CloudFormation sets parameter values during stack
 21186  	// instance update operations:
 21187  	//
 21188  	//    * To override the current value for a parameter, include the parameter
 21189  	//    and specify its value.
 21190  	//
 21191  	//    * To leave an overridden parameter set to its present value, include the
 21192  	//    parameter and specify UsePreviousValue as true. (You cannot specify both
 21193  	//    a value and set UsePreviousValue to true.)
 21194  	//
 21195  	//    * To set an overridden parameter back to the value specified in the stack
 21196  	//    set, specify a parameter list but do not include the parameter in the
 21197  	//    list.
 21198  	//
 21199  	//    * To leave all parameters set to their present values, do not specify
 21200  	//    this property at all.
 21201  	//
 21202  	// During stack set updates, any parameter values overridden for a stack instance
 21203  	// are not updated, but retain their overridden value.
 21204  	//
 21205  	// You can only override the parameter values that are specified in the stack
 21206  	// set; to add or delete a parameter itself, use UpdateStackSet to update the
 21207  	// stack set template. If you add a parameter to a template, before you can
 21208  	// override the parameter value specified in the stack set you must first use
 21209  	// UpdateStackSet (https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html)
 21210  	// to update all stack instances with the updated template and parameter value
 21211  	// specified in the stack set. Once a stack instance has been updated with the
 21212  	// new parameter, you can then override the parameter value using UpdateStackInstances.
 21213  	ParameterOverrides []*Parameter `type:"list"`
 21214  
 21215  	// The names of one or more Regions in which you want to update parameter values
 21216  	// for stack instances. The overridden parameter values will be applied to all
 21217  	// stack instances in the specified accounts and Regions.
 21218  	//
 21219  	// Regions is a required field
 21220  	Regions []*string `type:"list" required:"true"`
 21221  
 21222  	// The name or unique ID of the stack set associated with the stack instances.
 21223  	//
 21224  	// StackSetName is a required field
 21225  	StackSetName *string `type:"string" required:"true"`
 21226  }
 21227  
 21228  // String returns the string representation.
 21229  //
 21230  // API parameter values that are decorated as "sensitive" in the API will not
 21231  // be included in the string output. The member name will be present, but the
 21232  // value will be replaced with "sensitive".
 21233  func (s UpdateStackInstancesInput) String() string {
 21234  	return awsutil.Prettify(s)
 21235  }
 21236  
 21237  // GoString returns the string representation.
 21238  //
 21239  // API parameter values that are decorated as "sensitive" in the API will not
 21240  // be included in the string output. The member name will be present, but the
 21241  // value will be replaced with "sensitive".
 21242  func (s UpdateStackInstancesInput) GoString() string {
 21243  	return s.String()
 21244  }
 21245  
 21246  // Validate inspects the fields of the type to determine if they are valid.
 21247  func (s *UpdateStackInstancesInput) Validate() error {
 21248  	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInstancesInput"}
 21249  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 21250  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 21251  	}
 21252  	if s.Regions == nil {
 21253  		invalidParams.Add(request.NewErrParamRequired("Regions"))
 21254  	}
 21255  	if s.StackSetName == nil {
 21256  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 21257  	}
 21258  	if s.DeploymentTargets != nil {
 21259  		if err := s.DeploymentTargets.Validate(); err != nil {
 21260  			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
 21261  		}
 21262  	}
 21263  	if s.OperationPreferences != nil {
 21264  		if err := s.OperationPreferences.Validate(); err != nil {
 21265  			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
 21266  		}
 21267  	}
 21268  
 21269  	if invalidParams.Len() > 0 {
 21270  		return invalidParams
 21271  	}
 21272  	return nil
 21273  }
 21274  
 21275  // SetAccounts sets the Accounts field's value.
 21276  func (s *UpdateStackInstancesInput) SetAccounts(v []*string) *UpdateStackInstancesInput {
 21277  	s.Accounts = v
 21278  	return s
 21279  }
 21280  
 21281  // SetCallAs sets the CallAs field's value.
 21282  func (s *UpdateStackInstancesInput) SetCallAs(v string) *UpdateStackInstancesInput {
 21283  	s.CallAs = &v
 21284  	return s
 21285  }
 21286  
 21287  // SetDeploymentTargets sets the DeploymentTargets field's value.
 21288  func (s *UpdateStackInstancesInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackInstancesInput {
 21289  	s.DeploymentTargets = v
 21290  	return s
 21291  }
 21292  
 21293  // SetOperationId sets the OperationId field's value.
 21294  func (s *UpdateStackInstancesInput) SetOperationId(v string) *UpdateStackInstancesInput {
 21295  	s.OperationId = &v
 21296  	return s
 21297  }
 21298  
 21299  // SetOperationPreferences sets the OperationPreferences field's value.
 21300  func (s *UpdateStackInstancesInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackInstancesInput {
 21301  	s.OperationPreferences = v
 21302  	return s
 21303  }
 21304  
 21305  // SetParameterOverrides sets the ParameterOverrides field's value.
 21306  func (s *UpdateStackInstancesInput) SetParameterOverrides(v []*Parameter) *UpdateStackInstancesInput {
 21307  	s.ParameterOverrides = v
 21308  	return s
 21309  }
 21310  
 21311  // SetRegions sets the Regions field's value.
 21312  func (s *UpdateStackInstancesInput) SetRegions(v []*string) *UpdateStackInstancesInput {
 21313  	s.Regions = v
 21314  	return s
 21315  }
 21316  
 21317  // SetStackSetName sets the StackSetName field's value.
 21318  func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstancesInput {
 21319  	s.StackSetName = &v
 21320  	return s
 21321  }
 21322  
 21323  type UpdateStackInstancesOutput struct {
 21324  	_ struct{} `type:"structure"`
 21325  
 21326  	// The unique identifier for this stack set operation.
 21327  	OperationId *string `min:"1" type:"string"`
 21328  }
 21329  
 21330  // String returns the string representation.
 21331  //
 21332  // API parameter values that are decorated as "sensitive" in the API will not
 21333  // be included in the string output. The member name will be present, but the
 21334  // value will be replaced with "sensitive".
 21335  func (s UpdateStackInstancesOutput) String() string {
 21336  	return awsutil.Prettify(s)
 21337  }
 21338  
 21339  // GoString returns the string representation.
 21340  //
 21341  // API parameter values that are decorated as "sensitive" in the API will not
 21342  // be included in the string output. The member name will be present, but the
 21343  // value will be replaced with "sensitive".
 21344  func (s UpdateStackInstancesOutput) GoString() string {
 21345  	return s.String()
 21346  }
 21347  
 21348  // SetOperationId sets the OperationId field's value.
 21349  func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstancesOutput {
 21350  	s.OperationId = &v
 21351  	return s
 21352  }
 21353  
 21354  // The output for an UpdateStack action.
 21355  type UpdateStackOutput struct {
 21356  	_ struct{} `type:"structure"`
 21357  
 21358  	// Unique identifier of the stack.
 21359  	StackId *string `type:"string"`
 21360  }
 21361  
 21362  // String returns the string representation.
 21363  //
 21364  // API parameter values that are decorated as "sensitive" in the API will not
 21365  // be included in the string output. The member name will be present, but the
 21366  // value will be replaced with "sensitive".
 21367  func (s UpdateStackOutput) String() string {
 21368  	return awsutil.Prettify(s)
 21369  }
 21370  
 21371  // GoString returns the string representation.
 21372  //
 21373  // API parameter values that are decorated as "sensitive" in the API will not
 21374  // be included in the string output. The member name will be present, but the
 21375  // value will be replaced with "sensitive".
 21376  func (s UpdateStackOutput) GoString() string {
 21377  	return s.String()
 21378  }
 21379  
 21380  // SetStackId sets the StackId field's value.
 21381  func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput {
 21382  	s.StackId = &v
 21383  	return s
 21384  }
 21385  
 21386  type UpdateStackSetInput struct {
 21387  	_ struct{} `type:"structure"`
 21388  
 21389  	// [Self-managed permissions] The accounts in which to update associated stack
 21390  	// instances. If you specify accounts, you must also specify the Regions in
 21391  	// which to update stack set instances.
 21392  	//
 21393  	// To update all the stack instances associated with this stack set, do not
 21394  	// specify the Accounts or Regions properties.
 21395  	//
 21396  	// If the stack set update includes changes to the template (that is, if the
 21397  	// TemplateBody or TemplateURL properties are specified), or the Parameters
 21398  	// property, CloudFormation marks all stack instances with a status of OUTDATED
 21399  	// prior to updating the stack instances in the specified accounts and Regions.
 21400  	// If the stack set update does not include changes to the template or parameters,
 21401  	// CloudFormation updates the stack instances in the specified accounts and
 21402  	// Regions, while leaving all other stack instances with their existing stack
 21403  	// instance status.
 21404  	Accounts []*string `type:"list"`
 21405  
 21406  	// The Amazon Resource Number (ARN) of the IAM role to use to update this stack
 21407  	// set.
 21408  	//
 21409  	// Specify an IAM role only if you are using customized administrator roles
 21410  	// to control which users or groups can manage specific stack sets within the
 21411  	// same administrator account. For more information, see Granting Permissions
 21412  	// for Stack Set Operations (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)
 21413  	// in the CloudFormation User Guide.
 21414  	//
 21415  	// If you specified a customized administrator role when you created the stack
 21416  	// set, you must specify a customized administrator role, even if it is the
 21417  	// same customized administrator role used with this stack set previously.
 21418  	AdministrationRoleARN *string `min:"20" type:"string"`
 21419  
 21420  	// [Service-managed permissions] Describes whether StackSets automatically deploys
 21421  	// to Organizations accounts that are added to a target organization or organizational
 21422  	// unit (OU).
 21423  	//
 21424  	// If you specify AutoDeployment, do not specify DeploymentTargets or Regions.
 21425  	AutoDeployment *AutoDeployment `type:"structure"`
 21426  
 21427  	// [Service-managed permissions] Specifies whether you are acting as an account
 21428  	// administrator in the organization's management account or as a delegated
 21429  	// administrator in a member account.
 21430  	//
 21431  	// By default, SELF is specified. Use SELF for stack sets with self-managed
 21432  	// permissions.
 21433  	//
 21434  	//    * If you are signed in to the management account, specify SELF.
 21435  	//
 21436  	//    * If you are signed in to a delegated administrator account, specify DELEGATED_ADMIN.
 21437  	//    Your Amazon Web Services account must be registered as a delegated administrator
 21438  	//    in the management account. For more information, see Register a delegated
 21439  	//    administrator (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)
 21440  	//    in the CloudFormation User Guide.
 21441  	CallAs *string `type:"string" enum:"CallAs"`
 21442  
 21443  	// In some cases, you must explicitly acknowledge that your stack template contains
 21444  	// certain capabilities in order for CloudFormation to update the stack set
 21445  	// and its associated stack instances.
 21446  	//
 21447  	//    * CAPABILITY_IAM and CAPABILITY_NAMED_IAM Some stack templates might include
 21448  	//    resources that can affect permissions in your Amazon Web Services account;
 21449  	//    for example, by creating new Identity and Access Management (IAM) users.
 21450  	//    For those stacks sets, you must explicitly acknowledge this by specifying
 21451  	//    one of these capabilities. The following IAM resources require you to
 21452  	//    specify either the CAPABILITY_IAM or CAPABILITY_NAMED_IAM capability.
 21453  	//    If you have IAM resources, you can specify either capability. If you have
 21454  	//    IAM resources with custom names, you must specify CAPABILITY_NAMED_IAM.
 21455  	//    If you don't specify either of these capabilities, CloudFormation returns
 21456  	//    an InsufficientCapabilities error. If your stack template contains these
 21457  	//    resources, we recommend that you review all permissions associated with
 21458  	//    them and edit their permissions if necessary. AWS::IAM::AccessKey (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
 21459  	//    AWS::IAM::Group (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
 21460  	//    AWS::IAM::InstanceProfile (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
 21461  	//    AWS::IAM::Policy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
 21462  	//    AWS::IAM::Role (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
 21463  	//    AWS::IAM::User (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
 21464  	//    AWS::IAM::UserToGroupAddition (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
 21465  	//    For more information, see Acknowledging IAM Resources in CloudFormation
 21466  	//    Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
 21467  	//
 21468  	//    * CAPABILITY_AUTO_EXPAND Some templates reference macros. If your stack
 21469  	//    set template references one or more macros, you must update the stack
 21470  	//    set directly from the processed template, without first reviewing the
 21471  	//    resulting changes in a change set. To update the stack set directly, you
 21472  	//    must acknowledge this capability. For more information, see Using CloudFormation
 21473  	//    Macros to Perform Custom Processing on Templates (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).
 21474  	//    Stack sets with service-managed permissions do not currently support the
 21475  	//    use of macros in templates. (This includes the AWS::Include (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)
 21476  	//    and AWS::Serverless (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html)
 21477  	//    transforms, which are macros hosted by CloudFormation.) Even if you specify
 21478  	//    this capability for a stack set with service-managed permissions, if you
 21479  	//    reference a macro in your template the stack set operation will fail.
 21480  	Capabilities []*string `type:"list"`
 21481  
 21482  	// [Service-managed permissions] The Organizations accounts in which to update
 21483  	// associated stack instances.
 21484  	//
 21485  	// To update all the stack instances associated with this stack set, do not
 21486  	// specify DeploymentTargets or Regions.
 21487  	//
 21488  	// If the stack set update includes changes to the template (that is, if TemplateBody
 21489  	// or TemplateURL is specified), or the Parameters, CloudFormation marks all
 21490  	// stack instances with a status of OUTDATED prior to updating the stack instances
 21491  	// in the specified accounts and Regions. If the stack set update does not include
 21492  	// changes to the template or parameters, CloudFormation updates the stack instances
 21493  	// in the specified accounts and Regions, while leaving all other stack instances
 21494  	// with their existing stack instance status.
 21495  	DeploymentTargets *DeploymentTargets `type:"structure"`
 21496  
 21497  	// A brief description of updates that you are making.
 21498  	Description *string `min:"1" type:"string"`
 21499  
 21500  	// The name of the IAM execution role to use to update the stack set. If you
 21501  	// do not specify an execution role, CloudFormation uses the AWSCloudFormationStackSetExecutionRole
 21502  	// role for the stack set operation.
 21503  	//
 21504  	// Specify an IAM role only if you are using customized execution roles to control
 21505  	// which stack resources users and groups can include in their stack sets.
 21506  	//
 21507  	// If you specify a customized execution role, CloudFormation uses that role
 21508  	// to update the stack. If you do not specify a customized execution role, CloudFormation
 21509  	// performs the update using the role previously associated with the stack set,
 21510  	// so long as you have permissions to perform operations on the stack set.
 21511  	ExecutionRoleName *string `min:"1" type:"string"`
 21512  
 21513  	// The unique ID for this stack set operation.
 21514  	//
 21515  	// The operation ID also functions as an idempotency token, to ensure that CloudFormation
 21516  	// performs the stack set operation only once, even if you retry the request
 21517  	// multiple times. You might retry stack set operation requests to ensure that
 21518  	// CloudFormation successfully received them.
 21519  	//
 21520  	// If you don't specify an operation ID, CloudFormation generates one automatically.
 21521  	//
 21522  	// Repeating this stack set operation with a new operation ID retries all stack
 21523  	// instances whose status is OUTDATED.
 21524  	OperationId *string `min:"1" type:"string" idempotencyToken:"true"`
 21525  
 21526  	// Preferences for how CloudFormation performs this stack set operation.
 21527  	OperationPreferences *StackSetOperationPreferences `type:"structure"`
 21528  
 21529  	// A list of input parameters for the stack set template.
 21530  	Parameters []*Parameter `type:"list"`
 21531  
 21532  	// Describes how the IAM roles required for stack set operations are created.
 21533  	// You cannot modify PermissionModel if there are stack instances associated
 21534  	// with your stack set.
 21535  	//
 21536  	//    * With self-managed permissions, you must create the administrator and
 21537  	//    execution roles required to deploy to target accounts. For more information,
 21538  	//    see Grant Self-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html).
 21539  	//
 21540  	//    * With service-managed permissions, StackSets automatically creates the
 21541  	//    IAM roles required to deploy to accounts managed by Organizations. For
 21542  	//    more information, see Grant Service-Managed Stack Set Permissions (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html).
 21543  	PermissionModel *string `type:"string" enum:"PermissionModels"`
 21544  
 21545  	// The Regions in which to update associated stack instances. If you specify
 21546  	// Regions, you must also specify accounts in which to update stack set instances.
 21547  	//
 21548  	// To update all the stack instances associated with this stack set, do not
 21549  	// specify the Accounts or Regions properties.
 21550  	//
 21551  	// If the stack set update includes changes to the template (that is, if the
 21552  	// TemplateBody or TemplateURL properties are specified), or the Parameters
 21553  	// property, CloudFormation marks all stack instances with a status of OUTDATED
 21554  	// prior to updating the stack instances in the specified accounts and Regions.
 21555  	// If the stack set update does not include changes to the template or parameters,
 21556  	// CloudFormation updates the stack instances in the specified accounts and
 21557  	// Regions, while leaving all other stack instances with their existing stack
 21558  	// instance status.
 21559  	Regions []*string `type:"list"`
 21560  
 21561  	// The name or unique ID of the stack set that you want to update.
 21562  	//
 21563  	// StackSetName is a required field
 21564  	StackSetName *string `type:"string" required:"true"`
 21565  
 21566  	// The key-value pairs to associate with this stack set and the stacks created
 21567  	// from it. CloudFormation also propagates these tags to supported resources
 21568  	// that are created in the stacks. You can specify a maximum number of 50 tags.
 21569  	//
 21570  	// If you specify tags for this parameter, those tags replace any list of tags
 21571  	// that are currently associated with this stack set. This means:
 21572  	//
 21573  	//    * If you don't specify this parameter, CloudFormation doesn't modify the
 21574  	//    stack's tags.
 21575  	//
 21576  	//    * If you specify any tags using this parameter, you must specify all the
 21577  	//    tags that you want associated with this stack set, even tags you've specifed
 21578  	//    before (for example, when creating the stack set or during a previous
 21579  	//    update of the stack set.). Any tags that you don't include in the updated
 21580  	//    list of tags are removed from the stack set, and therefore from the stacks
 21581  	//    and resources as well.
 21582  	//
 21583  	//    * If you specify an empty value, CloudFormation removes all currently
 21584  	//    associated tags.
 21585  	//
 21586  	// If you specify new tags as part of an UpdateStackSet action, CloudFormation
 21587  	// checks to see if you have the required IAM permission to tag resources. If
 21588  	// you omit tags that are currently associated with the stack set from the list
 21589  	// of tags you specify, CloudFormation assumes that you want to remove those
 21590  	// tags from the stack set, and checks to see if you have permission to untag
 21591  	// resources. If you don't have the necessary permission(s), the entire UpdateStackSet
 21592  	// action fails with an access denied error, and the stack set is not updated.
 21593  	Tags []*Tag `type:"list"`
 21594  
 21595  	// The structure that contains the template body, with a minimum length of 1
 21596  	// byte and a maximum length of 51,200 bytes. For more information, see Template
 21597  	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 21598  	// in the CloudFormation User Guide.
 21599  	//
 21600  	// Conditional: You must specify only one of the following parameters: TemplateBody
 21601  	// or TemplateURL—or set UsePreviousTemplate to true.
 21602  	TemplateBody *string `min:"1" type:"string"`
 21603  
 21604  	// The location of the file that contains the template body. The URL must point
 21605  	// to a template (maximum size: 460,800 bytes) that is located in an Amazon
 21606  	// S3 bucket or a Systems Manager document. For more information, see Template
 21607  	// Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 21608  	// in the CloudFormation User Guide.
 21609  	//
 21610  	// Conditional: You must specify only one of the following parameters: TemplateBody
 21611  	// or TemplateURL—or set UsePreviousTemplate to true.
 21612  	TemplateURL *string `min:"1" type:"string"`
 21613  
 21614  	// Use the existing template that's associated with the stack set that you're
 21615  	// updating.
 21616  	//
 21617  	// Conditional: You must specify only one of the following parameters: TemplateBody
 21618  	// or TemplateURL—or set UsePreviousTemplate to true.
 21619  	UsePreviousTemplate *bool `type:"boolean"`
 21620  }
 21621  
 21622  // String returns the string representation.
 21623  //
 21624  // API parameter values that are decorated as "sensitive" in the API will not
 21625  // be included in the string output. The member name will be present, but the
 21626  // value will be replaced with "sensitive".
 21627  func (s UpdateStackSetInput) String() string {
 21628  	return awsutil.Prettify(s)
 21629  }
 21630  
 21631  // GoString returns the string representation.
 21632  //
 21633  // API parameter values that are decorated as "sensitive" in the API will not
 21634  // be included in the string output. The member name will be present, but the
 21635  // value will be replaced with "sensitive".
 21636  func (s UpdateStackSetInput) GoString() string {
 21637  	return s.String()
 21638  }
 21639  
 21640  // Validate inspects the fields of the type to determine if they are valid.
 21641  func (s *UpdateStackSetInput) Validate() error {
 21642  	invalidParams := request.ErrInvalidParams{Context: "UpdateStackSetInput"}
 21643  	if s.AdministrationRoleARN != nil && len(*s.AdministrationRoleARN) < 20 {
 21644  		invalidParams.Add(request.NewErrParamMinLen("AdministrationRoleARN", 20))
 21645  	}
 21646  	if s.Description != nil && len(*s.Description) < 1 {
 21647  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
 21648  	}
 21649  	if s.ExecutionRoleName != nil && len(*s.ExecutionRoleName) < 1 {
 21650  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleName", 1))
 21651  	}
 21652  	if s.OperationId != nil && len(*s.OperationId) < 1 {
 21653  		invalidParams.Add(request.NewErrParamMinLen("OperationId", 1))
 21654  	}
 21655  	if s.StackSetName == nil {
 21656  		invalidParams.Add(request.NewErrParamRequired("StackSetName"))
 21657  	}
 21658  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
 21659  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
 21660  	}
 21661  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
 21662  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
 21663  	}
 21664  	if s.DeploymentTargets != nil {
 21665  		if err := s.DeploymentTargets.Validate(); err != nil {
 21666  			invalidParams.AddNested("DeploymentTargets", err.(request.ErrInvalidParams))
 21667  		}
 21668  	}
 21669  	if s.OperationPreferences != nil {
 21670  		if err := s.OperationPreferences.Validate(); err != nil {
 21671  			invalidParams.AddNested("OperationPreferences", err.(request.ErrInvalidParams))
 21672  		}
 21673  	}
 21674  	if s.Tags != nil {
 21675  		for i, v := range s.Tags {
 21676  			if v == nil {
 21677  				continue
 21678  			}
 21679  			if err := v.Validate(); err != nil {
 21680  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 21681  			}
 21682  		}
 21683  	}
 21684  
 21685  	if invalidParams.Len() > 0 {
 21686  		return invalidParams
 21687  	}
 21688  	return nil
 21689  }
 21690  
 21691  // SetAccounts sets the Accounts field's value.
 21692  func (s *UpdateStackSetInput) SetAccounts(v []*string) *UpdateStackSetInput {
 21693  	s.Accounts = v
 21694  	return s
 21695  }
 21696  
 21697  // SetAdministrationRoleARN sets the AdministrationRoleARN field's value.
 21698  func (s *UpdateStackSetInput) SetAdministrationRoleARN(v string) *UpdateStackSetInput {
 21699  	s.AdministrationRoleARN = &v
 21700  	return s
 21701  }
 21702  
 21703  // SetAutoDeployment sets the AutoDeployment field's value.
 21704  func (s *UpdateStackSetInput) SetAutoDeployment(v *AutoDeployment) *UpdateStackSetInput {
 21705  	s.AutoDeployment = v
 21706  	return s
 21707  }
 21708  
 21709  // SetCallAs sets the CallAs field's value.
 21710  func (s *UpdateStackSetInput) SetCallAs(v string) *UpdateStackSetInput {
 21711  	s.CallAs = &v
 21712  	return s
 21713  }
 21714  
 21715  // SetCapabilities sets the Capabilities field's value.
 21716  func (s *UpdateStackSetInput) SetCapabilities(v []*string) *UpdateStackSetInput {
 21717  	s.Capabilities = v
 21718  	return s
 21719  }
 21720  
 21721  // SetDeploymentTargets sets the DeploymentTargets field's value.
 21722  func (s *UpdateStackSetInput) SetDeploymentTargets(v *DeploymentTargets) *UpdateStackSetInput {
 21723  	s.DeploymentTargets = v
 21724  	return s
 21725  }
 21726  
 21727  // SetDescription sets the Description field's value.
 21728  func (s *UpdateStackSetInput) SetDescription(v string) *UpdateStackSetInput {
 21729  	s.Description = &v
 21730  	return s
 21731  }
 21732  
 21733  // SetExecutionRoleName sets the ExecutionRoleName field's value.
 21734  func (s *UpdateStackSetInput) SetExecutionRoleName(v string) *UpdateStackSetInput {
 21735  	s.ExecutionRoleName = &v
 21736  	return s
 21737  }
 21738  
 21739  // SetOperationId sets the OperationId field's value.
 21740  func (s *UpdateStackSetInput) SetOperationId(v string) *UpdateStackSetInput {
 21741  	s.OperationId = &v
 21742  	return s
 21743  }
 21744  
 21745  // SetOperationPreferences sets the OperationPreferences field's value.
 21746  func (s *UpdateStackSetInput) SetOperationPreferences(v *StackSetOperationPreferences) *UpdateStackSetInput {
 21747  	s.OperationPreferences = v
 21748  	return s
 21749  }
 21750  
 21751  // SetParameters sets the Parameters field's value.
 21752  func (s *UpdateStackSetInput) SetParameters(v []*Parameter) *UpdateStackSetInput {
 21753  	s.Parameters = v
 21754  	return s
 21755  }
 21756  
 21757  // SetPermissionModel sets the PermissionModel field's value.
 21758  func (s *UpdateStackSetInput) SetPermissionModel(v string) *UpdateStackSetInput {
 21759  	s.PermissionModel = &v
 21760  	return s
 21761  }
 21762  
 21763  // SetRegions sets the Regions field's value.
 21764  func (s *UpdateStackSetInput) SetRegions(v []*string) *UpdateStackSetInput {
 21765  	s.Regions = v
 21766  	return s
 21767  }
 21768  
 21769  // SetStackSetName sets the StackSetName field's value.
 21770  func (s *UpdateStackSetInput) SetStackSetName(v string) *UpdateStackSetInput {
 21771  	s.StackSetName = &v
 21772  	return s
 21773  }
 21774  
 21775  // SetTags sets the Tags field's value.
 21776  func (s *UpdateStackSetInput) SetTags(v []*Tag) *UpdateStackSetInput {
 21777  	s.Tags = v
 21778  	return s
 21779  }
 21780  
 21781  // SetTemplateBody sets the TemplateBody field's value.
 21782  func (s *UpdateStackSetInput) SetTemplateBody(v string) *UpdateStackSetInput {
 21783  	s.TemplateBody = &v
 21784  	return s
 21785  }
 21786  
 21787  // SetTemplateURL sets the TemplateURL field's value.
 21788  func (s *UpdateStackSetInput) SetTemplateURL(v string) *UpdateStackSetInput {
 21789  	s.TemplateURL = &v
 21790  	return s
 21791  }
 21792  
 21793  // SetUsePreviousTemplate sets the UsePreviousTemplate field's value.
 21794  func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInput {
 21795  	s.UsePreviousTemplate = &v
 21796  	return s
 21797  }
 21798  
 21799  type UpdateStackSetOutput struct {
 21800  	_ struct{} `type:"structure"`
 21801  
 21802  	// The unique ID for this stack set operation.
 21803  	OperationId *string `min:"1" type:"string"`
 21804  }
 21805  
 21806  // String returns the string representation.
 21807  //
 21808  // API parameter values that are decorated as "sensitive" in the API will not
 21809  // be included in the string output. The member name will be present, but the
 21810  // value will be replaced with "sensitive".
 21811  func (s UpdateStackSetOutput) String() string {
 21812  	return awsutil.Prettify(s)
 21813  }
 21814  
 21815  // GoString returns the string representation.
 21816  //
 21817  // API parameter values that are decorated as "sensitive" in the API will not
 21818  // be included in the string output. The member name will be present, but the
 21819  // value will be replaced with "sensitive".
 21820  func (s UpdateStackSetOutput) GoString() string {
 21821  	return s.String()
 21822  }
 21823  
 21824  // SetOperationId sets the OperationId field's value.
 21825  func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput {
 21826  	s.OperationId = &v
 21827  	return s
 21828  }
 21829  
 21830  type UpdateTerminationProtectionInput struct {
 21831  	_ struct{} `type:"structure"`
 21832  
 21833  	// Whether to enable termination protection on the specified stack.
 21834  	//
 21835  	// EnableTerminationProtection is a required field
 21836  	EnableTerminationProtection *bool `type:"boolean" required:"true"`
 21837  
 21838  	// The name or unique ID of the stack for which you want to set termination
 21839  	// protection.
 21840  	//
 21841  	// StackName is a required field
 21842  	StackName *string `min:"1" type:"string" required:"true"`
 21843  }
 21844  
 21845  // String returns the string representation.
 21846  //
 21847  // API parameter values that are decorated as "sensitive" in the API will not
 21848  // be included in the string output. The member name will be present, but the
 21849  // value will be replaced with "sensitive".
 21850  func (s UpdateTerminationProtectionInput) String() string {
 21851  	return awsutil.Prettify(s)
 21852  }
 21853  
 21854  // GoString returns the string representation.
 21855  //
 21856  // API parameter values that are decorated as "sensitive" in the API will not
 21857  // be included in the string output. The member name will be present, but the
 21858  // value will be replaced with "sensitive".
 21859  func (s UpdateTerminationProtectionInput) GoString() string {
 21860  	return s.String()
 21861  }
 21862  
 21863  // Validate inspects the fields of the type to determine if they are valid.
 21864  func (s *UpdateTerminationProtectionInput) Validate() error {
 21865  	invalidParams := request.ErrInvalidParams{Context: "UpdateTerminationProtectionInput"}
 21866  	if s.EnableTerminationProtection == nil {
 21867  		invalidParams.Add(request.NewErrParamRequired("EnableTerminationProtection"))
 21868  	}
 21869  	if s.StackName == nil {
 21870  		invalidParams.Add(request.NewErrParamRequired("StackName"))
 21871  	}
 21872  	if s.StackName != nil && len(*s.StackName) < 1 {
 21873  		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
 21874  	}
 21875  
 21876  	if invalidParams.Len() > 0 {
 21877  		return invalidParams
 21878  	}
 21879  	return nil
 21880  }
 21881  
 21882  // SetEnableTerminationProtection sets the EnableTerminationProtection field's value.
 21883  func (s *UpdateTerminationProtectionInput) SetEnableTerminationProtection(v bool) *UpdateTerminationProtectionInput {
 21884  	s.EnableTerminationProtection = &v
 21885  	return s
 21886  }
 21887  
 21888  // SetStackName sets the StackName field's value.
 21889  func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTerminationProtectionInput {
 21890  	s.StackName = &v
 21891  	return s
 21892  }
 21893  
 21894  type UpdateTerminationProtectionOutput struct {
 21895  	_ struct{} `type:"structure"`
 21896  
 21897  	// The unique ID of the stack.
 21898  	StackId *string `type:"string"`
 21899  }
 21900  
 21901  // String returns the string representation.
 21902  //
 21903  // API parameter values that are decorated as "sensitive" in the API will not
 21904  // be included in the string output. The member name will be present, but the
 21905  // value will be replaced with "sensitive".
 21906  func (s UpdateTerminationProtectionOutput) String() string {
 21907  	return awsutil.Prettify(s)
 21908  }
 21909  
 21910  // GoString returns the string representation.
 21911  //
 21912  // API parameter values that are decorated as "sensitive" in the API will not
 21913  // be included in the string output. The member name will be present, but the
 21914  // value will be replaced with "sensitive".
 21915  func (s UpdateTerminationProtectionOutput) GoString() string {
 21916  	return s.String()
 21917  }
 21918  
 21919  // SetStackId sets the StackId field's value.
 21920  func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminationProtectionOutput {
 21921  	s.StackId = &v
 21922  	return s
 21923  }
 21924  
 21925  // The input for ValidateTemplate action.
 21926  type ValidateTemplateInput struct {
 21927  	_ struct{} `type:"structure"`
 21928  
 21929  	// Structure containing the template body with a minimum length of 1 byte and
 21930  	// a maximum length of 51,200 bytes. For more information, go to Template Anatomy
 21931  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 21932  	// in the CloudFormation User Guide.
 21933  	//
 21934  	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
 21935  	// only TemplateBody is used.
 21936  	TemplateBody *string `min:"1" type:"string"`
 21937  
 21938  	// Location of file containing the template body. The URL must point to a template
 21939  	// (max size: 460,800 bytes) that is located in an Amazon S3 bucket or a Systems
 21940  	// Manager document. For more information, go to Template Anatomy (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
 21941  	// in the CloudFormation User Guide.
 21942  	//
 21943  	// Conditional: You must pass TemplateURL or TemplateBody. If both are passed,
 21944  	// only TemplateBody is used.
 21945  	TemplateURL *string `min:"1" type:"string"`
 21946  }
 21947  
 21948  // String returns the string representation.
 21949  //
 21950  // API parameter values that are decorated as "sensitive" in the API will not
 21951  // be included in the string output. The member name will be present, but the
 21952  // value will be replaced with "sensitive".
 21953  func (s ValidateTemplateInput) String() string {
 21954  	return awsutil.Prettify(s)
 21955  }
 21956  
 21957  // GoString returns the string representation.
 21958  //
 21959  // API parameter values that are decorated as "sensitive" in the API will not
 21960  // be included in the string output. The member name will be present, but the
 21961  // value will be replaced with "sensitive".
 21962  func (s ValidateTemplateInput) GoString() string {
 21963  	return s.String()
 21964  }
 21965  
 21966  // Validate inspects the fields of the type to determine if they are valid.
 21967  func (s *ValidateTemplateInput) Validate() error {
 21968  	invalidParams := request.ErrInvalidParams{Context: "ValidateTemplateInput"}
 21969  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
 21970  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
 21971  	}
 21972  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
 21973  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
 21974  	}
 21975  
 21976  	if invalidParams.Len() > 0 {
 21977  		return invalidParams
 21978  	}
 21979  	return nil
 21980  }
 21981  
 21982  // SetTemplateBody sets the TemplateBody field's value.
 21983  func (s *ValidateTemplateInput) SetTemplateBody(v string) *ValidateTemplateInput {
 21984  	s.TemplateBody = &v
 21985  	return s
 21986  }
 21987  
 21988  // SetTemplateURL sets the TemplateURL field's value.
 21989  func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput {
 21990  	s.TemplateURL = &v
 21991  	return s
 21992  }
 21993  
 21994  // The output for ValidateTemplate action.
 21995  type ValidateTemplateOutput struct {
 21996  	_ struct{} `type:"structure"`
 21997  
 21998  	// The capabilities found within the template. If your template contains IAM
 21999  	// resources, you must specify the CAPABILITY_IAM or CAPABILITY_NAMED_IAM value
 22000  	// for this parameter when you use the CreateStack or UpdateStack actions with
 22001  	// your template; otherwise, those actions return an InsufficientCapabilities
 22002  	// error.
 22003  	//
 22004  	// For more information, see Acknowledging IAM Resources in CloudFormation Templates
 22005  	// (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).
 22006  	Capabilities []*string `type:"list"`
 22007  
 22008  	// The list of resources that generated the values in the Capabilities response
 22009  	// element.
 22010  	CapabilitiesReason *string `type:"string"`
 22011  
 22012  	// A list of the transforms that are declared in the template.
 22013  	DeclaredTransforms []*string `type:"list"`
 22014  
 22015  	// The description found within the template.
 22016  	Description *string `min:"1" type:"string"`
 22017  
 22018  	// A list of TemplateParameter structures.
 22019  	Parameters []*TemplateParameter `type:"list"`
 22020  }
 22021  
 22022  // String returns the string representation.
 22023  //
 22024  // API parameter values that are decorated as "sensitive" in the API will not
 22025  // be included in the string output. The member name will be present, but the
 22026  // value will be replaced with "sensitive".
 22027  func (s ValidateTemplateOutput) String() string {
 22028  	return awsutil.Prettify(s)
 22029  }
 22030  
 22031  // GoString returns the string representation.
 22032  //
 22033  // API parameter values that are decorated as "sensitive" in the API will not
 22034  // be included in the string output. The member name will be present, but the
 22035  // value will be replaced with "sensitive".
 22036  func (s ValidateTemplateOutput) GoString() string {
 22037  	return s.String()
 22038  }
 22039  
 22040  // SetCapabilities sets the Capabilities field's value.
 22041  func (s *ValidateTemplateOutput) SetCapabilities(v []*string) *ValidateTemplateOutput {
 22042  	s.Capabilities = v
 22043  	return s
 22044  }
 22045  
 22046  // SetCapabilitiesReason sets the CapabilitiesReason field's value.
 22047  func (s *ValidateTemplateOutput) SetCapabilitiesReason(v string) *ValidateTemplateOutput {
 22048  	s.CapabilitiesReason = &v
 22049  	return s
 22050  }
 22051  
 22052  // SetDeclaredTransforms sets the DeclaredTransforms field's value.
 22053  func (s *ValidateTemplateOutput) SetDeclaredTransforms(v []*string) *ValidateTemplateOutput {
 22054  	s.DeclaredTransforms = v
 22055  	return s
 22056  }
 22057  
 22058  // SetDescription sets the Description field's value.
 22059  func (s *ValidateTemplateOutput) SetDescription(v string) *ValidateTemplateOutput {
 22060  	s.Description = &v
 22061  	return s
 22062  }
 22063  
 22064  // SetParameters sets the Parameters field's value.
 22065  func (s *ValidateTemplateOutput) SetParameters(v []*TemplateParameter) *ValidateTemplateOutput {
 22066  	s.Parameters = v
 22067  	return s
 22068  }
 22069  
 22070  const (
 22071  	// AccountGateStatusSucceeded is a AccountGateStatus enum value
 22072  	AccountGateStatusSucceeded = "SUCCEEDED"
 22073  
 22074  	// AccountGateStatusFailed is a AccountGateStatus enum value
 22075  	AccountGateStatusFailed = "FAILED"
 22076  
 22077  	// AccountGateStatusSkipped is a AccountGateStatus enum value
 22078  	AccountGateStatusSkipped = "SKIPPED"
 22079  )
 22080  
 22081  // AccountGateStatus_Values returns all elements of the AccountGateStatus enum
 22082  func AccountGateStatus_Values() []string {
 22083  	return []string{
 22084  		AccountGateStatusSucceeded,
 22085  		AccountGateStatusFailed,
 22086  		AccountGateStatusSkipped,
 22087  	}
 22088  }
 22089  
 22090  const (
 22091  	// CallAsSelf is a CallAs enum value
 22092  	CallAsSelf = "SELF"
 22093  
 22094  	// CallAsDelegatedAdmin is a CallAs enum value
 22095  	CallAsDelegatedAdmin = "DELEGATED_ADMIN"
 22096  )
 22097  
 22098  // CallAs_Values returns all elements of the CallAs enum
 22099  func CallAs_Values() []string {
 22100  	return []string{
 22101  		CallAsSelf,
 22102  		CallAsDelegatedAdmin,
 22103  	}
 22104  }
 22105  
 22106  const (
 22107  	// CapabilityCapabilityIam is a Capability enum value
 22108  	CapabilityCapabilityIam = "CAPABILITY_IAM"
 22109  
 22110  	// CapabilityCapabilityNamedIam is a Capability enum value
 22111  	CapabilityCapabilityNamedIam = "CAPABILITY_NAMED_IAM"
 22112  
 22113  	// CapabilityCapabilityAutoExpand is a Capability enum value
 22114  	CapabilityCapabilityAutoExpand = "CAPABILITY_AUTO_EXPAND"
 22115  )
 22116  
 22117  // Capability_Values returns all elements of the Capability enum
 22118  func Capability_Values() []string {
 22119  	return []string{
 22120  		CapabilityCapabilityIam,
 22121  		CapabilityCapabilityNamedIam,
 22122  		CapabilityCapabilityAutoExpand,
 22123  	}
 22124  }
 22125  
 22126  const (
 22127  	// CategoryRegistered is a Category enum value
 22128  	CategoryRegistered = "REGISTERED"
 22129  
 22130  	// CategoryActivated is a Category enum value
 22131  	CategoryActivated = "ACTIVATED"
 22132  
 22133  	// CategoryThirdParty is a Category enum value
 22134  	CategoryThirdParty = "THIRD_PARTY"
 22135  
 22136  	// CategoryAwsTypes is a Category enum value
 22137  	CategoryAwsTypes = "AWS_TYPES"
 22138  )
 22139  
 22140  // Category_Values returns all elements of the Category enum
 22141  func Category_Values() []string {
 22142  	return []string{
 22143  		CategoryRegistered,
 22144  		CategoryActivated,
 22145  		CategoryThirdParty,
 22146  		CategoryAwsTypes,
 22147  	}
 22148  }
 22149  
 22150  const (
 22151  	// ChangeActionAdd is a ChangeAction enum value
 22152  	ChangeActionAdd = "Add"
 22153  
 22154  	// ChangeActionModify is a ChangeAction enum value
 22155  	ChangeActionModify = "Modify"
 22156  
 22157  	// ChangeActionRemove is a ChangeAction enum value
 22158  	ChangeActionRemove = "Remove"
 22159  
 22160  	// ChangeActionImport is a ChangeAction enum value
 22161  	ChangeActionImport = "Import"
 22162  
 22163  	// ChangeActionDynamic is a ChangeAction enum value
 22164  	ChangeActionDynamic = "Dynamic"
 22165  )
 22166  
 22167  // ChangeAction_Values returns all elements of the ChangeAction enum
 22168  func ChangeAction_Values() []string {
 22169  	return []string{
 22170  		ChangeActionAdd,
 22171  		ChangeActionModify,
 22172  		ChangeActionRemove,
 22173  		ChangeActionImport,
 22174  		ChangeActionDynamic,
 22175  	}
 22176  }
 22177  
 22178  const (
 22179  	// ChangeSetStatusCreatePending is a ChangeSetStatus enum value
 22180  	ChangeSetStatusCreatePending = "CREATE_PENDING"
 22181  
 22182  	// ChangeSetStatusCreateInProgress is a ChangeSetStatus enum value
 22183  	ChangeSetStatusCreateInProgress = "CREATE_IN_PROGRESS"
 22184  
 22185  	// ChangeSetStatusCreateComplete is a ChangeSetStatus enum value
 22186  	ChangeSetStatusCreateComplete = "CREATE_COMPLETE"
 22187  
 22188  	// ChangeSetStatusDeletePending is a ChangeSetStatus enum value
 22189  	ChangeSetStatusDeletePending = "DELETE_PENDING"
 22190  
 22191  	// ChangeSetStatusDeleteInProgress is a ChangeSetStatus enum value
 22192  	ChangeSetStatusDeleteInProgress = "DELETE_IN_PROGRESS"
 22193  
 22194  	// ChangeSetStatusDeleteComplete is a ChangeSetStatus enum value
 22195  	ChangeSetStatusDeleteComplete = "DELETE_COMPLETE"
 22196  
 22197  	// ChangeSetStatusDeleteFailed is a ChangeSetStatus enum value
 22198  	ChangeSetStatusDeleteFailed = "DELETE_FAILED"
 22199  
 22200  	// ChangeSetStatusFailed is a ChangeSetStatus enum value
 22201  	ChangeSetStatusFailed = "FAILED"
 22202  )
 22203  
 22204  // ChangeSetStatus_Values returns all elements of the ChangeSetStatus enum
 22205  func ChangeSetStatus_Values() []string {
 22206  	return []string{
 22207  		ChangeSetStatusCreatePending,
 22208  		ChangeSetStatusCreateInProgress,
 22209  		ChangeSetStatusCreateComplete,
 22210  		ChangeSetStatusDeletePending,
 22211  		ChangeSetStatusDeleteInProgress,
 22212  		ChangeSetStatusDeleteComplete,
 22213  		ChangeSetStatusDeleteFailed,
 22214  		ChangeSetStatusFailed,
 22215  	}
 22216  }
 22217  
 22218  const (
 22219  	// ChangeSetTypeCreate is a ChangeSetType enum value
 22220  	ChangeSetTypeCreate = "CREATE"
 22221  
 22222  	// ChangeSetTypeUpdate is a ChangeSetType enum value
 22223  	ChangeSetTypeUpdate = "UPDATE"
 22224  
 22225  	// ChangeSetTypeImport is a ChangeSetType enum value
 22226  	ChangeSetTypeImport = "IMPORT"
 22227  )
 22228  
 22229  // ChangeSetType_Values returns all elements of the ChangeSetType enum
 22230  func ChangeSetType_Values() []string {
 22231  	return []string{
 22232  		ChangeSetTypeCreate,
 22233  		ChangeSetTypeUpdate,
 22234  		ChangeSetTypeImport,
 22235  	}
 22236  }
 22237  
 22238  const (
 22239  	// ChangeSourceResourceReference is a ChangeSource enum value
 22240  	ChangeSourceResourceReference = "ResourceReference"
 22241  
 22242  	// ChangeSourceParameterReference is a ChangeSource enum value
 22243  	ChangeSourceParameterReference = "ParameterReference"
 22244  
 22245  	// ChangeSourceResourceAttribute is a ChangeSource enum value
 22246  	ChangeSourceResourceAttribute = "ResourceAttribute"
 22247  
 22248  	// ChangeSourceDirectModification is a ChangeSource enum value
 22249  	ChangeSourceDirectModification = "DirectModification"
 22250  
 22251  	// ChangeSourceAutomatic is a ChangeSource enum value
 22252  	ChangeSourceAutomatic = "Automatic"
 22253  )
 22254  
 22255  // ChangeSource_Values returns all elements of the ChangeSource enum
 22256  func ChangeSource_Values() []string {
 22257  	return []string{
 22258  		ChangeSourceResourceReference,
 22259  		ChangeSourceParameterReference,
 22260  		ChangeSourceResourceAttribute,
 22261  		ChangeSourceDirectModification,
 22262  		ChangeSourceAutomatic,
 22263  	}
 22264  }
 22265  
 22266  const (
 22267  	// ChangeTypeResource is a ChangeType enum value
 22268  	ChangeTypeResource = "Resource"
 22269  )
 22270  
 22271  // ChangeType_Values returns all elements of the ChangeType enum
 22272  func ChangeType_Values() []string {
 22273  	return []string{
 22274  		ChangeTypeResource,
 22275  	}
 22276  }
 22277  
 22278  const (
 22279  	// DeprecatedStatusLive is a DeprecatedStatus enum value
 22280  	DeprecatedStatusLive = "LIVE"
 22281  
 22282  	// DeprecatedStatusDeprecated is a DeprecatedStatus enum value
 22283  	DeprecatedStatusDeprecated = "DEPRECATED"
 22284  )
 22285  
 22286  // DeprecatedStatus_Values returns all elements of the DeprecatedStatus enum
 22287  func DeprecatedStatus_Values() []string {
 22288  	return []string{
 22289  		DeprecatedStatusLive,
 22290  		DeprecatedStatusDeprecated,
 22291  	}
 22292  }
 22293  
 22294  const (
 22295  	// DifferenceTypeAdd is a DifferenceType enum value
 22296  	DifferenceTypeAdd = "ADD"
 22297  
 22298  	// DifferenceTypeRemove is a DifferenceType enum value
 22299  	DifferenceTypeRemove = "REMOVE"
 22300  
 22301  	// DifferenceTypeNotEqual is a DifferenceType enum value
 22302  	DifferenceTypeNotEqual = "NOT_EQUAL"
 22303  )
 22304  
 22305  // DifferenceType_Values returns all elements of the DifferenceType enum
 22306  func DifferenceType_Values() []string {
 22307  	return []string{
 22308  		DifferenceTypeAdd,
 22309  		DifferenceTypeRemove,
 22310  		DifferenceTypeNotEqual,
 22311  	}
 22312  }
 22313  
 22314  const (
 22315  	// EvaluationTypeStatic is a EvaluationType enum value
 22316  	EvaluationTypeStatic = "Static"
 22317  
 22318  	// EvaluationTypeDynamic is a EvaluationType enum value
 22319  	EvaluationTypeDynamic = "Dynamic"
 22320  )
 22321  
 22322  // EvaluationType_Values returns all elements of the EvaluationType enum
 22323  func EvaluationType_Values() []string {
 22324  	return []string{
 22325  		EvaluationTypeStatic,
 22326  		EvaluationTypeDynamic,
 22327  	}
 22328  }
 22329  
 22330  const (
 22331  	// ExecutionStatusUnavailable is a ExecutionStatus enum value
 22332  	ExecutionStatusUnavailable = "UNAVAILABLE"
 22333  
 22334  	// ExecutionStatusAvailable is a ExecutionStatus enum value
 22335  	ExecutionStatusAvailable = "AVAILABLE"
 22336  
 22337  	// ExecutionStatusExecuteInProgress is a ExecutionStatus enum value
 22338  	ExecutionStatusExecuteInProgress = "EXECUTE_IN_PROGRESS"
 22339  
 22340  	// ExecutionStatusExecuteComplete is a ExecutionStatus enum value
 22341  	ExecutionStatusExecuteComplete = "EXECUTE_COMPLETE"
 22342  
 22343  	// ExecutionStatusExecuteFailed is a ExecutionStatus enum value
 22344  	ExecutionStatusExecuteFailed = "EXECUTE_FAILED"
 22345  
 22346  	// ExecutionStatusObsolete is a ExecutionStatus enum value
 22347  	ExecutionStatusObsolete = "OBSOLETE"
 22348  )
 22349  
 22350  // ExecutionStatus_Values returns all elements of the ExecutionStatus enum
 22351  func ExecutionStatus_Values() []string {
 22352  	return []string{
 22353  		ExecutionStatusUnavailable,
 22354  		ExecutionStatusAvailable,
 22355  		ExecutionStatusExecuteInProgress,
 22356  		ExecutionStatusExecuteComplete,
 22357  		ExecutionStatusExecuteFailed,
 22358  		ExecutionStatusObsolete,
 22359  	}
 22360  }
 22361  
 22362  const (
 22363  	// HandlerErrorCodeNotUpdatable is a HandlerErrorCode enum value
 22364  	HandlerErrorCodeNotUpdatable = "NotUpdatable"
 22365  
 22366  	// HandlerErrorCodeInvalidRequest is a HandlerErrorCode enum value
 22367  	HandlerErrorCodeInvalidRequest = "InvalidRequest"
 22368  
 22369  	// HandlerErrorCodeAccessDenied is a HandlerErrorCode enum value
 22370  	HandlerErrorCodeAccessDenied = "AccessDenied"
 22371  
 22372  	// HandlerErrorCodeInvalidCredentials is a HandlerErrorCode enum value
 22373  	HandlerErrorCodeInvalidCredentials = "InvalidCredentials"
 22374  
 22375  	// HandlerErrorCodeAlreadyExists is a HandlerErrorCode enum value
 22376  	HandlerErrorCodeAlreadyExists = "AlreadyExists"
 22377  
 22378  	// HandlerErrorCodeNotFound is a HandlerErrorCode enum value
 22379  	HandlerErrorCodeNotFound = "NotFound"
 22380  
 22381  	// HandlerErrorCodeResourceConflict is a HandlerErrorCode enum value
 22382  	HandlerErrorCodeResourceConflict = "ResourceConflict"
 22383  
 22384  	// HandlerErrorCodeThrottling is a HandlerErrorCode enum value
 22385  	HandlerErrorCodeThrottling = "Throttling"
 22386  
 22387  	// HandlerErrorCodeServiceLimitExceeded is a HandlerErrorCode enum value
 22388  	HandlerErrorCodeServiceLimitExceeded = "ServiceLimitExceeded"
 22389  
 22390  	// HandlerErrorCodeNotStabilized is a HandlerErrorCode enum value
 22391  	HandlerErrorCodeNotStabilized = "NotStabilized"
 22392  
 22393  	// HandlerErrorCodeGeneralServiceException is a HandlerErrorCode enum value
 22394  	HandlerErrorCodeGeneralServiceException = "GeneralServiceException"
 22395  
 22396  	// HandlerErrorCodeServiceInternalError is a HandlerErrorCode enum value
 22397  	HandlerErrorCodeServiceInternalError = "ServiceInternalError"
 22398  
 22399  	// HandlerErrorCodeNetworkFailure is a HandlerErrorCode enum value
 22400  	HandlerErrorCodeNetworkFailure = "NetworkFailure"
 22401  
 22402  	// HandlerErrorCodeInternalFailure is a HandlerErrorCode enum value
 22403  	HandlerErrorCodeInternalFailure = "InternalFailure"
 22404  
 22405  	// HandlerErrorCodeInvalidTypeConfiguration is a HandlerErrorCode enum value
 22406  	HandlerErrorCodeInvalidTypeConfiguration = "InvalidTypeConfiguration"
 22407  )
 22408  
 22409  // HandlerErrorCode_Values returns all elements of the HandlerErrorCode enum
 22410  func HandlerErrorCode_Values() []string {
 22411  	return []string{
 22412  		HandlerErrorCodeNotUpdatable,
 22413  		HandlerErrorCodeInvalidRequest,
 22414  		HandlerErrorCodeAccessDenied,
 22415  		HandlerErrorCodeInvalidCredentials,
 22416  		HandlerErrorCodeAlreadyExists,
 22417  		HandlerErrorCodeNotFound,
 22418  		HandlerErrorCodeResourceConflict,
 22419  		HandlerErrorCodeThrottling,
 22420  		HandlerErrorCodeServiceLimitExceeded,
 22421  		HandlerErrorCodeNotStabilized,
 22422  		HandlerErrorCodeGeneralServiceException,
 22423  		HandlerErrorCodeServiceInternalError,
 22424  		HandlerErrorCodeNetworkFailure,
 22425  		HandlerErrorCodeInternalFailure,
 22426  		HandlerErrorCodeInvalidTypeConfiguration,
 22427  	}
 22428  }
 22429  
 22430  const (
 22431  	// IdentityProviderAwsMarketplace is a IdentityProvider enum value
 22432  	IdentityProviderAwsMarketplace = "AWS_Marketplace"
 22433  
 22434  	// IdentityProviderGitHub is a IdentityProvider enum value
 22435  	IdentityProviderGitHub = "GitHub"
 22436  
 22437  	// IdentityProviderBitbucket is a IdentityProvider enum value
 22438  	IdentityProviderBitbucket = "Bitbucket"
 22439  )
 22440  
 22441  // IdentityProvider_Values returns all elements of the IdentityProvider enum
 22442  func IdentityProvider_Values() []string {
 22443  	return []string{
 22444  		IdentityProviderAwsMarketplace,
 22445  		IdentityProviderGitHub,
 22446  		IdentityProviderBitbucket,
 22447  	}
 22448  }
 22449  
 22450  const (
 22451  	// OnFailureDoNothing is a OnFailure enum value
 22452  	OnFailureDoNothing = "DO_NOTHING"
 22453  
 22454  	// OnFailureRollback is a OnFailure enum value
 22455  	OnFailureRollback = "ROLLBACK"
 22456  
 22457  	// OnFailureDelete is a OnFailure enum value
 22458  	OnFailureDelete = "DELETE"
 22459  )
 22460  
 22461  // OnFailure_Values returns all elements of the OnFailure enum
 22462  func OnFailure_Values() []string {
 22463  	return []string{
 22464  		OnFailureDoNothing,
 22465  		OnFailureRollback,
 22466  		OnFailureDelete,
 22467  	}
 22468  }
 22469  
 22470  const (
 22471  	// OperationStatusPending is a OperationStatus enum value
 22472  	OperationStatusPending = "PENDING"
 22473  
 22474  	// OperationStatusInProgress is a OperationStatus enum value
 22475  	OperationStatusInProgress = "IN_PROGRESS"
 22476  
 22477  	// OperationStatusSuccess is a OperationStatus enum value
 22478  	OperationStatusSuccess = "SUCCESS"
 22479  
 22480  	// OperationStatusFailed is a OperationStatus enum value
 22481  	OperationStatusFailed = "FAILED"
 22482  )
 22483  
 22484  // OperationStatus_Values returns all elements of the OperationStatus enum
 22485  func OperationStatus_Values() []string {
 22486  	return []string{
 22487  		OperationStatusPending,
 22488  		OperationStatusInProgress,
 22489  		OperationStatusSuccess,
 22490  		OperationStatusFailed,
 22491  	}
 22492  }
 22493  
 22494  const (
 22495  	// PermissionModelsServiceManaged is a PermissionModels enum value
 22496  	PermissionModelsServiceManaged = "SERVICE_MANAGED"
 22497  
 22498  	// PermissionModelsSelfManaged is a PermissionModels enum value
 22499  	PermissionModelsSelfManaged = "SELF_MANAGED"
 22500  )
 22501  
 22502  // PermissionModels_Values returns all elements of the PermissionModels enum
 22503  func PermissionModels_Values() []string {
 22504  	return []string{
 22505  		PermissionModelsServiceManaged,
 22506  		PermissionModelsSelfManaged,
 22507  	}
 22508  }
 22509  
 22510  const (
 22511  	// ProvisioningTypeNonProvisionable is a ProvisioningType enum value
 22512  	ProvisioningTypeNonProvisionable = "NON_PROVISIONABLE"
 22513  
 22514  	// ProvisioningTypeImmutable is a ProvisioningType enum value
 22515  	ProvisioningTypeImmutable = "IMMUTABLE"
 22516  
 22517  	// ProvisioningTypeFullyMutable is a ProvisioningType enum value
 22518  	ProvisioningTypeFullyMutable = "FULLY_MUTABLE"
 22519  )
 22520  
 22521  // ProvisioningType_Values returns all elements of the ProvisioningType enum
 22522  func ProvisioningType_Values() []string {
 22523  	return []string{
 22524  		ProvisioningTypeNonProvisionable,
 22525  		ProvisioningTypeImmutable,
 22526  		ProvisioningTypeFullyMutable,
 22527  	}
 22528  }
 22529  
 22530  const (
 22531  	// PublisherStatusVerified is a PublisherStatus enum value
 22532  	PublisherStatusVerified = "VERIFIED"
 22533  
 22534  	// PublisherStatusUnverified is a PublisherStatus enum value
 22535  	PublisherStatusUnverified = "UNVERIFIED"
 22536  )
 22537  
 22538  // PublisherStatus_Values returns all elements of the PublisherStatus enum
 22539  func PublisherStatus_Values() []string {
 22540  	return []string{
 22541  		PublisherStatusVerified,
 22542  		PublisherStatusUnverified,
 22543  	}
 22544  }
 22545  
 22546  const (
 22547  	// RegionConcurrencyTypeSequential is a RegionConcurrencyType enum value
 22548  	RegionConcurrencyTypeSequential = "SEQUENTIAL"
 22549  
 22550  	// RegionConcurrencyTypeParallel is a RegionConcurrencyType enum value
 22551  	RegionConcurrencyTypeParallel = "PARALLEL"
 22552  )
 22553  
 22554  // RegionConcurrencyType_Values returns all elements of the RegionConcurrencyType enum
 22555  func RegionConcurrencyType_Values() []string {
 22556  	return []string{
 22557  		RegionConcurrencyTypeSequential,
 22558  		RegionConcurrencyTypeParallel,
 22559  	}
 22560  }
 22561  
 22562  const (
 22563  	// RegistrationStatusComplete is a RegistrationStatus enum value
 22564  	RegistrationStatusComplete = "COMPLETE"
 22565  
 22566  	// RegistrationStatusInProgress is a RegistrationStatus enum value
 22567  	RegistrationStatusInProgress = "IN_PROGRESS"
 22568  
 22569  	// RegistrationStatusFailed is a RegistrationStatus enum value
 22570  	RegistrationStatusFailed = "FAILED"
 22571  )
 22572  
 22573  // RegistrationStatus_Values returns all elements of the RegistrationStatus enum
 22574  func RegistrationStatus_Values() []string {
 22575  	return []string{
 22576  		RegistrationStatusComplete,
 22577  		RegistrationStatusInProgress,
 22578  		RegistrationStatusFailed,
 22579  	}
 22580  }
 22581  
 22582  const (
 22583  	// RegistryTypeResource is a RegistryType enum value
 22584  	RegistryTypeResource = "RESOURCE"
 22585  
 22586  	// RegistryTypeModule is a RegistryType enum value
 22587  	RegistryTypeModule = "MODULE"
 22588  )
 22589  
 22590  // RegistryType_Values returns all elements of the RegistryType enum
 22591  func RegistryType_Values() []string {
 22592  	return []string{
 22593  		RegistryTypeResource,
 22594  		RegistryTypeModule,
 22595  	}
 22596  }
 22597  
 22598  const (
 22599  	// ReplacementTrue is a Replacement enum value
 22600  	ReplacementTrue = "True"
 22601  
 22602  	// ReplacementFalse is a Replacement enum value
 22603  	ReplacementFalse = "False"
 22604  
 22605  	// ReplacementConditional is a Replacement enum value
 22606  	ReplacementConditional = "Conditional"
 22607  )
 22608  
 22609  // Replacement_Values returns all elements of the Replacement enum
 22610  func Replacement_Values() []string {
 22611  	return []string{
 22612  		ReplacementTrue,
 22613  		ReplacementFalse,
 22614  		ReplacementConditional,
 22615  	}
 22616  }
 22617  
 22618  const (
 22619  	// RequiresRecreationNever is a RequiresRecreation enum value
 22620  	RequiresRecreationNever = "Never"
 22621  
 22622  	// RequiresRecreationConditionally is a RequiresRecreation enum value
 22623  	RequiresRecreationConditionally = "Conditionally"
 22624  
 22625  	// RequiresRecreationAlways is a RequiresRecreation enum value
 22626  	RequiresRecreationAlways = "Always"
 22627  )
 22628  
 22629  // RequiresRecreation_Values returns all elements of the RequiresRecreation enum
 22630  func RequiresRecreation_Values() []string {
 22631  	return []string{
 22632  		RequiresRecreationNever,
 22633  		RequiresRecreationConditionally,
 22634  		RequiresRecreationAlways,
 22635  	}
 22636  }
 22637  
 22638  const (
 22639  	// ResourceAttributeProperties is a ResourceAttribute enum value
 22640  	ResourceAttributeProperties = "Properties"
 22641  
 22642  	// ResourceAttributeMetadata is a ResourceAttribute enum value
 22643  	ResourceAttributeMetadata = "Metadata"
 22644  
 22645  	// ResourceAttributeCreationPolicy is a ResourceAttribute enum value
 22646  	ResourceAttributeCreationPolicy = "CreationPolicy"
 22647  
 22648  	// ResourceAttributeUpdatePolicy is a ResourceAttribute enum value
 22649  	ResourceAttributeUpdatePolicy = "UpdatePolicy"
 22650  
 22651  	// ResourceAttributeDeletionPolicy is a ResourceAttribute enum value
 22652  	ResourceAttributeDeletionPolicy = "DeletionPolicy"
 22653  
 22654  	// ResourceAttributeTags is a ResourceAttribute enum value
 22655  	ResourceAttributeTags = "Tags"
 22656  )
 22657  
 22658  // ResourceAttribute_Values returns all elements of the ResourceAttribute enum
 22659  func ResourceAttribute_Values() []string {
 22660  	return []string{
 22661  		ResourceAttributeProperties,
 22662  		ResourceAttributeMetadata,
 22663  		ResourceAttributeCreationPolicy,
 22664  		ResourceAttributeUpdatePolicy,
 22665  		ResourceAttributeDeletionPolicy,
 22666  		ResourceAttributeTags,
 22667  	}
 22668  }
 22669  
 22670  const (
 22671  	// ResourceSignalStatusSuccess is a ResourceSignalStatus enum value
 22672  	ResourceSignalStatusSuccess = "SUCCESS"
 22673  
 22674  	// ResourceSignalStatusFailure is a ResourceSignalStatus enum value
 22675  	ResourceSignalStatusFailure = "FAILURE"
 22676  )
 22677  
 22678  // ResourceSignalStatus_Values returns all elements of the ResourceSignalStatus enum
 22679  func ResourceSignalStatus_Values() []string {
 22680  	return []string{
 22681  		ResourceSignalStatusSuccess,
 22682  		ResourceSignalStatusFailure,
 22683  	}
 22684  }
 22685  
 22686  const (
 22687  	// ResourceStatusCreateInProgress is a ResourceStatus enum value
 22688  	ResourceStatusCreateInProgress = "CREATE_IN_PROGRESS"
 22689  
 22690  	// ResourceStatusCreateFailed is a ResourceStatus enum value
 22691  	ResourceStatusCreateFailed = "CREATE_FAILED"
 22692  
 22693  	// ResourceStatusCreateComplete is a ResourceStatus enum value
 22694  	ResourceStatusCreateComplete = "CREATE_COMPLETE"
 22695  
 22696  	// ResourceStatusDeleteInProgress is a ResourceStatus enum value
 22697  	ResourceStatusDeleteInProgress = "DELETE_IN_PROGRESS"
 22698  
 22699  	// ResourceStatusDeleteFailed is a ResourceStatus enum value
 22700  	ResourceStatusDeleteFailed = "DELETE_FAILED"
 22701  
 22702  	// ResourceStatusDeleteComplete is a ResourceStatus enum value
 22703  	ResourceStatusDeleteComplete = "DELETE_COMPLETE"
 22704  
 22705  	// ResourceStatusDeleteSkipped is a ResourceStatus enum value
 22706  	ResourceStatusDeleteSkipped = "DELETE_SKIPPED"
 22707  
 22708  	// ResourceStatusUpdateInProgress is a ResourceStatus enum value
 22709  	ResourceStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
 22710  
 22711  	// ResourceStatusUpdateFailed is a ResourceStatus enum value
 22712  	ResourceStatusUpdateFailed = "UPDATE_FAILED"
 22713  
 22714  	// ResourceStatusUpdateComplete is a ResourceStatus enum value
 22715  	ResourceStatusUpdateComplete = "UPDATE_COMPLETE"
 22716  
 22717  	// ResourceStatusImportFailed is a ResourceStatus enum value
 22718  	ResourceStatusImportFailed = "IMPORT_FAILED"
 22719  
 22720  	// ResourceStatusImportComplete is a ResourceStatus enum value
 22721  	ResourceStatusImportComplete = "IMPORT_COMPLETE"
 22722  
 22723  	// ResourceStatusImportInProgress is a ResourceStatus enum value
 22724  	ResourceStatusImportInProgress = "IMPORT_IN_PROGRESS"
 22725  
 22726  	// ResourceStatusImportRollbackInProgress is a ResourceStatus enum value
 22727  	ResourceStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
 22728  
 22729  	// ResourceStatusImportRollbackFailed is a ResourceStatus enum value
 22730  	ResourceStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
 22731  
 22732  	// ResourceStatusImportRollbackComplete is a ResourceStatus enum value
 22733  	ResourceStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
 22734  
 22735  	// ResourceStatusUpdateRollbackInProgress is a ResourceStatus enum value
 22736  	ResourceStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
 22737  
 22738  	// ResourceStatusUpdateRollbackComplete is a ResourceStatus enum value
 22739  	ResourceStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
 22740  
 22741  	// ResourceStatusUpdateRollbackFailed is a ResourceStatus enum value
 22742  	ResourceStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
 22743  
 22744  	// ResourceStatusRollbackInProgress is a ResourceStatus enum value
 22745  	ResourceStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
 22746  
 22747  	// ResourceStatusRollbackComplete is a ResourceStatus enum value
 22748  	ResourceStatusRollbackComplete = "ROLLBACK_COMPLETE"
 22749  
 22750  	// ResourceStatusRollbackFailed is a ResourceStatus enum value
 22751  	ResourceStatusRollbackFailed = "ROLLBACK_FAILED"
 22752  )
 22753  
 22754  // ResourceStatus_Values returns all elements of the ResourceStatus enum
 22755  func ResourceStatus_Values() []string {
 22756  	return []string{
 22757  		ResourceStatusCreateInProgress,
 22758  		ResourceStatusCreateFailed,
 22759  		ResourceStatusCreateComplete,
 22760  		ResourceStatusDeleteInProgress,
 22761  		ResourceStatusDeleteFailed,
 22762  		ResourceStatusDeleteComplete,
 22763  		ResourceStatusDeleteSkipped,
 22764  		ResourceStatusUpdateInProgress,
 22765  		ResourceStatusUpdateFailed,
 22766  		ResourceStatusUpdateComplete,
 22767  		ResourceStatusImportFailed,
 22768  		ResourceStatusImportComplete,
 22769  		ResourceStatusImportInProgress,
 22770  		ResourceStatusImportRollbackInProgress,
 22771  		ResourceStatusImportRollbackFailed,
 22772  		ResourceStatusImportRollbackComplete,
 22773  		ResourceStatusUpdateRollbackInProgress,
 22774  		ResourceStatusUpdateRollbackComplete,
 22775  		ResourceStatusUpdateRollbackFailed,
 22776  		ResourceStatusRollbackInProgress,
 22777  		ResourceStatusRollbackComplete,
 22778  		ResourceStatusRollbackFailed,
 22779  	}
 22780  }
 22781  
 22782  const (
 22783  	// StackDriftDetectionStatusDetectionInProgress is a StackDriftDetectionStatus enum value
 22784  	StackDriftDetectionStatusDetectionInProgress = "DETECTION_IN_PROGRESS"
 22785  
 22786  	// StackDriftDetectionStatusDetectionFailed is a StackDriftDetectionStatus enum value
 22787  	StackDriftDetectionStatusDetectionFailed = "DETECTION_FAILED"
 22788  
 22789  	// StackDriftDetectionStatusDetectionComplete is a StackDriftDetectionStatus enum value
 22790  	StackDriftDetectionStatusDetectionComplete = "DETECTION_COMPLETE"
 22791  )
 22792  
 22793  // StackDriftDetectionStatus_Values returns all elements of the StackDriftDetectionStatus enum
 22794  func StackDriftDetectionStatus_Values() []string {
 22795  	return []string{
 22796  		StackDriftDetectionStatusDetectionInProgress,
 22797  		StackDriftDetectionStatusDetectionFailed,
 22798  		StackDriftDetectionStatusDetectionComplete,
 22799  	}
 22800  }
 22801  
 22802  const (
 22803  	// StackDriftStatusDrifted is a StackDriftStatus enum value
 22804  	StackDriftStatusDrifted = "DRIFTED"
 22805  
 22806  	// StackDriftStatusInSync is a StackDriftStatus enum value
 22807  	StackDriftStatusInSync = "IN_SYNC"
 22808  
 22809  	// StackDriftStatusUnknown is a StackDriftStatus enum value
 22810  	StackDriftStatusUnknown = "UNKNOWN"
 22811  
 22812  	// StackDriftStatusNotChecked is a StackDriftStatus enum value
 22813  	StackDriftStatusNotChecked = "NOT_CHECKED"
 22814  )
 22815  
 22816  // StackDriftStatus_Values returns all elements of the StackDriftStatus enum
 22817  func StackDriftStatus_Values() []string {
 22818  	return []string{
 22819  		StackDriftStatusDrifted,
 22820  		StackDriftStatusInSync,
 22821  		StackDriftStatusUnknown,
 22822  		StackDriftStatusNotChecked,
 22823  	}
 22824  }
 22825  
 22826  const (
 22827  	// StackInstanceDetailedStatusPending is a StackInstanceDetailedStatus enum value
 22828  	StackInstanceDetailedStatusPending = "PENDING"
 22829  
 22830  	// StackInstanceDetailedStatusRunning is a StackInstanceDetailedStatus enum value
 22831  	StackInstanceDetailedStatusRunning = "RUNNING"
 22832  
 22833  	// StackInstanceDetailedStatusSucceeded is a StackInstanceDetailedStatus enum value
 22834  	StackInstanceDetailedStatusSucceeded = "SUCCEEDED"
 22835  
 22836  	// StackInstanceDetailedStatusFailed is a StackInstanceDetailedStatus enum value
 22837  	StackInstanceDetailedStatusFailed = "FAILED"
 22838  
 22839  	// StackInstanceDetailedStatusCancelled is a StackInstanceDetailedStatus enum value
 22840  	StackInstanceDetailedStatusCancelled = "CANCELLED"
 22841  
 22842  	// StackInstanceDetailedStatusInoperable is a StackInstanceDetailedStatus enum value
 22843  	StackInstanceDetailedStatusInoperable = "INOPERABLE"
 22844  )
 22845  
 22846  // StackInstanceDetailedStatus_Values returns all elements of the StackInstanceDetailedStatus enum
 22847  func StackInstanceDetailedStatus_Values() []string {
 22848  	return []string{
 22849  		StackInstanceDetailedStatusPending,
 22850  		StackInstanceDetailedStatusRunning,
 22851  		StackInstanceDetailedStatusSucceeded,
 22852  		StackInstanceDetailedStatusFailed,
 22853  		StackInstanceDetailedStatusCancelled,
 22854  		StackInstanceDetailedStatusInoperable,
 22855  	}
 22856  }
 22857  
 22858  const (
 22859  	// StackInstanceFilterNameDetailedStatus is a StackInstanceFilterName enum value
 22860  	StackInstanceFilterNameDetailedStatus = "DETAILED_STATUS"
 22861  )
 22862  
 22863  // StackInstanceFilterName_Values returns all elements of the StackInstanceFilterName enum
 22864  func StackInstanceFilterName_Values() []string {
 22865  	return []string{
 22866  		StackInstanceFilterNameDetailedStatus,
 22867  	}
 22868  }
 22869  
 22870  const (
 22871  	// StackInstanceStatusCurrent is a StackInstanceStatus enum value
 22872  	StackInstanceStatusCurrent = "CURRENT"
 22873  
 22874  	// StackInstanceStatusOutdated is a StackInstanceStatus enum value
 22875  	StackInstanceStatusOutdated = "OUTDATED"
 22876  
 22877  	// StackInstanceStatusInoperable is a StackInstanceStatus enum value
 22878  	StackInstanceStatusInoperable = "INOPERABLE"
 22879  )
 22880  
 22881  // StackInstanceStatus_Values returns all elements of the StackInstanceStatus enum
 22882  func StackInstanceStatus_Values() []string {
 22883  	return []string{
 22884  		StackInstanceStatusCurrent,
 22885  		StackInstanceStatusOutdated,
 22886  		StackInstanceStatusInoperable,
 22887  	}
 22888  }
 22889  
 22890  const (
 22891  	// StackResourceDriftStatusInSync is a StackResourceDriftStatus enum value
 22892  	StackResourceDriftStatusInSync = "IN_SYNC"
 22893  
 22894  	// StackResourceDriftStatusModified is a StackResourceDriftStatus enum value
 22895  	StackResourceDriftStatusModified = "MODIFIED"
 22896  
 22897  	// StackResourceDriftStatusDeleted is a StackResourceDriftStatus enum value
 22898  	StackResourceDriftStatusDeleted = "DELETED"
 22899  
 22900  	// StackResourceDriftStatusNotChecked is a StackResourceDriftStatus enum value
 22901  	StackResourceDriftStatusNotChecked = "NOT_CHECKED"
 22902  )
 22903  
 22904  // StackResourceDriftStatus_Values returns all elements of the StackResourceDriftStatus enum
 22905  func StackResourceDriftStatus_Values() []string {
 22906  	return []string{
 22907  		StackResourceDriftStatusInSync,
 22908  		StackResourceDriftStatusModified,
 22909  		StackResourceDriftStatusDeleted,
 22910  		StackResourceDriftStatusNotChecked,
 22911  	}
 22912  }
 22913  
 22914  const (
 22915  	// StackSetDriftDetectionStatusCompleted is a StackSetDriftDetectionStatus enum value
 22916  	StackSetDriftDetectionStatusCompleted = "COMPLETED"
 22917  
 22918  	// StackSetDriftDetectionStatusFailed is a StackSetDriftDetectionStatus enum value
 22919  	StackSetDriftDetectionStatusFailed = "FAILED"
 22920  
 22921  	// StackSetDriftDetectionStatusPartialSuccess is a StackSetDriftDetectionStatus enum value
 22922  	StackSetDriftDetectionStatusPartialSuccess = "PARTIAL_SUCCESS"
 22923  
 22924  	// StackSetDriftDetectionStatusInProgress is a StackSetDriftDetectionStatus enum value
 22925  	StackSetDriftDetectionStatusInProgress = "IN_PROGRESS"
 22926  
 22927  	// StackSetDriftDetectionStatusStopped is a StackSetDriftDetectionStatus enum value
 22928  	StackSetDriftDetectionStatusStopped = "STOPPED"
 22929  )
 22930  
 22931  // StackSetDriftDetectionStatus_Values returns all elements of the StackSetDriftDetectionStatus enum
 22932  func StackSetDriftDetectionStatus_Values() []string {
 22933  	return []string{
 22934  		StackSetDriftDetectionStatusCompleted,
 22935  		StackSetDriftDetectionStatusFailed,
 22936  		StackSetDriftDetectionStatusPartialSuccess,
 22937  		StackSetDriftDetectionStatusInProgress,
 22938  		StackSetDriftDetectionStatusStopped,
 22939  	}
 22940  }
 22941  
 22942  const (
 22943  	// StackSetDriftStatusDrifted is a StackSetDriftStatus enum value
 22944  	StackSetDriftStatusDrifted = "DRIFTED"
 22945  
 22946  	// StackSetDriftStatusInSync is a StackSetDriftStatus enum value
 22947  	StackSetDriftStatusInSync = "IN_SYNC"
 22948  
 22949  	// StackSetDriftStatusNotChecked is a StackSetDriftStatus enum value
 22950  	StackSetDriftStatusNotChecked = "NOT_CHECKED"
 22951  )
 22952  
 22953  // StackSetDriftStatus_Values returns all elements of the StackSetDriftStatus enum
 22954  func StackSetDriftStatus_Values() []string {
 22955  	return []string{
 22956  		StackSetDriftStatusDrifted,
 22957  		StackSetDriftStatusInSync,
 22958  		StackSetDriftStatusNotChecked,
 22959  	}
 22960  }
 22961  
 22962  const (
 22963  	// StackSetOperationActionCreate is a StackSetOperationAction enum value
 22964  	StackSetOperationActionCreate = "CREATE"
 22965  
 22966  	// StackSetOperationActionUpdate is a StackSetOperationAction enum value
 22967  	StackSetOperationActionUpdate = "UPDATE"
 22968  
 22969  	// StackSetOperationActionDelete is a StackSetOperationAction enum value
 22970  	StackSetOperationActionDelete = "DELETE"
 22971  
 22972  	// StackSetOperationActionDetectDrift is a StackSetOperationAction enum value
 22973  	StackSetOperationActionDetectDrift = "DETECT_DRIFT"
 22974  )
 22975  
 22976  // StackSetOperationAction_Values returns all elements of the StackSetOperationAction enum
 22977  func StackSetOperationAction_Values() []string {
 22978  	return []string{
 22979  		StackSetOperationActionCreate,
 22980  		StackSetOperationActionUpdate,
 22981  		StackSetOperationActionDelete,
 22982  		StackSetOperationActionDetectDrift,
 22983  	}
 22984  }
 22985  
 22986  const (
 22987  	// StackSetOperationResultStatusPending is a StackSetOperationResultStatus enum value
 22988  	StackSetOperationResultStatusPending = "PENDING"
 22989  
 22990  	// StackSetOperationResultStatusRunning is a StackSetOperationResultStatus enum value
 22991  	StackSetOperationResultStatusRunning = "RUNNING"
 22992  
 22993  	// StackSetOperationResultStatusSucceeded is a StackSetOperationResultStatus enum value
 22994  	StackSetOperationResultStatusSucceeded = "SUCCEEDED"
 22995  
 22996  	// StackSetOperationResultStatusFailed is a StackSetOperationResultStatus enum value
 22997  	StackSetOperationResultStatusFailed = "FAILED"
 22998  
 22999  	// StackSetOperationResultStatusCancelled is a StackSetOperationResultStatus enum value
 23000  	StackSetOperationResultStatusCancelled = "CANCELLED"
 23001  )
 23002  
 23003  // StackSetOperationResultStatus_Values returns all elements of the StackSetOperationResultStatus enum
 23004  func StackSetOperationResultStatus_Values() []string {
 23005  	return []string{
 23006  		StackSetOperationResultStatusPending,
 23007  		StackSetOperationResultStatusRunning,
 23008  		StackSetOperationResultStatusSucceeded,
 23009  		StackSetOperationResultStatusFailed,
 23010  		StackSetOperationResultStatusCancelled,
 23011  	}
 23012  }
 23013  
 23014  const (
 23015  	// StackSetOperationStatusRunning is a StackSetOperationStatus enum value
 23016  	StackSetOperationStatusRunning = "RUNNING"
 23017  
 23018  	// StackSetOperationStatusSucceeded is a StackSetOperationStatus enum value
 23019  	StackSetOperationStatusSucceeded = "SUCCEEDED"
 23020  
 23021  	// StackSetOperationStatusFailed is a StackSetOperationStatus enum value
 23022  	StackSetOperationStatusFailed = "FAILED"
 23023  
 23024  	// StackSetOperationStatusStopping is a StackSetOperationStatus enum value
 23025  	StackSetOperationStatusStopping = "STOPPING"
 23026  
 23027  	// StackSetOperationStatusStopped is a StackSetOperationStatus enum value
 23028  	StackSetOperationStatusStopped = "STOPPED"
 23029  
 23030  	// StackSetOperationStatusQueued is a StackSetOperationStatus enum value
 23031  	StackSetOperationStatusQueued = "QUEUED"
 23032  )
 23033  
 23034  // StackSetOperationStatus_Values returns all elements of the StackSetOperationStatus enum
 23035  func StackSetOperationStatus_Values() []string {
 23036  	return []string{
 23037  		StackSetOperationStatusRunning,
 23038  		StackSetOperationStatusSucceeded,
 23039  		StackSetOperationStatusFailed,
 23040  		StackSetOperationStatusStopping,
 23041  		StackSetOperationStatusStopped,
 23042  		StackSetOperationStatusQueued,
 23043  	}
 23044  }
 23045  
 23046  const (
 23047  	// StackSetStatusActive is a StackSetStatus enum value
 23048  	StackSetStatusActive = "ACTIVE"
 23049  
 23050  	// StackSetStatusDeleted is a StackSetStatus enum value
 23051  	StackSetStatusDeleted = "DELETED"
 23052  )
 23053  
 23054  // StackSetStatus_Values returns all elements of the StackSetStatus enum
 23055  func StackSetStatus_Values() []string {
 23056  	return []string{
 23057  		StackSetStatusActive,
 23058  		StackSetStatusDeleted,
 23059  	}
 23060  }
 23061  
 23062  const (
 23063  	// StackStatusCreateInProgress is a StackStatus enum value
 23064  	StackStatusCreateInProgress = "CREATE_IN_PROGRESS"
 23065  
 23066  	// StackStatusCreateFailed is a StackStatus enum value
 23067  	StackStatusCreateFailed = "CREATE_FAILED"
 23068  
 23069  	// StackStatusCreateComplete is a StackStatus enum value
 23070  	StackStatusCreateComplete = "CREATE_COMPLETE"
 23071  
 23072  	// StackStatusRollbackInProgress is a StackStatus enum value
 23073  	StackStatusRollbackInProgress = "ROLLBACK_IN_PROGRESS"
 23074  
 23075  	// StackStatusRollbackFailed is a StackStatus enum value
 23076  	StackStatusRollbackFailed = "ROLLBACK_FAILED"
 23077  
 23078  	// StackStatusRollbackComplete is a StackStatus enum value
 23079  	StackStatusRollbackComplete = "ROLLBACK_COMPLETE"
 23080  
 23081  	// StackStatusDeleteInProgress is a StackStatus enum value
 23082  	StackStatusDeleteInProgress = "DELETE_IN_PROGRESS"
 23083  
 23084  	// StackStatusDeleteFailed is a StackStatus enum value
 23085  	StackStatusDeleteFailed = "DELETE_FAILED"
 23086  
 23087  	// StackStatusDeleteComplete is a StackStatus enum value
 23088  	StackStatusDeleteComplete = "DELETE_COMPLETE"
 23089  
 23090  	// StackStatusUpdateInProgress is a StackStatus enum value
 23091  	StackStatusUpdateInProgress = "UPDATE_IN_PROGRESS"
 23092  
 23093  	// StackStatusUpdateCompleteCleanupInProgress is a StackStatus enum value
 23094  	StackStatusUpdateCompleteCleanupInProgress = "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
 23095  
 23096  	// StackStatusUpdateComplete is a StackStatus enum value
 23097  	StackStatusUpdateComplete = "UPDATE_COMPLETE"
 23098  
 23099  	// StackStatusUpdateFailed is a StackStatus enum value
 23100  	StackStatusUpdateFailed = "UPDATE_FAILED"
 23101  
 23102  	// StackStatusUpdateRollbackInProgress is a StackStatus enum value
 23103  	StackStatusUpdateRollbackInProgress = "UPDATE_ROLLBACK_IN_PROGRESS"
 23104  
 23105  	// StackStatusUpdateRollbackFailed is a StackStatus enum value
 23106  	StackStatusUpdateRollbackFailed = "UPDATE_ROLLBACK_FAILED"
 23107  
 23108  	// StackStatusUpdateRollbackCompleteCleanupInProgress is a StackStatus enum value
 23109  	StackStatusUpdateRollbackCompleteCleanupInProgress = "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS"
 23110  
 23111  	// StackStatusUpdateRollbackComplete is a StackStatus enum value
 23112  	StackStatusUpdateRollbackComplete = "UPDATE_ROLLBACK_COMPLETE"
 23113  
 23114  	// StackStatusReviewInProgress is a StackStatus enum value
 23115  	StackStatusReviewInProgress = "REVIEW_IN_PROGRESS"
 23116  
 23117  	// StackStatusImportInProgress is a StackStatus enum value
 23118  	StackStatusImportInProgress = "IMPORT_IN_PROGRESS"
 23119  
 23120  	// StackStatusImportComplete is a StackStatus enum value
 23121  	StackStatusImportComplete = "IMPORT_COMPLETE"
 23122  
 23123  	// StackStatusImportRollbackInProgress is a StackStatus enum value
 23124  	StackStatusImportRollbackInProgress = "IMPORT_ROLLBACK_IN_PROGRESS"
 23125  
 23126  	// StackStatusImportRollbackFailed is a StackStatus enum value
 23127  	StackStatusImportRollbackFailed = "IMPORT_ROLLBACK_FAILED"
 23128  
 23129  	// StackStatusImportRollbackComplete is a StackStatus enum value
 23130  	StackStatusImportRollbackComplete = "IMPORT_ROLLBACK_COMPLETE"
 23131  )
 23132  
 23133  // StackStatus_Values returns all elements of the StackStatus enum
 23134  func StackStatus_Values() []string {
 23135  	return []string{
 23136  		StackStatusCreateInProgress,
 23137  		StackStatusCreateFailed,
 23138  		StackStatusCreateComplete,
 23139  		StackStatusRollbackInProgress,
 23140  		StackStatusRollbackFailed,
 23141  		StackStatusRollbackComplete,
 23142  		StackStatusDeleteInProgress,
 23143  		StackStatusDeleteFailed,
 23144  		StackStatusDeleteComplete,
 23145  		StackStatusUpdateInProgress,
 23146  		StackStatusUpdateCompleteCleanupInProgress,
 23147  		StackStatusUpdateComplete,
 23148  		StackStatusUpdateFailed,
 23149  		StackStatusUpdateRollbackInProgress,
 23150  		StackStatusUpdateRollbackFailed,
 23151  		StackStatusUpdateRollbackCompleteCleanupInProgress,
 23152  		StackStatusUpdateRollbackComplete,
 23153  		StackStatusReviewInProgress,
 23154  		StackStatusImportInProgress,
 23155  		StackStatusImportComplete,
 23156  		StackStatusImportRollbackInProgress,
 23157  		StackStatusImportRollbackFailed,
 23158  		StackStatusImportRollbackComplete,
 23159  	}
 23160  }
 23161  
 23162  const (
 23163  	// TemplateStageOriginal is a TemplateStage enum value
 23164  	TemplateStageOriginal = "Original"
 23165  
 23166  	// TemplateStageProcessed is a TemplateStage enum value
 23167  	TemplateStageProcessed = "Processed"
 23168  )
 23169  
 23170  // TemplateStage_Values returns all elements of the TemplateStage enum
 23171  func TemplateStage_Values() []string {
 23172  	return []string{
 23173  		TemplateStageOriginal,
 23174  		TemplateStageProcessed,
 23175  	}
 23176  }
 23177  
 23178  const (
 23179  	// ThirdPartyTypeResource is a ThirdPartyType enum value
 23180  	ThirdPartyTypeResource = "RESOURCE"
 23181  
 23182  	// ThirdPartyTypeModule is a ThirdPartyType enum value
 23183  	ThirdPartyTypeModule = "MODULE"
 23184  )
 23185  
 23186  // ThirdPartyType_Values returns all elements of the ThirdPartyType enum
 23187  func ThirdPartyType_Values() []string {
 23188  	return []string{
 23189  		ThirdPartyTypeResource,
 23190  		ThirdPartyTypeModule,
 23191  	}
 23192  }
 23193  
 23194  const (
 23195  	// TypeTestsStatusPassed is a TypeTestsStatus enum value
 23196  	TypeTestsStatusPassed = "PASSED"
 23197  
 23198  	// TypeTestsStatusFailed is a TypeTestsStatus enum value
 23199  	TypeTestsStatusFailed = "FAILED"
 23200  
 23201  	// TypeTestsStatusInProgress is a TypeTestsStatus enum value
 23202  	TypeTestsStatusInProgress = "IN_PROGRESS"
 23203  
 23204  	// TypeTestsStatusNotTested is a TypeTestsStatus enum value
 23205  	TypeTestsStatusNotTested = "NOT_TESTED"
 23206  )
 23207  
 23208  // TypeTestsStatus_Values returns all elements of the TypeTestsStatus enum
 23209  func TypeTestsStatus_Values() []string {
 23210  	return []string{
 23211  		TypeTestsStatusPassed,
 23212  		TypeTestsStatusFailed,
 23213  		TypeTestsStatusInProgress,
 23214  		TypeTestsStatusNotTested,
 23215  	}
 23216  }
 23217  
 23218  const (
 23219  	// VersionBumpMajor is a VersionBump enum value
 23220  	VersionBumpMajor = "MAJOR"
 23221  
 23222  	// VersionBumpMinor is a VersionBump enum value
 23223  	VersionBumpMinor = "MINOR"
 23224  )
 23225  
 23226  // VersionBump_Values returns all elements of the VersionBump enum
 23227  func VersionBump_Values() []string {
 23228  	return []string{
 23229  		VersionBumpMajor,
 23230  		VersionBumpMinor,
 23231  	}
 23232  }
 23233  
 23234  const (
 23235  	// VisibilityPublic is a Visibility enum value
 23236  	VisibilityPublic = "PUBLIC"
 23237  
 23238  	// VisibilityPrivate is a Visibility enum value
 23239  	VisibilityPrivate = "PRIVATE"
 23240  )
 23241  
 23242  // Visibility_Values returns all elements of the Visibility enum
 23243  func Visibility_Values() []string {
 23244  	return []string{
 23245  		VisibilityPublic,
 23246  		VisibilityPrivate,
 23247  	}
 23248  }