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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package budgets
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const opCreateBudget = "CreateBudget"
    17  
    18  // CreateBudgetRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateBudget operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See CreateBudget for more information on using the CreateBudget
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the CreateBudgetRequest method.
    34  //    req, resp := client.CreateBudgetRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  func (c *Budgets) CreateBudgetRequest(input *CreateBudgetInput) (req *request.Request, output *CreateBudgetOutput) {
    41  	op := &request.Operation{
    42  		Name:       opCreateBudget,
    43  		HTTPMethod: "POST",
    44  		HTTPPath:   "/",
    45  	}
    46  
    47  	if input == nil {
    48  		input = &CreateBudgetInput{}
    49  	}
    50  
    51  	output = &CreateBudgetOutput{}
    52  	req = c.newRequest(op, input, output)
    53  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
    54  	return
    55  }
    56  
    57  // CreateBudget API operation for AWS Budgets.
    58  //
    59  // Creates a budget and, if included, notifications and subscribers.
    60  //
    61  // Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax
    62  // at one time. Use the syntax that matches your case. The Request Syntax section
    63  // shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_CreateBudget.html#API_CreateBudget_Examples)
    64  // section.
    65  //
    66  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    67  // with awserr.Error's Code and Message methods to get detailed information about
    68  // the error.
    69  //
    70  // See the AWS API reference guide for AWS Budgets's
    71  // API operation CreateBudget for usage and error information.
    72  //
    73  // Returned Error Types:
    74  //   * InvalidParameterException
    75  //   An error on the client occurred. Typically, the cause is an invalid input
    76  //   value.
    77  //
    78  //   * InternalErrorException
    79  //   An error on the server occurred during the processing of your request. Try
    80  //   again later.
    81  //
    82  //   * CreationLimitExceededException
    83  //   You've exceeded the notification or subscriber limit.
    84  //
    85  //   * DuplicateRecordException
    86  //   The budget name already exists. Budget names must be unique within an account.
    87  //
    88  //   * AccessDeniedException
    89  //   You are not authorized to use this operation with the given parameters.
    90  //
    91  func (c *Budgets) CreateBudget(input *CreateBudgetInput) (*CreateBudgetOutput, error) {
    92  	req, out := c.CreateBudgetRequest(input)
    93  	return out, req.Send()
    94  }
    95  
    96  // CreateBudgetWithContext is the same as CreateBudget with the addition of
    97  // the ability to pass a context and additional request options.
    98  //
    99  // See CreateBudget for details on how to use this API operation.
   100  //
   101  // The context must be non-nil and will be used for request cancellation. If
   102  // the context is nil a panic will occur. In the future the SDK may create
   103  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   104  // for more information on using Contexts.
   105  func (c *Budgets) CreateBudgetWithContext(ctx aws.Context, input *CreateBudgetInput, opts ...request.Option) (*CreateBudgetOutput, error) {
   106  	req, out := c.CreateBudgetRequest(input)
   107  	req.SetContext(ctx)
   108  	req.ApplyOptions(opts...)
   109  	return out, req.Send()
   110  }
   111  
   112  const opCreateBudgetAction = "CreateBudgetAction"
   113  
   114  // CreateBudgetActionRequest generates a "aws/request.Request" representing the
   115  // client's request for the CreateBudgetAction operation. The "output" return
   116  // value will be populated with the request's response once the request completes
   117  // successfully.
   118  //
   119  // Use "Send" method on the returned Request to send the API call to the service.
   120  // the "output" return value is not valid until after Send returns without error.
   121  //
   122  // See CreateBudgetAction for more information on using the CreateBudgetAction
   123  // API call, and error handling.
   124  //
   125  // This method is useful when you want to inject custom logic or configuration
   126  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   127  //
   128  //
   129  //    // Example sending a request using the CreateBudgetActionRequest method.
   130  //    req, resp := client.CreateBudgetActionRequest(params)
   131  //
   132  //    err := req.Send()
   133  //    if err == nil { // resp is now filled
   134  //        fmt.Println(resp)
   135  //    }
   136  func (c *Budgets) CreateBudgetActionRequest(input *CreateBudgetActionInput) (req *request.Request, output *CreateBudgetActionOutput) {
   137  	op := &request.Operation{
   138  		Name:       opCreateBudgetAction,
   139  		HTTPMethod: "POST",
   140  		HTTPPath:   "/",
   141  	}
   142  
   143  	if input == nil {
   144  		input = &CreateBudgetActionInput{}
   145  	}
   146  
   147  	output = &CreateBudgetActionOutput{}
   148  	req = c.newRequest(op, input, output)
   149  	return
   150  }
   151  
   152  // CreateBudgetAction API operation for AWS Budgets.
   153  //
   154  // Creates a budget action.
   155  //
   156  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   157  // with awserr.Error's Code and Message methods to get detailed information about
   158  // the error.
   159  //
   160  // See the AWS API reference guide for AWS Budgets's
   161  // API operation CreateBudgetAction for usage and error information.
   162  //
   163  // Returned Error Types:
   164  //   * InvalidParameterException
   165  //   An error on the client occurred. Typically, the cause is an invalid input
   166  //   value.
   167  //
   168  //   * InternalErrorException
   169  //   An error on the server occurred during the processing of your request. Try
   170  //   again later.
   171  //
   172  //   * CreationLimitExceededException
   173  //   You've exceeded the notification or subscriber limit.
   174  //
   175  //   * DuplicateRecordException
   176  //   The budget name already exists. Budget names must be unique within an account.
   177  //
   178  //   * NotFoundException
   179  //   We can’t locate the resource that you specified.
   180  //
   181  //   * AccessDeniedException
   182  //   You are not authorized to use this operation with the given parameters.
   183  //
   184  func (c *Budgets) CreateBudgetAction(input *CreateBudgetActionInput) (*CreateBudgetActionOutput, error) {
   185  	req, out := c.CreateBudgetActionRequest(input)
   186  	return out, req.Send()
   187  }
   188  
   189  // CreateBudgetActionWithContext is the same as CreateBudgetAction with the addition of
   190  // the ability to pass a context and additional request options.
   191  //
   192  // See CreateBudgetAction for details on how to use this API operation.
   193  //
   194  // The context must be non-nil and will be used for request cancellation. If
   195  // the context is nil a panic will occur. In the future the SDK may create
   196  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   197  // for more information on using Contexts.
   198  func (c *Budgets) CreateBudgetActionWithContext(ctx aws.Context, input *CreateBudgetActionInput, opts ...request.Option) (*CreateBudgetActionOutput, error) {
   199  	req, out := c.CreateBudgetActionRequest(input)
   200  	req.SetContext(ctx)
   201  	req.ApplyOptions(opts...)
   202  	return out, req.Send()
   203  }
   204  
   205  const opCreateNotification = "CreateNotification"
   206  
   207  // CreateNotificationRequest generates a "aws/request.Request" representing the
   208  // client's request for the CreateNotification operation. The "output" return
   209  // value will be populated with the request's response once the request completes
   210  // successfully.
   211  //
   212  // Use "Send" method on the returned Request to send the API call to the service.
   213  // the "output" return value is not valid until after Send returns without error.
   214  //
   215  // See CreateNotification for more information on using the CreateNotification
   216  // API call, and error handling.
   217  //
   218  // This method is useful when you want to inject custom logic or configuration
   219  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   220  //
   221  //
   222  //    // Example sending a request using the CreateNotificationRequest method.
   223  //    req, resp := client.CreateNotificationRequest(params)
   224  //
   225  //    err := req.Send()
   226  //    if err == nil { // resp is now filled
   227  //        fmt.Println(resp)
   228  //    }
   229  func (c *Budgets) CreateNotificationRequest(input *CreateNotificationInput) (req *request.Request, output *CreateNotificationOutput) {
   230  	op := &request.Operation{
   231  		Name:       opCreateNotification,
   232  		HTTPMethod: "POST",
   233  		HTTPPath:   "/",
   234  	}
   235  
   236  	if input == nil {
   237  		input = &CreateNotificationInput{}
   238  	}
   239  
   240  	output = &CreateNotificationOutput{}
   241  	req = c.newRequest(op, input, output)
   242  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   243  	return
   244  }
   245  
   246  // CreateNotification API operation for AWS Budgets.
   247  //
   248  // Creates a notification. You must create the budget before you create the
   249  // associated notification.
   250  //
   251  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   252  // with awserr.Error's Code and Message methods to get detailed information about
   253  // the error.
   254  //
   255  // See the AWS API reference guide for AWS Budgets's
   256  // API operation CreateNotification for usage and error information.
   257  //
   258  // Returned Error Types:
   259  //   * InternalErrorException
   260  //   An error on the server occurred during the processing of your request. Try
   261  //   again later.
   262  //
   263  //   * InvalidParameterException
   264  //   An error on the client occurred. Typically, the cause is an invalid input
   265  //   value.
   266  //
   267  //   * NotFoundException
   268  //   We can’t locate the resource that you specified.
   269  //
   270  //   * CreationLimitExceededException
   271  //   You've exceeded the notification or subscriber limit.
   272  //
   273  //   * DuplicateRecordException
   274  //   The budget name already exists. Budget names must be unique within an account.
   275  //
   276  //   * AccessDeniedException
   277  //   You are not authorized to use this operation with the given parameters.
   278  //
   279  func (c *Budgets) CreateNotification(input *CreateNotificationInput) (*CreateNotificationOutput, error) {
   280  	req, out := c.CreateNotificationRequest(input)
   281  	return out, req.Send()
   282  }
   283  
   284  // CreateNotificationWithContext is the same as CreateNotification with the addition of
   285  // the ability to pass a context and additional request options.
   286  //
   287  // See CreateNotification for details on how to use this API operation.
   288  //
   289  // The context must be non-nil and will be used for request cancellation. If
   290  // the context is nil a panic will occur. In the future the SDK may create
   291  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   292  // for more information on using Contexts.
   293  func (c *Budgets) CreateNotificationWithContext(ctx aws.Context, input *CreateNotificationInput, opts ...request.Option) (*CreateNotificationOutput, error) {
   294  	req, out := c.CreateNotificationRequest(input)
   295  	req.SetContext(ctx)
   296  	req.ApplyOptions(opts...)
   297  	return out, req.Send()
   298  }
   299  
   300  const opCreateSubscriber = "CreateSubscriber"
   301  
   302  // CreateSubscriberRequest generates a "aws/request.Request" representing the
   303  // client's request for the CreateSubscriber operation. The "output" return
   304  // value will be populated with the request's response once the request completes
   305  // successfully.
   306  //
   307  // Use "Send" method on the returned Request to send the API call to the service.
   308  // the "output" return value is not valid until after Send returns without error.
   309  //
   310  // See CreateSubscriber for more information on using the CreateSubscriber
   311  // API call, and error handling.
   312  //
   313  // This method is useful when you want to inject custom logic or configuration
   314  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   315  //
   316  //
   317  //    // Example sending a request using the CreateSubscriberRequest method.
   318  //    req, resp := client.CreateSubscriberRequest(params)
   319  //
   320  //    err := req.Send()
   321  //    if err == nil { // resp is now filled
   322  //        fmt.Println(resp)
   323  //    }
   324  func (c *Budgets) CreateSubscriberRequest(input *CreateSubscriberInput) (req *request.Request, output *CreateSubscriberOutput) {
   325  	op := &request.Operation{
   326  		Name:       opCreateSubscriber,
   327  		HTTPMethod: "POST",
   328  		HTTPPath:   "/",
   329  	}
   330  
   331  	if input == nil {
   332  		input = &CreateSubscriberInput{}
   333  	}
   334  
   335  	output = &CreateSubscriberOutput{}
   336  	req = c.newRequest(op, input, output)
   337  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   338  	return
   339  }
   340  
   341  // CreateSubscriber API operation for AWS Budgets.
   342  //
   343  // Creates a subscriber. You must create the associated budget and notification
   344  // before you create the subscriber.
   345  //
   346  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   347  // with awserr.Error's Code and Message methods to get detailed information about
   348  // the error.
   349  //
   350  // See the AWS API reference guide for AWS Budgets's
   351  // API operation CreateSubscriber for usage and error information.
   352  //
   353  // Returned Error Types:
   354  //   * InternalErrorException
   355  //   An error on the server occurred during the processing of your request. Try
   356  //   again later.
   357  //
   358  //   * InvalidParameterException
   359  //   An error on the client occurred. Typically, the cause is an invalid input
   360  //   value.
   361  //
   362  //   * CreationLimitExceededException
   363  //   You've exceeded the notification or subscriber limit.
   364  //
   365  //   * DuplicateRecordException
   366  //   The budget name already exists. Budget names must be unique within an account.
   367  //
   368  //   * NotFoundException
   369  //   We can’t locate the resource that you specified.
   370  //
   371  //   * AccessDeniedException
   372  //   You are not authorized to use this operation with the given parameters.
   373  //
   374  func (c *Budgets) CreateSubscriber(input *CreateSubscriberInput) (*CreateSubscriberOutput, error) {
   375  	req, out := c.CreateSubscriberRequest(input)
   376  	return out, req.Send()
   377  }
   378  
   379  // CreateSubscriberWithContext is the same as CreateSubscriber with the addition of
   380  // the ability to pass a context and additional request options.
   381  //
   382  // See CreateSubscriber for details on how to use this API operation.
   383  //
   384  // The context must be non-nil and will be used for request cancellation. If
   385  // the context is nil a panic will occur. In the future the SDK may create
   386  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   387  // for more information on using Contexts.
   388  func (c *Budgets) CreateSubscriberWithContext(ctx aws.Context, input *CreateSubscriberInput, opts ...request.Option) (*CreateSubscriberOutput, error) {
   389  	req, out := c.CreateSubscriberRequest(input)
   390  	req.SetContext(ctx)
   391  	req.ApplyOptions(opts...)
   392  	return out, req.Send()
   393  }
   394  
   395  const opDeleteBudget = "DeleteBudget"
   396  
   397  // DeleteBudgetRequest generates a "aws/request.Request" representing the
   398  // client's request for the DeleteBudget operation. The "output" return
   399  // value will be populated with the request's response once the request completes
   400  // successfully.
   401  //
   402  // Use "Send" method on the returned Request to send the API call to the service.
   403  // the "output" return value is not valid until after Send returns without error.
   404  //
   405  // See DeleteBudget for more information on using the DeleteBudget
   406  // API call, and error handling.
   407  //
   408  // This method is useful when you want to inject custom logic or configuration
   409  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   410  //
   411  //
   412  //    // Example sending a request using the DeleteBudgetRequest method.
   413  //    req, resp := client.DeleteBudgetRequest(params)
   414  //
   415  //    err := req.Send()
   416  //    if err == nil { // resp is now filled
   417  //        fmt.Println(resp)
   418  //    }
   419  func (c *Budgets) DeleteBudgetRequest(input *DeleteBudgetInput) (req *request.Request, output *DeleteBudgetOutput) {
   420  	op := &request.Operation{
   421  		Name:       opDeleteBudget,
   422  		HTTPMethod: "POST",
   423  		HTTPPath:   "/",
   424  	}
   425  
   426  	if input == nil {
   427  		input = &DeleteBudgetInput{}
   428  	}
   429  
   430  	output = &DeleteBudgetOutput{}
   431  	req = c.newRequest(op, input, output)
   432  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   433  	return
   434  }
   435  
   436  // DeleteBudget API operation for AWS Budgets.
   437  //
   438  // Deletes a budget. You can delete your budget at any time.
   439  //
   440  // Deleting a budget also deletes the notifications and subscribers that are
   441  // associated with that budget.
   442  //
   443  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   444  // with awserr.Error's Code and Message methods to get detailed information about
   445  // the error.
   446  //
   447  // See the AWS API reference guide for AWS Budgets's
   448  // API operation DeleteBudget for usage and error information.
   449  //
   450  // Returned Error Types:
   451  //   * InternalErrorException
   452  //   An error on the server occurred during the processing of your request. Try
   453  //   again later.
   454  //
   455  //   * InvalidParameterException
   456  //   An error on the client occurred. Typically, the cause is an invalid input
   457  //   value.
   458  //
   459  //   * NotFoundException
   460  //   We can’t locate the resource that you specified.
   461  //
   462  //   * AccessDeniedException
   463  //   You are not authorized to use this operation with the given parameters.
   464  //
   465  func (c *Budgets) DeleteBudget(input *DeleteBudgetInput) (*DeleteBudgetOutput, error) {
   466  	req, out := c.DeleteBudgetRequest(input)
   467  	return out, req.Send()
   468  }
   469  
   470  // DeleteBudgetWithContext is the same as DeleteBudget with the addition of
   471  // the ability to pass a context and additional request options.
   472  //
   473  // See DeleteBudget for details on how to use this API operation.
   474  //
   475  // The context must be non-nil and will be used for request cancellation. If
   476  // the context is nil a panic will occur. In the future the SDK may create
   477  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   478  // for more information on using Contexts.
   479  func (c *Budgets) DeleteBudgetWithContext(ctx aws.Context, input *DeleteBudgetInput, opts ...request.Option) (*DeleteBudgetOutput, error) {
   480  	req, out := c.DeleteBudgetRequest(input)
   481  	req.SetContext(ctx)
   482  	req.ApplyOptions(opts...)
   483  	return out, req.Send()
   484  }
   485  
   486  const opDeleteBudgetAction = "DeleteBudgetAction"
   487  
   488  // DeleteBudgetActionRequest generates a "aws/request.Request" representing the
   489  // client's request for the DeleteBudgetAction operation. The "output" return
   490  // value will be populated with the request's response once the request completes
   491  // successfully.
   492  //
   493  // Use "Send" method on the returned Request to send the API call to the service.
   494  // the "output" return value is not valid until after Send returns without error.
   495  //
   496  // See DeleteBudgetAction for more information on using the DeleteBudgetAction
   497  // API call, and error handling.
   498  //
   499  // This method is useful when you want to inject custom logic or configuration
   500  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   501  //
   502  //
   503  //    // Example sending a request using the DeleteBudgetActionRequest method.
   504  //    req, resp := client.DeleteBudgetActionRequest(params)
   505  //
   506  //    err := req.Send()
   507  //    if err == nil { // resp is now filled
   508  //        fmt.Println(resp)
   509  //    }
   510  func (c *Budgets) DeleteBudgetActionRequest(input *DeleteBudgetActionInput) (req *request.Request, output *DeleteBudgetActionOutput) {
   511  	op := &request.Operation{
   512  		Name:       opDeleteBudgetAction,
   513  		HTTPMethod: "POST",
   514  		HTTPPath:   "/",
   515  	}
   516  
   517  	if input == nil {
   518  		input = &DeleteBudgetActionInput{}
   519  	}
   520  
   521  	output = &DeleteBudgetActionOutput{}
   522  	req = c.newRequest(op, input, output)
   523  	return
   524  }
   525  
   526  // DeleteBudgetAction API operation for AWS Budgets.
   527  //
   528  // Deletes a budget action.
   529  //
   530  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   531  // with awserr.Error's Code and Message methods to get detailed information about
   532  // the error.
   533  //
   534  // See the AWS API reference guide for AWS Budgets's
   535  // API operation DeleteBudgetAction for usage and error information.
   536  //
   537  // Returned Error Types:
   538  //   * InternalErrorException
   539  //   An error on the server occurred during the processing of your request. Try
   540  //   again later.
   541  //
   542  //   * InvalidParameterException
   543  //   An error on the client occurred. Typically, the cause is an invalid input
   544  //   value.
   545  //
   546  //   * NotFoundException
   547  //   We can’t locate the resource that you specified.
   548  //
   549  //   * AccessDeniedException
   550  //   You are not authorized to use this operation with the given parameters.
   551  //
   552  //   * ResourceLockedException
   553  //   The request was received and recognized by the server, but the server rejected
   554  //   that particular method for the requested resource.
   555  //
   556  func (c *Budgets) DeleteBudgetAction(input *DeleteBudgetActionInput) (*DeleteBudgetActionOutput, error) {
   557  	req, out := c.DeleteBudgetActionRequest(input)
   558  	return out, req.Send()
   559  }
   560  
   561  // DeleteBudgetActionWithContext is the same as DeleteBudgetAction with the addition of
   562  // the ability to pass a context and additional request options.
   563  //
   564  // See DeleteBudgetAction for details on how to use this API operation.
   565  //
   566  // The context must be non-nil and will be used for request cancellation. If
   567  // the context is nil a panic will occur. In the future the SDK may create
   568  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   569  // for more information on using Contexts.
   570  func (c *Budgets) DeleteBudgetActionWithContext(ctx aws.Context, input *DeleteBudgetActionInput, opts ...request.Option) (*DeleteBudgetActionOutput, error) {
   571  	req, out := c.DeleteBudgetActionRequest(input)
   572  	req.SetContext(ctx)
   573  	req.ApplyOptions(opts...)
   574  	return out, req.Send()
   575  }
   576  
   577  const opDeleteNotification = "DeleteNotification"
   578  
   579  // DeleteNotificationRequest generates a "aws/request.Request" representing the
   580  // client's request for the DeleteNotification operation. The "output" return
   581  // value will be populated with the request's response once the request completes
   582  // successfully.
   583  //
   584  // Use "Send" method on the returned Request to send the API call to the service.
   585  // the "output" return value is not valid until after Send returns without error.
   586  //
   587  // See DeleteNotification for more information on using the DeleteNotification
   588  // API call, and error handling.
   589  //
   590  // This method is useful when you want to inject custom logic or configuration
   591  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   592  //
   593  //
   594  //    // Example sending a request using the DeleteNotificationRequest method.
   595  //    req, resp := client.DeleteNotificationRequest(params)
   596  //
   597  //    err := req.Send()
   598  //    if err == nil { // resp is now filled
   599  //        fmt.Println(resp)
   600  //    }
   601  func (c *Budgets) DeleteNotificationRequest(input *DeleteNotificationInput) (req *request.Request, output *DeleteNotificationOutput) {
   602  	op := &request.Operation{
   603  		Name:       opDeleteNotification,
   604  		HTTPMethod: "POST",
   605  		HTTPPath:   "/",
   606  	}
   607  
   608  	if input == nil {
   609  		input = &DeleteNotificationInput{}
   610  	}
   611  
   612  	output = &DeleteNotificationOutput{}
   613  	req = c.newRequest(op, input, output)
   614  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   615  	return
   616  }
   617  
   618  // DeleteNotification API operation for AWS Budgets.
   619  //
   620  // Deletes a notification.
   621  //
   622  // Deleting a notification also deletes the subscribers that are associated
   623  // with the notification.
   624  //
   625  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   626  // with awserr.Error's Code and Message methods to get detailed information about
   627  // the error.
   628  //
   629  // See the AWS API reference guide for AWS Budgets's
   630  // API operation DeleteNotification for usage and error information.
   631  //
   632  // Returned Error Types:
   633  //   * InvalidParameterException
   634  //   An error on the client occurred. Typically, the cause is an invalid input
   635  //   value.
   636  //
   637  //   * InternalErrorException
   638  //   An error on the server occurred during the processing of your request. Try
   639  //   again later.
   640  //
   641  //   * NotFoundException
   642  //   We can’t locate the resource that you specified.
   643  //
   644  //   * AccessDeniedException
   645  //   You are not authorized to use this operation with the given parameters.
   646  //
   647  func (c *Budgets) DeleteNotification(input *DeleteNotificationInput) (*DeleteNotificationOutput, error) {
   648  	req, out := c.DeleteNotificationRequest(input)
   649  	return out, req.Send()
   650  }
   651  
   652  // DeleteNotificationWithContext is the same as DeleteNotification with the addition of
   653  // the ability to pass a context and additional request options.
   654  //
   655  // See DeleteNotification for details on how to use this API operation.
   656  //
   657  // The context must be non-nil and will be used for request cancellation. If
   658  // the context is nil a panic will occur. In the future the SDK may create
   659  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   660  // for more information on using Contexts.
   661  func (c *Budgets) DeleteNotificationWithContext(ctx aws.Context, input *DeleteNotificationInput, opts ...request.Option) (*DeleteNotificationOutput, error) {
   662  	req, out := c.DeleteNotificationRequest(input)
   663  	req.SetContext(ctx)
   664  	req.ApplyOptions(opts...)
   665  	return out, req.Send()
   666  }
   667  
   668  const opDeleteSubscriber = "DeleteSubscriber"
   669  
   670  // DeleteSubscriberRequest generates a "aws/request.Request" representing the
   671  // client's request for the DeleteSubscriber operation. The "output" return
   672  // value will be populated with the request's response once the request completes
   673  // successfully.
   674  //
   675  // Use "Send" method on the returned Request to send the API call to the service.
   676  // the "output" return value is not valid until after Send returns without error.
   677  //
   678  // See DeleteSubscriber for more information on using the DeleteSubscriber
   679  // API call, and error handling.
   680  //
   681  // This method is useful when you want to inject custom logic or configuration
   682  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   683  //
   684  //
   685  //    // Example sending a request using the DeleteSubscriberRequest method.
   686  //    req, resp := client.DeleteSubscriberRequest(params)
   687  //
   688  //    err := req.Send()
   689  //    if err == nil { // resp is now filled
   690  //        fmt.Println(resp)
   691  //    }
   692  func (c *Budgets) DeleteSubscriberRequest(input *DeleteSubscriberInput) (req *request.Request, output *DeleteSubscriberOutput) {
   693  	op := &request.Operation{
   694  		Name:       opDeleteSubscriber,
   695  		HTTPMethod: "POST",
   696  		HTTPPath:   "/",
   697  	}
   698  
   699  	if input == nil {
   700  		input = &DeleteSubscriberInput{}
   701  	}
   702  
   703  	output = &DeleteSubscriberOutput{}
   704  	req = c.newRequest(op, input, output)
   705  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   706  	return
   707  }
   708  
   709  // DeleteSubscriber API operation for AWS Budgets.
   710  //
   711  // Deletes a subscriber.
   712  //
   713  // Deleting the last subscriber to a notification also deletes the notification.
   714  //
   715  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   716  // with awserr.Error's Code and Message methods to get detailed information about
   717  // the error.
   718  //
   719  // See the AWS API reference guide for AWS Budgets's
   720  // API operation DeleteSubscriber for usage and error information.
   721  //
   722  // Returned Error Types:
   723  //   * InternalErrorException
   724  //   An error on the server occurred during the processing of your request. Try
   725  //   again later.
   726  //
   727  //   * InvalidParameterException
   728  //   An error on the client occurred. Typically, the cause is an invalid input
   729  //   value.
   730  //
   731  //   * NotFoundException
   732  //   We can’t locate the resource that you specified.
   733  //
   734  //   * AccessDeniedException
   735  //   You are not authorized to use this operation with the given parameters.
   736  //
   737  func (c *Budgets) DeleteSubscriber(input *DeleteSubscriberInput) (*DeleteSubscriberOutput, error) {
   738  	req, out := c.DeleteSubscriberRequest(input)
   739  	return out, req.Send()
   740  }
   741  
   742  // DeleteSubscriberWithContext is the same as DeleteSubscriber with the addition of
   743  // the ability to pass a context and additional request options.
   744  //
   745  // See DeleteSubscriber for details on how to use this API operation.
   746  //
   747  // The context must be non-nil and will be used for request cancellation. If
   748  // the context is nil a panic will occur. In the future the SDK may create
   749  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   750  // for more information on using Contexts.
   751  func (c *Budgets) DeleteSubscriberWithContext(ctx aws.Context, input *DeleteSubscriberInput, opts ...request.Option) (*DeleteSubscriberOutput, error) {
   752  	req, out := c.DeleteSubscriberRequest(input)
   753  	req.SetContext(ctx)
   754  	req.ApplyOptions(opts...)
   755  	return out, req.Send()
   756  }
   757  
   758  const opDescribeBudget = "DescribeBudget"
   759  
   760  // DescribeBudgetRequest generates a "aws/request.Request" representing the
   761  // client's request for the DescribeBudget operation. The "output" return
   762  // value will be populated with the request's response once the request completes
   763  // successfully.
   764  //
   765  // Use "Send" method on the returned Request to send the API call to the service.
   766  // the "output" return value is not valid until after Send returns without error.
   767  //
   768  // See DescribeBudget for more information on using the DescribeBudget
   769  // API call, and error handling.
   770  //
   771  // This method is useful when you want to inject custom logic or configuration
   772  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   773  //
   774  //
   775  //    // Example sending a request using the DescribeBudgetRequest method.
   776  //    req, resp := client.DescribeBudgetRequest(params)
   777  //
   778  //    err := req.Send()
   779  //    if err == nil { // resp is now filled
   780  //        fmt.Println(resp)
   781  //    }
   782  func (c *Budgets) DescribeBudgetRequest(input *DescribeBudgetInput) (req *request.Request, output *DescribeBudgetOutput) {
   783  	op := &request.Operation{
   784  		Name:       opDescribeBudget,
   785  		HTTPMethod: "POST",
   786  		HTTPPath:   "/",
   787  	}
   788  
   789  	if input == nil {
   790  		input = &DescribeBudgetInput{}
   791  	}
   792  
   793  	output = &DescribeBudgetOutput{}
   794  	req = c.newRequest(op, input, output)
   795  	return
   796  }
   797  
   798  // DescribeBudget API operation for AWS Budgets.
   799  //
   800  // Describes a budget.
   801  //
   802  // The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits,
   803  // see the Examples (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudget.html#API_DescribeBudget_Examples)
   804  // section.
   805  //
   806  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   807  // with awserr.Error's Code and Message methods to get detailed information about
   808  // the error.
   809  //
   810  // See the AWS API reference guide for AWS Budgets's
   811  // API operation DescribeBudget for usage and error information.
   812  //
   813  // Returned Error Types:
   814  //   * InternalErrorException
   815  //   An error on the server occurred during the processing of your request. Try
   816  //   again later.
   817  //
   818  //   * InvalidParameterException
   819  //   An error on the client occurred. Typically, the cause is an invalid input
   820  //   value.
   821  //
   822  //   * NotFoundException
   823  //   We can’t locate the resource that you specified.
   824  //
   825  //   * AccessDeniedException
   826  //   You are not authorized to use this operation with the given parameters.
   827  //
   828  func (c *Budgets) DescribeBudget(input *DescribeBudgetInput) (*DescribeBudgetOutput, error) {
   829  	req, out := c.DescribeBudgetRequest(input)
   830  	return out, req.Send()
   831  }
   832  
   833  // DescribeBudgetWithContext is the same as DescribeBudget with the addition of
   834  // the ability to pass a context and additional request options.
   835  //
   836  // See DescribeBudget 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 *Budgets) DescribeBudgetWithContext(ctx aws.Context, input *DescribeBudgetInput, opts ...request.Option) (*DescribeBudgetOutput, error) {
   843  	req, out := c.DescribeBudgetRequest(input)
   844  	req.SetContext(ctx)
   845  	req.ApplyOptions(opts...)
   846  	return out, req.Send()
   847  }
   848  
   849  const opDescribeBudgetAction = "DescribeBudgetAction"
   850  
   851  // DescribeBudgetActionRequest generates a "aws/request.Request" representing the
   852  // client's request for the DescribeBudgetAction operation. The "output" return
   853  // value will be populated with the request's response once the request completes
   854  // successfully.
   855  //
   856  // Use "Send" method on the returned Request to send the API call to the service.
   857  // the "output" return value is not valid until after Send returns without error.
   858  //
   859  // See DescribeBudgetAction for more information on using the DescribeBudgetAction
   860  // API call, and error handling.
   861  //
   862  // This method is useful when you want to inject custom logic or configuration
   863  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   864  //
   865  //
   866  //    // Example sending a request using the DescribeBudgetActionRequest method.
   867  //    req, resp := client.DescribeBudgetActionRequest(params)
   868  //
   869  //    err := req.Send()
   870  //    if err == nil { // resp is now filled
   871  //        fmt.Println(resp)
   872  //    }
   873  func (c *Budgets) DescribeBudgetActionRequest(input *DescribeBudgetActionInput) (req *request.Request, output *DescribeBudgetActionOutput) {
   874  	op := &request.Operation{
   875  		Name:       opDescribeBudgetAction,
   876  		HTTPMethod: "POST",
   877  		HTTPPath:   "/",
   878  	}
   879  
   880  	if input == nil {
   881  		input = &DescribeBudgetActionInput{}
   882  	}
   883  
   884  	output = &DescribeBudgetActionOutput{}
   885  	req = c.newRequest(op, input, output)
   886  	return
   887  }
   888  
   889  // DescribeBudgetAction API operation for AWS Budgets.
   890  //
   891  // Describes a budget action detail.
   892  //
   893  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   894  // with awserr.Error's Code and Message methods to get detailed information about
   895  // the error.
   896  //
   897  // See the AWS API reference guide for AWS Budgets's
   898  // API operation DescribeBudgetAction for usage and error information.
   899  //
   900  // Returned Error Types:
   901  //   * InternalErrorException
   902  //   An error on the server occurred during the processing of your request. Try
   903  //   again later.
   904  //
   905  //   * InvalidParameterException
   906  //   An error on the client occurred. Typically, the cause is an invalid input
   907  //   value.
   908  //
   909  //   * NotFoundException
   910  //   We can’t locate the resource that you specified.
   911  //
   912  //   * AccessDeniedException
   913  //   You are not authorized to use this operation with the given parameters.
   914  //
   915  func (c *Budgets) DescribeBudgetAction(input *DescribeBudgetActionInput) (*DescribeBudgetActionOutput, error) {
   916  	req, out := c.DescribeBudgetActionRequest(input)
   917  	return out, req.Send()
   918  }
   919  
   920  // DescribeBudgetActionWithContext is the same as DescribeBudgetAction with the addition of
   921  // the ability to pass a context and additional request options.
   922  //
   923  // See DescribeBudgetAction for details on how to use this API operation.
   924  //
   925  // The context must be non-nil and will be used for request cancellation. If
   926  // the context is nil a panic will occur. In the future the SDK may create
   927  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   928  // for more information on using Contexts.
   929  func (c *Budgets) DescribeBudgetActionWithContext(ctx aws.Context, input *DescribeBudgetActionInput, opts ...request.Option) (*DescribeBudgetActionOutput, error) {
   930  	req, out := c.DescribeBudgetActionRequest(input)
   931  	req.SetContext(ctx)
   932  	req.ApplyOptions(opts...)
   933  	return out, req.Send()
   934  }
   935  
   936  const opDescribeBudgetActionHistories = "DescribeBudgetActionHistories"
   937  
   938  // DescribeBudgetActionHistoriesRequest generates a "aws/request.Request" representing the
   939  // client's request for the DescribeBudgetActionHistories operation. The "output" return
   940  // value will be populated with the request's response once the request completes
   941  // successfully.
   942  //
   943  // Use "Send" method on the returned Request to send the API call to the service.
   944  // the "output" return value is not valid until after Send returns without error.
   945  //
   946  // See DescribeBudgetActionHistories for more information on using the DescribeBudgetActionHistories
   947  // API call, and error handling.
   948  //
   949  // This method is useful when you want to inject custom logic or configuration
   950  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   951  //
   952  //
   953  //    // Example sending a request using the DescribeBudgetActionHistoriesRequest method.
   954  //    req, resp := client.DescribeBudgetActionHistoriesRequest(params)
   955  //
   956  //    err := req.Send()
   957  //    if err == nil { // resp is now filled
   958  //        fmt.Println(resp)
   959  //    }
   960  func (c *Budgets) DescribeBudgetActionHistoriesRequest(input *DescribeBudgetActionHistoriesInput) (req *request.Request, output *DescribeBudgetActionHistoriesOutput) {
   961  	op := &request.Operation{
   962  		Name:       opDescribeBudgetActionHistories,
   963  		HTTPMethod: "POST",
   964  		HTTPPath:   "/",
   965  		Paginator: &request.Paginator{
   966  			InputTokens:     []string{"NextToken"},
   967  			OutputTokens:    []string{"NextToken"},
   968  			LimitToken:      "MaxResults",
   969  			TruncationToken: "",
   970  		},
   971  	}
   972  
   973  	if input == nil {
   974  		input = &DescribeBudgetActionHistoriesInput{}
   975  	}
   976  
   977  	output = &DescribeBudgetActionHistoriesOutput{}
   978  	req = c.newRequest(op, input, output)
   979  	return
   980  }
   981  
   982  // DescribeBudgetActionHistories API operation for AWS Budgets.
   983  //
   984  // Describes a budget action history detail.
   985  //
   986  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   987  // with awserr.Error's Code and Message methods to get detailed information about
   988  // the error.
   989  //
   990  // See the AWS API reference guide for AWS Budgets's
   991  // API operation DescribeBudgetActionHistories for usage and error information.
   992  //
   993  // Returned Error Types:
   994  //   * InternalErrorException
   995  //   An error on the server occurred during the processing of your request. Try
   996  //   again later.
   997  //
   998  //   * InvalidParameterException
   999  //   An error on the client occurred. Typically, the cause is an invalid input
  1000  //   value.
  1001  //
  1002  //   * NotFoundException
  1003  //   We can’t locate the resource that you specified.
  1004  //
  1005  //   * AccessDeniedException
  1006  //   You are not authorized to use this operation with the given parameters.
  1007  //
  1008  //   * InvalidNextTokenException
  1009  //   The pagination token is invalid.
  1010  //
  1011  func (c *Budgets) DescribeBudgetActionHistories(input *DescribeBudgetActionHistoriesInput) (*DescribeBudgetActionHistoriesOutput, error) {
  1012  	req, out := c.DescribeBudgetActionHistoriesRequest(input)
  1013  	return out, req.Send()
  1014  }
  1015  
  1016  // DescribeBudgetActionHistoriesWithContext is the same as DescribeBudgetActionHistories with the addition of
  1017  // the ability to pass a context and additional request options.
  1018  //
  1019  // See DescribeBudgetActionHistories for details on how to use this API operation.
  1020  //
  1021  // The context must be non-nil and will be used for request cancellation. If
  1022  // the context is nil a panic will occur. In the future the SDK may create
  1023  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1024  // for more information on using Contexts.
  1025  func (c *Budgets) DescribeBudgetActionHistoriesWithContext(ctx aws.Context, input *DescribeBudgetActionHistoriesInput, opts ...request.Option) (*DescribeBudgetActionHistoriesOutput, error) {
  1026  	req, out := c.DescribeBudgetActionHistoriesRequest(input)
  1027  	req.SetContext(ctx)
  1028  	req.ApplyOptions(opts...)
  1029  	return out, req.Send()
  1030  }
  1031  
  1032  // DescribeBudgetActionHistoriesPages iterates over the pages of a DescribeBudgetActionHistories operation,
  1033  // calling the "fn" function with the response data for each page. To stop
  1034  // iterating, return false from the fn function.
  1035  //
  1036  // See DescribeBudgetActionHistories method for more information on how to use this operation.
  1037  //
  1038  // Note: This operation can generate multiple requests to a service.
  1039  //
  1040  //    // Example iterating over at most 3 pages of a DescribeBudgetActionHistories operation.
  1041  //    pageNum := 0
  1042  //    err := client.DescribeBudgetActionHistoriesPages(params,
  1043  //        func(page *budgets.DescribeBudgetActionHistoriesOutput, lastPage bool) bool {
  1044  //            pageNum++
  1045  //            fmt.Println(page)
  1046  //            return pageNum <= 3
  1047  //        })
  1048  //
  1049  func (c *Budgets) DescribeBudgetActionHistoriesPages(input *DescribeBudgetActionHistoriesInput, fn func(*DescribeBudgetActionHistoriesOutput, bool) bool) error {
  1050  	return c.DescribeBudgetActionHistoriesPagesWithContext(aws.BackgroundContext(), input, fn)
  1051  }
  1052  
  1053  // DescribeBudgetActionHistoriesPagesWithContext same as DescribeBudgetActionHistoriesPages except
  1054  // it takes a Context and allows setting request options on the pages.
  1055  //
  1056  // The context must be non-nil and will be used for request cancellation. If
  1057  // the context is nil a panic will occur. In the future the SDK may create
  1058  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1059  // for more information on using Contexts.
  1060  func (c *Budgets) DescribeBudgetActionHistoriesPagesWithContext(ctx aws.Context, input *DescribeBudgetActionHistoriesInput, fn func(*DescribeBudgetActionHistoriesOutput, bool) bool, opts ...request.Option) error {
  1061  	p := request.Pagination{
  1062  		NewRequest: func() (*request.Request, error) {
  1063  			var inCpy *DescribeBudgetActionHistoriesInput
  1064  			if input != nil {
  1065  				tmp := *input
  1066  				inCpy = &tmp
  1067  			}
  1068  			req, _ := c.DescribeBudgetActionHistoriesRequest(inCpy)
  1069  			req.SetContext(ctx)
  1070  			req.ApplyOptions(opts...)
  1071  			return req, nil
  1072  		},
  1073  	}
  1074  
  1075  	for p.Next() {
  1076  		if !fn(p.Page().(*DescribeBudgetActionHistoriesOutput), !p.HasNextPage()) {
  1077  			break
  1078  		}
  1079  	}
  1080  
  1081  	return p.Err()
  1082  }
  1083  
  1084  const opDescribeBudgetActionsForAccount = "DescribeBudgetActionsForAccount"
  1085  
  1086  // DescribeBudgetActionsForAccountRequest generates a "aws/request.Request" representing the
  1087  // client's request for the DescribeBudgetActionsForAccount operation. The "output" return
  1088  // value will be populated with the request's response once the request completes
  1089  // successfully.
  1090  //
  1091  // Use "Send" method on the returned Request to send the API call to the service.
  1092  // the "output" return value is not valid until after Send returns without error.
  1093  //
  1094  // See DescribeBudgetActionsForAccount for more information on using the DescribeBudgetActionsForAccount
  1095  // API call, and error handling.
  1096  //
  1097  // This method is useful when you want to inject custom logic or configuration
  1098  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1099  //
  1100  //
  1101  //    // Example sending a request using the DescribeBudgetActionsForAccountRequest method.
  1102  //    req, resp := client.DescribeBudgetActionsForAccountRequest(params)
  1103  //
  1104  //    err := req.Send()
  1105  //    if err == nil { // resp is now filled
  1106  //        fmt.Println(resp)
  1107  //    }
  1108  func (c *Budgets) DescribeBudgetActionsForAccountRequest(input *DescribeBudgetActionsForAccountInput) (req *request.Request, output *DescribeBudgetActionsForAccountOutput) {
  1109  	op := &request.Operation{
  1110  		Name:       opDescribeBudgetActionsForAccount,
  1111  		HTTPMethod: "POST",
  1112  		HTTPPath:   "/",
  1113  		Paginator: &request.Paginator{
  1114  			InputTokens:     []string{"NextToken"},
  1115  			OutputTokens:    []string{"NextToken"},
  1116  			LimitToken:      "MaxResults",
  1117  			TruncationToken: "",
  1118  		},
  1119  	}
  1120  
  1121  	if input == nil {
  1122  		input = &DescribeBudgetActionsForAccountInput{}
  1123  	}
  1124  
  1125  	output = &DescribeBudgetActionsForAccountOutput{}
  1126  	req = c.newRequest(op, input, output)
  1127  	return
  1128  }
  1129  
  1130  // DescribeBudgetActionsForAccount API operation for AWS Budgets.
  1131  //
  1132  // Describes all of the budget actions for an account.
  1133  //
  1134  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1135  // with awserr.Error's Code and Message methods to get detailed information about
  1136  // the error.
  1137  //
  1138  // See the AWS API reference guide for AWS Budgets's
  1139  // API operation DescribeBudgetActionsForAccount for usage and error information.
  1140  //
  1141  // Returned Error Types:
  1142  //   * InternalErrorException
  1143  //   An error on the server occurred during the processing of your request. Try
  1144  //   again later.
  1145  //
  1146  //   * InvalidParameterException
  1147  //   An error on the client occurred. Typically, the cause is an invalid input
  1148  //   value.
  1149  //
  1150  //   * AccessDeniedException
  1151  //   You are not authorized to use this operation with the given parameters.
  1152  //
  1153  //   * InvalidNextTokenException
  1154  //   The pagination token is invalid.
  1155  //
  1156  func (c *Budgets) DescribeBudgetActionsForAccount(input *DescribeBudgetActionsForAccountInput) (*DescribeBudgetActionsForAccountOutput, error) {
  1157  	req, out := c.DescribeBudgetActionsForAccountRequest(input)
  1158  	return out, req.Send()
  1159  }
  1160  
  1161  // DescribeBudgetActionsForAccountWithContext is the same as DescribeBudgetActionsForAccount with the addition of
  1162  // the ability to pass a context and additional request options.
  1163  //
  1164  // See DescribeBudgetActionsForAccount for details on how to use this API operation.
  1165  //
  1166  // The context must be non-nil and will be used for request cancellation. If
  1167  // the context is nil a panic will occur. In the future the SDK may create
  1168  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1169  // for more information on using Contexts.
  1170  func (c *Budgets) DescribeBudgetActionsForAccountWithContext(ctx aws.Context, input *DescribeBudgetActionsForAccountInput, opts ...request.Option) (*DescribeBudgetActionsForAccountOutput, error) {
  1171  	req, out := c.DescribeBudgetActionsForAccountRequest(input)
  1172  	req.SetContext(ctx)
  1173  	req.ApplyOptions(opts...)
  1174  	return out, req.Send()
  1175  }
  1176  
  1177  // DescribeBudgetActionsForAccountPages iterates over the pages of a DescribeBudgetActionsForAccount operation,
  1178  // calling the "fn" function with the response data for each page. To stop
  1179  // iterating, return false from the fn function.
  1180  //
  1181  // See DescribeBudgetActionsForAccount method for more information on how to use this operation.
  1182  //
  1183  // Note: This operation can generate multiple requests to a service.
  1184  //
  1185  //    // Example iterating over at most 3 pages of a DescribeBudgetActionsForAccount operation.
  1186  //    pageNum := 0
  1187  //    err := client.DescribeBudgetActionsForAccountPages(params,
  1188  //        func(page *budgets.DescribeBudgetActionsForAccountOutput, lastPage bool) bool {
  1189  //            pageNum++
  1190  //            fmt.Println(page)
  1191  //            return pageNum <= 3
  1192  //        })
  1193  //
  1194  func (c *Budgets) DescribeBudgetActionsForAccountPages(input *DescribeBudgetActionsForAccountInput, fn func(*DescribeBudgetActionsForAccountOutput, bool) bool) error {
  1195  	return c.DescribeBudgetActionsForAccountPagesWithContext(aws.BackgroundContext(), input, fn)
  1196  }
  1197  
  1198  // DescribeBudgetActionsForAccountPagesWithContext same as DescribeBudgetActionsForAccountPages except
  1199  // it takes a Context and allows setting request options on the pages.
  1200  //
  1201  // The context must be non-nil and will be used for request cancellation. If
  1202  // the context is nil a panic will occur. In the future the SDK may create
  1203  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1204  // for more information on using Contexts.
  1205  func (c *Budgets) DescribeBudgetActionsForAccountPagesWithContext(ctx aws.Context, input *DescribeBudgetActionsForAccountInput, fn func(*DescribeBudgetActionsForAccountOutput, bool) bool, opts ...request.Option) error {
  1206  	p := request.Pagination{
  1207  		NewRequest: func() (*request.Request, error) {
  1208  			var inCpy *DescribeBudgetActionsForAccountInput
  1209  			if input != nil {
  1210  				tmp := *input
  1211  				inCpy = &tmp
  1212  			}
  1213  			req, _ := c.DescribeBudgetActionsForAccountRequest(inCpy)
  1214  			req.SetContext(ctx)
  1215  			req.ApplyOptions(opts...)
  1216  			return req, nil
  1217  		},
  1218  	}
  1219  
  1220  	for p.Next() {
  1221  		if !fn(p.Page().(*DescribeBudgetActionsForAccountOutput), !p.HasNextPage()) {
  1222  			break
  1223  		}
  1224  	}
  1225  
  1226  	return p.Err()
  1227  }
  1228  
  1229  const opDescribeBudgetActionsForBudget = "DescribeBudgetActionsForBudget"
  1230  
  1231  // DescribeBudgetActionsForBudgetRequest generates a "aws/request.Request" representing the
  1232  // client's request for the DescribeBudgetActionsForBudget operation. The "output" return
  1233  // value will be populated with the request's response once the request completes
  1234  // successfully.
  1235  //
  1236  // Use "Send" method on the returned Request to send the API call to the service.
  1237  // the "output" return value is not valid until after Send returns without error.
  1238  //
  1239  // See DescribeBudgetActionsForBudget for more information on using the DescribeBudgetActionsForBudget
  1240  // API call, and error handling.
  1241  //
  1242  // This method is useful when you want to inject custom logic or configuration
  1243  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1244  //
  1245  //
  1246  //    // Example sending a request using the DescribeBudgetActionsForBudgetRequest method.
  1247  //    req, resp := client.DescribeBudgetActionsForBudgetRequest(params)
  1248  //
  1249  //    err := req.Send()
  1250  //    if err == nil { // resp is now filled
  1251  //        fmt.Println(resp)
  1252  //    }
  1253  func (c *Budgets) DescribeBudgetActionsForBudgetRequest(input *DescribeBudgetActionsForBudgetInput) (req *request.Request, output *DescribeBudgetActionsForBudgetOutput) {
  1254  	op := &request.Operation{
  1255  		Name:       opDescribeBudgetActionsForBudget,
  1256  		HTTPMethod: "POST",
  1257  		HTTPPath:   "/",
  1258  		Paginator: &request.Paginator{
  1259  			InputTokens:     []string{"NextToken"},
  1260  			OutputTokens:    []string{"NextToken"},
  1261  			LimitToken:      "MaxResults",
  1262  			TruncationToken: "",
  1263  		},
  1264  	}
  1265  
  1266  	if input == nil {
  1267  		input = &DescribeBudgetActionsForBudgetInput{}
  1268  	}
  1269  
  1270  	output = &DescribeBudgetActionsForBudgetOutput{}
  1271  	req = c.newRequest(op, input, output)
  1272  	return
  1273  }
  1274  
  1275  // DescribeBudgetActionsForBudget API operation for AWS Budgets.
  1276  //
  1277  // Describes all of the budget actions for a budget.
  1278  //
  1279  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1280  // with awserr.Error's Code and Message methods to get detailed information about
  1281  // the error.
  1282  //
  1283  // See the AWS API reference guide for AWS Budgets's
  1284  // API operation DescribeBudgetActionsForBudget for usage and error information.
  1285  //
  1286  // Returned Error Types:
  1287  //   * InternalErrorException
  1288  //   An error on the server occurred during the processing of your request. Try
  1289  //   again later.
  1290  //
  1291  //   * InvalidParameterException
  1292  //   An error on the client occurred. Typically, the cause is an invalid input
  1293  //   value.
  1294  //
  1295  //   * NotFoundException
  1296  //   We can’t locate the resource that you specified.
  1297  //
  1298  //   * AccessDeniedException
  1299  //   You are not authorized to use this operation with the given parameters.
  1300  //
  1301  //   * InvalidNextTokenException
  1302  //   The pagination token is invalid.
  1303  //
  1304  func (c *Budgets) DescribeBudgetActionsForBudget(input *DescribeBudgetActionsForBudgetInput) (*DescribeBudgetActionsForBudgetOutput, error) {
  1305  	req, out := c.DescribeBudgetActionsForBudgetRequest(input)
  1306  	return out, req.Send()
  1307  }
  1308  
  1309  // DescribeBudgetActionsForBudgetWithContext is the same as DescribeBudgetActionsForBudget with the addition of
  1310  // the ability to pass a context and additional request options.
  1311  //
  1312  // See DescribeBudgetActionsForBudget for details on how to use this API operation.
  1313  //
  1314  // The context must be non-nil and will be used for request cancellation. If
  1315  // the context is nil a panic will occur. In the future the SDK may create
  1316  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1317  // for more information on using Contexts.
  1318  func (c *Budgets) DescribeBudgetActionsForBudgetWithContext(ctx aws.Context, input *DescribeBudgetActionsForBudgetInput, opts ...request.Option) (*DescribeBudgetActionsForBudgetOutput, error) {
  1319  	req, out := c.DescribeBudgetActionsForBudgetRequest(input)
  1320  	req.SetContext(ctx)
  1321  	req.ApplyOptions(opts...)
  1322  	return out, req.Send()
  1323  }
  1324  
  1325  // DescribeBudgetActionsForBudgetPages iterates over the pages of a DescribeBudgetActionsForBudget operation,
  1326  // calling the "fn" function with the response data for each page. To stop
  1327  // iterating, return false from the fn function.
  1328  //
  1329  // See DescribeBudgetActionsForBudget method for more information on how to use this operation.
  1330  //
  1331  // Note: This operation can generate multiple requests to a service.
  1332  //
  1333  //    // Example iterating over at most 3 pages of a DescribeBudgetActionsForBudget operation.
  1334  //    pageNum := 0
  1335  //    err := client.DescribeBudgetActionsForBudgetPages(params,
  1336  //        func(page *budgets.DescribeBudgetActionsForBudgetOutput, lastPage bool) bool {
  1337  //            pageNum++
  1338  //            fmt.Println(page)
  1339  //            return pageNum <= 3
  1340  //        })
  1341  //
  1342  func (c *Budgets) DescribeBudgetActionsForBudgetPages(input *DescribeBudgetActionsForBudgetInput, fn func(*DescribeBudgetActionsForBudgetOutput, bool) bool) error {
  1343  	return c.DescribeBudgetActionsForBudgetPagesWithContext(aws.BackgroundContext(), input, fn)
  1344  }
  1345  
  1346  // DescribeBudgetActionsForBudgetPagesWithContext same as DescribeBudgetActionsForBudgetPages except
  1347  // it takes a Context and allows setting request options on the pages.
  1348  //
  1349  // The context must be non-nil and will be used for request cancellation. If
  1350  // the context is nil a panic will occur. In the future the SDK may create
  1351  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1352  // for more information on using Contexts.
  1353  func (c *Budgets) DescribeBudgetActionsForBudgetPagesWithContext(ctx aws.Context, input *DescribeBudgetActionsForBudgetInput, fn func(*DescribeBudgetActionsForBudgetOutput, bool) bool, opts ...request.Option) error {
  1354  	p := request.Pagination{
  1355  		NewRequest: func() (*request.Request, error) {
  1356  			var inCpy *DescribeBudgetActionsForBudgetInput
  1357  			if input != nil {
  1358  				tmp := *input
  1359  				inCpy = &tmp
  1360  			}
  1361  			req, _ := c.DescribeBudgetActionsForBudgetRequest(inCpy)
  1362  			req.SetContext(ctx)
  1363  			req.ApplyOptions(opts...)
  1364  			return req, nil
  1365  		},
  1366  	}
  1367  
  1368  	for p.Next() {
  1369  		if !fn(p.Page().(*DescribeBudgetActionsForBudgetOutput), !p.HasNextPage()) {
  1370  			break
  1371  		}
  1372  	}
  1373  
  1374  	return p.Err()
  1375  }
  1376  
  1377  const opDescribeBudgetPerformanceHistory = "DescribeBudgetPerformanceHistory"
  1378  
  1379  // DescribeBudgetPerformanceHistoryRequest generates a "aws/request.Request" representing the
  1380  // client's request for the DescribeBudgetPerformanceHistory operation. The "output" return
  1381  // value will be populated with the request's response once the request completes
  1382  // successfully.
  1383  //
  1384  // Use "Send" method on the returned Request to send the API call to the service.
  1385  // the "output" return value is not valid until after Send returns without error.
  1386  //
  1387  // See DescribeBudgetPerformanceHistory for more information on using the DescribeBudgetPerformanceHistory
  1388  // API call, and error handling.
  1389  //
  1390  // This method is useful when you want to inject custom logic or configuration
  1391  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1392  //
  1393  //
  1394  //    // Example sending a request using the DescribeBudgetPerformanceHistoryRequest method.
  1395  //    req, resp := client.DescribeBudgetPerformanceHistoryRequest(params)
  1396  //
  1397  //    err := req.Send()
  1398  //    if err == nil { // resp is now filled
  1399  //        fmt.Println(resp)
  1400  //    }
  1401  func (c *Budgets) DescribeBudgetPerformanceHistoryRequest(input *DescribeBudgetPerformanceHistoryInput) (req *request.Request, output *DescribeBudgetPerformanceHistoryOutput) {
  1402  	op := &request.Operation{
  1403  		Name:       opDescribeBudgetPerformanceHistory,
  1404  		HTTPMethod: "POST",
  1405  		HTTPPath:   "/",
  1406  		Paginator: &request.Paginator{
  1407  			InputTokens:     []string{"NextToken"},
  1408  			OutputTokens:    []string{"NextToken"},
  1409  			LimitToken:      "MaxResults",
  1410  			TruncationToken: "",
  1411  		},
  1412  	}
  1413  
  1414  	if input == nil {
  1415  		input = &DescribeBudgetPerformanceHistoryInput{}
  1416  	}
  1417  
  1418  	output = &DescribeBudgetPerformanceHistoryOutput{}
  1419  	req = c.newRequest(op, input, output)
  1420  	return
  1421  }
  1422  
  1423  // DescribeBudgetPerformanceHistory API operation for AWS Budgets.
  1424  //
  1425  // Describes the history for DAILY, MONTHLY, and QUARTERLY budgets. Budget history
  1426  // isn't available for ANNUAL budgets.
  1427  //
  1428  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1429  // with awserr.Error's Code and Message methods to get detailed information about
  1430  // the error.
  1431  //
  1432  // See the AWS API reference guide for AWS Budgets's
  1433  // API operation DescribeBudgetPerformanceHistory for usage and error information.
  1434  //
  1435  // Returned Error Types:
  1436  //   * InternalErrorException
  1437  //   An error on the server occurred during the processing of your request. Try
  1438  //   again later.
  1439  //
  1440  //   * InvalidParameterException
  1441  //   An error on the client occurred. Typically, the cause is an invalid input
  1442  //   value.
  1443  //
  1444  //   * NotFoundException
  1445  //   We can’t locate the resource that you specified.
  1446  //
  1447  //   * InvalidNextTokenException
  1448  //   The pagination token is invalid.
  1449  //
  1450  //   * ExpiredNextTokenException
  1451  //   The pagination token expired.
  1452  //
  1453  //   * AccessDeniedException
  1454  //   You are not authorized to use this operation with the given parameters.
  1455  //
  1456  func (c *Budgets) DescribeBudgetPerformanceHistory(input *DescribeBudgetPerformanceHistoryInput) (*DescribeBudgetPerformanceHistoryOutput, error) {
  1457  	req, out := c.DescribeBudgetPerformanceHistoryRequest(input)
  1458  	return out, req.Send()
  1459  }
  1460  
  1461  // DescribeBudgetPerformanceHistoryWithContext is the same as DescribeBudgetPerformanceHistory with the addition of
  1462  // the ability to pass a context and additional request options.
  1463  //
  1464  // See DescribeBudgetPerformanceHistory for details on how to use this API operation.
  1465  //
  1466  // The context must be non-nil and will be used for request cancellation. If
  1467  // the context is nil a panic will occur. In the future the SDK may create
  1468  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1469  // for more information on using Contexts.
  1470  func (c *Budgets) DescribeBudgetPerformanceHistoryWithContext(ctx aws.Context, input *DescribeBudgetPerformanceHistoryInput, opts ...request.Option) (*DescribeBudgetPerformanceHistoryOutput, error) {
  1471  	req, out := c.DescribeBudgetPerformanceHistoryRequest(input)
  1472  	req.SetContext(ctx)
  1473  	req.ApplyOptions(opts...)
  1474  	return out, req.Send()
  1475  }
  1476  
  1477  // DescribeBudgetPerformanceHistoryPages iterates over the pages of a DescribeBudgetPerformanceHistory operation,
  1478  // calling the "fn" function with the response data for each page. To stop
  1479  // iterating, return false from the fn function.
  1480  //
  1481  // See DescribeBudgetPerformanceHistory method for more information on how to use this operation.
  1482  //
  1483  // Note: This operation can generate multiple requests to a service.
  1484  //
  1485  //    // Example iterating over at most 3 pages of a DescribeBudgetPerformanceHistory operation.
  1486  //    pageNum := 0
  1487  //    err := client.DescribeBudgetPerformanceHistoryPages(params,
  1488  //        func(page *budgets.DescribeBudgetPerformanceHistoryOutput, lastPage bool) bool {
  1489  //            pageNum++
  1490  //            fmt.Println(page)
  1491  //            return pageNum <= 3
  1492  //        })
  1493  //
  1494  func (c *Budgets) DescribeBudgetPerformanceHistoryPages(input *DescribeBudgetPerformanceHistoryInput, fn func(*DescribeBudgetPerformanceHistoryOutput, bool) bool) error {
  1495  	return c.DescribeBudgetPerformanceHistoryPagesWithContext(aws.BackgroundContext(), input, fn)
  1496  }
  1497  
  1498  // DescribeBudgetPerformanceHistoryPagesWithContext same as DescribeBudgetPerformanceHistoryPages except
  1499  // it takes a Context and allows setting request options on the pages.
  1500  //
  1501  // The context must be non-nil and will be used for request cancellation. If
  1502  // the context is nil a panic will occur. In the future the SDK may create
  1503  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1504  // for more information on using Contexts.
  1505  func (c *Budgets) DescribeBudgetPerformanceHistoryPagesWithContext(ctx aws.Context, input *DescribeBudgetPerformanceHistoryInput, fn func(*DescribeBudgetPerformanceHistoryOutput, bool) bool, opts ...request.Option) error {
  1506  	p := request.Pagination{
  1507  		NewRequest: func() (*request.Request, error) {
  1508  			var inCpy *DescribeBudgetPerformanceHistoryInput
  1509  			if input != nil {
  1510  				tmp := *input
  1511  				inCpy = &tmp
  1512  			}
  1513  			req, _ := c.DescribeBudgetPerformanceHistoryRequest(inCpy)
  1514  			req.SetContext(ctx)
  1515  			req.ApplyOptions(opts...)
  1516  			return req, nil
  1517  		},
  1518  	}
  1519  
  1520  	for p.Next() {
  1521  		if !fn(p.Page().(*DescribeBudgetPerformanceHistoryOutput), !p.HasNextPage()) {
  1522  			break
  1523  		}
  1524  	}
  1525  
  1526  	return p.Err()
  1527  }
  1528  
  1529  const opDescribeBudgets = "DescribeBudgets"
  1530  
  1531  // DescribeBudgetsRequest generates a "aws/request.Request" representing the
  1532  // client's request for the DescribeBudgets operation. The "output" return
  1533  // value will be populated with the request's response once the request completes
  1534  // successfully.
  1535  //
  1536  // Use "Send" method on the returned Request to send the API call to the service.
  1537  // the "output" return value is not valid until after Send returns without error.
  1538  //
  1539  // See DescribeBudgets for more information on using the DescribeBudgets
  1540  // API call, and error handling.
  1541  //
  1542  // This method is useful when you want to inject custom logic or configuration
  1543  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1544  //
  1545  //
  1546  //    // Example sending a request using the DescribeBudgetsRequest method.
  1547  //    req, resp := client.DescribeBudgetsRequest(params)
  1548  //
  1549  //    err := req.Send()
  1550  //    if err == nil { // resp is now filled
  1551  //        fmt.Println(resp)
  1552  //    }
  1553  func (c *Budgets) DescribeBudgetsRequest(input *DescribeBudgetsInput) (req *request.Request, output *DescribeBudgetsOutput) {
  1554  	op := &request.Operation{
  1555  		Name:       opDescribeBudgets,
  1556  		HTTPMethod: "POST",
  1557  		HTTPPath:   "/",
  1558  		Paginator: &request.Paginator{
  1559  			InputTokens:     []string{"NextToken"},
  1560  			OutputTokens:    []string{"NextToken"},
  1561  			LimitToken:      "MaxResults",
  1562  			TruncationToken: "",
  1563  		},
  1564  	}
  1565  
  1566  	if input == nil {
  1567  		input = &DescribeBudgetsInput{}
  1568  	}
  1569  
  1570  	output = &DescribeBudgetsOutput{}
  1571  	req = c.newRequest(op, input, output)
  1572  	return
  1573  }
  1574  
  1575  // DescribeBudgets API operation for AWS Budgets.
  1576  //
  1577  // Lists the budgets that are associated with an account.
  1578  //
  1579  // The Request Syntax section shows the BudgetLimit syntax. For PlannedBudgetLimits,
  1580  // see the Examples (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_DescribeBudgets.html#API_DescribeBudgets_Examples)
  1581  // section.
  1582  //
  1583  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1584  // with awserr.Error's Code and Message methods to get detailed information about
  1585  // the error.
  1586  //
  1587  // See the AWS API reference guide for AWS Budgets's
  1588  // API operation DescribeBudgets for usage and error information.
  1589  //
  1590  // Returned Error Types:
  1591  //   * InternalErrorException
  1592  //   An error on the server occurred during the processing of your request. Try
  1593  //   again later.
  1594  //
  1595  //   * InvalidParameterException
  1596  //   An error on the client occurred. Typically, the cause is an invalid input
  1597  //   value.
  1598  //
  1599  //   * NotFoundException
  1600  //   We can’t locate the resource that you specified.
  1601  //
  1602  //   * InvalidNextTokenException
  1603  //   The pagination token is invalid.
  1604  //
  1605  //   * ExpiredNextTokenException
  1606  //   The pagination token expired.
  1607  //
  1608  //   * AccessDeniedException
  1609  //   You are not authorized to use this operation with the given parameters.
  1610  //
  1611  func (c *Budgets) DescribeBudgets(input *DescribeBudgetsInput) (*DescribeBudgetsOutput, error) {
  1612  	req, out := c.DescribeBudgetsRequest(input)
  1613  	return out, req.Send()
  1614  }
  1615  
  1616  // DescribeBudgetsWithContext is the same as DescribeBudgets with the addition of
  1617  // the ability to pass a context and additional request options.
  1618  //
  1619  // See DescribeBudgets for details on how to use this API operation.
  1620  //
  1621  // The context must be non-nil and will be used for request cancellation. If
  1622  // the context is nil a panic will occur. In the future the SDK may create
  1623  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1624  // for more information on using Contexts.
  1625  func (c *Budgets) DescribeBudgetsWithContext(ctx aws.Context, input *DescribeBudgetsInput, opts ...request.Option) (*DescribeBudgetsOutput, error) {
  1626  	req, out := c.DescribeBudgetsRequest(input)
  1627  	req.SetContext(ctx)
  1628  	req.ApplyOptions(opts...)
  1629  	return out, req.Send()
  1630  }
  1631  
  1632  // DescribeBudgetsPages iterates over the pages of a DescribeBudgets operation,
  1633  // calling the "fn" function with the response data for each page. To stop
  1634  // iterating, return false from the fn function.
  1635  //
  1636  // See DescribeBudgets method for more information on how to use this operation.
  1637  //
  1638  // Note: This operation can generate multiple requests to a service.
  1639  //
  1640  //    // Example iterating over at most 3 pages of a DescribeBudgets operation.
  1641  //    pageNum := 0
  1642  //    err := client.DescribeBudgetsPages(params,
  1643  //        func(page *budgets.DescribeBudgetsOutput, lastPage bool) bool {
  1644  //            pageNum++
  1645  //            fmt.Println(page)
  1646  //            return pageNum <= 3
  1647  //        })
  1648  //
  1649  func (c *Budgets) DescribeBudgetsPages(input *DescribeBudgetsInput, fn func(*DescribeBudgetsOutput, bool) bool) error {
  1650  	return c.DescribeBudgetsPagesWithContext(aws.BackgroundContext(), input, fn)
  1651  }
  1652  
  1653  // DescribeBudgetsPagesWithContext same as DescribeBudgetsPages except
  1654  // it takes a Context and allows setting request options on the pages.
  1655  //
  1656  // The context must be non-nil and will be used for request cancellation. If
  1657  // the context is nil a panic will occur. In the future the SDK may create
  1658  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1659  // for more information on using Contexts.
  1660  func (c *Budgets) DescribeBudgetsPagesWithContext(ctx aws.Context, input *DescribeBudgetsInput, fn func(*DescribeBudgetsOutput, bool) bool, opts ...request.Option) error {
  1661  	p := request.Pagination{
  1662  		NewRequest: func() (*request.Request, error) {
  1663  			var inCpy *DescribeBudgetsInput
  1664  			if input != nil {
  1665  				tmp := *input
  1666  				inCpy = &tmp
  1667  			}
  1668  			req, _ := c.DescribeBudgetsRequest(inCpy)
  1669  			req.SetContext(ctx)
  1670  			req.ApplyOptions(opts...)
  1671  			return req, nil
  1672  		},
  1673  	}
  1674  
  1675  	for p.Next() {
  1676  		if !fn(p.Page().(*DescribeBudgetsOutput), !p.HasNextPage()) {
  1677  			break
  1678  		}
  1679  	}
  1680  
  1681  	return p.Err()
  1682  }
  1683  
  1684  const opDescribeNotificationsForBudget = "DescribeNotificationsForBudget"
  1685  
  1686  // DescribeNotificationsForBudgetRequest generates a "aws/request.Request" representing the
  1687  // client's request for the DescribeNotificationsForBudget operation. The "output" return
  1688  // value will be populated with the request's response once the request completes
  1689  // successfully.
  1690  //
  1691  // Use "Send" method on the returned Request to send the API call to the service.
  1692  // the "output" return value is not valid until after Send returns without error.
  1693  //
  1694  // See DescribeNotificationsForBudget for more information on using the DescribeNotificationsForBudget
  1695  // API call, and error handling.
  1696  //
  1697  // This method is useful when you want to inject custom logic or configuration
  1698  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1699  //
  1700  //
  1701  //    // Example sending a request using the DescribeNotificationsForBudgetRequest method.
  1702  //    req, resp := client.DescribeNotificationsForBudgetRequest(params)
  1703  //
  1704  //    err := req.Send()
  1705  //    if err == nil { // resp is now filled
  1706  //        fmt.Println(resp)
  1707  //    }
  1708  func (c *Budgets) DescribeNotificationsForBudgetRequest(input *DescribeNotificationsForBudgetInput) (req *request.Request, output *DescribeNotificationsForBudgetOutput) {
  1709  	op := &request.Operation{
  1710  		Name:       opDescribeNotificationsForBudget,
  1711  		HTTPMethod: "POST",
  1712  		HTTPPath:   "/",
  1713  		Paginator: &request.Paginator{
  1714  			InputTokens:     []string{"NextToken"},
  1715  			OutputTokens:    []string{"NextToken"},
  1716  			LimitToken:      "MaxResults",
  1717  			TruncationToken: "",
  1718  		},
  1719  	}
  1720  
  1721  	if input == nil {
  1722  		input = &DescribeNotificationsForBudgetInput{}
  1723  	}
  1724  
  1725  	output = &DescribeNotificationsForBudgetOutput{}
  1726  	req = c.newRequest(op, input, output)
  1727  	return
  1728  }
  1729  
  1730  // DescribeNotificationsForBudget API operation for AWS Budgets.
  1731  //
  1732  // Lists the notifications that are associated with a budget.
  1733  //
  1734  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1735  // with awserr.Error's Code and Message methods to get detailed information about
  1736  // the error.
  1737  //
  1738  // See the AWS API reference guide for AWS Budgets's
  1739  // API operation DescribeNotificationsForBudget for usage and error information.
  1740  //
  1741  // Returned Error Types:
  1742  //   * InternalErrorException
  1743  //   An error on the server occurred during the processing of your request. Try
  1744  //   again later.
  1745  //
  1746  //   * InvalidParameterException
  1747  //   An error on the client occurred. Typically, the cause is an invalid input
  1748  //   value.
  1749  //
  1750  //   * NotFoundException
  1751  //   We can’t locate the resource that you specified.
  1752  //
  1753  //   * InvalidNextTokenException
  1754  //   The pagination token is invalid.
  1755  //
  1756  //   * ExpiredNextTokenException
  1757  //   The pagination token expired.
  1758  //
  1759  //   * AccessDeniedException
  1760  //   You are not authorized to use this operation with the given parameters.
  1761  //
  1762  func (c *Budgets) DescribeNotificationsForBudget(input *DescribeNotificationsForBudgetInput) (*DescribeNotificationsForBudgetOutput, error) {
  1763  	req, out := c.DescribeNotificationsForBudgetRequest(input)
  1764  	return out, req.Send()
  1765  }
  1766  
  1767  // DescribeNotificationsForBudgetWithContext is the same as DescribeNotificationsForBudget with the addition of
  1768  // the ability to pass a context and additional request options.
  1769  //
  1770  // See DescribeNotificationsForBudget for details on how to use this API operation.
  1771  //
  1772  // The context must be non-nil and will be used for request cancellation. If
  1773  // the context is nil a panic will occur. In the future the SDK may create
  1774  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1775  // for more information on using Contexts.
  1776  func (c *Budgets) DescribeNotificationsForBudgetWithContext(ctx aws.Context, input *DescribeNotificationsForBudgetInput, opts ...request.Option) (*DescribeNotificationsForBudgetOutput, error) {
  1777  	req, out := c.DescribeNotificationsForBudgetRequest(input)
  1778  	req.SetContext(ctx)
  1779  	req.ApplyOptions(opts...)
  1780  	return out, req.Send()
  1781  }
  1782  
  1783  // DescribeNotificationsForBudgetPages iterates over the pages of a DescribeNotificationsForBudget operation,
  1784  // calling the "fn" function with the response data for each page. To stop
  1785  // iterating, return false from the fn function.
  1786  //
  1787  // See DescribeNotificationsForBudget method for more information on how to use this operation.
  1788  //
  1789  // Note: This operation can generate multiple requests to a service.
  1790  //
  1791  //    // Example iterating over at most 3 pages of a DescribeNotificationsForBudget operation.
  1792  //    pageNum := 0
  1793  //    err := client.DescribeNotificationsForBudgetPages(params,
  1794  //        func(page *budgets.DescribeNotificationsForBudgetOutput, lastPage bool) bool {
  1795  //            pageNum++
  1796  //            fmt.Println(page)
  1797  //            return pageNum <= 3
  1798  //        })
  1799  //
  1800  func (c *Budgets) DescribeNotificationsForBudgetPages(input *DescribeNotificationsForBudgetInput, fn func(*DescribeNotificationsForBudgetOutput, bool) bool) error {
  1801  	return c.DescribeNotificationsForBudgetPagesWithContext(aws.BackgroundContext(), input, fn)
  1802  }
  1803  
  1804  // DescribeNotificationsForBudgetPagesWithContext same as DescribeNotificationsForBudgetPages except
  1805  // it takes a Context and allows setting request options on the pages.
  1806  //
  1807  // The context must be non-nil and will be used for request cancellation. If
  1808  // the context is nil a panic will occur. In the future the SDK may create
  1809  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1810  // for more information on using Contexts.
  1811  func (c *Budgets) DescribeNotificationsForBudgetPagesWithContext(ctx aws.Context, input *DescribeNotificationsForBudgetInput, fn func(*DescribeNotificationsForBudgetOutput, bool) bool, opts ...request.Option) error {
  1812  	p := request.Pagination{
  1813  		NewRequest: func() (*request.Request, error) {
  1814  			var inCpy *DescribeNotificationsForBudgetInput
  1815  			if input != nil {
  1816  				tmp := *input
  1817  				inCpy = &tmp
  1818  			}
  1819  			req, _ := c.DescribeNotificationsForBudgetRequest(inCpy)
  1820  			req.SetContext(ctx)
  1821  			req.ApplyOptions(opts...)
  1822  			return req, nil
  1823  		},
  1824  	}
  1825  
  1826  	for p.Next() {
  1827  		if !fn(p.Page().(*DescribeNotificationsForBudgetOutput), !p.HasNextPage()) {
  1828  			break
  1829  		}
  1830  	}
  1831  
  1832  	return p.Err()
  1833  }
  1834  
  1835  const opDescribeSubscribersForNotification = "DescribeSubscribersForNotification"
  1836  
  1837  // DescribeSubscribersForNotificationRequest generates a "aws/request.Request" representing the
  1838  // client's request for the DescribeSubscribersForNotification operation. The "output" return
  1839  // value will be populated with the request's response once the request completes
  1840  // successfully.
  1841  //
  1842  // Use "Send" method on the returned Request to send the API call to the service.
  1843  // the "output" return value is not valid until after Send returns without error.
  1844  //
  1845  // See DescribeSubscribersForNotification for more information on using the DescribeSubscribersForNotification
  1846  // API call, and error handling.
  1847  //
  1848  // This method is useful when you want to inject custom logic or configuration
  1849  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1850  //
  1851  //
  1852  //    // Example sending a request using the DescribeSubscribersForNotificationRequest method.
  1853  //    req, resp := client.DescribeSubscribersForNotificationRequest(params)
  1854  //
  1855  //    err := req.Send()
  1856  //    if err == nil { // resp is now filled
  1857  //        fmt.Println(resp)
  1858  //    }
  1859  func (c *Budgets) DescribeSubscribersForNotificationRequest(input *DescribeSubscribersForNotificationInput) (req *request.Request, output *DescribeSubscribersForNotificationOutput) {
  1860  	op := &request.Operation{
  1861  		Name:       opDescribeSubscribersForNotification,
  1862  		HTTPMethod: "POST",
  1863  		HTTPPath:   "/",
  1864  		Paginator: &request.Paginator{
  1865  			InputTokens:     []string{"NextToken"},
  1866  			OutputTokens:    []string{"NextToken"},
  1867  			LimitToken:      "MaxResults",
  1868  			TruncationToken: "",
  1869  		},
  1870  	}
  1871  
  1872  	if input == nil {
  1873  		input = &DescribeSubscribersForNotificationInput{}
  1874  	}
  1875  
  1876  	output = &DescribeSubscribersForNotificationOutput{}
  1877  	req = c.newRequest(op, input, output)
  1878  	return
  1879  }
  1880  
  1881  // DescribeSubscribersForNotification API operation for AWS Budgets.
  1882  //
  1883  // Lists the subscribers that are associated with a notification.
  1884  //
  1885  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1886  // with awserr.Error's Code and Message methods to get detailed information about
  1887  // the error.
  1888  //
  1889  // See the AWS API reference guide for AWS Budgets's
  1890  // API operation DescribeSubscribersForNotification for usage and error information.
  1891  //
  1892  // Returned Error Types:
  1893  //   * InternalErrorException
  1894  //   An error on the server occurred during the processing of your request. Try
  1895  //   again later.
  1896  //
  1897  //   * NotFoundException
  1898  //   We can’t locate the resource that you specified.
  1899  //
  1900  //   * InvalidParameterException
  1901  //   An error on the client occurred. Typically, the cause is an invalid input
  1902  //   value.
  1903  //
  1904  //   * InvalidNextTokenException
  1905  //   The pagination token is invalid.
  1906  //
  1907  //   * ExpiredNextTokenException
  1908  //   The pagination token expired.
  1909  //
  1910  //   * AccessDeniedException
  1911  //   You are not authorized to use this operation with the given parameters.
  1912  //
  1913  func (c *Budgets) DescribeSubscribersForNotification(input *DescribeSubscribersForNotificationInput) (*DescribeSubscribersForNotificationOutput, error) {
  1914  	req, out := c.DescribeSubscribersForNotificationRequest(input)
  1915  	return out, req.Send()
  1916  }
  1917  
  1918  // DescribeSubscribersForNotificationWithContext is the same as DescribeSubscribersForNotification with the addition of
  1919  // the ability to pass a context and additional request options.
  1920  //
  1921  // See DescribeSubscribersForNotification for details on how to use this API operation.
  1922  //
  1923  // The context must be non-nil and will be used for request cancellation. If
  1924  // the context is nil a panic will occur. In the future the SDK may create
  1925  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1926  // for more information on using Contexts.
  1927  func (c *Budgets) DescribeSubscribersForNotificationWithContext(ctx aws.Context, input *DescribeSubscribersForNotificationInput, opts ...request.Option) (*DescribeSubscribersForNotificationOutput, error) {
  1928  	req, out := c.DescribeSubscribersForNotificationRequest(input)
  1929  	req.SetContext(ctx)
  1930  	req.ApplyOptions(opts...)
  1931  	return out, req.Send()
  1932  }
  1933  
  1934  // DescribeSubscribersForNotificationPages iterates over the pages of a DescribeSubscribersForNotification operation,
  1935  // calling the "fn" function with the response data for each page. To stop
  1936  // iterating, return false from the fn function.
  1937  //
  1938  // See DescribeSubscribersForNotification method for more information on how to use this operation.
  1939  //
  1940  // Note: This operation can generate multiple requests to a service.
  1941  //
  1942  //    // Example iterating over at most 3 pages of a DescribeSubscribersForNotification operation.
  1943  //    pageNum := 0
  1944  //    err := client.DescribeSubscribersForNotificationPages(params,
  1945  //        func(page *budgets.DescribeSubscribersForNotificationOutput, lastPage bool) bool {
  1946  //            pageNum++
  1947  //            fmt.Println(page)
  1948  //            return pageNum <= 3
  1949  //        })
  1950  //
  1951  func (c *Budgets) DescribeSubscribersForNotificationPages(input *DescribeSubscribersForNotificationInput, fn func(*DescribeSubscribersForNotificationOutput, bool) bool) error {
  1952  	return c.DescribeSubscribersForNotificationPagesWithContext(aws.BackgroundContext(), input, fn)
  1953  }
  1954  
  1955  // DescribeSubscribersForNotificationPagesWithContext same as DescribeSubscribersForNotificationPages except
  1956  // it takes a Context and allows setting request options on the pages.
  1957  //
  1958  // The context must be non-nil and will be used for request cancellation. If
  1959  // the context is nil a panic will occur. In the future the SDK may create
  1960  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1961  // for more information on using Contexts.
  1962  func (c *Budgets) DescribeSubscribersForNotificationPagesWithContext(ctx aws.Context, input *DescribeSubscribersForNotificationInput, fn func(*DescribeSubscribersForNotificationOutput, bool) bool, opts ...request.Option) error {
  1963  	p := request.Pagination{
  1964  		NewRequest: func() (*request.Request, error) {
  1965  			var inCpy *DescribeSubscribersForNotificationInput
  1966  			if input != nil {
  1967  				tmp := *input
  1968  				inCpy = &tmp
  1969  			}
  1970  			req, _ := c.DescribeSubscribersForNotificationRequest(inCpy)
  1971  			req.SetContext(ctx)
  1972  			req.ApplyOptions(opts...)
  1973  			return req, nil
  1974  		},
  1975  	}
  1976  
  1977  	for p.Next() {
  1978  		if !fn(p.Page().(*DescribeSubscribersForNotificationOutput), !p.HasNextPage()) {
  1979  			break
  1980  		}
  1981  	}
  1982  
  1983  	return p.Err()
  1984  }
  1985  
  1986  const opExecuteBudgetAction = "ExecuteBudgetAction"
  1987  
  1988  // ExecuteBudgetActionRequest generates a "aws/request.Request" representing the
  1989  // client's request for the ExecuteBudgetAction operation. The "output" return
  1990  // value will be populated with the request's response once the request completes
  1991  // successfully.
  1992  //
  1993  // Use "Send" method on the returned Request to send the API call to the service.
  1994  // the "output" return value is not valid until after Send returns without error.
  1995  //
  1996  // See ExecuteBudgetAction for more information on using the ExecuteBudgetAction
  1997  // API call, and error handling.
  1998  //
  1999  // This method is useful when you want to inject custom logic or configuration
  2000  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2001  //
  2002  //
  2003  //    // Example sending a request using the ExecuteBudgetActionRequest method.
  2004  //    req, resp := client.ExecuteBudgetActionRequest(params)
  2005  //
  2006  //    err := req.Send()
  2007  //    if err == nil { // resp is now filled
  2008  //        fmt.Println(resp)
  2009  //    }
  2010  func (c *Budgets) ExecuteBudgetActionRequest(input *ExecuteBudgetActionInput) (req *request.Request, output *ExecuteBudgetActionOutput) {
  2011  	op := &request.Operation{
  2012  		Name:       opExecuteBudgetAction,
  2013  		HTTPMethod: "POST",
  2014  		HTTPPath:   "/",
  2015  	}
  2016  
  2017  	if input == nil {
  2018  		input = &ExecuteBudgetActionInput{}
  2019  	}
  2020  
  2021  	output = &ExecuteBudgetActionOutput{}
  2022  	req = c.newRequest(op, input, output)
  2023  	return
  2024  }
  2025  
  2026  // ExecuteBudgetAction API operation for AWS Budgets.
  2027  //
  2028  // Executes a budget action.
  2029  //
  2030  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2031  // with awserr.Error's Code and Message methods to get detailed information about
  2032  // the error.
  2033  //
  2034  // See the AWS API reference guide for AWS Budgets's
  2035  // API operation ExecuteBudgetAction for usage and error information.
  2036  //
  2037  // Returned Error Types:
  2038  //   * InternalErrorException
  2039  //   An error on the server occurred during the processing of your request. Try
  2040  //   again later.
  2041  //
  2042  //   * InvalidParameterException
  2043  //   An error on the client occurred. Typically, the cause is an invalid input
  2044  //   value.
  2045  //
  2046  //   * NotFoundException
  2047  //   We can’t locate the resource that you specified.
  2048  //
  2049  //   * AccessDeniedException
  2050  //   You are not authorized to use this operation with the given parameters.
  2051  //
  2052  //   * ResourceLockedException
  2053  //   The request was received and recognized by the server, but the server rejected
  2054  //   that particular method for the requested resource.
  2055  //
  2056  func (c *Budgets) ExecuteBudgetAction(input *ExecuteBudgetActionInput) (*ExecuteBudgetActionOutput, error) {
  2057  	req, out := c.ExecuteBudgetActionRequest(input)
  2058  	return out, req.Send()
  2059  }
  2060  
  2061  // ExecuteBudgetActionWithContext is the same as ExecuteBudgetAction with the addition of
  2062  // the ability to pass a context and additional request options.
  2063  //
  2064  // See ExecuteBudgetAction for details on how to use this API operation.
  2065  //
  2066  // The context must be non-nil and will be used for request cancellation. If
  2067  // the context is nil a panic will occur. In the future the SDK may create
  2068  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2069  // for more information on using Contexts.
  2070  func (c *Budgets) ExecuteBudgetActionWithContext(ctx aws.Context, input *ExecuteBudgetActionInput, opts ...request.Option) (*ExecuteBudgetActionOutput, error) {
  2071  	req, out := c.ExecuteBudgetActionRequest(input)
  2072  	req.SetContext(ctx)
  2073  	req.ApplyOptions(opts...)
  2074  	return out, req.Send()
  2075  }
  2076  
  2077  const opUpdateBudget = "UpdateBudget"
  2078  
  2079  // UpdateBudgetRequest generates a "aws/request.Request" representing the
  2080  // client's request for the UpdateBudget operation. The "output" return
  2081  // value will be populated with the request's response once the request completes
  2082  // successfully.
  2083  //
  2084  // Use "Send" method on the returned Request to send the API call to the service.
  2085  // the "output" return value is not valid until after Send returns without error.
  2086  //
  2087  // See UpdateBudget for more information on using the UpdateBudget
  2088  // API call, and error handling.
  2089  //
  2090  // This method is useful when you want to inject custom logic or configuration
  2091  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2092  //
  2093  //
  2094  //    // Example sending a request using the UpdateBudgetRequest method.
  2095  //    req, resp := client.UpdateBudgetRequest(params)
  2096  //
  2097  //    err := req.Send()
  2098  //    if err == nil { // resp is now filled
  2099  //        fmt.Println(resp)
  2100  //    }
  2101  func (c *Budgets) UpdateBudgetRequest(input *UpdateBudgetInput) (req *request.Request, output *UpdateBudgetOutput) {
  2102  	op := &request.Operation{
  2103  		Name:       opUpdateBudget,
  2104  		HTTPMethod: "POST",
  2105  		HTTPPath:   "/",
  2106  	}
  2107  
  2108  	if input == nil {
  2109  		input = &UpdateBudgetInput{}
  2110  	}
  2111  
  2112  	output = &UpdateBudgetOutput{}
  2113  	req = c.newRequest(op, input, output)
  2114  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2115  	return
  2116  }
  2117  
  2118  // UpdateBudget API operation for AWS Budgets.
  2119  //
  2120  // Updates a budget. You can change every part of a budget except for the budgetName
  2121  // and the calculatedSpend. When you modify a budget, the calculatedSpend drops
  2122  // to zero until AWS has new usage data to use for forecasting.
  2123  //
  2124  // Only one of BudgetLimit or PlannedBudgetLimits can be present in the syntax
  2125  // at one time. Use the syntax that matches your case. The Request Syntax section
  2126  // shows the BudgetLimit syntax. For PlannedBudgetLimits, see the Examples (https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_budgets_UpdateBudget.html#API_UpdateBudget_Examples)
  2127  // section.
  2128  //
  2129  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2130  // with awserr.Error's Code and Message methods to get detailed information about
  2131  // the error.
  2132  //
  2133  // See the AWS API reference guide for AWS Budgets's
  2134  // API operation UpdateBudget for usage and error information.
  2135  //
  2136  // Returned Error Types:
  2137  //   * InternalErrorException
  2138  //   An error on the server occurred during the processing of your request. Try
  2139  //   again later.
  2140  //
  2141  //   * InvalidParameterException
  2142  //   An error on the client occurred. Typically, the cause is an invalid input
  2143  //   value.
  2144  //
  2145  //   * NotFoundException
  2146  //   We can’t locate the resource that you specified.
  2147  //
  2148  //   * AccessDeniedException
  2149  //   You are not authorized to use this operation with the given parameters.
  2150  //
  2151  func (c *Budgets) UpdateBudget(input *UpdateBudgetInput) (*UpdateBudgetOutput, error) {
  2152  	req, out := c.UpdateBudgetRequest(input)
  2153  	return out, req.Send()
  2154  }
  2155  
  2156  // UpdateBudgetWithContext is the same as UpdateBudget with the addition of
  2157  // the ability to pass a context and additional request options.
  2158  //
  2159  // See UpdateBudget for details on how to use this API operation.
  2160  //
  2161  // The context must be non-nil and will be used for request cancellation. If
  2162  // the context is nil a panic will occur. In the future the SDK may create
  2163  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2164  // for more information on using Contexts.
  2165  func (c *Budgets) UpdateBudgetWithContext(ctx aws.Context, input *UpdateBudgetInput, opts ...request.Option) (*UpdateBudgetOutput, error) {
  2166  	req, out := c.UpdateBudgetRequest(input)
  2167  	req.SetContext(ctx)
  2168  	req.ApplyOptions(opts...)
  2169  	return out, req.Send()
  2170  }
  2171  
  2172  const opUpdateBudgetAction = "UpdateBudgetAction"
  2173  
  2174  // UpdateBudgetActionRequest generates a "aws/request.Request" representing the
  2175  // client's request for the UpdateBudgetAction operation. The "output" return
  2176  // value will be populated with the request's response once the request completes
  2177  // successfully.
  2178  //
  2179  // Use "Send" method on the returned Request to send the API call to the service.
  2180  // the "output" return value is not valid until after Send returns without error.
  2181  //
  2182  // See UpdateBudgetAction for more information on using the UpdateBudgetAction
  2183  // API call, and error handling.
  2184  //
  2185  // This method is useful when you want to inject custom logic or configuration
  2186  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2187  //
  2188  //
  2189  //    // Example sending a request using the UpdateBudgetActionRequest method.
  2190  //    req, resp := client.UpdateBudgetActionRequest(params)
  2191  //
  2192  //    err := req.Send()
  2193  //    if err == nil { // resp is now filled
  2194  //        fmt.Println(resp)
  2195  //    }
  2196  func (c *Budgets) UpdateBudgetActionRequest(input *UpdateBudgetActionInput) (req *request.Request, output *UpdateBudgetActionOutput) {
  2197  	op := &request.Operation{
  2198  		Name:       opUpdateBudgetAction,
  2199  		HTTPMethod: "POST",
  2200  		HTTPPath:   "/",
  2201  	}
  2202  
  2203  	if input == nil {
  2204  		input = &UpdateBudgetActionInput{}
  2205  	}
  2206  
  2207  	output = &UpdateBudgetActionOutput{}
  2208  	req = c.newRequest(op, input, output)
  2209  	return
  2210  }
  2211  
  2212  // UpdateBudgetAction API operation for AWS Budgets.
  2213  //
  2214  // Updates a budget action.
  2215  //
  2216  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2217  // with awserr.Error's Code and Message methods to get detailed information about
  2218  // the error.
  2219  //
  2220  // See the AWS API reference guide for AWS Budgets's
  2221  // API operation UpdateBudgetAction for usage and error information.
  2222  //
  2223  // Returned Error Types:
  2224  //   * InternalErrorException
  2225  //   An error on the server occurred during the processing of your request. Try
  2226  //   again later.
  2227  //
  2228  //   * InvalidParameterException
  2229  //   An error on the client occurred. Typically, the cause is an invalid input
  2230  //   value.
  2231  //
  2232  //   * NotFoundException
  2233  //   We can’t locate the resource that you specified.
  2234  //
  2235  //   * AccessDeniedException
  2236  //   You are not authorized to use this operation with the given parameters.
  2237  //
  2238  //   * ResourceLockedException
  2239  //   The request was received and recognized by the server, but the server rejected
  2240  //   that particular method for the requested resource.
  2241  //
  2242  func (c *Budgets) UpdateBudgetAction(input *UpdateBudgetActionInput) (*UpdateBudgetActionOutput, error) {
  2243  	req, out := c.UpdateBudgetActionRequest(input)
  2244  	return out, req.Send()
  2245  }
  2246  
  2247  // UpdateBudgetActionWithContext is the same as UpdateBudgetAction with the addition of
  2248  // the ability to pass a context and additional request options.
  2249  //
  2250  // See UpdateBudgetAction for details on how to use this API operation.
  2251  //
  2252  // The context must be non-nil and will be used for request cancellation. If
  2253  // the context is nil a panic will occur. In the future the SDK may create
  2254  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2255  // for more information on using Contexts.
  2256  func (c *Budgets) UpdateBudgetActionWithContext(ctx aws.Context, input *UpdateBudgetActionInput, opts ...request.Option) (*UpdateBudgetActionOutput, error) {
  2257  	req, out := c.UpdateBudgetActionRequest(input)
  2258  	req.SetContext(ctx)
  2259  	req.ApplyOptions(opts...)
  2260  	return out, req.Send()
  2261  }
  2262  
  2263  const opUpdateNotification = "UpdateNotification"
  2264  
  2265  // UpdateNotificationRequest generates a "aws/request.Request" representing the
  2266  // client's request for the UpdateNotification operation. The "output" return
  2267  // value will be populated with the request's response once the request completes
  2268  // successfully.
  2269  //
  2270  // Use "Send" method on the returned Request to send the API call to the service.
  2271  // the "output" return value is not valid until after Send returns without error.
  2272  //
  2273  // See UpdateNotification for more information on using the UpdateNotification
  2274  // API call, and error handling.
  2275  //
  2276  // This method is useful when you want to inject custom logic or configuration
  2277  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2278  //
  2279  //
  2280  //    // Example sending a request using the UpdateNotificationRequest method.
  2281  //    req, resp := client.UpdateNotificationRequest(params)
  2282  //
  2283  //    err := req.Send()
  2284  //    if err == nil { // resp is now filled
  2285  //        fmt.Println(resp)
  2286  //    }
  2287  func (c *Budgets) UpdateNotificationRequest(input *UpdateNotificationInput) (req *request.Request, output *UpdateNotificationOutput) {
  2288  	op := &request.Operation{
  2289  		Name:       opUpdateNotification,
  2290  		HTTPMethod: "POST",
  2291  		HTTPPath:   "/",
  2292  	}
  2293  
  2294  	if input == nil {
  2295  		input = &UpdateNotificationInput{}
  2296  	}
  2297  
  2298  	output = &UpdateNotificationOutput{}
  2299  	req = c.newRequest(op, input, output)
  2300  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2301  	return
  2302  }
  2303  
  2304  // UpdateNotification API operation for AWS Budgets.
  2305  //
  2306  // Updates a notification.
  2307  //
  2308  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2309  // with awserr.Error's Code and Message methods to get detailed information about
  2310  // the error.
  2311  //
  2312  // See the AWS API reference guide for AWS Budgets's
  2313  // API operation UpdateNotification for usage and error information.
  2314  //
  2315  // Returned Error Types:
  2316  //   * InternalErrorException
  2317  //   An error on the server occurred during the processing of your request. Try
  2318  //   again later.
  2319  //
  2320  //   * InvalidParameterException
  2321  //   An error on the client occurred. Typically, the cause is an invalid input
  2322  //   value.
  2323  //
  2324  //   * NotFoundException
  2325  //   We can’t locate the resource that you specified.
  2326  //
  2327  //   * DuplicateRecordException
  2328  //   The budget name already exists. Budget names must be unique within an account.
  2329  //
  2330  //   * AccessDeniedException
  2331  //   You are not authorized to use this operation with the given parameters.
  2332  //
  2333  func (c *Budgets) UpdateNotification(input *UpdateNotificationInput) (*UpdateNotificationOutput, error) {
  2334  	req, out := c.UpdateNotificationRequest(input)
  2335  	return out, req.Send()
  2336  }
  2337  
  2338  // UpdateNotificationWithContext is the same as UpdateNotification with the addition of
  2339  // the ability to pass a context and additional request options.
  2340  //
  2341  // See UpdateNotification for details on how to use this API operation.
  2342  //
  2343  // The context must be non-nil and will be used for request cancellation. If
  2344  // the context is nil a panic will occur. In the future the SDK may create
  2345  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2346  // for more information on using Contexts.
  2347  func (c *Budgets) UpdateNotificationWithContext(ctx aws.Context, input *UpdateNotificationInput, opts ...request.Option) (*UpdateNotificationOutput, error) {
  2348  	req, out := c.UpdateNotificationRequest(input)
  2349  	req.SetContext(ctx)
  2350  	req.ApplyOptions(opts...)
  2351  	return out, req.Send()
  2352  }
  2353  
  2354  const opUpdateSubscriber = "UpdateSubscriber"
  2355  
  2356  // UpdateSubscriberRequest generates a "aws/request.Request" representing the
  2357  // client's request for the UpdateSubscriber operation. The "output" return
  2358  // value will be populated with the request's response once the request completes
  2359  // successfully.
  2360  //
  2361  // Use "Send" method on the returned Request to send the API call to the service.
  2362  // the "output" return value is not valid until after Send returns without error.
  2363  //
  2364  // See UpdateSubscriber for more information on using the UpdateSubscriber
  2365  // API call, and error handling.
  2366  //
  2367  // This method is useful when you want to inject custom logic or configuration
  2368  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2369  //
  2370  //
  2371  //    // Example sending a request using the UpdateSubscriberRequest method.
  2372  //    req, resp := client.UpdateSubscriberRequest(params)
  2373  //
  2374  //    err := req.Send()
  2375  //    if err == nil { // resp is now filled
  2376  //        fmt.Println(resp)
  2377  //    }
  2378  func (c *Budgets) UpdateSubscriberRequest(input *UpdateSubscriberInput) (req *request.Request, output *UpdateSubscriberOutput) {
  2379  	op := &request.Operation{
  2380  		Name:       opUpdateSubscriber,
  2381  		HTTPMethod: "POST",
  2382  		HTTPPath:   "/",
  2383  	}
  2384  
  2385  	if input == nil {
  2386  		input = &UpdateSubscriberInput{}
  2387  	}
  2388  
  2389  	output = &UpdateSubscriberOutput{}
  2390  	req = c.newRequest(op, input, output)
  2391  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2392  	return
  2393  }
  2394  
  2395  // UpdateSubscriber API operation for AWS Budgets.
  2396  //
  2397  // Updates a subscriber.
  2398  //
  2399  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2400  // with awserr.Error's Code and Message methods to get detailed information about
  2401  // the error.
  2402  //
  2403  // See the AWS API reference guide for AWS Budgets's
  2404  // API operation UpdateSubscriber for usage and error information.
  2405  //
  2406  // Returned Error Types:
  2407  //   * InternalErrorException
  2408  //   An error on the server occurred during the processing of your request. Try
  2409  //   again later.
  2410  //
  2411  //   * InvalidParameterException
  2412  //   An error on the client occurred. Typically, the cause is an invalid input
  2413  //   value.
  2414  //
  2415  //   * NotFoundException
  2416  //   We can’t locate the resource that you specified.
  2417  //
  2418  //   * DuplicateRecordException
  2419  //   The budget name already exists. Budget names must be unique within an account.
  2420  //
  2421  //   * AccessDeniedException
  2422  //   You are not authorized to use this operation with the given parameters.
  2423  //
  2424  func (c *Budgets) UpdateSubscriber(input *UpdateSubscriberInput) (*UpdateSubscriberOutput, error) {
  2425  	req, out := c.UpdateSubscriberRequest(input)
  2426  	return out, req.Send()
  2427  }
  2428  
  2429  // UpdateSubscriberWithContext is the same as UpdateSubscriber with the addition of
  2430  // the ability to pass a context and additional request options.
  2431  //
  2432  // See UpdateSubscriber for details on how to use this API operation.
  2433  //
  2434  // The context must be non-nil and will be used for request cancellation. If
  2435  // the context is nil a panic will occur. In the future the SDK may create
  2436  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2437  // for more information on using Contexts.
  2438  func (c *Budgets) UpdateSubscriberWithContext(ctx aws.Context, input *UpdateSubscriberInput, opts ...request.Option) (*UpdateSubscriberOutput, error) {
  2439  	req, out := c.UpdateSubscriberRequest(input)
  2440  	req.SetContext(ctx)
  2441  	req.ApplyOptions(opts...)
  2442  	return out, req.Send()
  2443  }
  2444  
  2445  // You are not authorized to use this operation with the given parameters.
  2446  type AccessDeniedException struct {
  2447  	_            struct{}                  `type:"structure"`
  2448  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2449  
  2450  	// The error message the exception carries.
  2451  	Message_ *string `locationName:"Message" type:"string"`
  2452  }
  2453  
  2454  // String returns the string representation.
  2455  //
  2456  // API parameter values that are decorated as "sensitive" in the API will not
  2457  // be included in the string output. The member name will be present, but the
  2458  // value will be replaced with "sensitive".
  2459  func (s AccessDeniedException) String() string {
  2460  	return awsutil.Prettify(s)
  2461  }
  2462  
  2463  // GoString returns the string representation.
  2464  //
  2465  // API parameter values that are decorated as "sensitive" in the API will not
  2466  // be included in the string output. The member name will be present, but the
  2467  // value will be replaced with "sensitive".
  2468  func (s AccessDeniedException) GoString() string {
  2469  	return s.String()
  2470  }
  2471  
  2472  func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
  2473  	return &AccessDeniedException{
  2474  		RespMetadata: v,
  2475  	}
  2476  }
  2477  
  2478  // Code returns the exception type name.
  2479  func (s *AccessDeniedException) Code() string {
  2480  	return "AccessDeniedException"
  2481  }
  2482  
  2483  // Message returns the exception's message.
  2484  func (s *AccessDeniedException) Message() string {
  2485  	if s.Message_ != nil {
  2486  		return *s.Message_
  2487  	}
  2488  	return ""
  2489  }
  2490  
  2491  // OrigErr always returns nil, satisfies awserr.Error interface.
  2492  func (s *AccessDeniedException) OrigErr() error {
  2493  	return nil
  2494  }
  2495  
  2496  func (s *AccessDeniedException) Error() string {
  2497  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2498  }
  2499  
  2500  // Status code returns the HTTP status code for the request's response error.
  2501  func (s *AccessDeniedException) StatusCode() int {
  2502  	return s.RespMetadata.StatusCode
  2503  }
  2504  
  2505  // RequestID returns the service's response RequestID for request.
  2506  func (s *AccessDeniedException) RequestID() string {
  2507  	return s.RespMetadata.RequestID
  2508  }
  2509  
  2510  // A budget action resource.
  2511  type Action struct {
  2512  	_ struct{} `type:"structure"`
  2513  
  2514  	// A system-generated universally unique identifier (UUID) for the action.
  2515  	//
  2516  	// ActionId is a required field
  2517  	ActionId *string `min:"36" type:"string" required:"true"`
  2518  
  2519  	// The trigger threshold of the action.
  2520  	//
  2521  	// ActionThreshold is a required field
  2522  	ActionThreshold *ActionThreshold `type:"structure" required:"true"`
  2523  
  2524  	// The type of action. This defines the type of tasks that can be carried out
  2525  	// by this action. This field also determines the format for definition.
  2526  	//
  2527  	// ActionType is a required field
  2528  	ActionType *string `type:"string" required:"true" enum:"ActionType"`
  2529  
  2530  	// This specifies if the action needs manual or automatic approval.
  2531  	//
  2532  	// ApprovalModel is a required field
  2533  	ApprovalModel *string `type:"string" required:"true" enum:"ApprovalModel"`
  2534  
  2535  	// A string that represents the budget name. The ":" and "\" characters aren't
  2536  	// allowed.
  2537  	//
  2538  	// BudgetName is a required field
  2539  	BudgetName *string `min:"1" type:"string" required:"true"`
  2540  
  2541  	// Where you specify all of the type-specific parameters.
  2542  	//
  2543  	// Definition is a required field
  2544  	Definition *Definition `type:"structure" required:"true"`
  2545  
  2546  	// The role passed for action execution and reversion. Roles and actions must
  2547  	// be in the same account.
  2548  	//
  2549  	// ExecutionRoleArn is a required field
  2550  	ExecutionRoleArn *string `min:"32" type:"string" required:"true"`
  2551  
  2552  	// The type of a notification. It must be ACTUAL or FORECASTED.
  2553  	//
  2554  	// NotificationType is a required field
  2555  	NotificationType *string `type:"string" required:"true" enum:"NotificationType"`
  2556  
  2557  	// The status of action.
  2558  	//
  2559  	// Status is a required field
  2560  	Status *string `type:"string" required:"true" enum:"ActionStatus"`
  2561  
  2562  	// A list of subscribers.
  2563  	//
  2564  	// Subscribers is a required field
  2565  	Subscribers []*Subscriber `min:"1" type:"list" required:"true"`
  2566  }
  2567  
  2568  // String returns the string representation.
  2569  //
  2570  // API parameter values that are decorated as "sensitive" in the API will not
  2571  // be included in the string output. The member name will be present, but the
  2572  // value will be replaced with "sensitive".
  2573  func (s Action) String() string {
  2574  	return awsutil.Prettify(s)
  2575  }
  2576  
  2577  // GoString returns the string representation.
  2578  //
  2579  // API parameter values that are decorated as "sensitive" in the API will not
  2580  // be included in the string output. The member name will be present, but the
  2581  // value will be replaced with "sensitive".
  2582  func (s Action) GoString() string {
  2583  	return s.String()
  2584  }
  2585  
  2586  // SetActionId sets the ActionId field's value.
  2587  func (s *Action) SetActionId(v string) *Action {
  2588  	s.ActionId = &v
  2589  	return s
  2590  }
  2591  
  2592  // SetActionThreshold sets the ActionThreshold field's value.
  2593  func (s *Action) SetActionThreshold(v *ActionThreshold) *Action {
  2594  	s.ActionThreshold = v
  2595  	return s
  2596  }
  2597  
  2598  // SetActionType sets the ActionType field's value.
  2599  func (s *Action) SetActionType(v string) *Action {
  2600  	s.ActionType = &v
  2601  	return s
  2602  }
  2603  
  2604  // SetApprovalModel sets the ApprovalModel field's value.
  2605  func (s *Action) SetApprovalModel(v string) *Action {
  2606  	s.ApprovalModel = &v
  2607  	return s
  2608  }
  2609  
  2610  // SetBudgetName sets the BudgetName field's value.
  2611  func (s *Action) SetBudgetName(v string) *Action {
  2612  	s.BudgetName = &v
  2613  	return s
  2614  }
  2615  
  2616  // SetDefinition sets the Definition field's value.
  2617  func (s *Action) SetDefinition(v *Definition) *Action {
  2618  	s.Definition = v
  2619  	return s
  2620  }
  2621  
  2622  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
  2623  func (s *Action) SetExecutionRoleArn(v string) *Action {
  2624  	s.ExecutionRoleArn = &v
  2625  	return s
  2626  }
  2627  
  2628  // SetNotificationType sets the NotificationType field's value.
  2629  func (s *Action) SetNotificationType(v string) *Action {
  2630  	s.NotificationType = &v
  2631  	return s
  2632  }
  2633  
  2634  // SetStatus sets the Status field's value.
  2635  func (s *Action) SetStatus(v string) *Action {
  2636  	s.Status = &v
  2637  	return s
  2638  }
  2639  
  2640  // SetSubscribers sets the Subscribers field's value.
  2641  func (s *Action) SetSubscribers(v []*Subscriber) *Action {
  2642  	s.Subscribers = v
  2643  	return s
  2644  }
  2645  
  2646  // The historical records for a budget action.
  2647  type ActionHistory struct {
  2648  	_ struct{} `type:"structure"`
  2649  
  2650  	// The description of details of the event.
  2651  	//
  2652  	// ActionHistoryDetails is a required field
  2653  	ActionHistoryDetails *ActionHistoryDetails `type:"structure" required:"true"`
  2654  
  2655  	// This distinguishes between whether the events are triggered by the user or
  2656  	// generated by the system.
  2657  	//
  2658  	// EventType is a required field
  2659  	EventType *string `type:"string" required:"true" enum:"EventType"`
  2660  
  2661  	// The status of action at the time of the event.
  2662  	//
  2663  	// Status is a required field
  2664  	Status *string `type:"string" required:"true" enum:"ActionStatus"`
  2665  
  2666  	// A generic time stamp. In Java, it is transformed to a Date object.
  2667  	//
  2668  	// Timestamp is a required field
  2669  	Timestamp *time.Time `type:"timestamp" required:"true"`
  2670  }
  2671  
  2672  // String returns the string representation.
  2673  //
  2674  // API parameter values that are decorated as "sensitive" in the API will not
  2675  // be included in the string output. The member name will be present, but the
  2676  // value will be replaced with "sensitive".
  2677  func (s ActionHistory) String() string {
  2678  	return awsutil.Prettify(s)
  2679  }
  2680  
  2681  // GoString returns the string representation.
  2682  //
  2683  // API parameter values that are decorated as "sensitive" in the API will not
  2684  // be included in the string output. The member name will be present, but the
  2685  // value will be replaced with "sensitive".
  2686  func (s ActionHistory) GoString() string {
  2687  	return s.String()
  2688  }
  2689  
  2690  // SetActionHistoryDetails sets the ActionHistoryDetails field's value.
  2691  func (s *ActionHistory) SetActionHistoryDetails(v *ActionHistoryDetails) *ActionHistory {
  2692  	s.ActionHistoryDetails = v
  2693  	return s
  2694  }
  2695  
  2696  // SetEventType sets the EventType field's value.
  2697  func (s *ActionHistory) SetEventType(v string) *ActionHistory {
  2698  	s.EventType = &v
  2699  	return s
  2700  }
  2701  
  2702  // SetStatus sets the Status field's value.
  2703  func (s *ActionHistory) SetStatus(v string) *ActionHistory {
  2704  	s.Status = &v
  2705  	return s
  2706  }
  2707  
  2708  // SetTimestamp sets the Timestamp field's value.
  2709  func (s *ActionHistory) SetTimestamp(v time.Time) *ActionHistory {
  2710  	s.Timestamp = &v
  2711  	return s
  2712  }
  2713  
  2714  // The description of details of the event.
  2715  type ActionHistoryDetails struct {
  2716  	_ struct{} `type:"structure"`
  2717  
  2718  	// The budget action resource.
  2719  	//
  2720  	// Action is a required field
  2721  	Action *Action `type:"structure" required:"true"`
  2722  
  2723  	// A generic string.
  2724  	//
  2725  	// Message is a required field
  2726  	Message *string `type:"string" required:"true"`
  2727  }
  2728  
  2729  // String 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 ActionHistoryDetails) String() string {
  2735  	return awsutil.Prettify(s)
  2736  }
  2737  
  2738  // GoString returns the string representation.
  2739  //
  2740  // API parameter values that are decorated as "sensitive" in the API will not
  2741  // be included in the string output. The member name will be present, but the
  2742  // value will be replaced with "sensitive".
  2743  func (s ActionHistoryDetails) GoString() string {
  2744  	return s.String()
  2745  }
  2746  
  2747  // SetAction sets the Action field's value.
  2748  func (s *ActionHistoryDetails) SetAction(v *Action) *ActionHistoryDetails {
  2749  	s.Action = v
  2750  	return s
  2751  }
  2752  
  2753  // SetMessage sets the Message field's value.
  2754  func (s *ActionHistoryDetails) SetMessage(v string) *ActionHistoryDetails {
  2755  	s.Message = &v
  2756  	return s
  2757  }
  2758  
  2759  // The trigger threshold of the action.
  2760  type ActionThreshold struct {
  2761  	_ struct{} `type:"structure"`
  2762  
  2763  	// The type of threshold for a notification.
  2764  	//
  2765  	// ActionThresholdType is a required field
  2766  	ActionThresholdType *string `type:"string" required:"true" enum:"ThresholdType"`
  2767  
  2768  	// The threshold of a notification.
  2769  	//
  2770  	// ActionThresholdValue is a required field
  2771  	ActionThresholdValue *float64 `type:"double" required:"true"`
  2772  }
  2773  
  2774  // String returns the string representation.
  2775  //
  2776  // API parameter values that are decorated as "sensitive" in the API will not
  2777  // be included in the string output. The member name will be present, but the
  2778  // value will be replaced with "sensitive".
  2779  func (s ActionThreshold) String() string {
  2780  	return awsutil.Prettify(s)
  2781  }
  2782  
  2783  // GoString returns the string representation.
  2784  //
  2785  // API parameter values that are decorated as "sensitive" in the API will not
  2786  // be included in the string output. The member name will be present, but the
  2787  // value will be replaced with "sensitive".
  2788  func (s ActionThreshold) GoString() string {
  2789  	return s.String()
  2790  }
  2791  
  2792  // Validate inspects the fields of the type to determine if they are valid.
  2793  func (s *ActionThreshold) Validate() error {
  2794  	invalidParams := request.ErrInvalidParams{Context: "ActionThreshold"}
  2795  	if s.ActionThresholdType == nil {
  2796  		invalidParams.Add(request.NewErrParamRequired("ActionThresholdType"))
  2797  	}
  2798  	if s.ActionThresholdValue == nil {
  2799  		invalidParams.Add(request.NewErrParamRequired("ActionThresholdValue"))
  2800  	}
  2801  
  2802  	if invalidParams.Len() > 0 {
  2803  		return invalidParams
  2804  	}
  2805  	return nil
  2806  }
  2807  
  2808  // SetActionThresholdType sets the ActionThresholdType field's value.
  2809  func (s *ActionThreshold) SetActionThresholdType(v string) *ActionThreshold {
  2810  	s.ActionThresholdType = &v
  2811  	return s
  2812  }
  2813  
  2814  // SetActionThresholdValue sets the ActionThresholdValue field's value.
  2815  func (s *ActionThreshold) SetActionThresholdValue(v float64) *ActionThreshold {
  2816  	s.ActionThresholdValue = &v
  2817  	return s
  2818  }
  2819  
  2820  // Represents the output of the CreateBudget operation. The content consists
  2821  // of the detailed metadata and data file information, and the current status
  2822  // of the budget object.
  2823  //
  2824  // This is the ARN pattern for a budget:
  2825  //
  2826  // arn:aws:budgets::AccountId:budget/budgetName
  2827  type Budget struct {
  2828  	_ struct{} `type:"structure"`
  2829  
  2830  	// The total amount of cost, usage, RI utilization, RI coverage, Savings Plans
  2831  	// utilization, or Savings Plans coverage that you want to track with your budget.
  2832  	//
  2833  	// BudgetLimit is required for cost or usage budgets, but optional for RI or
  2834  	// Savings Plans utilization or coverage budgets. RI and Savings Plans utilization
  2835  	// or coverage budgets default to 100, which is the only valid value for RI
  2836  	// or Savings Plans utilization or coverage budgets. You can't use BudgetLimit
  2837  	// with PlannedBudgetLimits for CreateBudget and UpdateBudget actions.
  2838  	BudgetLimit *Spend `type:"structure"`
  2839  
  2840  	// The name of a budget. The name must be unique within an account. The : and
  2841  	// \ characters aren't allowed in BudgetName.
  2842  	//
  2843  	// BudgetName is a required field
  2844  	BudgetName *string `min:"1" type:"string" required:"true"`
  2845  
  2846  	// Whether this budget tracks costs, usage, RI utilization, RI coverage, Savings
  2847  	// Plans utilization, or Savings Plans coverage.
  2848  	//
  2849  	// BudgetType is a required field
  2850  	BudgetType *string `type:"string" required:"true" enum:"BudgetType"`
  2851  
  2852  	// The actual and forecasted cost or usage that the budget tracks.
  2853  	CalculatedSpend *CalculatedSpend `type:"structure"`
  2854  
  2855  	// The cost filters, such as service or tag, that are applied to a budget.
  2856  	//
  2857  	// AWS Budgets supports the following services as a filter for RI budgets:
  2858  	//
  2859  	//    * Amazon Elastic Compute Cloud - Compute
  2860  	//
  2861  	//    * Amazon Redshift
  2862  	//
  2863  	//    * Amazon Relational Database Service
  2864  	//
  2865  	//    * Amazon ElastiCache
  2866  	//
  2867  	//    * Amazon Elasticsearch Service
  2868  	CostFilters map[string][]*string `type:"map"`
  2869  
  2870  	// The types of costs that are included in this COST budget.
  2871  	//
  2872  	// USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, and SAVINGS_PLANS_COVERAGE
  2873  	// budgets do not have CostTypes.
  2874  	CostTypes *CostTypes `type:"structure"`
  2875  
  2876  	// The last time that you updated this budget.
  2877  	LastUpdatedTime *time.Time `type:"timestamp"`
  2878  
  2879  	// A map containing multiple BudgetLimit, including current or future limits.
  2880  	//
  2881  	// PlannedBudgetLimits is available for cost or usage budget and supports monthly
  2882  	// and quarterly TimeUnit.
  2883  	//
  2884  	// For monthly budgets, provide 12 months of PlannedBudgetLimits values. This
  2885  	// must start from the current month and include the next 11 months. The key
  2886  	// is the start of the month, UTC in epoch seconds.
  2887  	//
  2888  	// For quarterly budgets, provide 4 quarters of PlannedBudgetLimits value entries
  2889  	// in standard calendar quarter increments. This must start from the current
  2890  	// quarter and include the next 3 quarters. The key is the start of the quarter,
  2891  	// UTC in epoch seconds.
  2892  	//
  2893  	// If the planned budget expires before 12 months for monthly or 4 quarters
  2894  	// for quarterly, provide the PlannedBudgetLimits values only for the remaining
  2895  	// periods.
  2896  	//
  2897  	// If the budget begins at a date in the future, provide PlannedBudgetLimits
  2898  	// values from the start date of the budget.
  2899  	//
  2900  	// After all of the BudgetLimit values in PlannedBudgetLimits are used, the
  2901  	// budget continues to use the last limit as the BudgetLimit. At that point,
  2902  	// the planned budget provides the same experience as a fixed budget.
  2903  	//
  2904  	// DescribeBudget and DescribeBudgets response along with PlannedBudgetLimits
  2905  	// will also contain BudgetLimit representing the current month or quarter limit
  2906  	// present in PlannedBudgetLimits. This only applies to budgets created with
  2907  	// PlannedBudgetLimits. Budgets created without PlannedBudgetLimits will only
  2908  	// contain BudgetLimit, and no PlannedBudgetLimits.
  2909  	PlannedBudgetLimits map[string]*Spend `type:"map"`
  2910  
  2911  	// The period of time that is covered by a budget. The period has a start date
  2912  	// and an end date. The start date must come before the end date. The end date
  2913  	// must come before 06/15/87 00:00 UTC.
  2914  	//
  2915  	// If you create your budget and don't specify a start date, AWS defaults to
  2916  	// the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY).
  2917  	// For example, if you created your budget on January 24, 2018, chose DAILY,
  2918  	// and didn't set a start date, AWS set your start date to 01/24/18 00:00 UTC.
  2919  	// If you chose MONTHLY, AWS set your start date to 01/01/18 00:00 UTC. If you
  2920  	// didn't specify an end date, AWS set your end date to 06/15/87 00:00 UTC.
  2921  	// The defaults are the same for the AWS Billing and Cost Management console
  2922  	// and the API.
  2923  	//
  2924  	// You can change either date with the UpdateBudget operation.
  2925  	//
  2926  	// After the end date, AWS deletes the budget and all associated notifications
  2927  	// and subscribers.
  2928  	TimePeriod *TimePeriod `type:"structure"`
  2929  
  2930  	// The length of time until a budget resets the actual and forecasted spend.
  2931  	//
  2932  	// TimeUnit is a required field
  2933  	TimeUnit *string `type:"string" required:"true" enum:"TimeUnit"`
  2934  }
  2935  
  2936  // String returns the string representation.
  2937  //
  2938  // API parameter values that are decorated as "sensitive" in the API will not
  2939  // be included in the string output. The member name will be present, but the
  2940  // value will be replaced with "sensitive".
  2941  func (s Budget) String() string {
  2942  	return awsutil.Prettify(s)
  2943  }
  2944  
  2945  // GoString returns the string representation.
  2946  //
  2947  // API parameter values that are decorated as "sensitive" in the API will not
  2948  // be included in the string output. The member name will be present, but the
  2949  // value will be replaced with "sensitive".
  2950  func (s Budget) GoString() string {
  2951  	return s.String()
  2952  }
  2953  
  2954  // Validate inspects the fields of the type to determine if they are valid.
  2955  func (s *Budget) Validate() error {
  2956  	invalidParams := request.ErrInvalidParams{Context: "Budget"}
  2957  	if s.BudgetName == nil {
  2958  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  2959  	}
  2960  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  2961  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  2962  	}
  2963  	if s.BudgetType == nil {
  2964  		invalidParams.Add(request.NewErrParamRequired("BudgetType"))
  2965  	}
  2966  	if s.TimeUnit == nil {
  2967  		invalidParams.Add(request.NewErrParamRequired("TimeUnit"))
  2968  	}
  2969  	if s.BudgetLimit != nil {
  2970  		if err := s.BudgetLimit.Validate(); err != nil {
  2971  			invalidParams.AddNested("BudgetLimit", err.(request.ErrInvalidParams))
  2972  		}
  2973  	}
  2974  	if s.CalculatedSpend != nil {
  2975  		if err := s.CalculatedSpend.Validate(); err != nil {
  2976  			invalidParams.AddNested("CalculatedSpend", err.(request.ErrInvalidParams))
  2977  		}
  2978  	}
  2979  	if s.PlannedBudgetLimits != nil {
  2980  		for i, v := range s.PlannedBudgetLimits {
  2981  			if v == nil {
  2982  				continue
  2983  			}
  2984  			if err := v.Validate(); err != nil {
  2985  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlannedBudgetLimits", i), err.(request.ErrInvalidParams))
  2986  			}
  2987  		}
  2988  	}
  2989  
  2990  	if invalidParams.Len() > 0 {
  2991  		return invalidParams
  2992  	}
  2993  	return nil
  2994  }
  2995  
  2996  // SetBudgetLimit sets the BudgetLimit field's value.
  2997  func (s *Budget) SetBudgetLimit(v *Spend) *Budget {
  2998  	s.BudgetLimit = v
  2999  	return s
  3000  }
  3001  
  3002  // SetBudgetName sets the BudgetName field's value.
  3003  func (s *Budget) SetBudgetName(v string) *Budget {
  3004  	s.BudgetName = &v
  3005  	return s
  3006  }
  3007  
  3008  // SetBudgetType sets the BudgetType field's value.
  3009  func (s *Budget) SetBudgetType(v string) *Budget {
  3010  	s.BudgetType = &v
  3011  	return s
  3012  }
  3013  
  3014  // SetCalculatedSpend sets the CalculatedSpend field's value.
  3015  func (s *Budget) SetCalculatedSpend(v *CalculatedSpend) *Budget {
  3016  	s.CalculatedSpend = v
  3017  	return s
  3018  }
  3019  
  3020  // SetCostFilters sets the CostFilters field's value.
  3021  func (s *Budget) SetCostFilters(v map[string][]*string) *Budget {
  3022  	s.CostFilters = v
  3023  	return s
  3024  }
  3025  
  3026  // SetCostTypes sets the CostTypes field's value.
  3027  func (s *Budget) SetCostTypes(v *CostTypes) *Budget {
  3028  	s.CostTypes = v
  3029  	return s
  3030  }
  3031  
  3032  // SetLastUpdatedTime sets the LastUpdatedTime field's value.
  3033  func (s *Budget) SetLastUpdatedTime(v time.Time) *Budget {
  3034  	s.LastUpdatedTime = &v
  3035  	return s
  3036  }
  3037  
  3038  // SetPlannedBudgetLimits sets the PlannedBudgetLimits field's value.
  3039  func (s *Budget) SetPlannedBudgetLimits(v map[string]*Spend) *Budget {
  3040  	s.PlannedBudgetLimits = v
  3041  	return s
  3042  }
  3043  
  3044  // SetTimePeriod sets the TimePeriod field's value.
  3045  func (s *Budget) SetTimePeriod(v *TimePeriod) *Budget {
  3046  	s.TimePeriod = v
  3047  	return s
  3048  }
  3049  
  3050  // SetTimeUnit sets the TimeUnit field's value.
  3051  func (s *Budget) SetTimeUnit(v string) *Budget {
  3052  	s.TimeUnit = &v
  3053  	return s
  3054  }
  3055  
  3056  // A history of the state of a budget at the end of the budget's specified time
  3057  // period.
  3058  type BudgetPerformanceHistory struct {
  3059  	_ struct{} `type:"structure"`
  3060  
  3061  	// A string that represents the budget name. The ":" and "\" characters aren't
  3062  	// allowed.
  3063  	BudgetName *string `min:"1" type:"string"`
  3064  
  3065  	// The type of a budget. It must be one of the following types:
  3066  	//
  3067  	// COST, USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, or SAVINGS_PLANS_COVERAGE.
  3068  	BudgetType *string `type:"string" enum:"BudgetType"`
  3069  
  3070  	// A list of amounts of cost or usage that you created budgets for, compared
  3071  	// to your actual costs or usage.
  3072  	BudgetedAndActualAmountsList []*BudgetedAndActualAmounts `type:"list"`
  3073  
  3074  	// The history of the cost filters for a budget during the specified time period.
  3075  	CostFilters map[string][]*string `type:"map"`
  3076  
  3077  	// The history of the cost types for a budget during the specified time period.
  3078  	CostTypes *CostTypes `type:"structure"`
  3079  
  3080  	// The time unit of the budget, such as MONTHLY or QUARTERLY.
  3081  	TimeUnit *string `type:"string" enum:"TimeUnit"`
  3082  }
  3083  
  3084  // String returns the string representation.
  3085  //
  3086  // API parameter values that are decorated as "sensitive" in the API will not
  3087  // be included in the string output. The member name will be present, but the
  3088  // value will be replaced with "sensitive".
  3089  func (s BudgetPerformanceHistory) String() string {
  3090  	return awsutil.Prettify(s)
  3091  }
  3092  
  3093  // GoString returns the string representation.
  3094  //
  3095  // API parameter values that are decorated as "sensitive" in the API will not
  3096  // be included in the string output. The member name will be present, but the
  3097  // value will be replaced with "sensitive".
  3098  func (s BudgetPerformanceHistory) GoString() string {
  3099  	return s.String()
  3100  }
  3101  
  3102  // SetBudgetName sets the BudgetName field's value.
  3103  func (s *BudgetPerformanceHistory) SetBudgetName(v string) *BudgetPerformanceHistory {
  3104  	s.BudgetName = &v
  3105  	return s
  3106  }
  3107  
  3108  // SetBudgetType sets the BudgetType field's value.
  3109  func (s *BudgetPerformanceHistory) SetBudgetType(v string) *BudgetPerformanceHistory {
  3110  	s.BudgetType = &v
  3111  	return s
  3112  }
  3113  
  3114  // SetBudgetedAndActualAmountsList sets the BudgetedAndActualAmountsList field's value.
  3115  func (s *BudgetPerformanceHistory) SetBudgetedAndActualAmountsList(v []*BudgetedAndActualAmounts) *BudgetPerformanceHistory {
  3116  	s.BudgetedAndActualAmountsList = v
  3117  	return s
  3118  }
  3119  
  3120  // SetCostFilters sets the CostFilters field's value.
  3121  func (s *BudgetPerformanceHistory) SetCostFilters(v map[string][]*string) *BudgetPerformanceHistory {
  3122  	s.CostFilters = v
  3123  	return s
  3124  }
  3125  
  3126  // SetCostTypes sets the CostTypes field's value.
  3127  func (s *BudgetPerformanceHistory) SetCostTypes(v *CostTypes) *BudgetPerformanceHistory {
  3128  	s.CostTypes = v
  3129  	return s
  3130  }
  3131  
  3132  // SetTimeUnit sets the TimeUnit field's value.
  3133  func (s *BudgetPerformanceHistory) SetTimeUnit(v string) *BudgetPerformanceHistory {
  3134  	s.TimeUnit = &v
  3135  	return s
  3136  }
  3137  
  3138  // The amount of cost or usage that you created the budget for, compared to
  3139  // your actual costs or usage.
  3140  type BudgetedAndActualAmounts struct {
  3141  	_ struct{} `type:"structure"`
  3142  
  3143  	// Your actual costs or usage for a budget period.
  3144  	ActualAmount *Spend `type:"structure"`
  3145  
  3146  	// The amount of cost or usage that you created the budget for.
  3147  	BudgetedAmount *Spend `type:"structure"`
  3148  
  3149  	// The time period covered by this budget comparison.
  3150  	TimePeriod *TimePeriod `type:"structure"`
  3151  }
  3152  
  3153  // String returns the string representation.
  3154  //
  3155  // API parameter values that are decorated as "sensitive" in the API will not
  3156  // be included in the string output. The member name will be present, but the
  3157  // value will be replaced with "sensitive".
  3158  func (s BudgetedAndActualAmounts) String() string {
  3159  	return awsutil.Prettify(s)
  3160  }
  3161  
  3162  // GoString returns the string representation.
  3163  //
  3164  // API parameter values that are decorated as "sensitive" in the API will not
  3165  // be included in the string output. The member name will be present, but the
  3166  // value will be replaced with "sensitive".
  3167  func (s BudgetedAndActualAmounts) GoString() string {
  3168  	return s.String()
  3169  }
  3170  
  3171  // SetActualAmount sets the ActualAmount field's value.
  3172  func (s *BudgetedAndActualAmounts) SetActualAmount(v *Spend) *BudgetedAndActualAmounts {
  3173  	s.ActualAmount = v
  3174  	return s
  3175  }
  3176  
  3177  // SetBudgetedAmount sets the BudgetedAmount field's value.
  3178  func (s *BudgetedAndActualAmounts) SetBudgetedAmount(v *Spend) *BudgetedAndActualAmounts {
  3179  	s.BudgetedAmount = v
  3180  	return s
  3181  }
  3182  
  3183  // SetTimePeriod sets the TimePeriod field's value.
  3184  func (s *BudgetedAndActualAmounts) SetTimePeriod(v *TimePeriod) *BudgetedAndActualAmounts {
  3185  	s.TimePeriod = v
  3186  	return s
  3187  }
  3188  
  3189  // The spend objects that are associated with this budget. The actualSpend tracks
  3190  // how much you've used, cost, usage, RI units, or Savings Plans units and the
  3191  // forecastedSpend tracks how much you are predicted to spend based on your
  3192  // historical usage profile.
  3193  //
  3194  // For example, if it is the 20th of the month and you have spent 50 dollars
  3195  // on Amazon EC2, your actualSpend is 50 USD, and your forecastedSpend is 75
  3196  // USD.
  3197  type CalculatedSpend struct {
  3198  	_ struct{} `type:"structure"`
  3199  
  3200  	// The amount of cost, usage, RI units, or Savings Plans units that you have
  3201  	// used.
  3202  	//
  3203  	// ActualSpend is a required field
  3204  	ActualSpend *Spend `type:"structure" required:"true"`
  3205  
  3206  	// The amount of cost, usage, RI units, or Savings Plans units that you are
  3207  	// forecasted to use.
  3208  	ForecastedSpend *Spend `type:"structure"`
  3209  }
  3210  
  3211  // String returns the string representation.
  3212  //
  3213  // API parameter values that are decorated as "sensitive" in the API will not
  3214  // be included in the string output. The member name will be present, but the
  3215  // value will be replaced with "sensitive".
  3216  func (s CalculatedSpend) String() string {
  3217  	return awsutil.Prettify(s)
  3218  }
  3219  
  3220  // GoString returns the string representation.
  3221  //
  3222  // API parameter values that are decorated as "sensitive" in the API will not
  3223  // be included in the string output. The member name will be present, but the
  3224  // value will be replaced with "sensitive".
  3225  func (s CalculatedSpend) GoString() string {
  3226  	return s.String()
  3227  }
  3228  
  3229  // Validate inspects the fields of the type to determine if they are valid.
  3230  func (s *CalculatedSpend) Validate() error {
  3231  	invalidParams := request.ErrInvalidParams{Context: "CalculatedSpend"}
  3232  	if s.ActualSpend == nil {
  3233  		invalidParams.Add(request.NewErrParamRequired("ActualSpend"))
  3234  	}
  3235  	if s.ActualSpend != nil {
  3236  		if err := s.ActualSpend.Validate(); err != nil {
  3237  			invalidParams.AddNested("ActualSpend", err.(request.ErrInvalidParams))
  3238  		}
  3239  	}
  3240  	if s.ForecastedSpend != nil {
  3241  		if err := s.ForecastedSpend.Validate(); err != nil {
  3242  			invalidParams.AddNested("ForecastedSpend", err.(request.ErrInvalidParams))
  3243  		}
  3244  	}
  3245  
  3246  	if invalidParams.Len() > 0 {
  3247  		return invalidParams
  3248  	}
  3249  	return nil
  3250  }
  3251  
  3252  // SetActualSpend sets the ActualSpend field's value.
  3253  func (s *CalculatedSpend) SetActualSpend(v *Spend) *CalculatedSpend {
  3254  	s.ActualSpend = v
  3255  	return s
  3256  }
  3257  
  3258  // SetForecastedSpend sets the ForecastedSpend field's value.
  3259  func (s *CalculatedSpend) SetForecastedSpend(v *Spend) *CalculatedSpend {
  3260  	s.ForecastedSpend = v
  3261  	return s
  3262  }
  3263  
  3264  // The types of cost that are included in a COST budget, such as tax and subscriptions.
  3265  //
  3266  // USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, and SAVINGS_PLANS_COVERAGE
  3267  // budgets do not have CostTypes.
  3268  type CostTypes struct {
  3269  	_ struct{} `type:"structure"`
  3270  
  3271  	// Specifies whether a budget includes credits.
  3272  	//
  3273  	// The default value is true.
  3274  	IncludeCredit *bool `type:"boolean"`
  3275  
  3276  	// Specifies whether a budget includes discounts.
  3277  	//
  3278  	// The default value is true.
  3279  	IncludeDiscount *bool `type:"boolean"`
  3280  
  3281  	// Specifies whether a budget includes non-RI subscription costs.
  3282  	//
  3283  	// The default value is true.
  3284  	IncludeOtherSubscription *bool `type:"boolean"`
  3285  
  3286  	// Specifies whether a budget includes recurring fees such as monthly RI fees.
  3287  	//
  3288  	// The default value is true.
  3289  	IncludeRecurring *bool `type:"boolean"`
  3290  
  3291  	// Specifies whether a budget includes refunds.
  3292  	//
  3293  	// The default value is true.
  3294  	IncludeRefund *bool `type:"boolean"`
  3295  
  3296  	// Specifies whether a budget includes subscriptions.
  3297  	//
  3298  	// The default value is true.
  3299  	IncludeSubscription *bool `type:"boolean"`
  3300  
  3301  	// Specifies whether a budget includes support subscription fees.
  3302  	//
  3303  	// The default value is true.
  3304  	IncludeSupport *bool `type:"boolean"`
  3305  
  3306  	// Specifies whether a budget includes taxes.
  3307  	//
  3308  	// The default value is true.
  3309  	IncludeTax *bool `type:"boolean"`
  3310  
  3311  	// Specifies whether a budget includes upfront RI costs.
  3312  	//
  3313  	// The default value is true.
  3314  	IncludeUpfront *bool `type:"boolean"`
  3315  
  3316  	// Specifies whether a budget uses the amortized rate.
  3317  	//
  3318  	// The default value is false.
  3319  	UseAmortized *bool `type:"boolean"`
  3320  
  3321  	// Specifies whether a budget uses a blended rate.
  3322  	//
  3323  	// The default value is false.
  3324  	UseBlended *bool `type:"boolean"`
  3325  }
  3326  
  3327  // String returns the string representation.
  3328  //
  3329  // API parameter values that are decorated as "sensitive" in the API will not
  3330  // be included in the string output. The member name will be present, but the
  3331  // value will be replaced with "sensitive".
  3332  func (s CostTypes) String() string {
  3333  	return awsutil.Prettify(s)
  3334  }
  3335  
  3336  // GoString returns the string representation.
  3337  //
  3338  // API parameter values that are decorated as "sensitive" in the API will not
  3339  // be included in the string output. The member name will be present, but the
  3340  // value will be replaced with "sensitive".
  3341  func (s CostTypes) GoString() string {
  3342  	return s.String()
  3343  }
  3344  
  3345  // SetIncludeCredit sets the IncludeCredit field's value.
  3346  func (s *CostTypes) SetIncludeCredit(v bool) *CostTypes {
  3347  	s.IncludeCredit = &v
  3348  	return s
  3349  }
  3350  
  3351  // SetIncludeDiscount sets the IncludeDiscount field's value.
  3352  func (s *CostTypes) SetIncludeDiscount(v bool) *CostTypes {
  3353  	s.IncludeDiscount = &v
  3354  	return s
  3355  }
  3356  
  3357  // SetIncludeOtherSubscription sets the IncludeOtherSubscription field's value.
  3358  func (s *CostTypes) SetIncludeOtherSubscription(v bool) *CostTypes {
  3359  	s.IncludeOtherSubscription = &v
  3360  	return s
  3361  }
  3362  
  3363  // SetIncludeRecurring sets the IncludeRecurring field's value.
  3364  func (s *CostTypes) SetIncludeRecurring(v bool) *CostTypes {
  3365  	s.IncludeRecurring = &v
  3366  	return s
  3367  }
  3368  
  3369  // SetIncludeRefund sets the IncludeRefund field's value.
  3370  func (s *CostTypes) SetIncludeRefund(v bool) *CostTypes {
  3371  	s.IncludeRefund = &v
  3372  	return s
  3373  }
  3374  
  3375  // SetIncludeSubscription sets the IncludeSubscription field's value.
  3376  func (s *CostTypes) SetIncludeSubscription(v bool) *CostTypes {
  3377  	s.IncludeSubscription = &v
  3378  	return s
  3379  }
  3380  
  3381  // SetIncludeSupport sets the IncludeSupport field's value.
  3382  func (s *CostTypes) SetIncludeSupport(v bool) *CostTypes {
  3383  	s.IncludeSupport = &v
  3384  	return s
  3385  }
  3386  
  3387  // SetIncludeTax sets the IncludeTax field's value.
  3388  func (s *CostTypes) SetIncludeTax(v bool) *CostTypes {
  3389  	s.IncludeTax = &v
  3390  	return s
  3391  }
  3392  
  3393  // SetIncludeUpfront sets the IncludeUpfront field's value.
  3394  func (s *CostTypes) SetIncludeUpfront(v bool) *CostTypes {
  3395  	s.IncludeUpfront = &v
  3396  	return s
  3397  }
  3398  
  3399  // SetUseAmortized sets the UseAmortized field's value.
  3400  func (s *CostTypes) SetUseAmortized(v bool) *CostTypes {
  3401  	s.UseAmortized = &v
  3402  	return s
  3403  }
  3404  
  3405  // SetUseBlended sets the UseBlended field's value.
  3406  func (s *CostTypes) SetUseBlended(v bool) *CostTypes {
  3407  	s.UseBlended = &v
  3408  	return s
  3409  }
  3410  
  3411  type CreateBudgetActionInput struct {
  3412  	_ struct{} `type:"structure"`
  3413  
  3414  	// The account ID of the user. It should be a 12-digit number.
  3415  	//
  3416  	// AccountId is a required field
  3417  	AccountId *string `min:"12" type:"string" required:"true"`
  3418  
  3419  	// The trigger threshold of the action.
  3420  	//
  3421  	// ActionThreshold is a required field
  3422  	ActionThreshold *ActionThreshold `type:"structure" required:"true"`
  3423  
  3424  	// The type of action. This defines the type of tasks that can be carried out
  3425  	// by this action. This field also determines the format for definition.
  3426  	//
  3427  	// ActionType is a required field
  3428  	ActionType *string `type:"string" required:"true" enum:"ActionType"`
  3429  
  3430  	// This specifies if the action needs manual or automatic approval.
  3431  	//
  3432  	// ApprovalModel is a required field
  3433  	ApprovalModel *string `type:"string" required:"true" enum:"ApprovalModel"`
  3434  
  3435  	// A string that represents the budget name. The ":" and "\" characters aren't
  3436  	// allowed.
  3437  	//
  3438  	// BudgetName is a required field
  3439  	BudgetName *string `min:"1" type:"string" required:"true"`
  3440  
  3441  	// Specifies all of the type-specific parameters.
  3442  	//
  3443  	// Definition is a required field
  3444  	Definition *Definition `type:"structure" required:"true"`
  3445  
  3446  	// The role passed for action execution and reversion. Roles and actions must
  3447  	// be in the same account.
  3448  	//
  3449  	// ExecutionRoleArn is a required field
  3450  	ExecutionRoleArn *string `min:"32" type:"string" required:"true"`
  3451  
  3452  	// The type of a notification. It must be ACTUAL or FORECASTED.
  3453  	//
  3454  	// NotificationType is a required field
  3455  	NotificationType *string `type:"string" required:"true" enum:"NotificationType"`
  3456  
  3457  	// A list of subscribers.
  3458  	//
  3459  	// Subscribers is a required field
  3460  	Subscribers []*Subscriber `min:"1" type:"list" required:"true"`
  3461  }
  3462  
  3463  // String returns the string representation.
  3464  //
  3465  // API parameter values that are decorated as "sensitive" in the API will not
  3466  // be included in the string output. The member name will be present, but the
  3467  // value will be replaced with "sensitive".
  3468  func (s CreateBudgetActionInput) String() string {
  3469  	return awsutil.Prettify(s)
  3470  }
  3471  
  3472  // GoString returns the string representation.
  3473  //
  3474  // API parameter values that are decorated as "sensitive" in the API will not
  3475  // be included in the string output. The member name will be present, but the
  3476  // value will be replaced with "sensitive".
  3477  func (s CreateBudgetActionInput) GoString() string {
  3478  	return s.String()
  3479  }
  3480  
  3481  // Validate inspects the fields of the type to determine if they are valid.
  3482  func (s *CreateBudgetActionInput) Validate() error {
  3483  	invalidParams := request.ErrInvalidParams{Context: "CreateBudgetActionInput"}
  3484  	if s.AccountId == nil {
  3485  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3486  	}
  3487  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  3488  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  3489  	}
  3490  	if s.ActionThreshold == nil {
  3491  		invalidParams.Add(request.NewErrParamRequired("ActionThreshold"))
  3492  	}
  3493  	if s.ActionType == nil {
  3494  		invalidParams.Add(request.NewErrParamRequired("ActionType"))
  3495  	}
  3496  	if s.ApprovalModel == nil {
  3497  		invalidParams.Add(request.NewErrParamRequired("ApprovalModel"))
  3498  	}
  3499  	if s.BudgetName == nil {
  3500  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  3501  	}
  3502  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  3503  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  3504  	}
  3505  	if s.Definition == nil {
  3506  		invalidParams.Add(request.NewErrParamRequired("Definition"))
  3507  	}
  3508  	if s.ExecutionRoleArn == nil {
  3509  		invalidParams.Add(request.NewErrParamRequired("ExecutionRoleArn"))
  3510  	}
  3511  	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 32 {
  3512  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 32))
  3513  	}
  3514  	if s.NotificationType == nil {
  3515  		invalidParams.Add(request.NewErrParamRequired("NotificationType"))
  3516  	}
  3517  	if s.Subscribers == nil {
  3518  		invalidParams.Add(request.NewErrParamRequired("Subscribers"))
  3519  	}
  3520  	if s.Subscribers != nil && len(s.Subscribers) < 1 {
  3521  		invalidParams.Add(request.NewErrParamMinLen("Subscribers", 1))
  3522  	}
  3523  	if s.ActionThreshold != nil {
  3524  		if err := s.ActionThreshold.Validate(); err != nil {
  3525  			invalidParams.AddNested("ActionThreshold", err.(request.ErrInvalidParams))
  3526  		}
  3527  	}
  3528  	if s.Definition != nil {
  3529  		if err := s.Definition.Validate(); err != nil {
  3530  			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
  3531  		}
  3532  	}
  3533  	if s.Subscribers != nil {
  3534  		for i, v := range s.Subscribers {
  3535  			if v == nil {
  3536  				continue
  3537  			}
  3538  			if err := v.Validate(); err != nil {
  3539  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams))
  3540  			}
  3541  		}
  3542  	}
  3543  
  3544  	if invalidParams.Len() > 0 {
  3545  		return invalidParams
  3546  	}
  3547  	return nil
  3548  }
  3549  
  3550  // SetAccountId sets the AccountId field's value.
  3551  func (s *CreateBudgetActionInput) SetAccountId(v string) *CreateBudgetActionInput {
  3552  	s.AccountId = &v
  3553  	return s
  3554  }
  3555  
  3556  // SetActionThreshold sets the ActionThreshold field's value.
  3557  func (s *CreateBudgetActionInput) SetActionThreshold(v *ActionThreshold) *CreateBudgetActionInput {
  3558  	s.ActionThreshold = v
  3559  	return s
  3560  }
  3561  
  3562  // SetActionType sets the ActionType field's value.
  3563  func (s *CreateBudgetActionInput) SetActionType(v string) *CreateBudgetActionInput {
  3564  	s.ActionType = &v
  3565  	return s
  3566  }
  3567  
  3568  // SetApprovalModel sets the ApprovalModel field's value.
  3569  func (s *CreateBudgetActionInput) SetApprovalModel(v string) *CreateBudgetActionInput {
  3570  	s.ApprovalModel = &v
  3571  	return s
  3572  }
  3573  
  3574  // SetBudgetName sets the BudgetName field's value.
  3575  func (s *CreateBudgetActionInput) SetBudgetName(v string) *CreateBudgetActionInput {
  3576  	s.BudgetName = &v
  3577  	return s
  3578  }
  3579  
  3580  // SetDefinition sets the Definition field's value.
  3581  func (s *CreateBudgetActionInput) SetDefinition(v *Definition) *CreateBudgetActionInput {
  3582  	s.Definition = v
  3583  	return s
  3584  }
  3585  
  3586  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
  3587  func (s *CreateBudgetActionInput) SetExecutionRoleArn(v string) *CreateBudgetActionInput {
  3588  	s.ExecutionRoleArn = &v
  3589  	return s
  3590  }
  3591  
  3592  // SetNotificationType sets the NotificationType field's value.
  3593  func (s *CreateBudgetActionInput) SetNotificationType(v string) *CreateBudgetActionInput {
  3594  	s.NotificationType = &v
  3595  	return s
  3596  }
  3597  
  3598  // SetSubscribers sets the Subscribers field's value.
  3599  func (s *CreateBudgetActionInput) SetSubscribers(v []*Subscriber) *CreateBudgetActionInput {
  3600  	s.Subscribers = v
  3601  	return s
  3602  }
  3603  
  3604  type CreateBudgetActionOutput struct {
  3605  	_ struct{} `type:"structure"`
  3606  
  3607  	// The account ID of the user. It should be a 12-digit number.
  3608  	//
  3609  	// AccountId is a required field
  3610  	AccountId *string `min:"12" type:"string" required:"true"`
  3611  
  3612  	// A system-generated universally unique identifier (UUID) for the action.
  3613  	//
  3614  	// ActionId is a required field
  3615  	ActionId *string `min:"36" type:"string" required:"true"`
  3616  
  3617  	// A string that represents the budget name. The ":" and "\" characters aren't
  3618  	// allowed.
  3619  	//
  3620  	// BudgetName is a required field
  3621  	BudgetName *string `min:"1" type:"string" required:"true"`
  3622  }
  3623  
  3624  // String returns the string representation.
  3625  //
  3626  // API parameter values that are decorated as "sensitive" in the API will not
  3627  // be included in the string output. The member name will be present, but the
  3628  // value will be replaced with "sensitive".
  3629  func (s CreateBudgetActionOutput) String() string {
  3630  	return awsutil.Prettify(s)
  3631  }
  3632  
  3633  // GoString returns the string representation.
  3634  //
  3635  // API parameter values that are decorated as "sensitive" in the API will not
  3636  // be included in the string output. The member name will be present, but the
  3637  // value will be replaced with "sensitive".
  3638  func (s CreateBudgetActionOutput) GoString() string {
  3639  	return s.String()
  3640  }
  3641  
  3642  // SetAccountId sets the AccountId field's value.
  3643  func (s *CreateBudgetActionOutput) SetAccountId(v string) *CreateBudgetActionOutput {
  3644  	s.AccountId = &v
  3645  	return s
  3646  }
  3647  
  3648  // SetActionId sets the ActionId field's value.
  3649  func (s *CreateBudgetActionOutput) SetActionId(v string) *CreateBudgetActionOutput {
  3650  	s.ActionId = &v
  3651  	return s
  3652  }
  3653  
  3654  // SetBudgetName sets the BudgetName field's value.
  3655  func (s *CreateBudgetActionOutput) SetBudgetName(v string) *CreateBudgetActionOutput {
  3656  	s.BudgetName = &v
  3657  	return s
  3658  }
  3659  
  3660  // Request of CreateBudget
  3661  type CreateBudgetInput struct {
  3662  	_ struct{} `type:"structure"`
  3663  
  3664  	// The accountId that is associated with the budget.
  3665  	//
  3666  	// AccountId is a required field
  3667  	AccountId *string `min:"12" type:"string" required:"true"`
  3668  
  3669  	// The budget object that you want to create.
  3670  	//
  3671  	// Budget is a required field
  3672  	Budget *Budget `type:"structure" required:"true"`
  3673  
  3674  	// A notification that you want to associate with a budget. A budget can have
  3675  	// up to five notifications, and each notification can have one SNS subscriber
  3676  	// and up to 10 email subscribers. If you include notifications and subscribers
  3677  	// in your CreateBudget call, AWS creates the notifications and subscribers
  3678  	// for you.
  3679  	NotificationsWithSubscribers []*NotificationWithSubscribers `type:"list"`
  3680  }
  3681  
  3682  // String returns the string representation.
  3683  //
  3684  // API parameter values that are decorated as "sensitive" in the API will not
  3685  // be included in the string output. The member name will be present, but the
  3686  // value will be replaced with "sensitive".
  3687  func (s CreateBudgetInput) String() string {
  3688  	return awsutil.Prettify(s)
  3689  }
  3690  
  3691  // GoString returns the string representation.
  3692  //
  3693  // API parameter values that are decorated as "sensitive" in the API will not
  3694  // be included in the string output. The member name will be present, but the
  3695  // value will be replaced with "sensitive".
  3696  func (s CreateBudgetInput) GoString() string {
  3697  	return s.String()
  3698  }
  3699  
  3700  // Validate inspects the fields of the type to determine if they are valid.
  3701  func (s *CreateBudgetInput) Validate() error {
  3702  	invalidParams := request.ErrInvalidParams{Context: "CreateBudgetInput"}
  3703  	if s.AccountId == nil {
  3704  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3705  	}
  3706  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  3707  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  3708  	}
  3709  	if s.Budget == nil {
  3710  		invalidParams.Add(request.NewErrParamRequired("Budget"))
  3711  	}
  3712  	if s.Budget != nil {
  3713  		if err := s.Budget.Validate(); err != nil {
  3714  			invalidParams.AddNested("Budget", err.(request.ErrInvalidParams))
  3715  		}
  3716  	}
  3717  	if s.NotificationsWithSubscribers != nil {
  3718  		for i, v := range s.NotificationsWithSubscribers {
  3719  			if v == nil {
  3720  				continue
  3721  			}
  3722  			if err := v.Validate(); err != nil {
  3723  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NotificationsWithSubscribers", i), err.(request.ErrInvalidParams))
  3724  			}
  3725  		}
  3726  	}
  3727  
  3728  	if invalidParams.Len() > 0 {
  3729  		return invalidParams
  3730  	}
  3731  	return nil
  3732  }
  3733  
  3734  // SetAccountId sets the AccountId field's value.
  3735  func (s *CreateBudgetInput) SetAccountId(v string) *CreateBudgetInput {
  3736  	s.AccountId = &v
  3737  	return s
  3738  }
  3739  
  3740  // SetBudget sets the Budget field's value.
  3741  func (s *CreateBudgetInput) SetBudget(v *Budget) *CreateBudgetInput {
  3742  	s.Budget = v
  3743  	return s
  3744  }
  3745  
  3746  // SetNotificationsWithSubscribers sets the NotificationsWithSubscribers field's value.
  3747  func (s *CreateBudgetInput) SetNotificationsWithSubscribers(v []*NotificationWithSubscribers) *CreateBudgetInput {
  3748  	s.NotificationsWithSubscribers = v
  3749  	return s
  3750  }
  3751  
  3752  // Response of CreateBudget
  3753  type CreateBudgetOutput struct {
  3754  	_ struct{} `type:"structure"`
  3755  }
  3756  
  3757  // String returns the string representation.
  3758  //
  3759  // API parameter values that are decorated as "sensitive" in the API will not
  3760  // be included in the string output. The member name will be present, but the
  3761  // value will be replaced with "sensitive".
  3762  func (s CreateBudgetOutput) String() string {
  3763  	return awsutil.Prettify(s)
  3764  }
  3765  
  3766  // GoString returns the string representation.
  3767  //
  3768  // API parameter values that are decorated as "sensitive" in the API will not
  3769  // be included in the string output. The member name will be present, but the
  3770  // value will be replaced with "sensitive".
  3771  func (s CreateBudgetOutput) GoString() string {
  3772  	return s.String()
  3773  }
  3774  
  3775  // Request of CreateNotification
  3776  type CreateNotificationInput struct {
  3777  	_ struct{} `type:"structure"`
  3778  
  3779  	// The accountId that is associated with the budget that you want to create
  3780  	// a notification for.
  3781  	//
  3782  	// AccountId is a required field
  3783  	AccountId *string `min:"12" type:"string" required:"true"`
  3784  
  3785  	// The name of the budget that you want AWS to notify you about. Budget names
  3786  	// must be unique within an account.
  3787  	//
  3788  	// BudgetName is a required field
  3789  	BudgetName *string `min:"1" type:"string" required:"true"`
  3790  
  3791  	// The notification that you want to create.
  3792  	//
  3793  	// Notification is a required field
  3794  	Notification *Notification `type:"structure" required:"true"`
  3795  
  3796  	// A list of subscribers that you want to associate with the notification. Each
  3797  	// notification can have one SNS subscriber and up to 10 email subscribers.
  3798  	//
  3799  	// Subscribers is a required field
  3800  	Subscribers []*Subscriber `min:"1" type:"list" required:"true"`
  3801  }
  3802  
  3803  // String returns the string representation.
  3804  //
  3805  // API parameter values that are decorated as "sensitive" in the API will not
  3806  // be included in the string output. The member name will be present, but the
  3807  // value will be replaced with "sensitive".
  3808  func (s CreateNotificationInput) String() string {
  3809  	return awsutil.Prettify(s)
  3810  }
  3811  
  3812  // GoString returns the string representation.
  3813  //
  3814  // API parameter values that are decorated as "sensitive" in the API will not
  3815  // be included in the string output. The member name will be present, but the
  3816  // value will be replaced with "sensitive".
  3817  func (s CreateNotificationInput) GoString() string {
  3818  	return s.String()
  3819  }
  3820  
  3821  // Validate inspects the fields of the type to determine if they are valid.
  3822  func (s *CreateNotificationInput) Validate() error {
  3823  	invalidParams := request.ErrInvalidParams{Context: "CreateNotificationInput"}
  3824  	if s.AccountId == nil {
  3825  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3826  	}
  3827  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  3828  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  3829  	}
  3830  	if s.BudgetName == nil {
  3831  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  3832  	}
  3833  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  3834  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  3835  	}
  3836  	if s.Notification == nil {
  3837  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  3838  	}
  3839  	if s.Subscribers == nil {
  3840  		invalidParams.Add(request.NewErrParamRequired("Subscribers"))
  3841  	}
  3842  	if s.Subscribers != nil && len(s.Subscribers) < 1 {
  3843  		invalidParams.Add(request.NewErrParamMinLen("Subscribers", 1))
  3844  	}
  3845  	if s.Notification != nil {
  3846  		if err := s.Notification.Validate(); err != nil {
  3847  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  3848  		}
  3849  	}
  3850  	if s.Subscribers != nil {
  3851  		for i, v := range s.Subscribers {
  3852  			if v == nil {
  3853  				continue
  3854  			}
  3855  			if err := v.Validate(); err != nil {
  3856  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams))
  3857  			}
  3858  		}
  3859  	}
  3860  
  3861  	if invalidParams.Len() > 0 {
  3862  		return invalidParams
  3863  	}
  3864  	return nil
  3865  }
  3866  
  3867  // SetAccountId sets the AccountId field's value.
  3868  func (s *CreateNotificationInput) SetAccountId(v string) *CreateNotificationInput {
  3869  	s.AccountId = &v
  3870  	return s
  3871  }
  3872  
  3873  // SetBudgetName sets the BudgetName field's value.
  3874  func (s *CreateNotificationInput) SetBudgetName(v string) *CreateNotificationInput {
  3875  	s.BudgetName = &v
  3876  	return s
  3877  }
  3878  
  3879  // SetNotification sets the Notification field's value.
  3880  func (s *CreateNotificationInput) SetNotification(v *Notification) *CreateNotificationInput {
  3881  	s.Notification = v
  3882  	return s
  3883  }
  3884  
  3885  // SetSubscribers sets the Subscribers field's value.
  3886  func (s *CreateNotificationInput) SetSubscribers(v []*Subscriber) *CreateNotificationInput {
  3887  	s.Subscribers = v
  3888  	return s
  3889  }
  3890  
  3891  // Response of CreateNotification
  3892  type CreateNotificationOutput struct {
  3893  	_ struct{} `type:"structure"`
  3894  }
  3895  
  3896  // String returns the string representation.
  3897  //
  3898  // API parameter values that are decorated as "sensitive" in the API will not
  3899  // be included in the string output. The member name will be present, but the
  3900  // value will be replaced with "sensitive".
  3901  func (s CreateNotificationOutput) String() string {
  3902  	return awsutil.Prettify(s)
  3903  }
  3904  
  3905  // GoString returns the string representation.
  3906  //
  3907  // API parameter values that are decorated as "sensitive" in the API will not
  3908  // be included in the string output. The member name will be present, but the
  3909  // value will be replaced with "sensitive".
  3910  func (s CreateNotificationOutput) GoString() string {
  3911  	return s.String()
  3912  }
  3913  
  3914  // Request of CreateSubscriber
  3915  type CreateSubscriberInput struct {
  3916  	_ struct{} `type:"structure"`
  3917  
  3918  	// The accountId that is associated with the budget that you want to create
  3919  	// a subscriber for.
  3920  	//
  3921  	// AccountId is a required field
  3922  	AccountId *string `min:"12" type:"string" required:"true"`
  3923  
  3924  	// The name of the budget that you want to subscribe to. Budget names must be
  3925  	// unique within an account.
  3926  	//
  3927  	// BudgetName is a required field
  3928  	BudgetName *string `min:"1" type:"string" required:"true"`
  3929  
  3930  	// The notification that you want to create a subscriber for.
  3931  	//
  3932  	// Notification is a required field
  3933  	Notification *Notification `type:"structure" required:"true"`
  3934  
  3935  	// The subscriber that you want to associate with a budget notification.
  3936  	//
  3937  	// Subscriber is a required field
  3938  	Subscriber *Subscriber `type:"structure" required:"true"`
  3939  }
  3940  
  3941  // String returns the string representation.
  3942  //
  3943  // API parameter values that are decorated as "sensitive" in the API will not
  3944  // be included in the string output. The member name will be present, but the
  3945  // value will be replaced with "sensitive".
  3946  func (s CreateSubscriberInput) String() string {
  3947  	return awsutil.Prettify(s)
  3948  }
  3949  
  3950  // GoString returns the string representation.
  3951  //
  3952  // API parameter values that are decorated as "sensitive" in the API will not
  3953  // be included in the string output. The member name will be present, but the
  3954  // value will be replaced with "sensitive".
  3955  func (s CreateSubscriberInput) GoString() string {
  3956  	return s.String()
  3957  }
  3958  
  3959  // Validate inspects the fields of the type to determine if they are valid.
  3960  func (s *CreateSubscriberInput) Validate() error {
  3961  	invalidParams := request.ErrInvalidParams{Context: "CreateSubscriberInput"}
  3962  	if s.AccountId == nil {
  3963  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3964  	}
  3965  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  3966  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  3967  	}
  3968  	if s.BudgetName == nil {
  3969  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  3970  	}
  3971  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  3972  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  3973  	}
  3974  	if s.Notification == nil {
  3975  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  3976  	}
  3977  	if s.Subscriber == nil {
  3978  		invalidParams.Add(request.NewErrParamRequired("Subscriber"))
  3979  	}
  3980  	if s.Notification != nil {
  3981  		if err := s.Notification.Validate(); err != nil {
  3982  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  3983  		}
  3984  	}
  3985  	if s.Subscriber != nil {
  3986  		if err := s.Subscriber.Validate(); err != nil {
  3987  			invalidParams.AddNested("Subscriber", err.(request.ErrInvalidParams))
  3988  		}
  3989  	}
  3990  
  3991  	if invalidParams.Len() > 0 {
  3992  		return invalidParams
  3993  	}
  3994  	return nil
  3995  }
  3996  
  3997  // SetAccountId sets the AccountId field's value.
  3998  func (s *CreateSubscriberInput) SetAccountId(v string) *CreateSubscriberInput {
  3999  	s.AccountId = &v
  4000  	return s
  4001  }
  4002  
  4003  // SetBudgetName sets the BudgetName field's value.
  4004  func (s *CreateSubscriberInput) SetBudgetName(v string) *CreateSubscriberInput {
  4005  	s.BudgetName = &v
  4006  	return s
  4007  }
  4008  
  4009  // SetNotification sets the Notification field's value.
  4010  func (s *CreateSubscriberInput) SetNotification(v *Notification) *CreateSubscriberInput {
  4011  	s.Notification = v
  4012  	return s
  4013  }
  4014  
  4015  // SetSubscriber sets the Subscriber field's value.
  4016  func (s *CreateSubscriberInput) SetSubscriber(v *Subscriber) *CreateSubscriberInput {
  4017  	s.Subscriber = v
  4018  	return s
  4019  }
  4020  
  4021  // Response of CreateSubscriber
  4022  type CreateSubscriberOutput struct {
  4023  	_ struct{} `type:"structure"`
  4024  }
  4025  
  4026  // String returns the string representation.
  4027  //
  4028  // API parameter values that are decorated as "sensitive" in the API will not
  4029  // be included in the string output. The member name will be present, but the
  4030  // value will be replaced with "sensitive".
  4031  func (s CreateSubscriberOutput) String() string {
  4032  	return awsutil.Prettify(s)
  4033  }
  4034  
  4035  // GoString returns the string representation.
  4036  //
  4037  // API parameter values that are decorated as "sensitive" in the API will not
  4038  // be included in the string output. The member name will be present, but the
  4039  // value will be replaced with "sensitive".
  4040  func (s CreateSubscriberOutput) GoString() string {
  4041  	return s.String()
  4042  }
  4043  
  4044  // You've exceeded the notification or subscriber limit.
  4045  type CreationLimitExceededException struct {
  4046  	_            struct{}                  `type:"structure"`
  4047  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4048  
  4049  	// The error message the exception carries.
  4050  	Message_ *string `locationName:"Message" type:"string"`
  4051  }
  4052  
  4053  // String returns the string representation.
  4054  //
  4055  // API parameter values that are decorated as "sensitive" in the API will not
  4056  // be included in the string output. The member name will be present, but the
  4057  // value will be replaced with "sensitive".
  4058  func (s CreationLimitExceededException) String() string {
  4059  	return awsutil.Prettify(s)
  4060  }
  4061  
  4062  // GoString returns the string representation.
  4063  //
  4064  // API parameter values that are decorated as "sensitive" in the API will not
  4065  // be included in the string output. The member name will be present, but the
  4066  // value will be replaced with "sensitive".
  4067  func (s CreationLimitExceededException) GoString() string {
  4068  	return s.String()
  4069  }
  4070  
  4071  func newErrorCreationLimitExceededException(v protocol.ResponseMetadata) error {
  4072  	return &CreationLimitExceededException{
  4073  		RespMetadata: v,
  4074  	}
  4075  }
  4076  
  4077  // Code returns the exception type name.
  4078  func (s *CreationLimitExceededException) Code() string {
  4079  	return "CreationLimitExceededException"
  4080  }
  4081  
  4082  // Message returns the exception's message.
  4083  func (s *CreationLimitExceededException) Message() string {
  4084  	if s.Message_ != nil {
  4085  		return *s.Message_
  4086  	}
  4087  	return ""
  4088  }
  4089  
  4090  // OrigErr always returns nil, satisfies awserr.Error interface.
  4091  func (s *CreationLimitExceededException) OrigErr() error {
  4092  	return nil
  4093  }
  4094  
  4095  func (s *CreationLimitExceededException) Error() string {
  4096  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  4097  }
  4098  
  4099  // Status code returns the HTTP status code for the request's response error.
  4100  func (s *CreationLimitExceededException) StatusCode() int {
  4101  	return s.RespMetadata.StatusCode
  4102  }
  4103  
  4104  // RequestID returns the service's response RequestID for request.
  4105  func (s *CreationLimitExceededException) RequestID() string {
  4106  	return s.RespMetadata.RequestID
  4107  }
  4108  
  4109  // Specifies all of the type-specific parameters.
  4110  type Definition struct {
  4111  	_ struct{} `type:"structure"`
  4112  
  4113  	// The AWS Identity and Access Management (IAM) action definition details.
  4114  	IamActionDefinition *IamActionDefinition `type:"structure"`
  4115  
  4116  	// The service control policies (SCPs) action definition details.
  4117  	ScpActionDefinition *ScpActionDefinition `type:"structure"`
  4118  
  4119  	// The AWS Systems Manager (SSM) action definition details.
  4120  	SsmActionDefinition *SsmActionDefinition `type:"structure"`
  4121  }
  4122  
  4123  // String returns the string representation.
  4124  //
  4125  // API parameter values that are decorated as "sensitive" in the API will not
  4126  // be included in the string output. The member name will be present, but the
  4127  // value will be replaced with "sensitive".
  4128  func (s Definition) String() string {
  4129  	return awsutil.Prettify(s)
  4130  }
  4131  
  4132  // GoString returns the string representation.
  4133  //
  4134  // API parameter values that are decorated as "sensitive" in the API will not
  4135  // be included in the string output. The member name will be present, but the
  4136  // value will be replaced with "sensitive".
  4137  func (s Definition) GoString() string {
  4138  	return s.String()
  4139  }
  4140  
  4141  // Validate inspects the fields of the type to determine if they are valid.
  4142  func (s *Definition) Validate() error {
  4143  	invalidParams := request.ErrInvalidParams{Context: "Definition"}
  4144  	if s.IamActionDefinition != nil {
  4145  		if err := s.IamActionDefinition.Validate(); err != nil {
  4146  			invalidParams.AddNested("IamActionDefinition", err.(request.ErrInvalidParams))
  4147  		}
  4148  	}
  4149  	if s.ScpActionDefinition != nil {
  4150  		if err := s.ScpActionDefinition.Validate(); err != nil {
  4151  			invalidParams.AddNested("ScpActionDefinition", err.(request.ErrInvalidParams))
  4152  		}
  4153  	}
  4154  	if s.SsmActionDefinition != nil {
  4155  		if err := s.SsmActionDefinition.Validate(); err != nil {
  4156  			invalidParams.AddNested("SsmActionDefinition", err.(request.ErrInvalidParams))
  4157  		}
  4158  	}
  4159  
  4160  	if invalidParams.Len() > 0 {
  4161  		return invalidParams
  4162  	}
  4163  	return nil
  4164  }
  4165  
  4166  // SetIamActionDefinition sets the IamActionDefinition field's value.
  4167  func (s *Definition) SetIamActionDefinition(v *IamActionDefinition) *Definition {
  4168  	s.IamActionDefinition = v
  4169  	return s
  4170  }
  4171  
  4172  // SetScpActionDefinition sets the ScpActionDefinition field's value.
  4173  func (s *Definition) SetScpActionDefinition(v *ScpActionDefinition) *Definition {
  4174  	s.ScpActionDefinition = v
  4175  	return s
  4176  }
  4177  
  4178  // SetSsmActionDefinition sets the SsmActionDefinition field's value.
  4179  func (s *Definition) SetSsmActionDefinition(v *SsmActionDefinition) *Definition {
  4180  	s.SsmActionDefinition = v
  4181  	return s
  4182  }
  4183  
  4184  type DeleteBudgetActionInput struct {
  4185  	_ struct{} `type:"structure"`
  4186  
  4187  	// The account ID of the user. It should be a 12-digit number.
  4188  	//
  4189  	// AccountId is a required field
  4190  	AccountId *string `min:"12" type:"string" required:"true"`
  4191  
  4192  	// A system-generated universally unique identifier (UUID) for the action.
  4193  	//
  4194  	// ActionId is a required field
  4195  	ActionId *string `min:"36" type:"string" required:"true"`
  4196  
  4197  	// A string that represents the budget name. The ":" and "\" characters aren't
  4198  	// allowed.
  4199  	//
  4200  	// BudgetName is a required field
  4201  	BudgetName *string `min:"1" type:"string" required:"true"`
  4202  }
  4203  
  4204  // String returns the string representation.
  4205  //
  4206  // API parameter values that are decorated as "sensitive" in the API will not
  4207  // be included in the string output. The member name will be present, but the
  4208  // value will be replaced with "sensitive".
  4209  func (s DeleteBudgetActionInput) String() string {
  4210  	return awsutil.Prettify(s)
  4211  }
  4212  
  4213  // GoString returns the string representation.
  4214  //
  4215  // API parameter values that are decorated as "sensitive" in the API will not
  4216  // be included in the string output. The member name will be present, but the
  4217  // value will be replaced with "sensitive".
  4218  func (s DeleteBudgetActionInput) GoString() string {
  4219  	return s.String()
  4220  }
  4221  
  4222  // Validate inspects the fields of the type to determine if they are valid.
  4223  func (s *DeleteBudgetActionInput) Validate() error {
  4224  	invalidParams := request.ErrInvalidParams{Context: "DeleteBudgetActionInput"}
  4225  	if s.AccountId == nil {
  4226  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4227  	}
  4228  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4229  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4230  	}
  4231  	if s.ActionId == nil {
  4232  		invalidParams.Add(request.NewErrParamRequired("ActionId"))
  4233  	}
  4234  	if s.ActionId != nil && len(*s.ActionId) < 36 {
  4235  		invalidParams.Add(request.NewErrParamMinLen("ActionId", 36))
  4236  	}
  4237  	if s.BudgetName == nil {
  4238  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  4239  	}
  4240  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  4241  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  4242  	}
  4243  
  4244  	if invalidParams.Len() > 0 {
  4245  		return invalidParams
  4246  	}
  4247  	return nil
  4248  }
  4249  
  4250  // SetAccountId sets the AccountId field's value.
  4251  func (s *DeleteBudgetActionInput) SetAccountId(v string) *DeleteBudgetActionInput {
  4252  	s.AccountId = &v
  4253  	return s
  4254  }
  4255  
  4256  // SetActionId sets the ActionId field's value.
  4257  func (s *DeleteBudgetActionInput) SetActionId(v string) *DeleteBudgetActionInput {
  4258  	s.ActionId = &v
  4259  	return s
  4260  }
  4261  
  4262  // SetBudgetName sets the BudgetName field's value.
  4263  func (s *DeleteBudgetActionInput) SetBudgetName(v string) *DeleteBudgetActionInput {
  4264  	s.BudgetName = &v
  4265  	return s
  4266  }
  4267  
  4268  type DeleteBudgetActionOutput struct {
  4269  	_ struct{} `type:"structure"`
  4270  
  4271  	// The account ID of the user. It should be a 12-digit number.
  4272  	//
  4273  	// AccountId is a required field
  4274  	AccountId *string `min:"12" type:"string" required:"true"`
  4275  
  4276  	// A budget action resource.
  4277  	//
  4278  	// Action is a required field
  4279  	Action *Action `type:"structure" required:"true"`
  4280  
  4281  	// A string that represents the budget name. The ":" and "\" characters aren't
  4282  	// allowed.
  4283  	//
  4284  	// BudgetName is a required field
  4285  	BudgetName *string `min:"1" type:"string" required:"true"`
  4286  }
  4287  
  4288  // String returns the string representation.
  4289  //
  4290  // API parameter values that are decorated as "sensitive" in the API will not
  4291  // be included in the string output. The member name will be present, but the
  4292  // value will be replaced with "sensitive".
  4293  func (s DeleteBudgetActionOutput) String() string {
  4294  	return awsutil.Prettify(s)
  4295  }
  4296  
  4297  // GoString returns the string representation.
  4298  //
  4299  // API parameter values that are decorated as "sensitive" in the API will not
  4300  // be included in the string output. The member name will be present, but the
  4301  // value will be replaced with "sensitive".
  4302  func (s DeleteBudgetActionOutput) GoString() string {
  4303  	return s.String()
  4304  }
  4305  
  4306  // SetAccountId sets the AccountId field's value.
  4307  func (s *DeleteBudgetActionOutput) SetAccountId(v string) *DeleteBudgetActionOutput {
  4308  	s.AccountId = &v
  4309  	return s
  4310  }
  4311  
  4312  // SetAction sets the Action field's value.
  4313  func (s *DeleteBudgetActionOutput) SetAction(v *Action) *DeleteBudgetActionOutput {
  4314  	s.Action = v
  4315  	return s
  4316  }
  4317  
  4318  // SetBudgetName sets the BudgetName field's value.
  4319  func (s *DeleteBudgetActionOutput) SetBudgetName(v string) *DeleteBudgetActionOutput {
  4320  	s.BudgetName = &v
  4321  	return s
  4322  }
  4323  
  4324  // Request of DeleteBudget
  4325  type DeleteBudgetInput struct {
  4326  	_ struct{} `type:"structure"`
  4327  
  4328  	// The accountId that is associated with the budget that you want to delete.
  4329  	//
  4330  	// AccountId is a required field
  4331  	AccountId *string `min:"12" type:"string" required:"true"`
  4332  
  4333  	// The name of the budget that you want to delete.
  4334  	//
  4335  	// BudgetName is a required field
  4336  	BudgetName *string `min:"1" type:"string" required:"true"`
  4337  }
  4338  
  4339  // String returns the string representation.
  4340  //
  4341  // API parameter values that are decorated as "sensitive" in the API will not
  4342  // be included in the string output. The member name will be present, but the
  4343  // value will be replaced with "sensitive".
  4344  func (s DeleteBudgetInput) String() string {
  4345  	return awsutil.Prettify(s)
  4346  }
  4347  
  4348  // GoString returns the string representation.
  4349  //
  4350  // API parameter values that are decorated as "sensitive" in the API will not
  4351  // be included in the string output. The member name will be present, but the
  4352  // value will be replaced with "sensitive".
  4353  func (s DeleteBudgetInput) GoString() string {
  4354  	return s.String()
  4355  }
  4356  
  4357  // Validate inspects the fields of the type to determine if they are valid.
  4358  func (s *DeleteBudgetInput) Validate() error {
  4359  	invalidParams := request.ErrInvalidParams{Context: "DeleteBudgetInput"}
  4360  	if s.AccountId == nil {
  4361  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4362  	}
  4363  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4364  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4365  	}
  4366  	if s.BudgetName == nil {
  4367  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  4368  	}
  4369  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  4370  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  4371  	}
  4372  
  4373  	if invalidParams.Len() > 0 {
  4374  		return invalidParams
  4375  	}
  4376  	return nil
  4377  }
  4378  
  4379  // SetAccountId sets the AccountId field's value.
  4380  func (s *DeleteBudgetInput) SetAccountId(v string) *DeleteBudgetInput {
  4381  	s.AccountId = &v
  4382  	return s
  4383  }
  4384  
  4385  // SetBudgetName sets the BudgetName field's value.
  4386  func (s *DeleteBudgetInput) SetBudgetName(v string) *DeleteBudgetInput {
  4387  	s.BudgetName = &v
  4388  	return s
  4389  }
  4390  
  4391  // Response of DeleteBudget
  4392  type DeleteBudgetOutput struct {
  4393  	_ struct{} `type:"structure"`
  4394  }
  4395  
  4396  // String returns the string representation.
  4397  //
  4398  // API parameter values that are decorated as "sensitive" in the API will not
  4399  // be included in the string output. The member name will be present, but the
  4400  // value will be replaced with "sensitive".
  4401  func (s DeleteBudgetOutput) String() string {
  4402  	return awsutil.Prettify(s)
  4403  }
  4404  
  4405  // GoString returns the string representation.
  4406  //
  4407  // API parameter values that are decorated as "sensitive" in the API will not
  4408  // be included in the string output. The member name will be present, but the
  4409  // value will be replaced with "sensitive".
  4410  func (s DeleteBudgetOutput) GoString() string {
  4411  	return s.String()
  4412  }
  4413  
  4414  // Request of DeleteNotification
  4415  type DeleteNotificationInput struct {
  4416  	_ struct{} `type:"structure"`
  4417  
  4418  	// The accountId that is associated with the budget whose notification you want
  4419  	// to delete.
  4420  	//
  4421  	// AccountId is a required field
  4422  	AccountId *string `min:"12" type:"string" required:"true"`
  4423  
  4424  	// The name of the budget whose notification you want to delete.
  4425  	//
  4426  	// BudgetName is a required field
  4427  	BudgetName *string `min:"1" type:"string" required:"true"`
  4428  
  4429  	// The notification that you want to delete.
  4430  	//
  4431  	// Notification is a required field
  4432  	Notification *Notification `type:"structure" required:"true"`
  4433  }
  4434  
  4435  // String returns the string representation.
  4436  //
  4437  // API parameter values that are decorated as "sensitive" in the API will not
  4438  // be included in the string output. The member name will be present, but the
  4439  // value will be replaced with "sensitive".
  4440  func (s DeleteNotificationInput) String() string {
  4441  	return awsutil.Prettify(s)
  4442  }
  4443  
  4444  // GoString returns the string representation.
  4445  //
  4446  // API parameter values that are decorated as "sensitive" in the API will not
  4447  // be included in the string output. The member name will be present, but the
  4448  // value will be replaced with "sensitive".
  4449  func (s DeleteNotificationInput) GoString() string {
  4450  	return s.String()
  4451  }
  4452  
  4453  // Validate inspects the fields of the type to determine if they are valid.
  4454  func (s *DeleteNotificationInput) Validate() error {
  4455  	invalidParams := request.ErrInvalidParams{Context: "DeleteNotificationInput"}
  4456  	if s.AccountId == nil {
  4457  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4458  	}
  4459  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4460  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4461  	}
  4462  	if s.BudgetName == nil {
  4463  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  4464  	}
  4465  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  4466  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  4467  	}
  4468  	if s.Notification == nil {
  4469  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  4470  	}
  4471  	if s.Notification != nil {
  4472  		if err := s.Notification.Validate(); err != nil {
  4473  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  4474  		}
  4475  	}
  4476  
  4477  	if invalidParams.Len() > 0 {
  4478  		return invalidParams
  4479  	}
  4480  	return nil
  4481  }
  4482  
  4483  // SetAccountId sets the AccountId field's value.
  4484  func (s *DeleteNotificationInput) SetAccountId(v string) *DeleteNotificationInput {
  4485  	s.AccountId = &v
  4486  	return s
  4487  }
  4488  
  4489  // SetBudgetName sets the BudgetName field's value.
  4490  func (s *DeleteNotificationInput) SetBudgetName(v string) *DeleteNotificationInput {
  4491  	s.BudgetName = &v
  4492  	return s
  4493  }
  4494  
  4495  // SetNotification sets the Notification field's value.
  4496  func (s *DeleteNotificationInput) SetNotification(v *Notification) *DeleteNotificationInput {
  4497  	s.Notification = v
  4498  	return s
  4499  }
  4500  
  4501  // Response of DeleteNotification
  4502  type DeleteNotificationOutput struct {
  4503  	_ struct{} `type:"structure"`
  4504  }
  4505  
  4506  // String returns the string representation.
  4507  //
  4508  // API parameter values that are decorated as "sensitive" in the API will not
  4509  // be included in the string output. The member name will be present, but the
  4510  // value will be replaced with "sensitive".
  4511  func (s DeleteNotificationOutput) String() string {
  4512  	return awsutil.Prettify(s)
  4513  }
  4514  
  4515  // GoString returns the string representation.
  4516  //
  4517  // API parameter values that are decorated as "sensitive" in the API will not
  4518  // be included in the string output. The member name will be present, but the
  4519  // value will be replaced with "sensitive".
  4520  func (s DeleteNotificationOutput) GoString() string {
  4521  	return s.String()
  4522  }
  4523  
  4524  // Request of DeleteSubscriber
  4525  type DeleteSubscriberInput struct {
  4526  	_ struct{} `type:"structure"`
  4527  
  4528  	// The accountId that is associated with the budget whose subscriber you want
  4529  	// to delete.
  4530  	//
  4531  	// AccountId is a required field
  4532  	AccountId *string `min:"12" type:"string" required:"true"`
  4533  
  4534  	// The name of the budget whose subscriber you want to delete.
  4535  	//
  4536  	// BudgetName is a required field
  4537  	BudgetName *string `min:"1" type:"string" required:"true"`
  4538  
  4539  	// The notification whose subscriber you want to delete.
  4540  	//
  4541  	// Notification is a required field
  4542  	Notification *Notification `type:"structure" required:"true"`
  4543  
  4544  	// The subscriber that you want to delete.
  4545  	//
  4546  	// Subscriber is a required field
  4547  	Subscriber *Subscriber `type:"structure" required:"true"`
  4548  }
  4549  
  4550  // String returns the string representation.
  4551  //
  4552  // API parameter values that are decorated as "sensitive" in the API will not
  4553  // be included in the string output. The member name will be present, but the
  4554  // value will be replaced with "sensitive".
  4555  func (s DeleteSubscriberInput) String() string {
  4556  	return awsutil.Prettify(s)
  4557  }
  4558  
  4559  // GoString returns the string representation.
  4560  //
  4561  // API parameter values that are decorated as "sensitive" in the API will not
  4562  // be included in the string output. The member name will be present, but the
  4563  // value will be replaced with "sensitive".
  4564  func (s DeleteSubscriberInput) GoString() string {
  4565  	return s.String()
  4566  }
  4567  
  4568  // Validate inspects the fields of the type to determine if they are valid.
  4569  func (s *DeleteSubscriberInput) Validate() error {
  4570  	invalidParams := request.ErrInvalidParams{Context: "DeleteSubscriberInput"}
  4571  	if s.AccountId == nil {
  4572  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4573  	}
  4574  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4575  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4576  	}
  4577  	if s.BudgetName == nil {
  4578  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  4579  	}
  4580  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  4581  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  4582  	}
  4583  	if s.Notification == nil {
  4584  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  4585  	}
  4586  	if s.Subscriber == nil {
  4587  		invalidParams.Add(request.NewErrParamRequired("Subscriber"))
  4588  	}
  4589  	if s.Notification != nil {
  4590  		if err := s.Notification.Validate(); err != nil {
  4591  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  4592  		}
  4593  	}
  4594  	if s.Subscriber != nil {
  4595  		if err := s.Subscriber.Validate(); err != nil {
  4596  			invalidParams.AddNested("Subscriber", err.(request.ErrInvalidParams))
  4597  		}
  4598  	}
  4599  
  4600  	if invalidParams.Len() > 0 {
  4601  		return invalidParams
  4602  	}
  4603  	return nil
  4604  }
  4605  
  4606  // SetAccountId sets the AccountId field's value.
  4607  func (s *DeleteSubscriberInput) SetAccountId(v string) *DeleteSubscriberInput {
  4608  	s.AccountId = &v
  4609  	return s
  4610  }
  4611  
  4612  // SetBudgetName sets the BudgetName field's value.
  4613  func (s *DeleteSubscriberInput) SetBudgetName(v string) *DeleteSubscriberInput {
  4614  	s.BudgetName = &v
  4615  	return s
  4616  }
  4617  
  4618  // SetNotification sets the Notification field's value.
  4619  func (s *DeleteSubscriberInput) SetNotification(v *Notification) *DeleteSubscriberInput {
  4620  	s.Notification = v
  4621  	return s
  4622  }
  4623  
  4624  // SetSubscriber sets the Subscriber field's value.
  4625  func (s *DeleteSubscriberInput) SetSubscriber(v *Subscriber) *DeleteSubscriberInput {
  4626  	s.Subscriber = v
  4627  	return s
  4628  }
  4629  
  4630  // Response of DeleteSubscriber
  4631  type DeleteSubscriberOutput struct {
  4632  	_ struct{} `type:"structure"`
  4633  }
  4634  
  4635  // String returns the string representation.
  4636  //
  4637  // API parameter values that are decorated as "sensitive" in the API will not
  4638  // be included in the string output. The member name will be present, but the
  4639  // value will be replaced with "sensitive".
  4640  func (s DeleteSubscriberOutput) String() string {
  4641  	return awsutil.Prettify(s)
  4642  }
  4643  
  4644  // GoString returns the string representation.
  4645  //
  4646  // API parameter values that are decorated as "sensitive" in the API will not
  4647  // be included in the string output. The member name will be present, but the
  4648  // value will be replaced with "sensitive".
  4649  func (s DeleteSubscriberOutput) GoString() string {
  4650  	return s.String()
  4651  }
  4652  
  4653  type DescribeBudgetActionHistoriesInput struct {
  4654  	_ struct{} `type:"structure"`
  4655  
  4656  	// The account ID of the user. It should be a 12-digit number.
  4657  	//
  4658  	// AccountId is a required field
  4659  	AccountId *string `min:"12" type:"string" required:"true"`
  4660  
  4661  	// A system-generated universally unique identifier (UUID) for the action.
  4662  	//
  4663  	// ActionId is a required field
  4664  	ActionId *string `min:"36" type:"string" required:"true"`
  4665  
  4666  	// A string that represents the budget name. The ":" and "\" characters aren't
  4667  	// allowed.
  4668  	//
  4669  	// BudgetName is a required field
  4670  	BudgetName *string `min:"1" type:"string" required:"true"`
  4671  
  4672  	// An integer that represents how many entries a paginated response contains.
  4673  	// The maximum is 100.
  4674  	MaxResults *int64 `min:"1" type:"integer"`
  4675  
  4676  	// A generic string.
  4677  	NextToken *string `type:"string"`
  4678  
  4679  	// The period of time that is covered by a budget. The period has a start date
  4680  	// and an end date. The start date must come before the end date. There are
  4681  	// no restrictions on the end date.
  4682  	TimePeriod *TimePeriod `type:"structure"`
  4683  }
  4684  
  4685  // String returns the string representation.
  4686  //
  4687  // API parameter values that are decorated as "sensitive" in the API will not
  4688  // be included in the string output. The member name will be present, but the
  4689  // value will be replaced with "sensitive".
  4690  func (s DescribeBudgetActionHistoriesInput) String() string {
  4691  	return awsutil.Prettify(s)
  4692  }
  4693  
  4694  // GoString returns the string representation.
  4695  //
  4696  // API parameter values that are decorated as "sensitive" in the API will not
  4697  // be included in the string output. The member name will be present, but the
  4698  // value will be replaced with "sensitive".
  4699  func (s DescribeBudgetActionHistoriesInput) GoString() string {
  4700  	return s.String()
  4701  }
  4702  
  4703  // Validate inspects the fields of the type to determine if they are valid.
  4704  func (s *DescribeBudgetActionHistoriesInput) Validate() error {
  4705  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetActionHistoriesInput"}
  4706  	if s.AccountId == nil {
  4707  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4708  	}
  4709  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4710  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4711  	}
  4712  	if s.ActionId == nil {
  4713  		invalidParams.Add(request.NewErrParamRequired("ActionId"))
  4714  	}
  4715  	if s.ActionId != nil && len(*s.ActionId) < 36 {
  4716  		invalidParams.Add(request.NewErrParamMinLen("ActionId", 36))
  4717  	}
  4718  	if s.BudgetName == nil {
  4719  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  4720  	}
  4721  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  4722  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  4723  	}
  4724  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4725  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4726  	}
  4727  
  4728  	if invalidParams.Len() > 0 {
  4729  		return invalidParams
  4730  	}
  4731  	return nil
  4732  }
  4733  
  4734  // SetAccountId sets the AccountId field's value.
  4735  func (s *DescribeBudgetActionHistoriesInput) SetAccountId(v string) *DescribeBudgetActionHistoriesInput {
  4736  	s.AccountId = &v
  4737  	return s
  4738  }
  4739  
  4740  // SetActionId sets the ActionId field's value.
  4741  func (s *DescribeBudgetActionHistoriesInput) SetActionId(v string) *DescribeBudgetActionHistoriesInput {
  4742  	s.ActionId = &v
  4743  	return s
  4744  }
  4745  
  4746  // SetBudgetName sets the BudgetName field's value.
  4747  func (s *DescribeBudgetActionHistoriesInput) SetBudgetName(v string) *DescribeBudgetActionHistoriesInput {
  4748  	s.BudgetName = &v
  4749  	return s
  4750  }
  4751  
  4752  // SetMaxResults sets the MaxResults field's value.
  4753  func (s *DescribeBudgetActionHistoriesInput) SetMaxResults(v int64) *DescribeBudgetActionHistoriesInput {
  4754  	s.MaxResults = &v
  4755  	return s
  4756  }
  4757  
  4758  // SetNextToken sets the NextToken field's value.
  4759  func (s *DescribeBudgetActionHistoriesInput) SetNextToken(v string) *DescribeBudgetActionHistoriesInput {
  4760  	s.NextToken = &v
  4761  	return s
  4762  }
  4763  
  4764  // SetTimePeriod sets the TimePeriod field's value.
  4765  func (s *DescribeBudgetActionHistoriesInput) SetTimePeriod(v *TimePeriod) *DescribeBudgetActionHistoriesInput {
  4766  	s.TimePeriod = v
  4767  	return s
  4768  }
  4769  
  4770  type DescribeBudgetActionHistoriesOutput struct {
  4771  	_ struct{} `type:"structure"`
  4772  
  4773  	// The historical record of the budget action resource.
  4774  	//
  4775  	// ActionHistories is a required field
  4776  	ActionHistories []*ActionHistory `type:"list" required:"true"`
  4777  
  4778  	// A generic string.
  4779  	NextToken *string `type:"string"`
  4780  }
  4781  
  4782  // String returns the string representation.
  4783  //
  4784  // API parameter values that are decorated as "sensitive" in the API will not
  4785  // be included in the string output. The member name will be present, but the
  4786  // value will be replaced with "sensitive".
  4787  func (s DescribeBudgetActionHistoriesOutput) String() string {
  4788  	return awsutil.Prettify(s)
  4789  }
  4790  
  4791  // GoString returns the string representation.
  4792  //
  4793  // API parameter values that are decorated as "sensitive" in the API will not
  4794  // be included in the string output. The member name will be present, but the
  4795  // value will be replaced with "sensitive".
  4796  func (s DescribeBudgetActionHistoriesOutput) GoString() string {
  4797  	return s.String()
  4798  }
  4799  
  4800  // SetActionHistories sets the ActionHistories field's value.
  4801  func (s *DescribeBudgetActionHistoriesOutput) SetActionHistories(v []*ActionHistory) *DescribeBudgetActionHistoriesOutput {
  4802  	s.ActionHistories = v
  4803  	return s
  4804  }
  4805  
  4806  // SetNextToken sets the NextToken field's value.
  4807  func (s *DescribeBudgetActionHistoriesOutput) SetNextToken(v string) *DescribeBudgetActionHistoriesOutput {
  4808  	s.NextToken = &v
  4809  	return s
  4810  }
  4811  
  4812  type DescribeBudgetActionInput struct {
  4813  	_ struct{} `type:"structure"`
  4814  
  4815  	// The account ID of the user. It should be a 12-digit number.
  4816  	//
  4817  	// AccountId is a required field
  4818  	AccountId *string `min:"12" type:"string" required:"true"`
  4819  
  4820  	// A system-generated universally unique identifier (UUID) for the action.
  4821  	//
  4822  	// ActionId is a required field
  4823  	ActionId *string `min:"36" type:"string" required:"true"`
  4824  
  4825  	// A string that represents the budget name. The ":" and "\" characters aren't
  4826  	// allowed.
  4827  	//
  4828  	// BudgetName is a required field
  4829  	BudgetName *string `min:"1" type:"string" required:"true"`
  4830  }
  4831  
  4832  // String returns the string representation.
  4833  //
  4834  // API parameter values that are decorated as "sensitive" in the API will not
  4835  // be included in the string output. The member name will be present, but the
  4836  // value will be replaced with "sensitive".
  4837  func (s DescribeBudgetActionInput) String() string {
  4838  	return awsutil.Prettify(s)
  4839  }
  4840  
  4841  // GoString returns the string representation.
  4842  //
  4843  // API parameter values that are decorated as "sensitive" in the API will not
  4844  // be included in the string output. The member name will be present, but the
  4845  // value will be replaced with "sensitive".
  4846  func (s DescribeBudgetActionInput) GoString() string {
  4847  	return s.String()
  4848  }
  4849  
  4850  // Validate inspects the fields of the type to determine if they are valid.
  4851  func (s *DescribeBudgetActionInput) Validate() error {
  4852  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetActionInput"}
  4853  	if s.AccountId == nil {
  4854  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4855  	}
  4856  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4857  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4858  	}
  4859  	if s.ActionId == nil {
  4860  		invalidParams.Add(request.NewErrParamRequired("ActionId"))
  4861  	}
  4862  	if s.ActionId != nil && len(*s.ActionId) < 36 {
  4863  		invalidParams.Add(request.NewErrParamMinLen("ActionId", 36))
  4864  	}
  4865  	if s.BudgetName == nil {
  4866  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  4867  	}
  4868  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  4869  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  4870  	}
  4871  
  4872  	if invalidParams.Len() > 0 {
  4873  		return invalidParams
  4874  	}
  4875  	return nil
  4876  }
  4877  
  4878  // SetAccountId sets the AccountId field's value.
  4879  func (s *DescribeBudgetActionInput) SetAccountId(v string) *DescribeBudgetActionInput {
  4880  	s.AccountId = &v
  4881  	return s
  4882  }
  4883  
  4884  // SetActionId sets the ActionId field's value.
  4885  func (s *DescribeBudgetActionInput) SetActionId(v string) *DescribeBudgetActionInput {
  4886  	s.ActionId = &v
  4887  	return s
  4888  }
  4889  
  4890  // SetBudgetName sets the BudgetName field's value.
  4891  func (s *DescribeBudgetActionInput) SetBudgetName(v string) *DescribeBudgetActionInput {
  4892  	s.BudgetName = &v
  4893  	return s
  4894  }
  4895  
  4896  type DescribeBudgetActionOutput struct {
  4897  	_ struct{} `type:"structure"`
  4898  
  4899  	// The account ID of the user. It should be a 12-digit number.
  4900  	//
  4901  	// AccountId is a required field
  4902  	AccountId *string `min:"12" type:"string" required:"true"`
  4903  
  4904  	// A budget action resource.
  4905  	//
  4906  	// Action is a required field
  4907  	Action *Action `type:"structure" required:"true"`
  4908  
  4909  	// A string that represents the budget name. The ":" and "\" characters aren't
  4910  	// allowed.
  4911  	//
  4912  	// BudgetName is a required field
  4913  	BudgetName *string `min:"1" type:"string" required:"true"`
  4914  }
  4915  
  4916  // String returns the string representation.
  4917  //
  4918  // API parameter values that are decorated as "sensitive" in the API will not
  4919  // be included in the string output. The member name will be present, but the
  4920  // value will be replaced with "sensitive".
  4921  func (s DescribeBudgetActionOutput) String() string {
  4922  	return awsutil.Prettify(s)
  4923  }
  4924  
  4925  // GoString returns the string representation.
  4926  //
  4927  // API parameter values that are decorated as "sensitive" in the API will not
  4928  // be included in the string output. The member name will be present, but the
  4929  // value will be replaced with "sensitive".
  4930  func (s DescribeBudgetActionOutput) GoString() string {
  4931  	return s.String()
  4932  }
  4933  
  4934  // SetAccountId sets the AccountId field's value.
  4935  func (s *DescribeBudgetActionOutput) SetAccountId(v string) *DescribeBudgetActionOutput {
  4936  	s.AccountId = &v
  4937  	return s
  4938  }
  4939  
  4940  // SetAction sets the Action field's value.
  4941  func (s *DescribeBudgetActionOutput) SetAction(v *Action) *DescribeBudgetActionOutput {
  4942  	s.Action = v
  4943  	return s
  4944  }
  4945  
  4946  // SetBudgetName sets the BudgetName field's value.
  4947  func (s *DescribeBudgetActionOutput) SetBudgetName(v string) *DescribeBudgetActionOutput {
  4948  	s.BudgetName = &v
  4949  	return s
  4950  }
  4951  
  4952  type DescribeBudgetActionsForAccountInput struct {
  4953  	_ struct{} `type:"structure"`
  4954  
  4955  	// The account ID of the user. It should be a 12-digit number.
  4956  	//
  4957  	// AccountId is a required field
  4958  	AccountId *string `min:"12" type:"string" required:"true"`
  4959  
  4960  	// An integer that represents how many entries a paginated response contains.
  4961  	// The maximum is 100.
  4962  	MaxResults *int64 `min:"1" type:"integer"`
  4963  
  4964  	// A generic string.
  4965  	NextToken *string `type:"string"`
  4966  }
  4967  
  4968  // String returns the string representation.
  4969  //
  4970  // API parameter values that are decorated as "sensitive" in the API will not
  4971  // be included in the string output. The member name will be present, but the
  4972  // value will be replaced with "sensitive".
  4973  func (s DescribeBudgetActionsForAccountInput) String() string {
  4974  	return awsutil.Prettify(s)
  4975  }
  4976  
  4977  // GoString returns the string representation.
  4978  //
  4979  // API parameter values that are decorated as "sensitive" in the API will not
  4980  // be included in the string output. The member name will be present, but the
  4981  // value will be replaced with "sensitive".
  4982  func (s DescribeBudgetActionsForAccountInput) GoString() string {
  4983  	return s.String()
  4984  }
  4985  
  4986  // Validate inspects the fields of the type to determine if they are valid.
  4987  func (s *DescribeBudgetActionsForAccountInput) Validate() error {
  4988  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetActionsForAccountInput"}
  4989  	if s.AccountId == nil {
  4990  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4991  	}
  4992  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  4993  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  4994  	}
  4995  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4996  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4997  	}
  4998  
  4999  	if invalidParams.Len() > 0 {
  5000  		return invalidParams
  5001  	}
  5002  	return nil
  5003  }
  5004  
  5005  // SetAccountId sets the AccountId field's value.
  5006  func (s *DescribeBudgetActionsForAccountInput) SetAccountId(v string) *DescribeBudgetActionsForAccountInput {
  5007  	s.AccountId = &v
  5008  	return s
  5009  }
  5010  
  5011  // SetMaxResults sets the MaxResults field's value.
  5012  func (s *DescribeBudgetActionsForAccountInput) SetMaxResults(v int64) *DescribeBudgetActionsForAccountInput {
  5013  	s.MaxResults = &v
  5014  	return s
  5015  }
  5016  
  5017  // SetNextToken sets the NextToken field's value.
  5018  func (s *DescribeBudgetActionsForAccountInput) SetNextToken(v string) *DescribeBudgetActionsForAccountInput {
  5019  	s.NextToken = &v
  5020  	return s
  5021  }
  5022  
  5023  type DescribeBudgetActionsForAccountOutput struct {
  5024  	_ struct{} `type:"structure"`
  5025  
  5026  	// A list of the budget action resources information.
  5027  	//
  5028  	// Actions is a required field
  5029  	Actions []*Action `type:"list" required:"true"`
  5030  
  5031  	// A generic string.
  5032  	NextToken *string `type:"string"`
  5033  }
  5034  
  5035  // String returns the string representation.
  5036  //
  5037  // API parameter values that are decorated as "sensitive" in the API will not
  5038  // be included in the string output. The member name will be present, but the
  5039  // value will be replaced with "sensitive".
  5040  func (s DescribeBudgetActionsForAccountOutput) String() string {
  5041  	return awsutil.Prettify(s)
  5042  }
  5043  
  5044  // GoString returns the string representation.
  5045  //
  5046  // API parameter values that are decorated as "sensitive" in the API will not
  5047  // be included in the string output. The member name will be present, but the
  5048  // value will be replaced with "sensitive".
  5049  func (s DescribeBudgetActionsForAccountOutput) GoString() string {
  5050  	return s.String()
  5051  }
  5052  
  5053  // SetActions sets the Actions field's value.
  5054  func (s *DescribeBudgetActionsForAccountOutput) SetActions(v []*Action) *DescribeBudgetActionsForAccountOutput {
  5055  	s.Actions = v
  5056  	return s
  5057  }
  5058  
  5059  // SetNextToken sets the NextToken field's value.
  5060  func (s *DescribeBudgetActionsForAccountOutput) SetNextToken(v string) *DescribeBudgetActionsForAccountOutput {
  5061  	s.NextToken = &v
  5062  	return s
  5063  }
  5064  
  5065  type DescribeBudgetActionsForBudgetInput struct {
  5066  	_ struct{} `type:"structure"`
  5067  
  5068  	// The account ID of the user. It should be a 12-digit number.
  5069  	//
  5070  	// AccountId is a required field
  5071  	AccountId *string `min:"12" type:"string" required:"true"`
  5072  
  5073  	// A string that represents the budget name. The ":" and "\" characters aren't
  5074  	// allowed.
  5075  	//
  5076  	// BudgetName is a required field
  5077  	BudgetName *string `min:"1" type:"string" required:"true"`
  5078  
  5079  	// An integer that represents how many entries a paginated response contains.
  5080  	// The maximum is 100.
  5081  	MaxResults *int64 `min:"1" type:"integer"`
  5082  
  5083  	// A generic string.
  5084  	NextToken *string `type:"string"`
  5085  }
  5086  
  5087  // String returns the string representation.
  5088  //
  5089  // API parameter values that are decorated as "sensitive" in the API will not
  5090  // be included in the string output. The member name will be present, but the
  5091  // value will be replaced with "sensitive".
  5092  func (s DescribeBudgetActionsForBudgetInput) String() string {
  5093  	return awsutil.Prettify(s)
  5094  }
  5095  
  5096  // GoString returns the string representation.
  5097  //
  5098  // API parameter values that are decorated as "sensitive" in the API will not
  5099  // be included in the string output. The member name will be present, but the
  5100  // value will be replaced with "sensitive".
  5101  func (s DescribeBudgetActionsForBudgetInput) GoString() string {
  5102  	return s.String()
  5103  }
  5104  
  5105  // Validate inspects the fields of the type to determine if they are valid.
  5106  func (s *DescribeBudgetActionsForBudgetInput) Validate() error {
  5107  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetActionsForBudgetInput"}
  5108  	if s.AccountId == nil {
  5109  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5110  	}
  5111  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5112  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5113  	}
  5114  	if s.BudgetName == nil {
  5115  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  5116  	}
  5117  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  5118  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  5119  	}
  5120  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5121  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5122  	}
  5123  
  5124  	if invalidParams.Len() > 0 {
  5125  		return invalidParams
  5126  	}
  5127  	return nil
  5128  }
  5129  
  5130  // SetAccountId sets the AccountId field's value.
  5131  func (s *DescribeBudgetActionsForBudgetInput) SetAccountId(v string) *DescribeBudgetActionsForBudgetInput {
  5132  	s.AccountId = &v
  5133  	return s
  5134  }
  5135  
  5136  // SetBudgetName sets the BudgetName field's value.
  5137  func (s *DescribeBudgetActionsForBudgetInput) SetBudgetName(v string) *DescribeBudgetActionsForBudgetInput {
  5138  	s.BudgetName = &v
  5139  	return s
  5140  }
  5141  
  5142  // SetMaxResults sets the MaxResults field's value.
  5143  func (s *DescribeBudgetActionsForBudgetInput) SetMaxResults(v int64) *DescribeBudgetActionsForBudgetInput {
  5144  	s.MaxResults = &v
  5145  	return s
  5146  }
  5147  
  5148  // SetNextToken sets the NextToken field's value.
  5149  func (s *DescribeBudgetActionsForBudgetInput) SetNextToken(v string) *DescribeBudgetActionsForBudgetInput {
  5150  	s.NextToken = &v
  5151  	return s
  5152  }
  5153  
  5154  type DescribeBudgetActionsForBudgetOutput struct {
  5155  	_ struct{} `type:"structure"`
  5156  
  5157  	// A list of the budget action resources information.
  5158  	//
  5159  	// Actions is a required field
  5160  	Actions []*Action `type:"list" required:"true"`
  5161  
  5162  	// A generic string.
  5163  	NextToken *string `type:"string"`
  5164  }
  5165  
  5166  // String returns the string representation.
  5167  //
  5168  // API parameter values that are decorated as "sensitive" in the API will not
  5169  // be included in the string output. The member name will be present, but the
  5170  // value will be replaced with "sensitive".
  5171  func (s DescribeBudgetActionsForBudgetOutput) String() string {
  5172  	return awsutil.Prettify(s)
  5173  }
  5174  
  5175  // GoString returns the string representation.
  5176  //
  5177  // API parameter values that are decorated as "sensitive" in the API will not
  5178  // be included in the string output. The member name will be present, but the
  5179  // value will be replaced with "sensitive".
  5180  func (s DescribeBudgetActionsForBudgetOutput) GoString() string {
  5181  	return s.String()
  5182  }
  5183  
  5184  // SetActions sets the Actions field's value.
  5185  func (s *DescribeBudgetActionsForBudgetOutput) SetActions(v []*Action) *DescribeBudgetActionsForBudgetOutput {
  5186  	s.Actions = v
  5187  	return s
  5188  }
  5189  
  5190  // SetNextToken sets the NextToken field's value.
  5191  func (s *DescribeBudgetActionsForBudgetOutput) SetNextToken(v string) *DescribeBudgetActionsForBudgetOutput {
  5192  	s.NextToken = &v
  5193  	return s
  5194  }
  5195  
  5196  // Request of DescribeBudget
  5197  type DescribeBudgetInput struct {
  5198  	_ struct{} `type:"structure"`
  5199  
  5200  	// The accountId that is associated with the budget that you want a description
  5201  	// of.
  5202  	//
  5203  	// AccountId is a required field
  5204  	AccountId *string `min:"12" type:"string" required:"true"`
  5205  
  5206  	// The name of the budget that you want a description of.
  5207  	//
  5208  	// BudgetName is a required field
  5209  	BudgetName *string `min:"1" type:"string" required:"true"`
  5210  }
  5211  
  5212  // String returns the string representation.
  5213  //
  5214  // API parameter values that are decorated as "sensitive" in the API will not
  5215  // be included in the string output. The member name will be present, but the
  5216  // value will be replaced with "sensitive".
  5217  func (s DescribeBudgetInput) String() string {
  5218  	return awsutil.Prettify(s)
  5219  }
  5220  
  5221  // GoString returns the string representation.
  5222  //
  5223  // API parameter values that are decorated as "sensitive" in the API will not
  5224  // be included in the string output. The member name will be present, but the
  5225  // value will be replaced with "sensitive".
  5226  func (s DescribeBudgetInput) GoString() string {
  5227  	return s.String()
  5228  }
  5229  
  5230  // Validate inspects the fields of the type to determine if they are valid.
  5231  func (s *DescribeBudgetInput) Validate() error {
  5232  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetInput"}
  5233  	if s.AccountId == nil {
  5234  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5235  	}
  5236  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5237  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5238  	}
  5239  	if s.BudgetName == nil {
  5240  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  5241  	}
  5242  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  5243  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  5244  	}
  5245  
  5246  	if invalidParams.Len() > 0 {
  5247  		return invalidParams
  5248  	}
  5249  	return nil
  5250  }
  5251  
  5252  // SetAccountId sets the AccountId field's value.
  5253  func (s *DescribeBudgetInput) SetAccountId(v string) *DescribeBudgetInput {
  5254  	s.AccountId = &v
  5255  	return s
  5256  }
  5257  
  5258  // SetBudgetName sets the BudgetName field's value.
  5259  func (s *DescribeBudgetInput) SetBudgetName(v string) *DescribeBudgetInput {
  5260  	s.BudgetName = &v
  5261  	return s
  5262  }
  5263  
  5264  // Response of DescribeBudget
  5265  type DescribeBudgetOutput struct {
  5266  	_ struct{} `type:"structure"`
  5267  
  5268  	// The description of the budget.
  5269  	Budget *Budget `type:"structure"`
  5270  }
  5271  
  5272  // String returns the string representation.
  5273  //
  5274  // API parameter values that are decorated as "sensitive" in the API will not
  5275  // be included in the string output. The member name will be present, but the
  5276  // value will be replaced with "sensitive".
  5277  func (s DescribeBudgetOutput) String() string {
  5278  	return awsutil.Prettify(s)
  5279  }
  5280  
  5281  // GoString returns the string representation.
  5282  //
  5283  // API parameter values that are decorated as "sensitive" in the API will not
  5284  // be included in the string output. The member name will be present, but the
  5285  // value will be replaced with "sensitive".
  5286  func (s DescribeBudgetOutput) GoString() string {
  5287  	return s.String()
  5288  }
  5289  
  5290  // SetBudget sets the Budget field's value.
  5291  func (s *DescribeBudgetOutput) SetBudget(v *Budget) *DescribeBudgetOutput {
  5292  	s.Budget = v
  5293  	return s
  5294  }
  5295  
  5296  type DescribeBudgetPerformanceHistoryInput struct {
  5297  	_ struct{} `type:"structure"`
  5298  
  5299  	// The account ID of the user. It should be a 12-digit number.
  5300  	//
  5301  	// AccountId is a required field
  5302  	AccountId *string `min:"12" type:"string" required:"true"`
  5303  
  5304  	// A string that represents the budget name. The ":" and "\" characters aren't
  5305  	// allowed.
  5306  	//
  5307  	// BudgetName is a required field
  5308  	BudgetName *string `min:"1" type:"string" required:"true"`
  5309  
  5310  	// An integer that represents how many entries a paginated response contains.
  5311  	// The maximum is 100.
  5312  	MaxResults *int64 `min:"1" type:"integer"`
  5313  
  5314  	// A generic string.
  5315  	NextToken *string `type:"string"`
  5316  
  5317  	// Retrieves how often the budget went into an ALARM state for the specified
  5318  	// time period.
  5319  	TimePeriod *TimePeriod `type:"structure"`
  5320  }
  5321  
  5322  // String returns the string representation.
  5323  //
  5324  // API parameter values that are decorated as "sensitive" in the API will not
  5325  // be included in the string output. The member name will be present, but the
  5326  // value will be replaced with "sensitive".
  5327  func (s DescribeBudgetPerformanceHistoryInput) String() string {
  5328  	return awsutil.Prettify(s)
  5329  }
  5330  
  5331  // GoString returns the string representation.
  5332  //
  5333  // API parameter values that are decorated as "sensitive" in the API will not
  5334  // be included in the string output. The member name will be present, but the
  5335  // value will be replaced with "sensitive".
  5336  func (s DescribeBudgetPerformanceHistoryInput) GoString() string {
  5337  	return s.String()
  5338  }
  5339  
  5340  // Validate inspects the fields of the type to determine if they are valid.
  5341  func (s *DescribeBudgetPerformanceHistoryInput) Validate() error {
  5342  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetPerformanceHistoryInput"}
  5343  	if s.AccountId == nil {
  5344  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5345  	}
  5346  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5347  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5348  	}
  5349  	if s.BudgetName == nil {
  5350  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  5351  	}
  5352  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  5353  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  5354  	}
  5355  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5356  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5357  	}
  5358  
  5359  	if invalidParams.Len() > 0 {
  5360  		return invalidParams
  5361  	}
  5362  	return nil
  5363  }
  5364  
  5365  // SetAccountId sets the AccountId field's value.
  5366  func (s *DescribeBudgetPerformanceHistoryInput) SetAccountId(v string) *DescribeBudgetPerformanceHistoryInput {
  5367  	s.AccountId = &v
  5368  	return s
  5369  }
  5370  
  5371  // SetBudgetName sets the BudgetName field's value.
  5372  func (s *DescribeBudgetPerformanceHistoryInput) SetBudgetName(v string) *DescribeBudgetPerformanceHistoryInput {
  5373  	s.BudgetName = &v
  5374  	return s
  5375  }
  5376  
  5377  // SetMaxResults sets the MaxResults field's value.
  5378  func (s *DescribeBudgetPerformanceHistoryInput) SetMaxResults(v int64) *DescribeBudgetPerformanceHistoryInput {
  5379  	s.MaxResults = &v
  5380  	return s
  5381  }
  5382  
  5383  // SetNextToken sets the NextToken field's value.
  5384  func (s *DescribeBudgetPerformanceHistoryInput) SetNextToken(v string) *DescribeBudgetPerformanceHistoryInput {
  5385  	s.NextToken = &v
  5386  	return s
  5387  }
  5388  
  5389  // SetTimePeriod sets the TimePeriod field's value.
  5390  func (s *DescribeBudgetPerformanceHistoryInput) SetTimePeriod(v *TimePeriod) *DescribeBudgetPerformanceHistoryInput {
  5391  	s.TimePeriod = v
  5392  	return s
  5393  }
  5394  
  5395  type DescribeBudgetPerformanceHistoryOutput struct {
  5396  	_ struct{} `type:"structure"`
  5397  
  5398  	// The history of how often the budget has gone into an ALARM state.
  5399  	//
  5400  	// For DAILY budgets, the history saves the state of the budget for the last
  5401  	// 60 days. For MONTHLY budgets, the history saves the state of the budget for
  5402  	// the current month plus the last 12 months. For QUARTERLY budgets, the history
  5403  	// saves the state of the budget for the last four quarters.
  5404  	BudgetPerformanceHistory *BudgetPerformanceHistory `type:"structure"`
  5405  
  5406  	// A generic string.
  5407  	NextToken *string `type:"string"`
  5408  }
  5409  
  5410  // String returns the string representation.
  5411  //
  5412  // API parameter values that are decorated as "sensitive" in the API will not
  5413  // be included in the string output. The member name will be present, but the
  5414  // value will be replaced with "sensitive".
  5415  func (s DescribeBudgetPerformanceHistoryOutput) String() string {
  5416  	return awsutil.Prettify(s)
  5417  }
  5418  
  5419  // GoString returns the string representation.
  5420  //
  5421  // API parameter values that are decorated as "sensitive" in the API will not
  5422  // be included in the string output. The member name will be present, but the
  5423  // value will be replaced with "sensitive".
  5424  func (s DescribeBudgetPerformanceHistoryOutput) GoString() string {
  5425  	return s.String()
  5426  }
  5427  
  5428  // SetBudgetPerformanceHistory sets the BudgetPerformanceHistory field's value.
  5429  func (s *DescribeBudgetPerformanceHistoryOutput) SetBudgetPerformanceHistory(v *BudgetPerformanceHistory) *DescribeBudgetPerformanceHistoryOutput {
  5430  	s.BudgetPerformanceHistory = v
  5431  	return s
  5432  }
  5433  
  5434  // SetNextToken sets the NextToken field's value.
  5435  func (s *DescribeBudgetPerformanceHistoryOutput) SetNextToken(v string) *DescribeBudgetPerformanceHistoryOutput {
  5436  	s.NextToken = &v
  5437  	return s
  5438  }
  5439  
  5440  // Request of DescribeBudgets
  5441  type DescribeBudgetsInput struct {
  5442  	_ struct{} `type:"structure"`
  5443  
  5444  	// The accountId that is associated with the budgets that you want descriptions
  5445  	// of.
  5446  	//
  5447  	// AccountId is a required field
  5448  	AccountId *string `min:"12" type:"string" required:"true"`
  5449  
  5450  	// An optional integer that represents how many entries a paginated response
  5451  	// contains. The maximum is 100.
  5452  	MaxResults *int64 `min:"1" type:"integer"`
  5453  
  5454  	// The pagination token that you include in your request to indicate the next
  5455  	// set of results that you want to retrieve.
  5456  	NextToken *string `type:"string"`
  5457  }
  5458  
  5459  // String returns the string representation.
  5460  //
  5461  // API parameter values that are decorated as "sensitive" in the API will not
  5462  // be included in the string output. The member name will be present, but the
  5463  // value will be replaced with "sensitive".
  5464  func (s DescribeBudgetsInput) String() string {
  5465  	return awsutil.Prettify(s)
  5466  }
  5467  
  5468  // GoString returns the string representation.
  5469  //
  5470  // API parameter values that are decorated as "sensitive" in the API will not
  5471  // be included in the string output. The member name will be present, but the
  5472  // value will be replaced with "sensitive".
  5473  func (s DescribeBudgetsInput) GoString() string {
  5474  	return s.String()
  5475  }
  5476  
  5477  // Validate inspects the fields of the type to determine if they are valid.
  5478  func (s *DescribeBudgetsInput) Validate() error {
  5479  	invalidParams := request.ErrInvalidParams{Context: "DescribeBudgetsInput"}
  5480  	if s.AccountId == nil {
  5481  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5482  	}
  5483  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5484  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5485  	}
  5486  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5487  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5488  	}
  5489  
  5490  	if invalidParams.Len() > 0 {
  5491  		return invalidParams
  5492  	}
  5493  	return nil
  5494  }
  5495  
  5496  // SetAccountId sets the AccountId field's value.
  5497  func (s *DescribeBudgetsInput) SetAccountId(v string) *DescribeBudgetsInput {
  5498  	s.AccountId = &v
  5499  	return s
  5500  }
  5501  
  5502  // SetMaxResults sets the MaxResults field's value.
  5503  func (s *DescribeBudgetsInput) SetMaxResults(v int64) *DescribeBudgetsInput {
  5504  	s.MaxResults = &v
  5505  	return s
  5506  }
  5507  
  5508  // SetNextToken sets the NextToken field's value.
  5509  func (s *DescribeBudgetsInput) SetNextToken(v string) *DescribeBudgetsInput {
  5510  	s.NextToken = &v
  5511  	return s
  5512  }
  5513  
  5514  // Response of DescribeBudgets
  5515  type DescribeBudgetsOutput struct {
  5516  	_ struct{} `type:"structure"`
  5517  
  5518  	// A list of budgets.
  5519  	Budgets []*Budget `type:"list"`
  5520  
  5521  	// The pagination token in the service response that indicates the next set
  5522  	// of results that you can retrieve.
  5523  	NextToken *string `type:"string"`
  5524  }
  5525  
  5526  // String returns the string representation.
  5527  //
  5528  // API parameter values that are decorated as "sensitive" in the API will not
  5529  // be included in the string output. The member name will be present, but the
  5530  // value will be replaced with "sensitive".
  5531  func (s DescribeBudgetsOutput) String() string {
  5532  	return awsutil.Prettify(s)
  5533  }
  5534  
  5535  // GoString returns the string representation.
  5536  //
  5537  // API parameter values that are decorated as "sensitive" in the API will not
  5538  // be included in the string output. The member name will be present, but the
  5539  // value will be replaced with "sensitive".
  5540  func (s DescribeBudgetsOutput) GoString() string {
  5541  	return s.String()
  5542  }
  5543  
  5544  // SetBudgets sets the Budgets field's value.
  5545  func (s *DescribeBudgetsOutput) SetBudgets(v []*Budget) *DescribeBudgetsOutput {
  5546  	s.Budgets = v
  5547  	return s
  5548  }
  5549  
  5550  // SetNextToken sets the NextToken field's value.
  5551  func (s *DescribeBudgetsOutput) SetNextToken(v string) *DescribeBudgetsOutput {
  5552  	s.NextToken = &v
  5553  	return s
  5554  }
  5555  
  5556  // Request of DescribeNotificationsForBudget
  5557  type DescribeNotificationsForBudgetInput struct {
  5558  	_ struct{} `type:"structure"`
  5559  
  5560  	// The accountId that is associated with the budget whose notifications you
  5561  	// want descriptions of.
  5562  	//
  5563  	// AccountId is a required field
  5564  	AccountId *string `min:"12" type:"string" required:"true"`
  5565  
  5566  	// The name of the budget whose notifications you want descriptions of.
  5567  	//
  5568  	// BudgetName is a required field
  5569  	BudgetName *string `min:"1" type:"string" required:"true"`
  5570  
  5571  	// An optional integer that represents how many entries a paginated response
  5572  	// contains. The maximum is 100.
  5573  	MaxResults *int64 `min:"1" type:"integer"`
  5574  
  5575  	// The pagination token that you include in your request to indicate the next
  5576  	// set of results that you want to retrieve.
  5577  	NextToken *string `type:"string"`
  5578  }
  5579  
  5580  // String returns the string representation.
  5581  //
  5582  // API parameter values that are decorated as "sensitive" in the API will not
  5583  // be included in the string output. The member name will be present, but the
  5584  // value will be replaced with "sensitive".
  5585  func (s DescribeNotificationsForBudgetInput) String() string {
  5586  	return awsutil.Prettify(s)
  5587  }
  5588  
  5589  // GoString returns the string representation.
  5590  //
  5591  // API parameter values that are decorated as "sensitive" in the API will not
  5592  // be included in the string output. The member name will be present, but the
  5593  // value will be replaced with "sensitive".
  5594  func (s DescribeNotificationsForBudgetInput) GoString() string {
  5595  	return s.String()
  5596  }
  5597  
  5598  // Validate inspects the fields of the type to determine if they are valid.
  5599  func (s *DescribeNotificationsForBudgetInput) Validate() error {
  5600  	invalidParams := request.ErrInvalidParams{Context: "DescribeNotificationsForBudgetInput"}
  5601  	if s.AccountId == nil {
  5602  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5603  	}
  5604  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5605  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5606  	}
  5607  	if s.BudgetName == nil {
  5608  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  5609  	}
  5610  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  5611  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  5612  	}
  5613  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5614  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5615  	}
  5616  
  5617  	if invalidParams.Len() > 0 {
  5618  		return invalidParams
  5619  	}
  5620  	return nil
  5621  }
  5622  
  5623  // SetAccountId sets the AccountId field's value.
  5624  func (s *DescribeNotificationsForBudgetInput) SetAccountId(v string) *DescribeNotificationsForBudgetInput {
  5625  	s.AccountId = &v
  5626  	return s
  5627  }
  5628  
  5629  // SetBudgetName sets the BudgetName field's value.
  5630  func (s *DescribeNotificationsForBudgetInput) SetBudgetName(v string) *DescribeNotificationsForBudgetInput {
  5631  	s.BudgetName = &v
  5632  	return s
  5633  }
  5634  
  5635  // SetMaxResults sets the MaxResults field's value.
  5636  func (s *DescribeNotificationsForBudgetInput) SetMaxResults(v int64) *DescribeNotificationsForBudgetInput {
  5637  	s.MaxResults = &v
  5638  	return s
  5639  }
  5640  
  5641  // SetNextToken sets the NextToken field's value.
  5642  func (s *DescribeNotificationsForBudgetInput) SetNextToken(v string) *DescribeNotificationsForBudgetInput {
  5643  	s.NextToken = &v
  5644  	return s
  5645  }
  5646  
  5647  // Response of GetNotificationsForBudget
  5648  type DescribeNotificationsForBudgetOutput struct {
  5649  	_ struct{} `type:"structure"`
  5650  
  5651  	// The pagination token in the service response that indicates the next set
  5652  	// of results that you can retrieve.
  5653  	NextToken *string `type:"string"`
  5654  
  5655  	// A list of notifications that are associated with a budget.
  5656  	Notifications []*Notification `type:"list"`
  5657  }
  5658  
  5659  // String returns the string representation.
  5660  //
  5661  // API parameter values that are decorated as "sensitive" in the API will not
  5662  // be included in the string output. The member name will be present, but the
  5663  // value will be replaced with "sensitive".
  5664  func (s DescribeNotificationsForBudgetOutput) String() string {
  5665  	return awsutil.Prettify(s)
  5666  }
  5667  
  5668  // GoString returns the string representation.
  5669  //
  5670  // API parameter values that are decorated as "sensitive" in the API will not
  5671  // be included in the string output. The member name will be present, but the
  5672  // value will be replaced with "sensitive".
  5673  func (s DescribeNotificationsForBudgetOutput) GoString() string {
  5674  	return s.String()
  5675  }
  5676  
  5677  // SetNextToken sets the NextToken field's value.
  5678  func (s *DescribeNotificationsForBudgetOutput) SetNextToken(v string) *DescribeNotificationsForBudgetOutput {
  5679  	s.NextToken = &v
  5680  	return s
  5681  }
  5682  
  5683  // SetNotifications sets the Notifications field's value.
  5684  func (s *DescribeNotificationsForBudgetOutput) SetNotifications(v []*Notification) *DescribeNotificationsForBudgetOutput {
  5685  	s.Notifications = v
  5686  	return s
  5687  }
  5688  
  5689  // Request of DescribeSubscribersForNotification
  5690  type DescribeSubscribersForNotificationInput struct {
  5691  	_ struct{} `type:"structure"`
  5692  
  5693  	// The accountId that is associated with the budget whose subscribers you want
  5694  	// descriptions of.
  5695  	//
  5696  	// AccountId is a required field
  5697  	AccountId *string `min:"12" type:"string" required:"true"`
  5698  
  5699  	// The name of the budget whose subscribers you want descriptions of.
  5700  	//
  5701  	// BudgetName is a required field
  5702  	BudgetName *string `min:"1" type:"string" required:"true"`
  5703  
  5704  	// An optional integer that represents how many entries a paginated response
  5705  	// contains. The maximum is 100.
  5706  	MaxResults *int64 `min:"1" type:"integer"`
  5707  
  5708  	// The pagination token that you include in your request to indicate the next
  5709  	// set of results that you want to retrieve.
  5710  	NextToken *string `type:"string"`
  5711  
  5712  	// The notification whose subscribers you want to list.
  5713  	//
  5714  	// Notification is a required field
  5715  	Notification *Notification `type:"structure" required:"true"`
  5716  }
  5717  
  5718  // String returns the string representation.
  5719  //
  5720  // API parameter values that are decorated as "sensitive" in the API will not
  5721  // be included in the string output. The member name will be present, but the
  5722  // value will be replaced with "sensitive".
  5723  func (s DescribeSubscribersForNotificationInput) String() string {
  5724  	return awsutil.Prettify(s)
  5725  }
  5726  
  5727  // GoString returns the string representation.
  5728  //
  5729  // API parameter values that are decorated as "sensitive" in the API will not
  5730  // be included in the string output. The member name will be present, but the
  5731  // value will be replaced with "sensitive".
  5732  func (s DescribeSubscribersForNotificationInput) GoString() string {
  5733  	return s.String()
  5734  }
  5735  
  5736  // Validate inspects the fields of the type to determine if they are valid.
  5737  func (s *DescribeSubscribersForNotificationInput) Validate() error {
  5738  	invalidParams := request.ErrInvalidParams{Context: "DescribeSubscribersForNotificationInput"}
  5739  	if s.AccountId == nil {
  5740  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5741  	}
  5742  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5743  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5744  	}
  5745  	if s.BudgetName == nil {
  5746  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  5747  	}
  5748  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  5749  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  5750  	}
  5751  	if s.MaxResults != nil && *s.MaxResults < 1 {
  5752  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  5753  	}
  5754  	if s.Notification == nil {
  5755  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  5756  	}
  5757  	if s.Notification != nil {
  5758  		if err := s.Notification.Validate(); err != nil {
  5759  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  5760  		}
  5761  	}
  5762  
  5763  	if invalidParams.Len() > 0 {
  5764  		return invalidParams
  5765  	}
  5766  	return nil
  5767  }
  5768  
  5769  // SetAccountId sets the AccountId field's value.
  5770  func (s *DescribeSubscribersForNotificationInput) SetAccountId(v string) *DescribeSubscribersForNotificationInput {
  5771  	s.AccountId = &v
  5772  	return s
  5773  }
  5774  
  5775  // SetBudgetName sets the BudgetName field's value.
  5776  func (s *DescribeSubscribersForNotificationInput) SetBudgetName(v string) *DescribeSubscribersForNotificationInput {
  5777  	s.BudgetName = &v
  5778  	return s
  5779  }
  5780  
  5781  // SetMaxResults sets the MaxResults field's value.
  5782  func (s *DescribeSubscribersForNotificationInput) SetMaxResults(v int64) *DescribeSubscribersForNotificationInput {
  5783  	s.MaxResults = &v
  5784  	return s
  5785  }
  5786  
  5787  // SetNextToken sets the NextToken field's value.
  5788  func (s *DescribeSubscribersForNotificationInput) SetNextToken(v string) *DescribeSubscribersForNotificationInput {
  5789  	s.NextToken = &v
  5790  	return s
  5791  }
  5792  
  5793  // SetNotification sets the Notification field's value.
  5794  func (s *DescribeSubscribersForNotificationInput) SetNotification(v *Notification) *DescribeSubscribersForNotificationInput {
  5795  	s.Notification = v
  5796  	return s
  5797  }
  5798  
  5799  // Response of DescribeSubscribersForNotification
  5800  type DescribeSubscribersForNotificationOutput struct {
  5801  	_ struct{} `type:"structure"`
  5802  
  5803  	// The pagination token in the service response that indicates the next set
  5804  	// of results that you can retrieve.
  5805  	NextToken *string `type:"string"`
  5806  
  5807  	// A list of subscribers that are associated with a notification.
  5808  	Subscribers []*Subscriber `min:"1" type:"list"`
  5809  }
  5810  
  5811  // String returns the string representation.
  5812  //
  5813  // API parameter values that are decorated as "sensitive" in the API will not
  5814  // be included in the string output. The member name will be present, but the
  5815  // value will be replaced with "sensitive".
  5816  func (s DescribeSubscribersForNotificationOutput) String() string {
  5817  	return awsutil.Prettify(s)
  5818  }
  5819  
  5820  // GoString returns the string representation.
  5821  //
  5822  // API parameter values that are decorated as "sensitive" in the API will not
  5823  // be included in the string output. The member name will be present, but the
  5824  // value will be replaced with "sensitive".
  5825  func (s DescribeSubscribersForNotificationOutput) GoString() string {
  5826  	return s.String()
  5827  }
  5828  
  5829  // SetNextToken sets the NextToken field's value.
  5830  func (s *DescribeSubscribersForNotificationOutput) SetNextToken(v string) *DescribeSubscribersForNotificationOutput {
  5831  	s.NextToken = &v
  5832  	return s
  5833  }
  5834  
  5835  // SetSubscribers sets the Subscribers field's value.
  5836  func (s *DescribeSubscribersForNotificationOutput) SetSubscribers(v []*Subscriber) *DescribeSubscribersForNotificationOutput {
  5837  	s.Subscribers = v
  5838  	return s
  5839  }
  5840  
  5841  // The budget name already exists. Budget names must be unique within an account.
  5842  type DuplicateRecordException struct {
  5843  	_            struct{}                  `type:"structure"`
  5844  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5845  
  5846  	// The error message the exception carries.
  5847  	Message_ *string `locationName:"Message" type:"string"`
  5848  }
  5849  
  5850  // String returns the string representation.
  5851  //
  5852  // API parameter values that are decorated as "sensitive" in the API will not
  5853  // be included in the string output. The member name will be present, but the
  5854  // value will be replaced with "sensitive".
  5855  func (s DuplicateRecordException) String() string {
  5856  	return awsutil.Prettify(s)
  5857  }
  5858  
  5859  // GoString returns the string representation.
  5860  //
  5861  // API parameter values that are decorated as "sensitive" in the API will not
  5862  // be included in the string output. The member name will be present, but the
  5863  // value will be replaced with "sensitive".
  5864  func (s DuplicateRecordException) GoString() string {
  5865  	return s.String()
  5866  }
  5867  
  5868  func newErrorDuplicateRecordException(v protocol.ResponseMetadata) error {
  5869  	return &DuplicateRecordException{
  5870  		RespMetadata: v,
  5871  	}
  5872  }
  5873  
  5874  // Code returns the exception type name.
  5875  func (s *DuplicateRecordException) Code() string {
  5876  	return "DuplicateRecordException"
  5877  }
  5878  
  5879  // Message returns the exception's message.
  5880  func (s *DuplicateRecordException) Message() string {
  5881  	if s.Message_ != nil {
  5882  		return *s.Message_
  5883  	}
  5884  	return ""
  5885  }
  5886  
  5887  // OrigErr always returns nil, satisfies awserr.Error interface.
  5888  func (s *DuplicateRecordException) OrigErr() error {
  5889  	return nil
  5890  }
  5891  
  5892  func (s *DuplicateRecordException) Error() string {
  5893  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5894  }
  5895  
  5896  // Status code returns the HTTP status code for the request's response error.
  5897  func (s *DuplicateRecordException) StatusCode() int {
  5898  	return s.RespMetadata.StatusCode
  5899  }
  5900  
  5901  // RequestID returns the service's response RequestID for request.
  5902  func (s *DuplicateRecordException) RequestID() string {
  5903  	return s.RespMetadata.RequestID
  5904  }
  5905  
  5906  type ExecuteBudgetActionInput struct {
  5907  	_ struct{} `type:"structure"`
  5908  
  5909  	// The account ID of the user. It should be a 12-digit number.
  5910  	//
  5911  	// AccountId is a required field
  5912  	AccountId *string `min:"12" type:"string" required:"true"`
  5913  
  5914  	// A system-generated universally unique identifier (UUID) for the action.
  5915  	//
  5916  	// ActionId is a required field
  5917  	ActionId *string `min:"36" type:"string" required:"true"`
  5918  
  5919  	// A string that represents the budget name. The ":" and "\" characters aren't
  5920  	// allowed.
  5921  	//
  5922  	// BudgetName is a required field
  5923  	BudgetName *string `min:"1" type:"string" required:"true"`
  5924  
  5925  	// The type of execution.
  5926  	//
  5927  	// ExecutionType is a required field
  5928  	ExecutionType *string `type:"string" required:"true" enum:"ExecutionType"`
  5929  }
  5930  
  5931  // String returns the string representation.
  5932  //
  5933  // API parameter values that are decorated as "sensitive" in the API will not
  5934  // be included in the string output. The member name will be present, but the
  5935  // value will be replaced with "sensitive".
  5936  func (s ExecuteBudgetActionInput) String() string {
  5937  	return awsutil.Prettify(s)
  5938  }
  5939  
  5940  // GoString returns the string representation.
  5941  //
  5942  // API parameter values that are decorated as "sensitive" in the API will not
  5943  // be included in the string output. The member name will be present, but the
  5944  // value will be replaced with "sensitive".
  5945  func (s ExecuteBudgetActionInput) GoString() string {
  5946  	return s.String()
  5947  }
  5948  
  5949  // Validate inspects the fields of the type to determine if they are valid.
  5950  func (s *ExecuteBudgetActionInput) Validate() error {
  5951  	invalidParams := request.ErrInvalidParams{Context: "ExecuteBudgetActionInput"}
  5952  	if s.AccountId == nil {
  5953  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5954  	}
  5955  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  5956  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  5957  	}
  5958  	if s.ActionId == nil {
  5959  		invalidParams.Add(request.NewErrParamRequired("ActionId"))
  5960  	}
  5961  	if s.ActionId != nil && len(*s.ActionId) < 36 {
  5962  		invalidParams.Add(request.NewErrParamMinLen("ActionId", 36))
  5963  	}
  5964  	if s.BudgetName == nil {
  5965  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  5966  	}
  5967  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  5968  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  5969  	}
  5970  	if s.ExecutionType == nil {
  5971  		invalidParams.Add(request.NewErrParamRequired("ExecutionType"))
  5972  	}
  5973  
  5974  	if invalidParams.Len() > 0 {
  5975  		return invalidParams
  5976  	}
  5977  	return nil
  5978  }
  5979  
  5980  // SetAccountId sets the AccountId field's value.
  5981  func (s *ExecuteBudgetActionInput) SetAccountId(v string) *ExecuteBudgetActionInput {
  5982  	s.AccountId = &v
  5983  	return s
  5984  }
  5985  
  5986  // SetActionId sets the ActionId field's value.
  5987  func (s *ExecuteBudgetActionInput) SetActionId(v string) *ExecuteBudgetActionInput {
  5988  	s.ActionId = &v
  5989  	return s
  5990  }
  5991  
  5992  // SetBudgetName sets the BudgetName field's value.
  5993  func (s *ExecuteBudgetActionInput) SetBudgetName(v string) *ExecuteBudgetActionInput {
  5994  	s.BudgetName = &v
  5995  	return s
  5996  }
  5997  
  5998  // SetExecutionType sets the ExecutionType field's value.
  5999  func (s *ExecuteBudgetActionInput) SetExecutionType(v string) *ExecuteBudgetActionInput {
  6000  	s.ExecutionType = &v
  6001  	return s
  6002  }
  6003  
  6004  type ExecuteBudgetActionOutput struct {
  6005  	_ struct{} `type:"structure"`
  6006  
  6007  	// The account ID of the user. It should be a 12-digit number.
  6008  	//
  6009  	// AccountId is a required field
  6010  	AccountId *string `min:"12" type:"string" required:"true"`
  6011  
  6012  	// A system-generated universally unique identifier (UUID) for the action.
  6013  	//
  6014  	// ActionId is a required field
  6015  	ActionId *string `min:"36" type:"string" required:"true"`
  6016  
  6017  	// A string that represents the budget name. The ":" and "\" characters aren't
  6018  	// allowed.
  6019  	//
  6020  	// BudgetName is a required field
  6021  	BudgetName *string `min:"1" type:"string" required:"true"`
  6022  
  6023  	// The type of execution.
  6024  	//
  6025  	// ExecutionType is a required field
  6026  	ExecutionType *string `type:"string" required:"true" enum:"ExecutionType"`
  6027  }
  6028  
  6029  // String returns the string representation.
  6030  //
  6031  // API parameter values that are decorated as "sensitive" in the API will not
  6032  // be included in the string output. The member name will be present, but the
  6033  // value will be replaced with "sensitive".
  6034  func (s ExecuteBudgetActionOutput) String() string {
  6035  	return awsutil.Prettify(s)
  6036  }
  6037  
  6038  // GoString returns the string representation.
  6039  //
  6040  // API parameter values that are decorated as "sensitive" in the API will not
  6041  // be included in the string output. The member name will be present, but the
  6042  // value will be replaced with "sensitive".
  6043  func (s ExecuteBudgetActionOutput) GoString() string {
  6044  	return s.String()
  6045  }
  6046  
  6047  // SetAccountId sets the AccountId field's value.
  6048  func (s *ExecuteBudgetActionOutput) SetAccountId(v string) *ExecuteBudgetActionOutput {
  6049  	s.AccountId = &v
  6050  	return s
  6051  }
  6052  
  6053  // SetActionId sets the ActionId field's value.
  6054  func (s *ExecuteBudgetActionOutput) SetActionId(v string) *ExecuteBudgetActionOutput {
  6055  	s.ActionId = &v
  6056  	return s
  6057  }
  6058  
  6059  // SetBudgetName sets the BudgetName field's value.
  6060  func (s *ExecuteBudgetActionOutput) SetBudgetName(v string) *ExecuteBudgetActionOutput {
  6061  	s.BudgetName = &v
  6062  	return s
  6063  }
  6064  
  6065  // SetExecutionType sets the ExecutionType field's value.
  6066  func (s *ExecuteBudgetActionOutput) SetExecutionType(v string) *ExecuteBudgetActionOutput {
  6067  	s.ExecutionType = &v
  6068  	return s
  6069  }
  6070  
  6071  // The pagination token expired.
  6072  type ExpiredNextTokenException struct {
  6073  	_            struct{}                  `type:"structure"`
  6074  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6075  
  6076  	// The error message the exception carries.
  6077  	Message_ *string `locationName:"Message" type:"string"`
  6078  }
  6079  
  6080  // String returns the string representation.
  6081  //
  6082  // API parameter values that are decorated as "sensitive" in the API will not
  6083  // be included in the string output. The member name will be present, but the
  6084  // value will be replaced with "sensitive".
  6085  func (s ExpiredNextTokenException) String() string {
  6086  	return awsutil.Prettify(s)
  6087  }
  6088  
  6089  // GoString returns the string representation.
  6090  //
  6091  // API parameter values that are decorated as "sensitive" in the API will not
  6092  // be included in the string output. The member name will be present, but the
  6093  // value will be replaced with "sensitive".
  6094  func (s ExpiredNextTokenException) GoString() string {
  6095  	return s.String()
  6096  }
  6097  
  6098  func newErrorExpiredNextTokenException(v protocol.ResponseMetadata) error {
  6099  	return &ExpiredNextTokenException{
  6100  		RespMetadata: v,
  6101  	}
  6102  }
  6103  
  6104  // Code returns the exception type name.
  6105  func (s *ExpiredNextTokenException) Code() string {
  6106  	return "ExpiredNextTokenException"
  6107  }
  6108  
  6109  // Message returns the exception's message.
  6110  func (s *ExpiredNextTokenException) Message() string {
  6111  	if s.Message_ != nil {
  6112  		return *s.Message_
  6113  	}
  6114  	return ""
  6115  }
  6116  
  6117  // OrigErr always returns nil, satisfies awserr.Error interface.
  6118  func (s *ExpiredNextTokenException) OrigErr() error {
  6119  	return nil
  6120  }
  6121  
  6122  func (s *ExpiredNextTokenException) Error() string {
  6123  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6124  }
  6125  
  6126  // Status code returns the HTTP status code for the request's response error.
  6127  func (s *ExpiredNextTokenException) StatusCode() int {
  6128  	return s.RespMetadata.StatusCode
  6129  }
  6130  
  6131  // RequestID returns the service's response RequestID for request.
  6132  func (s *ExpiredNextTokenException) RequestID() string {
  6133  	return s.RespMetadata.RequestID
  6134  }
  6135  
  6136  // The AWS Identity and Access Management (IAM) action definition details.
  6137  type IamActionDefinition struct {
  6138  	_ struct{} `type:"structure"`
  6139  
  6140  	// A list of groups to be attached. There must be at least one group.
  6141  	Groups []*string `min:"1" type:"list"`
  6142  
  6143  	// The Amazon Resource Name (ARN) of the policy to be attached.
  6144  	//
  6145  	// PolicyArn is a required field
  6146  	PolicyArn *string `min:"25" type:"string" required:"true"`
  6147  
  6148  	// A list of roles to be attached. There must be at least one role.
  6149  	Roles []*string `min:"1" type:"list"`
  6150  
  6151  	// A list of users to be attached. There must be at least one user.
  6152  	Users []*string `min:"1" type:"list"`
  6153  }
  6154  
  6155  // String returns the string representation.
  6156  //
  6157  // API parameter values that are decorated as "sensitive" in the API will not
  6158  // be included in the string output. The member name will be present, but the
  6159  // value will be replaced with "sensitive".
  6160  func (s IamActionDefinition) String() string {
  6161  	return awsutil.Prettify(s)
  6162  }
  6163  
  6164  // GoString returns the string representation.
  6165  //
  6166  // API parameter values that are decorated as "sensitive" in the API will not
  6167  // be included in the string output. The member name will be present, but the
  6168  // value will be replaced with "sensitive".
  6169  func (s IamActionDefinition) GoString() string {
  6170  	return s.String()
  6171  }
  6172  
  6173  // Validate inspects the fields of the type to determine if they are valid.
  6174  func (s *IamActionDefinition) Validate() error {
  6175  	invalidParams := request.ErrInvalidParams{Context: "IamActionDefinition"}
  6176  	if s.Groups != nil && len(s.Groups) < 1 {
  6177  		invalidParams.Add(request.NewErrParamMinLen("Groups", 1))
  6178  	}
  6179  	if s.PolicyArn == nil {
  6180  		invalidParams.Add(request.NewErrParamRequired("PolicyArn"))
  6181  	}
  6182  	if s.PolicyArn != nil && len(*s.PolicyArn) < 25 {
  6183  		invalidParams.Add(request.NewErrParamMinLen("PolicyArn", 25))
  6184  	}
  6185  	if s.Roles != nil && len(s.Roles) < 1 {
  6186  		invalidParams.Add(request.NewErrParamMinLen("Roles", 1))
  6187  	}
  6188  	if s.Users != nil && len(s.Users) < 1 {
  6189  		invalidParams.Add(request.NewErrParamMinLen("Users", 1))
  6190  	}
  6191  
  6192  	if invalidParams.Len() > 0 {
  6193  		return invalidParams
  6194  	}
  6195  	return nil
  6196  }
  6197  
  6198  // SetGroups sets the Groups field's value.
  6199  func (s *IamActionDefinition) SetGroups(v []*string) *IamActionDefinition {
  6200  	s.Groups = v
  6201  	return s
  6202  }
  6203  
  6204  // SetPolicyArn sets the PolicyArn field's value.
  6205  func (s *IamActionDefinition) SetPolicyArn(v string) *IamActionDefinition {
  6206  	s.PolicyArn = &v
  6207  	return s
  6208  }
  6209  
  6210  // SetRoles sets the Roles field's value.
  6211  func (s *IamActionDefinition) SetRoles(v []*string) *IamActionDefinition {
  6212  	s.Roles = v
  6213  	return s
  6214  }
  6215  
  6216  // SetUsers sets the Users field's value.
  6217  func (s *IamActionDefinition) SetUsers(v []*string) *IamActionDefinition {
  6218  	s.Users = v
  6219  	return s
  6220  }
  6221  
  6222  // An error on the server occurred during the processing of your request. Try
  6223  // again later.
  6224  type InternalErrorException struct {
  6225  	_            struct{}                  `type:"structure"`
  6226  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6227  
  6228  	// The error message the exception carries.
  6229  	Message_ *string `locationName:"Message" type:"string"`
  6230  }
  6231  
  6232  // String returns the string representation.
  6233  //
  6234  // API parameter values that are decorated as "sensitive" in the API will not
  6235  // be included in the string output. The member name will be present, but the
  6236  // value will be replaced with "sensitive".
  6237  func (s InternalErrorException) String() string {
  6238  	return awsutil.Prettify(s)
  6239  }
  6240  
  6241  // GoString returns the string representation.
  6242  //
  6243  // API parameter values that are decorated as "sensitive" in the API will not
  6244  // be included in the string output. The member name will be present, but the
  6245  // value will be replaced with "sensitive".
  6246  func (s InternalErrorException) GoString() string {
  6247  	return s.String()
  6248  }
  6249  
  6250  func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
  6251  	return &InternalErrorException{
  6252  		RespMetadata: v,
  6253  	}
  6254  }
  6255  
  6256  // Code returns the exception type name.
  6257  func (s *InternalErrorException) Code() string {
  6258  	return "InternalErrorException"
  6259  }
  6260  
  6261  // Message returns the exception's message.
  6262  func (s *InternalErrorException) Message() string {
  6263  	if s.Message_ != nil {
  6264  		return *s.Message_
  6265  	}
  6266  	return ""
  6267  }
  6268  
  6269  // OrigErr always returns nil, satisfies awserr.Error interface.
  6270  func (s *InternalErrorException) OrigErr() error {
  6271  	return nil
  6272  }
  6273  
  6274  func (s *InternalErrorException) Error() string {
  6275  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6276  }
  6277  
  6278  // Status code returns the HTTP status code for the request's response error.
  6279  func (s *InternalErrorException) StatusCode() int {
  6280  	return s.RespMetadata.StatusCode
  6281  }
  6282  
  6283  // RequestID returns the service's response RequestID for request.
  6284  func (s *InternalErrorException) RequestID() string {
  6285  	return s.RespMetadata.RequestID
  6286  }
  6287  
  6288  // The pagination token is invalid.
  6289  type InvalidNextTokenException struct {
  6290  	_            struct{}                  `type:"structure"`
  6291  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6292  
  6293  	// The error message the exception carries.
  6294  	Message_ *string `locationName:"Message" type:"string"`
  6295  }
  6296  
  6297  // String returns the string representation.
  6298  //
  6299  // API parameter values that are decorated as "sensitive" in the API will not
  6300  // be included in the string output. The member name will be present, but the
  6301  // value will be replaced with "sensitive".
  6302  func (s InvalidNextTokenException) String() string {
  6303  	return awsutil.Prettify(s)
  6304  }
  6305  
  6306  // GoString returns the string representation.
  6307  //
  6308  // API parameter values that are decorated as "sensitive" in the API will not
  6309  // be included in the string output. The member name will be present, but the
  6310  // value will be replaced with "sensitive".
  6311  func (s InvalidNextTokenException) GoString() string {
  6312  	return s.String()
  6313  }
  6314  
  6315  func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
  6316  	return &InvalidNextTokenException{
  6317  		RespMetadata: v,
  6318  	}
  6319  }
  6320  
  6321  // Code returns the exception type name.
  6322  func (s *InvalidNextTokenException) Code() string {
  6323  	return "InvalidNextTokenException"
  6324  }
  6325  
  6326  // Message returns the exception's message.
  6327  func (s *InvalidNextTokenException) Message() string {
  6328  	if s.Message_ != nil {
  6329  		return *s.Message_
  6330  	}
  6331  	return ""
  6332  }
  6333  
  6334  // OrigErr always returns nil, satisfies awserr.Error interface.
  6335  func (s *InvalidNextTokenException) OrigErr() error {
  6336  	return nil
  6337  }
  6338  
  6339  func (s *InvalidNextTokenException) Error() string {
  6340  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6341  }
  6342  
  6343  // Status code returns the HTTP status code for the request's response error.
  6344  func (s *InvalidNextTokenException) StatusCode() int {
  6345  	return s.RespMetadata.StatusCode
  6346  }
  6347  
  6348  // RequestID returns the service's response RequestID for request.
  6349  func (s *InvalidNextTokenException) RequestID() string {
  6350  	return s.RespMetadata.RequestID
  6351  }
  6352  
  6353  // An error on the client occurred. Typically, the cause is an invalid input
  6354  // value.
  6355  type InvalidParameterException struct {
  6356  	_            struct{}                  `type:"structure"`
  6357  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6358  
  6359  	// The error message the exception carries.
  6360  	Message_ *string `locationName:"Message" type:"string"`
  6361  }
  6362  
  6363  // String returns the string representation.
  6364  //
  6365  // API parameter values that are decorated as "sensitive" in the API will not
  6366  // be included in the string output. The member name will be present, but the
  6367  // value will be replaced with "sensitive".
  6368  func (s InvalidParameterException) String() string {
  6369  	return awsutil.Prettify(s)
  6370  }
  6371  
  6372  // GoString returns the string representation.
  6373  //
  6374  // API parameter values that are decorated as "sensitive" in the API will not
  6375  // be included in the string output. The member name will be present, but the
  6376  // value will be replaced with "sensitive".
  6377  func (s InvalidParameterException) GoString() string {
  6378  	return s.String()
  6379  }
  6380  
  6381  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
  6382  	return &InvalidParameterException{
  6383  		RespMetadata: v,
  6384  	}
  6385  }
  6386  
  6387  // Code returns the exception type name.
  6388  func (s *InvalidParameterException) Code() string {
  6389  	return "InvalidParameterException"
  6390  }
  6391  
  6392  // Message returns the exception's message.
  6393  func (s *InvalidParameterException) Message() string {
  6394  	if s.Message_ != nil {
  6395  		return *s.Message_
  6396  	}
  6397  	return ""
  6398  }
  6399  
  6400  // OrigErr always returns nil, satisfies awserr.Error interface.
  6401  func (s *InvalidParameterException) OrigErr() error {
  6402  	return nil
  6403  }
  6404  
  6405  func (s *InvalidParameterException) Error() string {
  6406  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6407  }
  6408  
  6409  // Status code returns the HTTP status code for the request's response error.
  6410  func (s *InvalidParameterException) StatusCode() int {
  6411  	return s.RespMetadata.StatusCode
  6412  }
  6413  
  6414  // RequestID returns the service's response RequestID for request.
  6415  func (s *InvalidParameterException) RequestID() string {
  6416  	return s.RespMetadata.RequestID
  6417  }
  6418  
  6419  // We can’t locate the resource that you specified.
  6420  type NotFoundException struct {
  6421  	_            struct{}                  `type:"structure"`
  6422  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6423  
  6424  	// The error message the exception carries.
  6425  	Message_ *string `locationName:"Message" type:"string"`
  6426  }
  6427  
  6428  // String returns the string representation.
  6429  //
  6430  // API parameter values that are decorated as "sensitive" in the API will not
  6431  // be included in the string output. The member name will be present, but the
  6432  // value will be replaced with "sensitive".
  6433  func (s NotFoundException) String() string {
  6434  	return awsutil.Prettify(s)
  6435  }
  6436  
  6437  // GoString returns the string representation.
  6438  //
  6439  // API parameter values that are decorated as "sensitive" in the API will not
  6440  // be included in the string output. The member name will be present, but the
  6441  // value will be replaced with "sensitive".
  6442  func (s NotFoundException) GoString() string {
  6443  	return s.String()
  6444  }
  6445  
  6446  func newErrorNotFoundException(v protocol.ResponseMetadata) error {
  6447  	return &NotFoundException{
  6448  		RespMetadata: v,
  6449  	}
  6450  }
  6451  
  6452  // Code returns the exception type name.
  6453  func (s *NotFoundException) Code() string {
  6454  	return "NotFoundException"
  6455  }
  6456  
  6457  // Message returns the exception's message.
  6458  func (s *NotFoundException) Message() string {
  6459  	if s.Message_ != nil {
  6460  		return *s.Message_
  6461  	}
  6462  	return ""
  6463  }
  6464  
  6465  // OrigErr always returns nil, satisfies awserr.Error interface.
  6466  func (s *NotFoundException) OrigErr() error {
  6467  	return nil
  6468  }
  6469  
  6470  func (s *NotFoundException) Error() string {
  6471  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6472  }
  6473  
  6474  // Status code returns the HTTP status code for the request's response error.
  6475  func (s *NotFoundException) StatusCode() int {
  6476  	return s.RespMetadata.StatusCode
  6477  }
  6478  
  6479  // RequestID returns the service's response RequestID for request.
  6480  func (s *NotFoundException) RequestID() string {
  6481  	return s.RespMetadata.RequestID
  6482  }
  6483  
  6484  // A notification that is associated with a budget. A budget can have up to
  6485  // ten notifications.
  6486  //
  6487  // Each notification must have at least one subscriber. A notification can have
  6488  // one SNS subscriber and up to 10 email subscribers, for a total of 11 subscribers.
  6489  //
  6490  // For example, if you have a budget for 200 dollars and you want to be notified
  6491  // when you go over 160 dollars, create a notification with the following parameters:
  6492  //
  6493  //    * A notificationType of ACTUAL
  6494  //
  6495  //    * A thresholdType of PERCENTAGE
  6496  //
  6497  //    * A comparisonOperator of GREATER_THAN
  6498  //
  6499  //    * A notification threshold of 80
  6500  type Notification struct {
  6501  	_ struct{} `type:"structure"`
  6502  
  6503  	// The comparison that is used for this notification.
  6504  	//
  6505  	// ComparisonOperator is a required field
  6506  	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
  6507  
  6508  	// Whether this notification is in alarm. If a budget notification is in the
  6509  	// ALARM state, you have passed the set threshold for the budget.
  6510  	NotificationState *string `type:"string" enum:"NotificationState"`
  6511  
  6512  	// Whether the notification is for how much you have spent (ACTUAL) or for how
  6513  	// much you're forecasted to spend (FORECASTED).
  6514  	//
  6515  	// NotificationType is a required field
  6516  	NotificationType *string `type:"string" required:"true" enum:"NotificationType"`
  6517  
  6518  	// The threshold that is associated with a notification. Thresholds are always
  6519  	// a percentage, and many customers find value being alerted between 50% - 200%
  6520  	// of the budgeted amount. The maximum limit for your threshold is 1,000,000%
  6521  	// above the budgeted amount.
  6522  	//
  6523  	// Threshold is a required field
  6524  	Threshold *float64 `type:"double" required:"true"`
  6525  
  6526  	// The type of threshold for a notification. For ABSOLUTE_VALUE thresholds,
  6527  	// AWS notifies you when you go over or are forecasted to go over your total
  6528  	// cost threshold. For PERCENTAGE thresholds, AWS notifies you when you go over
  6529  	// or are forecasted to go over a certain percentage of your forecasted spend.
  6530  	// For example, if you have a budget for 200 dollars and you have a PERCENTAGE
  6531  	// threshold of 80%, AWS notifies you when you go over 160 dollars.
  6532  	ThresholdType *string `type:"string" enum:"ThresholdType"`
  6533  }
  6534  
  6535  // String returns the string representation.
  6536  //
  6537  // API parameter values that are decorated as "sensitive" in the API will not
  6538  // be included in the string output. The member name will be present, but the
  6539  // value will be replaced with "sensitive".
  6540  func (s Notification) String() string {
  6541  	return awsutil.Prettify(s)
  6542  }
  6543  
  6544  // GoString returns the string representation.
  6545  //
  6546  // API parameter values that are decorated as "sensitive" in the API will not
  6547  // be included in the string output. The member name will be present, but the
  6548  // value will be replaced with "sensitive".
  6549  func (s Notification) GoString() string {
  6550  	return s.String()
  6551  }
  6552  
  6553  // Validate inspects the fields of the type to determine if they are valid.
  6554  func (s *Notification) Validate() error {
  6555  	invalidParams := request.ErrInvalidParams{Context: "Notification"}
  6556  	if s.ComparisonOperator == nil {
  6557  		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
  6558  	}
  6559  	if s.NotificationType == nil {
  6560  		invalidParams.Add(request.NewErrParamRequired("NotificationType"))
  6561  	}
  6562  	if s.Threshold == nil {
  6563  		invalidParams.Add(request.NewErrParamRequired("Threshold"))
  6564  	}
  6565  
  6566  	if invalidParams.Len() > 0 {
  6567  		return invalidParams
  6568  	}
  6569  	return nil
  6570  }
  6571  
  6572  // SetComparisonOperator sets the ComparisonOperator field's value.
  6573  func (s *Notification) SetComparisonOperator(v string) *Notification {
  6574  	s.ComparisonOperator = &v
  6575  	return s
  6576  }
  6577  
  6578  // SetNotificationState sets the NotificationState field's value.
  6579  func (s *Notification) SetNotificationState(v string) *Notification {
  6580  	s.NotificationState = &v
  6581  	return s
  6582  }
  6583  
  6584  // SetNotificationType sets the NotificationType field's value.
  6585  func (s *Notification) SetNotificationType(v string) *Notification {
  6586  	s.NotificationType = &v
  6587  	return s
  6588  }
  6589  
  6590  // SetThreshold sets the Threshold field's value.
  6591  func (s *Notification) SetThreshold(v float64) *Notification {
  6592  	s.Threshold = &v
  6593  	return s
  6594  }
  6595  
  6596  // SetThresholdType sets the ThresholdType field's value.
  6597  func (s *Notification) SetThresholdType(v string) *Notification {
  6598  	s.ThresholdType = &v
  6599  	return s
  6600  }
  6601  
  6602  // A notification with subscribers. A notification can have one SNS subscriber
  6603  // and up to 10 email subscribers, for a total of 11 subscribers.
  6604  type NotificationWithSubscribers struct {
  6605  	_ struct{} `type:"structure"`
  6606  
  6607  	// The notification that is associated with a budget.
  6608  	//
  6609  	// Notification is a required field
  6610  	Notification *Notification `type:"structure" required:"true"`
  6611  
  6612  	// A list of subscribers who are subscribed to this notification.
  6613  	//
  6614  	// Subscribers is a required field
  6615  	Subscribers []*Subscriber `min:"1" type:"list" required:"true"`
  6616  }
  6617  
  6618  // String returns the string representation.
  6619  //
  6620  // API parameter values that are decorated as "sensitive" in the API will not
  6621  // be included in the string output. The member name will be present, but the
  6622  // value will be replaced with "sensitive".
  6623  func (s NotificationWithSubscribers) String() string {
  6624  	return awsutil.Prettify(s)
  6625  }
  6626  
  6627  // GoString returns the string representation.
  6628  //
  6629  // API parameter values that are decorated as "sensitive" in the API will not
  6630  // be included in the string output. The member name will be present, but the
  6631  // value will be replaced with "sensitive".
  6632  func (s NotificationWithSubscribers) GoString() string {
  6633  	return s.String()
  6634  }
  6635  
  6636  // Validate inspects the fields of the type to determine if they are valid.
  6637  func (s *NotificationWithSubscribers) Validate() error {
  6638  	invalidParams := request.ErrInvalidParams{Context: "NotificationWithSubscribers"}
  6639  	if s.Notification == nil {
  6640  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  6641  	}
  6642  	if s.Subscribers == nil {
  6643  		invalidParams.Add(request.NewErrParamRequired("Subscribers"))
  6644  	}
  6645  	if s.Subscribers != nil && len(s.Subscribers) < 1 {
  6646  		invalidParams.Add(request.NewErrParamMinLen("Subscribers", 1))
  6647  	}
  6648  	if s.Notification != nil {
  6649  		if err := s.Notification.Validate(); err != nil {
  6650  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  6651  		}
  6652  	}
  6653  	if s.Subscribers != nil {
  6654  		for i, v := range s.Subscribers {
  6655  			if v == nil {
  6656  				continue
  6657  			}
  6658  			if err := v.Validate(); err != nil {
  6659  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams))
  6660  			}
  6661  		}
  6662  	}
  6663  
  6664  	if invalidParams.Len() > 0 {
  6665  		return invalidParams
  6666  	}
  6667  	return nil
  6668  }
  6669  
  6670  // SetNotification sets the Notification field's value.
  6671  func (s *NotificationWithSubscribers) SetNotification(v *Notification) *NotificationWithSubscribers {
  6672  	s.Notification = v
  6673  	return s
  6674  }
  6675  
  6676  // SetSubscribers sets the Subscribers field's value.
  6677  func (s *NotificationWithSubscribers) SetSubscribers(v []*Subscriber) *NotificationWithSubscribers {
  6678  	s.Subscribers = v
  6679  	return s
  6680  }
  6681  
  6682  // The request was received and recognized by the server, but the server rejected
  6683  // that particular method for the requested resource.
  6684  type ResourceLockedException struct {
  6685  	_            struct{}                  `type:"structure"`
  6686  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6687  
  6688  	// The error message the exception carries.
  6689  	Message_ *string `locationName:"Message" type:"string"`
  6690  }
  6691  
  6692  // String returns the string representation.
  6693  //
  6694  // API parameter values that are decorated as "sensitive" in the API will not
  6695  // be included in the string output. The member name will be present, but the
  6696  // value will be replaced with "sensitive".
  6697  func (s ResourceLockedException) String() string {
  6698  	return awsutil.Prettify(s)
  6699  }
  6700  
  6701  // GoString returns the string representation.
  6702  //
  6703  // API parameter values that are decorated as "sensitive" in the API will not
  6704  // be included in the string output. The member name will be present, but the
  6705  // value will be replaced with "sensitive".
  6706  func (s ResourceLockedException) GoString() string {
  6707  	return s.String()
  6708  }
  6709  
  6710  func newErrorResourceLockedException(v protocol.ResponseMetadata) error {
  6711  	return &ResourceLockedException{
  6712  		RespMetadata: v,
  6713  	}
  6714  }
  6715  
  6716  // Code returns the exception type name.
  6717  func (s *ResourceLockedException) Code() string {
  6718  	return "ResourceLockedException"
  6719  }
  6720  
  6721  // Message returns the exception's message.
  6722  func (s *ResourceLockedException) Message() string {
  6723  	if s.Message_ != nil {
  6724  		return *s.Message_
  6725  	}
  6726  	return ""
  6727  }
  6728  
  6729  // OrigErr always returns nil, satisfies awserr.Error interface.
  6730  func (s *ResourceLockedException) OrigErr() error {
  6731  	return nil
  6732  }
  6733  
  6734  func (s *ResourceLockedException) Error() string {
  6735  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  6736  }
  6737  
  6738  // Status code returns the HTTP status code for the request's response error.
  6739  func (s *ResourceLockedException) StatusCode() int {
  6740  	return s.RespMetadata.StatusCode
  6741  }
  6742  
  6743  // RequestID returns the service's response RequestID for request.
  6744  func (s *ResourceLockedException) RequestID() string {
  6745  	return s.RespMetadata.RequestID
  6746  }
  6747  
  6748  // The service control policies (SCP) action definition details.
  6749  type ScpActionDefinition struct {
  6750  	_ struct{} `type:"structure"`
  6751  
  6752  	// The policy ID attached.
  6753  	//
  6754  	// PolicyId is a required field
  6755  	PolicyId *string `min:"10" type:"string" required:"true"`
  6756  
  6757  	// A list of target IDs.
  6758  	//
  6759  	// TargetIds is a required field
  6760  	TargetIds []*string `min:"1" type:"list" required:"true"`
  6761  }
  6762  
  6763  // String returns the string representation.
  6764  //
  6765  // API parameter values that are decorated as "sensitive" in the API will not
  6766  // be included in the string output. The member name will be present, but the
  6767  // value will be replaced with "sensitive".
  6768  func (s ScpActionDefinition) String() string {
  6769  	return awsutil.Prettify(s)
  6770  }
  6771  
  6772  // GoString returns the string representation.
  6773  //
  6774  // API parameter values that are decorated as "sensitive" in the API will not
  6775  // be included in the string output. The member name will be present, but the
  6776  // value will be replaced with "sensitive".
  6777  func (s ScpActionDefinition) GoString() string {
  6778  	return s.String()
  6779  }
  6780  
  6781  // Validate inspects the fields of the type to determine if they are valid.
  6782  func (s *ScpActionDefinition) Validate() error {
  6783  	invalidParams := request.ErrInvalidParams{Context: "ScpActionDefinition"}
  6784  	if s.PolicyId == nil {
  6785  		invalidParams.Add(request.NewErrParamRequired("PolicyId"))
  6786  	}
  6787  	if s.PolicyId != nil && len(*s.PolicyId) < 10 {
  6788  		invalidParams.Add(request.NewErrParamMinLen("PolicyId", 10))
  6789  	}
  6790  	if s.TargetIds == nil {
  6791  		invalidParams.Add(request.NewErrParamRequired("TargetIds"))
  6792  	}
  6793  	if s.TargetIds != nil && len(s.TargetIds) < 1 {
  6794  		invalidParams.Add(request.NewErrParamMinLen("TargetIds", 1))
  6795  	}
  6796  
  6797  	if invalidParams.Len() > 0 {
  6798  		return invalidParams
  6799  	}
  6800  	return nil
  6801  }
  6802  
  6803  // SetPolicyId sets the PolicyId field's value.
  6804  func (s *ScpActionDefinition) SetPolicyId(v string) *ScpActionDefinition {
  6805  	s.PolicyId = &v
  6806  	return s
  6807  }
  6808  
  6809  // SetTargetIds sets the TargetIds field's value.
  6810  func (s *ScpActionDefinition) SetTargetIds(v []*string) *ScpActionDefinition {
  6811  	s.TargetIds = v
  6812  	return s
  6813  }
  6814  
  6815  // The amount of cost or usage that is measured for a budget.
  6816  //
  6817  // For example, a Spend for 3 GB of S3 usage would have the following parameters:
  6818  //
  6819  //    * An Amount of 3
  6820  //
  6821  //    * A unit of GB
  6822  type Spend struct {
  6823  	_ struct{} `type:"structure"`
  6824  
  6825  	// The cost or usage amount that is associated with a budget forecast, actual
  6826  	// spend, or budget threshold.
  6827  	//
  6828  	// Amount is a required field
  6829  	Amount *string `min:"1" type:"string" required:"true"`
  6830  
  6831  	// The unit of measurement that is used for the budget forecast, actual spend,
  6832  	// or budget threshold, such as dollars or GB.
  6833  	//
  6834  	// Unit is a required field
  6835  	Unit *string `min:"1" type:"string" required:"true"`
  6836  }
  6837  
  6838  // String returns the string representation.
  6839  //
  6840  // API parameter values that are decorated as "sensitive" in the API will not
  6841  // be included in the string output. The member name will be present, but the
  6842  // value will be replaced with "sensitive".
  6843  func (s Spend) String() string {
  6844  	return awsutil.Prettify(s)
  6845  }
  6846  
  6847  // GoString returns the string representation.
  6848  //
  6849  // API parameter values that are decorated as "sensitive" in the API will not
  6850  // be included in the string output. The member name will be present, but the
  6851  // value will be replaced with "sensitive".
  6852  func (s Spend) GoString() string {
  6853  	return s.String()
  6854  }
  6855  
  6856  // Validate inspects the fields of the type to determine if they are valid.
  6857  func (s *Spend) Validate() error {
  6858  	invalidParams := request.ErrInvalidParams{Context: "Spend"}
  6859  	if s.Amount == nil {
  6860  		invalidParams.Add(request.NewErrParamRequired("Amount"))
  6861  	}
  6862  	if s.Amount != nil && len(*s.Amount) < 1 {
  6863  		invalidParams.Add(request.NewErrParamMinLen("Amount", 1))
  6864  	}
  6865  	if s.Unit == nil {
  6866  		invalidParams.Add(request.NewErrParamRequired("Unit"))
  6867  	}
  6868  	if s.Unit != nil && len(*s.Unit) < 1 {
  6869  		invalidParams.Add(request.NewErrParamMinLen("Unit", 1))
  6870  	}
  6871  
  6872  	if invalidParams.Len() > 0 {
  6873  		return invalidParams
  6874  	}
  6875  	return nil
  6876  }
  6877  
  6878  // SetAmount sets the Amount field's value.
  6879  func (s *Spend) SetAmount(v string) *Spend {
  6880  	s.Amount = &v
  6881  	return s
  6882  }
  6883  
  6884  // SetUnit sets the Unit field's value.
  6885  func (s *Spend) SetUnit(v string) *Spend {
  6886  	s.Unit = &v
  6887  	return s
  6888  }
  6889  
  6890  // The AWS Systems Manager (SSM) action definition details.
  6891  type SsmActionDefinition struct {
  6892  	_ struct{} `type:"structure"`
  6893  
  6894  	// The action subType.
  6895  	//
  6896  	// ActionSubType is a required field
  6897  	ActionSubType *string `type:"string" required:"true" enum:"ActionSubType"`
  6898  
  6899  	// The EC2 and RDS instance IDs.
  6900  	//
  6901  	// InstanceIds is a required field
  6902  	InstanceIds []*string `min:"1" type:"list" required:"true"`
  6903  
  6904  	// The Region to run the SSM document.
  6905  	//
  6906  	// Region is a required field
  6907  	Region *string `min:"9" type:"string" required:"true"`
  6908  }
  6909  
  6910  // String returns the string representation.
  6911  //
  6912  // API parameter values that are decorated as "sensitive" in the API will not
  6913  // be included in the string output. The member name will be present, but the
  6914  // value will be replaced with "sensitive".
  6915  func (s SsmActionDefinition) String() string {
  6916  	return awsutil.Prettify(s)
  6917  }
  6918  
  6919  // GoString returns the string representation.
  6920  //
  6921  // API parameter values that are decorated as "sensitive" in the API will not
  6922  // be included in the string output. The member name will be present, but the
  6923  // value will be replaced with "sensitive".
  6924  func (s SsmActionDefinition) GoString() string {
  6925  	return s.String()
  6926  }
  6927  
  6928  // Validate inspects the fields of the type to determine if they are valid.
  6929  func (s *SsmActionDefinition) Validate() error {
  6930  	invalidParams := request.ErrInvalidParams{Context: "SsmActionDefinition"}
  6931  	if s.ActionSubType == nil {
  6932  		invalidParams.Add(request.NewErrParamRequired("ActionSubType"))
  6933  	}
  6934  	if s.InstanceIds == nil {
  6935  		invalidParams.Add(request.NewErrParamRequired("InstanceIds"))
  6936  	}
  6937  	if s.InstanceIds != nil && len(s.InstanceIds) < 1 {
  6938  		invalidParams.Add(request.NewErrParamMinLen("InstanceIds", 1))
  6939  	}
  6940  	if s.Region == nil {
  6941  		invalidParams.Add(request.NewErrParamRequired("Region"))
  6942  	}
  6943  	if s.Region != nil && len(*s.Region) < 9 {
  6944  		invalidParams.Add(request.NewErrParamMinLen("Region", 9))
  6945  	}
  6946  
  6947  	if invalidParams.Len() > 0 {
  6948  		return invalidParams
  6949  	}
  6950  	return nil
  6951  }
  6952  
  6953  // SetActionSubType sets the ActionSubType field's value.
  6954  func (s *SsmActionDefinition) SetActionSubType(v string) *SsmActionDefinition {
  6955  	s.ActionSubType = &v
  6956  	return s
  6957  }
  6958  
  6959  // SetInstanceIds sets the InstanceIds field's value.
  6960  func (s *SsmActionDefinition) SetInstanceIds(v []*string) *SsmActionDefinition {
  6961  	s.InstanceIds = v
  6962  	return s
  6963  }
  6964  
  6965  // SetRegion sets the Region field's value.
  6966  func (s *SsmActionDefinition) SetRegion(v string) *SsmActionDefinition {
  6967  	s.Region = &v
  6968  	return s
  6969  }
  6970  
  6971  // The subscriber to a budget notification. The subscriber consists of a subscription
  6972  // type and either an Amazon SNS topic or an email address.
  6973  //
  6974  // For example, an email subscriber would have the following parameters:
  6975  //
  6976  //    * A subscriptionType of EMAIL
  6977  //
  6978  //    * An address of example@example.com
  6979  type Subscriber struct {
  6980  	_ struct{} `type:"structure"`
  6981  
  6982  	// The address that AWS sends budget notifications to, either an SNS topic or
  6983  	// an email.
  6984  	//
  6985  	// When you create a subscriber, the value of Address can't contain line breaks.
  6986  	//
  6987  	// Address is a sensitive parameter and its value will be
  6988  	// replaced with "sensitive" in string returned by Subscriber's
  6989  	// String and GoString methods.
  6990  	//
  6991  	// Address is a required field
  6992  	Address *string `min:"1" type:"string" required:"true" sensitive:"true"`
  6993  
  6994  	// The type of notification that AWS sends to a subscriber.
  6995  	//
  6996  	// SubscriptionType is a required field
  6997  	SubscriptionType *string `type:"string" required:"true" enum:"SubscriptionType"`
  6998  }
  6999  
  7000  // String returns the string representation.
  7001  //
  7002  // API parameter values that are decorated as "sensitive" in the API will not
  7003  // be included in the string output. The member name will be present, but the
  7004  // value will be replaced with "sensitive".
  7005  func (s Subscriber) String() string {
  7006  	return awsutil.Prettify(s)
  7007  }
  7008  
  7009  // GoString returns the string representation.
  7010  //
  7011  // API parameter values that are decorated as "sensitive" in the API will not
  7012  // be included in the string output. The member name will be present, but the
  7013  // value will be replaced with "sensitive".
  7014  func (s Subscriber) GoString() string {
  7015  	return s.String()
  7016  }
  7017  
  7018  // Validate inspects the fields of the type to determine if they are valid.
  7019  func (s *Subscriber) Validate() error {
  7020  	invalidParams := request.ErrInvalidParams{Context: "Subscriber"}
  7021  	if s.Address == nil {
  7022  		invalidParams.Add(request.NewErrParamRequired("Address"))
  7023  	}
  7024  	if s.Address != nil && len(*s.Address) < 1 {
  7025  		invalidParams.Add(request.NewErrParamMinLen("Address", 1))
  7026  	}
  7027  	if s.SubscriptionType == nil {
  7028  		invalidParams.Add(request.NewErrParamRequired("SubscriptionType"))
  7029  	}
  7030  
  7031  	if invalidParams.Len() > 0 {
  7032  		return invalidParams
  7033  	}
  7034  	return nil
  7035  }
  7036  
  7037  // SetAddress sets the Address field's value.
  7038  func (s *Subscriber) SetAddress(v string) *Subscriber {
  7039  	s.Address = &v
  7040  	return s
  7041  }
  7042  
  7043  // SetSubscriptionType sets the SubscriptionType field's value.
  7044  func (s *Subscriber) SetSubscriptionType(v string) *Subscriber {
  7045  	s.SubscriptionType = &v
  7046  	return s
  7047  }
  7048  
  7049  // The period of time that is covered by a budget. The period has a start date
  7050  // and an end date. The start date must come before the end date. There are
  7051  // no restrictions on the end date.
  7052  type TimePeriod struct {
  7053  	_ struct{} `type:"structure"`
  7054  
  7055  	// The end date for a budget. If you didn't specify an end date, AWS set your
  7056  	// end date to 06/15/87 00:00 UTC. The defaults are the same for the AWS Billing
  7057  	// and Cost Management console and the API.
  7058  	//
  7059  	// After the end date, AWS deletes the budget and all associated notifications
  7060  	// and subscribers. You can change your end date with the UpdateBudget operation.
  7061  	End *time.Time `type:"timestamp"`
  7062  
  7063  	// The start date for a budget. If you created your budget and didn't specify
  7064  	// a start date, AWS defaults to the start of your chosen time period (DAILY,
  7065  	// MONTHLY, QUARTERLY, or ANNUALLY). For example, if you created your budget
  7066  	// on January 24, 2018, chose DAILY, and didn't set a start date, AWS set your
  7067  	// start date to 01/24/18 00:00 UTC. If you chose MONTHLY, AWS set your start
  7068  	// date to 01/01/18 00:00 UTC. The defaults are the same for the AWS Billing
  7069  	// and Cost Management console and the API.
  7070  	//
  7071  	// You can change your start date with the UpdateBudget operation.
  7072  	Start *time.Time `type:"timestamp"`
  7073  }
  7074  
  7075  // String returns the string representation.
  7076  //
  7077  // API parameter values that are decorated as "sensitive" in the API will not
  7078  // be included in the string output. The member name will be present, but the
  7079  // value will be replaced with "sensitive".
  7080  func (s TimePeriod) String() string {
  7081  	return awsutil.Prettify(s)
  7082  }
  7083  
  7084  // GoString returns the string representation.
  7085  //
  7086  // API parameter values that are decorated as "sensitive" in the API will not
  7087  // be included in the string output. The member name will be present, but the
  7088  // value will be replaced with "sensitive".
  7089  func (s TimePeriod) GoString() string {
  7090  	return s.String()
  7091  }
  7092  
  7093  // SetEnd sets the End field's value.
  7094  func (s *TimePeriod) SetEnd(v time.Time) *TimePeriod {
  7095  	s.End = &v
  7096  	return s
  7097  }
  7098  
  7099  // SetStart sets the Start field's value.
  7100  func (s *TimePeriod) SetStart(v time.Time) *TimePeriod {
  7101  	s.Start = &v
  7102  	return s
  7103  }
  7104  
  7105  type UpdateBudgetActionInput struct {
  7106  	_ struct{} `type:"structure"`
  7107  
  7108  	// The account ID of the user. It should be a 12-digit number.
  7109  	//
  7110  	// AccountId is a required field
  7111  	AccountId *string `min:"12" type:"string" required:"true"`
  7112  
  7113  	// A system-generated universally unique identifier (UUID) for the action.
  7114  	//
  7115  	// ActionId is a required field
  7116  	ActionId *string `min:"36" type:"string" required:"true"`
  7117  
  7118  	// The trigger threshold of the action.
  7119  	ActionThreshold *ActionThreshold `type:"structure"`
  7120  
  7121  	// This specifies if the action needs manual or automatic approval.
  7122  	ApprovalModel *string `type:"string" enum:"ApprovalModel"`
  7123  
  7124  	// A string that represents the budget name. The ":" and "\" characters aren't
  7125  	// allowed.
  7126  	//
  7127  	// BudgetName is a required field
  7128  	BudgetName *string `min:"1" type:"string" required:"true"`
  7129  
  7130  	// Specifies all of the type-specific parameters.
  7131  	Definition *Definition `type:"structure"`
  7132  
  7133  	// The role passed for action execution and reversion. Roles and actions must
  7134  	// be in the same account.
  7135  	ExecutionRoleArn *string `min:"32" type:"string"`
  7136  
  7137  	// The type of a notification. It must be ACTUAL or FORECASTED.
  7138  	NotificationType *string `type:"string" enum:"NotificationType"`
  7139  
  7140  	// A list of subscribers.
  7141  	Subscribers []*Subscriber `min:"1" type:"list"`
  7142  }
  7143  
  7144  // String returns the string representation.
  7145  //
  7146  // API parameter values that are decorated as "sensitive" in the API will not
  7147  // be included in the string output. The member name will be present, but the
  7148  // value will be replaced with "sensitive".
  7149  func (s UpdateBudgetActionInput) String() string {
  7150  	return awsutil.Prettify(s)
  7151  }
  7152  
  7153  // GoString returns the string representation.
  7154  //
  7155  // API parameter values that are decorated as "sensitive" in the API will not
  7156  // be included in the string output. The member name will be present, but the
  7157  // value will be replaced with "sensitive".
  7158  func (s UpdateBudgetActionInput) GoString() string {
  7159  	return s.String()
  7160  }
  7161  
  7162  // Validate inspects the fields of the type to determine if they are valid.
  7163  func (s *UpdateBudgetActionInput) Validate() error {
  7164  	invalidParams := request.ErrInvalidParams{Context: "UpdateBudgetActionInput"}
  7165  	if s.AccountId == nil {
  7166  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7167  	}
  7168  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  7169  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  7170  	}
  7171  	if s.ActionId == nil {
  7172  		invalidParams.Add(request.NewErrParamRequired("ActionId"))
  7173  	}
  7174  	if s.ActionId != nil && len(*s.ActionId) < 36 {
  7175  		invalidParams.Add(request.NewErrParamMinLen("ActionId", 36))
  7176  	}
  7177  	if s.BudgetName == nil {
  7178  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  7179  	}
  7180  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  7181  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  7182  	}
  7183  	if s.ExecutionRoleArn != nil && len(*s.ExecutionRoleArn) < 32 {
  7184  		invalidParams.Add(request.NewErrParamMinLen("ExecutionRoleArn", 32))
  7185  	}
  7186  	if s.Subscribers != nil && len(s.Subscribers) < 1 {
  7187  		invalidParams.Add(request.NewErrParamMinLen("Subscribers", 1))
  7188  	}
  7189  	if s.ActionThreshold != nil {
  7190  		if err := s.ActionThreshold.Validate(); err != nil {
  7191  			invalidParams.AddNested("ActionThreshold", err.(request.ErrInvalidParams))
  7192  		}
  7193  	}
  7194  	if s.Definition != nil {
  7195  		if err := s.Definition.Validate(); err != nil {
  7196  			invalidParams.AddNested("Definition", err.(request.ErrInvalidParams))
  7197  		}
  7198  	}
  7199  	if s.Subscribers != nil {
  7200  		for i, v := range s.Subscribers {
  7201  			if v == nil {
  7202  				continue
  7203  			}
  7204  			if err := v.Validate(); err != nil {
  7205  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Subscribers", i), err.(request.ErrInvalidParams))
  7206  			}
  7207  		}
  7208  	}
  7209  
  7210  	if invalidParams.Len() > 0 {
  7211  		return invalidParams
  7212  	}
  7213  	return nil
  7214  }
  7215  
  7216  // SetAccountId sets the AccountId field's value.
  7217  func (s *UpdateBudgetActionInput) SetAccountId(v string) *UpdateBudgetActionInput {
  7218  	s.AccountId = &v
  7219  	return s
  7220  }
  7221  
  7222  // SetActionId sets the ActionId field's value.
  7223  func (s *UpdateBudgetActionInput) SetActionId(v string) *UpdateBudgetActionInput {
  7224  	s.ActionId = &v
  7225  	return s
  7226  }
  7227  
  7228  // SetActionThreshold sets the ActionThreshold field's value.
  7229  func (s *UpdateBudgetActionInput) SetActionThreshold(v *ActionThreshold) *UpdateBudgetActionInput {
  7230  	s.ActionThreshold = v
  7231  	return s
  7232  }
  7233  
  7234  // SetApprovalModel sets the ApprovalModel field's value.
  7235  func (s *UpdateBudgetActionInput) SetApprovalModel(v string) *UpdateBudgetActionInput {
  7236  	s.ApprovalModel = &v
  7237  	return s
  7238  }
  7239  
  7240  // SetBudgetName sets the BudgetName field's value.
  7241  func (s *UpdateBudgetActionInput) SetBudgetName(v string) *UpdateBudgetActionInput {
  7242  	s.BudgetName = &v
  7243  	return s
  7244  }
  7245  
  7246  // SetDefinition sets the Definition field's value.
  7247  func (s *UpdateBudgetActionInput) SetDefinition(v *Definition) *UpdateBudgetActionInput {
  7248  	s.Definition = v
  7249  	return s
  7250  }
  7251  
  7252  // SetExecutionRoleArn sets the ExecutionRoleArn field's value.
  7253  func (s *UpdateBudgetActionInput) SetExecutionRoleArn(v string) *UpdateBudgetActionInput {
  7254  	s.ExecutionRoleArn = &v
  7255  	return s
  7256  }
  7257  
  7258  // SetNotificationType sets the NotificationType field's value.
  7259  func (s *UpdateBudgetActionInput) SetNotificationType(v string) *UpdateBudgetActionInput {
  7260  	s.NotificationType = &v
  7261  	return s
  7262  }
  7263  
  7264  // SetSubscribers sets the Subscribers field's value.
  7265  func (s *UpdateBudgetActionInput) SetSubscribers(v []*Subscriber) *UpdateBudgetActionInput {
  7266  	s.Subscribers = v
  7267  	return s
  7268  }
  7269  
  7270  type UpdateBudgetActionOutput struct {
  7271  	_ struct{} `type:"structure"`
  7272  
  7273  	// The account ID of the user. It should be a 12-digit number.
  7274  	//
  7275  	// AccountId is a required field
  7276  	AccountId *string `min:"12" type:"string" required:"true"`
  7277  
  7278  	// A string that represents the budget name. The ":" and "\" characters aren't
  7279  	// allowed.
  7280  	//
  7281  	// BudgetName is a required field
  7282  	BudgetName *string `min:"1" type:"string" required:"true"`
  7283  
  7284  	// The updated action resource information.
  7285  	//
  7286  	// NewAction is a required field
  7287  	NewAction *Action `type:"structure" required:"true"`
  7288  
  7289  	// The previous action resource information.
  7290  	//
  7291  	// OldAction is a required field
  7292  	OldAction *Action `type:"structure" required:"true"`
  7293  }
  7294  
  7295  // String returns the string representation.
  7296  //
  7297  // API parameter values that are decorated as "sensitive" in the API will not
  7298  // be included in the string output. The member name will be present, but the
  7299  // value will be replaced with "sensitive".
  7300  func (s UpdateBudgetActionOutput) String() string {
  7301  	return awsutil.Prettify(s)
  7302  }
  7303  
  7304  // GoString returns the string representation.
  7305  //
  7306  // API parameter values that are decorated as "sensitive" in the API will not
  7307  // be included in the string output. The member name will be present, but the
  7308  // value will be replaced with "sensitive".
  7309  func (s UpdateBudgetActionOutput) GoString() string {
  7310  	return s.String()
  7311  }
  7312  
  7313  // SetAccountId sets the AccountId field's value.
  7314  func (s *UpdateBudgetActionOutput) SetAccountId(v string) *UpdateBudgetActionOutput {
  7315  	s.AccountId = &v
  7316  	return s
  7317  }
  7318  
  7319  // SetBudgetName sets the BudgetName field's value.
  7320  func (s *UpdateBudgetActionOutput) SetBudgetName(v string) *UpdateBudgetActionOutput {
  7321  	s.BudgetName = &v
  7322  	return s
  7323  }
  7324  
  7325  // SetNewAction sets the NewAction field's value.
  7326  func (s *UpdateBudgetActionOutput) SetNewAction(v *Action) *UpdateBudgetActionOutput {
  7327  	s.NewAction = v
  7328  	return s
  7329  }
  7330  
  7331  // SetOldAction sets the OldAction field's value.
  7332  func (s *UpdateBudgetActionOutput) SetOldAction(v *Action) *UpdateBudgetActionOutput {
  7333  	s.OldAction = v
  7334  	return s
  7335  }
  7336  
  7337  // Request of UpdateBudget
  7338  type UpdateBudgetInput struct {
  7339  	_ struct{} `type:"structure"`
  7340  
  7341  	// The accountId that is associated with the budget that you want to update.
  7342  	//
  7343  	// AccountId is a required field
  7344  	AccountId *string `min:"12" type:"string" required:"true"`
  7345  
  7346  	// The budget that you want to update your budget to.
  7347  	//
  7348  	// NewBudget is a required field
  7349  	NewBudget *Budget `type:"structure" required:"true"`
  7350  }
  7351  
  7352  // String returns the string representation.
  7353  //
  7354  // API parameter values that are decorated as "sensitive" in the API will not
  7355  // be included in the string output. The member name will be present, but the
  7356  // value will be replaced with "sensitive".
  7357  func (s UpdateBudgetInput) String() string {
  7358  	return awsutil.Prettify(s)
  7359  }
  7360  
  7361  // GoString returns the string representation.
  7362  //
  7363  // API parameter values that are decorated as "sensitive" in the API will not
  7364  // be included in the string output. The member name will be present, but the
  7365  // value will be replaced with "sensitive".
  7366  func (s UpdateBudgetInput) GoString() string {
  7367  	return s.String()
  7368  }
  7369  
  7370  // Validate inspects the fields of the type to determine if they are valid.
  7371  func (s *UpdateBudgetInput) Validate() error {
  7372  	invalidParams := request.ErrInvalidParams{Context: "UpdateBudgetInput"}
  7373  	if s.AccountId == nil {
  7374  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7375  	}
  7376  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  7377  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  7378  	}
  7379  	if s.NewBudget == nil {
  7380  		invalidParams.Add(request.NewErrParamRequired("NewBudget"))
  7381  	}
  7382  	if s.NewBudget != nil {
  7383  		if err := s.NewBudget.Validate(); err != nil {
  7384  			invalidParams.AddNested("NewBudget", err.(request.ErrInvalidParams))
  7385  		}
  7386  	}
  7387  
  7388  	if invalidParams.Len() > 0 {
  7389  		return invalidParams
  7390  	}
  7391  	return nil
  7392  }
  7393  
  7394  // SetAccountId sets the AccountId field's value.
  7395  func (s *UpdateBudgetInput) SetAccountId(v string) *UpdateBudgetInput {
  7396  	s.AccountId = &v
  7397  	return s
  7398  }
  7399  
  7400  // SetNewBudget sets the NewBudget field's value.
  7401  func (s *UpdateBudgetInput) SetNewBudget(v *Budget) *UpdateBudgetInput {
  7402  	s.NewBudget = v
  7403  	return s
  7404  }
  7405  
  7406  // Response of UpdateBudget
  7407  type UpdateBudgetOutput struct {
  7408  	_ struct{} `type:"structure"`
  7409  }
  7410  
  7411  // String returns the string representation.
  7412  //
  7413  // API parameter values that are decorated as "sensitive" in the API will not
  7414  // be included in the string output. The member name will be present, but the
  7415  // value will be replaced with "sensitive".
  7416  func (s UpdateBudgetOutput) String() string {
  7417  	return awsutil.Prettify(s)
  7418  }
  7419  
  7420  // GoString returns the string representation.
  7421  //
  7422  // API parameter values that are decorated as "sensitive" in the API will not
  7423  // be included in the string output. The member name will be present, but the
  7424  // value will be replaced with "sensitive".
  7425  func (s UpdateBudgetOutput) GoString() string {
  7426  	return s.String()
  7427  }
  7428  
  7429  // Request of UpdateNotification
  7430  type UpdateNotificationInput struct {
  7431  	_ struct{} `type:"structure"`
  7432  
  7433  	// The accountId that is associated with the budget whose notification you want
  7434  	// to update.
  7435  	//
  7436  	// AccountId is a required field
  7437  	AccountId *string `min:"12" type:"string" required:"true"`
  7438  
  7439  	// The name of the budget whose notification you want to update.
  7440  	//
  7441  	// BudgetName is a required field
  7442  	BudgetName *string `min:"1" type:"string" required:"true"`
  7443  
  7444  	// The updated notification to be associated with a budget.
  7445  	//
  7446  	// NewNotification is a required field
  7447  	NewNotification *Notification `type:"structure" required:"true"`
  7448  
  7449  	// The previous notification that is associated with a budget.
  7450  	//
  7451  	// OldNotification is a required field
  7452  	OldNotification *Notification `type:"structure" required:"true"`
  7453  }
  7454  
  7455  // String returns the string representation.
  7456  //
  7457  // API parameter values that are decorated as "sensitive" in the API will not
  7458  // be included in the string output. The member name will be present, but the
  7459  // value will be replaced with "sensitive".
  7460  func (s UpdateNotificationInput) String() string {
  7461  	return awsutil.Prettify(s)
  7462  }
  7463  
  7464  // GoString returns the string representation.
  7465  //
  7466  // API parameter values that are decorated as "sensitive" in the API will not
  7467  // be included in the string output. The member name will be present, but the
  7468  // value will be replaced with "sensitive".
  7469  func (s UpdateNotificationInput) GoString() string {
  7470  	return s.String()
  7471  }
  7472  
  7473  // Validate inspects the fields of the type to determine if they are valid.
  7474  func (s *UpdateNotificationInput) Validate() error {
  7475  	invalidParams := request.ErrInvalidParams{Context: "UpdateNotificationInput"}
  7476  	if s.AccountId == nil {
  7477  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7478  	}
  7479  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  7480  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  7481  	}
  7482  	if s.BudgetName == nil {
  7483  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  7484  	}
  7485  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  7486  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  7487  	}
  7488  	if s.NewNotification == nil {
  7489  		invalidParams.Add(request.NewErrParamRequired("NewNotification"))
  7490  	}
  7491  	if s.OldNotification == nil {
  7492  		invalidParams.Add(request.NewErrParamRequired("OldNotification"))
  7493  	}
  7494  	if s.NewNotification != nil {
  7495  		if err := s.NewNotification.Validate(); err != nil {
  7496  			invalidParams.AddNested("NewNotification", err.(request.ErrInvalidParams))
  7497  		}
  7498  	}
  7499  	if s.OldNotification != nil {
  7500  		if err := s.OldNotification.Validate(); err != nil {
  7501  			invalidParams.AddNested("OldNotification", err.(request.ErrInvalidParams))
  7502  		}
  7503  	}
  7504  
  7505  	if invalidParams.Len() > 0 {
  7506  		return invalidParams
  7507  	}
  7508  	return nil
  7509  }
  7510  
  7511  // SetAccountId sets the AccountId field's value.
  7512  func (s *UpdateNotificationInput) SetAccountId(v string) *UpdateNotificationInput {
  7513  	s.AccountId = &v
  7514  	return s
  7515  }
  7516  
  7517  // SetBudgetName sets the BudgetName field's value.
  7518  func (s *UpdateNotificationInput) SetBudgetName(v string) *UpdateNotificationInput {
  7519  	s.BudgetName = &v
  7520  	return s
  7521  }
  7522  
  7523  // SetNewNotification sets the NewNotification field's value.
  7524  func (s *UpdateNotificationInput) SetNewNotification(v *Notification) *UpdateNotificationInput {
  7525  	s.NewNotification = v
  7526  	return s
  7527  }
  7528  
  7529  // SetOldNotification sets the OldNotification field's value.
  7530  func (s *UpdateNotificationInput) SetOldNotification(v *Notification) *UpdateNotificationInput {
  7531  	s.OldNotification = v
  7532  	return s
  7533  }
  7534  
  7535  // Response of UpdateNotification
  7536  type UpdateNotificationOutput struct {
  7537  	_ struct{} `type:"structure"`
  7538  }
  7539  
  7540  // String returns the string representation.
  7541  //
  7542  // API parameter values that are decorated as "sensitive" in the API will not
  7543  // be included in the string output. The member name will be present, but the
  7544  // value will be replaced with "sensitive".
  7545  func (s UpdateNotificationOutput) String() string {
  7546  	return awsutil.Prettify(s)
  7547  }
  7548  
  7549  // GoString returns the string representation.
  7550  //
  7551  // API parameter values that are decorated as "sensitive" in the API will not
  7552  // be included in the string output. The member name will be present, but the
  7553  // value will be replaced with "sensitive".
  7554  func (s UpdateNotificationOutput) GoString() string {
  7555  	return s.String()
  7556  }
  7557  
  7558  // Request of UpdateSubscriber
  7559  type UpdateSubscriberInput struct {
  7560  	_ struct{} `type:"structure"`
  7561  
  7562  	// The accountId that is associated with the budget whose subscriber you want
  7563  	// to update.
  7564  	//
  7565  	// AccountId is a required field
  7566  	AccountId *string `min:"12" type:"string" required:"true"`
  7567  
  7568  	// The name of the budget whose subscriber you want to update.
  7569  	//
  7570  	// BudgetName is a required field
  7571  	BudgetName *string `min:"1" type:"string" required:"true"`
  7572  
  7573  	// The updated subscriber that is associated with a budget notification.
  7574  	//
  7575  	// NewSubscriber is a required field
  7576  	NewSubscriber *Subscriber `type:"structure" required:"true"`
  7577  
  7578  	// The notification whose subscriber you want to update.
  7579  	//
  7580  	// Notification is a required field
  7581  	Notification *Notification `type:"structure" required:"true"`
  7582  
  7583  	// The previous subscriber that is associated with a budget notification.
  7584  	//
  7585  	// OldSubscriber is a required field
  7586  	OldSubscriber *Subscriber `type:"structure" required:"true"`
  7587  }
  7588  
  7589  // String returns the string representation.
  7590  //
  7591  // API parameter values that are decorated as "sensitive" in the API will not
  7592  // be included in the string output. The member name will be present, but the
  7593  // value will be replaced with "sensitive".
  7594  func (s UpdateSubscriberInput) String() string {
  7595  	return awsutil.Prettify(s)
  7596  }
  7597  
  7598  // GoString returns the string representation.
  7599  //
  7600  // API parameter values that are decorated as "sensitive" in the API will not
  7601  // be included in the string output. The member name will be present, but the
  7602  // value will be replaced with "sensitive".
  7603  func (s UpdateSubscriberInput) GoString() string {
  7604  	return s.String()
  7605  }
  7606  
  7607  // Validate inspects the fields of the type to determine if they are valid.
  7608  func (s *UpdateSubscriberInput) Validate() error {
  7609  	invalidParams := request.ErrInvalidParams{Context: "UpdateSubscriberInput"}
  7610  	if s.AccountId == nil {
  7611  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7612  	}
  7613  	if s.AccountId != nil && len(*s.AccountId) < 12 {
  7614  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
  7615  	}
  7616  	if s.BudgetName == nil {
  7617  		invalidParams.Add(request.NewErrParamRequired("BudgetName"))
  7618  	}
  7619  	if s.BudgetName != nil && len(*s.BudgetName) < 1 {
  7620  		invalidParams.Add(request.NewErrParamMinLen("BudgetName", 1))
  7621  	}
  7622  	if s.NewSubscriber == nil {
  7623  		invalidParams.Add(request.NewErrParamRequired("NewSubscriber"))
  7624  	}
  7625  	if s.Notification == nil {
  7626  		invalidParams.Add(request.NewErrParamRequired("Notification"))
  7627  	}
  7628  	if s.OldSubscriber == nil {
  7629  		invalidParams.Add(request.NewErrParamRequired("OldSubscriber"))
  7630  	}
  7631  	if s.NewSubscriber != nil {
  7632  		if err := s.NewSubscriber.Validate(); err != nil {
  7633  			invalidParams.AddNested("NewSubscriber", err.(request.ErrInvalidParams))
  7634  		}
  7635  	}
  7636  	if s.Notification != nil {
  7637  		if err := s.Notification.Validate(); err != nil {
  7638  			invalidParams.AddNested("Notification", err.(request.ErrInvalidParams))
  7639  		}
  7640  	}
  7641  	if s.OldSubscriber != nil {
  7642  		if err := s.OldSubscriber.Validate(); err != nil {
  7643  			invalidParams.AddNested("OldSubscriber", err.(request.ErrInvalidParams))
  7644  		}
  7645  	}
  7646  
  7647  	if invalidParams.Len() > 0 {
  7648  		return invalidParams
  7649  	}
  7650  	return nil
  7651  }
  7652  
  7653  // SetAccountId sets the AccountId field's value.
  7654  func (s *UpdateSubscriberInput) SetAccountId(v string) *UpdateSubscriberInput {
  7655  	s.AccountId = &v
  7656  	return s
  7657  }
  7658  
  7659  // SetBudgetName sets the BudgetName field's value.
  7660  func (s *UpdateSubscriberInput) SetBudgetName(v string) *UpdateSubscriberInput {
  7661  	s.BudgetName = &v
  7662  	return s
  7663  }
  7664  
  7665  // SetNewSubscriber sets the NewSubscriber field's value.
  7666  func (s *UpdateSubscriberInput) SetNewSubscriber(v *Subscriber) *UpdateSubscriberInput {
  7667  	s.NewSubscriber = v
  7668  	return s
  7669  }
  7670  
  7671  // SetNotification sets the Notification field's value.
  7672  func (s *UpdateSubscriberInput) SetNotification(v *Notification) *UpdateSubscriberInput {
  7673  	s.Notification = v
  7674  	return s
  7675  }
  7676  
  7677  // SetOldSubscriber sets the OldSubscriber field's value.
  7678  func (s *UpdateSubscriberInput) SetOldSubscriber(v *Subscriber) *UpdateSubscriberInput {
  7679  	s.OldSubscriber = v
  7680  	return s
  7681  }
  7682  
  7683  // Response of UpdateSubscriber
  7684  type UpdateSubscriberOutput struct {
  7685  	_ struct{} `type:"structure"`
  7686  }
  7687  
  7688  // String returns the string representation.
  7689  //
  7690  // API parameter values that are decorated as "sensitive" in the API will not
  7691  // be included in the string output. The member name will be present, but the
  7692  // value will be replaced with "sensitive".
  7693  func (s UpdateSubscriberOutput) String() string {
  7694  	return awsutil.Prettify(s)
  7695  }
  7696  
  7697  // GoString returns the string representation.
  7698  //
  7699  // API parameter values that are decorated as "sensitive" in the API will not
  7700  // be included in the string output. The member name will be present, but the
  7701  // value will be replaced with "sensitive".
  7702  func (s UpdateSubscriberOutput) GoString() string {
  7703  	return s.String()
  7704  }
  7705  
  7706  const (
  7707  	// ActionStatusStandby is a ActionStatus enum value
  7708  	ActionStatusStandby = "STANDBY"
  7709  
  7710  	// ActionStatusPending is a ActionStatus enum value
  7711  	ActionStatusPending = "PENDING"
  7712  
  7713  	// ActionStatusExecutionInProgress is a ActionStatus enum value
  7714  	ActionStatusExecutionInProgress = "EXECUTION_IN_PROGRESS"
  7715  
  7716  	// ActionStatusExecutionSuccess is a ActionStatus enum value
  7717  	ActionStatusExecutionSuccess = "EXECUTION_SUCCESS"
  7718  
  7719  	// ActionStatusExecutionFailure is a ActionStatus enum value
  7720  	ActionStatusExecutionFailure = "EXECUTION_FAILURE"
  7721  
  7722  	// ActionStatusReverseInProgress is a ActionStatus enum value
  7723  	ActionStatusReverseInProgress = "REVERSE_IN_PROGRESS"
  7724  
  7725  	// ActionStatusReverseSuccess is a ActionStatus enum value
  7726  	ActionStatusReverseSuccess = "REVERSE_SUCCESS"
  7727  
  7728  	// ActionStatusReverseFailure is a ActionStatus enum value
  7729  	ActionStatusReverseFailure = "REVERSE_FAILURE"
  7730  
  7731  	// ActionStatusResetInProgress is a ActionStatus enum value
  7732  	ActionStatusResetInProgress = "RESET_IN_PROGRESS"
  7733  
  7734  	// ActionStatusResetFailure is a ActionStatus enum value
  7735  	ActionStatusResetFailure = "RESET_FAILURE"
  7736  )
  7737  
  7738  // ActionStatus_Values returns all elements of the ActionStatus enum
  7739  func ActionStatus_Values() []string {
  7740  	return []string{
  7741  		ActionStatusStandby,
  7742  		ActionStatusPending,
  7743  		ActionStatusExecutionInProgress,
  7744  		ActionStatusExecutionSuccess,
  7745  		ActionStatusExecutionFailure,
  7746  		ActionStatusReverseInProgress,
  7747  		ActionStatusReverseSuccess,
  7748  		ActionStatusReverseFailure,
  7749  		ActionStatusResetInProgress,
  7750  		ActionStatusResetFailure,
  7751  	}
  7752  }
  7753  
  7754  const (
  7755  	// ActionSubTypeStopEc2Instances is a ActionSubType enum value
  7756  	ActionSubTypeStopEc2Instances = "STOP_EC2_INSTANCES"
  7757  
  7758  	// ActionSubTypeStopRdsInstances is a ActionSubType enum value
  7759  	ActionSubTypeStopRdsInstances = "STOP_RDS_INSTANCES"
  7760  )
  7761  
  7762  // ActionSubType_Values returns all elements of the ActionSubType enum
  7763  func ActionSubType_Values() []string {
  7764  	return []string{
  7765  		ActionSubTypeStopEc2Instances,
  7766  		ActionSubTypeStopRdsInstances,
  7767  	}
  7768  }
  7769  
  7770  const (
  7771  	// ActionTypeApplyIamPolicy is a ActionType enum value
  7772  	ActionTypeApplyIamPolicy = "APPLY_IAM_POLICY"
  7773  
  7774  	// ActionTypeApplyScpPolicy is a ActionType enum value
  7775  	ActionTypeApplyScpPolicy = "APPLY_SCP_POLICY"
  7776  
  7777  	// ActionTypeRunSsmDocuments is a ActionType enum value
  7778  	ActionTypeRunSsmDocuments = "RUN_SSM_DOCUMENTS"
  7779  )
  7780  
  7781  // ActionType_Values returns all elements of the ActionType enum
  7782  func ActionType_Values() []string {
  7783  	return []string{
  7784  		ActionTypeApplyIamPolicy,
  7785  		ActionTypeApplyScpPolicy,
  7786  		ActionTypeRunSsmDocuments,
  7787  	}
  7788  }
  7789  
  7790  const (
  7791  	// ApprovalModelAutomatic is a ApprovalModel enum value
  7792  	ApprovalModelAutomatic = "AUTOMATIC"
  7793  
  7794  	// ApprovalModelManual is a ApprovalModel enum value
  7795  	ApprovalModelManual = "MANUAL"
  7796  )
  7797  
  7798  // ApprovalModel_Values returns all elements of the ApprovalModel enum
  7799  func ApprovalModel_Values() []string {
  7800  	return []string{
  7801  		ApprovalModelAutomatic,
  7802  		ApprovalModelManual,
  7803  	}
  7804  }
  7805  
  7806  // The type of a budget. It must be one of the following types:
  7807  //
  7808  // COST, USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, or SAVINGS_PLANS_COVERAGE.
  7809  const (
  7810  	// BudgetTypeUsage is a BudgetType enum value
  7811  	BudgetTypeUsage = "USAGE"
  7812  
  7813  	// BudgetTypeCost is a BudgetType enum value
  7814  	BudgetTypeCost = "COST"
  7815  
  7816  	// BudgetTypeRiUtilization is a BudgetType enum value
  7817  	BudgetTypeRiUtilization = "RI_UTILIZATION"
  7818  
  7819  	// BudgetTypeRiCoverage is a BudgetType enum value
  7820  	BudgetTypeRiCoverage = "RI_COVERAGE"
  7821  
  7822  	// BudgetTypeSavingsPlansUtilization is a BudgetType enum value
  7823  	BudgetTypeSavingsPlansUtilization = "SAVINGS_PLANS_UTILIZATION"
  7824  
  7825  	// BudgetTypeSavingsPlansCoverage is a BudgetType enum value
  7826  	BudgetTypeSavingsPlansCoverage = "SAVINGS_PLANS_COVERAGE"
  7827  )
  7828  
  7829  // BudgetType_Values returns all elements of the BudgetType enum
  7830  func BudgetType_Values() []string {
  7831  	return []string{
  7832  		BudgetTypeUsage,
  7833  		BudgetTypeCost,
  7834  		BudgetTypeRiUtilization,
  7835  		BudgetTypeRiCoverage,
  7836  		BudgetTypeSavingsPlansUtilization,
  7837  		BudgetTypeSavingsPlansCoverage,
  7838  	}
  7839  }
  7840  
  7841  // The comparison operator of a notification. Currently the service supports
  7842  // the following operators:
  7843  //
  7844  // GREATER_THAN, LESS_THAN, EQUAL_TO
  7845  const (
  7846  	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
  7847  	ComparisonOperatorGreaterThan = "GREATER_THAN"
  7848  
  7849  	// ComparisonOperatorLessThan is a ComparisonOperator enum value
  7850  	ComparisonOperatorLessThan = "LESS_THAN"
  7851  
  7852  	// ComparisonOperatorEqualTo is a ComparisonOperator enum value
  7853  	ComparisonOperatorEqualTo = "EQUAL_TO"
  7854  )
  7855  
  7856  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
  7857  func ComparisonOperator_Values() []string {
  7858  	return []string{
  7859  		ComparisonOperatorGreaterThan,
  7860  		ComparisonOperatorLessThan,
  7861  		ComparisonOperatorEqualTo,
  7862  	}
  7863  }
  7864  
  7865  const (
  7866  	// EventTypeSystem is a EventType enum value
  7867  	EventTypeSystem = "SYSTEM"
  7868  
  7869  	// EventTypeCreateAction is a EventType enum value
  7870  	EventTypeCreateAction = "CREATE_ACTION"
  7871  
  7872  	// EventTypeDeleteAction is a EventType enum value
  7873  	EventTypeDeleteAction = "DELETE_ACTION"
  7874  
  7875  	// EventTypeUpdateAction is a EventType enum value
  7876  	EventTypeUpdateAction = "UPDATE_ACTION"
  7877  
  7878  	// EventTypeExecuteAction is a EventType enum value
  7879  	EventTypeExecuteAction = "EXECUTE_ACTION"
  7880  )
  7881  
  7882  // EventType_Values returns all elements of the EventType enum
  7883  func EventType_Values() []string {
  7884  	return []string{
  7885  		EventTypeSystem,
  7886  		EventTypeCreateAction,
  7887  		EventTypeDeleteAction,
  7888  		EventTypeUpdateAction,
  7889  		EventTypeExecuteAction,
  7890  	}
  7891  }
  7892  
  7893  const (
  7894  	// ExecutionTypeApproveBudgetAction is a ExecutionType enum value
  7895  	ExecutionTypeApproveBudgetAction = "APPROVE_BUDGET_ACTION"
  7896  
  7897  	// ExecutionTypeRetryBudgetAction is a ExecutionType enum value
  7898  	ExecutionTypeRetryBudgetAction = "RETRY_BUDGET_ACTION"
  7899  
  7900  	// ExecutionTypeReverseBudgetAction is a ExecutionType enum value
  7901  	ExecutionTypeReverseBudgetAction = "REVERSE_BUDGET_ACTION"
  7902  
  7903  	// ExecutionTypeResetBudgetAction is a ExecutionType enum value
  7904  	ExecutionTypeResetBudgetAction = "RESET_BUDGET_ACTION"
  7905  )
  7906  
  7907  // ExecutionType_Values returns all elements of the ExecutionType enum
  7908  func ExecutionType_Values() []string {
  7909  	return []string{
  7910  		ExecutionTypeApproveBudgetAction,
  7911  		ExecutionTypeRetryBudgetAction,
  7912  		ExecutionTypeReverseBudgetAction,
  7913  		ExecutionTypeResetBudgetAction,
  7914  	}
  7915  }
  7916  
  7917  const (
  7918  	// NotificationStateOk is a NotificationState enum value
  7919  	NotificationStateOk = "OK"
  7920  
  7921  	// NotificationStateAlarm is a NotificationState enum value
  7922  	NotificationStateAlarm = "ALARM"
  7923  )
  7924  
  7925  // NotificationState_Values returns all elements of the NotificationState enum
  7926  func NotificationState_Values() []string {
  7927  	return []string{
  7928  		NotificationStateOk,
  7929  		NotificationStateAlarm,
  7930  	}
  7931  }
  7932  
  7933  // The type of a notification. It must be ACTUAL or FORECASTED.
  7934  const (
  7935  	// NotificationTypeActual is a NotificationType enum value
  7936  	NotificationTypeActual = "ACTUAL"
  7937  
  7938  	// NotificationTypeForecasted is a NotificationType enum value
  7939  	NotificationTypeForecasted = "FORECASTED"
  7940  )
  7941  
  7942  // NotificationType_Values returns all elements of the NotificationType enum
  7943  func NotificationType_Values() []string {
  7944  	return []string{
  7945  		NotificationTypeActual,
  7946  		NotificationTypeForecasted,
  7947  	}
  7948  }
  7949  
  7950  // The subscription type of the subscriber. It can be SMS or EMAIL.
  7951  const (
  7952  	// SubscriptionTypeSns is a SubscriptionType enum value
  7953  	SubscriptionTypeSns = "SNS"
  7954  
  7955  	// SubscriptionTypeEmail is a SubscriptionType enum value
  7956  	SubscriptionTypeEmail = "EMAIL"
  7957  )
  7958  
  7959  // SubscriptionType_Values returns all elements of the SubscriptionType enum
  7960  func SubscriptionType_Values() []string {
  7961  	return []string{
  7962  		SubscriptionTypeSns,
  7963  		SubscriptionTypeEmail,
  7964  	}
  7965  }
  7966  
  7967  // The type of threshold for a notification.
  7968  const (
  7969  	// ThresholdTypePercentage is a ThresholdType enum value
  7970  	ThresholdTypePercentage = "PERCENTAGE"
  7971  
  7972  	// ThresholdTypeAbsoluteValue is a ThresholdType enum value
  7973  	ThresholdTypeAbsoluteValue = "ABSOLUTE_VALUE"
  7974  )
  7975  
  7976  // ThresholdType_Values returns all elements of the ThresholdType enum
  7977  func ThresholdType_Values() []string {
  7978  	return []string{
  7979  		ThresholdTypePercentage,
  7980  		ThresholdTypeAbsoluteValue,
  7981  	}
  7982  }
  7983  
  7984  // The time unit of the budget, such as MONTHLY or QUARTERLY.
  7985  const (
  7986  	// TimeUnitDaily is a TimeUnit enum value
  7987  	TimeUnitDaily = "DAILY"
  7988  
  7989  	// TimeUnitMonthly is a TimeUnit enum value
  7990  	TimeUnitMonthly = "MONTHLY"
  7991  
  7992  	// TimeUnitQuarterly is a TimeUnit enum value
  7993  	TimeUnitQuarterly = "QUARTERLY"
  7994  
  7995  	// TimeUnitAnnually is a TimeUnit enum value
  7996  	TimeUnitAnnually = "ANNUALLY"
  7997  )
  7998  
  7999  // TimeUnit_Values returns all elements of the TimeUnit enum
  8000  func TimeUnit_Values() []string {
  8001  	return []string{
  8002  		TimeUnitDaily,
  8003  		TimeUnitMonthly,
  8004  		TimeUnitQuarterly,
  8005  		TimeUnitAnnually,
  8006  	}
  8007  }