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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package resourcegroupstaggingapi
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/aavshr/aws-sdk-go/aws"
     9  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    10  	"github.com/aavshr/aws-sdk-go/aws/request"
    11  	"github.com/aavshr/aws-sdk-go/private/protocol"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    13  )
    14  
    15  const opDescribeReportCreation = "DescribeReportCreation"
    16  
    17  // DescribeReportCreationRequest generates a "aws/request.Request" representing the
    18  // client's request for the DescribeReportCreation operation. The "output" return
    19  // value will be populated with the request's response once the request completes
    20  // successfully.
    21  //
    22  // Use "Send" method on the returned Request to send the API call to the service.
    23  // the "output" return value is not valid until after Send returns without error.
    24  //
    25  // See DescribeReportCreation for more information on using the DescribeReportCreation
    26  // API call, and error handling.
    27  //
    28  // This method is useful when you want to inject custom logic or configuration
    29  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    30  //
    31  //
    32  //    // Example sending a request using the DescribeReportCreationRequest method.
    33  //    req, resp := client.DescribeReportCreationRequest(params)
    34  //
    35  //    err := req.Send()
    36  //    if err == nil { // resp is now filled
    37  //        fmt.Println(resp)
    38  //    }
    39  //
    40  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/DescribeReportCreation
    41  func (c *ResourceGroupsTaggingAPI) DescribeReportCreationRequest(input *DescribeReportCreationInput) (req *request.Request, output *DescribeReportCreationOutput) {
    42  	op := &request.Operation{
    43  		Name:       opDescribeReportCreation,
    44  		HTTPMethod: "POST",
    45  		HTTPPath:   "/",
    46  	}
    47  
    48  	if input == nil {
    49  		input = &DescribeReportCreationInput{}
    50  	}
    51  
    52  	output = &DescribeReportCreationOutput{}
    53  	req = c.newRequest(op, input, output)
    54  	return
    55  }
    56  
    57  // DescribeReportCreation API operation for AWS Resource Groups Tagging API.
    58  //
    59  // Describes the status of the StartReportCreation operation.
    60  //
    61  // You can call this operation only from the organization's management account
    62  // and from the us-east-1 Region.
    63  //
    64  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    65  // with awserr.Error's Code and Message methods to get detailed information about
    66  // the error.
    67  //
    68  // See the AWS API reference guide for AWS Resource Groups Tagging API's
    69  // API operation DescribeReportCreation for usage and error information.
    70  //
    71  // Returned Error Types:
    72  //   * ConstraintViolationException
    73  //   The request was denied because performing this operation violates a constraint.
    74  //
    75  //   Some of the reasons in the following list might not apply to this specific
    76  //   operation.
    77  //
    78  //      * You must meet the prerequisites for using tag policies. For information,
    79  //      see Prerequisites and Permissions for Using Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html)
    80  //      in the AWS Organizations User Guide.
    81  //
    82  //      * You must enable the tag policies service principal (tagpolicies.tag.amazonaws.com)
    83  //      to integrate with AWS Organizations For information, see EnableAWSServiceAccess
    84  //      (http://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html).
    85  //
    86  //      * You must have a tag policy attached to the organization root, an OU,
    87  //      or an account.
    88  //
    89  //   * InternalServiceException
    90  //   The request processing failed because of an unknown error, exception, or
    91  //   failure. You can retry the request.
    92  //
    93  //   * InvalidParameterException
    94  //   This error indicates one of the following:
    95  //
    96  //      * A parameter is missing.
    97  //
    98  //      * A malformed string was supplied for the request parameter.
    99  //
   100  //      * An out-of-range value was supplied for the request parameter.
   101  //
   102  //      * The target ID is invalid, unsupported, or doesn't exist.
   103  //
   104  //      * You can't access the Amazon S3 bucket for report storage. For more information,
   105  //      see Additional Requirements for Organization-wide Tag Compliance Reports
   106  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
   107  //      in the AWS Organizations User Guide.
   108  //
   109  //   * ThrottledException
   110  //   The request was denied to limit the frequency of submitted requests.
   111  //
   112  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/DescribeReportCreation
   113  func (c *ResourceGroupsTaggingAPI) DescribeReportCreation(input *DescribeReportCreationInput) (*DescribeReportCreationOutput, error) {
   114  	req, out := c.DescribeReportCreationRequest(input)
   115  	return out, req.Send()
   116  }
   117  
   118  // DescribeReportCreationWithContext is the same as DescribeReportCreation with the addition of
   119  // the ability to pass a context and additional request options.
   120  //
   121  // See DescribeReportCreation for details on how to use this API operation.
   122  //
   123  // The context must be non-nil and will be used for request cancellation. If
   124  // the context is nil a panic will occur. In the future the SDK may create
   125  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   126  // for more information on using Contexts.
   127  func (c *ResourceGroupsTaggingAPI) DescribeReportCreationWithContext(ctx aws.Context, input *DescribeReportCreationInput, opts ...request.Option) (*DescribeReportCreationOutput, error) {
   128  	req, out := c.DescribeReportCreationRequest(input)
   129  	req.SetContext(ctx)
   130  	req.ApplyOptions(opts...)
   131  	return out, req.Send()
   132  }
   133  
   134  const opGetComplianceSummary = "GetComplianceSummary"
   135  
   136  // GetComplianceSummaryRequest generates a "aws/request.Request" representing the
   137  // client's request for the GetComplianceSummary operation. The "output" return
   138  // value will be populated with the request's response once the request completes
   139  // successfully.
   140  //
   141  // Use "Send" method on the returned Request to send the API call to the service.
   142  // the "output" return value is not valid until after Send returns without error.
   143  //
   144  // See GetComplianceSummary for more information on using the GetComplianceSummary
   145  // API call, and error handling.
   146  //
   147  // This method is useful when you want to inject custom logic or configuration
   148  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   149  //
   150  //
   151  //    // Example sending a request using the GetComplianceSummaryRequest method.
   152  //    req, resp := client.GetComplianceSummaryRequest(params)
   153  //
   154  //    err := req.Send()
   155  //    if err == nil { // resp is now filled
   156  //        fmt.Println(resp)
   157  //    }
   158  //
   159  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetComplianceSummary
   160  func (c *ResourceGroupsTaggingAPI) GetComplianceSummaryRequest(input *GetComplianceSummaryInput) (req *request.Request, output *GetComplianceSummaryOutput) {
   161  	op := &request.Operation{
   162  		Name:       opGetComplianceSummary,
   163  		HTTPMethod: "POST",
   164  		HTTPPath:   "/",
   165  		Paginator: &request.Paginator{
   166  			InputTokens:     []string{"PaginationToken"},
   167  			OutputTokens:    []string{"PaginationToken"},
   168  			LimitToken:      "MaxResults",
   169  			TruncationToken: "",
   170  		},
   171  	}
   172  
   173  	if input == nil {
   174  		input = &GetComplianceSummaryInput{}
   175  	}
   176  
   177  	output = &GetComplianceSummaryOutput{}
   178  	req = c.newRequest(op, input, output)
   179  	return
   180  }
   181  
   182  // GetComplianceSummary API operation for AWS Resource Groups Tagging API.
   183  //
   184  // Returns a table that shows counts of resources that are noncompliant with
   185  // their tag policies.
   186  //
   187  // For more information on tag policies, see Tag Policies (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html)
   188  // in the AWS Organizations User Guide.
   189  //
   190  // You can call this operation only from the organization's management account
   191  // and from the us-east-1 Region.
   192  //
   193  // This operation supports pagination, where the response can be sent in multiple
   194  // pages. You should check the PaginationToken response parameter to determine
   195  // if there are additional results available to return. Repeat the query, passing
   196  // the PaginationToken response parameter value as an input to the next request
   197  // until you recieve a null value. A null value for PaginationToken indicates
   198  // that there are no more results waiting to be returned.
   199  //
   200  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   201  // with awserr.Error's Code and Message methods to get detailed information about
   202  // the error.
   203  //
   204  // See the AWS API reference guide for AWS Resource Groups Tagging API's
   205  // API operation GetComplianceSummary for usage and error information.
   206  //
   207  // Returned Error Types:
   208  //   * ConstraintViolationException
   209  //   The request was denied because performing this operation violates a constraint.
   210  //
   211  //   Some of the reasons in the following list might not apply to this specific
   212  //   operation.
   213  //
   214  //      * You must meet the prerequisites for using tag policies. For information,
   215  //      see Prerequisites and Permissions for Using Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html)
   216  //      in the AWS Organizations User Guide.
   217  //
   218  //      * You must enable the tag policies service principal (tagpolicies.tag.amazonaws.com)
   219  //      to integrate with AWS Organizations For information, see EnableAWSServiceAccess
   220  //      (http://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html).
   221  //
   222  //      * You must have a tag policy attached to the organization root, an OU,
   223  //      or an account.
   224  //
   225  //   * InternalServiceException
   226  //   The request processing failed because of an unknown error, exception, or
   227  //   failure. You can retry the request.
   228  //
   229  //   * InvalidParameterException
   230  //   This error indicates one of the following:
   231  //
   232  //      * A parameter is missing.
   233  //
   234  //      * A malformed string was supplied for the request parameter.
   235  //
   236  //      * An out-of-range value was supplied for the request parameter.
   237  //
   238  //      * The target ID is invalid, unsupported, or doesn't exist.
   239  //
   240  //      * You can't access the Amazon S3 bucket for report storage. For more information,
   241  //      see Additional Requirements for Organization-wide Tag Compliance Reports
   242  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
   243  //      in the AWS Organizations User Guide.
   244  //
   245  //   * ThrottledException
   246  //   The request was denied to limit the frequency of submitted requests.
   247  //
   248  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetComplianceSummary
   249  func (c *ResourceGroupsTaggingAPI) GetComplianceSummary(input *GetComplianceSummaryInput) (*GetComplianceSummaryOutput, error) {
   250  	req, out := c.GetComplianceSummaryRequest(input)
   251  	return out, req.Send()
   252  }
   253  
   254  // GetComplianceSummaryWithContext is the same as GetComplianceSummary with the addition of
   255  // the ability to pass a context and additional request options.
   256  //
   257  // See GetComplianceSummary for details on how to use this API operation.
   258  //
   259  // The context must be non-nil and will be used for request cancellation. If
   260  // the context is nil a panic will occur. In the future the SDK may create
   261  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   262  // for more information on using Contexts.
   263  func (c *ResourceGroupsTaggingAPI) GetComplianceSummaryWithContext(ctx aws.Context, input *GetComplianceSummaryInput, opts ...request.Option) (*GetComplianceSummaryOutput, error) {
   264  	req, out := c.GetComplianceSummaryRequest(input)
   265  	req.SetContext(ctx)
   266  	req.ApplyOptions(opts...)
   267  	return out, req.Send()
   268  }
   269  
   270  // GetComplianceSummaryPages iterates over the pages of a GetComplianceSummary operation,
   271  // calling the "fn" function with the response data for each page. To stop
   272  // iterating, return false from the fn function.
   273  //
   274  // See GetComplianceSummary method for more information on how to use this operation.
   275  //
   276  // Note: This operation can generate multiple requests to a service.
   277  //
   278  //    // Example iterating over at most 3 pages of a GetComplianceSummary operation.
   279  //    pageNum := 0
   280  //    err := client.GetComplianceSummaryPages(params,
   281  //        func(page *resourcegroupstaggingapi.GetComplianceSummaryOutput, lastPage bool) bool {
   282  //            pageNum++
   283  //            fmt.Println(page)
   284  //            return pageNum <= 3
   285  //        })
   286  //
   287  func (c *ResourceGroupsTaggingAPI) GetComplianceSummaryPages(input *GetComplianceSummaryInput, fn func(*GetComplianceSummaryOutput, bool) bool) error {
   288  	return c.GetComplianceSummaryPagesWithContext(aws.BackgroundContext(), input, fn)
   289  }
   290  
   291  // GetComplianceSummaryPagesWithContext same as GetComplianceSummaryPages except
   292  // it takes a Context and allows setting request options on the pages.
   293  //
   294  // The context must be non-nil and will be used for request cancellation. If
   295  // the context is nil a panic will occur. In the future the SDK may create
   296  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   297  // for more information on using Contexts.
   298  func (c *ResourceGroupsTaggingAPI) GetComplianceSummaryPagesWithContext(ctx aws.Context, input *GetComplianceSummaryInput, fn func(*GetComplianceSummaryOutput, bool) bool, opts ...request.Option) error {
   299  	p := request.Pagination{
   300  		NewRequest: func() (*request.Request, error) {
   301  			var inCpy *GetComplianceSummaryInput
   302  			if input != nil {
   303  				tmp := *input
   304  				inCpy = &tmp
   305  			}
   306  			req, _ := c.GetComplianceSummaryRequest(inCpy)
   307  			req.SetContext(ctx)
   308  			req.ApplyOptions(opts...)
   309  			return req, nil
   310  		},
   311  	}
   312  
   313  	for p.Next() {
   314  		if !fn(p.Page().(*GetComplianceSummaryOutput), !p.HasNextPage()) {
   315  			break
   316  		}
   317  	}
   318  
   319  	return p.Err()
   320  }
   321  
   322  const opGetResources = "GetResources"
   323  
   324  // GetResourcesRequest generates a "aws/request.Request" representing the
   325  // client's request for the GetResources operation. The "output" return
   326  // value will be populated with the request's response once the request completes
   327  // successfully.
   328  //
   329  // Use "Send" method on the returned Request to send the API call to the service.
   330  // the "output" return value is not valid until after Send returns without error.
   331  //
   332  // See GetResources for more information on using the GetResources
   333  // API call, and error handling.
   334  //
   335  // This method is useful when you want to inject custom logic or configuration
   336  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   337  //
   338  //
   339  //    // Example sending a request using the GetResourcesRequest method.
   340  //    req, resp := client.GetResourcesRequest(params)
   341  //
   342  //    err := req.Send()
   343  //    if err == nil { // resp is now filled
   344  //        fmt.Println(resp)
   345  //    }
   346  //
   347  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetResources
   348  func (c *ResourceGroupsTaggingAPI) GetResourcesRequest(input *GetResourcesInput) (req *request.Request, output *GetResourcesOutput) {
   349  	op := &request.Operation{
   350  		Name:       opGetResources,
   351  		HTTPMethod: "POST",
   352  		HTTPPath:   "/",
   353  		Paginator: &request.Paginator{
   354  			InputTokens:     []string{"PaginationToken"},
   355  			OutputTokens:    []string{"PaginationToken"},
   356  			LimitToken:      "ResourcesPerPage",
   357  			TruncationToken: "",
   358  		},
   359  	}
   360  
   361  	if input == nil {
   362  		input = &GetResourcesInput{}
   363  	}
   364  
   365  	output = &GetResourcesOutput{}
   366  	req = c.newRequest(op, input, output)
   367  	return
   368  }
   369  
   370  // GetResources API operation for AWS Resource Groups Tagging API.
   371  //
   372  // Returns all the tagged or previously tagged resources that are located in
   373  // the specified Region for the AWS account.
   374  //
   375  // Depending on what information you want returned, you can also specify the
   376  // following:
   377  //
   378  //    * Filters that specify what tags and resource types you want returned.
   379  //    The response includes all tags that are associated with the requested
   380  //    resources.
   381  //
   382  //    * Information about compliance with the account's effective tag policy.
   383  //    For more information on tag policies, see Tag Policies (https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html)
   384  //    in the AWS Organizations User Guide.
   385  //
   386  // This operation supports pagination, where the response can be sent in multiple
   387  // pages. You should check the PaginationToken response parameter to determine
   388  // if there are additional results available to return. Repeat the query, passing
   389  // the PaginationToken response parameter value as an input to the next request
   390  // until you recieve a null value. A null value for PaginationToken indicates
   391  // that there are no more results waiting to be returned.
   392  //
   393  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   394  // with awserr.Error's Code and Message methods to get detailed information about
   395  // the error.
   396  //
   397  // See the AWS API reference guide for AWS Resource Groups Tagging API's
   398  // API operation GetResources for usage and error information.
   399  //
   400  // Returned Error Types:
   401  //   * InvalidParameterException
   402  //   This error indicates one of the following:
   403  //
   404  //      * A parameter is missing.
   405  //
   406  //      * A malformed string was supplied for the request parameter.
   407  //
   408  //      * An out-of-range value was supplied for the request parameter.
   409  //
   410  //      * The target ID is invalid, unsupported, or doesn't exist.
   411  //
   412  //      * You can't access the Amazon S3 bucket for report storage. For more information,
   413  //      see Additional Requirements for Organization-wide Tag Compliance Reports
   414  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
   415  //      in the AWS Organizations User Guide.
   416  //
   417  //   * ThrottledException
   418  //   The request was denied to limit the frequency of submitted requests.
   419  //
   420  //   * InternalServiceException
   421  //   The request processing failed because of an unknown error, exception, or
   422  //   failure. You can retry the request.
   423  //
   424  //   * PaginationTokenExpiredException
   425  //   A PaginationToken is valid for a maximum of 15 minutes. Your request was
   426  //   denied because the specified PaginationToken has expired.
   427  //
   428  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetResources
   429  func (c *ResourceGroupsTaggingAPI) GetResources(input *GetResourcesInput) (*GetResourcesOutput, error) {
   430  	req, out := c.GetResourcesRequest(input)
   431  	return out, req.Send()
   432  }
   433  
   434  // GetResourcesWithContext is the same as GetResources with the addition of
   435  // the ability to pass a context and additional request options.
   436  //
   437  // See GetResources for details on how to use this API operation.
   438  //
   439  // The context must be non-nil and will be used for request cancellation. If
   440  // the context is nil a panic will occur. In the future the SDK may create
   441  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   442  // for more information on using Contexts.
   443  func (c *ResourceGroupsTaggingAPI) GetResourcesWithContext(ctx aws.Context, input *GetResourcesInput, opts ...request.Option) (*GetResourcesOutput, error) {
   444  	req, out := c.GetResourcesRequest(input)
   445  	req.SetContext(ctx)
   446  	req.ApplyOptions(opts...)
   447  	return out, req.Send()
   448  }
   449  
   450  // GetResourcesPages iterates over the pages of a GetResources operation,
   451  // calling the "fn" function with the response data for each page. To stop
   452  // iterating, return false from the fn function.
   453  //
   454  // See GetResources method for more information on how to use this operation.
   455  //
   456  // Note: This operation can generate multiple requests to a service.
   457  //
   458  //    // Example iterating over at most 3 pages of a GetResources operation.
   459  //    pageNum := 0
   460  //    err := client.GetResourcesPages(params,
   461  //        func(page *resourcegroupstaggingapi.GetResourcesOutput, lastPage bool) bool {
   462  //            pageNum++
   463  //            fmt.Println(page)
   464  //            return pageNum <= 3
   465  //        })
   466  //
   467  func (c *ResourceGroupsTaggingAPI) GetResourcesPages(input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool) error {
   468  	return c.GetResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
   469  }
   470  
   471  // GetResourcesPagesWithContext same as GetResourcesPages except
   472  // it takes a Context and allows setting request options on the pages.
   473  //
   474  // The context must be non-nil and will be used for request cancellation. If
   475  // the context is nil a panic will occur. In the future the SDK may create
   476  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   477  // for more information on using Contexts.
   478  func (c *ResourceGroupsTaggingAPI) GetResourcesPagesWithContext(ctx aws.Context, input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool, opts ...request.Option) error {
   479  	p := request.Pagination{
   480  		NewRequest: func() (*request.Request, error) {
   481  			var inCpy *GetResourcesInput
   482  			if input != nil {
   483  				tmp := *input
   484  				inCpy = &tmp
   485  			}
   486  			req, _ := c.GetResourcesRequest(inCpy)
   487  			req.SetContext(ctx)
   488  			req.ApplyOptions(opts...)
   489  			return req, nil
   490  		},
   491  	}
   492  
   493  	for p.Next() {
   494  		if !fn(p.Page().(*GetResourcesOutput), !p.HasNextPage()) {
   495  			break
   496  		}
   497  	}
   498  
   499  	return p.Err()
   500  }
   501  
   502  const opGetTagKeys = "GetTagKeys"
   503  
   504  // GetTagKeysRequest generates a "aws/request.Request" representing the
   505  // client's request for the GetTagKeys operation. The "output" return
   506  // value will be populated with the request's response once the request completes
   507  // successfully.
   508  //
   509  // Use "Send" method on the returned Request to send the API call to the service.
   510  // the "output" return value is not valid until after Send returns without error.
   511  //
   512  // See GetTagKeys for more information on using the GetTagKeys
   513  // API call, and error handling.
   514  //
   515  // This method is useful when you want to inject custom logic or configuration
   516  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   517  //
   518  //
   519  //    // Example sending a request using the GetTagKeysRequest method.
   520  //    req, resp := client.GetTagKeysRequest(params)
   521  //
   522  //    err := req.Send()
   523  //    if err == nil { // resp is now filled
   524  //        fmt.Println(resp)
   525  //    }
   526  //
   527  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagKeys
   528  func (c *ResourceGroupsTaggingAPI) GetTagKeysRequest(input *GetTagKeysInput) (req *request.Request, output *GetTagKeysOutput) {
   529  	op := &request.Operation{
   530  		Name:       opGetTagKeys,
   531  		HTTPMethod: "POST",
   532  		HTTPPath:   "/",
   533  		Paginator: &request.Paginator{
   534  			InputTokens:     []string{"PaginationToken"},
   535  			OutputTokens:    []string{"PaginationToken"},
   536  			LimitToken:      "",
   537  			TruncationToken: "",
   538  		},
   539  	}
   540  
   541  	if input == nil {
   542  		input = &GetTagKeysInput{}
   543  	}
   544  
   545  	output = &GetTagKeysOutput{}
   546  	req = c.newRequest(op, input, output)
   547  	return
   548  }
   549  
   550  // GetTagKeys API operation for AWS Resource Groups Tagging API.
   551  //
   552  // Returns all tag keys currently in use in the specified Region for the calling
   553  // AWS account.
   554  //
   555  // This operation supports pagination, where the response can be sent in multiple
   556  // pages. You should check the PaginationToken response parameter to determine
   557  // if there are additional results available to return. Repeat the query, passing
   558  // the PaginationToken response parameter value as an input to the next request
   559  // until you recieve a null value. A null value for PaginationToken indicates
   560  // that there are no more results waiting to be returned.
   561  //
   562  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   563  // with awserr.Error's Code and Message methods to get detailed information about
   564  // the error.
   565  //
   566  // See the AWS API reference guide for AWS Resource Groups Tagging API's
   567  // API operation GetTagKeys for usage and error information.
   568  //
   569  // Returned Error Types:
   570  //   * InvalidParameterException
   571  //   This error indicates one of the following:
   572  //
   573  //      * A parameter is missing.
   574  //
   575  //      * A malformed string was supplied for the request parameter.
   576  //
   577  //      * An out-of-range value was supplied for the request parameter.
   578  //
   579  //      * The target ID is invalid, unsupported, or doesn't exist.
   580  //
   581  //      * You can't access the Amazon S3 bucket for report storage. For more information,
   582  //      see Additional Requirements for Organization-wide Tag Compliance Reports
   583  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
   584  //      in the AWS Organizations User Guide.
   585  //
   586  //   * ThrottledException
   587  //   The request was denied to limit the frequency of submitted requests.
   588  //
   589  //   * InternalServiceException
   590  //   The request processing failed because of an unknown error, exception, or
   591  //   failure. You can retry the request.
   592  //
   593  //   * PaginationTokenExpiredException
   594  //   A PaginationToken is valid for a maximum of 15 minutes. Your request was
   595  //   denied because the specified PaginationToken has expired.
   596  //
   597  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagKeys
   598  func (c *ResourceGroupsTaggingAPI) GetTagKeys(input *GetTagKeysInput) (*GetTagKeysOutput, error) {
   599  	req, out := c.GetTagKeysRequest(input)
   600  	return out, req.Send()
   601  }
   602  
   603  // GetTagKeysWithContext is the same as GetTagKeys with the addition of
   604  // the ability to pass a context and additional request options.
   605  //
   606  // See GetTagKeys for details on how to use this API operation.
   607  //
   608  // The context must be non-nil and will be used for request cancellation. If
   609  // the context is nil a panic will occur. In the future the SDK may create
   610  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   611  // for more information on using Contexts.
   612  func (c *ResourceGroupsTaggingAPI) GetTagKeysWithContext(ctx aws.Context, input *GetTagKeysInput, opts ...request.Option) (*GetTagKeysOutput, error) {
   613  	req, out := c.GetTagKeysRequest(input)
   614  	req.SetContext(ctx)
   615  	req.ApplyOptions(opts...)
   616  	return out, req.Send()
   617  }
   618  
   619  // GetTagKeysPages iterates over the pages of a GetTagKeys operation,
   620  // calling the "fn" function with the response data for each page. To stop
   621  // iterating, return false from the fn function.
   622  //
   623  // See GetTagKeys method for more information on how to use this operation.
   624  //
   625  // Note: This operation can generate multiple requests to a service.
   626  //
   627  //    // Example iterating over at most 3 pages of a GetTagKeys operation.
   628  //    pageNum := 0
   629  //    err := client.GetTagKeysPages(params,
   630  //        func(page *resourcegroupstaggingapi.GetTagKeysOutput, lastPage bool) bool {
   631  //            pageNum++
   632  //            fmt.Println(page)
   633  //            return pageNum <= 3
   634  //        })
   635  //
   636  func (c *ResourceGroupsTaggingAPI) GetTagKeysPages(input *GetTagKeysInput, fn func(*GetTagKeysOutput, bool) bool) error {
   637  	return c.GetTagKeysPagesWithContext(aws.BackgroundContext(), input, fn)
   638  }
   639  
   640  // GetTagKeysPagesWithContext same as GetTagKeysPages except
   641  // it takes a Context and allows setting request options on the pages.
   642  //
   643  // The context must be non-nil and will be used for request cancellation. If
   644  // the context is nil a panic will occur. In the future the SDK may create
   645  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   646  // for more information on using Contexts.
   647  func (c *ResourceGroupsTaggingAPI) GetTagKeysPagesWithContext(ctx aws.Context, input *GetTagKeysInput, fn func(*GetTagKeysOutput, bool) bool, opts ...request.Option) error {
   648  	p := request.Pagination{
   649  		NewRequest: func() (*request.Request, error) {
   650  			var inCpy *GetTagKeysInput
   651  			if input != nil {
   652  				tmp := *input
   653  				inCpy = &tmp
   654  			}
   655  			req, _ := c.GetTagKeysRequest(inCpy)
   656  			req.SetContext(ctx)
   657  			req.ApplyOptions(opts...)
   658  			return req, nil
   659  		},
   660  	}
   661  
   662  	for p.Next() {
   663  		if !fn(p.Page().(*GetTagKeysOutput), !p.HasNextPage()) {
   664  			break
   665  		}
   666  	}
   667  
   668  	return p.Err()
   669  }
   670  
   671  const opGetTagValues = "GetTagValues"
   672  
   673  // GetTagValuesRequest generates a "aws/request.Request" representing the
   674  // client's request for the GetTagValues operation. The "output" return
   675  // value will be populated with the request's response once the request completes
   676  // successfully.
   677  //
   678  // Use "Send" method on the returned Request to send the API call to the service.
   679  // the "output" return value is not valid until after Send returns without error.
   680  //
   681  // See GetTagValues for more information on using the GetTagValues
   682  // API call, and error handling.
   683  //
   684  // This method is useful when you want to inject custom logic or configuration
   685  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   686  //
   687  //
   688  //    // Example sending a request using the GetTagValuesRequest method.
   689  //    req, resp := client.GetTagValuesRequest(params)
   690  //
   691  //    err := req.Send()
   692  //    if err == nil { // resp is now filled
   693  //        fmt.Println(resp)
   694  //    }
   695  //
   696  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagValues
   697  func (c *ResourceGroupsTaggingAPI) GetTagValuesRequest(input *GetTagValuesInput) (req *request.Request, output *GetTagValuesOutput) {
   698  	op := &request.Operation{
   699  		Name:       opGetTagValues,
   700  		HTTPMethod: "POST",
   701  		HTTPPath:   "/",
   702  		Paginator: &request.Paginator{
   703  			InputTokens:     []string{"PaginationToken"},
   704  			OutputTokens:    []string{"PaginationToken"},
   705  			LimitToken:      "",
   706  			TruncationToken: "",
   707  		},
   708  	}
   709  
   710  	if input == nil {
   711  		input = &GetTagValuesInput{}
   712  	}
   713  
   714  	output = &GetTagValuesOutput{}
   715  	req = c.newRequest(op, input, output)
   716  	return
   717  }
   718  
   719  // GetTagValues API operation for AWS Resource Groups Tagging API.
   720  //
   721  // Returns all tag values for the specified key that are used in the specified
   722  // AWS Region for the calling AWS account.
   723  //
   724  // This operation supports pagination, where the response can be sent in multiple
   725  // pages. You should check the PaginationToken response parameter to determine
   726  // if there are additional results available to return. Repeat the query, passing
   727  // the PaginationToken response parameter value as an input to the next request
   728  // until you recieve a null value. A null value for PaginationToken indicates
   729  // that there are no more results waiting to be returned.
   730  //
   731  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   732  // with awserr.Error's Code and Message methods to get detailed information about
   733  // the error.
   734  //
   735  // See the AWS API reference guide for AWS Resource Groups Tagging API's
   736  // API operation GetTagValues for usage and error information.
   737  //
   738  // Returned Error Types:
   739  //   * InvalidParameterException
   740  //   This error indicates one of the following:
   741  //
   742  //      * A parameter is missing.
   743  //
   744  //      * A malformed string was supplied for the request parameter.
   745  //
   746  //      * An out-of-range value was supplied for the request parameter.
   747  //
   748  //      * The target ID is invalid, unsupported, or doesn't exist.
   749  //
   750  //      * You can't access the Amazon S3 bucket for report storage. For more information,
   751  //      see Additional Requirements for Organization-wide Tag Compliance Reports
   752  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
   753  //      in the AWS Organizations User Guide.
   754  //
   755  //   * ThrottledException
   756  //   The request was denied to limit the frequency of submitted requests.
   757  //
   758  //   * InternalServiceException
   759  //   The request processing failed because of an unknown error, exception, or
   760  //   failure. You can retry the request.
   761  //
   762  //   * PaginationTokenExpiredException
   763  //   A PaginationToken is valid for a maximum of 15 minutes. Your request was
   764  //   denied because the specified PaginationToken has expired.
   765  //
   766  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagValues
   767  func (c *ResourceGroupsTaggingAPI) GetTagValues(input *GetTagValuesInput) (*GetTagValuesOutput, error) {
   768  	req, out := c.GetTagValuesRequest(input)
   769  	return out, req.Send()
   770  }
   771  
   772  // GetTagValuesWithContext is the same as GetTagValues with the addition of
   773  // the ability to pass a context and additional request options.
   774  //
   775  // See GetTagValues for details on how to use this API operation.
   776  //
   777  // The context must be non-nil and will be used for request cancellation. If
   778  // the context is nil a panic will occur. In the future the SDK may create
   779  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   780  // for more information on using Contexts.
   781  func (c *ResourceGroupsTaggingAPI) GetTagValuesWithContext(ctx aws.Context, input *GetTagValuesInput, opts ...request.Option) (*GetTagValuesOutput, error) {
   782  	req, out := c.GetTagValuesRequest(input)
   783  	req.SetContext(ctx)
   784  	req.ApplyOptions(opts...)
   785  	return out, req.Send()
   786  }
   787  
   788  // GetTagValuesPages iterates over the pages of a GetTagValues operation,
   789  // calling the "fn" function with the response data for each page. To stop
   790  // iterating, return false from the fn function.
   791  //
   792  // See GetTagValues method for more information on how to use this operation.
   793  //
   794  // Note: This operation can generate multiple requests to a service.
   795  //
   796  //    // Example iterating over at most 3 pages of a GetTagValues operation.
   797  //    pageNum := 0
   798  //    err := client.GetTagValuesPages(params,
   799  //        func(page *resourcegroupstaggingapi.GetTagValuesOutput, lastPage bool) bool {
   800  //            pageNum++
   801  //            fmt.Println(page)
   802  //            return pageNum <= 3
   803  //        })
   804  //
   805  func (c *ResourceGroupsTaggingAPI) GetTagValuesPages(input *GetTagValuesInput, fn func(*GetTagValuesOutput, bool) bool) error {
   806  	return c.GetTagValuesPagesWithContext(aws.BackgroundContext(), input, fn)
   807  }
   808  
   809  // GetTagValuesPagesWithContext same as GetTagValuesPages except
   810  // it takes a Context and allows setting request options on the pages.
   811  //
   812  // The context must be non-nil and will be used for request cancellation. If
   813  // the context is nil a panic will occur. In the future the SDK may create
   814  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   815  // for more information on using Contexts.
   816  func (c *ResourceGroupsTaggingAPI) GetTagValuesPagesWithContext(ctx aws.Context, input *GetTagValuesInput, fn func(*GetTagValuesOutput, bool) bool, opts ...request.Option) error {
   817  	p := request.Pagination{
   818  		NewRequest: func() (*request.Request, error) {
   819  			var inCpy *GetTagValuesInput
   820  			if input != nil {
   821  				tmp := *input
   822  				inCpy = &tmp
   823  			}
   824  			req, _ := c.GetTagValuesRequest(inCpy)
   825  			req.SetContext(ctx)
   826  			req.ApplyOptions(opts...)
   827  			return req, nil
   828  		},
   829  	}
   830  
   831  	for p.Next() {
   832  		if !fn(p.Page().(*GetTagValuesOutput), !p.HasNextPage()) {
   833  			break
   834  		}
   835  	}
   836  
   837  	return p.Err()
   838  }
   839  
   840  const opStartReportCreation = "StartReportCreation"
   841  
   842  // StartReportCreationRequest generates a "aws/request.Request" representing the
   843  // client's request for the StartReportCreation operation. The "output" return
   844  // value will be populated with the request's response once the request completes
   845  // successfully.
   846  //
   847  // Use "Send" method on the returned Request to send the API call to the service.
   848  // the "output" return value is not valid until after Send returns without error.
   849  //
   850  // See StartReportCreation for more information on using the StartReportCreation
   851  // API call, and error handling.
   852  //
   853  // This method is useful when you want to inject custom logic or configuration
   854  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   855  //
   856  //
   857  //    // Example sending a request using the StartReportCreationRequest method.
   858  //    req, resp := client.StartReportCreationRequest(params)
   859  //
   860  //    err := req.Send()
   861  //    if err == nil { // resp is now filled
   862  //        fmt.Println(resp)
   863  //    }
   864  //
   865  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/StartReportCreation
   866  func (c *ResourceGroupsTaggingAPI) StartReportCreationRequest(input *StartReportCreationInput) (req *request.Request, output *StartReportCreationOutput) {
   867  	op := &request.Operation{
   868  		Name:       opStartReportCreation,
   869  		HTTPMethod: "POST",
   870  		HTTPPath:   "/",
   871  	}
   872  
   873  	if input == nil {
   874  		input = &StartReportCreationInput{}
   875  	}
   876  
   877  	output = &StartReportCreationOutput{}
   878  	req = c.newRequest(op, input, output)
   879  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   880  	return
   881  }
   882  
   883  // StartReportCreation API operation for AWS Resource Groups Tagging API.
   884  //
   885  // Generates a report that lists all tagged resources in the accounts across
   886  // your organization and tells whether each resource is compliant with the effective
   887  // tag policy. Compliance data is refreshed daily. The report is generated asynchronously.
   888  //
   889  // The generated report is saved to the following location:
   890  //
   891  // s3://example-bucket/AwsTagPolicies/o-exampleorgid/YYYY-MM-ddTHH:mm:ssZ/report.csv
   892  //
   893  // You can call this operation only from the organization's management account
   894  // and from the us-east-1 Region.
   895  //
   896  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   897  // with awserr.Error's Code and Message methods to get detailed information about
   898  // the error.
   899  //
   900  // See the AWS API reference guide for AWS Resource Groups Tagging API's
   901  // API operation StartReportCreation for usage and error information.
   902  //
   903  // Returned Error Types:
   904  //   * ConcurrentModificationException
   905  //   The target of the operation is currently being modified by a different request.
   906  //   Try again later.
   907  //
   908  //   * ConstraintViolationException
   909  //   The request was denied because performing this operation violates a constraint.
   910  //
   911  //   Some of the reasons in the following list might not apply to this specific
   912  //   operation.
   913  //
   914  //      * You must meet the prerequisites for using tag policies. For information,
   915  //      see Prerequisites and Permissions for Using Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html)
   916  //      in the AWS Organizations User Guide.
   917  //
   918  //      * You must enable the tag policies service principal (tagpolicies.tag.amazonaws.com)
   919  //      to integrate with AWS Organizations For information, see EnableAWSServiceAccess
   920  //      (http://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html).
   921  //
   922  //      * You must have a tag policy attached to the organization root, an OU,
   923  //      or an account.
   924  //
   925  //   * InternalServiceException
   926  //   The request processing failed because of an unknown error, exception, or
   927  //   failure. You can retry the request.
   928  //
   929  //   * InvalidParameterException
   930  //   This error indicates one of the following:
   931  //
   932  //      * A parameter is missing.
   933  //
   934  //      * A malformed string was supplied for the request parameter.
   935  //
   936  //      * An out-of-range value was supplied for the request parameter.
   937  //
   938  //      * The target ID is invalid, unsupported, or doesn't exist.
   939  //
   940  //      * You can't access the Amazon S3 bucket for report storage. For more information,
   941  //      see Additional Requirements for Organization-wide Tag Compliance Reports
   942  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
   943  //      in the AWS Organizations User Guide.
   944  //
   945  //   * ThrottledException
   946  //   The request was denied to limit the frequency of submitted requests.
   947  //
   948  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/StartReportCreation
   949  func (c *ResourceGroupsTaggingAPI) StartReportCreation(input *StartReportCreationInput) (*StartReportCreationOutput, error) {
   950  	req, out := c.StartReportCreationRequest(input)
   951  	return out, req.Send()
   952  }
   953  
   954  // StartReportCreationWithContext is the same as StartReportCreation with the addition of
   955  // the ability to pass a context and additional request options.
   956  //
   957  // See StartReportCreation for details on how to use this API operation.
   958  //
   959  // The context must be non-nil and will be used for request cancellation. If
   960  // the context is nil a panic will occur. In the future the SDK may create
   961  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   962  // for more information on using Contexts.
   963  func (c *ResourceGroupsTaggingAPI) StartReportCreationWithContext(ctx aws.Context, input *StartReportCreationInput, opts ...request.Option) (*StartReportCreationOutput, error) {
   964  	req, out := c.StartReportCreationRequest(input)
   965  	req.SetContext(ctx)
   966  	req.ApplyOptions(opts...)
   967  	return out, req.Send()
   968  }
   969  
   970  const opTagResources = "TagResources"
   971  
   972  // TagResourcesRequest generates a "aws/request.Request" representing the
   973  // client's request for the TagResources operation. The "output" return
   974  // value will be populated with the request's response once the request completes
   975  // successfully.
   976  //
   977  // Use "Send" method on the returned Request to send the API call to the service.
   978  // the "output" return value is not valid until after Send returns without error.
   979  //
   980  // See TagResources for more information on using the TagResources
   981  // API call, and error handling.
   982  //
   983  // This method is useful when you want to inject custom logic or configuration
   984  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   985  //
   986  //
   987  //    // Example sending a request using the TagResourcesRequest method.
   988  //    req, resp := client.TagResourcesRequest(params)
   989  //
   990  //    err := req.Send()
   991  //    if err == nil { // resp is now filled
   992  //        fmt.Println(resp)
   993  //    }
   994  //
   995  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/TagResources
   996  func (c *ResourceGroupsTaggingAPI) TagResourcesRequest(input *TagResourcesInput) (req *request.Request, output *TagResourcesOutput) {
   997  	op := &request.Operation{
   998  		Name:       opTagResources,
   999  		HTTPMethod: "POST",
  1000  		HTTPPath:   "/",
  1001  	}
  1002  
  1003  	if input == nil {
  1004  		input = &TagResourcesInput{}
  1005  	}
  1006  
  1007  	output = &TagResourcesOutput{}
  1008  	req = c.newRequest(op, input, output)
  1009  	return
  1010  }
  1011  
  1012  // TagResources API operation for AWS Resource Groups Tagging API.
  1013  //
  1014  // Applies one or more tags to the specified resources. Note the following:
  1015  //
  1016  //    * Not all resources can have tags. For a list of services with resources
  1017  //    that support tagging using this operation, see Services that support the
  1018  //    Resource Groups Tagging API (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/supported-services.html).
  1019  //
  1020  //    * Each resource can have up to 50 tags. For other limits, see Tag Naming
  1021  //    and Usage Conventions (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions)
  1022  //    in the AWS General Reference.
  1023  //
  1024  //    * You can only tag resources that are located in the specified AWS Region
  1025  //    for the AWS account.
  1026  //
  1027  //    * To add tags to a resource, you need the necessary permissions for the
  1028  //    service that the resource belongs to as well as permissions for adding
  1029  //    tags. For more information, see the documentation for each service.
  1030  //
  1031  // Do not store personally identifiable information (PII) or other confidential
  1032  // or sensitive information in tags. We use tags to provide you with billing
  1033  // and administration services. Tags are not intended to be used for private
  1034  // or sensitive data.
  1035  //
  1036  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1037  // with awserr.Error's Code and Message methods to get detailed information about
  1038  // the error.
  1039  //
  1040  // See the AWS API reference guide for AWS Resource Groups Tagging API's
  1041  // API operation TagResources for usage and error information.
  1042  //
  1043  // Returned Error Types:
  1044  //   * InvalidParameterException
  1045  //   This error indicates one of the following:
  1046  //
  1047  //      * A parameter is missing.
  1048  //
  1049  //      * A malformed string was supplied for the request parameter.
  1050  //
  1051  //      * An out-of-range value was supplied for the request parameter.
  1052  //
  1053  //      * The target ID is invalid, unsupported, or doesn't exist.
  1054  //
  1055  //      * You can't access the Amazon S3 bucket for report storage. For more information,
  1056  //      see Additional Requirements for Organization-wide Tag Compliance Reports
  1057  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
  1058  //      in the AWS Organizations User Guide.
  1059  //
  1060  //   * ThrottledException
  1061  //   The request was denied to limit the frequency of submitted requests.
  1062  //
  1063  //   * InternalServiceException
  1064  //   The request processing failed because of an unknown error, exception, or
  1065  //   failure. You can retry the request.
  1066  //
  1067  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/TagResources
  1068  func (c *ResourceGroupsTaggingAPI) TagResources(input *TagResourcesInput) (*TagResourcesOutput, error) {
  1069  	req, out := c.TagResourcesRequest(input)
  1070  	return out, req.Send()
  1071  }
  1072  
  1073  // TagResourcesWithContext is the same as TagResources with the addition of
  1074  // the ability to pass a context and additional request options.
  1075  //
  1076  // See TagResources for details on how to use this API operation.
  1077  //
  1078  // The context must be non-nil and will be used for request cancellation. If
  1079  // the context is nil a panic will occur. In the future the SDK may create
  1080  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1081  // for more information on using Contexts.
  1082  func (c *ResourceGroupsTaggingAPI) TagResourcesWithContext(ctx aws.Context, input *TagResourcesInput, opts ...request.Option) (*TagResourcesOutput, error) {
  1083  	req, out := c.TagResourcesRequest(input)
  1084  	req.SetContext(ctx)
  1085  	req.ApplyOptions(opts...)
  1086  	return out, req.Send()
  1087  }
  1088  
  1089  const opUntagResources = "UntagResources"
  1090  
  1091  // UntagResourcesRequest generates a "aws/request.Request" representing the
  1092  // client's request for the UntagResources operation. The "output" return
  1093  // value will be populated with the request's response once the request completes
  1094  // successfully.
  1095  //
  1096  // Use "Send" method on the returned Request to send the API call to the service.
  1097  // the "output" return value is not valid until after Send returns without error.
  1098  //
  1099  // See UntagResources for more information on using the UntagResources
  1100  // API call, and error handling.
  1101  //
  1102  // This method is useful when you want to inject custom logic or configuration
  1103  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1104  //
  1105  //
  1106  //    // Example sending a request using the UntagResourcesRequest method.
  1107  //    req, resp := client.UntagResourcesRequest(params)
  1108  //
  1109  //    err := req.Send()
  1110  //    if err == nil { // resp is now filled
  1111  //        fmt.Println(resp)
  1112  //    }
  1113  //
  1114  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/UntagResources
  1115  func (c *ResourceGroupsTaggingAPI) UntagResourcesRequest(input *UntagResourcesInput) (req *request.Request, output *UntagResourcesOutput) {
  1116  	op := &request.Operation{
  1117  		Name:       opUntagResources,
  1118  		HTTPMethod: "POST",
  1119  		HTTPPath:   "/",
  1120  	}
  1121  
  1122  	if input == nil {
  1123  		input = &UntagResourcesInput{}
  1124  	}
  1125  
  1126  	output = &UntagResourcesOutput{}
  1127  	req = c.newRequest(op, input, output)
  1128  	return
  1129  }
  1130  
  1131  // UntagResources API operation for AWS Resource Groups Tagging API.
  1132  //
  1133  // Removes the specified tags from the specified resources. When you specify
  1134  // a tag key, the action removes both that key and its associated value. The
  1135  // operation succeeds even if you attempt to remove tags from a resource that
  1136  // were already removed. Note the following:
  1137  //
  1138  //    * To remove tags from a resource, you need the necessary permissions for
  1139  //    the service that the resource belongs to as well as permissions for removing
  1140  //    tags. For more information, see the documentation for the service whose
  1141  //    resource you want to untag.
  1142  //
  1143  //    * You can only tag resources that are located in the specified AWS Region
  1144  //    for the calling AWS account.
  1145  //
  1146  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1147  // with awserr.Error's Code and Message methods to get detailed information about
  1148  // the error.
  1149  //
  1150  // See the AWS API reference guide for AWS Resource Groups Tagging API's
  1151  // API operation UntagResources for usage and error information.
  1152  //
  1153  // Returned Error Types:
  1154  //   * InvalidParameterException
  1155  //   This error indicates one of the following:
  1156  //
  1157  //      * A parameter is missing.
  1158  //
  1159  //      * A malformed string was supplied for the request parameter.
  1160  //
  1161  //      * An out-of-range value was supplied for the request parameter.
  1162  //
  1163  //      * The target ID is invalid, unsupported, or doesn't exist.
  1164  //
  1165  //      * You can't access the Amazon S3 bucket for report storage. For more information,
  1166  //      see Additional Requirements for Organization-wide Tag Compliance Reports
  1167  //      (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
  1168  //      in the AWS Organizations User Guide.
  1169  //
  1170  //   * ThrottledException
  1171  //   The request was denied to limit the frequency of submitted requests.
  1172  //
  1173  //   * InternalServiceException
  1174  //   The request processing failed because of an unknown error, exception, or
  1175  //   failure. You can retry the request.
  1176  //
  1177  // See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/UntagResources
  1178  func (c *ResourceGroupsTaggingAPI) UntagResources(input *UntagResourcesInput) (*UntagResourcesOutput, error) {
  1179  	req, out := c.UntagResourcesRequest(input)
  1180  	return out, req.Send()
  1181  }
  1182  
  1183  // UntagResourcesWithContext is the same as UntagResources with the addition of
  1184  // the ability to pass a context and additional request options.
  1185  //
  1186  // See UntagResources for details on how to use this API operation.
  1187  //
  1188  // The context must be non-nil and will be used for request cancellation. If
  1189  // the context is nil a panic will occur. In the future the SDK may create
  1190  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1191  // for more information on using Contexts.
  1192  func (c *ResourceGroupsTaggingAPI) UntagResourcesWithContext(ctx aws.Context, input *UntagResourcesInput, opts ...request.Option) (*UntagResourcesOutput, error) {
  1193  	req, out := c.UntagResourcesRequest(input)
  1194  	req.SetContext(ctx)
  1195  	req.ApplyOptions(opts...)
  1196  	return out, req.Send()
  1197  }
  1198  
  1199  // Information that shows whether a resource is compliant with the effective
  1200  // tag policy, including details on any noncompliant tag keys.
  1201  type ComplianceDetails struct {
  1202  	_ struct{} `type:"structure"`
  1203  
  1204  	// Whether a resource is compliant with the effective tag policy.
  1205  	ComplianceStatus *bool `type:"boolean"`
  1206  
  1207  	// These are keys defined in the effective policy that are on the resource with
  1208  	// either incorrect case treatment or noncompliant values.
  1209  	KeysWithNoncompliantValues []*string `type:"list"`
  1210  
  1211  	// These tag keys on the resource are noncompliant with the effective tag policy.
  1212  	NoncompliantKeys []*string `type:"list"`
  1213  }
  1214  
  1215  // String returns the string representation.
  1216  //
  1217  // API parameter values that are decorated as "sensitive" in the API will not
  1218  // be included in the string output. The member name will be present, but the
  1219  // value will be replaced with "sensitive".
  1220  func (s ComplianceDetails) String() string {
  1221  	return awsutil.Prettify(s)
  1222  }
  1223  
  1224  // GoString returns the string representation.
  1225  //
  1226  // API parameter values that are decorated as "sensitive" in the API will not
  1227  // be included in the string output. The member name will be present, but the
  1228  // value will be replaced with "sensitive".
  1229  func (s ComplianceDetails) GoString() string {
  1230  	return s.String()
  1231  }
  1232  
  1233  // SetComplianceStatus sets the ComplianceStatus field's value.
  1234  func (s *ComplianceDetails) SetComplianceStatus(v bool) *ComplianceDetails {
  1235  	s.ComplianceStatus = &v
  1236  	return s
  1237  }
  1238  
  1239  // SetKeysWithNoncompliantValues sets the KeysWithNoncompliantValues field's value.
  1240  func (s *ComplianceDetails) SetKeysWithNoncompliantValues(v []*string) *ComplianceDetails {
  1241  	s.KeysWithNoncompliantValues = v
  1242  	return s
  1243  }
  1244  
  1245  // SetNoncompliantKeys sets the NoncompliantKeys field's value.
  1246  func (s *ComplianceDetails) SetNoncompliantKeys(v []*string) *ComplianceDetails {
  1247  	s.NoncompliantKeys = v
  1248  	return s
  1249  }
  1250  
  1251  // The target of the operation is currently being modified by a different request.
  1252  // Try again later.
  1253  type ConcurrentModificationException struct {
  1254  	_            struct{}                  `type:"structure"`
  1255  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1256  
  1257  	Message_ *string `locationName:"Message" type:"string"`
  1258  }
  1259  
  1260  // String returns the string representation.
  1261  //
  1262  // API parameter values that are decorated as "sensitive" in the API will not
  1263  // be included in the string output. The member name will be present, but the
  1264  // value will be replaced with "sensitive".
  1265  func (s ConcurrentModificationException) String() string {
  1266  	return awsutil.Prettify(s)
  1267  }
  1268  
  1269  // GoString returns the string representation.
  1270  //
  1271  // API parameter values that are decorated as "sensitive" in the API will not
  1272  // be included in the string output. The member name will be present, but the
  1273  // value will be replaced with "sensitive".
  1274  func (s ConcurrentModificationException) GoString() string {
  1275  	return s.String()
  1276  }
  1277  
  1278  func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
  1279  	return &ConcurrentModificationException{
  1280  		RespMetadata: v,
  1281  	}
  1282  }
  1283  
  1284  // Code returns the exception type name.
  1285  func (s *ConcurrentModificationException) Code() string {
  1286  	return "ConcurrentModificationException"
  1287  }
  1288  
  1289  // Message returns the exception's message.
  1290  func (s *ConcurrentModificationException) Message() string {
  1291  	if s.Message_ != nil {
  1292  		return *s.Message_
  1293  	}
  1294  	return ""
  1295  }
  1296  
  1297  // OrigErr always returns nil, satisfies awserr.Error interface.
  1298  func (s *ConcurrentModificationException) OrigErr() error {
  1299  	return nil
  1300  }
  1301  
  1302  func (s *ConcurrentModificationException) Error() string {
  1303  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  1304  }
  1305  
  1306  // Status code returns the HTTP status code for the request's response error.
  1307  func (s *ConcurrentModificationException) StatusCode() int {
  1308  	return s.RespMetadata.StatusCode
  1309  }
  1310  
  1311  // RequestID returns the service's response RequestID for request.
  1312  func (s *ConcurrentModificationException) RequestID() string {
  1313  	return s.RespMetadata.RequestID
  1314  }
  1315  
  1316  // The request was denied because performing this operation violates a constraint.
  1317  //
  1318  // Some of the reasons in the following list might not apply to this specific
  1319  // operation.
  1320  //
  1321  //    * You must meet the prerequisites for using tag policies. For information,
  1322  //    see Prerequisites and Permissions for Using Tag Policies (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html)
  1323  //    in the AWS Organizations User Guide.
  1324  //
  1325  //    * You must enable the tag policies service principal (tagpolicies.tag.amazonaws.com)
  1326  //    to integrate with AWS Organizations For information, see EnableAWSServiceAccess
  1327  //    (http://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html).
  1328  //
  1329  //    * You must have a tag policy attached to the organization root, an OU,
  1330  //    or an account.
  1331  type ConstraintViolationException struct {
  1332  	_            struct{}                  `type:"structure"`
  1333  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1334  
  1335  	Message_ *string `locationName:"Message" type:"string"`
  1336  }
  1337  
  1338  // String returns the string representation.
  1339  //
  1340  // API parameter values that are decorated as "sensitive" in the API will not
  1341  // be included in the string output. The member name will be present, but the
  1342  // value will be replaced with "sensitive".
  1343  func (s ConstraintViolationException) String() string {
  1344  	return awsutil.Prettify(s)
  1345  }
  1346  
  1347  // GoString returns the string representation.
  1348  //
  1349  // API parameter values that are decorated as "sensitive" in the API will not
  1350  // be included in the string output. The member name will be present, but the
  1351  // value will be replaced with "sensitive".
  1352  func (s ConstraintViolationException) GoString() string {
  1353  	return s.String()
  1354  }
  1355  
  1356  func newErrorConstraintViolationException(v protocol.ResponseMetadata) error {
  1357  	return &ConstraintViolationException{
  1358  		RespMetadata: v,
  1359  	}
  1360  }
  1361  
  1362  // Code returns the exception type name.
  1363  func (s *ConstraintViolationException) Code() string {
  1364  	return "ConstraintViolationException"
  1365  }
  1366  
  1367  // Message returns the exception's message.
  1368  func (s *ConstraintViolationException) Message() string {
  1369  	if s.Message_ != nil {
  1370  		return *s.Message_
  1371  	}
  1372  	return ""
  1373  }
  1374  
  1375  // OrigErr always returns nil, satisfies awserr.Error interface.
  1376  func (s *ConstraintViolationException) OrigErr() error {
  1377  	return nil
  1378  }
  1379  
  1380  func (s *ConstraintViolationException) Error() string {
  1381  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  1382  }
  1383  
  1384  // Status code returns the HTTP status code for the request's response error.
  1385  func (s *ConstraintViolationException) StatusCode() int {
  1386  	return s.RespMetadata.StatusCode
  1387  }
  1388  
  1389  // RequestID returns the service's response RequestID for request.
  1390  func (s *ConstraintViolationException) RequestID() string {
  1391  	return s.RespMetadata.RequestID
  1392  }
  1393  
  1394  type DescribeReportCreationInput struct {
  1395  	_ struct{} `type:"structure"`
  1396  }
  1397  
  1398  // String returns the string representation.
  1399  //
  1400  // API parameter values that are decorated as "sensitive" in the API will not
  1401  // be included in the string output. The member name will be present, but the
  1402  // value will be replaced with "sensitive".
  1403  func (s DescribeReportCreationInput) String() string {
  1404  	return awsutil.Prettify(s)
  1405  }
  1406  
  1407  // GoString returns the string representation.
  1408  //
  1409  // API parameter values that are decorated as "sensitive" in the API will not
  1410  // be included in the string output. The member name will be present, but the
  1411  // value will be replaced with "sensitive".
  1412  func (s DescribeReportCreationInput) GoString() string {
  1413  	return s.String()
  1414  }
  1415  
  1416  type DescribeReportCreationOutput struct {
  1417  	_ struct{} `type:"structure"`
  1418  
  1419  	// Details of the common errors that all operations return.
  1420  	ErrorMessage *string `type:"string"`
  1421  
  1422  	// The path to the Amazon S3 bucket where the report was stored on creation.
  1423  	S3Location *string `type:"string"`
  1424  
  1425  	// Reports the status of the operation.
  1426  	//
  1427  	// The operation status can be one of the following:
  1428  	//
  1429  	//    * RUNNING - Report creation is in progress.
  1430  	//
  1431  	//    * SUCCEEDED - Report creation is complete. You can open the report from
  1432  	//    the Amazon S3 bucket that you specified when you ran StartReportCreation.
  1433  	//
  1434  	//    * FAILED - Report creation timed out or the Amazon S3 bucket is not accessible.
  1435  	//
  1436  	//    * NO REPORT - No report was generated in the last 90 days.
  1437  	Status *string `type:"string"`
  1438  }
  1439  
  1440  // String returns the string representation.
  1441  //
  1442  // API parameter values that are decorated as "sensitive" in the API will not
  1443  // be included in the string output. The member name will be present, but the
  1444  // value will be replaced with "sensitive".
  1445  func (s DescribeReportCreationOutput) String() string {
  1446  	return awsutil.Prettify(s)
  1447  }
  1448  
  1449  // GoString returns the string representation.
  1450  //
  1451  // API parameter values that are decorated as "sensitive" in the API will not
  1452  // be included in the string output. The member name will be present, but the
  1453  // value will be replaced with "sensitive".
  1454  func (s DescribeReportCreationOutput) GoString() string {
  1455  	return s.String()
  1456  }
  1457  
  1458  // SetErrorMessage sets the ErrorMessage field's value.
  1459  func (s *DescribeReportCreationOutput) SetErrorMessage(v string) *DescribeReportCreationOutput {
  1460  	s.ErrorMessage = &v
  1461  	return s
  1462  }
  1463  
  1464  // SetS3Location sets the S3Location field's value.
  1465  func (s *DescribeReportCreationOutput) SetS3Location(v string) *DescribeReportCreationOutput {
  1466  	s.S3Location = &v
  1467  	return s
  1468  }
  1469  
  1470  // SetStatus sets the Status field's value.
  1471  func (s *DescribeReportCreationOutput) SetStatus(v string) *DescribeReportCreationOutput {
  1472  	s.Status = &v
  1473  	return s
  1474  }
  1475  
  1476  // Information about the errors that are returned for each failed resource.
  1477  // This information can include InternalServiceException and InvalidParameterException
  1478  // errors. It can also include any valid error code returned by the AWS service
  1479  // that hosts the resource that the ARN key represents.
  1480  //
  1481  // The following are common error codes that you might receive from other AWS
  1482  // services:
  1483  //
  1484  //    * InternalServiceException – This can mean that the Resource Groups
  1485  //    Tagging API didn't receive a response from another AWS service. It can
  1486  //    also mean the the resource type in the request is not supported by the
  1487  //    Resource Groups Tagging API. In these cases, it's safe to retry the request
  1488  //    and then call GetResources (http://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html)
  1489  //    to verify the changes.
  1490  //
  1491  //    * AccessDeniedException – This can mean that you need permission to
  1492  //    calling tagging operations in the AWS service that contains the resource.
  1493  //    For example, to use the Resource Groups Tagging API to tag a CloudWatch
  1494  //    alarm resource, you need permission to call TagResources (http://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_TagResources.html)
  1495  //    and TagResource (http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html)
  1496  //    in the CloudWatch API.
  1497  //
  1498  // For more information on errors that are generated from other AWS services,
  1499  // see the documentation for that service.
  1500  type FailureInfo struct {
  1501  	_ struct{} `type:"structure"`
  1502  
  1503  	// The code of the common error. Valid values include InternalServiceException,
  1504  	// InvalidParameterException, and any valid error code returned by the AWS service
  1505  	// that hosts the resource that you want to tag.
  1506  	ErrorCode *string `type:"string" enum:"ErrorCode"`
  1507  
  1508  	// The message of the common error.
  1509  	ErrorMessage *string `type:"string"`
  1510  
  1511  	// The HTTP status code of the common error.
  1512  	StatusCode *int64 `type:"integer"`
  1513  }
  1514  
  1515  // String returns the string representation.
  1516  //
  1517  // API parameter values that are decorated as "sensitive" in the API will not
  1518  // be included in the string output. The member name will be present, but the
  1519  // value will be replaced with "sensitive".
  1520  func (s FailureInfo) String() string {
  1521  	return awsutil.Prettify(s)
  1522  }
  1523  
  1524  // GoString returns the string representation.
  1525  //
  1526  // API parameter values that are decorated as "sensitive" in the API will not
  1527  // be included in the string output. The member name will be present, but the
  1528  // value will be replaced with "sensitive".
  1529  func (s FailureInfo) GoString() string {
  1530  	return s.String()
  1531  }
  1532  
  1533  // SetErrorCode sets the ErrorCode field's value.
  1534  func (s *FailureInfo) SetErrorCode(v string) *FailureInfo {
  1535  	s.ErrorCode = &v
  1536  	return s
  1537  }
  1538  
  1539  // SetErrorMessage sets the ErrorMessage field's value.
  1540  func (s *FailureInfo) SetErrorMessage(v string) *FailureInfo {
  1541  	s.ErrorMessage = &v
  1542  	return s
  1543  }
  1544  
  1545  // SetStatusCode sets the StatusCode field's value.
  1546  func (s *FailureInfo) SetStatusCode(v int64) *FailureInfo {
  1547  	s.StatusCode = &v
  1548  	return s
  1549  }
  1550  
  1551  type GetComplianceSummaryInput struct {
  1552  	_ struct{} `type:"structure"`
  1553  
  1554  	// Specifies a list of attributes to group the counts of noncompliant resources
  1555  	// by. If supplied, the counts are sorted by those attributes.
  1556  	GroupBy []*string `type:"list"`
  1557  
  1558  	// Specifies the maximum number of results to be returned in each page. A query
  1559  	// can return fewer than this maximum, even if there are more results still
  1560  	// to return. You should always check the PaginationToken response value to
  1561  	// see if there are more results. You can specify a minimum of 1 and a maximum
  1562  	// value of 100.
  1563  	MaxResults *int64 `min:"1" type:"integer"`
  1564  
  1565  	// Specifies a PaginationToken response value from a previous request to indicate
  1566  	// that you want the next page of results. Leave this parameter empty in your
  1567  	// initial request.
  1568  	PaginationToken *string `type:"string"`
  1569  
  1570  	// Specifies a list of AWS Regions to limit the output by. If you use this parameter,
  1571  	// the count of returned noncompliant resources includes only resources in the
  1572  	// specified Regions.
  1573  	RegionFilters []*string `min:"1" type:"list"`
  1574  
  1575  	// Specifies that you want the response to include information for only resources
  1576  	// of the specified types. The format of each resource type is service[:resourceType].
  1577  	// For example, specifying a resource type of ec2 returns all Amazon EC2 resources
  1578  	// (which includes EC2 instances). Specifying a resource type of ec2:instance
  1579  	// returns only EC2 instances.
  1580  	//
  1581  	// The string for each service name and resource type is the same as that embedded
  1582  	// in a resource's Amazon Resource Name (ARN). Consult the AWS General Reference
  1583  	// for the following:
  1584  	//
  1585  	//    * For a list of service name strings, see AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces).
  1586  	//
  1587  	//    * For resource type strings, see Example ARNs (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax).
  1588  	//
  1589  	//    * For more information about ARNs, see Amazon Resource Names (ARNs) and
  1590  	//    AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  1591  	//
  1592  	// You can specify multiple resource types by using a comma separated array.
  1593  	// The array can include up to 100 items. Note that the length constraint requirement
  1594  	// applies to each resource type filter.
  1595  	ResourceTypeFilters []*string `type:"list"`
  1596  
  1597  	// Specifies that you want the response to include information for only resources
  1598  	// that have tags with the specified tag keys. If you use this parameter, the
  1599  	// count of returned noncompliant resources includes only resources that have
  1600  	// the specified tag keys.
  1601  	TagKeyFilters []*string `min:"1" type:"list"`
  1602  
  1603  	// Specifies target identifiers (usually, specific account IDs) to limit the
  1604  	// output by. If you use this parameter, the count of returned noncompliant
  1605  	// resources includes only resources with the specified target IDs.
  1606  	TargetIdFilters []*string `min:"1" type:"list"`
  1607  }
  1608  
  1609  // String returns the string representation.
  1610  //
  1611  // API parameter values that are decorated as "sensitive" in the API will not
  1612  // be included in the string output. The member name will be present, but the
  1613  // value will be replaced with "sensitive".
  1614  func (s GetComplianceSummaryInput) String() string {
  1615  	return awsutil.Prettify(s)
  1616  }
  1617  
  1618  // GoString returns the string representation.
  1619  //
  1620  // API parameter values that are decorated as "sensitive" in the API will not
  1621  // be included in the string output. The member name will be present, but the
  1622  // value will be replaced with "sensitive".
  1623  func (s GetComplianceSummaryInput) GoString() string {
  1624  	return s.String()
  1625  }
  1626  
  1627  // Validate inspects the fields of the type to determine if they are valid.
  1628  func (s *GetComplianceSummaryInput) Validate() error {
  1629  	invalidParams := request.ErrInvalidParams{Context: "GetComplianceSummaryInput"}
  1630  	if s.MaxResults != nil && *s.MaxResults < 1 {
  1631  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  1632  	}
  1633  	if s.RegionFilters != nil && len(s.RegionFilters) < 1 {
  1634  		invalidParams.Add(request.NewErrParamMinLen("RegionFilters", 1))
  1635  	}
  1636  	if s.TagKeyFilters != nil && len(s.TagKeyFilters) < 1 {
  1637  		invalidParams.Add(request.NewErrParamMinLen("TagKeyFilters", 1))
  1638  	}
  1639  	if s.TargetIdFilters != nil && len(s.TargetIdFilters) < 1 {
  1640  		invalidParams.Add(request.NewErrParamMinLen("TargetIdFilters", 1))
  1641  	}
  1642  
  1643  	if invalidParams.Len() > 0 {
  1644  		return invalidParams
  1645  	}
  1646  	return nil
  1647  }
  1648  
  1649  // SetGroupBy sets the GroupBy field's value.
  1650  func (s *GetComplianceSummaryInput) SetGroupBy(v []*string) *GetComplianceSummaryInput {
  1651  	s.GroupBy = v
  1652  	return s
  1653  }
  1654  
  1655  // SetMaxResults sets the MaxResults field's value.
  1656  func (s *GetComplianceSummaryInput) SetMaxResults(v int64) *GetComplianceSummaryInput {
  1657  	s.MaxResults = &v
  1658  	return s
  1659  }
  1660  
  1661  // SetPaginationToken sets the PaginationToken field's value.
  1662  func (s *GetComplianceSummaryInput) SetPaginationToken(v string) *GetComplianceSummaryInput {
  1663  	s.PaginationToken = &v
  1664  	return s
  1665  }
  1666  
  1667  // SetRegionFilters sets the RegionFilters field's value.
  1668  func (s *GetComplianceSummaryInput) SetRegionFilters(v []*string) *GetComplianceSummaryInput {
  1669  	s.RegionFilters = v
  1670  	return s
  1671  }
  1672  
  1673  // SetResourceTypeFilters sets the ResourceTypeFilters field's value.
  1674  func (s *GetComplianceSummaryInput) SetResourceTypeFilters(v []*string) *GetComplianceSummaryInput {
  1675  	s.ResourceTypeFilters = v
  1676  	return s
  1677  }
  1678  
  1679  // SetTagKeyFilters sets the TagKeyFilters field's value.
  1680  func (s *GetComplianceSummaryInput) SetTagKeyFilters(v []*string) *GetComplianceSummaryInput {
  1681  	s.TagKeyFilters = v
  1682  	return s
  1683  }
  1684  
  1685  // SetTargetIdFilters sets the TargetIdFilters field's value.
  1686  func (s *GetComplianceSummaryInput) SetTargetIdFilters(v []*string) *GetComplianceSummaryInput {
  1687  	s.TargetIdFilters = v
  1688  	return s
  1689  }
  1690  
  1691  type GetComplianceSummaryOutput struct {
  1692  	_ struct{} `type:"structure"`
  1693  
  1694  	// A string that indicates that there is more data available than this response
  1695  	// contains. To receive the next part of the response, specify this response
  1696  	// value as the PaginationToken value in the request for the next page.
  1697  	PaginationToken *string `type:"string"`
  1698  
  1699  	// A table that shows counts of noncompliant resources.
  1700  	SummaryList []*Summary `type:"list"`
  1701  }
  1702  
  1703  // String returns the string representation.
  1704  //
  1705  // API parameter values that are decorated as "sensitive" in the API will not
  1706  // be included in the string output. The member name will be present, but the
  1707  // value will be replaced with "sensitive".
  1708  func (s GetComplianceSummaryOutput) String() string {
  1709  	return awsutil.Prettify(s)
  1710  }
  1711  
  1712  // GoString returns the string representation.
  1713  //
  1714  // API parameter values that are decorated as "sensitive" in the API will not
  1715  // be included in the string output. The member name will be present, but the
  1716  // value will be replaced with "sensitive".
  1717  func (s GetComplianceSummaryOutput) GoString() string {
  1718  	return s.String()
  1719  }
  1720  
  1721  // SetPaginationToken sets the PaginationToken field's value.
  1722  func (s *GetComplianceSummaryOutput) SetPaginationToken(v string) *GetComplianceSummaryOutput {
  1723  	s.PaginationToken = &v
  1724  	return s
  1725  }
  1726  
  1727  // SetSummaryList sets the SummaryList field's value.
  1728  func (s *GetComplianceSummaryOutput) SetSummaryList(v []*Summary) *GetComplianceSummaryOutput {
  1729  	s.SummaryList = v
  1730  	return s
  1731  }
  1732  
  1733  type GetResourcesInput struct {
  1734  	_ struct{} `type:"structure"`
  1735  
  1736  	// Specifies whether to exclude resources that are compliant with the tag policy.
  1737  	// Set this to true if you are interested in retrieving information on noncompliant
  1738  	// resources only.
  1739  	//
  1740  	// You can use this parameter only if the IncludeComplianceDetails parameter
  1741  	// is also set to true.
  1742  	ExcludeCompliantResources *bool `type:"boolean"`
  1743  
  1744  	// Specifies whether to include details regarding the compliance with the effective
  1745  	// tag policy. Set this to true to determine whether resources are compliant
  1746  	// with the tag policy and to get details.
  1747  	IncludeComplianceDetails *bool `type:"boolean"`
  1748  
  1749  	// Specifies a PaginationToken response value from a previous request to indicate
  1750  	// that you want the next page of results. Leave this parameter empty in your
  1751  	// initial request.
  1752  	PaginationToken *string `type:"string"`
  1753  
  1754  	// Specifies a list of ARNs of resources for which you want to retrieve tag
  1755  	// data. You can't specify both this parameter and any of the pagination parameters
  1756  	// (ResourcesPerPage, TagsPerPage, PaginationToken) in the same request. If
  1757  	// you specify both, you get an Invalid Parameter exception.
  1758  	//
  1759  	// If a resource specified by this parameter doesn't exist, it doesn't generate
  1760  	// an error; it simply isn't included in the response.
  1761  	//
  1762  	// An ARN (Amazon Resource Name) uniquely identifies a resource. For more information,
  1763  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  1764  	// in the AWS General Reference.
  1765  	ResourceARNList []*string `min:"1" type:"list"`
  1766  
  1767  	// Specifies the resource types that you want included in the response. The
  1768  	// format of each resource type is service[:resourceType]. For example, specifying
  1769  	// a resource type of ec2 returns all Amazon EC2 resources (which includes EC2
  1770  	// instances). Specifying a resource type of ec2:instance returns only EC2 instances.
  1771  	//
  1772  	// The string for each service name and resource type is the same as that embedded
  1773  	// in a resource's Amazon Resource Name (ARN). Consult the AWS General Reference
  1774  	// for the following:
  1775  	//
  1776  	// For more information about ARNs, see Amazon Resource Names (ARNs) and AWS
  1777  	// Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  1778  	//
  1779  	// You can specify multiple resource types by using an array. The array can
  1780  	// include up to 100 items. Note that the length constraint requirement applies
  1781  	// to each resource type filter.
  1782  	ResourceTypeFilters []*string `type:"list"`
  1783  
  1784  	// Specifies the maximum number of results to be returned in each page. A query
  1785  	// can return fewer than this maximum, even if there are more results still
  1786  	// to return. You should always check the PaginationToken response value to
  1787  	// see if there are more results. You can specify a minimum of 1 and a maximum
  1788  	// value of 100.
  1789  	ResourcesPerPage *int64 `type:"integer"`
  1790  
  1791  	// Specifies a list of TagFilters (keys and values) to restrict the output to
  1792  	// only those resources that have the specified tag and, if included, the specified
  1793  	// value. Each TagFilter must contain a key with values optional. A request
  1794  	// can include up to 50 keys, and each key can include up to 20 values.
  1795  	//
  1796  	// Note the following when deciding how to use TagFilters:
  1797  	//
  1798  	//    * If you don't specify a TagFilter, the response includes all resources
  1799  	//    that are currently tagged or ever had a tag. Resources that currently
  1800  	//    don't have tags are shown with an empty tag set, like this: "Tags": [].
  1801  	//
  1802  	//    * If you specify more than one filter in a single request, the response
  1803  	//    returns only those resources that satisfy all filters.
  1804  	//
  1805  	//    * If you specify a filter that contains more than one value for a key,
  1806  	//    the response returns resources that match any of the specified values
  1807  	//    for that key.
  1808  	//
  1809  	//    * If you don't specify any values for a key, the response returns resources
  1810  	//    that are tagged with that key and any or no value. For example, for the
  1811  	//    following filters: filter1= {keyA,{value1}}, filter2={keyB,{value2,value3,value4}},
  1812  	//    filter3= {keyC}: GetResources({filter1}) returns resources tagged with
  1813  	//    key1=value1 GetResources({filter2}) returns resources tagged with key2=value2
  1814  	//    or key2=value3 or key2=value4 GetResources({filter3}) returns resources
  1815  	//    tagged with any tag with the key key3, and with any or no value GetResources({filter1,filter2,filter3})
  1816  	//    returns resources tagged with (key1=value1) and (key2=value2 or key2=value3
  1817  	//    or key2=value4) and (key3, any or no value)
  1818  	TagFilters []*TagFilter `type:"list"`
  1819  
  1820  	// AWS recommends using ResourcesPerPage instead of this parameter.
  1821  	//
  1822  	// A limit that restricts the number of tags (key and value pairs) returned
  1823  	// by GetResources in paginated output. A resource with no tags is counted as
  1824  	// having one tag (one key and value pair).
  1825  	//
  1826  	// GetResources does not split a resource and its associated tags across pages.
  1827  	// If the specified TagsPerPage would cause such a break, a PaginationToken
  1828  	// is returned in place of the affected resource and its tags. Use that token
  1829  	// in another request to get the remaining data. For example, if you specify
  1830  	// a TagsPerPage of 100 and the account has 22 resources with 10 tags each (meaning
  1831  	// that each resource has 10 key and value pairs), the output will consist of
  1832  	// three pages. The first page displays the first 10 resources, each with its
  1833  	// 10 tags. The second page displays the next 10 resources, each with its 10
  1834  	// tags. The third page displays the remaining 2 resources, each with its 10
  1835  	// tags.
  1836  	//
  1837  	// You can set TagsPerPage to a minimum of 100 items up to a maximum of 500
  1838  	// items.
  1839  	TagsPerPage *int64 `type:"integer"`
  1840  }
  1841  
  1842  // String returns the string representation.
  1843  //
  1844  // API parameter values that are decorated as "sensitive" in the API will not
  1845  // be included in the string output. The member name will be present, but the
  1846  // value will be replaced with "sensitive".
  1847  func (s GetResourcesInput) String() string {
  1848  	return awsutil.Prettify(s)
  1849  }
  1850  
  1851  // GoString returns the string representation.
  1852  //
  1853  // API parameter values that are decorated as "sensitive" in the API will not
  1854  // be included in the string output. The member name will be present, but the
  1855  // value will be replaced with "sensitive".
  1856  func (s GetResourcesInput) GoString() string {
  1857  	return s.String()
  1858  }
  1859  
  1860  // Validate inspects the fields of the type to determine if they are valid.
  1861  func (s *GetResourcesInput) Validate() error {
  1862  	invalidParams := request.ErrInvalidParams{Context: "GetResourcesInput"}
  1863  	if s.ResourceARNList != nil && len(s.ResourceARNList) < 1 {
  1864  		invalidParams.Add(request.NewErrParamMinLen("ResourceARNList", 1))
  1865  	}
  1866  	if s.TagFilters != nil {
  1867  		for i, v := range s.TagFilters {
  1868  			if v == nil {
  1869  				continue
  1870  			}
  1871  			if err := v.Validate(); err != nil {
  1872  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagFilters", i), err.(request.ErrInvalidParams))
  1873  			}
  1874  		}
  1875  	}
  1876  
  1877  	if invalidParams.Len() > 0 {
  1878  		return invalidParams
  1879  	}
  1880  	return nil
  1881  }
  1882  
  1883  // SetExcludeCompliantResources sets the ExcludeCompliantResources field's value.
  1884  func (s *GetResourcesInput) SetExcludeCompliantResources(v bool) *GetResourcesInput {
  1885  	s.ExcludeCompliantResources = &v
  1886  	return s
  1887  }
  1888  
  1889  // SetIncludeComplianceDetails sets the IncludeComplianceDetails field's value.
  1890  func (s *GetResourcesInput) SetIncludeComplianceDetails(v bool) *GetResourcesInput {
  1891  	s.IncludeComplianceDetails = &v
  1892  	return s
  1893  }
  1894  
  1895  // SetPaginationToken sets the PaginationToken field's value.
  1896  func (s *GetResourcesInput) SetPaginationToken(v string) *GetResourcesInput {
  1897  	s.PaginationToken = &v
  1898  	return s
  1899  }
  1900  
  1901  // SetResourceARNList sets the ResourceARNList field's value.
  1902  func (s *GetResourcesInput) SetResourceARNList(v []*string) *GetResourcesInput {
  1903  	s.ResourceARNList = v
  1904  	return s
  1905  }
  1906  
  1907  // SetResourceTypeFilters sets the ResourceTypeFilters field's value.
  1908  func (s *GetResourcesInput) SetResourceTypeFilters(v []*string) *GetResourcesInput {
  1909  	s.ResourceTypeFilters = v
  1910  	return s
  1911  }
  1912  
  1913  // SetResourcesPerPage sets the ResourcesPerPage field's value.
  1914  func (s *GetResourcesInput) SetResourcesPerPage(v int64) *GetResourcesInput {
  1915  	s.ResourcesPerPage = &v
  1916  	return s
  1917  }
  1918  
  1919  // SetTagFilters sets the TagFilters field's value.
  1920  func (s *GetResourcesInput) SetTagFilters(v []*TagFilter) *GetResourcesInput {
  1921  	s.TagFilters = v
  1922  	return s
  1923  }
  1924  
  1925  // SetTagsPerPage sets the TagsPerPage field's value.
  1926  func (s *GetResourcesInput) SetTagsPerPage(v int64) *GetResourcesInput {
  1927  	s.TagsPerPage = &v
  1928  	return s
  1929  }
  1930  
  1931  type GetResourcesOutput struct {
  1932  	_ struct{} `type:"structure"`
  1933  
  1934  	// A string that indicates that there is more data available than this response
  1935  	// contains. To receive the next part of the response, specify this response
  1936  	// value as the PaginationToken value in the request for the next page.
  1937  	PaginationToken *string `type:"string"`
  1938  
  1939  	// A list of resource ARNs and the tags (keys and values) associated with those
  1940  	// ARNs.
  1941  	ResourceTagMappingList []*ResourceTagMapping `type:"list"`
  1942  }
  1943  
  1944  // String returns the string representation.
  1945  //
  1946  // API parameter values that are decorated as "sensitive" in the API will not
  1947  // be included in the string output. The member name will be present, but the
  1948  // value will be replaced with "sensitive".
  1949  func (s GetResourcesOutput) String() string {
  1950  	return awsutil.Prettify(s)
  1951  }
  1952  
  1953  // GoString returns the string representation.
  1954  //
  1955  // API parameter values that are decorated as "sensitive" in the API will not
  1956  // be included in the string output. The member name will be present, but the
  1957  // value will be replaced with "sensitive".
  1958  func (s GetResourcesOutput) GoString() string {
  1959  	return s.String()
  1960  }
  1961  
  1962  // SetPaginationToken sets the PaginationToken field's value.
  1963  func (s *GetResourcesOutput) SetPaginationToken(v string) *GetResourcesOutput {
  1964  	s.PaginationToken = &v
  1965  	return s
  1966  }
  1967  
  1968  // SetResourceTagMappingList sets the ResourceTagMappingList field's value.
  1969  func (s *GetResourcesOutput) SetResourceTagMappingList(v []*ResourceTagMapping) *GetResourcesOutput {
  1970  	s.ResourceTagMappingList = v
  1971  	return s
  1972  }
  1973  
  1974  type GetTagKeysInput struct {
  1975  	_ struct{} `type:"structure"`
  1976  
  1977  	// Specifies a PaginationToken response value from a previous request to indicate
  1978  	// that you want the next page of results. Leave this parameter empty in your
  1979  	// initial request.
  1980  	PaginationToken *string `type:"string"`
  1981  }
  1982  
  1983  // String returns the string representation.
  1984  //
  1985  // API parameter values that are decorated as "sensitive" in the API will not
  1986  // be included in the string output. The member name will be present, but the
  1987  // value will be replaced with "sensitive".
  1988  func (s GetTagKeysInput) String() string {
  1989  	return awsutil.Prettify(s)
  1990  }
  1991  
  1992  // GoString returns the string representation.
  1993  //
  1994  // API parameter values that are decorated as "sensitive" in the API will not
  1995  // be included in the string output. The member name will be present, but the
  1996  // value will be replaced with "sensitive".
  1997  func (s GetTagKeysInput) GoString() string {
  1998  	return s.String()
  1999  }
  2000  
  2001  // SetPaginationToken sets the PaginationToken field's value.
  2002  func (s *GetTagKeysInput) SetPaginationToken(v string) *GetTagKeysInput {
  2003  	s.PaginationToken = &v
  2004  	return s
  2005  }
  2006  
  2007  type GetTagKeysOutput struct {
  2008  	_ struct{} `type:"structure"`
  2009  
  2010  	// A string that indicates that there is more data available than this response
  2011  	// contains. To receive the next part of the response, specify this response
  2012  	// value as the PaginationToken value in the request for the next page.
  2013  	PaginationToken *string `type:"string"`
  2014  
  2015  	// A list of all tag keys in the AWS account.
  2016  	TagKeys []*string `type:"list"`
  2017  }
  2018  
  2019  // String returns the string representation.
  2020  //
  2021  // API parameter values that are decorated as "sensitive" in the API will not
  2022  // be included in the string output. The member name will be present, but the
  2023  // value will be replaced with "sensitive".
  2024  func (s GetTagKeysOutput) String() string {
  2025  	return awsutil.Prettify(s)
  2026  }
  2027  
  2028  // GoString returns the string representation.
  2029  //
  2030  // API parameter values that are decorated as "sensitive" in the API will not
  2031  // be included in the string output. The member name will be present, but the
  2032  // value will be replaced with "sensitive".
  2033  func (s GetTagKeysOutput) GoString() string {
  2034  	return s.String()
  2035  }
  2036  
  2037  // SetPaginationToken sets the PaginationToken field's value.
  2038  func (s *GetTagKeysOutput) SetPaginationToken(v string) *GetTagKeysOutput {
  2039  	s.PaginationToken = &v
  2040  	return s
  2041  }
  2042  
  2043  // SetTagKeys sets the TagKeys field's value.
  2044  func (s *GetTagKeysOutput) SetTagKeys(v []*string) *GetTagKeysOutput {
  2045  	s.TagKeys = v
  2046  	return s
  2047  }
  2048  
  2049  type GetTagValuesInput struct {
  2050  	_ struct{} `type:"structure"`
  2051  
  2052  	// Specifies the tag key for which you want to list all existing values that
  2053  	// are currently used in the specified AWS Region for the calling AWS account.
  2054  	//
  2055  	// Key is a required field
  2056  	Key *string `min:"1" type:"string" required:"true"`
  2057  
  2058  	// Specifies a PaginationToken response value from a previous request to indicate
  2059  	// that you want the next page of results. Leave this parameter empty in your
  2060  	// initial request.
  2061  	PaginationToken *string `type:"string"`
  2062  }
  2063  
  2064  // String returns the string representation.
  2065  //
  2066  // API parameter values that are decorated as "sensitive" in the API will not
  2067  // be included in the string output. The member name will be present, but the
  2068  // value will be replaced with "sensitive".
  2069  func (s GetTagValuesInput) String() string {
  2070  	return awsutil.Prettify(s)
  2071  }
  2072  
  2073  // GoString returns the string representation.
  2074  //
  2075  // API parameter values that are decorated as "sensitive" in the API will not
  2076  // be included in the string output. The member name will be present, but the
  2077  // value will be replaced with "sensitive".
  2078  func (s GetTagValuesInput) GoString() string {
  2079  	return s.String()
  2080  }
  2081  
  2082  // Validate inspects the fields of the type to determine if they are valid.
  2083  func (s *GetTagValuesInput) Validate() error {
  2084  	invalidParams := request.ErrInvalidParams{Context: "GetTagValuesInput"}
  2085  	if s.Key == nil {
  2086  		invalidParams.Add(request.NewErrParamRequired("Key"))
  2087  	}
  2088  	if s.Key != nil && len(*s.Key) < 1 {
  2089  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  2090  	}
  2091  
  2092  	if invalidParams.Len() > 0 {
  2093  		return invalidParams
  2094  	}
  2095  	return nil
  2096  }
  2097  
  2098  // SetKey sets the Key field's value.
  2099  func (s *GetTagValuesInput) SetKey(v string) *GetTagValuesInput {
  2100  	s.Key = &v
  2101  	return s
  2102  }
  2103  
  2104  // SetPaginationToken sets the PaginationToken field's value.
  2105  func (s *GetTagValuesInput) SetPaginationToken(v string) *GetTagValuesInput {
  2106  	s.PaginationToken = &v
  2107  	return s
  2108  }
  2109  
  2110  type GetTagValuesOutput struct {
  2111  	_ struct{} `type:"structure"`
  2112  
  2113  	// A string that indicates that there is more data available than this response
  2114  	// contains. To receive the next part of the response, specify this response
  2115  	// value as the PaginationToken value in the request for the next page.
  2116  	PaginationToken *string `type:"string"`
  2117  
  2118  	// A list of all tag values for the specified key currently used in the specified
  2119  	// AWS Region for the calling AWS account.
  2120  	TagValues []*string `type:"list"`
  2121  }
  2122  
  2123  // String returns the string representation.
  2124  //
  2125  // API parameter values that are decorated as "sensitive" in the API will not
  2126  // be included in the string output. The member name will be present, but the
  2127  // value will be replaced with "sensitive".
  2128  func (s GetTagValuesOutput) String() string {
  2129  	return awsutil.Prettify(s)
  2130  }
  2131  
  2132  // GoString returns the string representation.
  2133  //
  2134  // API parameter values that are decorated as "sensitive" in the API will not
  2135  // be included in the string output. The member name will be present, but the
  2136  // value will be replaced with "sensitive".
  2137  func (s GetTagValuesOutput) GoString() string {
  2138  	return s.String()
  2139  }
  2140  
  2141  // SetPaginationToken sets the PaginationToken field's value.
  2142  func (s *GetTagValuesOutput) SetPaginationToken(v string) *GetTagValuesOutput {
  2143  	s.PaginationToken = &v
  2144  	return s
  2145  }
  2146  
  2147  // SetTagValues sets the TagValues field's value.
  2148  func (s *GetTagValuesOutput) SetTagValues(v []*string) *GetTagValuesOutput {
  2149  	s.TagValues = v
  2150  	return s
  2151  }
  2152  
  2153  // The request processing failed because of an unknown error, exception, or
  2154  // failure. You can retry the request.
  2155  type InternalServiceException struct {
  2156  	_            struct{}                  `type:"structure"`
  2157  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2158  
  2159  	Message_ *string `locationName:"Message" type:"string"`
  2160  }
  2161  
  2162  // String returns the string representation.
  2163  //
  2164  // API parameter values that are decorated as "sensitive" in the API will not
  2165  // be included in the string output. The member name will be present, but the
  2166  // value will be replaced with "sensitive".
  2167  func (s InternalServiceException) String() string {
  2168  	return awsutil.Prettify(s)
  2169  }
  2170  
  2171  // GoString returns the string representation.
  2172  //
  2173  // API parameter values that are decorated as "sensitive" in the API will not
  2174  // be included in the string output. The member name will be present, but the
  2175  // value will be replaced with "sensitive".
  2176  func (s InternalServiceException) GoString() string {
  2177  	return s.String()
  2178  }
  2179  
  2180  func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
  2181  	return &InternalServiceException{
  2182  		RespMetadata: v,
  2183  	}
  2184  }
  2185  
  2186  // Code returns the exception type name.
  2187  func (s *InternalServiceException) Code() string {
  2188  	return "InternalServiceException"
  2189  }
  2190  
  2191  // Message returns the exception's message.
  2192  func (s *InternalServiceException) Message() string {
  2193  	if s.Message_ != nil {
  2194  		return *s.Message_
  2195  	}
  2196  	return ""
  2197  }
  2198  
  2199  // OrigErr always returns nil, satisfies awserr.Error interface.
  2200  func (s *InternalServiceException) OrigErr() error {
  2201  	return nil
  2202  }
  2203  
  2204  func (s *InternalServiceException) Error() string {
  2205  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2206  }
  2207  
  2208  // Status code returns the HTTP status code for the request's response error.
  2209  func (s *InternalServiceException) StatusCode() int {
  2210  	return s.RespMetadata.StatusCode
  2211  }
  2212  
  2213  // RequestID returns the service's response RequestID for request.
  2214  func (s *InternalServiceException) RequestID() string {
  2215  	return s.RespMetadata.RequestID
  2216  }
  2217  
  2218  // This error indicates one of the following:
  2219  //
  2220  //    * A parameter is missing.
  2221  //
  2222  //    * A malformed string was supplied for the request parameter.
  2223  //
  2224  //    * An out-of-range value was supplied for the request parameter.
  2225  //
  2226  //    * The target ID is invalid, unsupported, or doesn't exist.
  2227  //
  2228  //    * You can't access the Amazon S3 bucket for report storage. For more information,
  2229  //    see Additional Requirements for Organization-wide Tag Compliance Reports
  2230  //    (http://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies-prereqs.html#bucket-policies-org-report)
  2231  //    in the AWS Organizations User Guide.
  2232  type InvalidParameterException struct {
  2233  	_            struct{}                  `type:"structure"`
  2234  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2235  
  2236  	Message_ *string `locationName:"Message" type:"string"`
  2237  }
  2238  
  2239  // String returns the string representation.
  2240  //
  2241  // API parameter values that are decorated as "sensitive" in the API will not
  2242  // be included in the string output. The member name will be present, but the
  2243  // value will be replaced with "sensitive".
  2244  func (s InvalidParameterException) String() string {
  2245  	return awsutil.Prettify(s)
  2246  }
  2247  
  2248  // GoString returns the string representation.
  2249  //
  2250  // API parameter values that are decorated as "sensitive" in the API will not
  2251  // be included in the string output. The member name will be present, but the
  2252  // value will be replaced with "sensitive".
  2253  func (s InvalidParameterException) GoString() string {
  2254  	return s.String()
  2255  }
  2256  
  2257  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
  2258  	return &InvalidParameterException{
  2259  		RespMetadata: v,
  2260  	}
  2261  }
  2262  
  2263  // Code returns the exception type name.
  2264  func (s *InvalidParameterException) Code() string {
  2265  	return "InvalidParameterException"
  2266  }
  2267  
  2268  // Message returns the exception's message.
  2269  func (s *InvalidParameterException) Message() string {
  2270  	if s.Message_ != nil {
  2271  		return *s.Message_
  2272  	}
  2273  	return ""
  2274  }
  2275  
  2276  // OrigErr always returns nil, satisfies awserr.Error interface.
  2277  func (s *InvalidParameterException) OrigErr() error {
  2278  	return nil
  2279  }
  2280  
  2281  func (s *InvalidParameterException) Error() string {
  2282  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2283  }
  2284  
  2285  // Status code returns the HTTP status code for the request's response error.
  2286  func (s *InvalidParameterException) StatusCode() int {
  2287  	return s.RespMetadata.StatusCode
  2288  }
  2289  
  2290  // RequestID returns the service's response RequestID for request.
  2291  func (s *InvalidParameterException) RequestID() string {
  2292  	return s.RespMetadata.RequestID
  2293  }
  2294  
  2295  // A PaginationToken is valid for a maximum of 15 minutes. Your request was
  2296  // denied because the specified PaginationToken has expired.
  2297  type PaginationTokenExpiredException struct {
  2298  	_            struct{}                  `type:"structure"`
  2299  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2300  
  2301  	Message_ *string `locationName:"Message" type:"string"`
  2302  }
  2303  
  2304  // String returns the string representation.
  2305  //
  2306  // API parameter values that are decorated as "sensitive" in the API will not
  2307  // be included in the string output. The member name will be present, but the
  2308  // value will be replaced with "sensitive".
  2309  func (s PaginationTokenExpiredException) String() string {
  2310  	return awsutil.Prettify(s)
  2311  }
  2312  
  2313  // GoString returns the string representation.
  2314  //
  2315  // API parameter values that are decorated as "sensitive" in the API will not
  2316  // be included in the string output. The member name will be present, but the
  2317  // value will be replaced with "sensitive".
  2318  func (s PaginationTokenExpiredException) GoString() string {
  2319  	return s.String()
  2320  }
  2321  
  2322  func newErrorPaginationTokenExpiredException(v protocol.ResponseMetadata) error {
  2323  	return &PaginationTokenExpiredException{
  2324  		RespMetadata: v,
  2325  	}
  2326  }
  2327  
  2328  // Code returns the exception type name.
  2329  func (s *PaginationTokenExpiredException) Code() string {
  2330  	return "PaginationTokenExpiredException"
  2331  }
  2332  
  2333  // Message returns the exception's message.
  2334  func (s *PaginationTokenExpiredException) Message() string {
  2335  	if s.Message_ != nil {
  2336  		return *s.Message_
  2337  	}
  2338  	return ""
  2339  }
  2340  
  2341  // OrigErr always returns nil, satisfies awserr.Error interface.
  2342  func (s *PaginationTokenExpiredException) OrigErr() error {
  2343  	return nil
  2344  }
  2345  
  2346  func (s *PaginationTokenExpiredException) Error() string {
  2347  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2348  }
  2349  
  2350  // Status code returns the HTTP status code for the request's response error.
  2351  func (s *PaginationTokenExpiredException) StatusCode() int {
  2352  	return s.RespMetadata.StatusCode
  2353  }
  2354  
  2355  // RequestID returns the service's response RequestID for request.
  2356  func (s *PaginationTokenExpiredException) RequestID() string {
  2357  	return s.RespMetadata.RequestID
  2358  }
  2359  
  2360  // A list of resource ARNs and the tags (keys and values) that are associated
  2361  // with each.
  2362  type ResourceTagMapping struct {
  2363  	_ struct{} `type:"structure"`
  2364  
  2365  	// Information that shows whether a resource is compliant with the effective
  2366  	// tag policy, including details on any noncompliant tag keys.
  2367  	ComplianceDetails *ComplianceDetails `type:"structure"`
  2368  
  2369  	// The ARN of the resource.
  2370  	ResourceARN *string `min:"1" type:"string"`
  2371  
  2372  	// The tags that have been applied to one or more AWS resources.
  2373  	Tags []*Tag `type:"list"`
  2374  }
  2375  
  2376  // String returns the string representation.
  2377  //
  2378  // API parameter values that are decorated as "sensitive" in the API will not
  2379  // be included in the string output. The member name will be present, but the
  2380  // value will be replaced with "sensitive".
  2381  func (s ResourceTagMapping) String() string {
  2382  	return awsutil.Prettify(s)
  2383  }
  2384  
  2385  // GoString returns the string representation.
  2386  //
  2387  // API parameter values that are decorated as "sensitive" in the API will not
  2388  // be included in the string output. The member name will be present, but the
  2389  // value will be replaced with "sensitive".
  2390  func (s ResourceTagMapping) GoString() string {
  2391  	return s.String()
  2392  }
  2393  
  2394  // SetComplianceDetails sets the ComplianceDetails field's value.
  2395  func (s *ResourceTagMapping) SetComplianceDetails(v *ComplianceDetails) *ResourceTagMapping {
  2396  	s.ComplianceDetails = v
  2397  	return s
  2398  }
  2399  
  2400  // SetResourceARN sets the ResourceARN field's value.
  2401  func (s *ResourceTagMapping) SetResourceARN(v string) *ResourceTagMapping {
  2402  	s.ResourceARN = &v
  2403  	return s
  2404  }
  2405  
  2406  // SetTags sets the Tags field's value.
  2407  func (s *ResourceTagMapping) SetTags(v []*Tag) *ResourceTagMapping {
  2408  	s.Tags = v
  2409  	return s
  2410  }
  2411  
  2412  type StartReportCreationInput struct {
  2413  	_ struct{} `type:"structure"`
  2414  
  2415  	// The name of the Amazon S3 bucket where the report will be stored; for example:
  2416  	//
  2417  	// awsexamplebucket
  2418  	//
  2419  	// For more information on S3 bucket requirements, including an example bucket
  2420  	// policy, see the example S3 bucket policy on this page.
  2421  	//
  2422  	// S3Bucket is a required field
  2423  	S3Bucket *string `min:"3" type:"string" required:"true"`
  2424  }
  2425  
  2426  // String returns the string representation.
  2427  //
  2428  // API parameter values that are decorated as "sensitive" in the API will not
  2429  // be included in the string output. The member name will be present, but the
  2430  // value will be replaced with "sensitive".
  2431  func (s StartReportCreationInput) String() string {
  2432  	return awsutil.Prettify(s)
  2433  }
  2434  
  2435  // GoString returns the string representation.
  2436  //
  2437  // API parameter values that are decorated as "sensitive" in the API will not
  2438  // be included in the string output. The member name will be present, but the
  2439  // value will be replaced with "sensitive".
  2440  func (s StartReportCreationInput) GoString() string {
  2441  	return s.String()
  2442  }
  2443  
  2444  // Validate inspects the fields of the type to determine if they are valid.
  2445  func (s *StartReportCreationInput) Validate() error {
  2446  	invalidParams := request.ErrInvalidParams{Context: "StartReportCreationInput"}
  2447  	if s.S3Bucket == nil {
  2448  		invalidParams.Add(request.NewErrParamRequired("S3Bucket"))
  2449  	}
  2450  	if s.S3Bucket != nil && len(*s.S3Bucket) < 3 {
  2451  		invalidParams.Add(request.NewErrParamMinLen("S3Bucket", 3))
  2452  	}
  2453  
  2454  	if invalidParams.Len() > 0 {
  2455  		return invalidParams
  2456  	}
  2457  	return nil
  2458  }
  2459  
  2460  // SetS3Bucket sets the S3Bucket field's value.
  2461  func (s *StartReportCreationInput) SetS3Bucket(v string) *StartReportCreationInput {
  2462  	s.S3Bucket = &v
  2463  	return s
  2464  }
  2465  
  2466  type StartReportCreationOutput struct {
  2467  	_ struct{} `type:"structure"`
  2468  }
  2469  
  2470  // String returns the string representation.
  2471  //
  2472  // API parameter values that are decorated as "sensitive" in the API will not
  2473  // be included in the string output. The member name will be present, but the
  2474  // value will be replaced with "sensitive".
  2475  func (s StartReportCreationOutput) String() string {
  2476  	return awsutil.Prettify(s)
  2477  }
  2478  
  2479  // GoString returns the string representation.
  2480  //
  2481  // API parameter values that are decorated as "sensitive" in the API will not
  2482  // be included in the string output. The member name will be present, but the
  2483  // value will be replaced with "sensitive".
  2484  func (s StartReportCreationOutput) GoString() string {
  2485  	return s.String()
  2486  }
  2487  
  2488  // A count of noncompliant resources.
  2489  type Summary struct {
  2490  	_ struct{} `type:"structure"`
  2491  
  2492  	// The timestamp that shows when this summary was generated in this Region.
  2493  	LastUpdated *string `type:"string"`
  2494  
  2495  	// The count of noncompliant resources.
  2496  	NonCompliantResources *int64 `type:"long"`
  2497  
  2498  	// The AWS Region that the summary applies to.
  2499  	Region *string `min:"1" type:"string"`
  2500  
  2501  	// The AWS resource type.
  2502  	ResourceType *string `type:"string"`
  2503  
  2504  	// The account identifier or the root identifier of the organization. If you
  2505  	// don't know the root ID, you can call the AWS Organizations ListRoots (http://docs.aws.amazon.com/organizations/latest/APIReference/API_ListRoots.html)
  2506  	// API.
  2507  	TargetId *string `min:"6" type:"string"`
  2508  
  2509  	// Whether the target is an account, an OU, or the organization root.
  2510  	TargetIdType *string `type:"string" enum:"TargetIdType"`
  2511  }
  2512  
  2513  // String returns the string representation.
  2514  //
  2515  // API parameter values that are decorated as "sensitive" in the API will not
  2516  // be included in the string output. The member name will be present, but the
  2517  // value will be replaced with "sensitive".
  2518  func (s Summary) String() string {
  2519  	return awsutil.Prettify(s)
  2520  }
  2521  
  2522  // GoString returns the string representation.
  2523  //
  2524  // API parameter values that are decorated as "sensitive" in the API will not
  2525  // be included in the string output. The member name will be present, but the
  2526  // value will be replaced with "sensitive".
  2527  func (s Summary) GoString() string {
  2528  	return s.String()
  2529  }
  2530  
  2531  // SetLastUpdated sets the LastUpdated field's value.
  2532  func (s *Summary) SetLastUpdated(v string) *Summary {
  2533  	s.LastUpdated = &v
  2534  	return s
  2535  }
  2536  
  2537  // SetNonCompliantResources sets the NonCompliantResources field's value.
  2538  func (s *Summary) SetNonCompliantResources(v int64) *Summary {
  2539  	s.NonCompliantResources = &v
  2540  	return s
  2541  }
  2542  
  2543  // SetRegion sets the Region field's value.
  2544  func (s *Summary) SetRegion(v string) *Summary {
  2545  	s.Region = &v
  2546  	return s
  2547  }
  2548  
  2549  // SetResourceType sets the ResourceType field's value.
  2550  func (s *Summary) SetResourceType(v string) *Summary {
  2551  	s.ResourceType = &v
  2552  	return s
  2553  }
  2554  
  2555  // SetTargetId sets the TargetId field's value.
  2556  func (s *Summary) SetTargetId(v string) *Summary {
  2557  	s.TargetId = &v
  2558  	return s
  2559  }
  2560  
  2561  // SetTargetIdType sets the TargetIdType field's value.
  2562  func (s *Summary) SetTargetIdType(v string) *Summary {
  2563  	s.TargetIdType = &v
  2564  	return s
  2565  }
  2566  
  2567  // The metadata that you apply to AWS resources to help you categorize and organize
  2568  // them. Each tag consists of a key and a value, both of which you define. For
  2569  // more information, see Tagging AWS Resources (http://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
  2570  // in the AWS General Reference.
  2571  type Tag struct {
  2572  	_ struct{} `type:"structure"`
  2573  
  2574  	// One part of a key-value pair that makes up a tag. A key is a general label
  2575  	// that acts like a category for more specific tag values.
  2576  	//
  2577  	// Key is a required field
  2578  	Key *string `min:"1" type:"string" required:"true"`
  2579  
  2580  	// One part of a key-value pair that make up a tag. A value acts as a descriptor
  2581  	// within a tag category (key). The value can be empty or null.
  2582  	//
  2583  	// Value is a required field
  2584  	Value *string `type:"string" required:"true"`
  2585  }
  2586  
  2587  // String returns the string representation.
  2588  //
  2589  // API parameter values that are decorated as "sensitive" in the API will not
  2590  // be included in the string output. The member name will be present, but the
  2591  // value will be replaced with "sensitive".
  2592  func (s Tag) String() string {
  2593  	return awsutil.Prettify(s)
  2594  }
  2595  
  2596  // GoString returns the string representation.
  2597  //
  2598  // API parameter values that are decorated as "sensitive" in the API will not
  2599  // be included in the string output. The member name will be present, but the
  2600  // value will be replaced with "sensitive".
  2601  func (s Tag) GoString() string {
  2602  	return s.String()
  2603  }
  2604  
  2605  // SetKey sets the Key field's value.
  2606  func (s *Tag) SetKey(v string) *Tag {
  2607  	s.Key = &v
  2608  	return s
  2609  }
  2610  
  2611  // SetValue sets the Value field's value.
  2612  func (s *Tag) SetValue(v string) *Tag {
  2613  	s.Value = &v
  2614  	return s
  2615  }
  2616  
  2617  // A list of tags (keys and values) that are used to specify the associated
  2618  // resources.
  2619  type TagFilter struct {
  2620  	_ struct{} `type:"structure"`
  2621  
  2622  	// One part of a key-value pair that makes up a tag. A key is a general label
  2623  	// that acts like a category for more specific tag values.
  2624  	Key *string `min:"1" type:"string"`
  2625  
  2626  	// One part of a key-value pair that make up a tag. A value acts as a descriptor
  2627  	// within a tag category (key). The value can be empty or null.
  2628  	Values []*string `type:"list"`
  2629  }
  2630  
  2631  // String returns the string representation.
  2632  //
  2633  // API parameter values that are decorated as "sensitive" in the API will not
  2634  // be included in the string output. The member name will be present, but the
  2635  // value will be replaced with "sensitive".
  2636  func (s TagFilter) String() string {
  2637  	return awsutil.Prettify(s)
  2638  }
  2639  
  2640  // GoString returns the string representation.
  2641  //
  2642  // API parameter values that are decorated as "sensitive" in the API will not
  2643  // be included in the string output. The member name will be present, but the
  2644  // value will be replaced with "sensitive".
  2645  func (s TagFilter) GoString() string {
  2646  	return s.String()
  2647  }
  2648  
  2649  // Validate inspects the fields of the type to determine if they are valid.
  2650  func (s *TagFilter) Validate() error {
  2651  	invalidParams := request.ErrInvalidParams{Context: "TagFilter"}
  2652  	if s.Key != nil && len(*s.Key) < 1 {
  2653  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  2654  	}
  2655  
  2656  	if invalidParams.Len() > 0 {
  2657  		return invalidParams
  2658  	}
  2659  	return nil
  2660  }
  2661  
  2662  // SetKey sets the Key field's value.
  2663  func (s *TagFilter) SetKey(v string) *TagFilter {
  2664  	s.Key = &v
  2665  	return s
  2666  }
  2667  
  2668  // SetValues sets the Values field's value.
  2669  func (s *TagFilter) SetValues(v []*string) *TagFilter {
  2670  	s.Values = v
  2671  	return s
  2672  }
  2673  
  2674  type TagResourcesInput struct {
  2675  	_ struct{} `type:"structure"`
  2676  
  2677  	// Specifies the list of ARNs of the resources that you want to apply tags to.
  2678  	//
  2679  	// An ARN (Amazon Resource Name) uniquely identifies a resource. For more information,
  2680  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  2681  	// in the AWS General Reference.
  2682  	//
  2683  	// ResourceARNList is a required field
  2684  	ResourceARNList []*string `min:"1" type:"list" required:"true"`
  2685  
  2686  	// Specifies a list of tags that you want to add to the specified resources.
  2687  	// A tag consists of a key and a value that you define.
  2688  	//
  2689  	// Tags is a required field
  2690  	Tags map[string]*string `min:"1" type:"map" required:"true"`
  2691  }
  2692  
  2693  // String returns the string representation.
  2694  //
  2695  // API parameter values that are decorated as "sensitive" in the API will not
  2696  // be included in the string output. The member name will be present, but the
  2697  // value will be replaced with "sensitive".
  2698  func (s TagResourcesInput) String() string {
  2699  	return awsutil.Prettify(s)
  2700  }
  2701  
  2702  // GoString returns the string representation.
  2703  //
  2704  // API parameter values that are decorated as "sensitive" in the API will not
  2705  // be included in the string output. The member name will be present, but the
  2706  // value will be replaced with "sensitive".
  2707  func (s TagResourcesInput) GoString() string {
  2708  	return s.String()
  2709  }
  2710  
  2711  // Validate inspects the fields of the type to determine if they are valid.
  2712  func (s *TagResourcesInput) Validate() error {
  2713  	invalidParams := request.ErrInvalidParams{Context: "TagResourcesInput"}
  2714  	if s.ResourceARNList == nil {
  2715  		invalidParams.Add(request.NewErrParamRequired("ResourceARNList"))
  2716  	}
  2717  	if s.ResourceARNList != nil && len(s.ResourceARNList) < 1 {
  2718  		invalidParams.Add(request.NewErrParamMinLen("ResourceARNList", 1))
  2719  	}
  2720  	if s.Tags == nil {
  2721  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  2722  	}
  2723  	if s.Tags != nil && len(s.Tags) < 1 {
  2724  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  2725  	}
  2726  
  2727  	if invalidParams.Len() > 0 {
  2728  		return invalidParams
  2729  	}
  2730  	return nil
  2731  }
  2732  
  2733  // SetResourceARNList sets the ResourceARNList field's value.
  2734  func (s *TagResourcesInput) SetResourceARNList(v []*string) *TagResourcesInput {
  2735  	s.ResourceARNList = v
  2736  	return s
  2737  }
  2738  
  2739  // SetTags sets the Tags field's value.
  2740  func (s *TagResourcesInput) SetTags(v map[string]*string) *TagResourcesInput {
  2741  	s.Tags = v
  2742  	return s
  2743  }
  2744  
  2745  type TagResourcesOutput struct {
  2746  	_ struct{} `type:"structure"`
  2747  
  2748  	// A map containing a key-value pair for each failed item that couldn't be tagged.
  2749  	// The key is the ARN of the failed resource. The value is a FailureInfo object
  2750  	// that contains an error code, a status code, and an error message. If there
  2751  	// are no errors, the FailedResourcesMap is empty.
  2752  	FailedResourcesMap map[string]*FailureInfo `type:"map"`
  2753  }
  2754  
  2755  // String returns the string representation.
  2756  //
  2757  // API parameter values that are decorated as "sensitive" in the API will not
  2758  // be included in the string output. The member name will be present, but the
  2759  // value will be replaced with "sensitive".
  2760  func (s TagResourcesOutput) String() string {
  2761  	return awsutil.Prettify(s)
  2762  }
  2763  
  2764  // GoString returns the string representation.
  2765  //
  2766  // API parameter values that are decorated as "sensitive" in the API will not
  2767  // be included in the string output. The member name will be present, but the
  2768  // value will be replaced with "sensitive".
  2769  func (s TagResourcesOutput) GoString() string {
  2770  	return s.String()
  2771  }
  2772  
  2773  // SetFailedResourcesMap sets the FailedResourcesMap field's value.
  2774  func (s *TagResourcesOutput) SetFailedResourcesMap(v map[string]*FailureInfo) *TagResourcesOutput {
  2775  	s.FailedResourcesMap = v
  2776  	return s
  2777  }
  2778  
  2779  // The request was denied to limit the frequency of submitted requests.
  2780  type ThrottledException struct {
  2781  	_            struct{}                  `type:"structure"`
  2782  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2783  
  2784  	Message_ *string `locationName:"Message" type:"string"`
  2785  }
  2786  
  2787  // String returns the string representation.
  2788  //
  2789  // API parameter values that are decorated as "sensitive" in the API will not
  2790  // be included in the string output. The member name will be present, but the
  2791  // value will be replaced with "sensitive".
  2792  func (s ThrottledException) String() string {
  2793  	return awsutil.Prettify(s)
  2794  }
  2795  
  2796  // GoString returns the string representation.
  2797  //
  2798  // API parameter values that are decorated as "sensitive" in the API will not
  2799  // be included in the string output. The member name will be present, but the
  2800  // value will be replaced with "sensitive".
  2801  func (s ThrottledException) GoString() string {
  2802  	return s.String()
  2803  }
  2804  
  2805  func newErrorThrottledException(v protocol.ResponseMetadata) error {
  2806  	return &ThrottledException{
  2807  		RespMetadata: v,
  2808  	}
  2809  }
  2810  
  2811  // Code returns the exception type name.
  2812  func (s *ThrottledException) Code() string {
  2813  	return "ThrottledException"
  2814  }
  2815  
  2816  // Message returns the exception's message.
  2817  func (s *ThrottledException) Message() string {
  2818  	if s.Message_ != nil {
  2819  		return *s.Message_
  2820  	}
  2821  	return ""
  2822  }
  2823  
  2824  // OrigErr always returns nil, satisfies awserr.Error interface.
  2825  func (s *ThrottledException) OrigErr() error {
  2826  	return nil
  2827  }
  2828  
  2829  func (s *ThrottledException) Error() string {
  2830  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2831  }
  2832  
  2833  // Status code returns the HTTP status code for the request's response error.
  2834  func (s *ThrottledException) StatusCode() int {
  2835  	return s.RespMetadata.StatusCode
  2836  }
  2837  
  2838  // RequestID returns the service's response RequestID for request.
  2839  func (s *ThrottledException) RequestID() string {
  2840  	return s.RespMetadata.RequestID
  2841  }
  2842  
  2843  type UntagResourcesInput struct {
  2844  	_ struct{} `type:"structure"`
  2845  
  2846  	// Specifies a list of ARNs of the resources that you want to remove tags from.
  2847  	//
  2848  	// An ARN (Amazon Resource Name) uniquely identifies a resource. For more information,
  2849  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
  2850  	// in the AWS General Reference.
  2851  	//
  2852  	// ResourceARNList is a required field
  2853  	ResourceARNList []*string `min:"1" type:"list" required:"true"`
  2854  
  2855  	// Specifies a list of tag keys that you want to remove from the specified resources.
  2856  	//
  2857  	// TagKeys is a required field
  2858  	TagKeys []*string `min:"1" type:"list" required:"true"`
  2859  }
  2860  
  2861  // String returns the string representation.
  2862  //
  2863  // API parameter values that are decorated as "sensitive" in the API will not
  2864  // be included in the string output. The member name will be present, but the
  2865  // value will be replaced with "sensitive".
  2866  func (s UntagResourcesInput) String() string {
  2867  	return awsutil.Prettify(s)
  2868  }
  2869  
  2870  // GoString returns the string representation.
  2871  //
  2872  // API parameter values that are decorated as "sensitive" in the API will not
  2873  // be included in the string output. The member name will be present, but the
  2874  // value will be replaced with "sensitive".
  2875  func (s UntagResourcesInput) GoString() string {
  2876  	return s.String()
  2877  }
  2878  
  2879  // Validate inspects the fields of the type to determine if they are valid.
  2880  func (s *UntagResourcesInput) Validate() error {
  2881  	invalidParams := request.ErrInvalidParams{Context: "UntagResourcesInput"}
  2882  	if s.ResourceARNList == nil {
  2883  		invalidParams.Add(request.NewErrParamRequired("ResourceARNList"))
  2884  	}
  2885  	if s.ResourceARNList != nil && len(s.ResourceARNList) < 1 {
  2886  		invalidParams.Add(request.NewErrParamMinLen("ResourceARNList", 1))
  2887  	}
  2888  	if s.TagKeys == nil {
  2889  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  2890  	}
  2891  	if s.TagKeys != nil && len(s.TagKeys) < 1 {
  2892  		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
  2893  	}
  2894  
  2895  	if invalidParams.Len() > 0 {
  2896  		return invalidParams
  2897  	}
  2898  	return nil
  2899  }
  2900  
  2901  // SetResourceARNList sets the ResourceARNList field's value.
  2902  func (s *UntagResourcesInput) SetResourceARNList(v []*string) *UntagResourcesInput {
  2903  	s.ResourceARNList = v
  2904  	return s
  2905  }
  2906  
  2907  // SetTagKeys sets the TagKeys field's value.
  2908  func (s *UntagResourcesInput) SetTagKeys(v []*string) *UntagResourcesInput {
  2909  	s.TagKeys = v
  2910  	return s
  2911  }
  2912  
  2913  type UntagResourcesOutput struct {
  2914  	_ struct{} `type:"structure"`
  2915  
  2916  	// A map containing a key-value pair for each failed item that couldn't be untagged.
  2917  	// The key is the ARN of the failed resource. The value is a FailureInfo object
  2918  	// that contains an error code, a status code, and an error message. If there
  2919  	// are no errors, the FailedResourcesMap is empty.
  2920  	FailedResourcesMap map[string]*FailureInfo `type:"map"`
  2921  }
  2922  
  2923  // String returns the string representation.
  2924  //
  2925  // API parameter values that are decorated as "sensitive" in the API will not
  2926  // be included in the string output. The member name will be present, but the
  2927  // value will be replaced with "sensitive".
  2928  func (s UntagResourcesOutput) String() string {
  2929  	return awsutil.Prettify(s)
  2930  }
  2931  
  2932  // GoString returns the string representation.
  2933  //
  2934  // API parameter values that are decorated as "sensitive" in the API will not
  2935  // be included in the string output. The member name will be present, but the
  2936  // value will be replaced with "sensitive".
  2937  func (s UntagResourcesOutput) GoString() string {
  2938  	return s.String()
  2939  }
  2940  
  2941  // SetFailedResourcesMap sets the FailedResourcesMap field's value.
  2942  func (s *UntagResourcesOutput) SetFailedResourcesMap(v map[string]*FailureInfo) *UntagResourcesOutput {
  2943  	s.FailedResourcesMap = v
  2944  	return s
  2945  }
  2946  
  2947  const (
  2948  	// ErrorCodeInternalServiceException is a ErrorCode enum value
  2949  	ErrorCodeInternalServiceException = "InternalServiceException"
  2950  
  2951  	// ErrorCodeInvalidParameterException is a ErrorCode enum value
  2952  	ErrorCodeInvalidParameterException = "InvalidParameterException"
  2953  )
  2954  
  2955  // ErrorCode_Values returns all elements of the ErrorCode enum
  2956  func ErrorCode_Values() []string {
  2957  	return []string{
  2958  		ErrorCodeInternalServiceException,
  2959  		ErrorCodeInvalidParameterException,
  2960  	}
  2961  }
  2962  
  2963  const (
  2964  	// GroupByAttributeTargetId is a GroupByAttribute enum value
  2965  	GroupByAttributeTargetId = "TARGET_ID"
  2966  
  2967  	// GroupByAttributeRegion is a GroupByAttribute enum value
  2968  	GroupByAttributeRegion = "REGION"
  2969  
  2970  	// GroupByAttributeResourceType is a GroupByAttribute enum value
  2971  	GroupByAttributeResourceType = "RESOURCE_TYPE"
  2972  )
  2973  
  2974  // GroupByAttribute_Values returns all elements of the GroupByAttribute enum
  2975  func GroupByAttribute_Values() []string {
  2976  	return []string{
  2977  		GroupByAttributeTargetId,
  2978  		GroupByAttributeRegion,
  2979  		GroupByAttributeResourceType,
  2980  	}
  2981  }
  2982  
  2983  const (
  2984  	// TargetIdTypeAccount is a TargetIdType enum value
  2985  	TargetIdTypeAccount = "ACCOUNT"
  2986  
  2987  	// TargetIdTypeOu is a TargetIdType enum value
  2988  	TargetIdTypeOu = "OU"
  2989  
  2990  	// TargetIdTypeRoot is a TargetIdType enum value
  2991  	TargetIdTypeRoot = "ROOT"
  2992  )
  2993  
  2994  // TargetIdType_Values returns all elements of the TargetIdType enum
  2995  func TargetIdType_Values() []string {
  2996  	return []string{
  2997  		TargetIdTypeAccount,
  2998  		TargetIdTypeOu,
  2999  		TargetIdTypeRoot,
  3000  	}
  3001  }