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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package resourcegroups
     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/restjson"
    13  )
    14  
    15  const opCreateGroup = "CreateGroup"
    16  
    17  // CreateGroupRequest generates a "aws/request.Request" representing the
    18  // client's request for the CreateGroup 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 CreateGroup for more information on using the CreateGroup
    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 CreateGroupRequest method.
    33  //    req, resp := client.CreateGroupRequest(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/resource-groups-2017-11-27/CreateGroup
    41  func (c *ResourceGroups) CreateGroupRequest(input *CreateGroupInput) (req *request.Request, output *CreateGroupOutput) {
    42  	op := &request.Operation{
    43  		Name:       opCreateGroup,
    44  		HTTPMethod: "POST",
    45  		HTTPPath:   "/groups",
    46  	}
    47  
    48  	if input == nil {
    49  		input = &CreateGroupInput{}
    50  	}
    51  
    52  	output = &CreateGroupOutput{}
    53  	req = c.newRequest(op, input, output)
    54  	return
    55  }
    56  
    57  // CreateGroup API operation for AWS Resource Groups.
    58  //
    59  // Creates a resource group with the specified name and description. You can
    60  // optionally include a resource query, or a service configuration. For more
    61  // information about constructing a resource query, see Create a tag-based group
    62  // in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag).
    63  // For more information about service configurations, see Service configurations
    64  // for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
    65  //
    66  // Minimum permissions
    67  //
    68  // To run this command, you must have the following permissions:
    69  //
    70  //    * resource-groups:CreateGroup
    71  //
    72  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    73  // with awserr.Error's Code and Message methods to get detailed information about
    74  // the error.
    75  //
    76  // See the AWS API reference guide for AWS Resource Groups's
    77  // API operation CreateGroup for usage and error information.
    78  //
    79  // Returned Error Types:
    80  //   * BadRequestException
    81  //   The request includes one or more parameters that violate validation rules.
    82  //
    83  //   * ForbiddenException
    84  //   The caller isn't authorized to make the request. Check permissions.
    85  //
    86  //   * MethodNotAllowedException
    87  //   The request uses an HTTP method that isn't allowed for the specified resource.
    88  //
    89  //   * TooManyRequestsException
    90  //   You've exceeded throttling limits by making too many requests in a period
    91  //   of time.
    92  //
    93  //   * InternalServerErrorException
    94  //   An internal error occurred while processing the request. Try again later.
    95  //
    96  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/CreateGroup
    97  func (c *ResourceGroups) CreateGroup(input *CreateGroupInput) (*CreateGroupOutput, error) {
    98  	req, out := c.CreateGroupRequest(input)
    99  	return out, req.Send()
   100  }
   101  
   102  // CreateGroupWithContext is the same as CreateGroup with the addition of
   103  // the ability to pass a context and additional request options.
   104  //
   105  // See CreateGroup for details on how to use this API operation.
   106  //
   107  // The context must be non-nil and will be used for request cancellation. If
   108  // the context is nil a panic will occur. In the future the SDK may create
   109  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   110  // for more information on using Contexts.
   111  func (c *ResourceGroups) CreateGroupWithContext(ctx aws.Context, input *CreateGroupInput, opts ...request.Option) (*CreateGroupOutput, error) {
   112  	req, out := c.CreateGroupRequest(input)
   113  	req.SetContext(ctx)
   114  	req.ApplyOptions(opts...)
   115  	return out, req.Send()
   116  }
   117  
   118  const opDeleteGroup = "DeleteGroup"
   119  
   120  // DeleteGroupRequest generates a "aws/request.Request" representing the
   121  // client's request for the DeleteGroup operation. The "output" return
   122  // value will be populated with the request's response once the request completes
   123  // successfully.
   124  //
   125  // Use "Send" method on the returned Request to send the API call to the service.
   126  // the "output" return value is not valid until after Send returns without error.
   127  //
   128  // See DeleteGroup for more information on using the DeleteGroup
   129  // API call, and error handling.
   130  //
   131  // This method is useful when you want to inject custom logic or configuration
   132  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   133  //
   134  //
   135  //    // Example sending a request using the DeleteGroupRequest method.
   136  //    req, resp := client.DeleteGroupRequest(params)
   137  //
   138  //    err := req.Send()
   139  //    if err == nil { // resp is now filled
   140  //        fmt.Println(resp)
   141  //    }
   142  //
   143  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/DeleteGroup
   144  func (c *ResourceGroups) DeleteGroupRequest(input *DeleteGroupInput) (req *request.Request, output *DeleteGroupOutput) {
   145  	op := &request.Operation{
   146  		Name:       opDeleteGroup,
   147  		HTTPMethod: "POST",
   148  		HTTPPath:   "/delete-group",
   149  	}
   150  
   151  	if input == nil {
   152  		input = &DeleteGroupInput{}
   153  	}
   154  
   155  	output = &DeleteGroupOutput{}
   156  	req = c.newRequest(op, input, output)
   157  	return
   158  }
   159  
   160  // DeleteGroup API operation for AWS Resource Groups.
   161  //
   162  // Deletes the specified resource group. Deleting a resource group does not
   163  // delete any resources that are members of the group; it only deletes the group
   164  // structure.
   165  //
   166  // Minimum permissions
   167  //
   168  // To run this command, you must have the following permissions:
   169  //
   170  //    * resource-groups:DeleteGroup
   171  //
   172  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   173  // with awserr.Error's Code and Message methods to get detailed information about
   174  // the error.
   175  //
   176  // See the AWS API reference guide for AWS Resource Groups's
   177  // API operation DeleteGroup for usage and error information.
   178  //
   179  // Returned Error Types:
   180  //   * BadRequestException
   181  //   The request includes one or more parameters that violate validation rules.
   182  //
   183  //   * ForbiddenException
   184  //   The caller isn't authorized to make the request. Check permissions.
   185  //
   186  //   * NotFoundException
   187  //   One or more of the specified resources don't exist.
   188  //
   189  //   * MethodNotAllowedException
   190  //   The request uses an HTTP method that isn't allowed for the specified resource.
   191  //
   192  //   * TooManyRequestsException
   193  //   You've exceeded throttling limits by making too many requests in a period
   194  //   of time.
   195  //
   196  //   * InternalServerErrorException
   197  //   An internal error occurred while processing the request. Try again later.
   198  //
   199  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/DeleteGroup
   200  func (c *ResourceGroups) DeleteGroup(input *DeleteGroupInput) (*DeleteGroupOutput, error) {
   201  	req, out := c.DeleteGroupRequest(input)
   202  	return out, req.Send()
   203  }
   204  
   205  // DeleteGroupWithContext is the same as DeleteGroup with the addition of
   206  // the ability to pass a context and additional request options.
   207  //
   208  // See DeleteGroup for details on how to use this API operation.
   209  //
   210  // The context must be non-nil and will be used for request cancellation. If
   211  // the context is nil a panic will occur. In the future the SDK may create
   212  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   213  // for more information on using Contexts.
   214  func (c *ResourceGroups) DeleteGroupWithContext(ctx aws.Context, input *DeleteGroupInput, opts ...request.Option) (*DeleteGroupOutput, error) {
   215  	req, out := c.DeleteGroupRequest(input)
   216  	req.SetContext(ctx)
   217  	req.ApplyOptions(opts...)
   218  	return out, req.Send()
   219  }
   220  
   221  const opGetGroup = "GetGroup"
   222  
   223  // GetGroupRequest generates a "aws/request.Request" representing the
   224  // client's request for the GetGroup operation. The "output" return
   225  // value will be populated with the request's response once the request completes
   226  // successfully.
   227  //
   228  // Use "Send" method on the returned Request to send the API call to the service.
   229  // the "output" return value is not valid until after Send returns without error.
   230  //
   231  // See GetGroup for more information on using the GetGroup
   232  // API call, and error handling.
   233  //
   234  // This method is useful when you want to inject custom logic or configuration
   235  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   236  //
   237  //
   238  //    // Example sending a request using the GetGroupRequest method.
   239  //    req, resp := client.GetGroupRequest(params)
   240  //
   241  //    err := req.Send()
   242  //    if err == nil { // resp is now filled
   243  //        fmt.Println(resp)
   244  //    }
   245  //
   246  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroup
   247  func (c *ResourceGroups) GetGroupRequest(input *GetGroupInput) (req *request.Request, output *GetGroupOutput) {
   248  	op := &request.Operation{
   249  		Name:       opGetGroup,
   250  		HTTPMethod: "POST",
   251  		HTTPPath:   "/get-group",
   252  	}
   253  
   254  	if input == nil {
   255  		input = &GetGroupInput{}
   256  	}
   257  
   258  	output = &GetGroupOutput{}
   259  	req = c.newRequest(op, input, output)
   260  	return
   261  }
   262  
   263  // GetGroup API operation for AWS Resource Groups.
   264  //
   265  // Returns information about a specified resource group.
   266  //
   267  // Minimum permissions
   268  //
   269  // To run this command, you must have the following permissions:
   270  //
   271  //    * resource-groups:GetGroup
   272  //
   273  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   274  // with awserr.Error's Code and Message methods to get detailed information about
   275  // the error.
   276  //
   277  // See the AWS API reference guide for AWS Resource Groups's
   278  // API operation GetGroup for usage and error information.
   279  //
   280  // Returned Error Types:
   281  //   * BadRequestException
   282  //   The request includes one or more parameters that violate validation rules.
   283  //
   284  //   * ForbiddenException
   285  //   The caller isn't authorized to make the request. Check permissions.
   286  //
   287  //   * NotFoundException
   288  //   One or more of the specified resources don't exist.
   289  //
   290  //   * MethodNotAllowedException
   291  //   The request uses an HTTP method that isn't allowed for the specified resource.
   292  //
   293  //   * TooManyRequestsException
   294  //   You've exceeded throttling limits by making too many requests in a period
   295  //   of time.
   296  //
   297  //   * InternalServerErrorException
   298  //   An internal error occurred while processing the request. Try again later.
   299  //
   300  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroup
   301  func (c *ResourceGroups) GetGroup(input *GetGroupInput) (*GetGroupOutput, error) {
   302  	req, out := c.GetGroupRequest(input)
   303  	return out, req.Send()
   304  }
   305  
   306  // GetGroupWithContext is the same as GetGroup with the addition of
   307  // the ability to pass a context and additional request options.
   308  //
   309  // See GetGroup for details on how to use this API operation.
   310  //
   311  // The context must be non-nil and will be used for request cancellation. If
   312  // the context is nil a panic will occur. In the future the SDK may create
   313  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   314  // for more information on using Contexts.
   315  func (c *ResourceGroups) GetGroupWithContext(ctx aws.Context, input *GetGroupInput, opts ...request.Option) (*GetGroupOutput, error) {
   316  	req, out := c.GetGroupRequest(input)
   317  	req.SetContext(ctx)
   318  	req.ApplyOptions(opts...)
   319  	return out, req.Send()
   320  }
   321  
   322  const opGetGroupConfiguration = "GetGroupConfiguration"
   323  
   324  // GetGroupConfigurationRequest generates a "aws/request.Request" representing the
   325  // client's request for the GetGroupConfiguration 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 GetGroupConfiguration for more information on using the GetGroupConfiguration
   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 GetGroupConfigurationRequest method.
   340  //    req, resp := client.GetGroupConfigurationRequest(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/resource-groups-2017-11-27/GetGroupConfiguration
   348  func (c *ResourceGroups) GetGroupConfigurationRequest(input *GetGroupConfigurationInput) (req *request.Request, output *GetGroupConfigurationOutput) {
   349  	op := &request.Operation{
   350  		Name:       opGetGroupConfiguration,
   351  		HTTPMethod: "POST",
   352  		HTTPPath:   "/get-group-configuration",
   353  	}
   354  
   355  	if input == nil {
   356  		input = &GetGroupConfigurationInput{}
   357  	}
   358  
   359  	output = &GetGroupConfigurationOutput{}
   360  	req = c.newRequest(op, input, output)
   361  	return
   362  }
   363  
   364  // GetGroupConfiguration API operation for AWS Resource Groups.
   365  //
   366  // Returns the service configuration associated with the specified resource
   367  // group. For details about the service configuration syntax, see Service configurations
   368  // for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
   369  //
   370  // Minimum permissions
   371  //
   372  // To run this command, you must have the following permissions:
   373  //
   374  //    * resource-groups:GetGroupConfiguration
   375  //
   376  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   377  // with awserr.Error's Code and Message methods to get detailed information about
   378  // the error.
   379  //
   380  // See the AWS API reference guide for AWS Resource Groups's
   381  // API operation GetGroupConfiguration for usage and error information.
   382  //
   383  // Returned Error Types:
   384  //   * BadRequestException
   385  //   The request includes one or more parameters that violate validation rules.
   386  //
   387  //   * ForbiddenException
   388  //   The caller isn't authorized to make the request. Check permissions.
   389  //
   390  //   * NotFoundException
   391  //   One or more of the specified resources don't exist.
   392  //
   393  //   * MethodNotAllowedException
   394  //   The request uses an HTTP method that isn't allowed for the specified resource.
   395  //
   396  //   * TooManyRequestsException
   397  //   You've exceeded throttling limits by making too many requests in a period
   398  //   of time.
   399  //
   400  //   * InternalServerErrorException
   401  //   An internal error occurred while processing the request. Try again later.
   402  //
   403  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupConfiguration
   404  func (c *ResourceGroups) GetGroupConfiguration(input *GetGroupConfigurationInput) (*GetGroupConfigurationOutput, error) {
   405  	req, out := c.GetGroupConfigurationRequest(input)
   406  	return out, req.Send()
   407  }
   408  
   409  // GetGroupConfigurationWithContext is the same as GetGroupConfiguration with the addition of
   410  // the ability to pass a context and additional request options.
   411  //
   412  // See GetGroupConfiguration for details on how to use this API operation.
   413  //
   414  // The context must be non-nil and will be used for request cancellation. If
   415  // the context is nil a panic will occur. In the future the SDK may create
   416  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   417  // for more information on using Contexts.
   418  func (c *ResourceGroups) GetGroupConfigurationWithContext(ctx aws.Context, input *GetGroupConfigurationInput, opts ...request.Option) (*GetGroupConfigurationOutput, error) {
   419  	req, out := c.GetGroupConfigurationRequest(input)
   420  	req.SetContext(ctx)
   421  	req.ApplyOptions(opts...)
   422  	return out, req.Send()
   423  }
   424  
   425  const opGetGroupQuery = "GetGroupQuery"
   426  
   427  // GetGroupQueryRequest generates a "aws/request.Request" representing the
   428  // client's request for the GetGroupQuery operation. The "output" return
   429  // value will be populated with the request's response once the request completes
   430  // successfully.
   431  //
   432  // Use "Send" method on the returned Request to send the API call to the service.
   433  // the "output" return value is not valid until after Send returns without error.
   434  //
   435  // See GetGroupQuery for more information on using the GetGroupQuery
   436  // API call, and error handling.
   437  //
   438  // This method is useful when you want to inject custom logic or configuration
   439  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   440  //
   441  //
   442  //    // Example sending a request using the GetGroupQueryRequest method.
   443  //    req, resp := client.GetGroupQueryRequest(params)
   444  //
   445  //    err := req.Send()
   446  //    if err == nil { // resp is now filled
   447  //        fmt.Println(resp)
   448  //    }
   449  //
   450  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupQuery
   451  func (c *ResourceGroups) GetGroupQueryRequest(input *GetGroupQueryInput) (req *request.Request, output *GetGroupQueryOutput) {
   452  	op := &request.Operation{
   453  		Name:       opGetGroupQuery,
   454  		HTTPMethod: "POST",
   455  		HTTPPath:   "/get-group-query",
   456  	}
   457  
   458  	if input == nil {
   459  		input = &GetGroupQueryInput{}
   460  	}
   461  
   462  	output = &GetGroupQueryOutput{}
   463  	req = c.newRequest(op, input, output)
   464  	return
   465  }
   466  
   467  // GetGroupQuery API operation for AWS Resource Groups.
   468  //
   469  // Retrieves the resource query associated with the specified resource group.
   470  // For more information about resource queries, see Create a tag-based group
   471  // in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag).
   472  //
   473  // Minimum permissions
   474  //
   475  // To run this command, you must have the following permissions:
   476  //
   477  //    * resource-groups:GetGroupQuery
   478  //
   479  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   480  // with awserr.Error's Code and Message methods to get detailed information about
   481  // the error.
   482  //
   483  // See the AWS API reference guide for AWS Resource Groups's
   484  // API operation GetGroupQuery for usage and error information.
   485  //
   486  // Returned Error Types:
   487  //   * BadRequestException
   488  //   The request includes one or more parameters that violate validation rules.
   489  //
   490  //   * ForbiddenException
   491  //   The caller isn't authorized to make the request. Check permissions.
   492  //
   493  //   * NotFoundException
   494  //   One or more of the specified resources don't exist.
   495  //
   496  //   * MethodNotAllowedException
   497  //   The request uses an HTTP method that isn't allowed for the specified resource.
   498  //
   499  //   * TooManyRequestsException
   500  //   You've exceeded throttling limits by making too many requests in a period
   501  //   of time.
   502  //
   503  //   * InternalServerErrorException
   504  //   An internal error occurred while processing the request. Try again later.
   505  //
   506  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetGroupQuery
   507  func (c *ResourceGroups) GetGroupQuery(input *GetGroupQueryInput) (*GetGroupQueryOutput, error) {
   508  	req, out := c.GetGroupQueryRequest(input)
   509  	return out, req.Send()
   510  }
   511  
   512  // GetGroupQueryWithContext is the same as GetGroupQuery with the addition of
   513  // the ability to pass a context and additional request options.
   514  //
   515  // See GetGroupQuery for details on how to use this API operation.
   516  //
   517  // The context must be non-nil and will be used for request cancellation. If
   518  // the context is nil a panic will occur. In the future the SDK may create
   519  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   520  // for more information on using Contexts.
   521  func (c *ResourceGroups) GetGroupQueryWithContext(ctx aws.Context, input *GetGroupQueryInput, opts ...request.Option) (*GetGroupQueryOutput, error) {
   522  	req, out := c.GetGroupQueryRequest(input)
   523  	req.SetContext(ctx)
   524  	req.ApplyOptions(opts...)
   525  	return out, req.Send()
   526  }
   527  
   528  const opGetTags = "GetTags"
   529  
   530  // GetTagsRequest generates a "aws/request.Request" representing the
   531  // client's request for the GetTags operation. The "output" return
   532  // value will be populated with the request's response once the request completes
   533  // successfully.
   534  //
   535  // Use "Send" method on the returned Request to send the API call to the service.
   536  // the "output" return value is not valid until after Send returns without error.
   537  //
   538  // See GetTags for more information on using the GetTags
   539  // API call, and error handling.
   540  //
   541  // This method is useful when you want to inject custom logic or configuration
   542  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   543  //
   544  //
   545  //    // Example sending a request using the GetTagsRequest method.
   546  //    req, resp := client.GetTagsRequest(params)
   547  //
   548  //    err := req.Send()
   549  //    if err == nil { // resp is now filled
   550  //        fmt.Println(resp)
   551  //    }
   552  //
   553  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetTags
   554  func (c *ResourceGroups) GetTagsRequest(input *GetTagsInput) (req *request.Request, output *GetTagsOutput) {
   555  	op := &request.Operation{
   556  		Name:       opGetTags,
   557  		HTTPMethod: "GET",
   558  		HTTPPath:   "/resources/{Arn}/tags",
   559  	}
   560  
   561  	if input == nil {
   562  		input = &GetTagsInput{}
   563  	}
   564  
   565  	output = &GetTagsOutput{}
   566  	req = c.newRequest(op, input, output)
   567  	return
   568  }
   569  
   570  // GetTags API operation for AWS Resource Groups.
   571  //
   572  // Returns a list of tags that are associated with a resource group, specified
   573  // by an ARN.
   574  //
   575  // Minimum permissions
   576  //
   577  // To run this command, you must have the following permissions:
   578  //
   579  //    * resource-groups:GetTags
   580  //
   581  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   582  // with awserr.Error's Code and Message methods to get detailed information about
   583  // the error.
   584  //
   585  // See the AWS API reference guide for AWS Resource Groups's
   586  // API operation GetTags for usage and error information.
   587  //
   588  // Returned Error Types:
   589  //   * BadRequestException
   590  //   The request includes one or more parameters that violate validation rules.
   591  //
   592  //   * ForbiddenException
   593  //   The caller isn't authorized to make the request. Check permissions.
   594  //
   595  //   * NotFoundException
   596  //   One or more of the specified resources don't exist.
   597  //
   598  //   * MethodNotAllowedException
   599  //   The request uses an HTTP method that isn't allowed for the specified resource.
   600  //
   601  //   * TooManyRequestsException
   602  //   You've exceeded throttling limits by making too many requests in a period
   603  //   of time.
   604  //
   605  //   * InternalServerErrorException
   606  //   An internal error occurred while processing the request. Try again later.
   607  //
   608  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GetTags
   609  func (c *ResourceGroups) GetTags(input *GetTagsInput) (*GetTagsOutput, error) {
   610  	req, out := c.GetTagsRequest(input)
   611  	return out, req.Send()
   612  }
   613  
   614  // GetTagsWithContext is the same as GetTags with the addition of
   615  // the ability to pass a context and additional request options.
   616  //
   617  // See GetTags for details on how to use this API operation.
   618  //
   619  // The context must be non-nil and will be used for request cancellation. If
   620  // the context is nil a panic will occur. In the future the SDK may create
   621  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   622  // for more information on using Contexts.
   623  func (c *ResourceGroups) GetTagsWithContext(ctx aws.Context, input *GetTagsInput, opts ...request.Option) (*GetTagsOutput, error) {
   624  	req, out := c.GetTagsRequest(input)
   625  	req.SetContext(ctx)
   626  	req.ApplyOptions(opts...)
   627  	return out, req.Send()
   628  }
   629  
   630  const opGroupResources = "GroupResources"
   631  
   632  // GroupResourcesRequest generates a "aws/request.Request" representing the
   633  // client's request for the GroupResources operation. The "output" return
   634  // value will be populated with the request's response once the request completes
   635  // successfully.
   636  //
   637  // Use "Send" method on the returned Request to send the API call to the service.
   638  // the "output" return value is not valid until after Send returns without error.
   639  //
   640  // See GroupResources for more information on using the GroupResources
   641  // API call, and error handling.
   642  //
   643  // This method is useful when you want to inject custom logic or configuration
   644  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   645  //
   646  //
   647  //    // Example sending a request using the GroupResourcesRequest method.
   648  //    req, resp := client.GroupResourcesRequest(params)
   649  //
   650  //    err := req.Send()
   651  //    if err == nil { // resp is now filled
   652  //        fmt.Println(resp)
   653  //    }
   654  //
   655  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GroupResources
   656  func (c *ResourceGroups) GroupResourcesRequest(input *GroupResourcesInput) (req *request.Request, output *GroupResourcesOutput) {
   657  	op := &request.Operation{
   658  		Name:       opGroupResources,
   659  		HTTPMethod: "POST",
   660  		HTTPPath:   "/group-resources",
   661  	}
   662  
   663  	if input == nil {
   664  		input = &GroupResourcesInput{}
   665  	}
   666  
   667  	output = &GroupResourcesOutput{}
   668  	req = c.newRequest(op, input, output)
   669  	return
   670  }
   671  
   672  // GroupResources API operation for AWS Resource Groups.
   673  //
   674  // Adds the specified resources to the specified group.
   675  //
   676  // Minimum permissions
   677  //
   678  // To run this command, you must have the following permissions:
   679  //
   680  //    * resource-groups:GroupResources
   681  //
   682  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   683  // with awserr.Error's Code and Message methods to get detailed information about
   684  // the error.
   685  //
   686  // See the AWS API reference guide for AWS Resource Groups's
   687  // API operation GroupResources for usage and error information.
   688  //
   689  // Returned Error Types:
   690  //   * BadRequestException
   691  //   The request includes one or more parameters that violate validation rules.
   692  //
   693  //   * ForbiddenException
   694  //   The caller isn't authorized to make the request. Check permissions.
   695  //
   696  //   * NotFoundException
   697  //   One or more of the specified resources don't exist.
   698  //
   699  //   * MethodNotAllowedException
   700  //   The request uses an HTTP method that isn't allowed for the specified resource.
   701  //
   702  //   * TooManyRequestsException
   703  //   You've exceeded throttling limits by making too many requests in a period
   704  //   of time.
   705  //
   706  //   * InternalServerErrorException
   707  //   An internal error occurred while processing the request. Try again later.
   708  //
   709  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/GroupResources
   710  func (c *ResourceGroups) GroupResources(input *GroupResourcesInput) (*GroupResourcesOutput, error) {
   711  	req, out := c.GroupResourcesRequest(input)
   712  	return out, req.Send()
   713  }
   714  
   715  // GroupResourcesWithContext is the same as GroupResources with the addition of
   716  // the ability to pass a context and additional request options.
   717  //
   718  // See GroupResources for details on how to use this API operation.
   719  //
   720  // The context must be non-nil and will be used for request cancellation. If
   721  // the context is nil a panic will occur. In the future the SDK may create
   722  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   723  // for more information on using Contexts.
   724  func (c *ResourceGroups) GroupResourcesWithContext(ctx aws.Context, input *GroupResourcesInput, opts ...request.Option) (*GroupResourcesOutput, error) {
   725  	req, out := c.GroupResourcesRequest(input)
   726  	req.SetContext(ctx)
   727  	req.ApplyOptions(opts...)
   728  	return out, req.Send()
   729  }
   730  
   731  const opListGroupResources = "ListGroupResources"
   732  
   733  // ListGroupResourcesRequest generates a "aws/request.Request" representing the
   734  // client's request for the ListGroupResources operation. The "output" return
   735  // value will be populated with the request's response once the request completes
   736  // successfully.
   737  //
   738  // Use "Send" method on the returned Request to send the API call to the service.
   739  // the "output" return value is not valid until after Send returns without error.
   740  //
   741  // See ListGroupResources for more information on using the ListGroupResources
   742  // API call, and error handling.
   743  //
   744  // This method is useful when you want to inject custom logic or configuration
   745  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   746  //
   747  //
   748  //    // Example sending a request using the ListGroupResourcesRequest method.
   749  //    req, resp := client.ListGroupResourcesRequest(params)
   750  //
   751  //    err := req.Send()
   752  //    if err == nil { // resp is now filled
   753  //        fmt.Println(resp)
   754  //    }
   755  //
   756  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroupResources
   757  func (c *ResourceGroups) ListGroupResourcesRequest(input *ListGroupResourcesInput) (req *request.Request, output *ListGroupResourcesOutput) {
   758  	op := &request.Operation{
   759  		Name:       opListGroupResources,
   760  		HTTPMethod: "POST",
   761  		HTTPPath:   "/list-group-resources",
   762  		Paginator: &request.Paginator{
   763  			InputTokens:     []string{"NextToken"},
   764  			OutputTokens:    []string{"NextToken"},
   765  			LimitToken:      "MaxResults",
   766  			TruncationToken: "",
   767  		},
   768  	}
   769  
   770  	if input == nil {
   771  		input = &ListGroupResourcesInput{}
   772  	}
   773  
   774  	output = &ListGroupResourcesOutput{}
   775  	req = c.newRequest(op, input, output)
   776  	return
   777  }
   778  
   779  // ListGroupResources API operation for AWS Resource Groups.
   780  //
   781  // Returns a list of ARNs of the resources that are members of a specified resource
   782  // group.
   783  //
   784  // Minimum permissions
   785  //
   786  // To run this command, you must have the following permissions:
   787  //
   788  //    * resource-groups:ListGroupResources
   789  //
   790  //    * cloudformation:DescribeStacks
   791  //
   792  //    * cloudformation:ListStackResources
   793  //
   794  //    * tag:GetResources
   795  //
   796  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   797  // with awserr.Error's Code and Message methods to get detailed information about
   798  // the error.
   799  //
   800  // See the AWS API reference guide for AWS Resource Groups's
   801  // API operation ListGroupResources for usage and error information.
   802  //
   803  // Returned Error Types:
   804  //   * UnauthorizedException
   805  //   The request was rejected because it doesn't have valid credentials for the
   806  //   target resource.
   807  //
   808  //   * BadRequestException
   809  //   The request includes one or more parameters that violate validation rules.
   810  //
   811  //   * ForbiddenException
   812  //   The caller isn't authorized to make the request. Check permissions.
   813  //
   814  //   * NotFoundException
   815  //   One or more of the specified resources don't exist.
   816  //
   817  //   * MethodNotAllowedException
   818  //   The request uses an HTTP method that isn't allowed for the specified resource.
   819  //
   820  //   * TooManyRequestsException
   821  //   You've exceeded throttling limits by making too many requests in a period
   822  //   of time.
   823  //
   824  //   * InternalServerErrorException
   825  //   An internal error occurred while processing the request. Try again later.
   826  //
   827  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroupResources
   828  func (c *ResourceGroups) ListGroupResources(input *ListGroupResourcesInput) (*ListGroupResourcesOutput, error) {
   829  	req, out := c.ListGroupResourcesRequest(input)
   830  	return out, req.Send()
   831  }
   832  
   833  // ListGroupResourcesWithContext is the same as ListGroupResources with the addition of
   834  // the ability to pass a context and additional request options.
   835  //
   836  // See ListGroupResources for details on how to use this API operation.
   837  //
   838  // The context must be non-nil and will be used for request cancellation. If
   839  // the context is nil a panic will occur. In the future the SDK may create
   840  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   841  // for more information on using Contexts.
   842  func (c *ResourceGroups) ListGroupResourcesWithContext(ctx aws.Context, input *ListGroupResourcesInput, opts ...request.Option) (*ListGroupResourcesOutput, error) {
   843  	req, out := c.ListGroupResourcesRequest(input)
   844  	req.SetContext(ctx)
   845  	req.ApplyOptions(opts...)
   846  	return out, req.Send()
   847  }
   848  
   849  // ListGroupResourcesPages iterates over the pages of a ListGroupResources operation,
   850  // calling the "fn" function with the response data for each page. To stop
   851  // iterating, return false from the fn function.
   852  //
   853  // See ListGroupResources method for more information on how to use this operation.
   854  //
   855  // Note: This operation can generate multiple requests to a service.
   856  //
   857  //    // Example iterating over at most 3 pages of a ListGroupResources operation.
   858  //    pageNum := 0
   859  //    err := client.ListGroupResourcesPages(params,
   860  //        func(page *resourcegroups.ListGroupResourcesOutput, lastPage bool) bool {
   861  //            pageNum++
   862  //            fmt.Println(page)
   863  //            return pageNum <= 3
   864  //        })
   865  //
   866  func (c *ResourceGroups) ListGroupResourcesPages(input *ListGroupResourcesInput, fn func(*ListGroupResourcesOutput, bool) bool) error {
   867  	return c.ListGroupResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
   868  }
   869  
   870  // ListGroupResourcesPagesWithContext same as ListGroupResourcesPages except
   871  // it takes a Context and allows setting request options on the pages.
   872  //
   873  // The context must be non-nil and will be used for request cancellation. If
   874  // the context is nil a panic will occur. In the future the SDK may create
   875  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   876  // for more information on using Contexts.
   877  func (c *ResourceGroups) ListGroupResourcesPagesWithContext(ctx aws.Context, input *ListGroupResourcesInput, fn func(*ListGroupResourcesOutput, bool) bool, opts ...request.Option) error {
   878  	p := request.Pagination{
   879  		NewRequest: func() (*request.Request, error) {
   880  			var inCpy *ListGroupResourcesInput
   881  			if input != nil {
   882  				tmp := *input
   883  				inCpy = &tmp
   884  			}
   885  			req, _ := c.ListGroupResourcesRequest(inCpy)
   886  			req.SetContext(ctx)
   887  			req.ApplyOptions(opts...)
   888  			return req, nil
   889  		},
   890  	}
   891  
   892  	for p.Next() {
   893  		if !fn(p.Page().(*ListGroupResourcesOutput), !p.HasNextPage()) {
   894  			break
   895  		}
   896  	}
   897  
   898  	return p.Err()
   899  }
   900  
   901  const opListGroups = "ListGroups"
   902  
   903  // ListGroupsRequest generates a "aws/request.Request" representing the
   904  // client's request for the ListGroups operation. The "output" return
   905  // value will be populated with the request's response once the request completes
   906  // successfully.
   907  //
   908  // Use "Send" method on the returned Request to send the API call to the service.
   909  // the "output" return value is not valid until after Send returns without error.
   910  //
   911  // See ListGroups for more information on using the ListGroups
   912  // API call, and error handling.
   913  //
   914  // This method is useful when you want to inject custom logic or configuration
   915  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   916  //
   917  //
   918  //    // Example sending a request using the ListGroupsRequest method.
   919  //    req, resp := client.ListGroupsRequest(params)
   920  //
   921  //    err := req.Send()
   922  //    if err == nil { // resp is now filled
   923  //        fmt.Println(resp)
   924  //    }
   925  //
   926  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroups
   927  func (c *ResourceGroups) ListGroupsRequest(input *ListGroupsInput) (req *request.Request, output *ListGroupsOutput) {
   928  	op := &request.Operation{
   929  		Name:       opListGroups,
   930  		HTTPMethod: "POST",
   931  		HTTPPath:   "/groups-list",
   932  		Paginator: &request.Paginator{
   933  			InputTokens:     []string{"NextToken"},
   934  			OutputTokens:    []string{"NextToken"},
   935  			LimitToken:      "MaxResults",
   936  			TruncationToken: "",
   937  		},
   938  	}
   939  
   940  	if input == nil {
   941  		input = &ListGroupsInput{}
   942  	}
   943  
   944  	output = &ListGroupsOutput{}
   945  	req = c.newRequest(op, input, output)
   946  	return
   947  }
   948  
   949  // ListGroups API operation for AWS Resource Groups.
   950  //
   951  // Returns a list of existing resource groups in your account.
   952  //
   953  // Minimum permissions
   954  //
   955  // To run this command, you must have the following permissions:
   956  //
   957  //    * resource-groups:ListGroups
   958  //
   959  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   960  // with awserr.Error's Code and Message methods to get detailed information about
   961  // the error.
   962  //
   963  // See the AWS API reference guide for AWS Resource Groups's
   964  // API operation ListGroups for usage and error information.
   965  //
   966  // Returned Error Types:
   967  //   * BadRequestException
   968  //   The request includes one or more parameters that violate validation rules.
   969  //
   970  //   * ForbiddenException
   971  //   The caller isn't authorized to make the request. Check permissions.
   972  //
   973  //   * MethodNotAllowedException
   974  //   The request uses an HTTP method that isn't allowed for the specified resource.
   975  //
   976  //   * TooManyRequestsException
   977  //   You've exceeded throttling limits by making too many requests in a period
   978  //   of time.
   979  //
   980  //   * InternalServerErrorException
   981  //   An internal error occurred while processing the request. Try again later.
   982  //
   983  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/ListGroups
   984  func (c *ResourceGroups) ListGroups(input *ListGroupsInput) (*ListGroupsOutput, error) {
   985  	req, out := c.ListGroupsRequest(input)
   986  	return out, req.Send()
   987  }
   988  
   989  // ListGroupsWithContext is the same as ListGroups with the addition of
   990  // the ability to pass a context and additional request options.
   991  //
   992  // See ListGroups for details on how to use this API operation.
   993  //
   994  // The context must be non-nil and will be used for request cancellation. If
   995  // the context is nil a panic will occur. In the future the SDK may create
   996  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   997  // for more information on using Contexts.
   998  func (c *ResourceGroups) ListGroupsWithContext(ctx aws.Context, input *ListGroupsInput, opts ...request.Option) (*ListGroupsOutput, error) {
   999  	req, out := c.ListGroupsRequest(input)
  1000  	req.SetContext(ctx)
  1001  	req.ApplyOptions(opts...)
  1002  	return out, req.Send()
  1003  }
  1004  
  1005  // ListGroupsPages iterates over the pages of a ListGroups operation,
  1006  // calling the "fn" function with the response data for each page. To stop
  1007  // iterating, return false from the fn function.
  1008  //
  1009  // See ListGroups method for more information on how to use this operation.
  1010  //
  1011  // Note: This operation can generate multiple requests to a service.
  1012  //
  1013  //    // Example iterating over at most 3 pages of a ListGroups operation.
  1014  //    pageNum := 0
  1015  //    err := client.ListGroupsPages(params,
  1016  //        func(page *resourcegroups.ListGroupsOutput, lastPage bool) bool {
  1017  //            pageNum++
  1018  //            fmt.Println(page)
  1019  //            return pageNum <= 3
  1020  //        })
  1021  //
  1022  func (c *ResourceGroups) ListGroupsPages(input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool) error {
  1023  	return c.ListGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  1024  }
  1025  
  1026  // ListGroupsPagesWithContext same as ListGroupsPages except
  1027  // it takes a Context and allows setting request options on the pages.
  1028  //
  1029  // The context must be non-nil and will be used for request cancellation. If
  1030  // the context is nil a panic will occur. In the future the SDK may create
  1031  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1032  // for more information on using Contexts.
  1033  func (c *ResourceGroups) ListGroupsPagesWithContext(ctx aws.Context, input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool, opts ...request.Option) error {
  1034  	p := request.Pagination{
  1035  		NewRequest: func() (*request.Request, error) {
  1036  			var inCpy *ListGroupsInput
  1037  			if input != nil {
  1038  				tmp := *input
  1039  				inCpy = &tmp
  1040  			}
  1041  			req, _ := c.ListGroupsRequest(inCpy)
  1042  			req.SetContext(ctx)
  1043  			req.ApplyOptions(opts...)
  1044  			return req, nil
  1045  		},
  1046  	}
  1047  
  1048  	for p.Next() {
  1049  		if !fn(p.Page().(*ListGroupsOutput), !p.HasNextPage()) {
  1050  			break
  1051  		}
  1052  	}
  1053  
  1054  	return p.Err()
  1055  }
  1056  
  1057  const opPutGroupConfiguration = "PutGroupConfiguration"
  1058  
  1059  // PutGroupConfigurationRequest generates a "aws/request.Request" representing the
  1060  // client's request for the PutGroupConfiguration operation. The "output" return
  1061  // value will be populated with the request's response once the request completes
  1062  // successfully.
  1063  //
  1064  // Use "Send" method on the returned Request to send the API call to the service.
  1065  // the "output" return value is not valid until after Send returns without error.
  1066  //
  1067  // See PutGroupConfiguration for more information on using the PutGroupConfiguration
  1068  // API call, and error handling.
  1069  //
  1070  // This method is useful when you want to inject custom logic or configuration
  1071  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1072  //
  1073  //
  1074  //    // Example sending a request using the PutGroupConfigurationRequest method.
  1075  //    req, resp := client.PutGroupConfigurationRequest(params)
  1076  //
  1077  //    err := req.Send()
  1078  //    if err == nil { // resp is now filled
  1079  //        fmt.Println(resp)
  1080  //    }
  1081  //
  1082  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration
  1083  func (c *ResourceGroups) PutGroupConfigurationRequest(input *PutGroupConfigurationInput) (req *request.Request, output *PutGroupConfigurationOutput) {
  1084  	op := &request.Operation{
  1085  		Name:       opPutGroupConfiguration,
  1086  		HTTPMethod: "POST",
  1087  		HTTPPath:   "/put-group-configuration",
  1088  	}
  1089  
  1090  	if input == nil {
  1091  		input = &PutGroupConfigurationInput{}
  1092  	}
  1093  
  1094  	output = &PutGroupConfigurationOutput{}
  1095  	req = c.newRequest(op, input, output)
  1096  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1097  	return
  1098  }
  1099  
  1100  // PutGroupConfiguration API operation for AWS Resource Groups.
  1101  //
  1102  // Attaches a service configuration to the specified group. This occurs asynchronously,
  1103  // and can take time to complete. You can use GetGroupConfiguration to check
  1104  // the status of the update.
  1105  //
  1106  // Minimum permissions
  1107  //
  1108  // To run this command, you must have the following permissions:
  1109  //
  1110  //    * resource-groups:PutGroupConfiguration
  1111  //
  1112  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1113  // with awserr.Error's Code and Message methods to get detailed information about
  1114  // the error.
  1115  //
  1116  // See the AWS API reference guide for AWS Resource Groups's
  1117  // API operation PutGroupConfiguration for usage and error information.
  1118  //
  1119  // Returned Error Types:
  1120  //   * BadRequestException
  1121  //   The request includes one or more parameters that violate validation rules.
  1122  //
  1123  //   * ForbiddenException
  1124  //   The caller isn't authorized to make the request. Check permissions.
  1125  //
  1126  //   * NotFoundException
  1127  //   One or more of the specified resources don't exist.
  1128  //
  1129  //   * MethodNotAllowedException
  1130  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1131  //
  1132  //   * TooManyRequestsException
  1133  //   You've exceeded throttling limits by making too many requests in a period
  1134  //   of time.
  1135  //
  1136  //   * InternalServerErrorException
  1137  //   An internal error occurred while processing the request. Try again later.
  1138  //
  1139  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/PutGroupConfiguration
  1140  func (c *ResourceGroups) PutGroupConfiguration(input *PutGroupConfigurationInput) (*PutGroupConfigurationOutput, error) {
  1141  	req, out := c.PutGroupConfigurationRequest(input)
  1142  	return out, req.Send()
  1143  }
  1144  
  1145  // PutGroupConfigurationWithContext is the same as PutGroupConfiguration with the addition of
  1146  // the ability to pass a context and additional request options.
  1147  //
  1148  // See PutGroupConfiguration for details on how to use this API operation.
  1149  //
  1150  // The context must be non-nil and will be used for request cancellation. If
  1151  // the context is nil a panic will occur. In the future the SDK may create
  1152  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1153  // for more information on using Contexts.
  1154  func (c *ResourceGroups) PutGroupConfigurationWithContext(ctx aws.Context, input *PutGroupConfigurationInput, opts ...request.Option) (*PutGroupConfigurationOutput, error) {
  1155  	req, out := c.PutGroupConfigurationRequest(input)
  1156  	req.SetContext(ctx)
  1157  	req.ApplyOptions(opts...)
  1158  	return out, req.Send()
  1159  }
  1160  
  1161  const opSearchResources = "SearchResources"
  1162  
  1163  // SearchResourcesRequest generates a "aws/request.Request" representing the
  1164  // client's request for the SearchResources operation. The "output" return
  1165  // value will be populated with the request's response once the request completes
  1166  // successfully.
  1167  //
  1168  // Use "Send" method on the returned Request to send the API call to the service.
  1169  // the "output" return value is not valid until after Send returns without error.
  1170  //
  1171  // See SearchResources for more information on using the SearchResources
  1172  // API call, and error handling.
  1173  //
  1174  // This method is useful when you want to inject custom logic or configuration
  1175  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1176  //
  1177  //
  1178  //    // Example sending a request using the SearchResourcesRequest method.
  1179  //    req, resp := client.SearchResourcesRequest(params)
  1180  //
  1181  //    err := req.Send()
  1182  //    if err == nil { // resp is now filled
  1183  //        fmt.Println(resp)
  1184  //    }
  1185  //
  1186  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/SearchResources
  1187  func (c *ResourceGroups) SearchResourcesRequest(input *SearchResourcesInput) (req *request.Request, output *SearchResourcesOutput) {
  1188  	op := &request.Operation{
  1189  		Name:       opSearchResources,
  1190  		HTTPMethod: "POST",
  1191  		HTTPPath:   "/resources/search",
  1192  		Paginator: &request.Paginator{
  1193  			InputTokens:     []string{"NextToken"},
  1194  			OutputTokens:    []string{"NextToken"},
  1195  			LimitToken:      "MaxResults",
  1196  			TruncationToken: "",
  1197  		},
  1198  	}
  1199  
  1200  	if input == nil {
  1201  		input = &SearchResourcesInput{}
  1202  	}
  1203  
  1204  	output = &SearchResourcesOutput{}
  1205  	req = c.newRequest(op, input, output)
  1206  	return
  1207  }
  1208  
  1209  // SearchResources API operation for AWS Resource Groups.
  1210  //
  1211  // Returns a list of AWS resource identifiers that matches the specified query.
  1212  // The query uses the same format as a resource query in a CreateGroup or UpdateGroupQuery
  1213  // operation.
  1214  //
  1215  // Minimum permissions
  1216  //
  1217  // To run this command, you must have the following permissions:
  1218  //
  1219  //    * resource-groups:SearchResources
  1220  //
  1221  //    * cloudformation:DescribeStacks
  1222  //
  1223  //    * cloudformation:ListStackResources
  1224  //
  1225  //    * tag:GetResources
  1226  //
  1227  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1228  // with awserr.Error's Code and Message methods to get detailed information about
  1229  // the error.
  1230  //
  1231  // See the AWS API reference guide for AWS Resource Groups's
  1232  // API operation SearchResources for usage and error information.
  1233  //
  1234  // Returned Error Types:
  1235  //   * UnauthorizedException
  1236  //   The request was rejected because it doesn't have valid credentials for the
  1237  //   target resource.
  1238  //
  1239  //   * BadRequestException
  1240  //   The request includes one or more parameters that violate validation rules.
  1241  //
  1242  //   * ForbiddenException
  1243  //   The caller isn't authorized to make the request. Check permissions.
  1244  //
  1245  //   * MethodNotAllowedException
  1246  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1247  //
  1248  //   * TooManyRequestsException
  1249  //   You've exceeded throttling limits by making too many requests in a period
  1250  //   of time.
  1251  //
  1252  //   * InternalServerErrorException
  1253  //   An internal error occurred while processing the request. Try again later.
  1254  //
  1255  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/SearchResources
  1256  func (c *ResourceGroups) SearchResources(input *SearchResourcesInput) (*SearchResourcesOutput, error) {
  1257  	req, out := c.SearchResourcesRequest(input)
  1258  	return out, req.Send()
  1259  }
  1260  
  1261  // SearchResourcesWithContext is the same as SearchResources with the addition of
  1262  // the ability to pass a context and additional request options.
  1263  //
  1264  // See SearchResources for details on how to use this API operation.
  1265  //
  1266  // The context must be non-nil and will be used for request cancellation. If
  1267  // the context is nil a panic will occur. In the future the SDK may create
  1268  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1269  // for more information on using Contexts.
  1270  func (c *ResourceGroups) SearchResourcesWithContext(ctx aws.Context, input *SearchResourcesInput, opts ...request.Option) (*SearchResourcesOutput, error) {
  1271  	req, out := c.SearchResourcesRequest(input)
  1272  	req.SetContext(ctx)
  1273  	req.ApplyOptions(opts...)
  1274  	return out, req.Send()
  1275  }
  1276  
  1277  // SearchResourcesPages iterates over the pages of a SearchResources operation,
  1278  // calling the "fn" function with the response data for each page. To stop
  1279  // iterating, return false from the fn function.
  1280  //
  1281  // See SearchResources method for more information on how to use this operation.
  1282  //
  1283  // Note: This operation can generate multiple requests to a service.
  1284  //
  1285  //    // Example iterating over at most 3 pages of a SearchResources operation.
  1286  //    pageNum := 0
  1287  //    err := client.SearchResourcesPages(params,
  1288  //        func(page *resourcegroups.SearchResourcesOutput, lastPage bool) bool {
  1289  //            pageNum++
  1290  //            fmt.Println(page)
  1291  //            return pageNum <= 3
  1292  //        })
  1293  //
  1294  func (c *ResourceGroups) SearchResourcesPages(input *SearchResourcesInput, fn func(*SearchResourcesOutput, bool) bool) error {
  1295  	return c.SearchResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
  1296  }
  1297  
  1298  // SearchResourcesPagesWithContext same as SearchResourcesPages except
  1299  // it takes a Context and allows setting request options on the pages.
  1300  //
  1301  // The context must be non-nil and will be used for request cancellation. If
  1302  // the context is nil a panic will occur. In the future the SDK may create
  1303  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1304  // for more information on using Contexts.
  1305  func (c *ResourceGroups) SearchResourcesPagesWithContext(ctx aws.Context, input *SearchResourcesInput, fn func(*SearchResourcesOutput, bool) bool, opts ...request.Option) error {
  1306  	p := request.Pagination{
  1307  		NewRequest: func() (*request.Request, error) {
  1308  			var inCpy *SearchResourcesInput
  1309  			if input != nil {
  1310  				tmp := *input
  1311  				inCpy = &tmp
  1312  			}
  1313  			req, _ := c.SearchResourcesRequest(inCpy)
  1314  			req.SetContext(ctx)
  1315  			req.ApplyOptions(opts...)
  1316  			return req, nil
  1317  		},
  1318  	}
  1319  
  1320  	for p.Next() {
  1321  		if !fn(p.Page().(*SearchResourcesOutput), !p.HasNextPage()) {
  1322  			break
  1323  		}
  1324  	}
  1325  
  1326  	return p.Err()
  1327  }
  1328  
  1329  const opTag = "Tag"
  1330  
  1331  // TagRequest generates a "aws/request.Request" representing the
  1332  // client's request for the Tag operation. The "output" return
  1333  // value will be populated with the request's response once the request completes
  1334  // successfully.
  1335  //
  1336  // Use "Send" method on the returned Request to send the API call to the service.
  1337  // the "output" return value is not valid until after Send returns without error.
  1338  //
  1339  // See Tag for more information on using the Tag
  1340  // API call, and error handling.
  1341  //
  1342  // This method is useful when you want to inject custom logic or configuration
  1343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1344  //
  1345  //
  1346  //    // Example sending a request using the TagRequest method.
  1347  //    req, resp := client.TagRequest(params)
  1348  //
  1349  //    err := req.Send()
  1350  //    if err == nil { // resp is now filled
  1351  //        fmt.Println(resp)
  1352  //    }
  1353  //
  1354  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Tag
  1355  func (c *ResourceGroups) TagRequest(input *TagInput) (req *request.Request, output *TagOutput) {
  1356  	op := &request.Operation{
  1357  		Name:       opTag,
  1358  		HTTPMethod: "PUT",
  1359  		HTTPPath:   "/resources/{Arn}/tags",
  1360  	}
  1361  
  1362  	if input == nil {
  1363  		input = &TagInput{}
  1364  	}
  1365  
  1366  	output = &TagOutput{}
  1367  	req = c.newRequest(op, input, output)
  1368  	return
  1369  }
  1370  
  1371  // Tag API operation for AWS Resource Groups.
  1372  //
  1373  // Adds tags to a resource group with the specified ARN. Existing tags on a
  1374  // resource group are not changed if they are not specified in the request parameters.
  1375  //
  1376  // Do not store personally identifiable information (PII) or other confidential
  1377  // or sensitive information in tags. We use tags to provide you with billing
  1378  // and administration services. Tags are not intended to be used for private
  1379  // or sensitive data.
  1380  //
  1381  // Minimum permissions
  1382  //
  1383  // To run this command, you must have the following permissions:
  1384  //
  1385  //    * resource-groups:Tag
  1386  //
  1387  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1388  // with awserr.Error's Code and Message methods to get detailed information about
  1389  // the error.
  1390  //
  1391  // See the AWS API reference guide for AWS Resource Groups's
  1392  // API operation Tag for usage and error information.
  1393  //
  1394  // Returned Error Types:
  1395  //   * BadRequestException
  1396  //   The request includes one or more parameters that violate validation rules.
  1397  //
  1398  //   * ForbiddenException
  1399  //   The caller isn't authorized to make the request. Check permissions.
  1400  //
  1401  //   * NotFoundException
  1402  //   One or more of the specified resources don't exist.
  1403  //
  1404  //   * MethodNotAllowedException
  1405  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1406  //
  1407  //   * TooManyRequestsException
  1408  //   You've exceeded throttling limits by making too many requests in a period
  1409  //   of time.
  1410  //
  1411  //   * InternalServerErrorException
  1412  //   An internal error occurred while processing the request. Try again later.
  1413  //
  1414  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Tag
  1415  func (c *ResourceGroups) Tag(input *TagInput) (*TagOutput, error) {
  1416  	req, out := c.TagRequest(input)
  1417  	return out, req.Send()
  1418  }
  1419  
  1420  // TagWithContext is the same as Tag with the addition of
  1421  // the ability to pass a context and additional request options.
  1422  //
  1423  // See Tag for details on how to use this API operation.
  1424  //
  1425  // The context must be non-nil and will be used for request cancellation. If
  1426  // the context is nil a panic will occur. In the future the SDK may create
  1427  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1428  // for more information on using Contexts.
  1429  func (c *ResourceGroups) TagWithContext(ctx aws.Context, input *TagInput, opts ...request.Option) (*TagOutput, error) {
  1430  	req, out := c.TagRequest(input)
  1431  	req.SetContext(ctx)
  1432  	req.ApplyOptions(opts...)
  1433  	return out, req.Send()
  1434  }
  1435  
  1436  const opUngroupResources = "UngroupResources"
  1437  
  1438  // UngroupResourcesRequest generates a "aws/request.Request" representing the
  1439  // client's request for the UngroupResources operation. The "output" return
  1440  // value will be populated with the request's response once the request completes
  1441  // successfully.
  1442  //
  1443  // Use "Send" method on the returned Request to send the API call to the service.
  1444  // the "output" return value is not valid until after Send returns without error.
  1445  //
  1446  // See UngroupResources for more information on using the UngroupResources
  1447  // API call, and error handling.
  1448  //
  1449  // This method is useful when you want to inject custom logic or configuration
  1450  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1451  //
  1452  //
  1453  //    // Example sending a request using the UngroupResourcesRequest method.
  1454  //    req, resp := client.UngroupResourcesRequest(params)
  1455  //
  1456  //    err := req.Send()
  1457  //    if err == nil { // resp is now filled
  1458  //        fmt.Println(resp)
  1459  //    }
  1460  //
  1461  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UngroupResources
  1462  func (c *ResourceGroups) UngroupResourcesRequest(input *UngroupResourcesInput) (req *request.Request, output *UngroupResourcesOutput) {
  1463  	op := &request.Operation{
  1464  		Name:       opUngroupResources,
  1465  		HTTPMethod: "POST",
  1466  		HTTPPath:   "/ungroup-resources",
  1467  	}
  1468  
  1469  	if input == nil {
  1470  		input = &UngroupResourcesInput{}
  1471  	}
  1472  
  1473  	output = &UngroupResourcesOutput{}
  1474  	req = c.newRequest(op, input, output)
  1475  	return
  1476  }
  1477  
  1478  // UngroupResources API operation for AWS Resource Groups.
  1479  //
  1480  // Removes the specified resources from the specified group.
  1481  //
  1482  // Minimum permissions
  1483  //
  1484  // To run this command, you must have the following permissions:
  1485  //
  1486  //    * resource-groups:UngroupResources
  1487  //
  1488  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1489  // with awserr.Error's Code and Message methods to get detailed information about
  1490  // the error.
  1491  //
  1492  // See the AWS API reference guide for AWS Resource Groups's
  1493  // API operation UngroupResources for usage and error information.
  1494  //
  1495  // Returned Error Types:
  1496  //   * BadRequestException
  1497  //   The request includes one or more parameters that violate validation rules.
  1498  //
  1499  //   * ForbiddenException
  1500  //   The caller isn't authorized to make the request. Check permissions.
  1501  //
  1502  //   * NotFoundException
  1503  //   One or more of the specified resources don't exist.
  1504  //
  1505  //   * MethodNotAllowedException
  1506  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1507  //
  1508  //   * TooManyRequestsException
  1509  //   You've exceeded throttling limits by making too many requests in a period
  1510  //   of time.
  1511  //
  1512  //   * InternalServerErrorException
  1513  //   An internal error occurred while processing the request. Try again later.
  1514  //
  1515  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UngroupResources
  1516  func (c *ResourceGroups) UngroupResources(input *UngroupResourcesInput) (*UngroupResourcesOutput, error) {
  1517  	req, out := c.UngroupResourcesRequest(input)
  1518  	return out, req.Send()
  1519  }
  1520  
  1521  // UngroupResourcesWithContext is the same as UngroupResources with the addition of
  1522  // the ability to pass a context and additional request options.
  1523  //
  1524  // See UngroupResources for details on how to use this API operation.
  1525  //
  1526  // The context must be non-nil and will be used for request cancellation. If
  1527  // the context is nil a panic will occur. In the future the SDK may create
  1528  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1529  // for more information on using Contexts.
  1530  func (c *ResourceGroups) UngroupResourcesWithContext(ctx aws.Context, input *UngroupResourcesInput, opts ...request.Option) (*UngroupResourcesOutput, error) {
  1531  	req, out := c.UngroupResourcesRequest(input)
  1532  	req.SetContext(ctx)
  1533  	req.ApplyOptions(opts...)
  1534  	return out, req.Send()
  1535  }
  1536  
  1537  const opUntag = "Untag"
  1538  
  1539  // UntagRequest generates a "aws/request.Request" representing the
  1540  // client's request for the Untag operation. The "output" return
  1541  // value will be populated with the request's response once the request completes
  1542  // successfully.
  1543  //
  1544  // Use "Send" method on the returned Request to send the API call to the service.
  1545  // the "output" return value is not valid until after Send returns without error.
  1546  //
  1547  // See Untag for more information on using the Untag
  1548  // API call, and error handling.
  1549  //
  1550  // This method is useful when you want to inject custom logic or configuration
  1551  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1552  //
  1553  //
  1554  //    // Example sending a request using the UntagRequest method.
  1555  //    req, resp := client.UntagRequest(params)
  1556  //
  1557  //    err := req.Send()
  1558  //    if err == nil { // resp is now filled
  1559  //        fmt.Println(resp)
  1560  //    }
  1561  //
  1562  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Untag
  1563  func (c *ResourceGroups) UntagRequest(input *UntagInput) (req *request.Request, output *UntagOutput) {
  1564  	op := &request.Operation{
  1565  		Name:       opUntag,
  1566  		HTTPMethod: "PATCH",
  1567  		HTTPPath:   "/resources/{Arn}/tags",
  1568  	}
  1569  
  1570  	if input == nil {
  1571  		input = &UntagInput{}
  1572  	}
  1573  
  1574  	output = &UntagOutput{}
  1575  	req = c.newRequest(op, input, output)
  1576  	return
  1577  }
  1578  
  1579  // Untag API operation for AWS Resource Groups.
  1580  //
  1581  // Deletes tags from a specified resource group.
  1582  //
  1583  // Minimum permissions
  1584  //
  1585  // To run this command, you must have the following permissions:
  1586  //
  1587  //    * resource-groups:Untag
  1588  //
  1589  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1590  // with awserr.Error's Code and Message methods to get detailed information about
  1591  // the error.
  1592  //
  1593  // See the AWS API reference guide for AWS Resource Groups's
  1594  // API operation Untag for usage and error information.
  1595  //
  1596  // Returned Error Types:
  1597  //   * BadRequestException
  1598  //   The request includes one or more parameters that violate validation rules.
  1599  //
  1600  //   * ForbiddenException
  1601  //   The caller isn't authorized to make the request. Check permissions.
  1602  //
  1603  //   * NotFoundException
  1604  //   One or more of the specified resources don't exist.
  1605  //
  1606  //   * MethodNotAllowedException
  1607  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1608  //
  1609  //   * TooManyRequestsException
  1610  //   You've exceeded throttling limits by making too many requests in a period
  1611  //   of time.
  1612  //
  1613  //   * InternalServerErrorException
  1614  //   An internal error occurred while processing the request. Try again later.
  1615  //
  1616  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/Untag
  1617  func (c *ResourceGroups) Untag(input *UntagInput) (*UntagOutput, error) {
  1618  	req, out := c.UntagRequest(input)
  1619  	return out, req.Send()
  1620  }
  1621  
  1622  // UntagWithContext is the same as Untag with the addition of
  1623  // the ability to pass a context and additional request options.
  1624  //
  1625  // See Untag for details on how to use this API operation.
  1626  //
  1627  // The context must be non-nil and will be used for request cancellation. If
  1628  // the context is nil a panic will occur. In the future the SDK may create
  1629  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1630  // for more information on using Contexts.
  1631  func (c *ResourceGroups) UntagWithContext(ctx aws.Context, input *UntagInput, opts ...request.Option) (*UntagOutput, error) {
  1632  	req, out := c.UntagRequest(input)
  1633  	req.SetContext(ctx)
  1634  	req.ApplyOptions(opts...)
  1635  	return out, req.Send()
  1636  }
  1637  
  1638  const opUpdateGroup = "UpdateGroup"
  1639  
  1640  // UpdateGroupRequest generates a "aws/request.Request" representing the
  1641  // client's request for the UpdateGroup operation. The "output" return
  1642  // value will be populated with the request's response once the request completes
  1643  // successfully.
  1644  //
  1645  // Use "Send" method on the returned Request to send the API call to the service.
  1646  // the "output" return value is not valid until after Send returns without error.
  1647  //
  1648  // See UpdateGroup for more information on using the UpdateGroup
  1649  // API call, and error handling.
  1650  //
  1651  // This method is useful when you want to inject custom logic or configuration
  1652  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1653  //
  1654  //
  1655  //    // Example sending a request using the UpdateGroupRequest method.
  1656  //    req, resp := client.UpdateGroupRequest(params)
  1657  //
  1658  //    err := req.Send()
  1659  //    if err == nil { // resp is now filled
  1660  //        fmt.Println(resp)
  1661  //    }
  1662  //
  1663  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroup
  1664  func (c *ResourceGroups) UpdateGroupRequest(input *UpdateGroupInput) (req *request.Request, output *UpdateGroupOutput) {
  1665  	op := &request.Operation{
  1666  		Name:       opUpdateGroup,
  1667  		HTTPMethod: "POST",
  1668  		HTTPPath:   "/update-group",
  1669  	}
  1670  
  1671  	if input == nil {
  1672  		input = &UpdateGroupInput{}
  1673  	}
  1674  
  1675  	output = &UpdateGroupOutput{}
  1676  	req = c.newRequest(op, input, output)
  1677  	return
  1678  }
  1679  
  1680  // UpdateGroup API operation for AWS Resource Groups.
  1681  //
  1682  // Updates the description for an existing group. You cannot update the name
  1683  // of a resource group.
  1684  //
  1685  // Minimum permissions
  1686  //
  1687  // To run this command, you must have the following permissions:
  1688  //
  1689  //    * resource-groups:UpdateGroup
  1690  //
  1691  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1692  // with awserr.Error's Code and Message methods to get detailed information about
  1693  // the error.
  1694  //
  1695  // See the AWS API reference guide for AWS Resource Groups's
  1696  // API operation UpdateGroup for usage and error information.
  1697  //
  1698  // Returned Error Types:
  1699  //   * BadRequestException
  1700  //   The request includes one or more parameters that violate validation rules.
  1701  //
  1702  //   * ForbiddenException
  1703  //   The caller isn't authorized to make the request. Check permissions.
  1704  //
  1705  //   * NotFoundException
  1706  //   One or more of the specified resources don't exist.
  1707  //
  1708  //   * MethodNotAllowedException
  1709  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1710  //
  1711  //   * TooManyRequestsException
  1712  //   You've exceeded throttling limits by making too many requests in a period
  1713  //   of time.
  1714  //
  1715  //   * InternalServerErrorException
  1716  //   An internal error occurred while processing the request. Try again later.
  1717  //
  1718  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroup
  1719  func (c *ResourceGroups) UpdateGroup(input *UpdateGroupInput) (*UpdateGroupOutput, error) {
  1720  	req, out := c.UpdateGroupRequest(input)
  1721  	return out, req.Send()
  1722  }
  1723  
  1724  // UpdateGroupWithContext is the same as UpdateGroup with the addition of
  1725  // the ability to pass a context and additional request options.
  1726  //
  1727  // See UpdateGroup for details on how to use this API operation.
  1728  //
  1729  // The context must be non-nil and will be used for request cancellation. If
  1730  // the context is nil a panic will occur. In the future the SDK may create
  1731  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1732  // for more information on using Contexts.
  1733  func (c *ResourceGroups) UpdateGroupWithContext(ctx aws.Context, input *UpdateGroupInput, opts ...request.Option) (*UpdateGroupOutput, error) {
  1734  	req, out := c.UpdateGroupRequest(input)
  1735  	req.SetContext(ctx)
  1736  	req.ApplyOptions(opts...)
  1737  	return out, req.Send()
  1738  }
  1739  
  1740  const opUpdateGroupQuery = "UpdateGroupQuery"
  1741  
  1742  // UpdateGroupQueryRequest generates a "aws/request.Request" representing the
  1743  // client's request for the UpdateGroupQuery operation. The "output" return
  1744  // value will be populated with the request's response once the request completes
  1745  // successfully.
  1746  //
  1747  // Use "Send" method on the returned Request to send the API call to the service.
  1748  // the "output" return value is not valid until after Send returns without error.
  1749  //
  1750  // See UpdateGroupQuery for more information on using the UpdateGroupQuery
  1751  // API call, and error handling.
  1752  //
  1753  // This method is useful when you want to inject custom logic or configuration
  1754  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1755  //
  1756  //
  1757  //    // Example sending a request using the UpdateGroupQueryRequest method.
  1758  //    req, resp := client.UpdateGroupQueryRequest(params)
  1759  //
  1760  //    err := req.Send()
  1761  //    if err == nil { // resp is now filled
  1762  //        fmt.Println(resp)
  1763  //    }
  1764  //
  1765  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroupQuery
  1766  func (c *ResourceGroups) UpdateGroupQueryRequest(input *UpdateGroupQueryInput) (req *request.Request, output *UpdateGroupQueryOutput) {
  1767  	op := &request.Operation{
  1768  		Name:       opUpdateGroupQuery,
  1769  		HTTPMethod: "POST",
  1770  		HTTPPath:   "/update-group-query",
  1771  	}
  1772  
  1773  	if input == nil {
  1774  		input = &UpdateGroupQueryInput{}
  1775  	}
  1776  
  1777  	output = &UpdateGroupQueryOutput{}
  1778  	req = c.newRequest(op, input, output)
  1779  	return
  1780  }
  1781  
  1782  // UpdateGroupQuery API operation for AWS Resource Groups.
  1783  //
  1784  // Updates the resource query of a group. For more information about resource
  1785  // queries, see Create a tag-based group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag).
  1786  //
  1787  // Minimum permissions
  1788  //
  1789  // To run this command, you must have the following permissions:
  1790  //
  1791  //    * resource-groups:UpdateGroupQuery
  1792  //
  1793  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1794  // with awserr.Error's Code and Message methods to get detailed information about
  1795  // the error.
  1796  //
  1797  // See the AWS API reference guide for AWS Resource Groups's
  1798  // API operation UpdateGroupQuery for usage and error information.
  1799  //
  1800  // Returned Error Types:
  1801  //   * BadRequestException
  1802  //   The request includes one or more parameters that violate validation rules.
  1803  //
  1804  //   * ForbiddenException
  1805  //   The caller isn't authorized to make the request. Check permissions.
  1806  //
  1807  //   * NotFoundException
  1808  //   One or more of the specified resources don't exist.
  1809  //
  1810  //   * MethodNotAllowedException
  1811  //   The request uses an HTTP method that isn't allowed for the specified resource.
  1812  //
  1813  //   * TooManyRequestsException
  1814  //   You've exceeded throttling limits by making too many requests in a period
  1815  //   of time.
  1816  //
  1817  //   * InternalServerErrorException
  1818  //   An internal error occurred while processing the request. Try again later.
  1819  //
  1820  // See also, https://docs.aws.amazon.com/goto/WebAPI/resource-groups-2017-11-27/UpdateGroupQuery
  1821  func (c *ResourceGroups) UpdateGroupQuery(input *UpdateGroupQueryInput) (*UpdateGroupQueryOutput, error) {
  1822  	req, out := c.UpdateGroupQueryRequest(input)
  1823  	return out, req.Send()
  1824  }
  1825  
  1826  // UpdateGroupQueryWithContext is the same as UpdateGroupQuery with the addition of
  1827  // the ability to pass a context and additional request options.
  1828  //
  1829  // See UpdateGroupQuery for details on how to use this API operation.
  1830  //
  1831  // The context must be non-nil and will be used for request cancellation. If
  1832  // the context is nil a panic will occur. In the future the SDK may create
  1833  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1834  // for more information on using Contexts.
  1835  func (c *ResourceGroups) UpdateGroupQueryWithContext(ctx aws.Context, input *UpdateGroupQueryInput, opts ...request.Option) (*UpdateGroupQueryOutput, error) {
  1836  	req, out := c.UpdateGroupQueryRequest(input)
  1837  	req.SetContext(ctx)
  1838  	req.ApplyOptions(opts...)
  1839  	return out, req.Send()
  1840  }
  1841  
  1842  // The request includes one or more parameters that violate validation rules.
  1843  type BadRequestException struct {
  1844  	_            struct{}                  `type:"structure"`
  1845  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  1846  
  1847  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  1848  }
  1849  
  1850  // String returns the string representation.
  1851  //
  1852  // API parameter values that are decorated as "sensitive" in the API will not
  1853  // be included in the string output. The member name will be present, but the
  1854  // value will be replaced with "sensitive".
  1855  func (s BadRequestException) String() string {
  1856  	return awsutil.Prettify(s)
  1857  }
  1858  
  1859  // GoString returns the string representation.
  1860  //
  1861  // API parameter values that are decorated as "sensitive" in the API will not
  1862  // be included in the string output. The member name will be present, but the
  1863  // value will be replaced with "sensitive".
  1864  func (s BadRequestException) GoString() string {
  1865  	return s.String()
  1866  }
  1867  
  1868  func newErrorBadRequestException(v protocol.ResponseMetadata) error {
  1869  	return &BadRequestException{
  1870  		RespMetadata: v,
  1871  	}
  1872  }
  1873  
  1874  // Code returns the exception type name.
  1875  func (s *BadRequestException) Code() string {
  1876  	return "BadRequestException"
  1877  }
  1878  
  1879  // Message returns the exception's message.
  1880  func (s *BadRequestException) Message() string {
  1881  	if s.Message_ != nil {
  1882  		return *s.Message_
  1883  	}
  1884  	return ""
  1885  }
  1886  
  1887  // OrigErr always returns nil, satisfies awserr.Error interface.
  1888  func (s *BadRequestException) OrigErr() error {
  1889  	return nil
  1890  }
  1891  
  1892  func (s *BadRequestException) Error() string {
  1893  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  1894  }
  1895  
  1896  // Status code returns the HTTP status code for the request's response error.
  1897  func (s *BadRequestException) StatusCode() int {
  1898  	return s.RespMetadata.StatusCode
  1899  }
  1900  
  1901  // RequestID returns the service's response RequestID for request.
  1902  func (s *BadRequestException) RequestID() string {
  1903  	return s.RespMetadata.RequestID
  1904  }
  1905  
  1906  type CreateGroupInput struct {
  1907  	_ struct{} `type:"structure"`
  1908  
  1909  	// A configuration associates the resource group with an AWS service and specifies
  1910  	// how the service can interact with the resources in the group. A configuration
  1911  	// is an array of GroupConfigurationItem elements. For details about the syntax
  1912  	// of service configurations, see Service configurations for resource groups
  1913  	// (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  1914  	//
  1915  	// A resource group can contain either a Configuration or a ResourceQuery, but
  1916  	// not both.
  1917  	Configuration []*GroupConfigurationItem `type:"list"`
  1918  
  1919  	// The description of the resource group. Descriptions can consist of letters,
  1920  	// numbers, hyphens, underscores, periods, and spaces.
  1921  	Description *string `type:"string"`
  1922  
  1923  	// The name of the group, which is the identifier of the group in other operations.
  1924  	// You can't change the name of a resource group after you create it. A resource
  1925  	// group name can consist of letters, numbers, hyphens, periods, and underscores.
  1926  	// The name cannot start with AWS or aws; these are reserved. A resource group
  1927  	// name must be unique within each AWS Region in your AWS account.
  1928  	//
  1929  	// Name is a required field
  1930  	Name *string `min:"1" type:"string" required:"true"`
  1931  
  1932  	// The resource query that determines which AWS resources are members of this
  1933  	// group. For more information about resource queries, see Create a tag-based
  1934  	// group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag).
  1935  	//
  1936  	// A resource group can contain either a ResourceQuery or a Configuration, but
  1937  	// not both.
  1938  	ResourceQuery *ResourceQuery `type:"structure"`
  1939  
  1940  	// The tags to add to the group. A tag is key-value pair string.
  1941  	Tags map[string]*string `type:"map"`
  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 CreateGroupInput) 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 CreateGroupInput) GoString() string {
  1959  	return s.String()
  1960  }
  1961  
  1962  // Validate inspects the fields of the type to determine if they are valid.
  1963  func (s *CreateGroupInput) Validate() error {
  1964  	invalidParams := request.ErrInvalidParams{Context: "CreateGroupInput"}
  1965  	if s.Name == nil {
  1966  		invalidParams.Add(request.NewErrParamRequired("Name"))
  1967  	}
  1968  	if s.Name != nil && len(*s.Name) < 1 {
  1969  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  1970  	}
  1971  	if s.Configuration != nil {
  1972  		for i, v := range s.Configuration {
  1973  			if v == nil {
  1974  				continue
  1975  			}
  1976  			if err := v.Validate(); err != nil {
  1977  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Configuration", i), err.(request.ErrInvalidParams))
  1978  			}
  1979  		}
  1980  	}
  1981  	if s.ResourceQuery != nil {
  1982  		if err := s.ResourceQuery.Validate(); err != nil {
  1983  			invalidParams.AddNested("ResourceQuery", err.(request.ErrInvalidParams))
  1984  		}
  1985  	}
  1986  
  1987  	if invalidParams.Len() > 0 {
  1988  		return invalidParams
  1989  	}
  1990  	return nil
  1991  }
  1992  
  1993  // SetConfiguration sets the Configuration field's value.
  1994  func (s *CreateGroupInput) SetConfiguration(v []*GroupConfigurationItem) *CreateGroupInput {
  1995  	s.Configuration = v
  1996  	return s
  1997  }
  1998  
  1999  // SetDescription sets the Description field's value.
  2000  func (s *CreateGroupInput) SetDescription(v string) *CreateGroupInput {
  2001  	s.Description = &v
  2002  	return s
  2003  }
  2004  
  2005  // SetName sets the Name field's value.
  2006  func (s *CreateGroupInput) SetName(v string) *CreateGroupInput {
  2007  	s.Name = &v
  2008  	return s
  2009  }
  2010  
  2011  // SetResourceQuery sets the ResourceQuery field's value.
  2012  func (s *CreateGroupInput) SetResourceQuery(v *ResourceQuery) *CreateGroupInput {
  2013  	s.ResourceQuery = v
  2014  	return s
  2015  }
  2016  
  2017  // SetTags sets the Tags field's value.
  2018  func (s *CreateGroupInput) SetTags(v map[string]*string) *CreateGroupInput {
  2019  	s.Tags = v
  2020  	return s
  2021  }
  2022  
  2023  type CreateGroupOutput struct {
  2024  	_ struct{} `type:"structure"`
  2025  
  2026  	// The description of the resource group.
  2027  	Group *Group `type:"structure"`
  2028  
  2029  	// The service configuration associated with the resource group. For details
  2030  	// about the syntax of a service configuration, see Service configurations for
  2031  	// resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  2032  	GroupConfiguration *GroupConfiguration `type:"structure"`
  2033  
  2034  	// The resource query associated with the group. For more information about
  2035  	// resource queries, see Create a tag-based group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag).
  2036  	ResourceQuery *ResourceQuery `type:"structure"`
  2037  
  2038  	// The tags associated with the group.
  2039  	Tags map[string]*string `type:"map"`
  2040  }
  2041  
  2042  // String returns the string representation.
  2043  //
  2044  // API parameter values that are decorated as "sensitive" in the API will not
  2045  // be included in the string output. The member name will be present, but the
  2046  // value will be replaced with "sensitive".
  2047  func (s CreateGroupOutput) String() string {
  2048  	return awsutil.Prettify(s)
  2049  }
  2050  
  2051  // GoString returns the string representation.
  2052  //
  2053  // API parameter values that are decorated as "sensitive" in the API will not
  2054  // be included in the string output. The member name will be present, but the
  2055  // value will be replaced with "sensitive".
  2056  func (s CreateGroupOutput) GoString() string {
  2057  	return s.String()
  2058  }
  2059  
  2060  // SetGroup sets the Group field's value.
  2061  func (s *CreateGroupOutput) SetGroup(v *Group) *CreateGroupOutput {
  2062  	s.Group = v
  2063  	return s
  2064  }
  2065  
  2066  // SetGroupConfiguration sets the GroupConfiguration field's value.
  2067  func (s *CreateGroupOutput) SetGroupConfiguration(v *GroupConfiguration) *CreateGroupOutput {
  2068  	s.GroupConfiguration = v
  2069  	return s
  2070  }
  2071  
  2072  // SetResourceQuery sets the ResourceQuery field's value.
  2073  func (s *CreateGroupOutput) SetResourceQuery(v *ResourceQuery) *CreateGroupOutput {
  2074  	s.ResourceQuery = v
  2075  	return s
  2076  }
  2077  
  2078  // SetTags sets the Tags field's value.
  2079  func (s *CreateGroupOutput) SetTags(v map[string]*string) *CreateGroupOutput {
  2080  	s.Tags = v
  2081  	return s
  2082  }
  2083  
  2084  type DeleteGroupInput struct {
  2085  	_ struct{} `type:"structure"`
  2086  
  2087  	// The name or the ARN of the resource group to delete.
  2088  	Group *string `min:"1" type:"string"`
  2089  
  2090  	// Deprecated - don't use this parameter. Use Group instead.
  2091  	//
  2092  	// Deprecated: This field is deprecated, use Group instead.
  2093  	GroupName *string `min:"1" deprecated:"true" type:"string"`
  2094  }
  2095  
  2096  // String returns the string representation.
  2097  //
  2098  // API parameter values that are decorated as "sensitive" in the API will not
  2099  // be included in the string output. The member name will be present, but the
  2100  // value will be replaced with "sensitive".
  2101  func (s DeleteGroupInput) String() string {
  2102  	return awsutil.Prettify(s)
  2103  }
  2104  
  2105  // GoString returns the string representation.
  2106  //
  2107  // API parameter values that are decorated as "sensitive" in the API will not
  2108  // be included in the string output. The member name will be present, but the
  2109  // value will be replaced with "sensitive".
  2110  func (s DeleteGroupInput) GoString() string {
  2111  	return s.String()
  2112  }
  2113  
  2114  // Validate inspects the fields of the type to determine if they are valid.
  2115  func (s *DeleteGroupInput) Validate() error {
  2116  	invalidParams := request.ErrInvalidParams{Context: "DeleteGroupInput"}
  2117  	if s.Group != nil && len(*s.Group) < 1 {
  2118  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  2119  	}
  2120  	if s.GroupName != nil && len(*s.GroupName) < 1 {
  2121  		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  2122  	}
  2123  
  2124  	if invalidParams.Len() > 0 {
  2125  		return invalidParams
  2126  	}
  2127  	return nil
  2128  }
  2129  
  2130  // SetGroup sets the Group field's value.
  2131  func (s *DeleteGroupInput) SetGroup(v string) *DeleteGroupInput {
  2132  	s.Group = &v
  2133  	return s
  2134  }
  2135  
  2136  // SetGroupName sets the GroupName field's value.
  2137  func (s *DeleteGroupInput) SetGroupName(v string) *DeleteGroupInput {
  2138  	s.GroupName = &v
  2139  	return s
  2140  }
  2141  
  2142  type DeleteGroupOutput struct {
  2143  	_ struct{} `type:"structure"`
  2144  
  2145  	// A full description of the deleted resource group.
  2146  	Group *Group `type:"structure"`
  2147  }
  2148  
  2149  // String returns the string representation.
  2150  //
  2151  // API parameter values that are decorated as "sensitive" in the API will not
  2152  // be included in the string output. The member name will be present, but the
  2153  // value will be replaced with "sensitive".
  2154  func (s DeleteGroupOutput) String() string {
  2155  	return awsutil.Prettify(s)
  2156  }
  2157  
  2158  // GoString returns the string representation.
  2159  //
  2160  // API parameter values that are decorated as "sensitive" in the API will not
  2161  // be included in the string output. The member name will be present, but the
  2162  // value will be replaced with "sensitive".
  2163  func (s DeleteGroupOutput) GoString() string {
  2164  	return s.String()
  2165  }
  2166  
  2167  // SetGroup sets the Group field's value.
  2168  func (s *DeleteGroupOutput) SetGroup(v *Group) *DeleteGroupOutput {
  2169  	s.Group = v
  2170  	return s
  2171  }
  2172  
  2173  // A resource that failed to be added to or removed from a group.
  2174  type FailedResource struct {
  2175  	_ struct{} `type:"structure"`
  2176  
  2177  	// The error code associated with the failure.
  2178  	ErrorCode *string `min:"1" type:"string"`
  2179  
  2180  	// The error message text associated with the failure.
  2181  	ErrorMessage *string `min:"1" type:"string"`
  2182  
  2183  	// The ARN of the resource that failed to be added or removed.
  2184  	ResourceArn *string `type:"string"`
  2185  }
  2186  
  2187  // String returns the string representation.
  2188  //
  2189  // API parameter values that are decorated as "sensitive" in the API will not
  2190  // be included in the string output. The member name will be present, but the
  2191  // value will be replaced with "sensitive".
  2192  func (s FailedResource) String() string {
  2193  	return awsutil.Prettify(s)
  2194  }
  2195  
  2196  // GoString returns the string representation.
  2197  //
  2198  // API parameter values that are decorated as "sensitive" in the API will not
  2199  // be included in the string output. The member name will be present, but the
  2200  // value will be replaced with "sensitive".
  2201  func (s FailedResource) GoString() string {
  2202  	return s.String()
  2203  }
  2204  
  2205  // SetErrorCode sets the ErrorCode field's value.
  2206  func (s *FailedResource) SetErrorCode(v string) *FailedResource {
  2207  	s.ErrorCode = &v
  2208  	return s
  2209  }
  2210  
  2211  // SetErrorMessage sets the ErrorMessage field's value.
  2212  func (s *FailedResource) SetErrorMessage(v string) *FailedResource {
  2213  	s.ErrorMessage = &v
  2214  	return s
  2215  }
  2216  
  2217  // SetResourceArn sets the ResourceArn field's value.
  2218  func (s *FailedResource) SetResourceArn(v string) *FailedResource {
  2219  	s.ResourceArn = &v
  2220  	return s
  2221  }
  2222  
  2223  // The caller isn't authorized to make the request. Check permissions.
  2224  type ForbiddenException struct {
  2225  	_            struct{}                  `type:"structure"`
  2226  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2227  
  2228  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  2229  }
  2230  
  2231  // String returns the string representation.
  2232  //
  2233  // API parameter values that are decorated as "sensitive" in the API will not
  2234  // be included in the string output. The member name will be present, but the
  2235  // value will be replaced with "sensitive".
  2236  func (s ForbiddenException) String() string {
  2237  	return awsutil.Prettify(s)
  2238  }
  2239  
  2240  // GoString returns the string representation.
  2241  //
  2242  // API parameter values that are decorated as "sensitive" in the API will not
  2243  // be included in the string output. The member name will be present, but the
  2244  // value will be replaced with "sensitive".
  2245  func (s ForbiddenException) GoString() string {
  2246  	return s.String()
  2247  }
  2248  
  2249  func newErrorForbiddenException(v protocol.ResponseMetadata) error {
  2250  	return &ForbiddenException{
  2251  		RespMetadata: v,
  2252  	}
  2253  }
  2254  
  2255  // Code returns the exception type name.
  2256  func (s *ForbiddenException) Code() string {
  2257  	return "ForbiddenException"
  2258  }
  2259  
  2260  // Message returns the exception's message.
  2261  func (s *ForbiddenException) Message() string {
  2262  	if s.Message_ != nil {
  2263  		return *s.Message_
  2264  	}
  2265  	return ""
  2266  }
  2267  
  2268  // OrigErr always returns nil, satisfies awserr.Error interface.
  2269  func (s *ForbiddenException) OrigErr() error {
  2270  	return nil
  2271  }
  2272  
  2273  func (s *ForbiddenException) Error() string {
  2274  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2275  }
  2276  
  2277  // Status code returns the HTTP status code for the request's response error.
  2278  func (s *ForbiddenException) StatusCode() int {
  2279  	return s.RespMetadata.StatusCode
  2280  }
  2281  
  2282  // RequestID returns the service's response RequestID for request.
  2283  func (s *ForbiddenException) RequestID() string {
  2284  	return s.RespMetadata.RequestID
  2285  }
  2286  
  2287  type GetGroupConfigurationInput struct {
  2288  	_ struct{} `type:"structure"`
  2289  
  2290  	// The name or the ARN of the resource group.
  2291  	Group *string `min:"1" type:"string"`
  2292  }
  2293  
  2294  // String returns the string representation.
  2295  //
  2296  // API parameter values that are decorated as "sensitive" in the API will not
  2297  // be included in the string output. The member name will be present, but the
  2298  // value will be replaced with "sensitive".
  2299  func (s GetGroupConfigurationInput) String() string {
  2300  	return awsutil.Prettify(s)
  2301  }
  2302  
  2303  // GoString returns the string representation.
  2304  //
  2305  // API parameter values that are decorated as "sensitive" in the API will not
  2306  // be included in the string output. The member name will be present, but the
  2307  // value will be replaced with "sensitive".
  2308  func (s GetGroupConfigurationInput) GoString() string {
  2309  	return s.String()
  2310  }
  2311  
  2312  // Validate inspects the fields of the type to determine if they are valid.
  2313  func (s *GetGroupConfigurationInput) Validate() error {
  2314  	invalidParams := request.ErrInvalidParams{Context: "GetGroupConfigurationInput"}
  2315  	if s.Group != nil && len(*s.Group) < 1 {
  2316  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  2317  	}
  2318  
  2319  	if invalidParams.Len() > 0 {
  2320  		return invalidParams
  2321  	}
  2322  	return nil
  2323  }
  2324  
  2325  // SetGroup sets the Group field's value.
  2326  func (s *GetGroupConfigurationInput) SetGroup(v string) *GetGroupConfigurationInput {
  2327  	s.Group = &v
  2328  	return s
  2329  }
  2330  
  2331  type GetGroupConfigurationOutput struct {
  2332  	_ struct{} `type:"structure"`
  2333  
  2334  	// The service configuration associated with the specified group. For details
  2335  	// about the service configuration syntax, see Service configurations for resource
  2336  	// groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  2337  	GroupConfiguration *GroupConfiguration `type:"structure"`
  2338  }
  2339  
  2340  // String returns the string representation.
  2341  //
  2342  // API parameter values that are decorated as "sensitive" in the API will not
  2343  // be included in the string output. The member name will be present, but the
  2344  // value will be replaced with "sensitive".
  2345  func (s GetGroupConfigurationOutput) String() string {
  2346  	return awsutil.Prettify(s)
  2347  }
  2348  
  2349  // GoString returns the string representation.
  2350  //
  2351  // API parameter values that are decorated as "sensitive" in the API will not
  2352  // be included in the string output. The member name will be present, but the
  2353  // value will be replaced with "sensitive".
  2354  func (s GetGroupConfigurationOutput) GoString() string {
  2355  	return s.String()
  2356  }
  2357  
  2358  // SetGroupConfiguration sets the GroupConfiguration field's value.
  2359  func (s *GetGroupConfigurationOutput) SetGroupConfiguration(v *GroupConfiguration) *GetGroupConfigurationOutput {
  2360  	s.GroupConfiguration = v
  2361  	return s
  2362  }
  2363  
  2364  type GetGroupInput struct {
  2365  	_ struct{} `type:"structure"`
  2366  
  2367  	// The name or the ARN of the resource group to retrieve.
  2368  	Group *string `min:"1" type:"string"`
  2369  
  2370  	// Deprecated - don't use this parameter. Use Group instead.
  2371  	//
  2372  	// Deprecated: This field is deprecated, use Group instead.
  2373  	GroupName *string `min:"1" deprecated:"true" type:"string"`
  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 GetGroupInput) 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 GetGroupInput) GoString() string {
  2391  	return s.String()
  2392  }
  2393  
  2394  // Validate inspects the fields of the type to determine if they are valid.
  2395  func (s *GetGroupInput) Validate() error {
  2396  	invalidParams := request.ErrInvalidParams{Context: "GetGroupInput"}
  2397  	if s.Group != nil && len(*s.Group) < 1 {
  2398  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  2399  	}
  2400  	if s.GroupName != nil && len(*s.GroupName) < 1 {
  2401  		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  2402  	}
  2403  
  2404  	if invalidParams.Len() > 0 {
  2405  		return invalidParams
  2406  	}
  2407  	return nil
  2408  }
  2409  
  2410  // SetGroup sets the Group field's value.
  2411  func (s *GetGroupInput) SetGroup(v string) *GetGroupInput {
  2412  	s.Group = &v
  2413  	return s
  2414  }
  2415  
  2416  // SetGroupName sets the GroupName field's value.
  2417  func (s *GetGroupInput) SetGroupName(v string) *GetGroupInput {
  2418  	s.GroupName = &v
  2419  	return s
  2420  }
  2421  
  2422  type GetGroupOutput struct {
  2423  	_ struct{} `type:"structure"`
  2424  
  2425  	// A full description of the resource group.
  2426  	Group *Group `type:"structure"`
  2427  }
  2428  
  2429  // String returns the string representation.
  2430  //
  2431  // API parameter values that are decorated as "sensitive" in the API will not
  2432  // be included in the string output. The member name will be present, but the
  2433  // value will be replaced with "sensitive".
  2434  func (s GetGroupOutput) String() string {
  2435  	return awsutil.Prettify(s)
  2436  }
  2437  
  2438  // GoString returns the string representation.
  2439  //
  2440  // API parameter values that are decorated as "sensitive" in the API will not
  2441  // be included in the string output. The member name will be present, but the
  2442  // value will be replaced with "sensitive".
  2443  func (s GetGroupOutput) GoString() string {
  2444  	return s.String()
  2445  }
  2446  
  2447  // SetGroup sets the Group field's value.
  2448  func (s *GetGroupOutput) SetGroup(v *Group) *GetGroupOutput {
  2449  	s.Group = v
  2450  	return s
  2451  }
  2452  
  2453  type GetGroupQueryInput struct {
  2454  	_ struct{} `type:"structure"`
  2455  
  2456  	// The name or the ARN of the resource group to query.
  2457  	Group *string `min:"1" type:"string"`
  2458  
  2459  	// Don't use this parameter. Use Group instead.
  2460  	//
  2461  	// Deprecated: This field is deprecated, use Group instead.
  2462  	GroupName *string `min:"1" deprecated:"true" type:"string"`
  2463  }
  2464  
  2465  // String returns the string representation.
  2466  //
  2467  // API parameter values that are decorated as "sensitive" in the API will not
  2468  // be included in the string output. The member name will be present, but the
  2469  // value will be replaced with "sensitive".
  2470  func (s GetGroupQueryInput) String() string {
  2471  	return awsutil.Prettify(s)
  2472  }
  2473  
  2474  // GoString returns the string representation.
  2475  //
  2476  // API parameter values that are decorated as "sensitive" in the API will not
  2477  // be included in the string output. The member name will be present, but the
  2478  // value will be replaced with "sensitive".
  2479  func (s GetGroupQueryInput) GoString() string {
  2480  	return s.String()
  2481  }
  2482  
  2483  // Validate inspects the fields of the type to determine if they are valid.
  2484  func (s *GetGroupQueryInput) Validate() error {
  2485  	invalidParams := request.ErrInvalidParams{Context: "GetGroupQueryInput"}
  2486  	if s.Group != nil && len(*s.Group) < 1 {
  2487  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  2488  	}
  2489  	if s.GroupName != nil && len(*s.GroupName) < 1 {
  2490  		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  2491  	}
  2492  
  2493  	if invalidParams.Len() > 0 {
  2494  		return invalidParams
  2495  	}
  2496  	return nil
  2497  }
  2498  
  2499  // SetGroup sets the Group field's value.
  2500  func (s *GetGroupQueryInput) SetGroup(v string) *GetGroupQueryInput {
  2501  	s.Group = &v
  2502  	return s
  2503  }
  2504  
  2505  // SetGroupName sets the GroupName field's value.
  2506  func (s *GetGroupQueryInput) SetGroupName(v string) *GetGroupQueryInput {
  2507  	s.GroupName = &v
  2508  	return s
  2509  }
  2510  
  2511  type GetGroupQueryOutput struct {
  2512  	_ struct{} `type:"structure"`
  2513  
  2514  	// The resource query associated with the specified group. For more information
  2515  	// about resource queries, see Create a tag-based group in Resource Groups (https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-cli-tag).
  2516  	GroupQuery *GroupQuery `type:"structure"`
  2517  }
  2518  
  2519  // String returns the string representation.
  2520  //
  2521  // API parameter values that are decorated as "sensitive" in the API will not
  2522  // be included in the string output. The member name will be present, but the
  2523  // value will be replaced with "sensitive".
  2524  func (s GetGroupQueryOutput) String() string {
  2525  	return awsutil.Prettify(s)
  2526  }
  2527  
  2528  // GoString returns the string representation.
  2529  //
  2530  // API parameter values that are decorated as "sensitive" in the API will not
  2531  // be included in the string output. The member name will be present, but the
  2532  // value will be replaced with "sensitive".
  2533  func (s GetGroupQueryOutput) GoString() string {
  2534  	return s.String()
  2535  }
  2536  
  2537  // SetGroupQuery sets the GroupQuery field's value.
  2538  func (s *GetGroupQueryOutput) SetGroupQuery(v *GroupQuery) *GetGroupQueryOutput {
  2539  	s.GroupQuery = v
  2540  	return s
  2541  }
  2542  
  2543  type GetTagsInput struct {
  2544  	_ struct{} `type:"structure" nopayload:"true"`
  2545  
  2546  	// The ARN of the resource group whose tags you want to retrieve.
  2547  	//
  2548  	// Arn is a required field
  2549  	Arn *string `location:"uri" locationName:"Arn" min:"12" type:"string" required:"true"`
  2550  }
  2551  
  2552  // String returns the string representation.
  2553  //
  2554  // API parameter values that are decorated as "sensitive" in the API will not
  2555  // be included in the string output. The member name will be present, but the
  2556  // value will be replaced with "sensitive".
  2557  func (s GetTagsInput) String() string {
  2558  	return awsutil.Prettify(s)
  2559  }
  2560  
  2561  // GoString returns the string representation.
  2562  //
  2563  // API parameter values that are decorated as "sensitive" in the API will not
  2564  // be included in the string output. The member name will be present, but the
  2565  // value will be replaced with "sensitive".
  2566  func (s GetTagsInput) GoString() string {
  2567  	return s.String()
  2568  }
  2569  
  2570  // Validate inspects the fields of the type to determine if they are valid.
  2571  func (s *GetTagsInput) Validate() error {
  2572  	invalidParams := request.ErrInvalidParams{Context: "GetTagsInput"}
  2573  	if s.Arn == nil {
  2574  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  2575  	}
  2576  	if s.Arn != nil && len(*s.Arn) < 12 {
  2577  		invalidParams.Add(request.NewErrParamMinLen("Arn", 12))
  2578  	}
  2579  
  2580  	if invalidParams.Len() > 0 {
  2581  		return invalidParams
  2582  	}
  2583  	return nil
  2584  }
  2585  
  2586  // SetArn sets the Arn field's value.
  2587  func (s *GetTagsInput) SetArn(v string) *GetTagsInput {
  2588  	s.Arn = &v
  2589  	return s
  2590  }
  2591  
  2592  type GetTagsOutput struct {
  2593  	_ struct{} `type:"structure"`
  2594  
  2595  	// The ARN of the tagged resource group.
  2596  	Arn *string `min:"12" type:"string"`
  2597  
  2598  	// The tags associated with the specified resource group.
  2599  	Tags map[string]*string `type:"map"`
  2600  }
  2601  
  2602  // String returns the string representation.
  2603  //
  2604  // API parameter values that are decorated as "sensitive" in the API will not
  2605  // be included in the string output. The member name will be present, but the
  2606  // value will be replaced with "sensitive".
  2607  func (s GetTagsOutput) String() string {
  2608  	return awsutil.Prettify(s)
  2609  }
  2610  
  2611  // GoString returns the string representation.
  2612  //
  2613  // API parameter values that are decorated as "sensitive" in the API will not
  2614  // be included in the string output. The member name will be present, but the
  2615  // value will be replaced with "sensitive".
  2616  func (s GetTagsOutput) GoString() string {
  2617  	return s.String()
  2618  }
  2619  
  2620  // SetArn sets the Arn field's value.
  2621  func (s *GetTagsOutput) SetArn(v string) *GetTagsOutput {
  2622  	s.Arn = &v
  2623  	return s
  2624  }
  2625  
  2626  // SetTags sets the Tags field's value.
  2627  func (s *GetTagsOutput) SetTags(v map[string]*string) *GetTagsOutput {
  2628  	s.Tags = v
  2629  	return s
  2630  }
  2631  
  2632  // A resource group that contains AWS resources. You can assign resources to
  2633  // the group by associating either of the following elements with the group:
  2634  //
  2635  //    * ResourceQuery - Use a resource query to specify a set of tag keys and
  2636  //    values. All resources in the same AWS Region and AWS account that have
  2637  //    those keys with the same values are included in the group. You can add
  2638  //    a resource query when you create the group, or later by using the PutGroupConfiguration
  2639  //    operation.
  2640  //
  2641  //    * GroupConfiguration - Use a service configuration to associate the group
  2642  //    with an AWS service. The configuration specifies which resource types
  2643  //    can be included in the group.
  2644  type Group struct {
  2645  	_ struct{} `type:"structure"`
  2646  
  2647  	// The description of the resource group.
  2648  	Description *string `type:"string"`
  2649  
  2650  	// The ARN of the resource group.
  2651  	//
  2652  	// GroupArn is a required field
  2653  	GroupArn *string `min:"12" type:"string" required:"true"`
  2654  
  2655  	// The name of the resource group.
  2656  	//
  2657  	// Name is a required field
  2658  	Name *string `min:"1" type:"string" required:"true"`
  2659  }
  2660  
  2661  // String returns the string representation.
  2662  //
  2663  // API parameter values that are decorated as "sensitive" in the API will not
  2664  // be included in the string output. The member name will be present, but the
  2665  // value will be replaced with "sensitive".
  2666  func (s Group) String() string {
  2667  	return awsutil.Prettify(s)
  2668  }
  2669  
  2670  // GoString returns the string representation.
  2671  //
  2672  // API parameter values that are decorated as "sensitive" in the API will not
  2673  // be included in the string output. The member name will be present, but the
  2674  // value will be replaced with "sensitive".
  2675  func (s Group) GoString() string {
  2676  	return s.String()
  2677  }
  2678  
  2679  // SetDescription sets the Description field's value.
  2680  func (s *Group) SetDescription(v string) *Group {
  2681  	s.Description = &v
  2682  	return s
  2683  }
  2684  
  2685  // SetGroupArn sets the GroupArn field's value.
  2686  func (s *Group) SetGroupArn(v string) *Group {
  2687  	s.GroupArn = &v
  2688  	return s
  2689  }
  2690  
  2691  // SetName sets the Name field's value.
  2692  func (s *Group) SetName(v string) *Group {
  2693  	s.Name = &v
  2694  	return s
  2695  }
  2696  
  2697  // A service configuration associated with a resource group. The configuration
  2698  // options are determined by the AWS service that defines the Type, and specifies
  2699  // which resources can be included in the group. You can add a service configuration
  2700  // when you create the group by using CreateGroup, or later by using the PutGroupConfiguration
  2701  // operation. For details about group service configuration syntax, see Service
  2702  // configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  2703  type GroupConfiguration struct {
  2704  	_ struct{} `type:"structure"`
  2705  
  2706  	// The configuration currently associated with the group and in effect.
  2707  	Configuration []*GroupConfigurationItem `type:"list"`
  2708  
  2709  	// If present, the reason why a request to update the group configuration failed.
  2710  	FailureReason *string `type:"string"`
  2711  
  2712  	// If present, the new configuration that is in the process of being applied
  2713  	// to the group.
  2714  	ProposedConfiguration []*GroupConfigurationItem `type:"list"`
  2715  
  2716  	// The current status of an attempt to update the group configuration.
  2717  	Status *string `type:"string" enum:"GroupConfigurationStatus"`
  2718  }
  2719  
  2720  // String returns the string representation.
  2721  //
  2722  // API parameter values that are decorated as "sensitive" in the API will not
  2723  // be included in the string output. The member name will be present, but the
  2724  // value will be replaced with "sensitive".
  2725  func (s GroupConfiguration) String() string {
  2726  	return awsutil.Prettify(s)
  2727  }
  2728  
  2729  // GoString returns the string representation.
  2730  //
  2731  // API parameter values that are decorated as "sensitive" in the API will not
  2732  // be included in the string output. The member name will be present, but the
  2733  // value will be replaced with "sensitive".
  2734  func (s GroupConfiguration) GoString() string {
  2735  	return s.String()
  2736  }
  2737  
  2738  // SetConfiguration sets the Configuration field's value.
  2739  func (s *GroupConfiguration) SetConfiguration(v []*GroupConfigurationItem) *GroupConfiguration {
  2740  	s.Configuration = v
  2741  	return s
  2742  }
  2743  
  2744  // SetFailureReason sets the FailureReason field's value.
  2745  func (s *GroupConfiguration) SetFailureReason(v string) *GroupConfiguration {
  2746  	s.FailureReason = &v
  2747  	return s
  2748  }
  2749  
  2750  // SetProposedConfiguration sets the ProposedConfiguration field's value.
  2751  func (s *GroupConfiguration) SetProposedConfiguration(v []*GroupConfigurationItem) *GroupConfiguration {
  2752  	s.ProposedConfiguration = v
  2753  	return s
  2754  }
  2755  
  2756  // SetStatus sets the Status field's value.
  2757  func (s *GroupConfiguration) SetStatus(v string) *GroupConfiguration {
  2758  	s.Status = &v
  2759  	return s
  2760  }
  2761  
  2762  // An item in a group configuration. A group service configuration can have
  2763  // one or more items. For details about group service configuration syntax,
  2764  // see Service configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  2765  type GroupConfigurationItem struct {
  2766  	_ struct{} `type:"structure"`
  2767  
  2768  	// A collection of parameters for this group configuration item. For the list
  2769  	// of parameters that you can use with each configuration item type, see Supported
  2770  	// resource types and parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types).
  2771  	Parameters []*GroupConfigurationParameter `type:"list"`
  2772  
  2773  	// Specifies the type of group configuration item. Each item must have a unique
  2774  	// value for type. For the list of types that you can specify for a configuration
  2775  	// item, see Supported resource types and parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types).
  2776  	//
  2777  	// Type is a required field
  2778  	Type *string `type:"string" required:"true"`
  2779  }
  2780  
  2781  // String returns the string representation.
  2782  //
  2783  // API parameter values that are decorated as "sensitive" in the API will not
  2784  // be included in the string output. The member name will be present, but the
  2785  // value will be replaced with "sensitive".
  2786  func (s GroupConfigurationItem) String() string {
  2787  	return awsutil.Prettify(s)
  2788  }
  2789  
  2790  // GoString returns the string representation.
  2791  //
  2792  // API parameter values that are decorated as "sensitive" in the API will not
  2793  // be included in the string output. The member name will be present, but the
  2794  // value will be replaced with "sensitive".
  2795  func (s GroupConfigurationItem) GoString() string {
  2796  	return s.String()
  2797  }
  2798  
  2799  // Validate inspects the fields of the type to determine if they are valid.
  2800  func (s *GroupConfigurationItem) Validate() error {
  2801  	invalidParams := request.ErrInvalidParams{Context: "GroupConfigurationItem"}
  2802  	if s.Type == nil {
  2803  		invalidParams.Add(request.NewErrParamRequired("Type"))
  2804  	}
  2805  	if s.Parameters != nil {
  2806  		for i, v := range s.Parameters {
  2807  			if v == nil {
  2808  				continue
  2809  			}
  2810  			if err := v.Validate(); err != nil {
  2811  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Parameters", i), err.(request.ErrInvalidParams))
  2812  			}
  2813  		}
  2814  	}
  2815  
  2816  	if invalidParams.Len() > 0 {
  2817  		return invalidParams
  2818  	}
  2819  	return nil
  2820  }
  2821  
  2822  // SetParameters sets the Parameters field's value.
  2823  func (s *GroupConfigurationItem) SetParameters(v []*GroupConfigurationParameter) *GroupConfigurationItem {
  2824  	s.Parameters = v
  2825  	return s
  2826  }
  2827  
  2828  // SetType sets the Type field's value.
  2829  func (s *GroupConfigurationItem) SetType(v string) *GroupConfigurationItem {
  2830  	s.Type = &v
  2831  	return s
  2832  }
  2833  
  2834  // A parameter for a group configuration item. For details about group service
  2835  // configuration syntax, see Service configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  2836  type GroupConfigurationParameter struct {
  2837  	_ struct{} `type:"structure"`
  2838  
  2839  	// The name of the group configuration parameter. For the list of parameters
  2840  	// that you can use with each configuration item type, see Supported resource
  2841  	// types and parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types).
  2842  	//
  2843  	// Name is a required field
  2844  	Name *string `min:"1" type:"string" required:"true"`
  2845  
  2846  	// The value or values to be used for the specified parameter. For the list
  2847  	// of values you can use with each parameter, see Supported resource types and
  2848  	// parameters (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html#about-slg-types).
  2849  	Values []*string `type:"list"`
  2850  }
  2851  
  2852  // String returns the string representation.
  2853  //
  2854  // API parameter values that are decorated as "sensitive" in the API will not
  2855  // be included in the string output. The member name will be present, but the
  2856  // value will be replaced with "sensitive".
  2857  func (s GroupConfigurationParameter) String() string {
  2858  	return awsutil.Prettify(s)
  2859  }
  2860  
  2861  // GoString 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 GroupConfigurationParameter) GoString() string {
  2867  	return s.String()
  2868  }
  2869  
  2870  // Validate inspects the fields of the type to determine if they are valid.
  2871  func (s *GroupConfigurationParameter) Validate() error {
  2872  	invalidParams := request.ErrInvalidParams{Context: "GroupConfigurationParameter"}
  2873  	if s.Name == nil {
  2874  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2875  	}
  2876  	if s.Name != nil && len(*s.Name) < 1 {
  2877  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2878  	}
  2879  
  2880  	if invalidParams.Len() > 0 {
  2881  		return invalidParams
  2882  	}
  2883  	return nil
  2884  }
  2885  
  2886  // SetName sets the Name field's value.
  2887  func (s *GroupConfigurationParameter) SetName(v string) *GroupConfigurationParameter {
  2888  	s.Name = &v
  2889  	return s
  2890  }
  2891  
  2892  // SetValues sets the Values field's value.
  2893  func (s *GroupConfigurationParameter) SetValues(v []*string) *GroupConfigurationParameter {
  2894  	s.Values = v
  2895  	return s
  2896  }
  2897  
  2898  // A filter collection that you can use to restrict the results from a List
  2899  // operation to only those you want to include.
  2900  type GroupFilter struct {
  2901  	_ struct{} `type:"structure"`
  2902  
  2903  	// The name of the filter. Filter names are case-sensitive.
  2904  	//
  2905  	// Name is a required field
  2906  	Name *string `type:"string" required:"true" enum:"GroupFilterName"`
  2907  
  2908  	// One or more filter values. Allowed filter values vary by group filter name,
  2909  	// and are case-sensitive.
  2910  	//
  2911  	// Values is a required field
  2912  	Values []*string `min:"1" type:"list" required:"true"`
  2913  }
  2914  
  2915  // String returns the string representation.
  2916  //
  2917  // API parameter values that are decorated as "sensitive" in the API will not
  2918  // be included in the string output. The member name will be present, but the
  2919  // value will be replaced with "sensitive".
  2920  func (s GroupFilter) String() string {
  2921  	return awsutil.Prettify(s)
  2922  }
  2923  
  2924  // GoString returns the string representation.
  2925  //
  2926  // API parameter values that are decorated as "sensitive" in the API will not
  2927  // be included in the string output. The member name will be present, but the
  2928  // value will be replaced with "sensitive".
  2929  func (s GroupFilter) GoString() string {
  2930  	return s.String()
  2931  }
  2932  
  2933  // Validate inspects the fields of the type to determine if they are valid.
  2934  func (s *GroupFilter) Validate() error {
  2935  	invalidParams := request.ErrInvalidParams{Context: "GroupFilter"}
  2936  	if s.Name == nil {
  2937  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2938  	}
  2939  	if s.Values == nil {
  2940  		invalidParams.Add(request.NewErrParamRequired("Values"))
  2941  	}
  2942  	if s.Values != nil && len(s.Values) < 1 {
  2943  		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
  2944  	}
  2945  
  2946  	if invalidParams.Len() > 0 {
  2947  		return invalidParams
  2948  	}
  2949  	return nil
  2950  }
  2951  
  2952  // SetName sets the Name field's value.
  2953  func (s *GroupFilter) SetName(v string) *GroupFilter {
  2954  	s.Name = &v
  2955  	return s
  2956  }
  2957  
  2958  // SetValues sets the Values field's value.
  2959  func (s *GroupFilter) SetValues(v []*string) *GroupFilter {
  2960  	s.Values = v
  2961  	return s
  2962  }
  2963  
  2964  // The unique identifiers for a resource group.
  2965  type GroupIdentifier struct {
  2966  	_ struct{} `type:"structure"`
  2967  
  2968  	// The ARN of the resource group.
  2969  	GroupArn *string `min:"12" type:"string"`
  2970  
  2971  	// The name of the resource group.
  2972  	GroupName *string `min:"1" type:"string"`
  2973  }
  2974  
  2975  // String returns the string representation.
  2976  //
  2977  // API parameter values that are decorated as "sensitive" in the API will not
  2978  // be included in the string output. The member name will be present, but the
  2979  // value will be replaced with "sensitive".
  2980  func (s GroupIdentifier) String() string {
  2981  	return awsutil.Prettify(s)
  2982  }
  2983  
  2984  // GoString returns the string representation.
  2985  //
  2986  // API parameter values that are decorated as "sensitive" in the API will not
  2987  // be included in the string output. The member name will be present, but the
  2988  // value will be replaced with "sensitive".
  2989  func (s GroupIdentifier) GoString() string {
  2990  	return s.String()
  2991  }
  2992  
  2993  // SetGroupArn sets the GroupArn field's value.
  2994  func (s *GroupIdentifier) SetGroupArn(v string) *GroupIdentifier {
  2995  	s.GroupArn = &v
  2996  	return s
  2997  }
  2998  
  2999  // SetGroupName sets the GroupName field's value.
  3000  func (s *GroupIdentifier) SetGroupName(v string) *GroupIdentifier {
  3001  	s.GroupName = &v
  3002  	return s
  3003  }
  3004  
  3005  // A mapping of a query attached to a resource group that determines the AWS
  3006  // resources that are members of the group.
  3007  type GroupQuery struct {
  3008  	_ struct{} `type:"structure"`
  3009  
  3010  	// The name of the resource group that is associated with the specified resource
  3011  	// query.
  3012  	//
  3013  	// GroupName is a required field
  3014  	GroupName *string `min:"1" type:"string" required:"true"`
  3015  
  3016  	// The resource query that determines which AWS resources are members of the
  3017  	// associated resource group.
  3018  	//
  3019  	// ResourceQuery is a required field
  3020  	ResourceQuery *ResourceQuery `type:"structure" required:"true"`
  3021  }
  3022  
  3023  // String returns the string representation.
  3024  //
  3025  // API parameter values that are decorated as "sensitive" in the API will not
  3026  // be included in the string output. The member name will be present, but the
  3027  // value will be replaced with "sensitive".
  3028  func (s GroupQuery) String() string {
  3029  	return awsutil.Prettify(s)
  3030  }
  3031  
  3032  // GoString returns the string representation.
  3033  //
  3034  // API parameter values that are decorated as "sensitive" in the API will not
  3035  // be included in the string output. The member name will be present, but the
  3036  // value will be replaced with "sensitive".
  3037  func (s GroupQuery) GoString() string {
  3038  	return s.String()
  3039  }
  3040  
  3041  // SetGroupName sets the GroupName field's value.
  3042  func (s *GroupQuery) SetGroupName(v string) *GroupQuery {
  3043  	s.GroupName = &v
  3044  	return s
  3045  }
  3046  
  3047  // SetResourceQuery sets the ResourceQuery field's value.
  3048  func (s *GroupQuery) SetResourceQuery(v *ResourceQuery) *GroupQuery {
  3049  	s.ResourceQuery = v
  3050  	return s
  3051  }
  3052  
  3053  type GroupResourcesInput struct {
  3054  	_ struct{} `type:"structure"`
  3055  
  3056  	// The name or the ARN of the resource group to add resources to.
  3057  	//
  3058  	// Group is a required field
  3059  	Group *string `min:"1" type:"string" required:"true"`
  3060  
  3061  	// The list of ARNs for resources to be added to the group.
  3062  	//
  3063  	// ResourceArns is a required field
  3064  	ResourceArns []*string `min:"1" type:"list" required:"true"`
  3065  }
  3066  
  3067  // String returns the string representation.
  3068  //
  3069  // API parameter values that are decorated as "sensitive" in the API will not
  3070  // be included in the string output. The member name will be present, but the
  3071  // value will be replaced with "sensitive".
  3072  func (s GroupResourcesInput) String() string {
  3073  	return awsutil.Prettify(s)
  3074  }
  3075  
  3076  // GoString returns the string representation.
  3077  //
  3078  // API parameter values that are decorated as "sensitive" in the API will not
  3079  // be included in the string output. The member name will be present, but the
  3080  // value will be replaced with "sensitive".
  3081  func (s GroupResourcesInput) GoString() string {
  3082  	return s.String()
  3083  }
  3084  
  3085  // Validate inspects the fields of the type to determine if they are valid.
  3086  func (s *GroupResourcesInput) Validate() error {
  3087  	invalidParams := request.ErrInvalidParams{Context: "GroupResourcesInput"}
  3088  	if s.Group == nil {
  3089  		invalidParams.Add(request.NewErrParamRequired("Group"))
  3090  	}
  3091  	if s.Group != nil && len(*s.Group) < 1 {
  3092  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  3093  	}
  3094  	if s.ResourceArns == nil {
  3095  		invalidParams.Add(request.NewErrParamRequired("ResourceArns"))
  3096  	}
  3097  	if s.ResourceArns != nil && len(s.ResourceArns) < 1 {
  3098  		invalidParams.Add(request.NewErrParamMinLen("ResourceArns", 1))
  3099  	}
  3100  
  3101  	if invalidParams.Len() > 0 {
  3102  		return invalidParams
  3103  	}
  3104  	return nil
  3105  }
  3106  
  3107  // SetGroup sets the Group field's value.
  3108  func (s *GroupResourcesInput) SetGroup(v string) *GroupResourcesInput {
  3109  	s.Group = &v
  3110  	return s
  3111  }
  3112  
  3113  // SetResourceArns sets the ResourceArns field's value.
  3114  func (s *GroupResourcesInput) SetResourceArns(v []*string) *GroupResourcesInput {
  3115  	s.ResourceArns = v
  3116  	return s
  3117  }
  3118  
  3119  type GroupResourcesOutput struct {
  3120  	_ struct{} `type:"structure"`
  3121  
  3122  	// A list of ARNs of any resources that failed to be added to the group by this
  3123  	// operation.
  3124  	Failed []*FailedResource `type:"list"`
  3125  
  3126  	// A list of ARNs of any resources that are still in the process of being added
  3127  	// to the group by this operation. These pending additions continue asynchronously.
  3128  	// You can check the status of pending additions by using the ListGroupResources
  3129  	// operation, and checking the Resources array in the response and the Status
  3130  	// field of each object in that array.
  3131  	Pending []*PendingResource `type:"list"`
  3132  
  3133  	// A list of ARNs of resources that were successfully added to the group by
  3134  	// this operation.
  3135  	Succeeded []*string `min:"1" type:"list"`
  3136  }
  3137  
  3138  // String returns the string representation.
  3139  //
  3140  // API parameter values that are decorated as "sensitive" in the API will not
  3141  // be included in the string output. The member name will be present, but the
  3142  // value will be replaced with "sensitive".
  3143  func (s GroupResourcesOutput) String() string {
  3144  	return awsutil.Prettify(s)
  3145  }
  3146  
  3147  // GoString returns the string representation.
  3148  //
  3149  // API parameter values that are decorated as "sensitive" in the API will not
  3150  // be included in the string output. The member name will be present, but the
  3151  // value will be replaced with "sensitive".
  3152  func (s GroupResourcesOutput) GoString() string {
  3153  	return s.String()
  3154  }
  3155  
  3156  // SetFailed sets the Failed field's value.
  3157  func (s *GroupResourcesOutput) SetFailed(v []*FailedResource) *GroupResourcesOutput {
  3158  	s.Failed = v
  3159  	return s
  3160  }
  3161  
  3162  // SetPending sets the Pending field's value.
  3163  func (s *GroupResourcesOutput) SetPending(v []*PendingResource) *GroupResourcesOutput {
  3164  	s.Pending = v
  3165  	return s
  3166  }
  3167  
  3168  // SetSucceeded sets the Succeeded field's value.
  3169  func (s *GroupResourcesOutput) SetSucceeded(v []*string) *GroupResourcesOutput {
  3170  	s.Succeeded = v
  3171  	return s
  3172  }
  3173  
  3174  // An internal error occurred while processing the request. Try again later.
  3175  type InternalServerErrorException struct {
  3176  	_            struct{}                  `type:"structure"`
  3177  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3178  
  3179  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  3180  }
  3181  
  3182  // String returns the string representation.
  3183  //
  3184  // API parameter values that are decorated as "sensitive" in the API will not
  3185  // be included in the string output. The member name will be present, but the
  3186  // value will be replaced with "sensitive".
  3187  func (s InternalServerErrorException) String() string {
  3188  	return awsutil.Prettify(s)
  3189  }
  3190  
  3191  // GoString returns the string representation.
  3192  //
  3193  // API parameter values that are decorated as "sensitive" in the API will not
  3194  // be included in the string output. The member name will be present, but the
  3195  // value will be replaced with "sensitive".
  3196  func (s InternalServerErrorException) GoString() string {
  3197  	return s.String()
  3198  }
  3199  
  3200  func newErrorInternalServerErrorException(v protocol.ResponseMetadata) error {
  3201  	return &InternalServerErrorException{
  3202  		RespMetadata: v,
  3203  	}
  3204  }
  3205  
  3206  // Code returns the exception type name.
  3207  func (s *InternalServerErrorException) Code() string {
  3208  	return "InternalServerErrorException"
  3209  }
  3210  
  3211  // Message returns the exception's message.
  3212  func (s *InternalServerErrorException) Message() string {
  3213  	if s.Message_ != nil {
  3214  		return *s.Message_
  3215  	}
  3216  	return ""
  3217  }
  3218  
  3219  // OrigErr always returns nil, satisfies awserr.Error interface.
  3220  func (s *InternalServerErrorException) OrigErr() error {
  3221  	return nil
  3222  }
  3223  
  3224  func (s *InternalServerErrorException) Error() string {
  3225  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3226  }
  3227  
  3228  // Status code returns the HTTP status code for the request's response error.
  3229  func (s *InternalServerErrorException) StatusCode() int {
  3230  	return s.RespMetadata.StatusCode
  3231  }
  3232  
  3233  // RequestID returns the service's response RequestID for request.
  3234  func (s *InternalServerErrorException) RequestID() string {
  3235  	return s.RespMetadata.RequestID
  3236  }
  3237  
  3238  type ListGroupResourcesInput struct {
  3239  	_ struct{} `type:"structure"`
  3240  
  3241  	// Filters, formatted as ResourceFilter objects, that you want to apply to a
  3242  	// ListGroupResources operation. Filters the results to include only those of
  3243  	// the specified resource types.
  3244  	//
  3245  	//    * resource-type - Filter resources by their type. Specify up to five resource
  3246  	//    types in the format AWS::ServiceCode::ResourceType. For example, AWS::EC2::Instance,
  3247  	//    or AWS::S3::Bucket.
  3248  	//
  3249  	// When you specify a resource-type filter for ListGroupResources, AWS Resource
  3250  	// Groups validates your filter resource types against the types that are defined
  3251  	// in the query associated with the group. For example, if a group contains
  3252  	// only S3 buckets because its query specifies only that resource type, but
  3253  	// your resource-type filter includes EC2 instances, AWS Resource Groups does
  3254  	// not filter for EC2 instances. In this case, a ListGroupResources request
  3255  	// returns a BadRequestException error with a message similar to the following:
  3256  	//
  3257  	// The resource types specified as filters in the request are not valid.
  3258  	//
  3259  	// The error includes a list of resource types that failed the validation because
  3260  	// they are not part of the query associated with the group. This validation
  3261  	// doesn't occur when the group query specifies AWS::AllSupported, because a
  3262  	// group based on such a query can contain any of the allowed resource types
  3263  	// for the query type (tag-based or AWS CloudFormation stack-based queries).
  3264  	Filters []*ResourceFilter `type:"list"`
  3265  
  3266  	// The name or the ARN of the resource group
  3267  	Group *string `min:"1" type:"string"`
  3268  
  3269  	//
  3270  	//  Deprecated - don't use this parameter. Use the Group request field instead.
  3271  	//
  3272  	// Deprecated: This field is deprecated, use Group instead.
  3273  	GroupName *string `min:"1" deprecated:"true" type:"string"`
  3274  
  3275  	// The total number of results that you want included on each page of the response.
  3276  	// If you do not include this parameter, it defaults to a value that is specific
  3277  	// to the operation. If additional items exist beyond the maximum you specify,
  3278  	// the NextToken response element is present and has a value (is not null).
  3279  	// Include that value as the NextToken request parameter in the next call to
  3280  	// the operation to get the next part of the results. Note that the service
  3281  	// might return fewer results than the maximum even when there are more results
  3282  	// available. You should check NextToken after every operation to ensure that
  3283  	// you receive all of the results.
  3284  	MaxResults *int64 `min:"1" type:"integer"`
  3285  
  3286  	// The parameter for receiving additional results if you receive a NextToken
  3287  	// response in a previous request. A NextToken response indicates that more
  3288  	// output is available. Set this parameter to the value provided by a previous
  3289  	// call's NextToken response to indicate where the output should continue from.
  3290  	NextToken *string `type:"string"`
  3291  }
  3292  
  3293  // String returns the string representation.
  3294  //
  3295  // API parameter values that are decorated as "sensitive" in the API will not
  3296  // be included in the string output. The member name will be present, but the
  3297  // value will be replaced with "sensitive".
  3298  func (s ListGroupResourcesInput) String() string {
  3299  	return awsutil.Prettify(s)
  3300  }
  3301  
  3302  // GoString returns the string representation.
  3303  //
  3304  // API parameter values that are decorated as "sensitive" in the API will not
  3305  // be included in the string output. The member name will be present, but the
  3306  // value will be replaced with "sensitive".
  3307  func (s ListGroupResourcesInput) GoString() string {
  3308  	return s.String()
  3309  }
  3310  
  3311  // Validate inspects the fields of the type to determine if they are valid.
  3312  func (s *ListGroupResourcesInput) Validate() error {
  3313  	invalidParams := request.ErrInvalidParams{Context: "ListGroupResourcesInput"}
  3314  	if s.Group != nil && len(*s.Group) < 1 {
  3315  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  3316  	}
  3317  	if s.GroupName != nil && len(*s.GroupName) < 1 {
  3318  		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  3319  	}
  3320  	if s.MaxResults != nil && *s.MaxResults < 1 {
  3321  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  3322  	}
  3323  	if s.Filters != nil {
  3324  		for i, v := range s.Filters {
  3325  			if v == nil {
  3326  				continue
  3327  			}
  3328  			if err := v.Validate(); err != nil {
  3329  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
  3330  			}
  3331  		}
  3332  	}
  3333  
  3334  	if invalidParams.Len() > 0 {
  3335  		return invalidParams
  3336  	}
  3337  	return nil
  3338  }
  3339  
  3340  // SetFilters sets the Filters field's value.
  3341  func (s *ListGroupResourcesInput) SetFilters(v []*ResourceFilter) *ListGroupResourcesInput {
  3342  	s.Filters = v
  3343  	return s
  3344  }
  3345  
  3346  // SetGroup sets the Group field's value.
  3347  func (s *ListGroupResourcesInput) SetGroup(v string) *ListGroupResourcesInput {
  3348  	s.Group = &v
  3349  	return s
  3350  }
  3351  
  3352  // SetGroupName sets the GroupName field's value.
  3353  func (s *ListGroupResourcesInput) SetGroupName(v string) *ListGroupResourcesInput {
  3354  	s.GroupName = &v
  3355  	return s
  3356  }
  3357  
  3358  // SetMaxResults sets the MaxResults field's value.
  3359  func (s *ListGroupResourcesInput) SetMaxResults(v int64) *ListGroupResourcesInput {
  3360  	s.MaxResults = &v
  3361  	return s
  3362  }
  3363  
  3364  // SetNextToken sets the NextToken field's value.
  3365  func (s *ListGroupResourcesInput) SetNextToken(v string) *ListGroupResourcesInput {
  3366  	s.NextToken = &v
  3367  	return s
  3368  }
  3369  
  3370  // A structure returned by the ListGroupResources operation that contains identity
  3371  // and group membership status information for one of the resources in the group.
  3372  type ListGroupResourcesItem struct {
  3373  	_ struct{} `type:"structure"`
  3374  
  3375  	// A structure that contains the ARN of a resource and its resource type.
  3376  	Identifier *ResourceIdentifier `type:"structure"`
  3377  
  3378  	// A structure that contains the status of this resource's membership in the
  3379  	// group.
  3380  	//
  3381  	// This field is present in the response only if the group is of type AWS::EC2::HostManagement.
  3382  	Status *ResourceStatus `type:"structure"`
  3383  }
  3384  
  3385  // String returns the string representation.
  3386  //
  3387  // API parameter values that are decorated as "sensitive" in the API will not
  3388  // be included in the string output. The member name will be present, but the
  3389  // value will be replaced with "sensitive".
  3390  func (s ListGroupResourcesItem) String() string {
  3391  	return awsutil.Prettify(s)
  3392  }
  3393  
  3394  // GoString returns the string representation.
  3395  //
  3396  // API parameter values that are decorated as "sensitive" in the API will not
  3397  // be included in the string output. The member name will be present, but the
  3398  // value will be replaced with "sensitive".
  3399  func (s ListGroupResourcesItem) GoString() string {
  3400  	return s.String()
  3401  }
  3402  
  3403  // SetIdentifier sets the Identifier field's value.
  3404  func (s *ListGroupResourcesItem) SetIdentifier(v *ResourceIdentifier) *ListGroupResourcesItem {
  3405  	s.Identifier = v
  3406  	return s
  3407  }
  3408  
  3409  // SetStatus sets the Status field's value.
  3410  func (s *ListGroupResourcesItem) SetStatus(v *ResourceStatus) *ListGroupResourcesItem {
  3411  	s.Status = v
  3412  	return s
  3413  }
  3414  
  3415  type ListGroupResourcesOutput struct {
  3416  	_ struct{} `type:"structure"`
  3417  
  3418  	// If present, indicates that more output is available than is included in the
  3419  	// current response. Use this value in the NextToken request parameter in a
  3420  	// subsequent call to the operation to get the next part of the output. You
  3421  	// should repeat this until the NextToken response element comes back as null.
  3422  	NextToken *string `type:"string"`
  3423  
  3424  	// A list of QueryError objects. Each error is an object that contains ErrorCode
  3425  	// and Message structures. Possible values for ErrorCode are CLOUDFORMATION_STACK_INACTIVE
  3426  	// and CLOUDFORMATION_STACK_NOT_EXISTING.
  3427  	QueryErrors []*QueryError `type:"list"`
  3428  
  3429  	//
  3430  	//  Deprecated - don't use this parameter. Use the Resources response field
  3431  	//  instead.
  3432  	//
  3433  	// Deprecated: This field is deprecated, use Resources instead.
  3434  	ResourceIdentifiers []*ResourceIdentifier `deprecated:"true" type:"list"`
  3435  
  3436  	// An array of resources from which you can determine each resource's identity,
  3437  	// type, and group membership status.
  3438  	Resources []*ListGroupResourcesItem `type:"list"`
  3439  }
  3440  
  3441  // String returns the string representation.
  3442  //
  3443  // API parameter values that are decorated as "sensitive" in the API will not
  3444  // be included in the string output. The member name will be present, but the
  3445  // value will be replaced with "sensitive".
  3446  func (s ListGroupResourcesOutput) String() string {
  3447  	return awsutil.Prettify(s)
  3448  }
  3449  
  3450  // GoString returns the string representation.
  3451  //
  3452  // API parameter values that are decorated as "sensitive" in the API will not
  3453  // be included in the string output. The member name will be present, but the
  3454  // value will be replaced with "sensitive".
  3455  func (s ListGroupResourcesOutput) GoString() string {
  3456  	return s.String()
  3457  }
  3458  
  3459  // SetNextToken sets the NextToken field's value.
  3460  func (s *ListGroupResourcesOutput) SetNextToken(v string) *ListGroupResourcesOutput {
  3461  	s.NextToken = &v
  3462  	return s
  3463  }
  3464  
  3465  // SetQueryErrors sets the QueryErrors field's value.
  3466  func (s *ListGroupResourcesOutput) SetQueryErrors(v []*QueryError) *ListGroupResourcesOutput {
  3467  	s.QueryErrors = v
  3468  	return s
  3469  }
  3470  
  3471  // SetResourceIdentifiers sets the ResourceIdentifiers field's value.
  3472  func (s *ListGroupResourcesOutput) SetResourceIdentifiers(v []*ResourceIdentifier) *ListGroupResourcesOutput {
  3473  	s.ResourceIdentifiers = v
  3474  	return s
  3475  }
  3476  
  3477  // SetResources sets the Resources field's value.
  3478  func (s *ListGroupResourcesOutput) SetResources(v []*ListGroupResourcesItem) *ListGroupResourcesOutput {
  3479  	s.Resources = v
  3480  	return s
  3481  }
  3482  
  3483  type ListGroupsInput struct {
  3484  	_ struct{} `type:"structure"`
  3485  
  3486  	// Filters, formatted as GroupFilter objects, that you want to apply to a ListGroups
  3487  	// operation.
  3488  	//
  3489  	//    * resource-type - Filter the results to include only those of the specified
  3490  	//    resource types. Specify up to five resource types in the format AWS::ServiceCode::ResourceType
  3491  	//    . For example, AWS::EC2::Instance, or AWS::S3::Bucket.
  3492  	//
  3493  	//    * configuration-type - Filter the results to include only those groups
  3494  	//    that have the specified configuration types attached. The current supported
  3495  	//    values are: AWS:EC2::CapacityReservationPool AWS:EC2::HostManagement
  3496  	Filters []*GroupFilter `type:"list"`
  3497  
  3498  	// The total number of results that you want included on each page of the response.
  3499  	// If you do not include this parameter, it defaults to a value that is specific
  3500  	// to the operation. If additional items exist beyond the maximum you specify,
  3501  	// the NextToken response element is present and has a value (is not null).
  3502  	// Include that value as the NextToken request parameter in the next call to
  3503  	// the operation to get the next part of the results. Note that the service
  3504  	// might return fewer results than the maximum even when there are more results
  3505  	// available. You should check NextToken after every operation to ensure that
  3506  	// you receive all of the results.
  3507  	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
  3508  
  3509  	// The parameter for receiving additional results if you receive a NextToken
  3510  	// response in a previous request. A NextToken response indicates that more
  3511  	// output is available. Set this parameter to the value provided by a previous
  3512  	// call's NextToken response to indicate where the output should continue from.
  3513  	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
  3514  }
  3515  
  3516  // String returns the string representation.
  3517  //
  3518  // API parameter values that are decorated as "sensitive" in the API will not
  3519  // be included in the string output. The member name will be present, but the
  3520  // value will be replaced with "sensitive".
  3521  func (s ListGroupsInput) String() string {
  3522  	return awsutil.Prettify(s)
  3523  }
  3524  
  3525  // GoString returns the string representation.
  3526  //
  3527  // API parameter values that are decorated as "sensitive" in the API will not
  3528  // be included in the string output. The member name will be present, but the
  3529  // value will be replaced with "sensitive".
  3530  func (s ListGroupsInput) GoString() string {
  3531  	return s.String()
  3532  }
  3533  
  3534  // Validate inspects the fields of the type to determine if they are valid.
  3535  func (s *ListGroupsInput) Validate() error {
  3536  	invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"}
  3537  	if s.MaxResults != nil && *s.MaxResults < 1 {
  3538  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  3539  	}
  3540  	if s.Filters != nil {
  3541  		for i, v := range s.Filters {
  3542  			if v == nil {
  3543  				continue
  3544  			}
  3545  			if err := v.Validate(); err != nil {
  3546  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
  3547  			}
  3548  		}
  3549  	}
  3550  
  3551  	if invalidParams.Len() > 0 {
  3552  		return invalidParams
  3553  	}
  3554  	return nil
  3555  }
  3556  
  3557  // SetFilters sets the Filters field's value.
  3558  func (s *ListGroupsInput) SetFilters(v []*GroupFilter) *ListGroupsInput {
  3559  	s.Filters = v
  3560  	return s
  3561  }
  3562  
  3563  // SetMaxResults sets the MaxResults field's value.
  3564  func (s *ListGroupsInput) SetMaxResults(v int64) *ListGroupsInput {
  3565  	s.MaxResults = &v
  3566  	return s
  3567  }
  3568  
  3569  // SetNextToken sets the NextToken field's value.
  3570  func (s *ListGroupsInput) SetNextToken(v string) *ListGroupsInput {
  3571  	s.NextToken = &v
  3572  	return s
  3573  }
  3574  
  3575  type ListGroupsOutput struct {
  3576  	_ struct{} `type:"structure"`
  3577  
  3578  	// A list of GroupIdentifier objects. Each identifier is an object that contains
  3579  	// both the Name and the GroupArn.
  3580  	GroupIdentifiers []*GroupIdentifier `type:"list"`
  3581  
  3582  	//
  3583  	//  Deprecated - don't use this field. Use the GroupIdentifiers response field
  3584  	//  instead.
  3585  	//
  3586  	// Deprecated: This field is deprecated, use GroupIdentifiers instead.
  3587  	Groups []*Group `deprecated:"true" type:"list"`
  3588  
  3589  	// If present, indicates that more output is available than is included in the
  3590  	// current response. Use this value in the NextToken request parameter in a
  3591  	// subsequent call to the operation to get the next part of the output. You
  3592  	// should repeat this until the NextToken response element comes back as null.
  3593  	NextToken *string `type:"string"`
  3594  }
  3595  
  3596  // String returns the string representation.
  3597  //
  3598  // API parameter values that are decorated as "sensitive" in the API will not
  3599  // be included in the string output. The member name will be present, but the
  3600  // value will be replaced with "sensitive".
  3601  func (s ListGroupsOutput) String() string {
  3602  	return awsutil.Prettify(s)
  3603  }
  3604  
  3605  // GoString returns the string representation.
  3606  //
  3607  // API parameter values that are decorated as "sensitive" in the API will not
  3608  // be included in the string output. The member name will be present, but the
  3609  // value will be replaced with "sensitive".
  3610  func (s ListGroupsOutput) GoString() string {
  3611  	return s.String()
  3612  }
  3613  
  3614  // SetGroupIdentifiers sets the GroupIdentifiers field's value.
  3615  func (s *ListGroupsOutput) SetGroupIdentifiers(v []*GroupIdentifier) *ListGroupsOutput {
  3616  	s.GroupIdentifiers = v
  3617  	return s
  3618  }
  3619  
  3620  // SetGroups sets the Groups field's value.
  3621  func (s *ListGroupsOutput) SetGroups(v []*Group) *ListGroupsOutput {
  3622  	s.Groups = v
  3623  	return s
  3624  }
  3625  
  3626  // SetNextToken sets the NextToken field's value.
  3627  func (s *ListGroupsOutput) SetNextToken(v string) *ListGroupsOutput {
  3628  	s.NextToken = &v
  3629  	return s
  3630  }
  3631  
  3632  // The request uses an HTTP method that isn't allowed for the specified resource.
  3633  type MethodNotAllowedException struct {
  3634  	_            struct{}                  `type:"structure"`
  3635  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3636  
  3637  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  3638  }
  3639  
  3640  // String returns the string representation.
  3641  //
  3642  // API parameter values that are decorated as "sensitive" in the API will not
  3643  // be included in the string output. The member name will be present, but the
  3644  // value will be replaced with "sensitive".
  3645  func (s MethodNotAllowedException) String() string {
  3646  	return awsutil.Prettify(s)
  3647  }
  3648  
  3649  // GoString returns the string representation.
  3650  //
  3651  // API parameter values that are decorated as "sensitive" in the API will not
  3652  // be included in the string output. The member name will be present, but the
  3653  // value will be replaced with "sensitive".
  3654  func (s MethodNotAllowedException) GoString() string {
  3655  	return s.String()
  3656  }
  3657  
  3658  func newErrorMethodNotAllowedException(v protocol.ResponseMetadata) error {
  3659  	return &MethodNotAllowedException{
  3660  		RespMetadata: v,
  3661  	}
  3662  }
  3663  
  3664  // Code returns the exception type name.
  3665  func (s *MethodNotAllowedException) Code() string {
  3666  	return "MethodNotAllowedException"
  3667  }
  3668  
  3669  // Message returns the exception's message.
  3670  func (s *MethodNotAllowedException) Message() string {
  3671  	if s.Message_ != nil {
  3672  		return *s.Message_
  3673  	}
  3674  	return ""
  3675  }
  3676  
  3677  // OrigErr always returns nil, satisfies awserr.Error interface.
  3678  func (s *MethodNotAllowedException) OrigErr() error {
  3679  	return nil
  3680  }
  3681  
  3682  func (s *MethodNotAllowedException) Error() string {
  3683  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3684  }
  3685  
  3686  // Status code returns the HTTP status code for the request's response error.
  3687  func (s *MethodNotAllowedException) StatusCode() int {
  3688  	return s.RespMetadata.StatusCode
  3689  }
  3690  
  3691  // RequestID returns the service's response RequestID for request.
  3692  func (s *MethodNotAllowedException) RequestID() string {
  3693  	return s.RespMetadata.RequestID
  3694  }
  3695  
  3696  // One or more of the specified resources don't exist.
  3697  type NotFoundException struct {
  3698  	_            struct{}                  `type:"structure"`
  3699  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3700  
  3701  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  3702  }
  3703  
  3704  // String returns the string representation.
  3705  //
  3706  // API parameter values that are decorated as "sensitive" in the API will not
  3707  // be included in the string output. The member name will be present, but the
  3708  // value will be replaced with "sensitive".
  3709  func (s NotFoundException) String() string {
  3710  	return awsutil.Prettify(s)
  3711  }
  3712  
  3713  // GoString returns the string representation.
  3714  //
  3715  // API parameter values that are decorated as "sensitive" in the API will not
  3716  // be included in the string output. The member name will be present, but the
  3717  // value will be replaced with "sensitive".
  3718  func (s NotFoundException) GoString() string {
  3719  	return s.String()
  3720  }
  3721  
  3722  func newErrorNotFoundException(v protocol.ResponseMetadata) error {
  3723  	return &NotFoundException{
  3724  		RespMetadata: v,
  3725  	}
  3726  }
  3727  
  3728  // Code returns the exception type name.
  3729  func (s *NotFoundException) Code() string {
  3730  	return "NotFoundException"
  3731  }
  3732  
  3733  // Message returns the exception's message.
  3734  func (s *NotFoundException) Message() string {
  3735  	if s.Message_ != nil {
  3736  		return *s.Message_
  3737  	}
  3738  	return ""
  3739  }
  3740  
  3741  // OrigErr always returns nil, satisfies awserr.Error interface.
  3742  func (s *NotFoundException) OrigErr() error {
  3743  	return nil
  3744  }
  3745  
  3746  func (s *NotFoundException) Error() string {
  3747  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  3748  }
  3749  
  3750  // Status code returns the HTTP status code for the request's response error.
  3751  func (s *NotFoundException) StatusCode() int {
  3752  	return s.RespMetadata.StatusCode
  3753  }
  3754  
  3755  // RequestID returns the service's response RequestID for request.
  3756  func (s *NotFoundException) RequestID() string {
  3757  	return s.RespMetadata.RequestID
  3758  }
  3759  
  3760  // A structure that identifies a resource that is currently pending addition
  3761  // to the group as a member. Adding a resource to a resource group happens asynchronously
  3762  // as a background task and this one isn't completed yet.
  3763  type PendingResource struct {
  3764  	_ struct{} `type:"structure"`
  3765  
  3766  	// The Amazon resource name (ARN) of the resource that's in a pending state.
  3767  	ResourceArn *string `type:"string"`
  3768  }
  3769  
  3770  // String returns the string representation.
  3771  //
  3772  // API parameter values that are decorated as "sensitive" in the API will not
  3773  // be included in the string output. The member name will be present, but the
  3774  // value will be replaced with "sensitive".
  3775  func (s PendingResource) String() string {
  3776  	return awsutil.Prettify(s)
  3777  }
  3778  
  3779  // GoString returns the string representation.
  3780  //
  3781  // API parameter values that are decorated as "sensitive" in the API will not
  3782  // be included in the string output. The member name will be present, but the
  3783  // value will be replaced with "sensitive".
  3784  func (s PendingResource) GoString() string {
  3785  	return s.String()
  3786  }
  3787  
  3788  // SetResourceArn sets the ResourceArn field's value.
  3789  func (s *PendingResource) SetResourceArn(v string) *PendingResource {
  3790  	s.ResourceArn = &v
  3791  	return s
  3792  }
  3793  
  3794  type PutGroupConfigurationInput struct {
  3795  	_ struct{} `type:"structure"`
  3796  
  3797  	// The new configuration to associate with the specified group. A configuration
  3798  	// associates the resource group with an AWS service and specifies how the service
  3799  	// can interact with the resources in the group. A configuration is an array
  3800  	// of GroupConfigurationItem elements.
  3801  	//
  3802  	// For information about the syntax of a service configuration, see Service
  3803  	// configurations for resource groups (https://docs.aws.amazon.com/ARG/latest/APIReference/about-slg.html).
  3804  	//
  3805  	// A resource group can contain either a Configuration or a ResourceQuery, but
  3806  	// not both.
  3807  	Configuration []*GroupConfigurationItem `type:"list"`
  3808  
  3809  	// The name or ARN of the resource group with the configuration that you want
  3810  	// to update.
  3811  	Group *string `min:"1" type:"string"`
  3812  }
  3813  
  3814  // String returns the string representation.
  3815  //
  3816  // API parameter values that are decorated as "sensitive" in the API will not
  3817  // be included in the string output. The member name will be present, but the
  3818  // value will be replaced with "sensitive".
  3819  func (s PutGroupConfigurationInput) String() string {
  3820  	return awsutil.Prettify(s)
  3821  }
  3822  
  3823  // GoString returns the string representation.
  3824  //
  3825  // API parameter values that are decorated as "sensitive" in the API will not
  3826  // be included in the string output. The member name will be present, but the
  3827  // value will be replaced with "sensitive".
  3828  func (s PutGroupConfigurationInput) GoString() string {
  3829  	return s.String()
  3830  }
  3831  
  3832  // Validate inspects the fields of the type to determine if they are valid.
  3833  func (s *PutGroupConfigurationInput) Validate() error {
  3834  	invalidParams := request.ErrInvalidParams{Context: "PutGroupConfigurationInput"}
  3835  	if s.Group != nil && len(*s.Group) < 1 {
  3836  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  3837  	}
  3838  	if s.Configuration != nil {
  3839  		for i, v := range s.Configuration {
  3840  			if v == nil {
  3841  				continue
  3842  			}
  3843  			if err := v.Validate(); err != nil {
  3844  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Configuration", i), err.(request.ErrInvalidParams))
  3845  			}
  3846  		}
  3847  	}
  3848  
  3849  	if invalidParams.Len() > 0 {
  3850  		return invalidParams
  3851  	}
  3852  	return nil
  3853  }
  3854  
  3855  // SetConfiguration sets the Configuration field's value.
  3856  func (s *PutGroupConfigurationInput) SetConfiguration(v []*GroupConfigurationItem) *PutGroupConfigurationInput {
  3857  	s.Configuration = v
  3858  	return s
  3859  }
  3860  
  3861  // SetGroup sets the Group field's value.
  3862  func (s *PutGroupConfigurationInput) SetGroup(v string) *PutGroupConfigurationInput {
  3863  	s.Group = &v
  3864  	return s
  3865  }
  3866  
  3867  type PutGroupConfigurationOutput struct {
  3868  	_ struct{} `type:"structure" nopayload:"true"`
  3869  }
  3870  
  3871  // String returns the string representation.
  3872  //
  3873  // API parameter values that are decorated as "sensitive" in the API will not
  3874  // be included in the string output. The member name will be present, but the
  3875  // value will be replaced with "sensitive".
  3876  func (s PutGroupConfigurationOutput) String() string {
  3877  	return awsutil.Prettify(s)
  3878  }
  3879  
  3880  // GoString returns the string representation.
  3881  //
  3882  // API parameter values that are decorated as "sensitive" in the API will not
  3883  // be included in the string output. The member name will be present, but the
  3884  // value will be replaced with "sensitive".
  3885  func (s PutGroupConfigurationOutput) GoString() string {
  3886  	return s.String()
  3887  }
  3888  
  3889  // A two-part error structure that can occur in ListGroupResources or SearchResources
  3890  // operations on CloudFormation stack-based queries. The error occurs if the
  3891  // CloudFormation stack on which the query is based either does not exist, or
  3892  // has a status that renders the stack inactive. A QueryError occurrence does
  3893  // not necessarily mean that AWS Resource Groups could not complete the operation,
  3894  // but the resulting group might have no member resources.
  3895  type QueryError struct {
  3896  	_ struct{} `type:"structure"`
  3897  
  3898  	// Possible values are CLOUDFORMATION_STACK_INACTIVE and CLOUDFORMATION_STACK_NOT_EXISTING.
  3899  	ErrorCode *string `type:"string" enum:"QueryErrorCode"`
  3900  
  3901  	// A message that explains the ErrorCode value. Messages might state that the
  3902  	// specified CloudFormation stack does not exist (or no longer exists). For
  3903  	// CLOUDFORMATION_STACK_INACTIVE, the message typically states that the CloudFormation
  3904  	// stack has a status that is not (or no longer) active, such as CREATE_FAILED.
  3905  	Message *string `type:"string"`
  3906  }
  3907  
  3908  // String returns the string representation.
  3909  //
  3910  // API parameter values that are decorated as "sensitive" in the API will not
  3911  // be included in the string output. The member name will be present, but the
  3912  // value will be replaced with "sensitive".
  3913  func (s QueryError) String() string {
  3914  	return awsutil.Prettify(s)
  3915  }
  3916  
  3917  // GoString returns the string representation.
  3918  //
  3919  // API parameter values that are decorated as "sensitive" in the API will not
  3920  // be included in the string output. The member name will be present, but the
  3921  // value will be replaced with "sensitive".
  3922  func (s QueryError) GoString() string {
  3923  	return s.String()
  3924  }
  3925  
  3926  // SetErrorCode sets the ErrorCode field's value.
  3927  func (s *QueryError) SetErrorCode(v string) *QueryError {
  3928  	s.ErrorCode = &v
  3929  	return s
  3930  }
  3931  
  3932  // SetMessage sets the Message field's value.
  3933  func (s *QueryError) SetMessage(v string) *QueryError {
  3934  	s.Message = &v
  3935  	return s
  3936  }
  3937  
  3938  // A filter name and value pair that is used to obtain more specific results
  3939  // from a list of resources.
  3940  type ResourceFilter struct {
  3941  	_ struct{} `type:"structure"`
  3942  
  3943  	// The name of the filter. Filter names are case-sensitive.
  3944  	//
  3945  	// Name is a required field
  3946  	Name *string `type:"string" required:"true" enum:"ResourceFilterName"`
  3947  
  3948  	// One or more filter values. Allowed filter values vary by resource filter
  3949  	// name, and are case-sensitive.
  3950  	//
  3951  	// Values is a required field
  3952  	Values []*string `min:"1" type:"list" required:"true"`
  3953  }
  3954  
  3955  // String returns the string representation.
  3956  //
  3957  // API parameter values that are decorated as "sensitive" in the API will not
  3958  // be included in the string output. The member name will be present, but the
  3959  // value will be replaced with "sensitive".
  3960  func (s ResourceFilter) String() string {
  3961  	return awsutil.Prettify(s)
  3962  }
  3963  
  3964  // GoString returns the string representation.
  3965  //
  3966  // API parameter values that are decorated as "sensitive" in the API will not
  3967  // be included in the string output. The member name will be present, but the
  3968  // value will be replaced with "sensitive".
  3969  func (s ResourceFilter) GoString() string {
  3970  	return s.String()
  3971  }
  3972  
  3973  // Validate inspects the fields of the type to determine if they are valid.
  3974  func (s *ResourceFilter) Validate() error {
  3975  	invalidParams := request.ErrInvalidParams{Context: "ResourceFilter"}
  3976  	if s.Name == nil {
  3977  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3978  	}
  3979  	if s.Values == nil {
  3980  		invalidParams.Add(request.NewErrParamRequired("Values"))
  3981  	}
  3982  	if s.Values != nil && len(s.Values) < 1 {
  3983  		invalidParams.Add(request.NewErrParamMinLen("Values", 1))
  3984  	}
  3985  
  3986  	if invalidParams.Len() > 0 {
  3987  		return invalidParams
  3988  	}
  3989  	return nil
  3990  }
  3991  
  3992  // SetName sets the Name field's value.
  3993  func (s *ResourceFilter) SetName(v string) *ResourceFilter {
  3994  	s.Name = &v
  3995  	return s
  3996  }
  3997  
  3998  // SetValues sets the Values field's value.
  3999  func (s *ResourceFilter) SetValues(v []*string) *ResourceFilter {
  4000  	s.Values = v
  4001  	return s
  4002  }
  4003  
  4004  // A structure that contains the ARN of a resource and its resource type.
  4005  type ResourceIdentifier struct {
  4006  	_ struct{} `type:"structure"`
  4007  
  4008  	// The ARN of a resource.
  4009  	ResourceArn *string `type:"string"`
  4010  
  4011  	// The resource type of a resource, such as AWS::EC2::Instance.
  4012  	ResourceType *string `type:"string"`
  4013  }
  4014  
  4015  // String returns the string representation.
  4016  //
  4017  // API parameter values that are decorated as "sensitive" in the API will not
  4018  // be included in the string output. The member name will be present, but the
  4019  // value will be replaced with "sensitive".
  4020  func (s ResourceIdentifier) String() string {
  4021  	return awsutil.Prettify(s)
  4022  }
  4023  
  4024  // GoString returns the string representation.
  4025  //
  4026  // API parameter values that are decorated as "sensitive" in the API will not
  4027  // be included in the string output. The member name will be present, but the
  4028  // value will be replaced with "sensitive".
  4029  func (s ResourceIdentifier) GoString() string {
  4030  	return s.String()
  4031  }
  4032  
  4033  // SetResourceArn sets the ResourceArn field's value.
  4034  func (s *ResourceIdentifier) SetResourceArn(v string) *ResourceIdentifier {
  4035  	s.ResourceArn = &v
  4036  	return s
  4037  }
  4038  
  4039  // SetResourceType sets the ResourceType field's value.
  4040  func (s *ResourceIdentifier) SetResourceType(v string) *ResourceIdentifier {
  4041  	s.ResourceType = &v
  4042  	return s
  4043  }
  4044  
  4045  // The query that is used to define a resource group or a search for resources.
  4046  // A query specifies both a query type and a query string as a JSON object.
  4047  // See the examples section for example JSON strings.
  4048  //
  4049  // The examples that follow are shown as standard JSON strings. If you include
  4050  // such a string as a parameter to the AWS CLI or an SDK API, you might need
  4051  // to 'escape' the string into a single line. For example, see the Quoting strings
  4052  // (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html)
  4053  // in the AWS CLI User Guide.
  4054  //
  4055  // Example 1
  4056  //
  4057  // The following generic example shows a resource query JSON string that includes
  4058  // only resources that meet the following criteria:
  4059  //
  4060  //    * The resource type must be either resource_type1 or resource_type2.
  4061  //
  4062  //    * The resource must have a tag Key1 with a value of either ValueA or ValueB.
  4063  //
  4064  //    * The resource must have a tag Key2 with a value of either ValueC or ValueD.
  4065  //
  4066  // { "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": [ "resource_type1",
  4067  // "resource_type2"], "TagFilters": [ { "Key": "Key1", "Values": ["ValueA","ValueB"]
  4068  // }, { "Key":"Key2", "Values":["ValueC","ValueD"] } ] } }
  4069  //
  4070  // This has the equivalent "shortcut" syntax of the following:
  4071  //
  4072  // { "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": [ "resource_type1",
  4073  // "resource_type2"], "TagFilters": [ { "Key1": ["ValueA","ValueB"] }, { "Key2":
  4074  // ["ValueC","ValueD"] } ] } }
  4075  //
  4076  // Example 2
  4077  //
  4078  // The following example shows a resource query JSON string that includes only
  4079  // Amazon EC2 instances that are tagged Stage with a value of Test.
  4080  //
  4081  // { "Type": "TAG_FILTERS_1_0", "Query": "{ "ResourceTypeFilters": "AWS::EC2::Instance",
  4082  // "TagFilters": { "Stage": "Test" } } }
  4083  //
  4084  // Example 3
  4085  //
  4086  // The following example shows a resource query JSON string that includes resource
  4087  // of any supported type as long as it is tagged Stage with a value of Prod.
  4088  //
  4089  // { "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": "AWS::AllSupported",
  4090  // "TagFilters": { "Stage": "Prod" } } }
  4091  //
  4092  // Example 4
  4093  //
  4094  // The following example shows a resource query JSON string that includes only
  4095  // Amazon EC2 instances and Amazon S3 buckets that are part of the specified
  4096  // AWS CloudFormation stack.
  4097  //
  4098  // { "Type": "CLOUDFORMATION_STACK_1_0", "Query": { "ResourceTypeFilters": [
  4099  // "AWS::EC2::Instance", "AWS::S3::Bucket" ], "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/AWStestuseraccount/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE"
  4100  // } }
  4101  type ResourceQuery struct {
  4102  	_ struct{} `type:"structure"`
  4103  
  4104  	// The query that defines a group or a search.
  4105  	//
  4106  	// Query is a required field
  4107  	Query *string `type:"string" required:"true"`
  4108  
  4109  	// The type of the query. You can use the following values:
  4110  	//
  4111  	//    * CLOUDFORMATION_STACK_1_0: Specifies that the Query contains an ARN for
  4112  	//    a CloudFormation stack.
  4113  	//
  4114  	//    * TAG_FILTERS_1_0: Specifies that the Query parameter contains a JSON
  4115  	//    string that represents a collection of simple tag filters for resource
  4116  	//    types and tags. The JSON string uses a syntax similar to the GetResources
  4117  	//    (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html)
  4118  	//    operation, but uses only the ResourceTypeFilters (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-ResourceTypeFilters)
  4119  	//    and TagFilters (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html#resourcegrouptagging-GetResources-request-TagFiltersTagFilters)
  4120  	//    fields. If you specify more than one tag key, only resources that match
  4121  	//    all tag keys, and at least one value of each specified tag key, are returned
  4122  	//    in your query. If you specify more than one value for a tag key, a resource
  4123  	//    matches the filter if it has a tag key value that matches any of the specified
  4124  	//    values. For example, consider the following sample query for resources
  4125  	//    that have two tags, Stage and Version, with two values each: [{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]
  4126  	//    The results of this query could include the following. An EC2 instance
  4127  	//    that has the following two tags: {"Stage":"Deploy"}, and {"Version":"2"}
  4128  	//    An S3 bucket that has the following two tags: {"Stage":"Test"}, and {"Version":"1"}
  4129  	//    The query would not include the following items in the results, however.
  4130  	//    An EC2 instance that has only the following tag: {"Stage":"Deploy"}. The
  4131  	//    instance does not have all of the tag keys specified in the filter, so
  4132  	//    it is excluded from the results. An RDS database that has the following
  4133  	//    two tags: {"Stage":"Archived"} and {"Version":"4"} The database has all
  4134  	//    of the tag keys, but none of those keys has an associated value that matches
  4135  	//    at least one of the specified values in the filter.
  4136  	//
  4137  	// Type is a required field
  4138  	Type *string `min:"1" type:"string" required:"true" enum:"QueryType"`
  4139  }
  4140  
  4141  // String returns the string representation.
  4142  //
  4143  // API parameter values that are decorated as "sensitive" in the API will not
  4144  // be included in the string output. The member name will be present, but the
  4145  // value will be replaced with "sensitive".
  4146  func (s ResourceQuery) String() string {
  4147  	return awsutil.Prettify(s)
  4148  }
  4149  
  4150  // GoString returns the string representation.
  4151  //
  4152  // API parameter values that are decorated as "sensitive" in the API will not
  4153  // be included in the string output. The member name will be present, but the
  4154  // value will be replaced with "sensitive".
  4155  func (s ResourceQuery) GoString() string {
  4156  	return s.String()
  4157  }
  4158  
  4159  // Validate inspects the fields of the type to determine if they are valid.
  4160  func (s *ResourceQuery) Validate() error {
  4161  	invalidParams := request.ErrInvalidParams{Context: "ResourceQuery"}
  4162  	if s.Query == nil {
  4163  		invalidParams.Add(request.NewErrParamRequired("Query"))
  4164  	}
  4165  	if s.Type == nil {
  4166  		invalidParams.Add(request.NewErrParamRequired("Type"))
  4167  	}
  4168  	if s.Type != nil && len(*s.Type) < 1 {
  4169  		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
  4170  	}
  4171  
  4172  	if invalidParams.Len() > 0 {
  4173  		return invalidParams
  4174  	}
  4175  	return nil
  4176  }
  4177  
  4178  // SetQuery sets the Query field's value.
  4179  func (s *ResourceQuery) SetQuery(v string) *ResourceQuery {
  4180  	s.Query = &v
  4181  	return s
  4182  }
  4183  
  4184  // SetType sets the Type field's value.
  4185  func (s *ResourceQuery) SetType(v string) *ResourceQuery {
  4186  	s.Type = &v
  4187  	return s
  4188  }
  4189  
  4190  // A structure that identifies the current group membership status for a resource.
  4191  // Adding a resource to a resource group is performed asynchronously as a background
  4192  // task. A PENDING status indicates, for this resource, that the process isn't
  4193  // completed yet.
  4194  type ResourceStatus struct {
  4195  	_ struct{} `type:"structure"`
  4196  
  4197  	// The current status.
  4198  	Name *string `type:"string" enum:"ResourceStatusValue"`
  4199  }
  4200  
  4201  // String returns the string representation.
  4202  //
  4203  // API parameter values that are decorated as "sensitive" in the API will not
  4204  // be included in the string output. The member name will be present, but the
  4205  // value will be replaced with "sensitive".
  4206  func (s ResourceStatus) String() string {
  4207  	return awsutil.Prettify(s)
  4208  }
  4209  
  4210  // GoString returns the string representation.
  4211  //
  4212  // API parameter values that are decorated as "sensitive" in the API will not
  4213  // be included in the string output. The member name will be present, but the
  4214  // value will be replaced with "sensitive".
  4215  func (s ResourceStatus) GoString() string {
  4216  	return s.String()
  4217  }
  4218  
  4219  // SetName sets the Name field's value.
  4220  func (s *ResourceStatus) SetName(v string) *ResourceStatus {
  4221  	s.Name = &v
  4222  	return s
  4223  }
  4224  
  4225  type SearchResourcesInput struct {
  4226  	_ struct{} `type:"structure"`
  4227  
  4228  	// The total number of results that you want included on each page of the response.
  4229  	// If you do not include this parameter, it defaults to a value that is specific
  4230  	// to the operation. If additional items exist beyond the maximum you specify,
  4231  	// the NextToken response element is present and has a value (is not null).
  4232  	// Include that value as the NextToken request parameter in the next call to
  4233  	// the operation to get the next part of the results. Note that the service
  4234  	// might return fewer results than the maximum even when there are more results
  4235  	// available. You should check NextToken after every operation to ensure that
  4236  	// you receive all of the results.
  4237  	MaxResults *int64 `min:"1" type:"integer"`
  4238  
  4239  	// The parameter for receiving additional results if you receive a NextToken
  4240  	// response in a previous request. A NextToken response indicates that more
  4241  	// output is available. Set this parameter to the value provided by a previous
  4242  	// call's NextToken response to indicate where the output should continue from.
  4243  	NextToken *string `type:"string"`
  4244  
  4245  	// The search query, using the same formats that are supported for resource
  4246  	// group definition. For more information, see CreateGroup.
  4247  	//
  4248  	// ResourceQuery is a required field
  4249  	ResourceQuery *ResourceQuery `type:"structure" required:"true"`
  4250  }
  4251  
  4252  // String returns the string representation.
  4253  //
  4254  // API parameter values that are decorated as "sensitive" in the API will not
  4255  // be included in the string output. The member name will be present, but the
  4256  // value will be replaced with "sensitive".
  4257  func (s SearchResourcesInput) String() string {
  4258  	return awsutil.Prettify(s)
  4259  }
  4260  
  4261  // GoString returns the string representation.
  4262  //
  4263  // API parameter values that are decorated as "sensitive" in the API will not
  4264  // be included in the string output. The member name will be present, but the
  4265  // value will be replaced with "sensitive".
  4266  func (s SearchResourcesInput) GoString() string {
  4267  	return s.String()
  4268  }
  4269  
  4270  // Validate inspects the fields of the type to determine if they are valid.
  4271  func (s *SearchResourcesInput) Validate() error {
  4272  	invalidParams := request.ErrInvalidParams{Context: "SearchResourcesInput"}
  4273  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4274  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4275  	}
  4276  	if s.ResourceQuery == nil {
  4277  		invalidParams.Add(request.NewErrParamRequired("ResourceQuery"))
  4278  	}
  4279  	if s.ResourceQuery != nil {
  4280  		if err := s.ResourceQuery.Validate(); err != nil {
  4281  			invalidParams.AddNested("ResourceQuery", err.(request.ErrInvalidParams))
  4282  		}
  4283  	}
  4284  
  4285  	if invalidParams.Len() > 0 {
  4286  		return invalidParams
  4287  	}
  4288  	return nil
  4289  }
  4290  
  4291  // SetMaxResults sets the MaxResults field's value.
  4292  func (s *SearchResourcesInput) SetMaxResults(v int64) *SearchResourcesInput {
  4293  	s.MaxResults = &v
  4294  	return s
  4295  }
  4296  
  4297  // SetNextToken sets the NextToken field's value.
  4298  func (s *SearchResourcesInput) SetNextToken(v string) *SearchResourcesInput {
  4299  	s.NextToken = &v
  4300  	return s
  4301  }
  4302  
  4303  // SetResourceQuery sets the ResourceQuery field's value.
  4304  func (s *SearchResourcesInput) SetResourceQuery(v *ResourceQuery) *SearchResourcesInput {
  4305  	s.ResourceQuery = v
  4306  	return s
  4307  }
  4308  
  4309  type SearchResourcesOutput struct {
  4310  	_ struct{} `type:"structure"`
  4311  
  4312  	// If present, indicates that more output is available than is included in the
  4313  	// current response. Use this value in the NextToken request parameter in a
  4314  	// subsequent call to the operation to get the next part of the output. You
  4315  	// should repeat this until the NextToken response element comes back as null.
  4316  	NextToken *string `type:"string"`
  4317  
  4318  	// A list of QueryError objects. Each error is an object that contains ErrorCode
  4319  	// and Message structures. Possible values for ErrorCode are CLOUDFORMATION_STACK_INACTIVE
  4320  	// and CLOUDFORMATION_STACK_NOT_EXISTING.
  4321  	QueryErrors []*QueryError `type:"list"`
  4322  
  4323  	// The ARNs and resource types of resources that are members of the group that
  4324  	// you specified.
  4325  	ResourceIdentifiers []*ResourceIdentifier `type:"list"`
  4326  }
  4327  
  4328  // String returns the string representation.
  4329  //
  4330  // API parameter values that are decorated as "sensitive" in the API will not
  4331  // be included in the string output. The member name will be present, but the
  4332  // value will be replaced with "sensitive".
  4333  func (s SearchResourcesOutput) String() string {
  4334  	return awsutil.Prettify(s)
  4335  }
  4336  
  4337  // GoString returns the string representation.
  4338  //
  4339  // API parameter values that are decorated as "sensitive" in the API will not
  4340  // be included in the string output. The member name will be present, but the
  4341  // value will be replaced with "sensitive".
  4342  func (s SearchResourcesOutput) GoString() string {
  4343  	return s.String()
  4344  }
  4345  
  4346  // SetNextToken sets the NextToken field's value.
  4347  func (s *SearchResourcesOutput) SetNextToken(v string) *SearchResourcesOutput {
  4348  	s.NextToken = &v
  4349  	return s
  4350  }
  4351  
  4352  // SetQueryErrors sets the QueryErrors field's value.
  4353  func (s *SearchResourcesOutput) SetQueryErrors(v []*QueryError) *SearchResourcesOutput {
  4354  	s.QueryErrors = v
  4355  	return s
  4356  }
  4357  
  4358  // SetResourceIdentifiers sets the ResourceIdentifiers field's value.
  4359  func (s *SearchResourcesOutput) SetResourceIdentifiers(v []*ResourceIdentifier) *SearchResourcesOutput {
  4360  	s.ResourceIdentifiers = v
  4361  	return s
  4362  }
  4363  
  4364  type TagInput struct {
  4365  	_ struct{} `type:"structure"`
  4366  
  4367  	// The ARN of the resource group to which to add tags.
  4368  	//
  4369  	// Arn is a required field
  4370  	Arn *string `location:"uri" locationName:"Arn" min:"12" type:"string" required:"true"`
  4371  
  4372  	// The tags to add to the specified resource group. A tag is a string-to-string
  4373  	// map of key-value pairs.
  4374  	//
  4375  	// Tags is a required field
  4376  	Tags map[string]*string `type:"map" required:"true"`
  4377  }
  4378  
  4379  // String returns the string representation.
  4380  //
  4381  // API parameter values that are decorated as "sensitive" in the API will not
  4382  // be included in the string output. The member name will be present, but the
  4383  // value will be replaced with "sensitive".
  4384  func (s TagInput) String() string {
  4385  	return awsutil.Prettify(s)
  4386  }
  4387  
  4388  // GoString returns the string representation.
  4389  //
  4390  // API parameter values that are decorated as "sensitive" in the API will not
  4391  // be included in the string output. The member name will be present, but the
  4392  // value will be replaced with "sensitive".
  4393  func (s TagInput) GoString() string {
  4394  	return s.String()
  4395  }
  4396  
  4397  // Validate inspects the fields of the type to determine if they are valid.
  4398  func (s *TagInput) Validate() error {
  4399  	invalidParams := request.ErrInvalidParams{Context: "TagInput"}
  4400  	if s.Arn == nil {
  4401  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  4402  	}
  4403  	if s.Arn != nil && len(*s.Arn) < 12 {
  4404  		invalidParams.Add(request.NewErrParamMinLen("Arn", 12))
  4405  	}
  4406  	if s.Tags == nil {
  4407  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  4408  	}
  4409  
  4410  	if invalidParams.Len() > 0 {
  4411  		return invalidParams
  4412  	}
  4413  	return nil
  4414  }
  4415  
  4416  // SetArn sets the Arn field's value.
  4417  func (s *TagInput) SetArn(v string) *TagInput {
  4418  	s.Arn = &v
  4419  	return s
  4420  }
  4421  
  4422  // SetTags sets the Tags field's value.
  4423  func (s *TagInput) SetTags(v map[string]*string) *TagInput {
  4424  	s.Tags = v
  4425  	return s
  4426  }
  4427  
  4428  type TagOutput struct {
  4429  	_ struct{} `type:"structure"`
  4430  
  4431  	// The ARN of the tagged resource.
  4432  	Arn *string `min:"12" type:"string"`
  4433  
  4434  	// The tags that have been added to the specified resource group.
  4435  	Tags map[string]*string `type:"map"`
  4436  }
  4437  
  4438  // String returns the string representation.
  4439  //
  4440  // API parameter values that are decorated as "sensitive" in the API will not
  4441  // be included in the string output. The member name will be present, but the
  4442  // value will be replaced with "sensitive".
  4443  func (s TagOutput) String() string {
  4444  	return awsutil.Prettify(s)
  4445  }
  4446  
  4447  // GoString returns the string representation.
  4448  //
  4449  // API parameter values that are decorated as "sensitive" in the API will not
  4450  // be included in the string output. The member name will be present, but the
  4451  // value will be replaced with "sensitive".
  4452  func (s TagOutput) GoString() string {
  4453  	return s.String()
  4454  }
  4455  
  4456  // SetArn sets the Arn field's value.
  4457  func (s *TagOutput) SetArn(v string) *TagOutput {
  4458  	s.Arn = &v
  4459  	return s
  4460  }
  4461  
  4462  // SetTags sets the Tags field's value.
  4463  func (s *TagOutput) SetTags(v map[string]*string) *TagOutput {
  4464  	s.Tags = v
  4465  	return s
  4466  }
  4467  
  4468  // You've exceeded throttling limits by making too many requests in a period
  4469  // of time.
  4470  type TooManyRequestsException struct {
  4471  	_            struct{}                  `type:"structure"`
  4472  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4473  
  4474  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  4475  }
  4476  
  4477  // String returns the string representation.
  4478  //
  4479  // API parameter values that are decorated as "sensitive" in the API will not
  4480  // be included in the string output. The member name will be present, but the
  4481  // value will be replaced with "sensitive".
  4482  func (s TooManyRequestsException) String() string {
  4483  	return awsutil.Prettify(s)
  4484  }
  4485  
  4486  // GoString returns the string representation.
  4487  //
  4488  // API parameter values that are decorated as "sensitive" in the API will not
  4489  // be included in the string output. The member name will be present, but the
  4490  // value will be replaced with "sensitive".
  4491  func (s TooManyRequestsException) GoString() string {
  4492  	return s.String()
  4493  }
  4494  
  4495  func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
  4496  	return &TooManyRequestsException{
  4497  		RespMetadata: v,
  4498  	}
  4499  }
  4500  
  4501  // Code returns the exception type name.
  4502  func (s *TooManyRequestsException) Code() string {
  4503  	return "TooManyRequestsException"
  4504  }
  4505  
  4506  // Message returns the exception's message.
  4507  func (s *TooManyRequestsException) Message() string {
  4508  	if s.Message_ != nil {
  4509  		return *s.Message_
  4510  	}
  4511  	return ""
  4512  }
  4513  
  4514  // OrigErr always returns nil, satisfies awserr.Error interface.
  4515  func (s *TooManyRequestsException) OrigErr() error {
  4516  	return nil
  4517  }
  4518  
  4519  func (s *TooManyRequestsException) Error() string {
  4520  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4521  }
  4522  
  4523  // Status code returns the HTTP status code for the request's response error.
  4524  func (s *TooManyRequestsException) StatusCode() int {
  4525  	return s.RespMetadata.StatusCode
  4526  }
  4527  
  4528  // RequestID returns the service's response RequestID for request.
  4529  func (s *TooManyRequestsException) RequestID() string {
  4530  	return s.RespMetadata.RequestID
  4531  }
  4532  
  4533  // The request was rejected because it doesn't have valid credentials for the
  4534  // target resource.
  4535  type UnauthorizedException struct {
  4536  	_            struct{}                  `type:"structure"`
  4537  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4538  
  4539  	Message_ *string `locationName:"Message" min:"1" type:"string"`
  4540  }
  4541  
  4542  // String returns the string representation.
  4543  //
  4544  // API parameter values that are decorated as "sensitive" in the API will not
  4545  // be included in the string output. The member name will be present, but the
  4546  // value will be replaced with "sensitive".
  4547  func (s UnauthorizedException) String() string {
  4548  	return awsutil.Prettify(s)
  4549  }
  4550  
  4551  // GoString returns the string representation.
  4552  //
  4553  // API parameter values that are decorated as "sensitive" in the API will not
  4554  // be included in the string output. The member name will be present, but the
  4555  // value will be replaced with "sensitive".
  4556  func (s UnauthorizedException) GoString() string {
  4557  	return s.String()
  4558  }
  4559  
  4560  func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
  4561  	return &UnauthorizedException{
  4562  		RespMetadata: v,
  4563  	}
  4564  }
  4565  
  4566  // Code returns the exception type name.
  4567  func (s *UnauthorizedException) Code() string {
  4568  	return "UnauthorizedException"
  4569  }
  4570  
  4571  // Message returns the exception's message.
  4572  func (s *UnauthorizedException) Message() string {
  4573  	if s.Message_ != nil {
  4574  		return *s.Message_
  4575  	}
  4576  	return ""
  4577  }
  4578  
  4579  // OrigErr always returns nil, satisfies awserr.Error interface.
  4580  func (s *UnauthorizedException) OrigErr() error {
  4581  	return nil
  4582  }
  4583  
  4584  func (s *UnauthorizedException) Error() string {
  4585  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4586  }
  4587  
  4588  // Status code returns the HTTP status code for the request's response error.
  4589  func (s *UnauthorizedException) StatusCode() int {
  4590  	return s.RespMetadata.StatusCode
  4591  }
  4592  
  4593  // RequestID returns the service's response RequestID for request.
  4594  func (s *UnauthorizedException) RequestID() string {
  4595  	return s.RespMetadata.RequestID
  4596  }
  4597  
  4598  type UngroupResourcesInput struct {
  4599  	_ struct{} `type:"structure"`
  4600  
  4601  	// The name or the ARN of the resource group from which to remove the resources.
  4602  	//
  4603  	// Group is a required field
  4604  	Group *string `min:"1" type:"string" required:"true"`
  4605  
  4606  	// The ARNs of the resources to be removed from the group.
  4607  	//
  4608  	// ResourceArns is a required field
  4609  	ResourceArns []*string `min:"1" type:"list" required:"true"`
  4610  }
  4611  
  4612  // String returns the string representation.
  4613  //
  4614  // API parameter values that are decorated as "sensitive" in the API will not
  4615  // be included in the string output. The member name will be present, but the
  4616  // value will be replaced with "sensitive".
  4617  func (s UngroupResourcesInput) String() string {
  4618  	return awsutil.Prettify(s)
  4619  }
  4620  
  4621  // GoString returns the string representation.
  4622  //
  4623  // API parameter values that are decorated as "sensitive" in the API will not
  4624  // be included in the string output. The member name will be present, but the
  4625  // value will be replaced with "sensitive".
  4626  func (s UngroupResourcesInput) GoString() string {
  4627  	return s.String()
  4628  }
  4629  
  4630  // Validate inspects the fields of the type to determine if they are valid.
  4631  func (s *UngroupResourcesInput) Validate() error {
  4632  	invalidParams := request.ErrInvalidParams{Context: "UngroupResourcesInput"}
  4633  	if s.Group == nil {
  4634  		invalidParams.Add(request.NewErrParamRequired("Group"))
  4635  	}
  4636  	if s.Group != nil && len(*s.Group) < 1 {
  4637  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  4638  	}
  4639  	if s.ResourceArns == nil {
  4640  		invalidParams.Add(request.NewErrParamRequired("ResourceArns"))
  4641  	}
  4642  	if s.ResourceArns != nil && len(s.ResourceArns) < 1 {
  4643  		invalidParams.Add(request.NewErrParamMinLen("ResourceArns", 1))
  4644  	}
  4645  
  4646  	if invalidParams.Len() > 0 {
  4647  		return invalidParams
  4648  	}
  4649  	return nil
  4650  }
  4651  
  4652  // SetGroup sets the Group field's value.
  4653  func (s *UngroupResourcesInput) SetGroup(v string) *UngroupResourcesInput {
  4654  	s.Group = &v
  4655  	return s
  4656  }
  4657  
  4658  // SetResourceArns sets the ResourceArns field's value.
  4659  func (s *UngroupResourcesInput) SetResourceArns(v []*string) *UngroupResourcesInput {
  4660  	s.ResourceArns = v
  4661  	return s
  4662  }
  4663  
  4664  type UngroupResourcesOutput struct {
  4665  	_ struct{} `type:"structure"`
  4666  
  4667  	// A list of any resources that failed to be removed from the group by this
  4668  	// operation.
  4669  	Failed []*FailedResource `type:"list"`
  4670  
  4671  	// A list of any resources that are still in the process of being removed from
  4672  	// the group by this operation. These pending removals continue asynchronously.
  4673  	// You can check the status of pending removals by using the ListGroupResources
  4674  	// operation. After the resource is successfully removed, it no longer appears
  4675  	// in the response.
  4676  	Pending []*PendingResource `type:"list"`
  4677  
  4678  	// A list of resources that were successfully removed from the group by this
  4679  	// operation.
  4680  	Succeeded []*string `min:"1" type:"list"`
  4681  }
  4682  
  4683  // String returns the string representation.
  4684  //
  4685  // API parameter values that are decorated as "sensitive" in the API will not
  4686  // be included in the string output. The member name will be present, but the
  4687  // value will be replaced with "sensitive".
  4688  func (s UngroupResourcesOutput) String() string {
  4689  	return awsutil.Prettify(s)
  4690  }
  4691  
  4692  // GoString returns the string representation.
  4693  //
  4694  // API parameter values that are decorated as "sensitive" in the API will not
  4695  // be included in the string output. The member name will be present, but the
  4696  // value will be replaced with "sensitive".
  4697  func (s UngroupResourcesOutput) GoString() string {
  4698  	return s.String()
  4699  }
  4700  
  4701  // SetFailed sets the Failed field's value.
  4702  func (s *UngroupResourcesOutput) SetFailed(v []*FailedResource) *UngroupResourcesOutput {
  4703  	s.Failed = v
  4704  	return s
  4705  }
  4706  
  4707  // SetPending sets the Pending field's value.
  4708  func (s *UngroupResourcesOutput) SetPending(v []*PendingResource) *UngroupResourcesOutput {
  4709  	s.Pending = v
  4710  	return s
  4711  }
  4712  
  4713  // SetSucceeded sets the Succeeded field's value.
  4714  func (s *UngroupResourcesOutput) SetSucceeded(v []*string) *UngroupResourcesOutput {
  4715  	s.Succeeded = v
  4716  	return s
  4717  }
  4718  
  4719  type UntagInput struct {
  4720  	_ struct{} `type:"structure"`
  4721  
  4722  	// The ARN of the resource group from which to remove tags. The command removed
  4723  	// both the specified keys and any values associated with those keys.
  4724  	//
  4725  	// Arn is a required field
  4726  	Arn *string `location:"uri" locationName:"Arn" min:"12" type:"string" required:"true"`
  4727  
  4728  	// The keys of the tags to be removed.
  4729  	//
  4730  	// Keys is a required field
  4731  	Keys []*string `type:"list" required:"true"`
  4732  }
  4733  
  4734  // String returns the string representation.
  4735  //
  4736  // API parameter values that are decorated as "sensitive" in the API will not
  4737  // be included in the string output. The member name will be present, but the
  4738  // value will be replaced with "sensitive".
  4739  func (s UntagInput) String() string {
  4740  	return awsutil.Prettify(s)
  4741  }
  4742  
  4743  // GoString returns the string representation.
  4744  //
  4745  // API parameter values that are decorated as "sensitive" in the API will not
  4746  // be included in the string output. The member name will be present, but the
  4747  // value will be replaced with "sensitive".
  4748  func (s UntagInput) GoString() string {
  4749  	return s.String()
  4750  }
  4751  
  4752  // Validate inspects the fields of the type to determine if they are valid.
  4753  func (s *UntagInput) Validate() error {
  4754  	invalidParams := request.ErrInvalidParams{Context: "UntagInput"}
  4755  	if s.Arn == nil {
  4756  		invalidParams.Add(request.NewErrParamRequired("Arn"))
  4757  	}
  4758  	if s.Arn != nil && len(*s.Arn) < 12 {
  4759  		invalidParams.Add(request.NewErrParamMinLen("Arn", 12))
  4760  	}
  4761  	if s.Keys == nil {
  4762  		invalidParams.Add(request.NewErrParamRequired("Keys"))
  4763  	}
  4764  
  4765  	if invalidParams.Len() > 0 {
  4766  		return invalidParams
  4767  	}
  4768  	return nil
  4769  }
  4770  
  4771  // SetArn sets the Arn field's value.
  4772  func (s *UntagInput) SetArn(v string) *UntagInput {
  4773  	s.Arn = &v
  4774  	return s
  4775  }
  4776  
  4777  // SetKeys sets the Keys field's value.
  4778  func (s *UntagInput) SetKeys(v []*string) *UntagInput {
  4779  	s.Keys = v
  4780  	return s
  4781  }
  4782  
  4783  type UntagOutput struct {
  4784  	_ struct{} `type:"structure"`
  4785  
  4786  	// The ARN of the resource group from which tags have been removed.
  4787  	Arn *string `min:"12" type:"string"`
  4788  
  4789  	// The keys of the tags that were removed.
  4790  	Keys []*string `type:"list"`
  4791  }
  4792  
  4793  // String returns the string representation.
  4794  //
  4795  // API parameter values that are decorated as "sensitive" in the API will not
  4796  // be included in the string output. The member name will be present, but the
  4797  // value will be replaced with "sensitive".
  4798  func (s UntagOutput) String() string {
  4799  	return awsutil.Prettify(s)
  4800  }
  4801  
  4802  // GoString returns the string representation.
  4803  //
  4804  // API parameter values that are decorated as "sensitive" in the API will not
  4805  // be included in the string output. The member name will be present, but the
  4806  // value will be replaced with "sensitive".
  4807  func (s UntagOutput) GoString() string {
  4808  	return s.String()
  4809  }
  4810  
  4811  // SetArn sets the Arn field's value.
  4812  func (s *UntagOutput) SetArn(v string) *UntagOutput {
  4813  	s.Arn = &v
  4814  	return s
  4815  }
  4816  
  4817  // SetKeys sets the Keys field's value.
  4818  func (s *UntagOutput) SetKeys(v []*string) *UntagOutput {
  4819  	s.Keys = v
  4820  	return s
  4821  }
  4822  
  4823  type UpdateGroupInput struct {
  4824  	_ struct{} `type:"structure"`
  4825  
  4826  	// The new description that you want to update the resource group with. Descriptions
  4827  	// can contain letters, numbers, hyphens, underscores, periods, and spaces.
  4828  	Description *string `type:"string"`
  4829  
  4830  	// The name or the ARN of the resource group to modify.
  4831  	Group *string `min:"1" type:"string"`
  4832  
  4833  	// Don't use this parameter. Use Group instead.
  4834  	//
  4835  	// Deprecated: This field is deprecated, use Group instead.
  4836  	GroupName *string `min:"1" deprecated:"true" type:"string"`
  4837  }
  4838  
  4839  // String returns the string representation.
  4840  //
  4841  // API parameter values that are decorated as "sensitive" in the API will not
  4842  // be included in the string output. The member name will be present, but the
  4843  // value will be replaced with "sensitive".
  4844  func (s UpdateGroupInput) String() string {
  4845  	return awsutil.Prettify(s)
  4846  }
  4847  
  4848  // GoString returns the string representation.
  4849  //
  4850  // API parameter values that are decorated as "sensitive" in the API will not
  4851  // be included in the string output. The member name will be present, but the
  4852  // value will be replaced with "sensitive".
  4853  func (s UpdateGroupInput) GoString() string {
  4854  	return s.String()
  4855  }
  4856  
  4857  // Validate inspects the fields of the type to determine if they are valid.
  4858  func (s *UpdateGroupInput) Validate() error {
  4859  	invalidParams := request.ErrInvalidParams{Context: "UpdateGroupInput"}
  4860  	if s.Group != nil && len(*s.Group) < 1 {
  4861  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  4862  	}
  4863  	if s.GroupName != nil && len(*s.GroupName) < 1 {
  4864  		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  4865  	}
  4866  
  4867  	if invalidParams.Len() > 0 {
  4868  		return invalidParams
  4869  	}
  4870  	return nil
  4871  }
  4872  
  4873  // SetDescription sets the Description field's value.
  4874  func (s *UpdateGroupInput) SetDescription(v string) *UpdateGroupInput {
  4875  	s.Description = &v
  4876  	return s
  4877  }
  4878  
  4879  // SetGroup sets the Group field's value.
  4880  func (s *UpdateGroupInput) SetGroup(v string) *UpdateGroupInput {
  4881  	s.Group = &v
  4882  	return s
  4883  }
  4884  
  4885  // SetGroupName sets the GroupName field's value.
  4886  func (s *UpdateGroupInput) SetGroupName(v string) *UpdateGroupInput {
  4887  	s.GroupName = &v
  4888  	return s
  4889  }
  4890  
  4891  type UpdateGroupOutput struct {
  4892  	_ struct{} `type:"structure"`
  4893  
  4894  	// The update description of the resource group.
  4895  	Group *Group `type:"structure"`
  4896  }
  4897  
  4898  // String returns the string representation.
  4899  //
  4900  // API parameter values that are decorated as "sensitive" in the API will not
  4901  // be included in the string output. The member name will be present, but the
  4902  // value will be replaced with "sensitive".
  4903  func (s UpdateGroupOutput) String() string {
  4904  	return awsutil.Prettify(s)
  4905  }
  4906  
  4907  // GoString returns the string representation.
  4908  //
  4909  // API parameter values that are decorated as "sensitive" in the API will not
  4910  // be included in the string output. The member name will be present, but the
  4911  // value will be replaced with "sensitive".
  4912  func (s UpdateGroupOutput) GoString() string {
  4913  	return s.String()
  4914  }
  4915  
  4916  // SetGroup sets the Group field's value.
  4917  func (s *UpdateGroupOutput) SetGroup(v *Group) *UpdateGroupOutput {
  4918  	s.Group = v
  4919  	return s
  4920  }
  4921  
  4922  type UpdateGroupQueryInput struct {
  4923  	_ struct{} `type:"structure"`
  4924  
  4925  	// The name or the ARN of the resource group to query.
  4926  	Group *string `min:"1" type:"string"`
  4927  
  4928  	// Don't use this parameter. Use Group instead.
  4929  	//
  4930  	// Deprecated: This field is deprecated, use Group instead.
  4931  	GroupName *string `min:"1" deprecated:"true" type:"string"`
  4932  
  4933  	// The resource query to determine which AWS resources are members of this resource
  4934  	// group.
  4935  	//
  4936  	// A resource group can contain either a Configuration or a ResourceQuery, but
  4937  	// not both.
  4938  	//
  4939  	// ResourceQuery is a required field
  4940  	ResourceQuery *ResourceQuery `type:"structure" required:"true"`
  4941  }
  4942  
  4943  // String returns the string representation.
  4944  //
  4945  // API parameter values that are decorated as "sensitive" in the API will not
  4946  // be included in the string output. The member name will be present, but the
  4947  // value will be replaced with "sensitive".
  4948  func (s UpdateGroupQueryInput) String() string {
  4949  	return awsutil.Prettify(s)
  4950  }
  4951  
  4952  // GoString returns the string representation.
  4953  //
  4954  // API parameter values that are decorated as "sensitive" in the API will not
  4955  // be included in the string output. The member name will be present, but the
  4956  // value will be replaced with "sensitive".
  4957  func (s UpdateGroupQueryInput) GoString() string {
  4958  	return s.String()
  4959  }
  4960  
  4961  // Validate inspects the fields of the type to determine if they are valid.
  4962  func (s *UpdateGroupQueryInput) Validate() error {
  4963  	invalidParams := request.ErrInvalidParams{Context: "UpdateGroupQueryInput"}
  4964  	if s.Group != nil && len(*s.Group) < 1 {
  4965  		invalidParams.Add(request.NewErrParamMinLen("Group", 1))
  4966  	}
  4967  	if s.GroupName != nil && len(*s.GroupName) < 1 {
  4968  		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
  4969  	}
  4970  	if s.ResourceQuery == nil {
  4971  		invalidParams.Add(request.NewErrParamRequired("ResourceQuery"))
  4972  	}
  4973  	if s.ResourceQuery != nil {
  4974  		if err := s.ResourceQuery.Validate(); err != nil {
  4975  			invalidParams.AddNested("ResourceQuery", err.(request.ErrInvalidParams))
  4976  		}
  4977  	}
  4978  
  4979  	if invalidParams.Len() > 0 {
  4980  		return invalidParams
  4981  	}
  4982  	return nil
  4983  }
  4984  
  4985  // SetGroup sets the Group field's value.
  4986  func (s *UpdateGroupQueryInput) SetGroup(v string) *UpdateGroupQueryInput {
  4987  	s.Group = &v
  4988  	return s
  4989  }
  4990  
  4991  // SetGroupName sets the GroupName field's value.
  4992  func (s *UpdateGroupQueryInput) SetGroupName(v string) *UpdateGroupQueryInput {
  4993  	s.GroupName = &v
  4994  	return s
  4995  }
  4996  
  4997  // SetResourceQuery sets the ResourceQuery field's value.
  4998  func (s *UpdateGroupQueryInput) SetResourceQuery(v *ResourceQuery) *UpdateGroupQueryInput {
  4999  	s.ResourceQuery = v
  5000  	return s
  5001  }
  5002  
  5003  type UpdateGroupQueryOutput struct {
  5004  	_ struct{} `type:"structure"`
  5005  
  5006  	// The updated resource query associated with the resource group after the update.
  5007  	GroupQuery *GroupQuery `type:"structure"`
  5008  }
  5009  
  5010  // String returns the string representation.
  5011  //
  5012  // API parameter values that are decorated as "sensitive" in the API will not
  5013  // be included in the string output. The member name will be present, but the
  5014  // value will be replaced with "sensitive".
  5015  func (s UpdateGroupQueryOutput) String() string {
  5016  	return awsutil.Prettify(s)
  5017  }
  5018  
  5019  // GoString returns the string representation.
  5020  //
  5021  // API parameter values that are decorated as "sensitive" in the API will not
  5022  // be included in the string output. The member name will be present, but the
  5023  // value will be replaced with "sensitive".
  5024  func (s UpdateGroupQueryOutput) GoString() string {
  5025  	return s.String()
  5026  }
  5027  
  5028  // SetGroupQuery sets the GroupQuery field's value.
  5029  func (s *UpdateGroupQueryOutput) SetGroupQuery(v *GroupQuery) *UpdateGroupQueryOutput {
  5030  	s.GroupQuery = v
  5031  	return s
  5032  }
  5033  
  5034  const (
  5035  	// GroupConfigurationStatusUpdating is a GroupConfigurationStatus enum value
  5036  	GroupConfigurationStatusUpdating = "UPDATING"
  5037  
  5038  	// GroupConfigurationStatusUpdateComplete is a GroupConfigurationStatus enum value
  5039  	GroupConfigurationStatusUpdateComplete = "UPDATE_COMPLETE"
  5040  
  5041  	// GroupConfigurationStatusUpdateFailed is a GroupConfigurationStatus enum value
  5042  	GroupConfigurationStatusUpdateFailed = "UPDATE_FAILED"
  5043  )
  5044  
  5045  // GroupConfigurationStatus_Values returns all elements of the GroupConfigurationStatus enum
  5046  func GroupConfigurationStatus_Values() []string {
  5047  	return []string{
  5048  		GroupConfigurationStatusUpdating,
  5049  		GroupConfigurationStatusUpdateComplete,
  5050  		GroupConfigurationStatusUpdateFailed,
  5051  	}
  5052  }
  5053  
  5054  const (
  5055  	// GroupFilterNameResourceType is a GroupFilterName enum value
  5056  	GroupFilterNameResourceType = "resource-type"
  5057  
  5058  	// GroupFilterNameConfigurationType is a GroupFilterName enum value
  5059  	GroupFilterNameConfigurationType = "configuration-type"
  5060  )
  5061  
  5062  // GroupFilterName_Values returns all elements of the GroupFilterName enum
  5063  func GroupFilterName_Values() []string {
  5064  	return []string{
  5065  		GroupFilterNameResourceType,
  5066  		GroupFilterNameConfigurationType,
  5067  	}
  5068  }
  5069  
  5070  const (
  5071  	// QueryErrorCodeCloudformationStackInactive is a QueryErrorCode enum value
  5072  	QueryErrorCodeCloudformationStackInactive = "CLOUDFORMATION_STACK_INACTIVE"
  5073  
  5074  	// QueryErrorCodeCloudformationStackNotExisting is a QueryErrorCode enum value
  5075  	QueryErrorCodeCloudformationStackNotExisting = "CLOUDFORMATION_STACK_NOT_EXISTING"
  5076  )
  5077  
  5078  // QueryErrorCode_Values returns all elements of the QueryErrorCode enum
  5079  func QueryErrorCode_Values() []string {
  5080  	return []string{
  5081  		QueryErrorCodeCloudformationStackInactive,
  5082  		QueryErrorCodeCloudformationStackNotExisting,
  5083  	}
  5084  }
  5085  
  5086  const (
  5087  	// QueryTypeTagFilters10 is a QueryType enum value
  5088  	QueryTypeTagFilters10 = "TAG_FILTERS_1_0"
  5089  
  5090  	// QueryTypeCloudformationStack10 is a QueryType enum value
  5091  	QueryTypeCloudformationStack10 = "CLOUDFORMATION_STACK_1_0"
  5092  )
  5093  
  5094  // QueryType_Values returns all elements of the QueryType enum
  5095  func QueryType_Values() []string {
  5096  	return []string{
  5097  		QueryTypeTagFilters10,
  5098  		QueryTypeCloudformationStack10,
  5099  	}
  5100  }
  5101  
  5102  const (
  5103  	// ResourceFilterNameResourceType is a ResourceFilterName enum value
  5104  	ResourceFilterNameResourceType = "resource-type"
  5105  )
  5106  
  5107  // ResourceFilterName_Values returns all elements of the ResourceFilterName enum
  5108  func ResourceFilterName_Values() []string {
  5109  	return []string{
  5110  		ResourceFilterNameResourceType,
  5111  	}
  5112  }
  5113  
  5114  const (
  5115  	// ResourceStatusValuePending is a ResourceStatusValue enum value
  5116  	ResourceStatusValuePending = "PENDING"
  5117  )
  5118  
  5119  // ResourceStatusValue_Values returns all elements of the ResourceStatusValue enum
  5120  func ResourceStatusValue_Values() []string {
  5121  	return []string{
  5122  		ResourceStatusValuePending,
  5123  	}
  5124  }