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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package emr
     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 opAddInstanceFleet = "AddInstanceFleet"
    17  
    18  // AddInstanceFleetRequest generates a "aws/request.Request" representing the
    19  // client's request for the AddInstanceFleet 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 AddInstanceFleet for more information on using the AddInstanceFleet
    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 AddInstanceFleetRequest method.
    34  //    req, resp := client.AddInstanceFleetRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet
    42  func (c *EMR) AddInstanceFleetRequest(input *AddInstanceFleetInput) (req *request.Request, output *AddInstanceFleetOutput) {
    43  	op := &request.Operation{
    44  		Name:       opAddInstanceFleet,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &AddInstanceFleetInput{}
    51  	}
    52  
    53  	output = &AddInstanceFleetOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // AddInstanceFleet API operation for Amazon EMR.
    59  //
    60  // Adds an instance fleet to a running cluster.
    61  //
    62  // The instance fleet configuration is available only in Amazon EMR versions
    63  // 4.8.0 and later, excluding 5.0.x.
    64  //
    65  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    66  // with awserr.Error's Code and Message methods to get detailed information about
    67  // the error.
    68  //
    69  // See the AWS API reference guide for Amazon EMR's
    70  // API operation AddInstanceFleet for usage and error information.
    71  //
    72  // Returned Error Types:
    73  //   * InternalServerException
    74  //   This exception occurs when there is an internal failure in the Amazon EMR
    75  //   service.
    76  //
    77  //   * InvalidRequestException
    78  //   This exception occurs when there is something wrong with user input.
    79  //
    80  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet
    81  func (c *EMR) AddInstanceFleet(input *AddInstanceFleetInput) (*AddInstanceFleetOutput, error) {
    82  	req, out := c.AddInstanceFleetRequest(input)
    83  	return out, req.Send()
    84  }
    85  
    86  // AddInstanceFleetWithContext is the same as AddInstanceFleet with the addition of
    87  // the ability to pass a context and additional request options.
    88  //
    89  // See AddInstanceFleet for details on how to use this API operation.
    90  //
    91  // The context must be non-nil and will be used for request cancellation. If
    92  // the context is nil a panic will occur. In the future the SDK may create
    93  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
    94  // for more information on using Contexts.
    95  func (c *EMR) AddInstanceFleetWithContext(ctx aws.Context, input *AddInstanceFleetInput, opts ...request.Option) (*AddInstanceFleetOutput, error) {
    96  	req, out := c.AddInstanceFleetRequest(input)
    97  	req.SetContext(ctx)
    98  	req.ApplyOptions(opts...)
    99  	return out, req.Send()
   100  }
   101  
   102  const opAddInstanceGroups = "AddInstanceGroups"
   103  
   104  // AddInstanceGroupsRequest generates a "aws/request.Request" representing the
   105  // client's request for the AddInstanceGroups operation. The "output" return
   106  // value will be populated with the request's response once the request completes
   107  // successfully.
   108  //
   109  // Use "Send" method on the returned Request to send the API call to the service.
   110  // the "output" return value is not valid until after Send returns without error.
   111  //
   112  // See AddInstanceGroups for more information on using the AddInstanceGroups
   113  // API call, and error handling.
   114  //
   115  // This method is useful when you want to inject custom logic or configuration
   116  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   117  //
   118  //
   119  //    // Example sending a request using the AddInstanceGroupsRequest method.
   120  //    req, resp := client.AddInstanceGroupsRequest(params)
   121  //
   122  //    err := req.Send()
   123  //    if err == nil { // resp is now filled
   124  //        fmt.Println(resp)
   125  //    }
   126  //
   127  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
   128  func (c *EMR) AddInstanceGroupsRequest(input *AddInstanceGroupsInput) (req *request.Request, output *AddInstanceGroupsOutput) {
   129  	op := &request.Operation{
   130  		Name:       opAddInstanceGroups,
   131  		HTTPMethod: "POST",
   132  		HTTPPath:   "/",
   133  	}
   134  
   135  	if input == nil {
   136  		input = &AddInstanceGroupsInput{}
   137  	}
   138  
   139  	output = &AddInstanceGroupsOutput{}
   140  	req = c.newRequest(op, input, output)
   141  	return
   142  }
   143  
   144  // AddInstanceGroups API operation for Amazon EMR.
   145  //
   146  // Adds one or more instance groups to a running cluster.
   147  //
   148  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   149  // with awserr.Error's Code and Message methods to get detailed information about
   150  // the error.
   151  //
   152  // See the AWS API reference guide for Amazon EMR's
   153  // API operation AddInstanceGroups for usage and error information.
   154  //
   155  // Returned Error Types:
   156  //   * InternalServerError
   157  //   Indicates that an error occurred while processing the request and that the
   158  //   request was not completed.
   159  //
   160  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
   161  func (c *EMR) AddInstanceGroups(input *AddInstanceGroupsInput) (*AddInstanceGroupsOutput, error) {
   162  	req, out := c.AddInstanceGroupsRequest(input)
   163  	return out, req.Send()
   164  }
   165  
   166  // AddInstanceGroupsWithContext is the same as AddInstanceGroups with the addition of
   167  // the ability to pass a context and additional request options.
   168  //
   169  // See AddInstanceGroups for details on how to use this API operation.
   170  //
   171  // The context must be non-nil and will be used for request cancellation. If
   172  // the context is nil a panic will occur. In the future the SDK may create
   173  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   174  // for more information on using Contexts.
   175  func (c *EMR) AddInstanceGroupsWithContext(ctx aws.Context, input *AddInstanceGroupsInput, opts ...request.Option) (*AddInstanceGroupsOutput, error) {
   176  	req, out := c.AddInstanceGroupsRequest(input)
   177  	req.SetContext(ctx)
   178  	req.ApplyOptions(opts...)
   179  	return out, req.Send()
   180  }
   181  
   182  const opAddJobFlowSteps = "AddJobFlowSteps"
   183  
   184  // AddJobFlowStepsRequest generates a "aws/request.Request" representing the
   185  // client's request for the AddJobFlowSteps operation. The "output" return
   186  // value will be populated with the request's response once the request completes
   187  // successfully.
   188  //
   189  // Use "Send" method on the returned Request to send the API call to the service.
   190  // the "output" return value is not valid until after Send returns without error.
   191  //
   192  // See AddJobFlowSteps for more information on using the AddJobFlowSteps
   193  // API call, and error handling.
   194  //
   195  // This method is useful when you want to inject custom logic or configuration
   196  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   197  //
   198  //
   199  //    // Example sending a request using the AddJobFlowStepsRequest method.
   200  //    req, resp := client.AddJobFlowStepsRequest(params)
   201  //
   202  //    err := req.Send()
   203  //    if err == nil { // resp is now filled
   204  //        fmt.Println(resp)
   205  //    }
   206  //
   207  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
   208  func (c *EMR) AddJobFlowStepsRequest(input *AddJobFlowStepsInput) (req *request.Request, output *AddJobFlowStepsOutput) {
   209  	op := &request.Operation{
   210  		Name:       opAddJobFlowSteps,
   211  		HTTPMethod: "POST",
   212  		HTTPPath:   "/",
   213  	}
   214  
   215  	if input == nil {
   216  		input = &AddJobFlowStepsInput{}
   217  	}
   218  
   219  	output = &AddJobFlowStepsOutput{}
   220  	req = c.newRequest(op, input, output)
   221  	return
   222  }
   223  
   224  // AddJobFlowSteps API operation for Amazon EMR.
   225  //
   226  // AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps
   227  // are allowed in each job flow.
   228  //
   229  // If your cluster is long-running (such as a Hive data warehouse) or complex,
   230  // you may require more than 256 steps to process your data. You can bypass
   231  // the 256-step limitation in various ways, including using SSH to connect to
   232  // the master node and submitting queries directly to the software running on
   233  // the master node, such as Hive and Hadoop. For more information on how to
   234  // do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
   235  // in the Amazon EMR Management Guide.
   236  //
   237  // A step specifies the location of a JAR file stored either on the master node
   238  // of the cluster or in Amazon S3. Each step is performed by the main function
   239  // of the main class of the JAR file. The main class can be specified either
   240  // in the manifest of the JAR or by using the MainFunction parameter of the
   241  // step.
   242  //
   243  // Amazon EMR executes each step in the order listed. For a step to be considered
   244  // complete, the main function must exit with a zero exit code and all Hadoop
   245  // jobs started while the step was running must have completed and run successfully.
   246  //
   247  // You can only add steps to a cluster that is in one of the following states:
   248  // STARTING, BOOTSTRAPPING, RUNNING, or WAITING.
   249  //
   250  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   251  // with awserr.Error's Code and Message methods to get detailed information about
   252  // the error.
   253  //
   254  // See the AWS API reference guide for Amazon EMR's
   255  // API operation AddJobFlowSteps for usage and error information.
   256  //
   257  // Returned Error Types:
   258  //   * InternalServerError
   259  //   Indicates that an error occurred while processing the request and that the
   260  //   request was not completed.
   261  //
   262  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
   263  func (c *EMR) AddJobFlowSteps(input *AddJobFlowStepsInput) (*AddJobFlowStepsOutput, error) {
   264  	req, out := c.AddJobFlowStepsRequest(input)
   265  	return out, req.Send()
   266  }
   267  
   268  // AddJobFlowStepsWithContext is the same as AddJobFlowSteps with the addition of
   269  // the ability to pass a context and additional request options.
   270  //
   271  // See AddJobFlowSteps for details on how to use this API operation.
   272  //
   273  // The context must be non-nil and will be used for request cancellation. If
   274  // the context is nil a panic will occur. In the future the SDK may create
   275  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   276  // for more information on using Contexts.
   277  func (c *EMR) AddJobFlowStepsWithContext(ctx aws.Context, input *AddJobFlowStepsInput, opts ...request.Option) (*AddJobFlowStepsOutput, error) {
   278  	req, out := c.AddJobFlowStepsRequest(input)
   279  	req.SetContext(ctx)
   280  	req.ApplyOptions(opts...)
   281  	return out, req.Send()
   282  }
   283  
   284  const opAddTags = "AddTags"
   285  
   286  // AddTagsRequest generates a "aws/request.Request" representing the
   287  // client's request for the AddTags operation. The "output" return
   288  // value will be populated with the request's response once the request completes
   289  // successfully.
   290  //
   291  // Use "Send" method on the returned Request to send the API call to the service.
   292  // the "output" return value is not valid until after Send returns without error.
   293  //
   294  // See AddTags for more information on using the AddTags
   295  // API call, and error handling.
   296  //
   297  // This method is useful when you want to inject custom logic or configuration
   298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   299  //
   300  //
   301  //    // Example sending a request using the AddTagsRequest method.
   302  //    req, resp := client.AddTagsRequest(params)
   303  //
   304  //    err := req.Send()
   305  //    if err == nil { // resp is now filled
   306  //        fmt.Println(resp)
   307  //    }
   308  //
   309  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
   310  func (c *EMR) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
   311  	op := &request.Operation{
   312  		Name:       opAddTags,
   313  		HTTPMethod: "POST",
   314  		HTTPPath:   "/",
   315  	}
   316  
   317  	if input == nil {
   318  		input = &AddTagsInput{}
   319  	}
   320  
   321  	output = &AddTagsOutput{}
   322  	req = c.newRequest(op, input, output)
   323  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   324  	return
   325  }
   326  
   327  // AddTags API operation for Amazon EMR.
   328  //
   329  // Adds tags to an Amazon EMR resource, such as a cluster or an Amazon EMR Studio.
   330  // Tags make it easier to associate resources in various ways, such as grouping
   331  // clusters to track your Amazon EMR resource allocation costs. For more information,
   332  // see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
   333  //
   334  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   335  // with awserr.Error's Code and Message methods to get detailed information about
   336  // the error.
   337  //
   338  // See the AWS API reference guide for Amazon EMR's
   339  // API operation AddTags for usage and error information.
   340  //
   341  // Returned Error Types:
   342  //   * InternalServerException
   343  //   This exception occurs when there is an internal failure in the Amazon EMR
   344  //   service.
   345  //
   346  //   * InvalidRequestException
   347  //   This exception occurs when there is something wrong with user input.
   348  //
   349  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
   350  func (c *EMR) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
   351  	req, out := c.AddTagsRequest(input)
   352  	return out, req.Send()
   353  }
   354  
   355  // AddTagsWithContext is the same as AddTags with the addition of
   356  // the ability to pass a context and additional request options.
   357  //
   358  // See AddTags for details on how to use this API operation.
   359  //
   360  // The context must be non-nil and will be used for request cancellation. If
   361  // the context is nil a panic will occur. In the future the SDK may create
   362  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   363  // for more information on using Contexts.
   364  func (c *EMR) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
   365  	req, out := c.AddTagsRequest(input)
   366  	req.SetContext(ctx)
   367  	req.ApplyOptions(opts...)
   368  	return out, req.Send()
   369  }
   370  
   371  const opCancelSteps = "CancelSteps"
   372  
   373  // CancelStepsRequest generates a "aws/request.Request" representing the
   374  // client's request for the CancelSteps operation. The "output" return
   375  // value will be populated with the request's response once the request completes
   376  // successfully.
   377  //
   378  // Use "Send" method on the returned Request to send the API call to the service.
   379  // the "output" return value is not valid until after Send returns without error.
   380  //
   381  // See CancelSteps for more information on using the CancelSteps
   382  // API call, and error handling.
   383  //
   384  // This method is useful when you want to inject custom logic or configuration
   385  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   386  //
   387  //
   388  //    // Example sending a request using the CancelStepsRequest method.
   389  //    req, resp := client.CancelStepsRequest(params)
   390  //
   391  //    err := req.Send()
   392  //    if err == nil { // resp is now filled
   393  //        fmt.Println(resp)
   394  //    }
   395  //
   396  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
   397  func (c *EMR) CancelStepsRequest(input *CancelStepsInput) (req *request.Request, output *CancelStepsOutput) {
   398  	op := &request.Operation{
   399  		Name:       opCancelSteps,
   400  		HTTPMethod: "POST",
   401  		HTTPPath:   "/",
   402  	}
   403  
   404  	if input == nil {
   405  		input = &CancelStepsInput{}
   406  	}
   407  
   408  	output = &CancelStepsOutput{}
   409  	req = c.newRequest(op, input, output)
   410  	return
   411  }
   412  
   413  // CancelSteps API operation for Amazon EMR.
   414  //
   415  // Cancels a pending step or steps in a running cluster. Available only in Amazon
   416  // EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps
   417  // are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous;
   418  // it does not guarantee that a step will be canceled, even if the request is
   419  // successfully submitted. When you use Amazon EMR versions 5.28.0 and later,
   420  // you can cancel steps that are in a PENDING or RUNNING state. In earlier versions
   421  // of Amazon EMR, you can only cancel steps that are in a PENDING state.
   422  //
   423  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   424  // with awserr.Error's Code and Message methods to get detailed information about
   425  // the error.
   426  //
   427  // See the AWS API reference guide for Amazon EMR's
   428  // API operation CancelSteps for usage and error information.
   429  //
   430  // Returned Error Types:
   431  //   * InternalServerError
   432  //   Indicates that an error occurred while processing the request and that the
   433  //   request was not completed.
   434  //
   435  //   * InvalidRequestException
   436  //   This exception occurs when there is something wrong with user input.
   437  //
   438  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
   439  func (c *EMR) CancelSteps(input *CancelStepsInput) (*CancelStepsOutput, error) {
   440  	req, out := c.CancelStepsRequest(input)
   441  	return out, req.Send()
   442  }
   443  
   444  // CancelStepsWithContext is the same as CancelSteps with the addition of
   445  // the ability to pass a context and additional request options.
   446  //
   447  // See CancelSteps for details on how to use this API operation.
   448  //
   449  // The context must be non-nil and will be used for request cancellation. If
   450  // the context is nil a panic will occur. In the future the SDK may create
   451  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   452  // for more information on using Contexts.
   453  func (c *EMR) CancelStepsWithContext(ctx aws.Context, input *CancelStepsInput, opts ...request.Option) (*CancelStepsOutput, error) {
   454  	req, out := c.CancelStepsRequest(input)
   455  	req.SetContext(ctx)
   456  	req.ApplyOptions(opts...)
   457  	return out, req.Send()
   458  }
   459  
   460  const opCreateSecurityConfiguration = "CreateSecurityConfiguration"
   461  
   462  // CreateSecurityConfigurationRequest generates a "aws/request.Request" representing the
   463  // client's request for the CreateSecurityConfiguration operation. The "output" return
   464  // value will be populated with the request's response once the request completes
   465  // successfully.
   466  //
   467  // Use "Send" method on the returned Request to send the API call to the service.
   468  // the "output" return value is not valid until after Send returns without error.
   469  //
   470  // See CreateSecurityConfiguration for more information on using the CreateSecurityConfiguration
   471  // API call, and error handling.
   472  //
   473  // This method is useful when you want to inject custom logic or configuration
   474  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   475  //
   476  //
   477  //    // Example sending a request using the CreateSecurityConfigurationRequest method.
   478  //    req, resp := client.CreateSecurityConfigurationRequest(params)
   479  //
   480  //    err := req.Send()
   481  //    if err == nil { // resp is now filled
   482  //        fmt.Println(resp)
   483  //    }
   484  //
   485  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
   486  func (c *EMR) CreateSecurityConfigurationRequest(input *CreateSecurityConfigurationInput) (req *request.Request, output *CreateSecurityConfigurationOutput) {
   487  	op := &request.Operation{
   488  		Name:       opCreateSecurityConfiguration,
   489  		HTTPMethod: "POST",
   490  		HTTPPath:   "/",
   491  	}
   492  
   493  	if input == nil {
   494  		input = &CreateSecurityConfigurationInput{}
   495  	}
   496  
   497  	output = &CreateSecurityConfigurationOutput{}
   498  	req = c.newRequest(op, input, output)
   499  	return
   500  }
   501  
   502  // CreateSecurityConfiguration API operation for Amazon EMR.
   503  //
   504  // Creates a security configuration, which is stored in the service and can
   505  // be specified when a cluster is created.
   506  //
   507  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   508  // with awserr.Error's Code and Message methods to get detailed information about
   509  // the error.
   510  //
   511  // See the AWS API reference guide for Amazon EMR's
   512  // API operation CreateSecurityConfiguration for usage and error information.
   513  //
   514  // Returned Error Types:
   515  //   * InternalServerException
   516  //   This exception occurs when there is an internal failure in the Amazon EMR
   517  //   service.
   518  //
   519  //   * InvalidRequestException
   520  //   This exception occurs when there is something wrong with user input.
   521  //
   522  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
   523  func (c *EMR) CreateSecurityConfiguration(input *CreateSecurityConfigurationInput) (*CreateSecurityConfigurationOutput, error) {
   524  	req, out := c.CreateSecurityConfigurationRequest(input)
   525  	return out, req.Send()
   526  }
   527  
   528  // CreateSecurityConfigurationWithContext is the same as CreateSecurityConfiguration with the addition of
   529  // the ability to pass a context and additional request options.
   530  //
   531  // See CreateSecurityConfiguration for details on how to use this API operation.
   532  //
   533  // The context must be non-nil and will be used for request cancellation. If
   534  // the context is nil a panic will occur. In the future the SDK may create
   535  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   536  // for more information on using Contexts.
   537  func (c *EMR) CreateSecurityConfigurationWithContext(ctx aws.Context, input *CreateSecurityConfigurationInput, opts ...request.Option) (*CreateSecurityConfigurationOutput, error) {
   538  	req, out := c.CreateSecurityConfigurationRequest(input)
   539  	req.SetContext(ctx)
   540  	req.ApplyOptions(opts...)
   541  	return out, req.Send()
   542  }
   543  
   544  const opCreateStudio = "CreateStudio"
   545  
   546  // CreateStudioRequest generates a "aws/request.Request" representing the
   547  // client's request for the CreateStudio operation. The "output" return
   548  // value will be populated with the request's response once the request completes
   549  // successfully.
   550  //
   551  // Use "Send" method on the returned Request to send the API call to the service.
   552  // the "output" return value is not valid until after Send returns without error.
   553  //
   554  // See CreateStudio for more information on using the CreateStudio
   555  // API call, and error handling.
   556  //
   557  // This method is useful when you want to inject custom logic or configuration
   558  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   559  //
   560  //
   561  //    // Example sending a request using the CreateStudioRequest method.
   562  //    req, resp := client.CreateStudioRequest(params)
   563  //
   564  //    err := req.Send()
   565  //    if err == nil { // resp is now filled
   566  //        fmt.Println(resp)
   567  //    }
   568  //
   569  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
   570  func (c *EMR) CreateStudioRequest(input *CreateStudioInput) (req *request.Request, output *CreateStudioOutput) {
   571  	op := &request.Operation{
   572  		Name:       opCreateStudio,
   573  		HTTPMethod: "POST",
   574  		HTTPPath:   "/",
   575  	}
   576  
   577  	if input == nil {
   578  		input = &CreateStudioInput{}
   579  	}
   580  
   581  	output = &CreateStudioOutput{}
   582  	req = c.newRequest(op, input, output)
   583  	return
   584  }
   585  
   586  // CreateStudio API operation for Amazon EMR.
   587  //
   588  // Creates a new Amazon EMR Studio.
   589  //
   590  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   591  // with awserr.Error's Code and Message methods to get detailed information about
   592  // the error.
   593  //
   594  // See the AWS API reference guide for Amazon EMR's
   595  // API operation CreateStudio for usage and error information.
   596  //
   597  // Returned Error Types:
   598  //   * InternalServerException
   599  //   This exception occurs when there is an internal failure in the Amazon EMR
   600  //   service.
   601  //
   602  //   * InvalidRequestException
   603  //   This exception occurs when there is something wrong with user input.
   604  //
   605  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
   606  func (c *EMR) CreateStudio(input *CreateStudioInput) (*CreateStudioOutput, error) {
   607  	req, out := c.CreateStudioRequest(input)
   608  	return out, req.Send()
   609  }
   610  
   611  // CreateStudioWithContext is the same as CreateStudio with the addition of
   612  // the ability to pass a context and additional request options.
   613  //
   614  // See CreateStudio for details on how to use this API operation.
   615  //
   616  // The context must be non-nil and will be used for request cancellation. If
   617  // the context is nil a panic will occur. In the future the SDK may create
   618  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   619  // for more information on using Contexts.
   620  func (c *EMR) CreateStudioWithContext(ctx aws.Context, input *CreateStudioInput, opts ...request.Option) (*CreateStudioOutput, error) {
   621  	req, out := c.CreateStudioRequest(input)
   622  	req.SetContext(ctx)
   623  	req.ApplyOptions(opts...)
   624  	return out, req.Send()
   625  }
   626  
   627  const opCreateStudioSessionMapping = "CreateStudioSessionMapping"
   628  
   629  // CreateStudioSessionMappingRequest generates a "aws/request.Request" representing the
   630  // client's request for the CreateStudioSessionMapping operation. The "output" return
   631  // value will be populated with the request's response once the request completes
   632  // successfully.
   633  //
   634  // Use "Send" method on the returned Request to send the API call to the service.
   635  // the "output" return value is not valid until after Send returns without error.
   636  //
   637  // See CreateStudioSessionMapping for more information on using the CreateStudioSessionMapping
   638  // API call, and error handling.
   639  //
   640  // This method is useful when you want to inject custom logic or configuration
   641  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   642  //
   643  //
   644  //    // Example sending a request using the CreateStudioSessionMappingRequest method.
   645  //    req, resp := client.CreateStudioSessionMappingRequest(params)
   646  //
   647  //    err := req.Send()
   648  //    if err == nil { // resp is now filled
   649  //        fmt.Println(resp)
   650  //    }
   651  //
   652  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
   653  func (c *EMR) CreateStudioSessionMappingRequest(input *CreateStudioSessionMappingInput) (req *request.Request, output *CreateStudioSessionMappingOutput) {
   654  	op := &request.Operation{
   655  		Name:       opCreateStudioSessionMapping,
   656  		HTTPMethod: "POST",
   657  		HTTPPath:   "/",
   658  	}
   659  
   660  	if input == nil {
   661  		input = &CreateStudioSessionMappingInput{}
   662  	}
   663  
   664  	output = &CreateStudioSessionMappingOutput{}
   665  	req = c.newRequest(op, input, output)
   666  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   667  	return
   668  }
   669  
   670  // CreateStudioSessionMapping API operation for Amazon EMR.
   671  //
   672  // Maps a user or group to the Amazon EMR Studio specified by StudioId, and
   673  // applies a session policy to refine Studio permissions for that user or group.
   674  // Use CreateStudioSessionMapping to assign users to a Studio when you use Amazon
   675  // Web Services SSO authentication. For instructions on how to assign users
   676  // to a Studio when you use IAM authentication, see Assign a user or group to
   677  // your EMR Studio (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-manage-users.html#emr-studio-assign-users-groups).
   678  //
   679  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   680  // with awserr.Error's Code and Message methods to get detailed information about
   681  // the error.
   682  //
   683  // See the AWS API reference guide for Amazon EMR's
   684  // API operation CreateStudioSessionMapping for usage and error information.
   685  //
   686  // Returned Error Types:
   687  //   * InternalServerError
   688  //   Indicates that an error occurred while processing the request and that the
   689  //   request was not completed.
   690  //
   691  //   * InvalidRequestException
   692  //   This exception occurs when there is something wrong with user input.
   693  //
   694  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
   695  func (c *EMR) CreateStudioSessionMapping(input *CreateStudioSessionMappingInput) (*CreateStudioSessionMappingOutput, error) {
   696  	req, out := c.CreateStudioSessionMappingRequest(input)
   697  	return out, req.Send()
   698  }
   699  
   700  // CreateStudioSessionMappingWithContext is the same as CreateStudioSessionMapping with the addition of
   701  // the ability to pass a context and additional request options.
   702  //
   703  // See CreateStudioSessionMapping for details on how to use this API operation.
   704  //
   705  // The context must be non-nil and will be used for request cancellation. If
   706  // the context is nil a panic will occur. In the future the SDK may create
   707  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   708  // for more information on using Contexts.
   709  func (c *EMR) CreateStudioSessionMappingWithContext(ctx aws.Context, input *CreateStudioSessionMappingInput, opts ...request.Option) (*CreateStudioSessionMappingOutput, error) {
   710  	req, out := c.CreateStudioSessionMappingRequest(input)
   711  	req.SetContext(ctx)
   712  	req.ApplyOptions(opts...)
   713  	return out, req.Send()
   714  }
   715  
   716  const opDeleteSecurityConfiguration = "DeleteSecurityConfiguration"
   717  
   718  // DeleteSecurityConfigurationRequest generates a "aws/request.Request" representing the
   719  // client's request for the DeleteSecurityConfiguration operation. The "output" return
   720  // value will be populated with the request's response once the request completes
   721  // successfully.
   722  //
   723  // Use "Send" method on the returned Request to send the API call to the service.
   724  // the "output" return value is not valid until after Send returns without error.
   725  //
   726  // See DeleteSecurityConfiguration for more information on using the DeleteSecurityConfiguration
   727  // API call, and error handling.
   728  //
   729  // This method is useful when you want to inject custom logic or configuration
   730  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   731  //
   732  //
   733  //    // Example sending a request using the DeleteSecurityConfigurationRequest method.
   734  //    req, resp := client.DeleteSecurityConfigurationRequest(params)
   735  //
   736  //    err := req.Send()
   737  //    if err == nil { // resp is now filled
   738  //        fmt.Println(resp)
   739  //    }
   740  //
   741  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
   742  func (c *EMR) DeleteSecurityConfigurationRequest(input *DeleteSecurityConfigurationInput) (req *request.Request, output *DeleteSecurityConfigurationOutput) {
   743  	op := &request.Operation{
   744  		Name:       opDeleteSecurityConfiguration,
   745  		HTTPMethod: "POST",
   746  		HTTPPath:   "/",
   747  	}
   748  
   749  	if input == nil {
   750  		input = &DeleteSecurityConfigurationInput{}
   751  	}
   752  
   753  	output = &DeleteSecurityConfigurationOutput{}
   754  	req = c.newRequest(op, input, output)
   755  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   756  	return
   757  }
   758  
   759  // DeleteSecurityConfiguration API operation for Amazon EMR.
   760  //
   761  // Deletes a security configuration.
   762  //
   763  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   764  // with awserr.Error's Code and Message methods to get detailed information about
   765  // the error.
   766  //
   767  // See the AWS API reference guide for Amazon EMR's
   768  // API operation DeleteSecurityConfiguration for usage and error information.
   769  //
   770  // Returned Error Types:
   771  //   * InternalServerException
   772  //   This exception occurs when there is an internal failure in the Amazon EMR
   773  //   service.
   774  //
   775  //   * InvalidRequestException
   776  //   This exception occurs when there is something wrong with user input.
   777  //
   778  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
   779  func (c *EMR) DeleteSecurityConfiguration(input *DeleteSecurityConfigurationInput) (*DeleteSecurityConfigurationOutput, error) {
   780  	req, out := c.DeleteSecurityConfigurationRequest(input)
   781  	return out, req.Send()
   782  }
   783  
   784  // DeleteSecurityConfigurationWithContext is the same as DeleteSecurityConfiguration with the addition of
   785  // the ability to pass a context and additional request options.
   786  //
   787  // See DeleteSecurityConfiguration for details on how to use this API operation.
   788  //
   789  // The context must be non-nil and will be used for request cancellation. If
   790  // the context is nil a panic will occur. In the future the SDK may create
   791  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   792  // for more information on using Contexts.
   793  func (c *EMR) DeleteSecurityConfigurationWithContext(ctx aws.Context, input *DeleteSecurityConfigurationInput, opts ...request.Option) (*DeleteSecurityConfigurationOutput, error) {
   794  	req, out := c.DeleteSecurityConfigurationRequest(input)
   795  	req.SetContext(ctx)
   796  	req.ApplyOptions(opts...)
   797  	return out, req.Send()
   798  }
   799  
   800  const opDeleteStudio = "DeleteStudio"
   801  
   802  // DeleteStudioRequest generates a "aws/request.Request" representing the
   803  // client's request for the DeleteStudio operation. The "output" return
   804  // value will be populated with the request's response once the request completes
   805  // successfully.
   806  //
   807  // Use "Send" method on the returned Request to send the API call to the service.
   808  // the "output" return value is not valid until after Send returns without error.
   809  //
   810  // See DeleteStudio for more information on using the DeleteStudio
   811  // API call, and error handling.
   812  //
   813  // This method is useful when you want to inject custom logic or configuration
   814  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   815  //
   816  //
   817  //    // Example sending a request using the DeleteStudioRequest method.
   818  //    req, resp := client.DeleteStudioRequest(params)
   819  //
   820  //    err := req.Send()
   821  //    if err == nil { // resp is now filled
   822  //        fmt.Println(resp)
   823  //    }
   824  //
   825  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
   826  func (c *EMR) DeleteStudioRequest(input *DeleteStudioInput) (req *request.Request, output *DeleteStudioOutput) {
   827  	op := &request.Operation{
   828  		Name:       opDeleteStudio,
   829  		HTTPMethod: "POST",
   830  		HTTPPath:   "/",
   831  	}
   832  
   833  	if input == nil {
   834  		input = &DeleteStudioInput{}
   835  	}
   836  
   837  	output = &DeleteStudioOutput{}
   838  	req = c.newRequest(op, input, output)
   839  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   840  	return
   841  }
   842  
   843  // DeleteStudio API operation for Amazon EMR.
   844  //
   845  // Removes an Amazon EMR Studio from the Studio metadata store.
   846  //
   847  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   848  // with awserr.Error's Code and Message methods to get detailed information about
   849  // the error.
   850  //
   851  // See the AWS API reference guide for Amazon EMR's
   852  // API operation DeleteStudio for usage and error information.
   853  //
   854  // Returned Error Types:
   855  //   * InternalServerException
   856  //   This exception occurs when there is an internal failure in the Amazon EMR
   857  //   service.
   858  //
   859  //   * InvalidRequestException
   860  //   This exception occurs when there is something wrong with user input.
   861  //
   862  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
   863  func (c *EMR) DeleteStudio(input *DeleteStudioInput) (*DeleteStudioOutput, error) {
   864  	req, out := c.DeleteStudioRequest(input)
   865  	return out, req.Send()
   866  }
   867  
   868  // DeleteStudioWithContext is the same as DeleteStudio with the addition of
   869  // the ability to pass a context and additional request options.
   870  //
   871  // See DeleteStudio for details on how to use this API operation.
   872  //
   873  // The context must be non-nil and will be used for request cancellation. If
   874  // the context is nil a panic will occur. In the future the SDK may create
   875  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   876  // for more information on using Contexts.
   877  func (c *EMR) DeleteStudioWithContext(ctx aws.Context, input *DeleteStudioInput, opts ...request.Option) (*DeleteStudioOutput, error) {
   878  	req, out := c.DeleteStudioRequest(input)
   879  	req.SetContext(ctx)
   880  	req.ApplyOptions(opts...)
   881  	return out, req.Send()
   882  }
   883  
   884  const opDeleteStudioSessionMapping = "DeleteStudioSessionMapping"
   885  
   886  // DeleteStudioSessionMappingRequest generates a "aws/request.Request" representing the
   887  // client's request for the DeleteStudioSessionMapping operation. The "output" return
   888  // value will be populated with the request's response once the request completes
   889  // successfully.
   890  //
   891  // Use "Send" method on the returned Request to send the API call to the service.
   892  // the "output" return value is not valid until after Send returns without error.
   893  //
   894  // See DeleteStudioSessionMapping for more information on using the DeleteStudioSessionMapping
   895  // API call, and error handling.
   896  //
   897  // This method is useful when you want to inject custom logic or configuration
   898  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   899  //
   900  //
   901  //    // Example sending a request using the DeleteStudioSessionMappingRequest method.
   902  //    req, resp := client.DeleteStudioSessionMappingRequest(params)
   903  //
   904  //    err := req.Send()
   905  //    if err == nil { // resp is now filled
   906  //        fmt.Println(resp)
   907  //    }
   908  //
   909  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
   910  func (c *EMR) DeleteStudioSessionMappingRequest(input *DeleteStudioSessionMappingInput) (req *request.Request, output *DeleteStudioSessionMappingOutput) {
   911  	op := &request.Operation{
   912  		Name:       opDeleteStudioSessionMapping,
   913  		HTTPMethod: "POST",
   914  		HTTPPath:   "/",
   915  	}
   916  
   917  	if input == nil {
   918  		input = &DeleteStudioSessionMappingInput{}
   919  	}
   920  
   921  	output = &DeleteStudioSessionMappingOutput{}
   922  	req = c.newRequest(op, input, output)
   923  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   924  	return
   925  }
   926  
   927  // DeleteStudioSessionMapping API operation for Amazon EMR.
   928  //
   929  // Removes a user or group from an Amazon EMR Studio.
   930  //
   931  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   932  // with awserr.Error's Code and Message methods to get detailed information about
   933  // the error.
   934  //
   935  // See the AWS API reference guide for Amazon EMR's
   936  // API operation DeleteStudioSessionMapping for usage and error information.
   937  //
   938  // Returned Error Types:
   939  //   * InternalServerError
   940  //   Indicates that an error occurred while processing the request and that the
   941  //   request was not completed.
   942  //
   943  //   * InvalidRequestException
   944  //   This exception occurs when there is something wrong with user input.
   945  //
   946  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
   947  func (c *EMR) DeleteStudioSessionMapping(input *DeleteStudioSessionMappingInput) (*DeleteStudioSessionMappingOutput, error) {
   948  	req, out := c.DeleteStudioSessionMappingRequest(input)
   949  	return out, req.Send()
   950  }
   951  
   952  // DeleteStudioSessionMappingWithContext is the same as DeleteStudioSessionMapping with the addition of
   953  // the ability to pass a context and additional request options.
   954  //
   955  // See DeleteStudioSessionMapping for details on how to use this API operation.
   956  //
   957  // The context must be non-nil and will be used for request cancellation. If
   958  // the context is nil a panic will occur. In the future the SDK may create
   959  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   960  // for more information on using Contexts.
   961  func (c *EMR) DeleteStudioSessionMappingWithContext(ctx aws.Context, input *DeleteStudioSessionMappingInput, opts ...request.Option) (*DeleteStudioSessionMappingOutput, error) {
   962  	req, out := c.DeleteStudioSessionMappingRequest(input)
   963  	req.SetContext(ctx)
   964  	req.ApplyOptions(opts...)
   965  	return out, req.Send()
   966  }
   967  
   968  const opDescribeCluster = "DescribeCluster"
   969  
   970  // DescribeClusterRequest generates a "aws/request.Request" representing the
   971  // client's request for the DescribeCluster operation. The "output" return
   972  // value will be populated with the request's response once the request completes
   973  // successfully.
   974  //
   975  // Use "Send" method on the returned Request to send the API call to the service.
   976  // the "output" return value is not valid until after Send returns without error.
   977  //
   978  // See DescribeCluster for more information on using the DescribeCluster
   979  // API call, and error handling.
   980  //
   981  // This method is useful when you want to inject custom logic or configuration
   982  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   983  //
   984  //
   985  //    // Example sending a request using the DescribeClusterRequest method.
   986  //    req, resp := client.DescribeClusterRequest(params)
   987  //
   988  //    err := req.Send()
   989  //    if err == nil { // resp is now filled
   990  //        fmt.Println(resp)
   991  //    }
   992  //
   993  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
   994  func (c *EMR) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
   995  	op := &request.Operation{
   996  		Name:       opDescribeCluster,
   997  		HTTPMethod: "POST",
   998  		HTTPPath:   "/",
   999  	}
  1000  
  1001  	if input == nil {
  1002  		input = &DescribeClusterInput{}
  1003  	}
  1004  
  1005  	output = &DescribeClusterOutput{}
  1006  	req = c.newRequest(op, input, output)
  1007  	return
  1008  }
  1009  
  1010  // DescribeCluster API operation for Amazon EMR.
  1011  //
  1012  // Provides cluster-level details including status, hardware and software configuration,
  1013  // VPC settings, and so on.
  1014  //
  1015  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1016  // with awserr.Error's Code and Message methods to get detailed information about
  1017  // the error.
  1018  //
  1019  // See the AWS API reference guide for Amazon EMR's
  1020  // API operation DescribeCluster for usage and error information.
  1021  //
  1022  // Returned Error Types:
  1023  //   * InternalServerException
  1024  //   This exception occurs when there is an internal failure in the Amazon EMR
  1025  //   service.
  1026  //
  1027  //   * InvalidRequestException
  1028  //   This exception occurs when there is something wrong with user input.
  1029  //
  1030  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
  1031  func (c *EMR) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
  1032  	req, out := c.DescribeClusterRequest(input)
  1033  	return out, req.Send()
  1034  }
  1035  
  1036  // DescribeClusterWithContext is the same as DescribeCluster with the addition of
  1037  // the ability to pass a context and additional request options.
  1038  //
  1039  // See DescribeCluster for details on how to use this API operation.
  1040  //
  1041  // The context must be non-nil and will be used for request cancellation. If
  1042  // the context is nil a panic will occur. In the future the SDK may create
  1043  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1044  // for more information on using Contexts.
  1045  func (c *EMR) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
  1046  	req, out := c.DescribeClusterRequest(input)
  1047  	req.SetContext(ctx)
  1048  	req.ApplyOptions(opts...)
  1049  	return out, req.Send()
  1050  }
  1051  
  1052  const opDescribeJobFlows = "DescribeJobFlows"
  1053  
  1054  // DescribeJobFlowsRequest generates a "aws/request.Request" representing the
  1055  // client's request for the DescribeJobFlows operation. The "output" return
  1056  // value will be populated with the request's response once the request completes
  1057  // successfully.
  1058  //
  1059  // Use "Send" method on the returned Request to send the API call to the service.
  1060  // the "output" return value is not valid until after Send returns without error.
  1061  //
  1062  // See DescribeJobFlows for more information on using the DescribeJobFlows
  1063  // API call, and error handling.
  1064  //
  1065  // This method is useful when you want to inject custom logic or configuration
  1066  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1067  //
  1068  //
  1069  //    // Example sending a request using the DescribeJobFlowsRequest method.
  1070  //    req, resp := client.DescribeJobFlowsRequest(params)
  1071  //
  1072  //    err := req.Send()
  1073  //    if err == nil { // resp is now filled
  1074  //        fmt.Println(resp)
  1075  //    }
  1076  //
  1077  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
  1078  //
  1079  // Deprecated: DescribeJobFlows has been deprecated
  1080  func (c *EMR) DescribeJobFlowsRequest(input *DescribeJobFlowsInput) (req *request.Request, output *DescribeJobFlowsOutput) {
  1081  	if c.Client.Config.Logger != nil {
  1082  		c.Client.Config.Logger.Log("This operation, DescribeJobFlows, has been deprecated")
  1083  	}
  1084  	op := &request.Operation{
  1085  		Name:       opDescribeJobFlows,
  1086  		HTTPMethod: "POST",
  1087  		HTTPPath:   "/",
  1088  	}
  1089  
  1090  	if input == nil {
  1091  		input = &DescribeJobFlowsInput{}
  1092  	}
  1093  
  1094  	output = &DescribeJobFlowsOutput{}
  1095  	req = c.newRequest(op, input, output)
  1096  	return
  1097  }
  1098  
  1099  // DescribeJobFlows API operation for Amazon EMR.
  1100  //
  1101  // This API is no longer supported and will eventually be removed. We recommend
  1102  // you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and
  1103  // ListBootstrapActions instead.
  1104  //
  1105  // DescribeJobFlows returns a list of job flows that match all of the supplied
  1106  // parameters. The parameters can include a list of job flow IDs, job flow states,
  1107  // and restrictions on job flow creation date and time.
  1108  //
  1109  // Regardless of supplied parameters, only job flows created within the last
  1110  // two months are returned.
  1111  //
  1112  // If no parameters are supplied, then job flows matching either of the following
  1113  // criteria are returned:
  1114  //
  1115  //    * Job flows created and completed in the last two weeks
  1116  //
  1117  //    * Job flows created within the last two months that are in one of the
  1118  //    following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING
  1119  //
  1120  // Amazon EMR can return a maximum of 512 job flow descriptions.
  1121  //
  1122  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1123  // with awserr.Error's Code and Message methods to get detailed information about
  1124  // the error.
  1125  //
  1126  // See the AWS API reference guide for Amazon EMR's
  1127  // API operation DescribeJobFlows for usage and error information.
  1128  //
  1129  // Returned Error Types:
  1130  //   * InternalServerError
  1131  //   Indicates that an error occurred while processing the request and that the
  1132  //   request was not completed.
  1133  //
  1134  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
  1135  //
  1136  // Deprecated: DescribeJobFlows has been deprecated
  1137  func (c *EMR) DescribeJobFlows(input *DescribeJobFlowsInput) (*DescribeJobFlowsOutput, error) {
  1138  	req, out := c.DescribeJobFlowsRequest(input)
  1139  	return out, req.Send()
  1140  }
  1141  
  1142  // DescribeJobFlowsWithContext is the same as DescribeJobFlows with the addition of
  1143  // the ability to pass a context and additional request options.
  1144  //
  1145  // See DescribeJobFlows for details on how to use this API operation.
  1146  //
  1147  // The context must be non-nil and will be used for request cancellation. If
  1148  // the context is nil a panic will occur. In the future the SDK may create
  1149  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1150  // for more information on using Contexts.
  1151  //
  1152  // Deprecated: DescribeJobFlowsWithContext has been deprecated
  1153  func (c *EMR) DescribeJobFlowsWithContext(ctx aws.Context, input *DescribeJobFlowsInput, opts ...request.Option) (*DescribeJobFlowsOutput, error) {
  1154  	req, out := c.DescribeJobFlowsRequest(input)
  1155  	req.SetContext(ctx)
  1156  	req.ApplyOptions(opts...)
  1157  	return out, req.Send()
  1158  }
  1159  
  1160  const opDescribeNotebookExecution = "DescribeNotebookExecution"
  1161  
  1162  // DescribeNotebookExecutionRequest generates a "aws/request.Request" representing the
  1163  // client's request for the DescribeNotebookExecution operation. The "output" return
  1164  // value will be populated with the request's response once the request completes
  1165  // successfully.
  1166  //
  1167  // Use "Send" method on the returned Request to send the API call to the service.
  1168  // the "output" return value is not valid until after Send returns without error.
  1169  //
  1170  // See DescribeNotebookExecution for more information on using the DescribeNotebookExecution
  1171  // API call, and error handling.
  1172  //
  1173  // This method is useful when you want to inject custom logic or configuration
  1174  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1175  //
  1176  //
  1177  //    // Example sending a request using the DescribeNotebookExecutionRequest method.
  1178  //    req, resp := client.DescribeNotebookExecutionRequest(params)
  1179  //
  1180  //    err := req.Send()
  1181  //    if err == nil { // resp is now filled
  1182  //        fmt.Println(resp)
  1183  //    }
  1184  //
  1185  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
  1186  func (c *EMR) DescribeNotebookExecutionRequest(input *DescribeNotebookExecutionInput) (req *request.Request, output *DescribeNotebookExecutionOutput) {
  1187  	op := &request.Operation{
  1188  		Name:       opDescribeNotebookExecution,
  1189  		HTTPMethod: "POST",
  1190  		HTTPPath:   "/",
  1191  	}
  1192  
  1193  	if input == nil {
  1194  		input = &DescribeNotebookExecutionInput{}
  1195  	}
  1196  
  1197  	output = &DescribeNotebookExecutionOutput{}
  1198  	req = c.newRequest(op, input, output)
  1199  	return
  1200  }
  1201  
  1202  // DescribeNotebookExecution API operation for Amazon EMR.
  1203  //
  1204  // Provides details of a notebook execution.
  1205  //
  1206  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1207  // with awserr.Error's Code and Message methods to get detailed information about
  1208  // the error.
  1209  //
  1210  // See the AWS API reference guide for Amazon EMR's
  1211  // API operation DescribeNotebookExecution for usage and error information.
  1212  //
  1213  // Returned Error Types:
  1214  //   * InternalServerError
  1215  //   Indicates that an error occurred while processing the request and that the
  1216  //   request was not completed.
  1217  //
  1218  //   * InvalidRequestException
  1219  //   This exception occurs when there is something wrong with user input.
  1220  //
  1221  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
  1222  func (c *EMR) DescribeNotebookExecution(input *DescribeNotebookExecutionInput) (*DescribeNotebookExecutionOutput, error) {
  1223  	req, out := c.DescribeNotebookExecutionRequest(input)
  1224  	return out, req.Send()
  1225  }
  1226  
  1227  // DescribeNotebookExecutionWithContext is the same as DescribeNotebookExecution with the addition of
  1228  // the ability to pass a context and additional request options.
  1229  //
  1230  // See DescribeNotebookExecution for details on how to use this API operation.
  1231  //
  1232  // The context must be non-nil and will be used for request cancellation. If
  1233  // the context is nil a panic will occur. In the future the SDK may create
  1234  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1235  // for more information on using Contexts.
  1236  func (c *EMR) DescribeNotebookExecutionWithContext(ctx aws.Context, input *DescribeNotebookExecutionInput, opts ...request.Option) (*DescribeNotebookExecutionOutput, error) {
  1237  	req, out := c.DescribeNotebookExecutionRequest(input)
  1238  	req.SetContext(ctx)
  1239  	req.ApplyOptions(opts...)
  1240  	return out, req.Send()
  1241  }
  1242  
  1243  const opDescribeReleaseLabel = "DescribeReleaseLabel"
  1244  
  1245  // DescribeReleaseLabelRequest generates a "aws/request.Request" representing the
  1246  // client's request for the DescribeReleaseLabel operation. The "output" return
  1247  // value will be populated with the request's response once the request completes
  1248  // successfully.
  1249  //
  1250  // Use "Send" method on the returned Request to send the API call to the service.
  1251  // the "output" return value is not valid until after Send returns without error.
  1252  //
  1253  // See DescribeReleaseLabel for more information on using the DescribeReleaseLabel
  1254  // API call, and error handling.
  1255  //
  1256  // This method is useful when you want to inject custom logic or configuration
  1257  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1258  //
  1259  //
  1260  //    // Example sending a request using the DescribeReleaseLabelRequest method.
  1261  //    req, resp := client.DescribeReleaseLabelRequest(params)
  1262  //
  1263  //    err := req.Send()
  1264  //    if err == nil { // resp is now filled
  1265  //        fmt.Println(resp)
  1266  //    }
  1267  //
  1268  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeReleaseLabel
  1269  func (c *EMR) DescribeReleaseLabelRequest(input *DescribeReleaseLabelInput) (req *request.Request, output *DescribeReleaseLabelOutput) {
  1270  	op := &request.Operation{
  1271  		Name:       opDescribeReleaseLabel,
  1272  		HTTPMethod: "POST",
  1273  		HTTPPath:   "/",
  1274  	}
  1275  
  1276  	if input == nil {
  1277  		input = &DescribeReleaseLabelInput{}
  1278  	}
  1279  
  1280  	output = &DescribeReleaseLabelOutput{}
  1281  	req = c.newRequest(op, input, output)
  1282  	return
  1283  }
  1284  
  1285  // DescribeReleaseLabel API operation for Amazon EMR.
  1286  //
  1287  // Provides EMR release label details, such as releases available the region
  1288  // where the API request is run, and the available applications for a specific
  1289  // EMR release label. Can also list EMR release versions that support a specified
  1290  // version of Spark.
  1291  //
  1292  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1293  // with awserr.Error's Code and Message methods to get detailed information about
  1294  // the error.
  1295  //
  1296  // See the AWS API reference guide for Amazon EMR's
  1297  // API operation DescribeReleaseLabel for usage and error information.
  1298  //
  1299  // Returned Error Types:
  1300  //   * InternalServerException
  1301  //   This exception occurs when there is an internal failure in the Amazon EMR
  1302  //   service.
  1303  //
  1304  //   * InvalidRequestException
  1305  //   This exception occurs when there is something wrong with user input.
  1306  //
  1307  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeReleaseLabel
  1308  func (c *EMR) DescribeReleaseLabel(input *DescribeReleaseLabelInput) (*DescribeReleaseLabelOutput, error) {
  1309  	req, out := c.DescribeReleaseLabelRequest(input)
  1310  	return out, req.Send()
  1311  }
  1312  
  1313  // DescribeReleaseLabelWithContext is the same as DescribeReleaseLabel with the addition of
  1314  // the ability to pass a context and additional request options.
  1315  //
  1316  // See DescribeReleaseLabel for details on how to use this API operation.
  1317  //
  1318  // The context must be non-nil and will be used for request cancellation. If
  1319  // the context is nil a panic will occur. In the future the SDK may create
  1320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1321  // for more information on using Contexts.
  1322  func (c *EMR) DescribeReleaseLabelWithContext(ctx aws.Context, input *DescribeReleaseLabelInput, opts ...request.Option) (*DescribeReleaseLabelOutput, error) {
  1323  	req, out := c.DescribeReleaseLabelRequest(input)
  1324  	req.SetContext(ctx)
  1325  	req.ApplyOptions(opts...)
  1326  	return out, req.Send()
  1327  }
  1328  
  1329  const opDescribeSecurityConfiguration = "DescribeSecurityConfiguration"
  1330  
  1331  // DescribeSecurityConfigurationRequest generates a "aws/request.Request" representing the
  1332  // client's request for the DescribeSecurityConfiguration operation. The "output" return
  1333  // value will be populated with the request's response once the request completes
  1334  // successfully.
  1335  //
  1336  // Use "Send" method on the returned Request to send the API call to the service.
  1337  // the "output" return value is not valid until after Send returns without error.
  1338  //
  1339  // See DescribeSecurityConfiguration for more information on using the DescribeSecurityConfiguration
  1340  // API call, and error handling.
  1341  //
  1342  // This method is useful when you want to inject custom logic or configuration
  1343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1344  //
  1345  //
  1346  //    // Example sending a request using the DescribeSecurityConfigurationRequest method.
  1347  //    req, resp := client.DescribeSecurityConfigurationRequest(params)
  1348  //
  1349  //    err := req.Send()
  1350  //    if err == nil { // resp is now filled
  1351  //        fmt.Println(resp)
  1352  //    }
  1353  //
  1354  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
  1355  func (c *EMR) DescribeSecurityConfigurationRequest(input *DescribeSecurityConfigurationInput) (req *request.Request, output *DescribeSecurityConfigurationOutput) {
  1356  	op := &request.Operation{
  1357  		Name:       opDescribeSecurityConfiguration,
  1358  		HTTPMethod: "POST",
  1359  		HTTPPath:   "/",
  1360  	}
  1361  
  1362  	if input == nil {
  1363  		input = &DescribeSecurityConfigurationInput{}
  1364  	}
  1365  
  1366  	output = &DescribeSecurityConfigurationOutput{}
  1367  	req = c.newRequest(op, input, output)
  1368  	return
  1369  }
  1370  
  1371  // DescribeSecurityConfiguration API operation for Amazon EMR.
  1372  //
  1373  // Provides the details of a security configuration by returning the configuration
  1374  // JSON.
  1375  //
  1376  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1377  // with awserr.Error's Code and Message methods to get detailed information about
  1378  // the error.
  1379  //
  1380  // See the AWS API reference guide for Amazon EMR's
  1381  // API operation DescribeSecurityConfiguration for usage and error information.
  1382  //
  1383  // Returned Error Types:
  1384  //   * InternalServerException
  1385  //   This exception occurs when there is an internal failure in the Amazon EMR
  1386  //   service.
  1387  //
  1388  //   * InvalidRequestException
  1389  //   This exception occurs when there is something wrong with user input.
  1390  //
  1391  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
  1392  func (c *EMR) DescribeSecurityConfiguration(input *DescribeSecurityConfigurationInput) (*DescribeSecurityConfigurationOutput, error) {
  1393  	req, out := c.DescribeSecurityConfigurationRequest(input)
  1394  	return out, req.Send()
  1395  }
  1396  
  1397  // DescribeSecurityConfigurationWithContext is the same as DescribeSecurityConfiguration with the addition of
  1398  // the ability to pass a context and additional request options.
  1399  //
  1400  // See DescribeSecurityConfiguration for details on how to use this API operation.
  1401  //
  1402  // The context must be non-nil and will be used for request cancellation. If
  1403  // the context is nil a panic will occur. In the future the SDK may create
  1404  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1405  // for more information on using Contexts.
  1406  func (c *EMR) DescribeSecurityConfigurationWithContext(ctx aws.Context, input *DescribeSecurityConfigurationInput, opts ...request.Option) (*DescribeSecurityConfigurationOutput, error) {
  1407  	req, out := c.DescribeSecurityConfigurationRequest(input)
  1408  	req.SetContext(ctx)
  1409  	req.ApplyOptions(opts...)
  1410  	return out, req.Send()
  1411  }
  1412  
  1413  const opDescribeStep = "DescribeStep"
  1414  
  1415  // DescribeStepRequest generates a "aws/request.Request" representing the
  1416  // client's request for the DescribeStep operation. The "output" return
  1417  // value will be populated with the request's response once the request completes
  1418  // successfully.
  1419  //
  1420  // Use "Send" method on the returned Request to send the API call to the service.
  1421  // the "output" return value is not valid until after Send returns without error.
  1422  //
  1423  // See DescribeStep for more information on using the DescribeStep
  1424  // API call, and error handling.
  1425  //
  1426  // This method is useful when you want to inject custom logic or configuration
  1427  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1428  //
  1429  //
  1430  //    // Example sending a request using the DescribeStepRequest method.
  1431  //    req, resp := client.DescribeStepRequest(params)
  1432  //
  1433  //    err := req.Send()
  1434  //    if err == nil { // resp is now filled
  1435  //        fmt.Println(resp)
  1436  //    }
  1437  //
  1438  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
  1439  func (c *EMR) DescribeStepRequest(input *DescribeStepInput) (req *request.Request, output *DescribeStepOutput) {
  1440  	op := &request.Operation{
  1441  		Name:       opDescribeStep,
  1442  		HTTPMethod: "POST",
  1443  		HTTPPath:   "/",
  1444  	}
  1445  
  1446  	if input == nil {
  1447  		input = &DescribeStepInput{}
  1448  	}
  1449  
  1450  	output = &DescribeStepOutput{}
  1451  	req = c.newRequest(op, input, output)
  1452  	return
  1453  }
  1454  
  1455  // DescribeStep API operation for Amazon EMR.
  1456  //
  1457  // Provides more detail about the cluster step.
  1458  //
  1459  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1460  // with awserr.Error's Code and Message methods to get detailed information about
  1461  // the error.
  1462  //
  1463  // See the AWS API reference guide for Amazon EMR's
  1464  // API operation DescribeStep for usage and error information.
  1465  //
  1466  // Returned Error Types:
  1467  //   * InternalServerException
  1468  //   This exception occurs when there is an internal failure in the Amazon EMR
  1469  //   service.
  1470  //
  1471  //   * InvalidRequestException
  1472  //   This exception occurs when there is something wrong with user input.
  1473  //
  1474  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
  1475  func (c *EMR) DescribeStep(input *DescribeStepInput) (*DescribeStepOutput, error) {
  1476  	req, out := c.DescribeStepRequest(input)
  1477  	return out, req.Send()
  1478  }
  1479  
  1480  // DescribeStepWithContext is the same as DescribeStep with the addition of
  1481  // the ability to pass a context and additional request options.
  1482  //
  1483  // See DescribeStep for details on how to use this API operation.
  1484  //
  1485  // The context must be non-nil and will be used for request cancellation. If
  1486  // the context is nil a panic will occur. In the future the SDK may create
  1487  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1488  // for more information on using Contexts.
  1489  func (c *EMR) DescribeStepWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.Option) (*DescribeStepOutput, error) {
  1490  	req, out := c.DescribeStepRequest(input)
  1491  	req.SetContext(ctx)
  1492  	req.ApplyOptions(opts...)
  1493  	return out, req.Send()
  1494  }
  1495  
  1496  const opDescribeStudio = "DescribeStudio"
  1497  
  1498  // DescribeStudioRequest generates a "aws/request.Request" representing the
  1499  // client's request for the DescribeStudio operation. The "output" return
  1500  // value will be populated with the request's response once the request completes
  1501  // successfully.
  1502  //
  1503  // Use "Send" method on the returned Request to send the API call to the service.
  1504  // the "output" return value is not valid until after Send returns without error.
  1505  //
  1506  // See DescribeStudio for more information on using the DescribeStudio
  1507  // API call, and error handling.
  1508  //
  1509  // This method is useful when you want to inject custom logic or configuration
  1510  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1511  //
  1512  //
  1513  //    // Example sending a request using the DescribeStudioRequest method.
  1514  //    req, resp := client.DescribeStudioRequest(params)
  1515  //
  1516  //    err := req.Send()
  1517  //    if err == nil { // resp is now filled
  1518  //        fmt.Println(resp)
  1519  //    }
  1520  //
  1521  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
  1522  func (c *EMR) DescribeStudioRequest(input *DescribeStudioInput) (req *request.Request, output *DescribeStudioOutput) {
  1523  	op := &request.Operation{
  1524  		Name:       opDescribeStudio,
  1525  		HTTPMethod: "POST",
  1526  		HTTPPath:   "/",
  1527  	}
  1528  
  1529  	if input == nil {
  1530  		input = &DescribeStudioInput{}
  1531  	}
  1532  
  1533  	output = &DescribeStudioOutput{}
  1534  	req = c.newRequest(op, input, output)
  1535  	return
  1536  }
  1537  
  1538  // DescribeStudio API operation for Amazon EMR.
  1539  //
  1540  // Returns details for the specified Amazon EMR Studio including ID, Name, VPC,
  1541  // Studio access URL, and so on.
  1542  //
  1543  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1544  // with awserr.Error's Code and Message methods to get detailed information about
  1545  // the error.
  1546  //
  1547  // See the AWS API reference guide for Amazon EMR's
  1548  // API operation DescribeStudio for usage and error information.
  1549  //
  1550  // Returned Error Types:
  1551  //   * InternalServerException
  1552  //   This exception occurs when there is an internal failure in the Amazon EMR
  1553  //   service.
  1554  //
  1555  //   * InvalidRequestException
  1556  //   This exception occurs when there is something wrong with user input.
  1557  //
  1558  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
  1559  func (c *EMR) DescribeStudio(input *DescribeStudioInput) (*DescribeStudioOutput, error) {
  1560  	req, out := c.DescribeStudioRequest(input)
  1561  	return out, req.Send()
  1562  }
  1563  
  1564  // DescribeStudioWithContext is the same as DescribeStudio with the addition of
  1565  // the ability to pass a context and additional request options.
  1566  //
  1567  // See DescribeStudio for details on how to use this API operation.
  1568  //
  1569  // The context must be non-nil and will be used for request cancellation. If
  1570  // the context is nil a panic will occur. In the future the SDK may create
  1571  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1572  // for more information on using Contexts.
  1573  func (c *EMR) DescribeStudioWithContext(ctx aws.Context, input *DescribeStudioInput, opts ...request.Option) (*DescribeStudioOutput, error) {
  1574  	req, out := c.DescribeStudioRequest(input)
  1575  	req.SetContext(ctx)
  1576  	req.ApplyOptions(opts...)
  1577  	return out, req.Send()
  1578  }
  1579  
  1580  const opGetAutoTerminationPolicy = "GetAutoTerminationPolicy"
  1581  
  1582  // GetAutoTerminationPolicyRequest generates a "aws/request.Request" representing the
  1583  // client's request for the GetAutoTerminationPolicy operation. The "output" return
  1584  // value will be populated with the request's response once the request completes
  1585  // successfully.
  1586  //
  1587  // Use "Send" method on the returned Request to send the API call to the service.
  1588  // the "output" return value is not valid until after Send returns without error.
  1589  //
  1590  // See GetAutoTerminationPolicy for more information on using the GetAutoTerminationPolicy
  1591  // API call, and error handling.
  1592  //
  1593  // This method is useful when you want to inject custom logic or configuration
  1594  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1595  //
  1596  //
  1597  //    // Example sending a request using the GetAutoTerminationPolicyRequest method.
  1598  //    req, resp := client.GetAutoTerminationPolicyRequest(params)
  1599  //
  1600  //    err := req.Send()
  1601  //    if err == nil { // resp is now filled
  1602  //        fmt.Println(resp)
  1603  //    }
  1604  //
  1605  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetAutoTerminationPolicy
  1606  func (c *EMR) GetAutoTerminationPolicyRequest(input *GetAutoTerminationPolicyInput) (req *request.Request, output *GetAutoTerminationPolicyOutput) {
  1607  	op := &request.Operation{
  1608  		Name:       opGetAutoTerminationPolicy,
  1609  		HTTPMethod: "POST",
  1610  		HTTPPath:   "/",
  1611  	}
  1612  
  1613  	if input == nil {
  1614  		input = &GetAutoTerminationPolicyInput{}
  1615  	}
  1616  
  1617  	output = &GetAutoTerminationPolicyOutput{}
  1618  	req = c.newRequest(op, input, output)
  1619  	return
  1620  }
  1621  
  1622  // GetAutoTerminationPolicy API operation for Amazon EMR.
  1623  //
  1624  // Returns the auto-termination policy for an Amazon EMR cluster.
  1625  //
  1626  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1627  // with awserr.Error's Code and Message methods to get detailed information about
  1628  // the error.
  1629  //
  1630  // See the AWS API reference guide for Amazon EMR's
  1631  // API operation GetAutoTerminationPolicy for usage and error information.
  1632  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetAutoTerminationPolicy
  1633  func (c *EMR) GetAutoTerminationPolicy(input *GetAutoTerminationPolicyInput) (*GetAutoTerminationPolicyOutput, error) {
  1634  	req, out := c.GetAutoTerminationPolicyRequest(input)
  1635  	return out, req.Send()
  1636  }
  1637  
  1638  // GetAutoTerminationPolicyWithContext is the same as GetAutoTerminationPolicy with the addition of
  1639  // the ability to pass a context and additional request options.
  1640  //
  1641  // See GetAutoTerminationPolicy for details on how to use this API operation.
  1642  //
  1643  // The context must be non-nil and will be used for request cancellation. If
  1644  // the context is nil a panic will occur. In the future the SDK may create
  1645  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1646  // for more information on using Contexts.
  1647  func (c *EMR) GetAutoTerminationPolicyWithContext(ctx aws.Context, input *GetAutoTerminationPolicyInput, opts ...request.Option) (*GetAutoTerminationPolicyOutput, error) {
  1648  	req, out := c.GetAutoTerminationPolicyRequest(input)
  1649  	req.SetContext(ctx)
  1650  	req.ApplyOptions(opts...)
  1651  	return out, req.Send()
  1652  }
  1653  
  1654  const opGetBlockPublicAccessConfiguration = "GetBlockPublicAccessConfiguration"
  1655  
  1656  // GetBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
  1657  // client's request for the GetBlockPublicAccessConfiguration operation. The "output" return
  1658  // value will be populated with the request's response once the request completes
  1659  // successfully.
  1660  //
  1661  // Use "Send" method on the returned Request to send the API call to the service.
  1662  // the "output" return value is not valid until after Send returns without error.
  1663  //
  1664  // See GetBlockPublicAccessConfiguration for more information on using the GetBlockPublicAccessConfiguration
  1665  // API call, and error handling.
  1666  //
  1667  // This method is useful when you want to inject custom logic or configuration
  1668  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1669  //
  1670  //
  1671  //    // Example sending a request using the GetBlockPublicAccessConfigurationRequest method.
  1672  //    req, resp := client.GetBlockPublicAccessConfigurationRequest(params)
  1673  //
  1674  //    err := req.Send()
  1675  //    if err == nil { // resp is now filled
  1676  //        fmt.Println(resp)
  1677  //    }
  1678  //
  1679  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
  1680  func (c *EMR) GetBlockPublicAccessConfigurationRequest(input *GetBlockPublicAccessConfigurationInput) (req *request.Request, output *GetBlockPublicAccessConfigurationOutput) {
  1681  	op := &request.Operation{
  1682  		Name:       opGetBlockPublicAccessConfiguration,
  1683  		HTTPMethod: "POST",
  1684  		HTTPPath:   "/",
  1685  	}
  1686  
  1687  	if input == nil {
  1688  		input = &GetBlockPublicAccessConfigurationInput{}
  1689  	}
  1690  
  1691  	output = &GetBlockPublicAccessConfigurationOutput{}
  1692  	req = c.newRequest(op, input, output)
  1693  	return
  1694  }
  1695  
  1696  // GetBlockPublicAccessConfiguration API operation for Amazon EMR.
  1697  //
  1698  // Returns the Amazon EMR block public access configuration for your Amazon
  1699  // Web Services account in the current Region. For more information see Configure
  1700  // Block Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
  1701  // in the Amazon EMR Management Guide.
  1702  //
  1703  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1704  // with awserr.Error's Code and Message methods to get detailed information about
  1705  // the error.
  1706  //
  1707  // See the AWS API reference guide for Amazon EMR's
  1708  // API operation GetBlockPublicAccessConfiguration for usage and error information.
  1709  //
  1710  // Returned Error Types:
  1711  //   * InternalServerException
  1712  //   This exception occurs when there is an internal failure in the Amazon EMR
  1713  //   service.
  1714  //
  1715  //   * InvalidRequestException
  1716  //   This exception occurs when there is something wrong with user input.
  1717  //
  1718  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
  1719  func (c *EMR) GetBlockPublicAccessConfiguration(input *GetBlockPublicAccessConfigurationInput) (*GetBlockPublicAccessConfigurationOutput, error) {
  1720  	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
  1721  	return out, req.Send()
  1722  }
  1723  
  1724  // GetBlockPublicAccessConfigurationWithContext is the same as GetBlockPublicAccessConfiguration with the addition of
  1725  // the ability to pass a context and additional request options.
  1726  //
  1727  // See GetBlockPublicAccessConfiguration for details on how to use this API operation.
  1728  //
  1729  // The context must be non-nil and will be used for request cancellation. If
  1730  // the context is nil a panic will occur. In the future the SDK may create
  1731  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1732  // for more information on using Contexts.
  1733  func (c *EMR) GetBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *GetBlockPublicAccessConfigurationInput, opts ...request.Option) (*GetBlockPublicAccessConfigurationOutput, error) {
  1734  	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
  1735  	req.SetContext(ctx)
  1736  	req.ApplyOptions(opts...)
  1737  	return out, req.Send()
  1738  }
  1739  
  1740  const opGetManagedScalingPolicy = "GetManagedScalingPolicy"
  1741  
  1742  // GetManagedScalingPolicyRequest generates a "aws/request.Request" representing the
  1743  // client's request for the GetManagedScalingPolicy operation. The "output" return
  1744  // value will be populated with the request's response once the request completes
  1745  // successfully.
  1746  //
  1747  // Use "Send" method on the returned Request to send the API call to the service.
  1748  // the "output" return value is not valid until after Send returns without error.
  1749  //
  1750  // See GetManagedScalingPolicy for more information on using the GetManagedScalingPolicy
  1751  // API call, and error handling.
  1752  //
  1753  // This method is useful when you want to inject custom logic or configuration
  1754  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1755  //
  1756  //
  1757  //    // Example sending a request using the GetManagedScalingPolicyRequest method.
  1758  //    req, resp := client.GetManagedScalingPolicyRequest(params)
  1759  //
  1760  //    err := req.Send()
  1761  //    if err == nil { // resp is now filled
  1762  //        fmt.Println(resp)
  1763  //    }
  1764  //
  1765  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
  1766  func (c *EMR) GetManagedScalingPolicyRequest(input *GetManagedScalingPolicyInput) (req *request.Request, output *GetManagedScalingPolicyOutput) {
  1767  	op := &request.Operation{
  1768  		Name:       opGetManagedScalingPolicy,
  1769  		HTTPMethod: "POST",
  1770  		HTTPPath:   "/",
  1771  	}
  1772  
  1773  	if input == nil {
  1774  		input = &GetManagedScalingPolicyInput{}
  1775  	}
  1776  
  1777  	output = &GetManagedScalingPolicyOutput{}
  1778  	req = c.newRequest(op, input, output)
  1779  	return
  1780  }
  1781  
  1782  // GetManagedScalingPolicy API operation for Amazon EMR.
  1783  //
  1784  // Fetches the attached managed scaling policy for an Amazon EMR cluster.
  1785  //
  1786  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1787  // with awserr.Error's Code and Message methods to get detailed information about
  1788  // the error.
  1789  //
  1790  // See the AWS API reference guide for Amazon EMR's
  1791  // API operation GetManagedScalingPolicy for usage and error information.
  1792  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
  1793  func (c *EMR) GetManagedScalingPolicy(input *GetManagedScalingPolicyInput) (*GetManagedScalingPolicyOutput, error) {
  1794  	req, out := c.GetManagedScalingPolicyRequest(input)
  1795  	return out, req.Send()
  1796  }
  1797  
  1798  // GetManagedScalingPolicyWithContext is the same as GetManagedScalingPolicy with the addition of
  1799  // the ability to pass a context and additional request options.
  1800  //
  1801  // See GetManagedScalingPolicy for details on how to use this API operation.
  1802  //
  1803  // The context must be non-nil and will be used for request cancellation. If
  1804  // the context is nil a panic will occur. In the future the SDK may create
  1805  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1806  // for more information on using Contexts.
  1807  func (c *EMR) GetManagedScalingPolicyWithContext(ctx aws.Context, input *GetManagedScalingPolicyInput, opts ...request.Option) (*GetManagedScalingPolicyOutput, error) {
  1808  	req, out := c.GetManagedScalingPolicyRequest(input)
  1809  	req.SetContext(ctx)
  1810  	req.ApplyOptions(opts...)
  1811  	return out, req.Send()
  1812  }
  1813  
  1814  const opGetStudioSessionMapping = "GetStudioSessionMapping"
  1815  
  1816  // GetStudioSessionMappingRequest generates a "aws/request.Request" representing the
  1817  // client's request for the GetStudioSessionMapping operation. The "output" return
  1818  // value will be populated with the request's response once the request completes
  1819  // successfully.
  1820  //
  1821  // Use "Send" method on the returned Request to send the API call to the service.
  1822  // the "output" return value is not valid until after Send returns without error.
  1823  //
  1824  // See GetStudioSessionMapping for more information on using the GetStudioSessionMapping
  1825  // API call, and error handling.
  1826  //
  1827  // This method is useful when you want to inject custom logic or configuration
  1828  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1829  //
  1830  //
  1831  //    // Example sending a request using the GetStudioSessionMappingRequest method.
  1832  //    req, resp := client.GetStudioSessionMappingRequest(params)
  1833  //
  1834  //    err := req.Send()
  1835  //    if err == nil { // resp is now filled
  1836  //        fmt.Println(resp)
  1837  //    }
  1838  //
  1839  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
  1840  func (c *EMR) GetStudioSessionMappingRequest(input *GetStudioSessionMappingInput) (req *request.Request, output *GetStudioSessionMappingOutput) {
  1841  	op := &request.Operation{
  1842  		Name:       opGetStudioSessionMapping,
  1843  		HTTPMethod: "POST",
  1844  		HTTPPath:   "/",
  1845  	}
  1846  
  1847  	if input == nil {
  1848  		input = &GetStudioSessionMappingInput{}
  1849  	}
  1850  
  1851  	output = &GetStudioSessionMappingOutput{}
  1852  	req = c.newRequest(op, input, output)
  1853  	return
  1854  }
  1855  
  1856  // GetStudioSessionMapping API operation for Amazon EMR.
  1857  //
  1858  // Fetches mapping details for the specified Amazon EMR Studio and identity
  1859  // (user or group).
  1860  //
  1861  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1862  // with awserr.Error's Code and Message methods to get detailed information about
  1863  // the error.
  1864  //
  1865  // See the AWS API reference guide for Amazon EMR's
  1866  // API operation GetStudioSessionMapping for usage and error information.
  1867  //
  1868  // Returned Error Types:
  1869  //   * InternalServerError
  1870  //   Indicates that an error occurred while processing the request and that the
  1871  //   request was not completed.
  1872  //
  1873  //   * InvalidRequestException
  1874  //   This exception occurs when there is something wrong with user input.
  1875  //
  1876  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
  1877  func (c *EMR) GetStudioSessionMapping(input *GetStudioSessionMappingInput) (*GetStudioSessionMappingOutput, error) {
  1878  	req, out := c.GetStudioSessionMappingRequest(input)
  1879  	return out, req.Send()
  1880  }
  1881  
  1882  // GetStudioSessionMappingWithContext is the same as GetStudioSessionMapping with the addition of
  1883  // the ability to pass a context and additional request options.
  1884  //
  1885  // See GetStudioSessionMapping for details on how to use this API operation.
  1886  //
  1887  // The context must be non-nil and will be used for request cancellation. If
  1888  // the context is nil a panic will occur. In the future the SDK may create
  1889  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1890  // for more information on using Contexts.
  1891  func (c *EMR) GetStudioSessionMappingWithContext(ctx aws.Context, input *GetStudioSessionMappingInput, opts ...request.Option) (*GetStudioSessionMappingOutput, error) {
  1892  	req, out := c.GetStudioSessionMappingRequest(input)
  1893  	req.SetContext(ctx)
  1894  	req.ApplyOptions(opts...)
  1895  	return out, req.Send()
  1896  }
  1897  
  1898  const opListBootstrapActions = "ListBootstrapActions"
  1899  
  1900  // ListBootstrapActionsRequest generates a "aws/request.Request" representing the
  1901  // client's request for the ListBootstrapActions operation. The "output" return
  1902  // value will be populated with the request's response once the request completes
  1903  // successfully.
  1904  //
  1905  // Use "Send" method on the returned Request to send the API call to the service.
  1906  // the "output" return value is not valid until after Send returns without error.
  1907  //
  1908  // See ListBootstrapActions for more information on using the ListBootstrapActions
  1909  // API call, and error handling.
  1910  //
  1911  // This method is useful when you want to inject custom logic or configuration
  1912  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1913  //
  1914  //
  1915  //    // Example sending a request using the ListBootstrapActionsRequest method.
  1916  //    req, resp := client.ListBootstrapActionsRequest(params)
  1917  //
  1918  //    err := req.Send()
  1919  //    if err == nil { // resp is now filled
  1920  //        fmt.Println(resp)
  1921  //    }
  1922  //
  1923  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
  1924  func (c *EMR) ListBootstrapActionsRequest(input *ListBootstrapActionsInput) (req *request.Request, output *ListBootstrapActionsOutput) {
  1925  	op := &request.Operation{
  1926  		Name:       opListBootstrapActions,
  1927  		HTTPMethod: "POST",
  1928  		HTTPPath:   "/",
  1929  		Paginator: &request.Paginator{
  1930  			InputTokens:     []string{"Marker"},
  1931  			OutputTokens:    []string{"Marker"},
  1932  			LimitToken:      "",
  1933  			TruncationToken: "",
  1934  		},
  1935  	}
  1936  
  1937  	if input == nil {
  1938  		input = &ListBootstrapActionsInput{}
  1939  	}
  1940  
  1941  	output = &ListBootstrapActionsOutput{}
  1942  	req = c.newRequest(op, input, output)
  1943  	return
  1944  }
  1945  
  1946  // ListBootstrapActions API operation for Amazon EMR.
  1947  //
  1948  // Provides information about the bootstrap actions associated with a cluster.
  1949  //
  1950  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1951  // with awserr.Error's Code and Message methods to get detailed information about
  1952  // the error.
  1953  //
  1954  // See the AWS API reference guide for Amazon EMR's
  1955  // API operation ListBootstrapActions for usage and error information.
  1956  //
  1957  // Returned Error Types:
  1958  //   * InternalServerException
  1959  //   This exception occurs when there is an internal failure in the Amazon EMR
  1960  //   service.
  1961  //
  1962  //   * InvalidRequestException
  1963  //   This exception occurs when there is something wrong with user input.
  1964  //
  1965  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
  1966  func (c *EMR) ListBootstrapActions(input *ListBootstrapActionsInput) (*ListBootstrapActionsOutput, error) {
  1967  	req, out := c.ListBootstrapActionsRequest(input)
  1968  	return out, req.Send()
  1969  }
  1970  
  1971  // ListBootstrapActionsWithContext is the same as ListBootstrapActions with the addition of
  1972  // the ability to pass a context and additional request options.
  1973  //
  1974  // See ListBootstrapActions for details on how to use this API operation.
  1975  //
  1976  // The context must be non-nil and will be used for request cancellation. If
  1977  // the context is nil a panic will occur. In the future the SDK may create
  1978  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1979  // for more information on using Contexts.
  1980  func (c *EMR) ListBootstrapActionsWithContext(ctx aws.Context, input *ListBootstrapActionsInput, opts ...request.Option) (*ListBootstrapActionsOutput, error) {
  1981  	req, out := c.ListBootstrapActionsRequest(input)
  1982  	req.SetContext(ctx)
  1983  	req.ApplyOptions(opts...)
  1984  	return out, req.Send()
  1985  }
  1986  
  1987  // ListBootstrapActionsPages iterates over the pages of a ListBootstrapActions operation,
  1988  // calling the "fn" function with the response data for each page. To stop
  1989  // iterating, return false from the fn function.
  1990  //
  1991  // See ListBootstrapActions method for more information on how to use this operation.
  1992  //
  1993  // Note: This operation can generate multiple requests to a service.
  1994  //
  1995  //    // Example iterating over at most 3 pages of a ListBootstrapActions operation.
  1996  //    pageNum := 0
  1997  //    err := client.ListBootstrapActionsPages(params,
  1998  //        func(page *emr.ListBootstrapActionsOutput, lastPage bool) bool {
  1999  //            pageNum++
  2000  //            fmt.Println(page)
  2001  //            return pageNum <= 3
  2002  //        })
  2003  //
  2004  func (c *EMR) ListBootstrapActionsPages(input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool) error {
  2005  	return c.ListBootstrapActionsPagesWithContext(aws.BackgroundContext(), input, fn)
  2006  }
  2007  
  2008  // ListBootstrapActionsPagesWithContext same as ListBootstrapActionsPages except
  2009  // it takes a Context and allows setting request options on the pages.
  2010  //
  2011  // The context must be non-nil and will be used for request cancellation. If
  2012  // the context is nil a panic will occur. In the future the SDK may create
  2013  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2014  // for more information on using Contexts.
  2015  func (c *EMR) ListBootstrapActionsPagesWithContext(ctx aws.Context, input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool, opts ...request.Option) error {
  2016  	p := request.Pagination{
  2017  		NewRequest: func() (*request.Request, error) {
  2018  			var inCpy *ListBootstrapActionsInput
  2019  			if input != nil {
  2020  				tmp := *input
  2021  				inCpy = &tmp
  2022  			}
  2023  			req, _ := c.ListBootstrapActionsRequest(inCpy)
  2024  			req.SetContext(ctx)
  2025  			req.ApplyOptions(opts...)
  2026  			return req, nil
  2027  		},
  2028  	}
  2029  
  2030  	for p.Next() {
  2031  		if !fn(p.Page().(*ListBootstrapActionsOutput), !p.HasNextPage()) {
  2032  			break
  2033  		}
  2034  	}
  2035  
  2036  	return p.Err()
  2037  }
  2038  
  2039  const opListClusters = "ListClusters"
  2040  
  2041  // ListClustersRequest generates a "aws/request.Request" representing the
  2042  // client's request for the ListClusters operation. The "output" return
  2043  // value will be populated with the request's response once the request completes
  2044  // successfully.
  2045  //
  2046  // Use "Send" method on the returned Request to send the API call to the service.
  2047  // the "output" return value is not valid until after Send returns without error.
  2048  //
  2049  // See ListClusters for more information on using the ListClusters
  2050  // API call, and error handling.
  2051  //
  2052  // This method is useful when you want to inject custom logic or configuration
  2053  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2054  //
  2055  //
  2056  //    // Example sending a request using the ListClustersRequest method.
  2057  //    req, resp := client.ListClustersRequest(params)
  2058  //
  2059  //    err := req.Send()
  2060  //    if err == nil { // resp is now filled
  2061  //        fmt.Println(resp)
  2062  //    }
  2063  //
  2064  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
  2065  func (c *EMR) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
  2066  	op := &request.Operation{
  2067  		Name:       opListClusters,
  2068  		HTTPMethod: "POST",
  2069  		HTTPPath:   "/",
  2070  		Paginator: &request.Paginator{
  2071  			InputTokens:     []string{"Marker"},
  2072  			OutputTokens:    []string{"Marker"},
  2073  			LimitToken:      "",
  2074  			TruncationToken: "",
  2075  		},
  2076  	}
  2077  
  2078  	if input == nil {
  2079  		input = &ListClustersInput{}
  2080  	}
  2081  
  2082  	output = &ListClustersOutput{}
  2083  	req = c.newRequest(op, input, output)
  2084  	return
  2085  }
  2086  
  2087  // ListClusters API operation for Amazon EMR.
  2088  //
  2089  // Provides the status of all clusters visible to this Amazon Web Services account.
  2090  // Allows you to filter the list of clusters based on certain criteria; for
  2091  // example, filtering by cluster creation date and time or by status. This call
  2092  // returns a maximum of 50 clusters in unsorted order per call, but returns
  2093  // a marker to track the paging of the cluster list across multiple ListClusters
  2094  // calls.
  2095  //
  2096  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2097  // with awserr.Error's Code and Message methods to get detailed information about
  2098  // the error.
  2099  //
  2100  // See the AWS API reference guide for Amazon EMR's
  2101  // API operation ListClusters for usage and error information.
  2102  //
  2103  // Returned Error Types:
  2104  //   * InternalServerException
  2105  //   This exception occurs when there is an internal failure in the Amazon EMR
  2106  //   service.
  2107  //
  2108  //   * InvalidRequestException
  2109  //   This exception occurs when there is something wrong with user input.
  2110  //
  2111  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
  2112  func (c *EMR) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
  2113  	req, out := c.ListClustersRequest(input)
  2114  	return out, req.Send()
  2115  }
  2116  
  2117  // ListClustersWithContext is the same as ListClusters with the addition of
  2118  // the ability to pass a context and additional request options.
  2119  //
  2120  // See ListClusters for details on how to use this API operation.
  2121  //
  2122  // The context must be non-nil and will be used for request cancellation. If
  2123  // the context is nil a panic will occur. In the future the SDK may create
  2124  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2125  // for more information on using Contexts.
  2126  func (c *EMR) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
  2127  	req, out := c.ListClustersRequest(input)
  2128  	req.SetContext(ctx)
  2129  	req.ApplyOptions(opts...)
  2130  	return out, req.Send()
  2131  }
  2132  
  2133  // ListClustersPages iterates over the pages of a ListClusters operation,
  2134  // calling the "fn" function with the response data for each page. To stop
  2135  // iterating, return false from the fn function.
  2136  //
  2137  // See ListClusters method for more information on how to use this operation.
  2138  //
  2139  // Note: This operation can generate multiple requests to a service.
  2140  //
  2141  //    // Example iterating over at most 3 pages of a ListClusters operation.
  2142  //    pageNum := 0
  2143  //    err := client.ListClustersPages(params,
  2144  //        func(page *emr.ListClustersOutput, lastPage bool) bool {
  2145  //            pageNum++
  2146  //            fmt.Println(page)
  2147  //            return pageNum <= 3
  2148  //        })
  2149  //
  2150  func (c *EMR) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
  2151  	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
  2152  }
  2153  
  2154  // ListClustersPagesWithContext same as ListClustersPages except
  2155  // it takes a Context and allows setting request options on the pages.
  2156  //
  2157  // The context must be non-nil and will be used for request cancellation. If
  2158  // the context is nil a panic will occur. In the future the SDK may create
  2159  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2160  // for more information on using Contexts.
  2161  func (c *EMR) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
  2162  	p := request.Pagination{
  2163  		NewRequest: func() (*request.Request, error) {
  2164  			var inCpy *ListClustersInput
  2165  			if input != nil {
  2166  				tmp := *input
  2167  				inCpy = &tmp
  2168  			}
  2169  			req, _ := c.ListClustersRequest(inCpy)
  2170  			req.SetContext(ctx)
  2171  			req.ApplyOptions(opts...)
  2172  			return req, nil
  2173  		},
  2174  	}
  2175  
  2176  	for p.Next() {
  2177  		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
  2178  			break
  2179  		}
  2180  	}
  2181  
  2182  	return p.Err()
  2183  }
  2184  
  2185  const opListInstanceFleets = "ListInstanceFleets"
  2186  
  2187  // ListInstanceFleetsRequest generates a "aws/request.Request" representing the
  2188  // client's request for the ListInstanceFleets operation. The "output" return
  2189  // value will be populated with the request's response once the request completes
  2190  // successfully.
  2191  //
  2192  // Use "Send" method on the returned Request to send the API call to the service.
  2193  // the "output" return value is not valid until after Send returns without error.
  2194  //
  2195  // See ListInstanceFleets for more information on using the ListInstanceFleets
  2196  // API call, and error handling.
  2197  //
  2198  // This method is useful when you want to inject custom logic or configuration
  2199  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2200  //
  2201  //
  2202  //    // Example sending a request using the ListInstanceFleetsRequest method.
  2203  //    req, resp := client.ListInstanceFleetsRequest(params)
  2204  //
  2205  //    err := req.Send()
  2206  //    if err == nil { // resp is now filled
  2207  //        fmt.Println(resp)
  2208  //    }
  2209  //
  2210  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
  2211  func (c *EMR) ListInstanceFleetsRequest(input *ListInstanceFleetsInput) (req *request.Request, output *ListInstanceFleetsOutput) {
  2212  	op := &request.Operation{
  2213  		Name:       opListInstanceFleets,
  2214  		HTTPMethod: "POST",
  2215  		HTTPPath:   "/",
  2216  		Paginator: &request.Paginator{
  2217  			InputTokens:     []string{"Marker"},
  2218  			OutputTokens:    []string{"Marker"},
  2219  			LimitToken:      "",
  2220  			TruncationToken: "",
  2221  		},
  2222  	}
  2223  
  2224  	if input == nil {
  2225  		input = &ListInstanceFleetsInput{}
  2226  	}
  2227  
  2228  	output = &ListInstanceFleetsOutput{}
  2229  	req = c.newRequest(op, input, output)
  2230  	return
  2231  }
  2232  
  2233  // ListInstanceFleets API operation for Amazon EMR.
  2234  //
  2235  // Lists all available details about the instance fleets in a cluster.
  2236  //
  2237  // The instance fleet configuration is available only in Amazon EMR versions
  2238  // 4.8.0 and later, excluding 5.0.x versions.
  2239  //
  2240  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2241  // with awserr.Error's Code and Message methods to get detailed information about
  2242  // the error.
  2243  //
  2244  // See the AWS API reference guide for Amazon EMR's
  2245  // API operation ListInstanceFleets for usage and error information.
  2246  //
  2247  // Returned Error Types:
  2248  //   * InternalServerException
  2249  //   This exception occurs when there is an internal failure in the Amazon EMR
  2250  //   service.
  2251  //
  2252  //   * InvalidRequestException
  2253  //   This exception occurs when there is something wrong with user input.
  2254  //
  2255  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
  2256  func (c *EMR) ListInstanceFleets(input *ListInstanceFleetsInput) (*ListInstanceFleetsOutput, error) {
  2257  	req, out := c.ListInstanceFleetsRequest(input)
  2258  	return out, req.Send()
  2259  }
  2260  
  2261  // ListInstanceFleetsWithContext is the same as ListInstanceFleets with the addition of
  2262  // the ability to pass a context and additional request options.
  2263  //
  2264  // See ListInstanceFleets for details on how to use this API operation.
  2265  //
  2266  // The context must be non-nil and will be used for request cancellation. If
  2267  // the context is nil a panic will occur. In the future the SDK may create
  2268  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2269  // for more information on using Contexts.
  2270  func (c *EMR) ListInstanceFleetsWithContext(ctx aws.Context, input *ListInstanceFleetsInput, opts ...request.Option) (*ListInstanceFleetsOutput, error) {
  2271  	req, out := c.ListInstanceFleetsRequest(input)
  2272  	req.SetContext(ctx)
  2273  	req.ApplyOptions(opts...)
  2274  	return out, req.Send()
  2275  }
  2276  
  2277  // ListInstanceFleetsPages iterates over the pages of a ListInstanceFleets operation,
  2278  // calling the "fn" function with the response data for each page. To stop
  2279  // iterating, return false from the fn function.
  2280  //
  2281  // See ListInstanceFleets method for more information on how to use this operation.
  2282  //
  2283  // Note: This operation can generate multiple requests to a service.
  2284  //
  2285  //    // Example iterating over at most 3 pages of a ListInstanceFleets operation.
  2286  //    pageNum := 0
  2287  //    err := client.ListInstanceFleetsPages(params,
  2288  //        func(page *emr.ListInstanceFleetsOutput, lastPage bool) bool {
  2289  //            pageNum++
  2290  //            fmt.Println(page)
  2291  //            return pageNum <= 3
  2292  //        })
  2293  //
  2294  func (c *EMR) ListInstanceFleetsPages(input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool) error {
  2295  	return c.ListInstanceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
  2296  }
  2297  
  2298  // ListInstanceFleetsPagesWithContext same as ListInstanceFleetsPages except
  2299  // it takes a Context and allows setting request options on the pages.
  2300  //
  2301  // The context must be non-nil and will be used for request cancellation. If
  2302  // the context is nil a panic will occur. In the future the SDK may create
  2303  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2304  // for more information on using Contexts.
  2305  func (c *EMR) ListInstanceFleetsPagesWithContext(ctx aws.Context, input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool, opts ...request.Option) error {
  2306  	p := request.Pagination{
  2307  		NewRequest: func() (*request.Request, error) {
  2308  			var inCpy *ListInstanceFleetsInput
  2309  			if input != nil {
  2310  				tmp := *input
  2311  				inCpy = &tmp
  2312  			}
  2313  			req, _ := c.ListInstanceFleetsRequest(inCpy)
  2314  			req.SetContext(ctx)
  2315  			req.ApplyOptions(opts...)
  2316  			return req, nil
  2317  		},
  2318  	}
  2319  
  2320  	for p.Next() {
  2321  		if !fn(p.Page().(*ListInstanceFleetsOutput), !p.HasNextPage()) {
  2322  			break
  2323  		}
  2324  	}
  2325  
  2326  	return p.Err()
  2327  }
  2328  
  2329  const opListInstanceGroups = "ListInstanceGroups"
  2330  
  2331  // ListInstanceGroupsRequest generates a "aws/request.Request" representing the
  2332  // client's request for the ListInstanceGroups operation. The "output" return
  2333  // value will be populated with the request's response once the request completes
  2334  // successfully.
  2335  //
  2336  // Use "Send" method on the returned Request to send the API call to the service.
  2337  // the "output" return value is not valid until after Send returns without error.
  2338  //
  2339  // See ListInstanceGroups for more information on using the ListInstanceGroups
  2340  // API call, and error handling.
  2341  //
  2342  // This method is useful when you want to inject custom logic or configuration
  2343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2344  //
  2345  //
  2346  //    // Example sending a request using the ListInstanceGroupsRequest method.
  2347  //    req, resp := client.ListInstanceGroupsRequest(params)
  2348  //
  2349  //    err := req.Send()
  2350  //    if err == nil { // resp is now filled
  2351  //        fmt.Println(resp)
  2352  //    }
  2353  //
  2354  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
  2355  func (c *EMR) ListInstanceGroupsRequest(input *ListInstanceGroupsInput) (req *request.Request, output *ListInstanceGroupsOutput) {
  2356  	op := &request.Operation{
  2357  		Name:       opListInstanceGroups,
  2358  		HTTPMethod: "POST",
  2359  		HTTPPath:   "/",
  2360  		Paginator: &request.Paginator{
  2361  			InputTokens:     []string{"Marker"},
  2362  			OutputTokens:    []string{"Marker"},
  2363  			LimitToken:      "",
  2364  			TruncationToken: "",
  2365  		},
  2366  	}
  2367  
  2368  	if input == nil {
  2369  		input = &ListInstanceGroupsInput{}
  2370  	}
  2371  
  2372  	output = &ListInstanceGroupsOutput{}
  2373  	req = c.newRequest(op, input, output)
  2374  	return
  2375  }
  2376  
  2377  // ListInstanceGroups API operation for Amazon EMR.
  2378  //
  2379  // Provides all available details about the instance groups in a cluster.
  2380  //
  2381  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2382  // with awserr.Error's Code and Message methods to get detailed information about
  2383  // the error.
  2384  //
  2385  // See the AWS API reference guide for Amazon EMR's
  2386  // API operation ListInstanceGroups for usage and error information.
  2387  //
  2388  // Returned Error Types:
  2389  //   * InternalServerException
  2390  //   This exception occurs when there is an internal failure in the Amazon EMR
  2391  //   service.
  2392  //
  2393  //   * InvalidRequestException
  2394  //   This exception occurs when there is something wrong with user input.
  2395  //
  2396  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
  2397  func (c *EMR) ListInstanceGroups(input *ListInstanceGroupsInput) (*ListInstanceGroupsOutput, error) {
  2398  	req, out := c.ListInstanceGroupsRequest(input)
  2399  	return out, req.Send()
  2400  }
  2401  
  2402  // ListInstanceGroupsWithContext is the same as ListInstanceGroups with the addition of
  2403  // the ability to pass a context and additional request options.
  2404  //
  2405  // See ListInstanceGroups for details on how to use this API operation.
  2406  //
  2407  // The context must be non-nil and will be used for request cancellation. If
  2408  // the context is nil a panic will occur. In the future the SDK may create
  2409  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2410  // for more information on using Contexts.
  2411  func (c *EMR) ListInstanceGroupsWithContext(ctx aws.Context, input *ListInstanceGroupsInput, opts ...request.Option) (*ListInstanceGroupsOutput, error) {
  2412  	req, out := c.ListInstanceGroupsRequest(input)
  2413  	req.SetContext(ctx)
  2414  	req.ApplyOptions(opts...)
  2415  	return out, req.Send()
  2416  }
  2417  
  2418  // ListInstanceGroupsPages iterates over the pages of a ListInstanceGroups operation,
  2419  // calling the "fn" function with the response data for each page. To stop
  2420  // iterating, return false from the fn function.
  2421  //
  2422  // See ListInstanceGroups method for more information on how to use this operation.
  2423  //
  2424  // Note: This operation can generate multiple requests to a service.
  2425  //
  2426  //    // Example iterating over at most 3 pages of a ListInstanceGroups operation.
  2427  //    pageNum := 0
  2428  //    err := client.ListInstanceGroupsPages(params,
  2429  //        func(page *emr.ListInstanceGroupsOutput, lastPage bool) bool {
  2430  //            pageNum++
  2431  //            fmt.Println(page)
  2432  //            return pageNum <= 3
  2433  //        })
  2434  //
  2435  func (c *EMR) ListInstanceGroupsPages(input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool) error {
  2436  	return c.ListInstanceGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
  2437  }
  2438  
  2439  // ListInstanceGroupsPagesWithContext same as ListInstanceGroupsPages except
  2440  // it takes a Context and allows setting request options on the pages.
  2441  //
  2442  // The context must be non-nil and will be used for request cancellation. If
  2443  // the context is nil a panic will occur. In the future the SDK may create
  2444  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2445  // for more information on using Contexts.
  2446  func (c *EMR) ListInstanceGroupsPagesWithContext(ctx aws.Context, input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool, opts ...request.Option) error {
  2447  	p := request.Pagination{
  2448  		NewRequest: func() (*request.Request, error) {
  2449  			var inCpy *ListInstanceGroupsInput
  2450  			if input != nil {
  2451  				tmp := *input
  2452  				inCpy = &tmp
  2453  			}
  2454  			req, _ := c.ListInstanceGroupsRequest(inCpy)
  2455  			req.SetContext(ctx)
  2456  			req.ApplyOptions(opts...)
  2457  			return req, nil
  2458  		},
  2459  	}
  2460  
  2461  	for p.Next() {
  2462  		if !fn(p.Page().(*ListInstanceGroupsOutput), !p.HasNextPage()) {
  2463  			break
  2464  		}
  2465  	}
  2466  
  2467  	return p.Err()
  2468  }
  2469  
  2470  const opListInstances = "ListInstances"
  2471  
  2472  // ListInstancesRequest generates a "aws/request.Request" representing the
  2473  // client's request for the ListInstances operation. The "output" return
  2474  // value will be populated with the request's response once the request completes
  2475  // successfully.
  2476  //
  2477  // Use "Send" method on the returned Request to send the API call to the service.
  2478  // the "output" return value is not valid until after Send returns without error.
  2479  //
  2480  // See ListInstances for more information on using the ListInstances
  2481  // API call, and error handling.
  2482  //
  2483  // This method is useful when you want to inject custom logic or configuration
  2484  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2485  //
  2486  //
  2487  //    // Example sending a request using the ListInstancesRequest method.
  2488  //    req, resp := client.ListInstancesRequest(params)
  2489  //
  2490  //    err := req.Send()
  2491  //    if err == nil { // resp is now filled
  2492  //        fmt.Println(resp)
  2493  //    }
  2494  //
  2495  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
  2496  func (c *EMR) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
  2497  	op := &request.Operation{
  2498  		Name:       opListInstances,
  2499  		HTTPMethod: "POST",
  2500  		HTTPPath:   "/",
  2501  		Paginator: &request.Paginator{
  2502  			InputTokens:     []string{"Marker"},
  2503  			OutputTokens:    []string{"Marker"},
  2504  			LimitToken:      "",
  2505  			TruncationToken: "",
  2506  		},
  2507  	}
  2508  
  2509  	if input == nil {
  2510  		input = &ListInstancesInput{}
  2511  	}
  2512  
  2513  	output = &ListInstancesOutput{}
  2514  	req = c.newRequest(op, input, output)
  2515  	return
  2516  }
  2517  
  2518  // ListInstances API operation for Amazon EMR.
  2519  //
  2520  // Provides information for all active EC2 instances and EC2 instances terminated
  2521  // in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the
  2522  // following states are considered active: AWAITING_FULFILLMENT, PROVISIONING,
  2523  // BOOTSTRAPPING, RUNNING.
  2524  //
  2525  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2526  // with awserr.Error's Code and Message methods to get detailed information about
  2527  // the error.
  2528  //
  2529  // See the AWS API reference guide for Amazon EMR's
  2530  // API operation ListInstances for usage and error information.
  2531  //
  2532  // Returned Error Types:
  2533  //   * InternalServerException
  2534  //   This exception occurs when there is an internal failure in the Amazon EMR
  2535  //   service.
  2536  //
  2537  //   * InvalidRequestException
  2538  //   This exception occurs when there is something wrong with user input.
  2539  //
  2540  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
  2541  func (c *EMR) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
  2542  	req, out := c.ListInstancesRequest(input)
  2543  	return out, req.Send()
  2544  }
  2545  
  2546  // ListInstancesWithContext is the same as ListInstances with the addition of
  2547  // the ability to pass a context and additional request options.
  2548  //
  2549  // See ListInstances for details on how to use this API operation.
  2550  //
  2551  // The context must be non-nil and will be used for request cancellation. If
  2552  // the context is nil a panic will occur. In the future the SDK may create
  2553  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2554  // for more information on using Contexts.
  2555  func (c *EMR) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
  2556  	req, out := c.ListInstancesRequest(input)
  2557  	req.SetContext(ctx)
  2558  	req.ApplyOptions(opts...)
  2559  	return out, req.Send()
  2560  }
  2561  
  2562  // ListInstancesPages iterates over the pages of a ListInstances operation,
  2563  // calling the "fn" function with the response data for each page. To stop
  2564  // iterating, return false from the fn function.
  2565  //
  2566  // See ListInstances method for more information on how to use this operation.
  2567  //
  2568  // Note: This operation can generate multiple requests to a service.
  2569  //
  2570  //    // Example iterating over at most 3 pages of a ListInstances operation.
  2571  //    pageNum := 0
  2572  //    err := client.ListInstancesPages(params,
  2573  //        func(page *emr.ListInstancesOutput, lastPage bool) bool {
  2574  //            pageNum++
  2575  //            fmt.Println(page)
  2576  //            return pageNum <= 3
  2577  //        })
  2578  //
  2579  func (c *EMR) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
  2580  	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
  2581  }
  2582  
  2583  // ListInstancesPagesWithContext same as ListInstancesPages except
  2584  // it takes a Context and allows setting request options on the pages.
  2585  //
  2586  // The context must be non-nil and will be used for request cancellation. If
  2587  // the context is nil a panic will occur. In the future the SDK may create
  2588  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2589  // for more information on using Contexts.
  2590  func (c *EMR) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
  2591  	p := request.Pagination{
  2592  		NewRequest: func() (*request.Request, error) {
  2593  			var inCpy *ListInstancesInput
  2594  			if input != nil {
  2595  				tmp := *input
  2596  				inCpy = &tmp
  2597  			}
  2598  			req, _ := c.ListInstancesRequest(inCpy)
  2599  			req.SetContext(ctx)
  2600  			req.ApplyOptions(opts...)
  2601  			return req, nil
  2602  		},
  2603  	}
  2604  
  2605  	for p.Next() {
  2606  		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
  2607  			break
  2608  		}
  2609  	}
  2610  
  2611  	return p.Err()
  2612  }
  2613  
  2614  const opListNotebookExecutions = "ListNotebookExecutions"
  2615  
  2616  // ListNotebookExecutionsRequest generates a "aws/request.Request" representing the
  2617  // client's request for the ListNotebookExecutions operation. The "output" return
  2618  // value will be populated with the request's response once the request completes
  2619  // successfully.
  2620  //
  2621  // Use "Send" method on the returned Request to send the API call to the service.
  2622  // the "output" return value is not valid until after Send returns without error.
  2623  //
  2624  // See ListNotebookExecutions for more information on using the ListNotebookExecutions
  2625  // API call, and error handling.
  2626  //
  2627  // This method is useful when you want to inject custom logic or configuration
  2628  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2629  //
  2630  //
  2631  //    // Example sending a request using the ListNotebookExecutionsRequest method.
  2632  //    req, resp := client.ListNotebookExecutionsRequest(params)
  2633  //
  2634  //    err := req.Send()
  2635  //    if err == nil { // resp is now filled
  2636  //        fmt.Println(resp)
  2637  //    }
  2638  //
  2639  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
  2640  func (c *EMR) ListNotebookExecutionsRequest(input *ListNotebookExecutionsInput) (req *request.Request, output *ListNotebookExecutionsOutput) {
  2641  	op := &request.Operation{
  2642  		Name:       opListNotebookExecutions,
  2643  		HTTPMethod: "POST",
  2644  		HTTPPath:   "/",
  2645  		Paginator: &request.Paginator{
  2646  			InputTokens:     []string{"Marker"},
  2647  			OutputTokens:    []string{"Marker"},
  2648  			LimitToken:      "",
  2649  			TruncationToken: "",
  2650  		},
  2651  	}
  2652  
  2653  	if input == nil {
  2654  		input = &ListNotebookExecutionsInput{}
  2655  	}
  2656  
  2657  	output = &ListNotebookExecutionsOutput{}
  2658  	req = c.newRequest(op, input, output)
  2659  	return
  2660  }
  2661  
  2662  // ListNotebookExecutions API operation for Amazon EMR.
  2663  //
  2664  // Provides summaries of all notebook executions. You can filter the list based
  2665  // on multiple criteria such as status, time range, and editor id. Returns a
  2666  // maximum of 50 notebook executions and a marker to track the paging of a longer
  2667  // notebook execution list across multiple ListNotebookExecution calls.
  2668  //
  2669  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2670  // with awserr.Error's Code and Message methods to get detailed information about
  2671  // the error.
  2672  //
  2673  // See the AWS API reference guide for Amazon EMR's
  2674  // API operation ListNotebookExecutions for usage and error information.
  2675  //
  2676  // Returned Error Types:
  2677  //   * InternalServerError
  2678  //   Indicates that an error occurred while processing the request and that the
  2679  //   request was not completed.
  2680  //
  2681  //   * InvalidRequestException
  2682  //   This exception occurs when there is something wrong with user input.
  2683  //
  2684  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
  2685  func (c *EMR) ListNotebookExecutions(input *ListNotebookExecutionsInput) (*ListNotebookExecutionsOutput, error) {
  2686  	req, out := c.ListNotebookExecutionsRequest(input)
  2687  	return out, req.Send()
  2688  }
  2689  
  2690  // ListNotebookExecutionsWithContext is the same as ListNotebookExecutions with the addition of
  2691  // the ability to pass a context and additional request options.
  2692  //
  2693  // See ListNotebookExecutions for details on how to use this API operation.
  2694  //
  2695  // The context must be non-nil and will be used for request cancellation. If
  2696  // the context is nil a panic will occur. In the future the SDK may create
  2697  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2698  // for more information on using Contexts.
  2699  func (c *EMR) ListNotebookExecutionsWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, opts ...request.Option) (*ListNotebookExecutionsOutput, error) {
  2700  	req, out := c.ListNotebookExecutionsRequest(input)
  2701  	req.SetContext(ctx)
  2702  	req.ApplyOptions(opts...)
  2703  	return out, req.Send()
  2704  }
  2705  
  2706  // ListNotebookExecutionsPages iterates over the pages of a ListNotebookExecutions operation,
  2707  // calling the "fn" function with the response data for each page. To stop
  2708  // iterating, return false from the fn function.
  2709  //
  2710  // See ListNotebookExecutions method for more information on how to use this operation.
  2711  //
  2712  // Note: This operation can generate multiple requests to a service.
  2713  //
  2714  //    // Example iterating over at most 3 pages of a ListNotebookExecutions operation.
  2715  //    pageNum := 0
  2716  //    err := client.ListNotebookExecutionsPages(params,
  2717  //        func(page *emr.ListNotebookExecutionsOutput, lastPage bool) bool {
  2718  //            pageNum++
  2719  //            fmt.Println(page)
  2720  //            return pageNum <= 3
  2721  //        })
  2722  //
  2723  func (c *EMR) ListNotebookExecutionsPages(input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool) error {
  2724  	return c.ListNotebookExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
  2725  }
  2726  
  2727  // ListNotebookExecutionsPagesWithContext same as ListNotebookExecutionsPages except
  2728  // it takes a Context and allows setting request options on the pages.
  2729  //
  2730  // The context must be non-nil and will be used for request cancellation. If
  2731  // the context is nil a panic will occur. In the future the SDK may create
  2732  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2733  // for more information on using Contexts.
  2734  func (c *EMR) ListNotebookExecutionsPagesWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool, opts ...request.Option) error {
  2735  	p := request.Pagination{
  2736  		NewRequest: func() (*request.Request, error) {
  2737  			var inCpy *ListNotebookExecutionsInput
  2738  			if input != nil {
  2739  				tmp := *input
  2740  				inCpy = &tmp
  2741  			}
  2742  			req, _ := c.ListNotebookExecutionsRequest(inCpy)
  2743  			req.SetContext(ctx)
  2744  			req.ApplyOptions(opts...)
  2745  			return req, nil
  2746  		},
  2747  	}
  2748  
  2749  	for p.Next() {
  2750  		if !fn(p.Page().(*ListNotebookExecutionsOutput), !p.HasNextPage()) {
  2751  			break
  2752  		}
  2753  	}
  2754  
  2755  	return p.Err()
  2756  }
  2757  
  2758  const opListReleaseLabels = "ListReleaseLabels"
  2759  
  2760  // ListReleaseLabelsRequest generates a "aws/request.Request" representing the
  2761  // client's request for the ListReleaseLabels operation. The "output" return
  2762  // value will be populated with the request's response once the request completes
  2763  // successfully.
  2764  //
  2765  // Use "Send" method on the returned Request to send the API call to the service.
  2766  // the "output" return value is not valid until after Send returns without error.
  2767  //
  2768  // See ListReleaseLabels for more information on using the ListReleaseLabels
  2769  // API call, and error handling.
  2770  //
  2771  // This method is useful when you want to inject custom logic or configuration
  2772  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2773  //
  2774  //
  2775  //    // Example sending a request using the ListReleaseLabelsRequest method.
  2776  //    req, resp := client.ListReleaseLabelsRequest(params)
  2777  //
  2778  //    err := req.Send()
  2779  //    if err == nil { // resp is now filled
  2780  //        fmt.Println(resp)
  2781  //    }
  2782  //
  2783  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListReleaseLabels
  2784  func (c *EMR) ListReleaseLabelsRequest(input *ListReleaseLabelsInput) (req *request.Request, output *ListReleaseLabelsOutput) {
  2785  	op := &request.Operation{
  2786  		Name:       opListReleaseLabels,
  2787  		HTTPMethod: "POST",
  2788  		HTTPPath:   "/",
  2789  		Paginator: &request.Paginator{
  2790  			InputTokens:     []string{"NextToken"},
  2791  			OutputTokens:    []string{"NextToken"},
  2792  			LimitToken:      "MaxResults",
  2793  			TruncationToken: "",
  2794  		},
  2795  	}
  2796  
  2797  	if input == nil {
  2798  		input = &ListReleaseLabelsInput{}
  2799  	}
  2800  
  2801  	output = &ListReleaseLabelsOutput{}
  2802  	req = c.newRequest(op, input, output)
  2803  	return
  2804  }
  2805  
  2806  // ListReleaseLabels API operation for Amazon EMR.
  2807  //
  2808  // Retrieves release labels of EMR services in the region where the API is called.
  2809  //
  2810  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2811  // with awserr.Error's Code and Message methods to get detailed information about
  2812  // the error.
  2813  //
  2814  // See the AWS API reference guide for Amazon EMR's
  2815  // API operation ListReleaseLabels for usage and error information.
  2816  //
  2817  // Returned Error Types:
  2818  //   * InternalServerException
  2819  //   This exception occurs when there is an internal failure in the Amazon EMR
  2820  //   service.
  2821  //
  2822  //   * InvalidRequestException
  2823  //   This exception occurs when there is something wrong with user input.
  2824  //
  2825  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListReleaseLabels
  2826  func (c *EMR) ListReleaseLabels(input *ListReleaseLabelsInput) (*ListReleaseLabelsOutput, error) {
  2827  	req, out := c.ListReleaseLabelsRequest(input)
  2828  	return out, req.Send()
  2829  }
  2830  
  2831  // ListReleaseLabelsWithContext is the same as ListReleaseLabels with the addition of
  2832  // the ability to pass a context and additional request options.
  2833  //
  2834  // See ListReleaseLabels for details on how to use this API operation.
  2835  //
  2836  // The context must be non-nil and will be used for request cancellation. If
  2837  // the context is nil a panic will occur. In the future the SDK may create
  2838  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2839  // for more information on using Contexts.
  2840  func (c *EMR) ListReleaseLabelsWithContext(ctx aws.Context, input *ListReleaseLabelsInput, opts ...request.Option) (*ListReleaseLabelsOutput, error) {
  2841  	req, out := c.ListReleaseLabelsRequest(input)
  2842  	req.SetContext(ctx)
  2843  	req.ApplyOptions(opts...)
  2844  	return out, req.Send()
  2845  }
  2846  
  2847  // ListReleaseLabelsPages iterates over the pages of a ListReleaseLabels operation,
  2848  // calling the "fn" function with the response data for each page. To stop
  2849  // iterating, return false from the fn function.
  2850  //
  2851  // See ListReleaseLabels method for more information on how to use this operation.
  2852  //
  2853  // Note: This operation can generate multiple requests to a service.
  2854  //
  2855  //    // Example iterating over at most 3 pages of a ListReleaseLabels operation.
  2856  //    pageNum := 0
  2857  //    err := client.ListReleaseLabelsPages(params,
  2858  //        func(page *emr.ListReleaseLabelsOutput, lastPage bool) bool {
  2859  //            pageNum++
  2860  //            fmt.Println(page)
  2861  //            return pageNum <= 3
  2862  //        })
  2863  //
  2864  func (c *EMR) ListReleaseLabelsPages(input *ListReleaseLabelsInput, fn func(*ListReleaseLabelsOutput, bool) bool) error {
  2865  	return c.ListReleaseLabelsPagesWithContext(aws.BackgroundContext(), input, fn)
  2866  }
  2867  
  2868  // ListReleaseLabelsPagesWithContext same as ListReleaseLabelsPages except
  2869  // it takes a Context and allows setting request options on the pages.
  2870  //
  2871  // The context must be non-nil and will be used for request cancellation. If
  2872  // the context is nil a panic will occur. In the future the SDK may create
  2873  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2874  // for more information on using Contexts.
  2875  func (c *EMR) ListReleaseLabelsPagesWithContext(ctx aws.Context, input *ListReleaseLabelsInput, fn func(*ListReleaseLabelsOutput, bool) bool, opts ...request.Option) error {
  2876  	p := request.Pagination{
  2877  		NewRequest: func() (*request.Request, error) {
  2878  			var inCpy *ListReleaseLabelsInput
  2879  			if input != nil {
  2880  				tmp := *input
  2881  				inCpy = &tmp
  2882  			}
  2883  			req, _ := c.ListReleaseLabelsRequest(inCpy)
  2884  			req.SetContext(ctx)
  2885  			req.ApplyOptions(opts...)
  2886  			return req, nil
  2887  		},
  2888  	}
  2889  
  2890  	for p.Next() {
  2891  		if !fn(p.Page().(*ListReleaseLabelsOutput), !p.HasNextPage()) {
  2892  			break
  2893  		}
  2894  	}
  2895  
  2896  	return p.Err()
  2897  }
  2898  
  2899  const opListSecurityConfigurations = "ListSecurityConfigurations"
  2900  
  2901  // ListSecurityConfigurationsRequest generates a "aws/request.Request" representing the
  2902  // client's request for the ListSecurityConfigurations operation. The "output" return
  2903  // value will be populated with the request's response once the request completes
  2904  // successfully.
  2905  //
  2906  // Use "Send" method on the returned Request to send the API call to the service.
  2907  // the "output" return value is not valid until after Send returns without error.
  2908  //
  2909  // See ListSecurityConfigurations for more information on using the ListSecurityConfigurations
  2910  // API call, and error handling.
  2911  //
  2912  // This method is useful when you want to inject custom logic or configuration
  2913  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2914  //
  2915  //
  2916  //    // Example sending a request using the ListSecurityConfigurationsRequest method.
  2917  //    req, resp := client.ListSecurityConfigurationsRequest(params)
  2918  //
  2919  //    err := req.Send()
  2920  //    if err == nil { // resp is now filled
  2921  //        fmt.Println(resp)
  2922  //    }
  2923  //
  2924  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
  2925  func (c *EMR) ListSecurityConfigurationsRequest(input *ListSecurityConfigurationsInput) (req *request.Request, output *ListSecurityConfigurationsOutput) {
  2926  	op := &request.Operation{
  2927  		Name:       opListSecurityConfigurations,
  2928  		HTTPMethod: "POST",
  2929  		HTTPPath:   "/",
  2930  		Paginator: &request.Paginator{
  2931  			InputTokens:     []string{"Marker"},
  2932  			OutputTokens:    []string{"Marker"},
  2933  			LimitToken:      "",
  2934  			TruncationToken: "",
  2935  		},
  2936  	}
  2937  
  2938  	if input == nil {
  2939  		input = &ListSecurityConfigurationsInput{}
  2940  	}
  2941  
  2942  	output = &ListSecurityConfigurationsOutput{}
  2943  	req = c.newRequest(op, input, output)
  2944  	return
  2945  }
  2946  
  2947  // ListSecurityConfigurations API operation for Amazon EMR.
  2948  //
  2949  // Lists all the security configurations visible to this account, providing
  2950  // their creation dates and times, and their names. This call returns a maximum
  2951  // of 50 clusters per call, but returns a marker to track the paging of the
  2952  // cluster list across multiple ListSecurityConfigurations calls.
  2953  //
  2954  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2955  // with awserr.Error's Code and Message methods to get detailed information about
  2956  // the error.
  2957  //
  2958  // See the AWS API reference guide for Amazon EMR's
  2959  // API operation ListSecurityConfigurations for usage and error information.
  2960  //
  2961  // Returned Error Types:
  2962  //   * InternalServerException
  2963  //   This exception occurs when there is an internal failure in the Amazon EMR
  2964  //   service.
  2965  //
  2966  //   * InvalidRequestException
  2967  //   This exception occurs when there is something wrong with user input.
  2968  //
  2969  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
  2970  func (c *EMR) ListSecurityConfigurations(input *ListSecurityConfigurationsInput) (*ListSecurityConfigurationsOutput, error) {
  2971  	req, out := c.ListSecurityConfigurationsRequest(input)
  2972  	return out, req.Send()
  2973  }
  2974  
  2975  // ListSecurityConfigurationsWithContext is the same as ListSecurityConfigurations with the addition of
  2976  // the ability to pass a context and additional request options.
  2977  //
  2978  // See ListSecurityConfigurations for details on how to use this API operation.
  2979  //
  2980  // The context must be non-nil and will be used for request cancellation. If
  2981  // the context is nil a panic will occur. In the future the SDK may create
  2982  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2983  // for more information on using Contexts.
  2984  func (c *EMR) ListSecurityConfigurationsWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, opts ...request.Option) (*ListSecurityConfigurationsOutput, error) {
  2985  	req, out := c.ListSecurityConfigurationsRequest(input)
  2986  	req.SetContext(ctx)
  2987  	req.ApplyOptions(opts...)
  2988  	return out, req.Send()
  2989  }
  2990  
  2991  // ListSecurityConfigurationsPages iterates over the pages of a ListSecurityConfigurations operation,
  2992  // calling the "fn" function with the response data for each page. To stop
  2993  // iterating, return false from the fn function.
  2994  //
  2995  // See ListSecurityConfigurations method for more information on how to use this operation.
  2996  //
  2997  // Note: This operation can generate multiple requests to a service.
  2998  //
  2999  //    // Example iterating over at most 3 pages of a ListSecurityConfigurations operation.
  3000  //    pageNum := 0
  3001  //    err := client.ListSecurityConfigurationsPages(params,
  3002  //        func(page *emr.ListSecurityConfigurationsOutput, lastPage bool) bool {
  3003  //            pageNum++
  3004  //            fmt.Println(page)
  3005  //            return pageNum <= 3
  3006  //        })
  3007  //
  3008  func (c *EMR) ListSecurityConfigurationsPages(input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool) error {
  3009  	return c.ListSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
  3010  }
  3011  
  3012  // ListSecurityConfigurationsPagesWithContext same as ListSecurityConfigurationsPages except
  3013  // it takes a Context and allows setting request options on the pages.
  3014  //
  3015  // The context must be non-nil and will be used for request cancellation. If
  3016  // the context is nil a panic will occur. In the future the SDK may create
  3017  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3018  // for more information on using Contexts.
  3019  func (c *EMR) ListSecurityConfigurationsPagesWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
  3020  	p := request.Pagination{
  3021  		NewRequest: func() (*request.Request, error) {
  3022  			var inCpy *ListSecurityConfigurationsInput
  3023  			if input != nil {
  3024  				tmp := *input
  3025  				inCpy = &tmp
  3026  			}
  3027  			req, _ := c.ListSecurityConfigurationsRequest(inCpy)
  3028  			req.SetContext(ctx)
  3029  			req.ApplyOptions(opts...)
  3030  			return req, nil
  3031  		},
  3032  	}
  3033  
  3034  	for p.Next() {
  3035  		if !fn(p.Page().(*ListSecurityConfigurationsOutput), !p.HasNextPage()) {
  3036  			break
  3037  		}
  3038  	}
  3039  
  3040  	return p.Err()
  3041  }
  3042  
  3043  const opListSteps = "ListSteps"
  3044  
  3045  // ListStepsRequest generates a "aws/request.Request" representing the
  3046  // client's request for the ListSteps operation. The "output" return
  3047  // value will be populated with the request's response once the request completes
  3048  // successfully.
  3049  //
  3050  // Use "Send" method on the returned Request to send the API call to the service.
  3051  // the "output" return value is not valid until after Send returns without error.
  3052  //
  3053  // See ListSteps for more information on using the ListSteps
  3054  // API call, and error handling.
  3055  //
  3056  // This method is useful when you want to inject custom logic or configuration
  3057  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3058  //
  3059  //
  3060  //    // Example sending a request using the ListStepsRequest method.
  3061  //    req, resp := client.ListStepsRequest(params)
  3062  //
  3063  //    err := req.Send()
  3064  //    if err == nil { // resp is now filled
  3065  //        fmt.Println(resp)
  3066  //    }
  3067  //
  3068  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
  3069  func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, output *ListStepsOutput) {
  3070  	op := &request.Operation{
  3071  		Name:       opListSteps,
  3072  		HTTPMethod: "POST",
  3073  		HTTPPath:   "/",
  3074  		Paginator: &request.Paginator{
  3075  			InputTokens:     []string{"Marker"},
  3076  			OutputTokens:    []string{"Marker"},
  3077  			LimitToken:      "",
  3078  			TruncationToken: "",
  3079  		},
  3080  	}
  3081  
  3082  	if input == nil {
  3083  		input = &ListStepsInput{}
  3084  	}
  3085  
  3086  	output = &ListStepsOutput{}
  3087  	req = c.newRequest(op, input, output)
  3088  	return
  3089  }
  3090  
  3091  // ListSteps API operation for Amazon EMR.
  3092  //
  3093  // Provides a list of steps for the cluster in reverse order unless you specify
  3094  // stepIds with the request or filter by StepStates. You can specify a maximum
  3095  // of 10 stepIDs. The CLI automatically paginates results to return a list greater
  3096  // than 50 steps. To return more than 50 steps using the CLI, specify a Marker,
  3097  // which is a pagination token that indicates the next set of steps to retrieve.
  3098  //
  3099  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3100  // with awserr.Error's Code and Message methods to get detailed information about
  3101  // the error.
  3102  //
  3103  // See the AWS API reference guide for Amazon EMR's
  3104  // API operation ListSteps for usage and error information.
  3105  //
  3106  // Returned Error Types:
  3107  //   * InternalServerException
  3108  //   This exception occurs when there is an internal failure in the Amazon EMR
  3109  //   service.
  3110  //
  3111  //   * InvalidRequestException
  3112  //   This exception occurs when there is something wrong with user input.
  3113  //
  3114  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
  3115  func (c *EMR) ListSteps(input *ListStepsInput) (*ListStepsOutput, error) {
  3116  	req, out := c.ListStepsRequest(input)
  3117  	return out, req.Send()
  3118  }
  3119  
  3120  // ListStepsWithContext is the same as ListSteps with the addition of
  3121  // the ability to pass a context and additional request options.
  3122  //
  3123  // See ListSteps for details on how to use this API operation.
  3124  //
  3125  // The context must be non-nil and will be used for request cancellation. If
  3126  // the context is nil a panic will occur. In the future the SDK may create
  3127  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3128  // for more information on using Contexts.
  3129  func (c *EMR) ListStepsWithContext(ctx aws.Context, input *ListStepsInput, opts ...request.Option) (*ListStepsOutput, error) {
  3130  	req, out := c.ListStepsRequest(input)
  3131  	req.SetContext(ctx)
  3132  	req.ApplyOptions(opts...)
  3133  	return out, req.Send()
  3134  }
  3135  
  3136  // ListStepsPages iterates over the pages of a ListSteps operation,
  3137  // calling the "fn" function with the response data for each page. To stop
  3138  // iterating, return false from the fn function.
  3139  //
  3140  // See ListSteps method for more information on how to use this operation.
  3141  //
  3142  // Note: This operation can generate multiple requests to a service.
  3143  //
  3144  //    // Example iterating over at most 3 pages of a ListSteps operation.
  3145  //    pageNum := 0
  3146  //    err := client.ListStepsPages(params,
  3147  //        func(page *emr.ListStepsOutput, lastPage bool) bool {
  3148  //            pageNum++
  3149  //            fmt.Println(page)
  3150  //            return pageNum <= 3
  3151  //        })
  3152  //
  3153  func (c *EMR) ListStepsPages(input *ListStepsInput, fn func(*ListStepsOutput, bool) bool) error {
  3154  	return c.ListStepsPagesWithContext(aws.BackgroundContext(), input, fn)
  3155  }
  3156  
  3157  // ListStepsPagesWithContext same as ListStepsPages except
  3158  // it takes a Context and allows setting request options on the pages.
  3159  //
  3160  // The context must be non-nil and will be used for request cancellation. If
  3161  // the context is nil a panic will occur. In the future the SDK may create
  3162  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3163  // for more information on using Contexts.
  3164  func (c *EMR) ListStepsPagesWithContext(ctx aws.Context, input *ListStepsInput, fn func(*ListStepsOutput, bool) bool, opts ...request.Option) error {
  3165  	p := request.Pagination{
  3166  		NewRequest: func() (*request.Request, error) {
  3167  			var inCpy *ListStepsInput
  3168  			if input != nil {
  3169  				tmp := *input
  3170  				inCpy = &tmp
  3171  			}
  3172  			req, _ := c.ListStepsRequest(inCpy)
  3173  			req.SetContext(ctx)
  3174  			req.ApplyOptions(opts...)
  3175  			return req, nil
  3176  		},
  3177  	}
  3178  
  3179  	for p.Next() {
  3180  		if !fn(p.Page().(*ListStepsOutput), !p.HasNextPage()) {
  3181  			break
  3182  		}
  3183  	}
  3184  
  3185  	return p.Err()
  3186  }
  3187  
  3188  const opListStudioSessionMappings = "ListStudioSessionMappings"
  3189  
  3190  // ListStudioSessionMappingsRequest generates a "aws/request.Request" representing the
  3191  // client's request for the ListStudioSessionMappings operation. The "output" return
  3192  // value will be populated with the request's response once the request completes
  3193  // successfully.
  3194  //
  3195  // Use "Send" method on the returned Request to send the API call to the service.
  3196  // the "output" return value is not valid until after Send returns without error.
  3197  //
  3198  // See ListStudioSessionMappings for more information on using the ListStudioSessionMappings
  3199  // API call, and error handling.
  3200  //
  3201  // This method is useful when you want to inject custom logic or configuration
  3202  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3203  //
  3204  //
  3205  //    // Example sending a request using the ListStudioSessionMappingsRequest method.
  3206  //    req, resp := client.ListStudioSessionMappingsRequest(params)
  3207  //
  3208  //    err := req.Send()
  3209  //    if err == nil { // resp is now filled
  3210  //        fmt.Println(resp)
  3211  //    }
  3212  //
  3213  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
  3214  func (c *EMR) ListStudioSessionMappingsRequest(input *ListStudioSessionMappingsInput) (req *request.Request, output *ListStudioSessionMappingsOutput) {
  3215  	op := &request.Operation{
  3216  		Name:       opListStudioSessionMappings,
  3217  		HTTPMethod: "POST",
  3218  		HTTPPath:   "/",
  3219  		Paginator: &request.Paginator{
  3220  			InputTokens:     []string{"Marker"},
  3221  			OutputTokens:    []string{"Marker"},
  3222  			LimitToken:      "",
  3223  			TruncationToken: "",
  3224  		},
  3225  	}
  3226  
  3227  	if input == nil {
  3228  		input = &ListStudioSessionMappingsInput{}
  3229  	}
  3230  
  3231  	output = &ListStudioSessionMappingsOutput{}
  3232  	req = c.newRequest(op, input, output)
  3233  	return
  3234  }
  3235  
  3236  // ListStudioSessionMappings API operation for Amazon EMR.
  3237  //
  3238  // Returns a list of all user or group session mappings for the Amazon EMR Studio
  3239  // specified by StudioId.
  3240  //
  3241  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3242  // with awserr.Error's Code and Message methods to get detailed information about
  3243  // the error.
  3244  //
  3245  // See the AWS API reference guide for Amazon EMR's
  3246  // API operation ListStudioSessionMappings for usage and error information.
  3247  //
  3248  // Returned Error Types:
  3249  //   * InternalServerError
  3250  //   Indicates that an error occurred while processing the request and that the
  3251  //   request was not completed.
  3252  //
  3253  //   * InvalidRequestException
  3254  //   This exception occurs when there is something wrong with user input.
  3255  //
  3256  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
  3257  func (c *EMR) ListStudioSessionMappings(input *ListStudioSessionMappingsInput) (*ListStudioSessionMappingsOutput, error) {
  3258  	req, out := c.ListStudioSessionMappingsRequest(input)
  3259  	return out, req.Send()
  3260  }
  3261  
  3262  // ListStudioSessionMappingsWithContext is the same as ListStudioSessionMappings with the addition of
  3263  // the ability to pass a context and additional request options.
  3264  //
  3265  // See ListStudioSessionMappings for details on how to use this API operation.
  3266  //
  3267  // The context must be non-nil and will be used for request cancellation. If
  3268  // the context is nil a panic will occur. In the future the SDK may create
  3269  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3270  // for more information on using Contexts.
  3271  func (c *EMR) ListStudioSessionMappingsWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, opts ...request.Option) (*ListStudioSessionMappingsOutput, error) {
  3272  	req, out := c.ListStudioSessionMappingsRequest(input)
  3273  	req.SetContext(ctx)
  3274  	req.ApplyOptions(opts...)
  3275  	return out, req.Send()
  3276  }
  3277  
  3278  // ListStudioSessionMappingsPages iterates over the pages of a ListStudioSessionMappings operation,
  3279  // calling the "fn" function with the response data for each page. To stop
  3280  // iterating, return false from the fn function.
  3281  //
  3282  // See ListStudioSessionMappings method for more information on how to use this operation.
  3283  //
  3284  // Note: This operation can generate multiple requests to a service.
  3285  //
  3286  //    // Example iterating over at most 3 pages of a ListStudioSessionMappings operation.
  3287  //    pageNum := 0
  3288  //    err := client.ListStudioSessionMappingsPages(params,
  3289  //        func(page *emr.ListStudioSessionMappingsOutput, lastPage bool) bool {
  3290  //            pageNum++
  3291  //            fmt.Println(page)
  3292  //            return pageNum <= 3
  3293  //        })
  3294  //
  3295  func (c *EMR) ListStudioSessionMappingsPages(input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool) error {
  3296  	return c.ListStudioSessionMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
  3297  }
  3298  
  3299  // ListStudioSessionMappingsPagesWithContext same as ListStudioSessionMappingsPages except
  3300  // it takes a Context and allows setting request options on the pages.
  3301  //
  3302  // The context must be non-nil and will be used for request cancellation. If
  3303  // the context is nil a panic will occur. In the future the SDK may create
  3304  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3305  // for more information on using Contexts.
  3306  func (c *EMR) ListStudioSessionMappingsPagesWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool, opts ...request.Option) error {
  3307  	p := request.Pagination{
  3308  		NewRequest: func() (*request.Request, error) {
  3309  			var inCpy *ListStudioSessionMappingsInput
  3310  			if input != nil {
  3311  				tmp := *input
  3312  				inCpy = &tmp
  3313  			}
  3314  			req, _ := c.ListStudioSessionMappingsRequest(inCpy)
  3315  			req.SetContext(ctx)
  3316  			req.ApplyOptions(opts...)
  3317  			return req, nil
  3318  		},
  3319  	}
  3320  
  3321  	for p.Next() {
  3322  		if !fn(p.Page().(*ListStudioSessionMappingsOutput), !p.HasNextPage()) {
  3323  			break
  3324  		}
  3325  	}
  3326  
  3327  	return p.Err()
  3328  }
  3329  
  3330  const opListStudios = "ListStudios"
  3331  
  3332  // ListStudiosRequest generates a "aws/request.Request" representing the
  3333  // client's request for the ListStudios operation. The "output" return
  3334  // value will be populated with the request's response once the request completes
  3335  // successfully.
  3336  //
  3337  // Use "Send" method on the returned Request to send the API call to the service.
  3338  // the "output" return value is not valid until after Send returns without error.
  3339  //
  3340  // See ListStudios for more information on using the ListStudios
  3341  // API call, and error handling.
  3342  //
  3343  // This method is useful when you want to inject custom logic or configuration
  3344  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3345  //
  3346  //
  3347  //    // Example sending a request using the ListStudiosRequest method.
  3348  //    req, resp := client.ListStudiosRequest(params)
  3349  //
  3350  //    err := req.Send()
  3351  //    if err == nil { // resp is now filled
  3352  //        fmt.Println(resp)
  3353  //    }
  3354  //
  3355  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
  3356  func (c *EMR) ListStudiosRequest(input *ListStudiosInput) (req *request.Request, output *ListStudiosOutput) {
  3357  	op := &request.Operation{
  3358  		Name:       opListStudios,
  3359  		HTTPMethod: "POST",
  3360  		HTTPPath:   "/",
  3361  		Paginator: &request.Paginator{
  3362  			InputTokens:     []string{"Marker"},
  3363  			OutputTokens:    []string{"Marker"},
  3364  			LimitToken:      "",
  3365  			TruncationToken: "",
  3366  		},
  3367  	}
  3368  
  3369  	if input == nil {
  3370  		input = &ListStudiosInput{}
  3371  	}
  3372  
  3373  	output = &ListStudiosOutput{}
  3374  	req = c.newRequest(op, input, output)
  3375  	return
  3376  }
  3377  
  3378  // ListStudios API operation for Amazon EMR.
  3379  //
  3380  // Returns a list of all Amazon EMR Studios associated with the Amazon Web Services
  3381  // account. The list includes details such as ID, Studio Access URL, and creation
  3382  // time for each Studio.
  3383  //
  3384  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3385  // with awserr.Error's Code and Message methods to get detailed information about
  3386  // the error.
  3387  //
  3388  // See the AWS API reference guide for Amazon EMR's
  3389  // API operation ListStudios for usage and error information.
  3390  //
  3391  // Returned Error Types:
  3392  //   * InternalServerException
  3393  //   This exception occurs when there is an internal failure in the Amazon EMR
  3394  //   service.
  3395  //
  3396  //   * InvalidRequestException
  3397  //   This exception occurs when there is something wrong with user input.
  3398  //
  3399  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
  3400  func (c *EMR) ListStudios(input *ListStudiosInput) (*ListStudiosOutput, error) {
  3401  	req, out := c.ListStudiosRequest(input)
  3402  	return out, req.Send()
  3403  }
  3404  
  3405  // ListStudiosWithContext is the same as ListStudios with the addition of
  3406  // the ability to pass a context and additional request options.
  3407  //
  3408  // See ListStudios for details on how to use this API operation.
  3409  //
  3410  // The context must be non-nil and will be used for request cancellation. If
  3411  // the context is nil a panic will occur. In the future the SDK may create
  3412  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3413  // for more information on using Contexts.
  3414  func (c *EMR) ListStudiosWithContext(ctx aws.Context, input *ListStudiosInput, opts ...request.Option) (*ListStudiosOutput, error) {
  3415  	req, out := c.ListStudiosRequest(input)
  3416  	req.SetContext(ctx)
  3417  	req.ApplyOptions(opts...)
  3418  	return out, req.Send()
  3419  }
  3420  
  3421  // ListStudiosPages iterates over the pages of a ListStudios operation,
  3422  // calling the "fn" function with the response data for each page. To stop
  3423  // iterating, return false from the fn function.
  3424  //
  3425  // See ListStudios method for more information on how to use this operation.
  3426  //
  3427  // Note: This operation can generate multiple requests to a service.
  3428  //
  3429  //    // Example iterating over at most 3 pages of a ListStudios operation.
  3430  //    pageNum := 0
  3431  //    err := client.ListStudiosPages(params,
  3432  //        func(page *emr.ListStudiosOutput, lastPage bool) bool {
  3433  //            pageNum++
  3434  //            fmt.Println(page)
  3435  //            return pageNum <= 3
  3436  //        })
  3437  //
  3438  func (c *EMR) ListStudiosPages(input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool) error {
  3439  	return c.ListStudiosPagesWithContext(aws.BackgroundContext(), input, fn)
  3440  }
  3441  
  3442  // ListStudiosPagesWithContext same as ListStudiosPages except
  3443  // it takes a Context and allows setting request options on the pages.
  3444  //
  3445  // The context must be non-nil and will be used for request cancellation. If
  3446  // the context is nil a panic will occur. In the future the SDK may create
  3447  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3448  // for more information on using Contexts.
  3449  func (c *EMR) ListStudiosPagesWithContext(ctx aws.Context, input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool, opts ...request.Option) error {
  3450  	p := request.Pagination{
  3451  		NewRequest: func() (*request.Request, error) {
  3452  			var inCpy *ListStudiosInput
  3453  			if input != nil {
  3454  				tmp := *input
  3455  				inCpy = &tmp
  3456  			}
  3457  			req, _ := c.ListStudiosRequest(inCpy)
  3458  			req.SetContext(ctx)
  3459  			req.ApplyOptions(opts...)
  3460  			return req, nil
  3461  		},
  3462  	}
  3463  
  3464  	for p.Next() {
  3465  		if !fn(p.Page().(*ListStudiosOutput), !p.HasNextPage()) {
  3466  			break
  3467  		}
  3468  	}
  3469  
  3470  	return p.Err()
  3471  }
  3472  
  3473  const opModifyCluster = "ModifyCluster"
  3474  
  3475  // ModifyClusterRequest generates a "aws/request.Request" representing the
  3476  // client's request for the ModifyCluster operation. The "output" return
  3477  // value will be populated with the request's response once the request completes
  3478  // successfully.
  3479  //
  3480  // Use "Send" method on the returned Request to send the API call to the service.
  3481  // the "output" return value is not valid until after Send returns without error.
  3482  //
  3483  // See ModifyCluster for more information on using the ModifyCluster
  3484  // API call, and error handling.
  3485  //
  3486  // This method is useful when you want to inject custom logic or configuration
  3487  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3488  //
  3489  //
  3490  //    // Example sending a request using the ModifyClusterRequest method.
  3491  //    req, resp := client.ModifyClusterRequest(params)
  3492  //
  3493  //    err := req.Send()
  3494  //    if err == nil { // resp is now filled
  3495  //        fmt.Println(resp)
  3496  //    }
  3497  //
  3498  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
  3499  func (c *EMR) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
  3500  	op := &request.Operation{
  3501  		Name:       opModifyCluster,
  3502  		HTTPMethod: "POST",
  3503  		HTTPPath:   "/",
  3504  	}
  3505  
  3506  	if input == nil {
  3507  		input = &ModifyClusterInput{}
  3508  	}
  3509  
  3510  	output = &ModifyClusterOutput{}
  3511  	req = c.newRequest(op, input, output)
  3512  	return
  3513  }
  3514  
  3515  // ModifyCluster API operation for Amazon EMR.
  3516  //
  3517  // Modifies the number of steps that can be executed concurrently for the cluster
  3518  // specified using ClusterID.
  3519  //
  3520  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3521  // with awserr.Error's Code and Message methods to get detailed information about
  3522  // the error.
  3523  //
  3524  // See the AWS API reference guide for Amazon EMR's
  3525  // API operation ModifyCluster for usage and error information.
  3526  //
  3527  // Returned Error Types:
  3528  //   * InternalServerError
  3529  //   Indicates that an error occurred while processing the request and that the
  3530  //   request was not completed.
  3531  //
  3532  //   * InvalidRequestException
  3533  //   This exception occurs when there is something wrong with user input.
  3534  //
  3535  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
  3536  func (c *EMR) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
  3537  	req, out := c.ModifyClusterRequest(input)
  3538  	return out, req.Send()
  3539  }
  3540  
  3541  // ModifyClusterWithContext is the same as ModifyCluster with the addition of
  3542  // the ability to pass a context and additional request options.
  3543  //
  3544  // See ModifyCluster for details on how to use this API operation.
  3545  //
  3546  // The context must be non-nil and will be used for request cancellation. If
  3547  // the context is nil a panic will occur. In the future the SDK may create
  3548  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3549  // for more information on using Contexts.
  3550  func (c *EMR) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
  3551  	req, out := c.ModifyClusterRequest(input)
  3552  	req.SetContext(ctx)
  3553  	req.ApplyOptions(opts...)
  3554  	return out, req.Send()
  3555  }
  3556  
  3557  const opModifyInstanceFleet = "ModifyInstanceFleet"
  3558  
  3559  // ModifyInstanceFleetRequest generates a "aws/request.Request" representing the
  3560  // client's request for the ModifyInstanceFleet operation. The "output" return
  3561  // value will be populated with the request's response once the request completes
  3562  // successfully.
  3563  //
  3564  // Use "Send" method on the returned Request to send the API call to the service.
  3565  // the "output" return value is not valid until after Send returns without error.
  3566  //
  3567  // See ModifyInstanceFleet for more information on using the ModifyInstanceFleet
  3568  // API call, and error handling.
  3569  //
  3570  // This method is useful when you want to inject custom logic or configuration
  3571  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3572  //
  3573  //
  3574  //    // Example sending a request using the ModifyInstanceFleetRequest method.
  3575  //    req, resp := client.ModifyInstanceFleetRequest(params)
  3576  //
  3577  //    err := req.Send()
  3578  //    if err == nil { // resp is now filled
  3579  //        fmt.Println(resp)
  3580  //    }
  3581  //
  3582  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
  3583  func (c *EMR) ModifyInstanceFleetRequest(input *ModifyInstanceFleetInput) (req *request.Request, output *ModifyInstanceFleetOutput) {
  3584  	op := &request.Operation{
  3585  		Name:       opModifyInstanceFleet,
  3586  		HTTPMethod: "POST",
  3587  		HTTPPath:   "/",
  3588  	}
  3589  
  3590  	if input == nil {
  3591  		input = &ModifyInstanceFleetInput{}
  3592  	}
  3593  
  3594  	output = &ModifyInstanceFleetOutput{}
  3595  	req = c.newRequest(op, input, output)
  3596  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3597  	return
  3598  }
  3599  
  3600  // ModifyInstanceFleet API operation for Amazon EMR.
  3601  //
  3602  // Modifies the target On-Demand and target Spot capacities for the instance
  3603  // fleet with the specified InstanceFleetID within the cluster specified using
  3604  // ClusterID. The call either succeeds or fails atomically.
  3605  //
  3606  // The instance fleet configuration is available only in Amazon EMR versions
  3607  // 4.8.0 and later, excluding 5.0.x versions.
  3608  //
  3609  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3610  // with awserr.Error's Code and Message methods to get detailed information about
  3611  // the error.
  3612  //
  3613  // See the AWS API reference guide for Amazon EMR's
  3614  // API operation ModifyInstanceFleet for usage and error information.
  3615  //
  3616  // Returned Error Types:
  3617  //   * InternalServerException
  3618  //   This exception occurs when there is an internal failure in the Amazon EMR
  3619  //   service.
  3620  //
  3621  //   * InvalidRequestException
  3622  //   This exception occurs when there is something wrong with user input.
  3623  //
  3624  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
  3625  func (c *EMR) ModifyInstanceFleet(input *ModifyInstanceFleetInput) (*ModifyInstanceFleetOutput, error) {
  3626  	req, out := c.ModifyInstanceFleetRequest(input)
  3627  	return out, req.Send()
  3628  }
  3629  
  3630  // ModifyInstanceFleetWithContext is the same as ModifyInstanceFleet with the addition of
  3631  // the ability to pass a context and additional request options.
  3632  //
  3633  // See ModifyInstanceFleet for details on how to use this API operation.
  3634  //
  3635  // The context must be non-nil and will be used for request cancellation. If
  3636  // the context is nil a panic will occur. In the future the SDK may create
  3637  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3638  // for more information on using Contexts.
  3639  func (c *EMR) ModifyInstanceFleetWithContext(ctx aws.Context, input *ModifyInstanceFleetInput, opts ...request.Option) (*ModifyInstanceFleetOutput, error) {
  3640  	req, out := c.ModifyInstanceFleetRequest(input)
  3641  	req.SetContext(ctx)
  3642  	req.ApplyOptions(opts...)
  3643  	return out, req.Send()
  3644  }
  3645  
  3646  const opModifyInstanceGroups = "ModifyInstanceGroups"
  3647  
  3648  // ModifyInstanceGroupsRequest generates a "aws/request.Request" representing the
  3649  // client's request for the ModifyInstanceGroups operation. The "output" return
  3650  // value will be populated with the request's response once the request completes
  3651  // successfully.
  3652  //
  3653  // Use "Send" method on the returned Request to send the API call to the service.
  3654  // the "output" return value is not valid until after Send returns without error.
  3655  //
  3656  // See ModifyInstanceGroups for more information on using the ModifyInstanceGroups
  3657  // API call, and error handling.
  3658  //
  3659  // This method is useful when you want to inject custom logic or configuration
  3660  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3661  //
  3662  //
  3663  //    // Example sending a request using the ModifyInstanceGroupsRequest method.
  3664  //    req, resp := client.ModifyInstanceGroupsRequest(params)
  3665  //
  3666  //    err := req.Send()
  3667  //    if err == nil { // resp is now filled
  3668  //        fmt.Println(resp)
  3669  //    }
  3670  //
  3671  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
  3672  func (c *EMR) ModifyInstanceGroupsRequest(input *ModifyInstanceGroupsInput) (req *request.Request, output *ModifyInstanceGroupsOutput) {
  3673  	op := &request.Operation{
  3674  		Name:       opModifyInstanceGroups,
  3675  		HTTPMethod: "POST",
  3676  		HTTPPath:   "/",
  3677  	}
  3678  
  3679  	if input == nil {
  3680  		input = &ModifyInstanceGroupsInput{}
  3681  	}
  3682  
  3683  	output = &ModifyInstanceGroupsOutput{}
  3684  	req = c.newRequest(op, input, output)
  3685  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3686  	return
  3687  }
  3688  
  3689  // ModifyInstanceGroups API operation for Amazon EMR.
  3690  //
  3691  // ModifyInstanceGroups modifies the number of nodes and configuration settings
  3692  // of an instance group. The input parameters include the new target instance
  3693  // count for the group and the instance group ID. The call will either succeed
  3694  // or fail atomically.
  3695  //
  3696  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3697  // with awserr.Error's Code and Message methods to get detailed information about
  3698  // the error.
  3699  //
  3700  // See the AWS API reference guide for Amazon EMR's
  3701  // API operation ModifyInstanceGroups for usage and error information.
  3702  //
  3703  // Returned Error Types:
  3704  //   * InternalServerError
  3705  //   Indicates that an error occurred while processing the request and that the
  3706  //   request was not completed.
  3707  //
  3708  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
  3709  func (c *EMR) ModifyInstanceGroups(input *ModifyInstanceGroupsInput) (*ModifyInstanceGroupsOutput, error) {
  3710  	req, out := c.ModifyInstanceGroupsRequest(input)
  3711  	return out, req.Send()
  3712  }
  3713  
  3714  // ModifyInstanceGroupsWithContext is the same as ModifyInstanceGroups with the addition of
  3715  // the ability to pass a context and additional request options.
  3716  //
  3717  // See ModifyInstanceGroups for details on how to use this API operation.
  3718  //
  3719  // The context must be non-nil and will be used for request cancellation. If
  3720  // the context is nil a panic will occur. In the future the SDK may create
  3721  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3722  // for more information on using Contexts.
  3723  func (c *EMR) ModifyInstanceGroupsWithContext(ctx aws.Context, input *ModifyInstanceGroupsInput, opts ...request.Option) (*ModifyInstanceGroupsOutput, error) {
  3724  	req, out := c.ModifyInstanceGroupsRequest(input)
  3725  	req.SetContext(ctx)
  3726  	req.ApplyOptions(opts...)
  3727  	return out, req.Send()
  3728  }
  3729  
  3730  const opPutAutoScalingPolicy = "PutAutoScalingPolicy"
  3731  
  3732  // PutAutoScalingPolicyRequest generates a "aws/request.Request" representing the
  3733  // client's request for the PutAutoScalingPolicy operation. The "output" return
  3734  // value will be populated with the request's response once the request completes
  3735  // successfully.
  3736  //
  3737  // Use "Send" method on the returned Request to send the API call to the service.
  3738  // the "output" return value is not valid until after Send returns without error.
  3739  //
  3740  // See PutAutoScalingPolicy for more information on using the PutAutoScalingPolicy
  3741  // API call, and error handling.
  3742  //
  3743  // This method is useful when you want to inject custom logic or configuration
  3744  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3745  //
  3746  //
  3747  //    // Example sending a request using the PutAutoScalingPolicyRequest method.
  3748  //    req, resp := client.PutAutoScalingPolicyRequest(params)
  3749  //
  3750  //    err := req.Send()
  3751  //    if err == nil { // resp is now filled
  3752  //        fmt.Println(resp)
  3753  //    }
  3754  //
  3755  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
  3756  func (c *EMR) PutAutoScalingPolicyRequest(input *PutAutoScalingPolicyInput) (req *request.Request, output *PutAutoScalingPolicyOutput) {
  3757  	op := &request.Operation{
  3758  		Name:       opPutAutoScalingPolicy,
  3759  		HTTPMethod: "POST",
  3760  		HTTPPath:   "/",
  3761  	}
  3762  
  3763  	if input == nil {
  3764  		input = &PutAutoScalingPolicyInput{}
  3765  	}
  3766  
  3767  	output = &PutAutoScalingPolicyOutput{}
  3768  	req = c.newRequest(op, input, output)
  3769  	return
  3770  }
  3771  
  3772  // PutAutoScalingPolicy API operation for Amazon EMR.
  3773  //
  3774  // Creates or updates an automatic scaling policy for a core instance group
  3775  // or task instance group in an Amazon EMR cluster. The automatic scaling policy
  3776  // defines how an instance group dynamically adds and terminates EC2 instances
  3777  // in response to the value of a CloudWatch metric.
  3778  //
  3779  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3780  // with awserr.Error's Code and Message methods to get detailed information about
  3781  // the error.
  3782  //
  3783  // See the AWS API reference guide for Amazon EMR's
  3784  // API operation PutAutoScalingPolicy for usage and error information.
  3785  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
  3786  func (c *EMR) PutAutoScalingPolicy(input *PutAutoScalingPolicyInput) (*PutAutoScalingPolicyOutput, error) {
  3787  	req, out := c.PutAutoScalingPolicyRequest(input)
  3788  	return out, req.Send()
  3789  }
  3790  
  3791  // PutAutoScalingPolicyWithContext is the same as PutAutoScalingPolicy with the addition of
  3792  // the ability to pass a context and additional request options.
  3793  //
  3794  // See PutAutoScalingPolicy for details on how to use this API operation.
  3795  //
  3796  // The context must be non-nil and will be used for request cancellation. If
  3797  // the context is nil a panic will occur. In the future the SDK may create
  3798  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3799  // for more information on using Contexts.
  3800  func (c *EMR) PutAutoScalingPolicyWithContext(ctx aws.Context, input *PutAutoScalingPolicyInput, opts ...request.Option) (*PutAutoScalingPolicyOutput, error) {
  3801  	req, out := c.PutAutoScalingPolicyRequest(input)
  3802  	req.SetContext(ctx)
  3803  	req.ApplyOptions(opts...)
  3804  	return out, req.Send()
  3805  }
  3806  
  3807  const opPutAutoTerminationPolicy = "PutAutoTerminationPolicy"
  3808  
  3809  // PutAutoTerminationPolicyRequest generates a "aws/request.Request" representing the
  3810  // client's request for the PutAutoTerminationPolicy operation. The "output" return
  3811  // value will be populated with the request's response once the request completes
  3812  // successfully.
  3813  //
  3814  // Use "Send" method on the returned Request to send the API call to the service.
  3815  // the "output" return value is not valid until after Send returns without error.
  3816  //
  3817  // See PutAutoTerminationPolicy for more information on using the PutAutoTerminationPolicy
  3818  // API call, and error handling.
  3819  //
  3820  // This method is useful when you want to inject custom logic or configuration
  3821  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3822  //
  3823  //
  3824  //    // Example sending a request using the PutAutoTerminationPolicyRequest method.
  3825  //    req, resp := client.PutAutoTerminationPolicyRequest(params)
  3826  //
  3827  //    err := req.Send()
  3828  //    if err == nil { // resp is now filled
  3829  //        fmt.Println(resp)
  3830  //    }
  3831  //
  3832  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoTerminationPolicy
  3833  func (c *EMR) PutAutoTerminationPolicyRequest(input *PutAutoTerminationPolicyInput) (req *request.Request, output *PutAutoTerminationPolicyOutput) {
  3834  	op := &request.Operation{
  3835  		Name:       opPutAutoTerminationPolicy,
  3836  		HTTPMethod: "POST",
  3837  		HTTPPath:   "/",
  3838  	}
  3839  
  3840  	if input == nil {
  3841  		input = &PutAutoTerminationPolicyInput{}
  3842  	}
  3843  
  3844  	output = &PutAutoTerminationPolicyOutput{}
  3845  	req = c.newRequest(op, input, output)
  3846  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3847  	return
  3848  }
  3849  
  3850  // PutAutoTerminationPolicy API operation for Amazon EMR.
  3851  //
  3852  // Creates or updates an auto-termination policy for an Amazon EMR cluster.
  3853  // An auto-termination policy defines the amount of idle time in seconds after
  3854  // which a cluster automatically terminates. For alternative cluster termination
  3855  // options, see Control cluster termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html).
  3856  //
  3857  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3858  // with awserr.Error's Code and Message methods to get detailed information about
  3859  // the error.
  3860  //
  3861  // See the AWS API reference guide for Amazon EMR's
  3862  // API operation PutAutoTerminationPolicy for usage and error information.
  3863  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoTerminationPolicy
  3864  func (c *EMR) PutAutoTerminationPolicy(input *PutAutoTerminationPolicyInput) (*PutAutoTerminationPolicyOutput, error) {
  3865  	req, out := c.PutAutoTerminationPolicyRequest(input)
  3866  	return out, req.Send()
  3867  }
  3868  
  3869  // PutAutoTerminationPolicyWithContext is the same as PutAutoTerminationPolicy with the addition of
  3870  // the ability to pass a context and additional request options.
  3871  //
  3872  // See PutAutoTerminationPolicy for details on how to use this API operation.
  3873  //
  3874  // The context must be non-nil and will be used for request cancellation. If
  3875  // the context is nil a panic will occur. In the future the SDK may create
  3876  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3877  // for more information on using Contexts.
  3878  func (c *EMR) PutAutoTerminationPolicyWithContext(ctx aws.Context, input *PutAutoTerminationPolicyInput, opts ...request.Option) (*PutAutoTerminationPolicyOutput, error) {
  3879  	req, out := c.PutAutoTerminationPolicyRequest(input)
  3880  	req.SetContext(ctx)
  3881  	req.ApplyOptions(opts...)
  3882  	return out, req.Send()
  3883  }
  3884  
  3885  const opPutBlockPublicAccessConfiguration = "PutBlockPublicAccessConfiguration"
  3886  
  3887  // PutBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
  3888  // client's request for the PutBlockPublicAccessConfiguration operation. The "output" return
  3889  // value will be populated with the request's response once the request completes
  3890  // successfully.
  3891  //
  3892  // Use "Send" method on the returned Request to send the API call to the service.
  3893  // the "output" return value is not valid until after Send returns without error.
  3894  //
  3895  // See PutBlockPublicAccessConfiguration for more information on using the PutBlockPublicAccessConfiguration
  3896  // API call, and error handling.
  3897  //
  3898  // This method is useful when you want to inject custom logic or configuration
  3899  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3900  //
  3901  //
  3902  //    // Example sending a request using the PutBlockPublicAccessConfigurationRequest method.
  3903  //    req, resp := client.PutBlockPublicAccessConfigurationRequest(params)
  3904  //
  3905  //    err := req.Send()
  3906  //    if err == nil { // resp is now filled
  3907  //        fmt.Println(resp)
  3908  //    }
  3909  //
  3910  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
  3911  func (c *EMR) PutBlockPublicAccessConfigurationRequest(input *PutBlockPublicAccessConfigurationInput) (req *request.Request, output *PutBlockPublicAccessConfigurationOutput) {
  3912  	op := &request.Operation{
  3913  		Name:       opPutBlockPublicAccessConfiguration,
  3914  		HTTPMethod: "POST",
  3915  		HTTPPath:   "/",
  3916  	}
  3917  
  3918  	if input == nil {
  3919  		input = &PutBlockPublicAccessConfigurationInput{}
  3920  	}
  3921  
  3922  	output = &PutBlockPublicAccessConfigurationOutput{}
  3923  	req = c.newRequest(op, input, output)
  3924  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3925  	return
  3926  }
  3927  
  3928  // PutBlockPublicAccessConfiguration API operation for Amazon EMR.
  3929  //
  3930  // Creates or updates an Amazon EMR block public access configuration for your
  3931  // Amazon Web Services account in the current Region. For more information see
  3932  // Configure Block Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
  3933  // in the Amazon EMR Management Guide.
  3934  //
  3935  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3936  // with awserr.Error's Code and Message methods to get detailed information about
  3937  // the error.
  3938  //
  3939  // See the AWS API reference guide for Amazon EMR's
  3940  // API operation PutBlockPublicAccessConfiguration for usage and error information.
  3941  //
  3942  // Returned Error Types:
  3943  //   * InternalServerException
  3944  //   This exception occurs when there is an internal failure in the Amazon EMR
  3945  //   service.
  3946  //
  3947  //   * InvalidRequestException
  3948  //   This exception occurs when there is something wrong with user input.
  3949  //
  3950  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
  3951  func (c *EMR) PutBlockPublicAccessConfiguration(input *PutBlockPublicAccessConfigurationInput) (*PutBlockPublicAccessConfigurationOutput, error) {
  3952  	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
  3953  	return out, req.Send()
  3954  }
  3955  
  3956  // PutBlockPublicAccessConfigurationWithContext is the same as PutBlockPublicAccessConfiguration with the addition of
  3957  // the ability to pass a context and additional request options.
  3958  //
  3959  // See PutBlockPublicAccessConfiguration for details on how to use this API operation.
  3960  //
  3961  // The context must be non-nil and will be used for request cancellation. If
  3962  // the context is nil a panic will occur. In the future the SDK may create
  3963  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3964  // for more information on using Contexts.
  3965  func (c *EMR) PutBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *PutBlockPublicAccessConfigurationInput, opts ...request.Option) (*PutBlockPublicAccessConfigurationOutput, error) {
  3966  	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
  3967  	req.SetContext(ctx)
  3968  	req.ApplyOptions(opts...)
  3969  	return out, req.Send()
  3970  }
  3971  
  3972  const opPutManagedScalingPolicy = "PutManagedScalingPolicy"
  3973  
  3974  // PutManagedScalingPolicyRequest generates a "aws/request.Request" representing the
  3975  // client's request for the PutManagedScalingPolicy operation. The "output" return
  3976  // value will be populated with the request's response once the request completes
  3977  // successfully.
  3978  //
  3979  // Use "Send" method on the returned Request to send the API call to the service.
  3980  // the "output" return value is not valid until after Send returns without error.
  3981  //
  3982  // See PutManagedScalingPolicy for more information on using the PutManagedScalingPolicy
  3983  // API call, and error handling.
  3984  //
  3985  // This method is useful when you want to inject custom logic or configuration
  3986  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3987  //
  3988  //
  3989  //    // Example sending a request using the PutManagedScalingPolicyRequest method.
  3990  //    req, resp := client.PutManagedScalingPolicyRequest(params)
  3991  //
  3992  //    err := req.Send()
  3993  //    if err == nil { // resp is now filled
  3994  //        fmt.Println(resp)
  3995  //    }
  3996  //
  3997  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
  3998  func (c *EMR) PutManagedScalingPolicyRequest(input *PutManagedScalingPolicyInput) (req *request.Request, output *PutManagedScalingPolicyOutput) {
  3999  	op := &request.Operation{
  4000  		Name:       opPutManagedScalingPolicy,
  4001  		HTTPMethod: "POST",
  4002  		HTTPPath:   "/",
  4003  	}
  4004  
  4005  	if input == nil {
  4006  		input = &PutManagedScalingPolicyInput{}
  4007  	}
  4008  
  4009  	output = &PutManagedScalingPolicyOutput{}
  4010  	req = c.newRequest(op, input, output)
  4011  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4012  	return
  4013  }
  4014  
  4015  // PutManagedScalingPolicy API operation for Amazon EMR.
  4016  //
  4017  // Creates or updates a managed scaling policy for an Amazon EMR cluster. The
  4018  // managed scaling policy defines the limits for resources, such as EC2 instances
  4019  // that can be added or terminated from a cluster. The policy only applies to
  4020  // the core and task nodes. The master node cannot be scaled after initial configuration.
  4021  //
  4022  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4023  // with awserr.Error's Code and Message methods to get detailed information about
  4024  // the error.
  4025  //
  4026  // See the AWS API reference guide for Amazon EMR's
  4027  // API operation PutManagedScalingPolicy for usage and error information.
  4028  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
  4029  func (c *EMR) PutManagedScalingPolicy(input *PutManagedScalingPolicyInput) (*PutManagedScalingPolicyOutput, error) {
  4030  	req, out := c.PutManagedScalingPolicyRequest(input)
  4031  	return out, req.Send()
  4032  }
  4033  
  4034  // PutManagedScalingPolicyWithContext is the same as PutManagedScalingPolicy with the addition of
  4035  // the ability to pass a context and additional request options.
  4036  //
  4037  // See PutManagedScalingPolicy for details on how to use this API operation.
  4038  //
  4039  // The context must be non-nil and will be used for request cancellation. If
  4040  // the context is nil a panic will occur. In the future the SDK may create
  4041  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4042  // for more information on using Contexts.
  4043  func (c *EMR) PutManagedScalingPolicyWithContext(ctx aws.Context, input *PutManagedScalingPolicyInput, opts ...request.Option) (*PutManagedScalingPolicyOutput, error) {
  4044  	req, out := c.PutManagedScalingPolicyRequest(input)
  4045  	req.SetContext(ctx)
  4046  	req.ApplyOptions(opts...)
  4047  	return out, req.Send()
  4048  }
  4049  
  4050  const opRemoveAutoScalingPolicy = "RemoveAutoScalingPolicy"
  4051  
  4052  // RemoveAutoScalingPolicyRequest generates a "aws/request.Request" representing the
  4053  // client's request for the RemoveAutoScalingPolicy operation. The "output" return
  4054  // value will be populated with the request's response once the request completes
  4055  // successfully.
  4056  //
  4057  // Use "Send" method on the returned Request to send the API call to the service.
  4058  // the "output" return value is not valid until after Send returns without error.
  4059  //
  4060  // See RemoveAutoScalingPolicy for more information on using the RemoveAutoScalingPolicy
  4061  // API call, and error handling.
  4062  //
  4063  // This method is useful when you want to inject custom logic or configuration
  4064  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4065  //
  4066  //
  4067  //    // Example sending a request using the RemoveAutoScalingPolicyRequest method.
  4068  //    req, resp := client.RemoveAutoScalingPolicyRequest(params)
  4069  //
  4070  //    err := req.Send()
  4071  //    if err == nil { // resp is now filled
  4072  //        fmt.Println(resp)
  4073  //    }
  4074  //
  4075  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
  4076  func (c *EMR) RemoveAutoScalingPolicyRequest(input *RemoveAutoScalingPolicyInput) (req *request.Request, output *RemoveAutoScalingPolicyOutput) {
  4077  	op := &request.Operation{
  4078  		Name:       opRemoveAutoScalingPolicy,
  4079  		HTTPMethod: "POST",
  4080  		HTTPPath:   "/",
  4081  	}
  4082  
  4083  	if input == nil {
  4084  		input = &RemoveAutoScalingPolicyInput{}
  4085  	}
  4086  
  4087  	output = &RemoveAutoScalingPolicyOutput{}
  4088  	req = c.newRequest(op, input, output)
  4089  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4090  	return
  4091  }
  4092  
  4093  // RemoveAutoScalingPolicy API operation for Amazon EMR.
  4094  //
  4095  // Removes an automatic scaling policy from a specified instance group within
  4096  // an EMR cluster.
  4097  //
  4098  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4099  // with awserr.Error's Code and Message methods to get detailed information about
  4100  // the error.
  4101  //
  4102  // See the AWS API reference guide for Amazon EMR's
  4103  // API operation RemoveAutoScalingPolicy for usage and error information.
  4104  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
  4105  func (c *EMR) RemoveAutoScalingPolicy(input *RemoveAutoScalingPolicyInput) (*RemoveAutoScalingPolicyOutput, error) {
  4106  	req, out := c.RemoveAutoScalingPolicyRequest(input)
  4107  	return out, req.Send()
  4108  }
  4109  
  4110  // RemoveAutoScalingPolicyWithContext is the same as RemoveAutoScalingPolicy with the addition of
  4111  // the ability to pass a context and additional request options.
  4112  //
  4113  // See RemoveAutoScalingPolicy for details on how to use this API operation.
  4114  //
  4115  // The context must be non-nil and will be used for request cancellation. If
  4116  // the context is nil a panic will occur. In the future the SDK may create
  4117  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4118  // for more information on using Contexts.
  4119  func (c *EMR) RemoveAutoScalingPolicyWithContext(ctx aws.Context, input *RemoveAutoScalingPolicyInput, opts ...request.Option) (*RemoveAutoScalingPolicyOutput, error) {
  4120  	req, out := c.RemoveAutoScalingPolicyRequest(input)
  4121  	req.SetContext(ctx)
  4122  	req.ApplyOptions(opts...)
  4123  	return out, req.Send()
  4124  }
  4125  
  4126  const opRemoveAutoTerminationPolicy = "RemoveAutoTerminationPolicy"
  4127  
  4128  // RemoveAutoTerminationPolicyRequest generates a "aws/request.Request" representing the
  4129  // client's request for the RemoveAutoTerminationPolicy operation. The "output" return
  4130  // value will be populated with the request's response once the request completes
  4131  // successfully.
  4132  //
  4133  // Use "Send" method on the returned Request to send the API call to the service.
  4134  // the "output" return value is not valid until after Send returns without error.
  4135  //
  4136  // See RemoveAutoTerminationPolicy for more information on using the RemoveAutoTerminationPolicy
  4137  // API call, and error handling.
  4138  //
  4139  // This method is useful when you want to inject custom logic or configuration
  4140  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4141  //
  4142  //
  4143  //    // Example sending a request using the RemoveAutoTerminationPolicyRequest method.
  4144  //    req, resp := client.RemoveAutoTerminationPolicyRequest(params)
  4145  //
  4146  //    err := req.Send()
  4147  //    if err == nil { // resp is now filled
  4148  //        fmt.Println(resp)
  4149  //    }
  4150  //
  4151  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoTerminationPolicy
  4152  func (c *EMR) RemoveAutoTerminationPolicyRequest(input *RemoveAutoTerminationPolicyInput) (req *request.Request, output *RemoveAutoTerminationPolicyOutput) {
  4153  	op := &request.Operation{
  4154  		Name:       opRemoveAutoTerminationPolicy,
  4155  		HTTPMethod: "POST",
  4156  		HTTPPath:   "/",
  4157  	}
  4158  
  4159  	if input == nil {
  4160  		input = &RemoveAutoTerminationPolicyInput{}
  4161  	}
  4162  
  4163  	output = &RemoveAutoTerminationPolicyOutput{}
  4164  	req = c.newRequest(op, input, output)
  4165  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4166  	return
  4167  }
  4168  
  4169  // RemoveAutoTerminationPolicy API operation for Amazon EMR.
  4170  //
  4171  // Removes an auto-termination policy from an Amazon EMR cluster.
  4172  //
  4173  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4174  // with awserr.Error's Code and Message methods to get detailed information about
  4175  // the error.
  4176  //
  4177  // See the AWS API reference guide for Amazon EMR's
  4178  // API operation RemoveAutoTerminationPolicy for usage and error information.
  4179  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoTerminationPolicy
  4180  func (c *EMR) RemoveAutoTerminationPolicy(input *RemoveAutoTerminationPolicyInput) (*RemoveAutoTerminationPolicyOutput, error) {
  4181  	req, out := c.RemoveAutoTerminationPolicyRequest(input)
  4182  	return out, req.Send()
  4183  }
  4184  
  4185  // RemoveAutoTerminationPolicyWithContext is the same as RemoveAutoTerminationPolicy with the addition of
  4186  // the ability to pass a context and additional request options.
  4187  //
  4188  // See RemoveAutoTerminationPolicy for details on how to use this API operation.
  4189  //
  4190  // The context must be non-nil and will be used for request cancellation. If
  4191  // the context is nil a panic will occur. In the future the SDK may create
  4192  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4193  // for more information on using Contexts.
  4194  func (c *EMR) RemoveAutoTerminationPolicyWithContext(ctx aws.Context, input *RemoveAutoTerminationPolicyInput, opts ...request.Option) (*RemoveAutoTerminationPolicyOutput, error) {
  4195  	req, out := c.RemoveAutoTerminationPolicyRequest(input)
  4196  	req.SetContext(ctx)
  4197  	req.ApplyOptions(opts...)
  4198  	return out, req.Send()
  4199  }
  4200  
  4201  const opRemoveManagedScalingPolicy = "RemoveManagedScalingPolicy"
  4202  
  4203  // RemoveManagedScalingPolicyRequest generates a "aws/request.Request" representing the
  4204  // client's request for the RemoveManagedScalingPolicy operation. The "output" return
  4205  // value will be populated with the request's response once the request completes
  4206  // successfully.
  4207  //
  4208  // Use "Send" method on the returned Request to send the API call to the service.
  4209  // the "output" return value is not valid until after Send returns without error.
  4210  //
  4211  // See RemoveManagedScalingPolicy for more information on using the RemoveManagedScalingPolicy
  4212  // API call, and error handling.
  4213  //
  4214  // This method is useful when you want to inject custom logic or configuration
  4215  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4216  //
  4217  //
  4218  //    // Example sending a request using the RemoveManagedScalingPolicyRequest method.
  4219  //    req, resp := client.RemoveManagedScalingPolicyRequest(params)
  4220  //
  4221  //    err := req.Send()
  4222  //    if err == nil { // resp is now filled
  4223  //        fmt.Println(resp)
  4224  //    }
  4225  //
  4226  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
  4227  func (c *EMR) RemoveManagedScalingPolicyRequest(input *RemoveManagedScalingPolicyInput) (req *request.Request, output *RemoveManagedScalingPolicyOutput) {
  4228  	op := &request.Operation{
  4229  		Name:       opRemoveManagedScalingPolicy,
  4230  		HTTPMethod: "POST",
  4231  		HTTPPath:   "/",
  4232  	}
  4233  
  4234  	if input == nil {
  4235  		input = &RemoveManagedScalingPolicyInput{}
  4236  	}
  4237  
  4238  	output = &RemoveManagedScalingPolicyOutput{}
  4239  	req = c.newRequest(op, input, output)
  4240  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4241  	return
  4242  }
  4243  
  4244  // RemoveManagedScalingPolicy API operation for Amazon EMR.
  4245  //
  4246  // Removes a managed scaling policy from a specified EMR cluster.
  4247  //
  4248  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4249  // with awserr.Error's Code and Message methods to get detailed information about
  4250  // the error.
  4251  //
  4252  // See the AWS API reference guide for Amazon EMR's
  4253  // API operation RemoveManagedScalingPolicy for usage and error information.
  4254  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
  4255  func (c *EMR) RemoveManagedScalingPolicy(input *RemoveManagedScalingPolicyInput) (*RemoveManagedScalingPolicyOutput, error) {
  4256  	req, out := c.RemoveManagedScalingPolicyRequest(input)
  4257  	return out, req.Send()
  4258  }
  4259  
  4260  // RemoveManagedScalingPolicyWithContext is the same as RemoveManagedScalingPolicy with the addition of
  4261  // the ability to pass a context and additional request options.
  4262  //
  4263  // See RemoveManagedScalingPolicy for details on how to use this API operation.
  4264  //
  4265  // The context must be non-nil and will be used for request cancellation. If
  4266  // the context is nil a panic will occur. In the future the SDK may create
  4267  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4268  // for more information on using Contexts.
  4269  func (c *EMR) RemoveManagedScalingPolicyWithContext(ctx aws.Context, input *RemoveManagedScalingPolicyInput, opts ...request.Option) (*RemoveManagedScalingPolicyOutput, error) {
  4270  	req, out := c.RemoveManagedScalingPolicyRequest(input)
  4271  	req.SetContext(ctx)
  4272  	req.ApplyOptions(opts...)
  4273  	return out, req.Send()
  4274  }
  4275  
  4276  const opRemoveTags = "RemoveTags"
  4277  
  4278  // RemoveTagsRequest generates a "aws/request.Request" representing the
  4279  // client's request for the RemoveTags operation. The "output" return
  4280  // value will be populated with the request's response once the request completes
  4281  // successfully.
  4282  //
  4283  // Use "Send" method on the returned Request to send the API call to the service.
  4284  // the "output" return value is not valid until after Send returns without error.
  4285  //
  4286  // See RemoveTags for more information on using the RemoveTags
  4287  // API call, and error handling.
  4288  //
  4289  // This method is useful when you want to inject custom logic or configuration
  4290  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4291  //
  4292  //
  4293  //    // Example sending a request using the RemoveTagsRequest method.
  4294  //    req, resp := client.RemoveTagsRequest(params)
  4295  //
  4296  //    err := req.Send()
  4297  //    if err == nil { // resp is now filled
  4298  //        fmt.Println(resp)
  4299  //    }
  4300  //
  4301  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
  4302  func (c *EMR) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
  4303  	op := &request.Operation{
  4304  		Name:       opRemoveTags,
  4305  		HTTPMethod: "POST",
  4306  		HTTPPath:   "/",
  4307  	}
  4308  
  4309  	if input == nil {
  4310  		input = &RemoveTagsInput{}
  4311  	}
  4312  
  4313  	output = &RemoveTagsOutput{}
  4314  	req = c.newRequest(op, input, output)
  4315  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4316  	return
  4317  }
  4318  
  4319  // RemoveTags API operation for Amazon EMR.
  4320  //
  4321  // Removes tags from an Amazon EMR resource, such as a cluster or Amazon EMR
  4322  // Studio. Tags make it easier to associate resources in various ways, such
  4323  // as grouping clusters to track your Amazon EMR resource allocation costs.
  4324  // For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
  4325  //
  4326  // The following example removes the stack tag with value Prod from a cluster:
  4327  //
  4328  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4329  // with awserr.Error's Code and Message methods to get detailed information about
  4330  // the error.
  4331  //
  4332  // See the AWS API reference guide for Amazon EMR's
  4333  // API operation RemoveTags for usage and error information.
  4334  //
  4335  // Returned Error Types:
  4336  //   * InternalServerException
  4337  //   This exception occurs when there is an internal failure in the Amazon EMR
  4338  //   service.
  4339  //
  4340  //   * InvalidRequestException
  4341  //   This exception occurs when there is something wrong with user input.
  4342  //
  4343  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
  4344  func (c *EMR) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
  4345  	req, out := c.RemoveTagsRequest(input)
  4346  	return out, req.Send()
  4347  }
  4348  
  4349  // RemoveTagsWithContext is the same as RemoveTags with the addition of
  4350  // the ability to pass a context and additional request options.
  4351  //
  4352  // See RemoveTags for details on how to use this API operation.
  4353  //
  4354  // The context must be non-nil and will be used for request cancellation. If
  4355  // the context is nil a panic will occur. In the future the SDK may create
  4356  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4357  // for more information on using Contexts.
  4358  func (c *EMR) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
  4359  	req, out := c.RemoveTagsRequest(input)
  4360  	req.SetContext(ctx)
  4361  	req.ApplyOptions(opts...)
  4362  	return out, req.Send()
  4363  }
  4364  
  4365  const opRunJobFlow = "RunJobFlow"
  4366  
  4367  // RunJobFlowRequest generates a "aws/request.Request" representing the
  4368  // client's request for the RunJobFlow operation. The "output" return
  4369  // value will be populated with the request's response once the request completes
  4370  // successfully.
  4371  //
  4372  // Use "Send" method on the returned Request to send the API call to the service.
  4373  // the "output" return value is not valid until after Send returns without error.
  4374  //
  4375  // See RunJobFlow for more information on using the RunJobFlow
  4376  // API call, and error handling.
  4377  //
  4378  // This method is useful when you want to inject custom logic or configuration
  4379  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4380  //
  4381  //
  4382  //    // Example sending a request using the RunJobFlowRequest method.
  4383  //    req, resp := client.RunJobFlowRequest(params)
  4384  //
  4385  //    err := req.Send()
  4386  //    if err == nil { // resp is now filled
  4387  //        fmt.Println(resp)
  4388  //    }
  4389  //
  4390  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
  4391  func (c *EMR) RunJobFlowRequest(input *RunJobFlowInput) (req *request.Request, output *RunJobFlowOutput) {
  4392  	op := &request.Operation{
  4393  		Name:       opRunJobFlow,
  4394  		HTTPMethod: "POST",
  4395  		HTTPPath:   "/",
  4396  	}
  4397  
  4398  	if input == nil {
  4399  		input = &RunJobFlowInput{}
  4400  	}
  4401  
  4402  	output = &RunJobFlowOutput{}
  4403  	req = c.newRequest(op, input, output)
  4404  	return
  4405  }
  4406  
  4407  // RunJobFlow API operation for Amazon EMR.
  4408  //
  4409  // RunJobFlow creates and starts running a new cluster (job flow). The cluster
  4410  // runs the steps specified. After the steps complete, the cluster stops and
  4411  // the HDFS partition is lost. To prevent loss of data, configure the last step
  4412  // of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig
  4413  // KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions
  4414  // to the WAITING state rather than shutting down after the steps have completed.
  4415  //
  4416  // For additional protection, you can set the JobFlowInstancesConfig TerminationProtected
  4417  // parameter to TRUE to lock the cluster and prevent it from being terminated
  4418  // by API call, user intervention, or in the event of a job flow error.
  4419  //
  4420  // A maximum of 256 steps are allowed in each job flow.
  4421  //
  4422  // If your cluster is long-running (such as a Hive data warehouse) or complex,
  4423  // you may require more than 256 steps to process your data. You can bypass
  4424  // the 256-step limitation in various ways, including using the SSH shell to
  4425  // connect to the master node and submitting queries directly to the software
  4426  // running on the master node, such as Hive and Hadoop. For more information
  4427  // on how to do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
  4428  // in the Amazon EMR Management Guide.
  4429  //
  4430  // For long running clusters, we recommend that you periodically store your
  4431  // results.
  4432  //
  4433  // The instance fleets configuration is available only in Amazon EMR versions
  4434  // 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain
  4435  // InstanceFleets parameters or InstanceGroups parameters, but not both.
  4436  //
  4437  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4438  // with awserr.Error's Code and Message methods to get detailed information about
  4439  // the error.
  4440  //
  4441  // See the AWS API reference guide for Amazon EMR's
  4442  // API operation RunJobFlow for usage and error information.
  4443  //
  4444  // Returned Error Types:
  4445  //   * InternalServerError
  4446  //   Indicates that an error occurred while processing the request and that the
  4447  //   request was not completed.
  4448  //
  4449  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
  4450  func (c *EMR) RunJobFlow(input *RunJobFlowInput) (*RunJobFlowOutput, error) {
  4451  	req, out := c.RunJobFlowRequest(input)
  4452  	return out, req.Send()
  4453  }
  4454  
  4455  // RunJobFlowWithContext is the same as RunJobFlow with the addition of
  4456  // the ability to pass a context and additional request options.
  4457  //
  4458  // See RunJobFlow for details on how to use this API operation.
  4459  //
  4460  // The context must be non-nil and will be used for request cancellation. If
  4461  // the context is nil a panic will occur. In the future the SDK may create
  4462  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4463  // for more information on using Contexts.
  4464  func (c *EMR) RunJobFlowWithContext(ctx aws.Context, input *RunJobFlowInput, opts ...request.Option) (*RunJobFlowOutput, error) {
  4465  	req, out := c.RunJobFlowRequest(input)
  4466  	req.SetContext(ctx)
  4467  	req.ApplyOptions(opts...)
  4468  	return out, req.Send()
  4469  }
  4470  
  4471  const opSetTerminationProtection = "SetTerminationProtection"
  4472  
  4473  // SetTerminationProtectionRequest generates a "aws/request.Request" representing the
  4474  // client's request for the SetTerminationProtection operation. The "output" return
  4475  // value will be populated with the request's response once the request completes
  4476  // successfully.
  4477  //
  4478  // Use "Send" method on the returned Request to send the API call to the service.
  4479  // the "output" return value is not valid until after Send returns without error.
  4480  //
  4481  // See SetTerminationProtection for more information on using the SetTerminationProtection
  4482  // API call, and error handling.
  4483  //
  4484  // This method is useful when you want to inject custom logic or configuration
  4485  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4486  //
  4487  //
  4488  //    // Example sending a request using the SetTerminationProtectionRequest method.
  4489  //    req, resp := client.SetTerminationProtectionRequest(params)
  4490  //
  4491  //    err := req.Send()
  4492  //    if err == nil { // resp is now filled
  4493  //        fmt.Println(resp)
  4494  //    }
  4495  //
  4496  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
  4497  func (c *EMR) SetTerminationProtectionRequest(input *SetTerminationProtectionInput) (req *request.Request, output *SetTerminationProtectionOutput) {
  4498  	op := &request.Operation{
  4499  		Name:       opSetTerminationProtection,
  4500  		HTTPMethod: "POST",
  4501  		HTTPPath:   "/",
  4502  	}
  4503  
  4504  	if input == nil {
  4505  		input = &SetTerminationProtectionInput{}
  4506  	}
  4507  
  4508  	output = &SetTerminationProtectionOutput{}
  4509  	req = c.newRequest(op, input, output)
  4510  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4511  	return
  4512  }
  4513  
  4514  // SetTerminationProtection API operation for Amazon EMR.
  4515  //
  4516  // SetTerminationProtection locks a cluster (job flow) so the EC2 instances
  4517  // in the cluster cannot be terminated by user intervention, an API call, or
  4518  // in the event of a job-flow error. The cluster still terminates upon successful
  4519  // completion of the job flow. Calling SetTerminationProtection on a cluster
  4520  // is similar to calling the Amazon EC2 DisableAPITermination API on all EC2
  4521  // instances in a cluster.
  4522  //
  4523  // SetTerminationProtection is used to prevent accidental termination of a cluster
  4524  // and to ensure that in the event of an error, the instances persist so that
  4525  // you can recover any data stored in their ephemeral instance storage.
  4526  //
  4527  // To terminate a cluster that has been locked by setting SetTerminationProtection
  4528  // to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection
  4529  // in which you set the value to false.
  4530  //
  4531  // For more information, seeManaging Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)
  4532  // in the Amazon EMR Management Guide.
  4533  //
  4534  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4535  // with awserr.Error's Code and Message methods to get detailed information about
  4536  // the error.
  4537  //
  4538  // See the AWS API reference guide for Amazon EMR's
  4539  // API operation SetTerminationProtection for usage and error information.
  4540  //
  4541  // Returned Error Types:
  4542  //   * InternalServerError
  4543  //   Indicates that an error occurred while processing the request and that the
  4544  //   request was not completed.
  4545  //
  4546  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
  4547  func (c *EMR) SetTerminationProtection(input *SetTerminationProtectionInput) (*SetTerminationProtectionOutput, error) {
  4548  	req, out := c.SetTerminationProtectionRequest(input)
  4549  	return out, req.Send()
  4550  }
  4551  
  4552  // SetTerminationProtectionWithContext is the same as SetTerminationProtection with the addition of
  4553  // the ability to pass a context and additional request options.
  4554  //
  4555  // See SetTerminationProtection for details on how to use this API operation.
  4556  //
  4557  // The context must be non-nil and will be used for request cancellation. If
  4558  // the context is nil a panic will occur. In the future the SDK may create
  4559  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4560  // for more information on using Contexts.
  4561  func (c *EMR) SetTerminationProtectionWithContext(ctx aws.Context, input *SetTerminationProtectionInput, opts ...request.Option) (*SetTerminationProtectionOutput, error) {
  4562  	req, out := c.SetTerminationProtectionRequest(input)
  4563  	req.SetContext(ctx)
  4564  	req.ApplyOptions(opts...)
  4565  	return out, req.Send()
  4566  }
  4567  
  4568  const opSetVisibleToAllUsers = "SetVisibleToAllUsers"
  4569  
  4570  // SetVisibleToAllUsersRequest generates a "aws/request.Request" representing the
  4571  // client's request for the SetVisibleToAllUsers operation. The "output" return
  4572  // value will be populated with the request's response once the request completes
  4573  // successfully.
  4574  //
  4575  // Use "Send" method on the returned Request to send the API call to the service.
  4576  // the "output" return value is not valid until after Send returns without error.
  4577  //
  4578  // See SetVisibleToAllUsers for more information on using the SetVisibleToAllUsers
  4579  // API call, and error handling.
  4580  //
  4581  // This method is useful when you want to inject custom logic or configuration
  4582  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4583  //
  4584  //
  4585  //    // Example sending a request using the SetVisibleToAllUsersRequest method.
  4586  //    req, resp := client.SetVisibleToAllUsersRequest(params)
  4587  //
  4588  //    err := req.Send()
  4589  //    if err == nil { // resp is now filled
  4590  //        fmt.Println(resp)
  4591  //    }
  4592  //
  4593  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
  4594  func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req *request.Request, output *SetVisibleToAllUsersOutput) {
  4595  	op := &request.Operation{
  4596  		Name:       opSetVisibleToAllUsers,
  4597  		HTTPMethod: "POST",
  4598  		HTTPPath:   "/",
  4599  	}
  4600  
  4601  	if input == nil {
  4602  		input = &SetVisibleToAllUsersInput{}
  4603  	}
  4604  
  4605  	output = &SetVisibleToAllUsersOutput{}
  4606  	req = c.newRequest(op, input, output)
  4607  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4608  	return
  4609  }
  4610  
  4611  // SetVisibleToAllUsers API operation for Amazon EMR.
  4612  //
  4613  // Sets the Cluster$VisibleToAllUsers value for an EMR cluster. When true, IAM
  4614  // principals in the Amazon Web Services account can perform EMR cluster actions
  4615  // that their IAM policies allow. When false, only the IAM principal that created
  4616  // the cluster and the Amazon Web Services account root user can perform EMR
  4617  // actions on the cluster, regardless of IAM permissions policies attached to
  4618  // other IAM principals.
  4619  //
  4620  // This action works on running clusters. When you create a cluster, use the
  4621  // RunJobFlowInput$VisibleToAllUsers parameter.
  4622  //
  4623  // For more information, see Understanding the EMR Cluster VisibleToAllUsers
  4624  // Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
  4625  // in the Amazon EMRManagement Guide.
  4626  //
  4627  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4628  // with awserr.Error's Code and Message methods to get detailed information about
  4629  // the error.
  4630  //
  4631  // See the AWS API reference guide for Amazon EMR's
  4632  // API operation SetVisibleToAllUsers for usage and error information.
  4633  //
  4634  // Returned Error Types:
  4635  //   * InternalServerError
  4636  //   Indicates that an error occurred while processing the request and that the
  4637  //   request was not completed.
  4638  //
  4639  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
  4640  func (c *EMR) SetVisibleToAllUsers(input *SetVisibleToAllUsersInput) (*SetVisibleToAllUsersOutput, error) {
  4641  	req, out := c.SetVisibleToAllUsersRequest(input)
  4642  	return out, req.Send()
  4643  }
  4644  
  4645  // SetVisibleToAllUsersWithContext is the same as SetVisibleToAllUsers with the addition of
  4646  // the ability to pass a context and additional request options.
  4647  //
  4648  // See SetVisibleToAllUsers for details on how to use this API operation.
  4649  //
  4650  // The context must be non-nil and will be used for request cancellation. If
  4651  // the context is nil a panic will occur. In the future the SDK may create
  4652  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4653  // for more information on using Contexts.
  4654  func (c *EMR) SetVisibleToAllUsersWithContext(ctx aws.Context, input *SetVisibleToAllUsersInput, opts ...request.Option) (*SetVisibleToAllUsersOutput, error) {
  4655  	req, out := c.SetVisibleToAllUsersRequest(input)
  4656  	req.SetContext(ctx)
  4657  	req.ApplyOptions(opts...)
  4658  	return out, req.Send()
  4659  }
  4660  
  4661  const opStartNotebookExecution = "StartNotebookExecution"
  4662  
  4663  // StartNotebookExecutionRequest generates a "aws/request.Request" representing the
  4664  // client's request for the StartNotebookExecution operation. The "output" return
  4665  // value will be populated with the request's response once the request completes
  4666  // successfully.
  4667  //
  4668  // Use "Send" method on the returned Request to send the API call to the service.
  4669  // the "output" return value is not valid until after Send returns without error.
  4670  //
  4671  // See StartNotebookExecution for more information on using the StartNotebookExecution
  4672  // API call, and error handling.
  4673  //
  4674  // This method is useful when you want to inject custom logic or configuration
  4675  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4676  //
  4677  //
  4678  //    // Example sending a request using the StartNotebookExecutionRequest method.
  4679  //    req, resp := client.StartNotebookExecutionRequest(params)
  4680  //
  4681  //    err := req.Send()
  4682  //    if err == nil { // resp is now filled
  4683  //        fmt.Println(resp)
  4684  //    }
  4685  //
  4686  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
  4687  func (c *EMR) StartNotebookExecutionRequest(input *StartNotebookExecutionInput) (req *request.Request, output *StartNotebookExecutionOutput) {
  4688  	op := &request.Operation{
  4689  		Name:       opStartNotebookExecution,
  4690  		HTTPMethod: "POST",
  4691  		HTTPPath:   "/",
  4692  	}
  4693  
  4694  	if input == nil {
  4695  		input = &StartNotebookExecutionInput{}
  4696  	}
  4697  
  4698  	output = &StartNotebookExecutionOutput{}
  4699  	req = c.newRequest(op, input, output)
  4700  	return
  4701  }
  4702  
  4703  // StartNotebookExecution API operation for Amazon EMR.
  4704  //
  4705  // Starts a notebook execution.
  4706  //
  4707  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4708  // with awserr.Error's Code and Message methods to get detailed information about
  4709  // the error.
  4710  //
  4711  // See the AWS API reference guide for Amazon EMR's
  4712  // API operation StartNotebookExecution for usage and error information.
  4713  //
  4714  // Returned Error Types:
  4715  //   * InternalServerException
  4716  //   This exception occurs when there is an internal failure in the Amazon EMR
  4717  //   service.
  4718  //
  4719  //   * InvalidRequestException
  4720  //   This exception occurs when there is something wrong with user input.
  4721  //
  4722  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
  4723  func (c *EMR) StartNotebookExecution(input *StartNotebookExecutionInput) (*StartNotebookExecutionOutput, error) {
  4724  	req, out := c.StartNotebookExecutionRequest(input)
  4725  	return out, req.Send()
  4726  }
  4727  
  4728  // StartNotebookExecutionWithContext is the same as StartNotebookExecution with the addition of
  4729  // the ability to pass a context and additional request options.
  4730  //
  4731  // See StartNotebookExecution for details on how to use this API operation.
  4732  //
  4733  // The context must be non-nil and will be used for request cancellation. If
  4734  // the context is nil a panic will occur. In the future the SDK may create
  4735  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4736  // for more information on using Contexts.
  4737  func (c *EMR) StartNotebookExecutionWithContext(ctx aws.Context, input *StartNotebookExecutionInput, opts ...request.Option) (*StartNotebookExecutionOutput, error) {
  4738  	req, out := c.StartNotebookExecutionRequest(input)
  4739  	req.SetContext(ctx)
  4740  	req.ApplyOptions(opts...)
  4741  	return out, req.Send()
  4742  }
  4743  
  4744  const opStopNotebookExecution = "StopNotebookExecution"
  4745  
  4746  // StopNotebookExecutionRequest generates a "aws/request.Request" representing the
  4747  // client's request for the StopNotebookExecution operation. The "output" return
  4748  // value will be populated with the request's response once the request completes
  4749  // successfully.
  4750  //
  4751  // Use "Send" method on the returned Request to send the API call to the service.
  4752  // the "output" return value is not valid until after Send returns without error.
  4753  //
  4754  // See StopNotebookExecution for more information on using the StopNotebookExecution
  4755  // API call, and error handling.
  4756  //
  4757  // This method is useful when you want to inject custom logic or configuration
  4758  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4759  //
  4760  //
  4761  //    // Example sending a request using the StopNotebookExecutionRequest method.
  4762  //    req, resp := client.StopNotebookExecutionRequest(params)
  4763  //
  4764  //    err := req.Send()
  4765  //    if err == nil { // resp is now filled
  4766  //        fmt.Println(resp)
  4767  //    }
  4768  //
  4769  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
  4770  func (c *EMR) StopNotebookExecutionRequest(input *StopNotebookExecutionInput) (req *request.Request, output *StopNotebookExecutionOutput) {
  4771  	op := &request.Operation{
  4772  		Name:       opStopNotebookExecution,
  4773  		HTTPMethod: "POST",
  4774  		HTTPPath:   "/",
  4775  	}
  4776  
  4777  	if input == nil {
  4778  		input = &StopNotebookExecutionInput{}
  4779  	}
  4780  
  4781  	output = &StopNotebookExecutionOutput{}
  4782  	req = c.newRequest(op, input, output)
  4783  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4784  	return
  4785  }
  4786  
  4787  // StopNotebookExecution API operation for Amazon EMR.
  4788  //
  4789  // Stops a notebook execution.
  4790  //
  4791  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4792  // with awserr.Error's Code and Message methods to get detailed information about
  4793  // the error.
  4794  //
  4795  // See the AWS API reference guide for Amazon EMR's
  4796  // API operation StopNotebookExecution for usage and error information.
  4797  //
  4798  // Returned Error Types:
  4799  //   * InternalServerError
  4800  //   Indicates that an error occurred while processing the request and that the
  4801  //   request was not completed.
  4802  //
  4803  //   * InvalidRequestException
  4804  //   This exception occurs when there is something wrong with user input.
  4805  //
  4806  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
  4807  func (c *EMR) StopNotebookExecution(input *StopNotebookExecutionInput) (*StopNotebookExecutionOutput, error) {
  4808  	req, out := c.StopNotebookExecutionRequest(input)
  4809  	return out, req.Send()
  4810  }
  4811  
  4812  // StopNotebookExecutionWithContext is the same as StopNotebookExecution with the addition of
  4813  // the ability to pass a context and additional request options.
  4814  //
  4815  // See StopNotebookExecution for details on how to use this API operation.
  4816  //
  4817  // The context must be non-nil and will be used for request cancellation. If
  4818  // the context is nil a panic will occur. In the future the SDK may create
  4819  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4820  // for more information on using Contexts.
  4821  func (c *EMR) StopNotebookExecutionWithContext(ctx aws.Context, input *StopNotebookExecutionInput, opts ...request.Option) (*StopNotebookExecutionOutput, error) {
  4822  	req, out := c.StopNotebookExecutionRequest(input)
  4823  	req.SetContext(ctx)
  4824  	req.ApplyOptions(opts...)
  4825  	return out, req.Send()
  4826  }
  4827  
  4828  const opTerminateJobFlows = "TerminateJobFlows"
  4829  
  4830  // TerminateJobFlowsRequest generates a "aws/request.Request" representing the
  4831  // client's request for the TerminateJobFlows operation. The "output" return
  4832  // value will be populated with the request's response once the request completes
  4833  // successfully.
  4834  //
  4835  // Use "Send" method on the returned Request to send the API call to the service.
  4836  // the "output" return value is not valid until after Send returns without error.
  4837  //
  4838  // See TerminateJobFlows for more information on using the TerminateJobFlows
  4839  // API call, and error handling.
  4840  //
  4841  // This method is useful when you want to inject custom logic or configuration
  4842  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4843  //
  4844  //
  4845  //    // Example sending a request using the TerminateJobFlowsRequest method.
  4846  //    req, resp := client.TerminateJobFlowsRequest(params)
  4847  //
  4848  //    err := req.Send()
  4849  //    if err == nil { // resp is now filled
  4850  //        fmt.Println(resp)
  4851  //    }
  4852  //
  4853  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
  4854  func (c *EMR) TerminateJobFlowsRequest(input *TerminateJobFlowsInput) (req *request.Request, output *TerminateJobFlowsOutput) {
  4855  	op := &request.Operation{
  4856  		Name:       opTerminateJobFlows,
  4857  		HTTPMethod: "POST",
  4858  		HTTPPath:   "/",
  4859  	}
  4860  
  4861  	if input == nil {
  4862  		input = &TerminateJobFlowsInput{}
  4863  	}
  4864  
  4865  	output = &TerminateJobFlowsOutput{}
  4866  	req = c.newRequest(op, input, output)
  4867  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4868  	return
  4869  }
  4870  
  4871  // TerminateJobFlows API operation for Amazon EMR.
  4872  //
  4873  // TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow
  4874  // is shut down, any step not yet completed is canceled and the EC2 instances
  4875  // on which the cluster is running are stopped. Any log files not already saved
  4876  // are uploaded to Amazon S3 if a LogUri was specified when the cluster was
  4877  // created.
  4878  //
  4879  // The maximum number of clusters allowed is 10. The call to TerminateJobFlows
  4880  // is asynchronous. Depending on the configuration of the cluster, it may take
  4881  // up to 1-5 minutes for the cluster to completely terminate and release allocated
  4882  // resources, such as Amazon EC2 instances.
  4883  //
  4884  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4885  // with awserr.Error's Code and Message methods to get detailed information about
  4886  // the error.
  4887  //
  4888  // See the AWS API reference guide for Amazon EMR's
  4889  // API operation TerminateJobFlows for usage and error information.
  4890  //
  4891  // Returned Error Types:
  4892  //   * InternalServerError
  4893  //   Indicates that an error occurred while processing the request and that the
  4894  //   request was not completed.
  4895  //
  4896  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
  4897  func (c *EMR) TerminateJobFlows(input *TerminateJobFlowsInput) (*TerminateJobFlowsOutput, error) {
  4898  	req, out := c.TerminateJobFlowsRequest(input)
  4899  	return out, req.Send()
  4900  }
  4901  
  4902  // TerminateJobFlowsWithContext is the same as TerminateJobFlows with the addition of
  4903  // the ability to pass a context and additional request options.
  4904  //
  4905  // See TerminateJobFlows for details on how to use this API operation.
  4906  //
  4907  // The context must be non-nil and will be used for request cancellation. If
  4908  // the context is nil a panic will occur. In the future the SDK may create
  4909  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4910  // for more information on using Contexts.
  4911  func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobFlowsInput, opts ...request.Option) (*TerminateJobFlowsOutput, error) {
  4912  	req, out := c.TerminateJobFlowsRequest(input)
  4913  	req.SetContext(ctx)
  4914  	req.ApplyOptions(opts...)
  4915  	return out, req.Send()
  4916  }
  4917  
  4918  const opUpdateStudio = "UpdateStudio"
  4919  
  4920  // UpdateStudioRequest generates a "aws/request.Request" representing the
  4921  // client's request for the UpdateStudio operation. The "output" return
  4922  // value will be populated with the request's response once the request completes
  4923  // successfully.
  4924  //
  4925  // Use "Send" method on the returned Request to send the API call to the service.
  4926  // the "output" return value is not valid until after Send returns without error.
  4927  //
  4928  // See UpdateStudio for more information on using the UpdateStudio
  4929  // API call, and error handling.
  4930  //
  4931  // This method is useful when you want to inject custom logic or configuration
  4932  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4933  //
  4934  //
  4935  //    // Example sending a request using the UpdateStudioRequest method.
  4936  //    req, resp := client.UpdateStudioRequest(params)
  4937  //
  4938  //    err := req.Send()
  4939  //    if err == nil { // resp is now filled
  4940  //        fmt.Println(resp)
  4941  //    }
  4942  //
  4943  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
  4944  func (c *EMR) UpdateStudioRequest(input *UpdateStudioInput) (req *request.Request, output *UpdateStudioOutput) {
  4945  	op := &request.Operation{
  4946  		Name:       opUpdateStudio,
  4947  		HTTPMethod: "POST",
  4948  		HTTPPath:   "/",
  4949  	}
  4950  
  4951  	if input == nil {
  4952  		input = &UpdateStudioInput{}
  4953  	}
  4954  
  4955  	output = &UpdateStudioOutput{}
  4956  	req = c.newRequest(op, input, output)
  4957  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4958  	return
  4959  }
  4960  
  4961  // UpdateStudio API operation for Amazon EMR.
  4962  //
  4963  // Updates an Amazon EMR Studio configuration, including attributes such as
  4964  // name, description, and subnets.
  4965  //
  4966  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4967  // with awserr.Error's Code and Message methods to get detailed information about
  4968  // the error.
  4969  //
  4970  // See the AWS API reference guide for Amazon EMR's
  4971  // API operation UpdateStudio for usage and error information.
  4972  //
  4973  // Returned Error Types:
  4974  //   * InternalServerException
  4975  //   This exception occurs when there is an internal failure in the Amazon EMR
  4976  //   service.
  4977  //
  4978  //   * InvalidRequestException
  4979  //   This exception occurs when there is something wrong with user input.
  4980  //
  4981  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
  4982  func (c *EMR) UpdateStudio(input *UpdateStudioInput) (*UpdateStudioOutput, error) {
  4983  	req, out := c.UpdateStudioRequest(input)
  4984  	return out, req.Send()
  4985  }
  4986  
  4987  // UpdateStudioWithContext is the same as UpdateStudio with the addition of
  4988  // the ability to pass a context and additional request options.
  4989  //
  4990  // See UpdateStudio for details on how to use this API operation.
  4991  //
  4992  // The context must be non-nil and will be used for request cancellation. If
  4993  // the context is nil a panic will occur. In the future the SDK may create
  4994  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4995  // for more information on using Contexts.
  4996  func (c *EMR) UpdateStudioWithContext(ctx aws.Context, input *UpdateStudioInput, opts ...request.Option) (*UpdateStudioOutput, error) {
  4997  	req, out := c.UpdateStudioRequest(input)
  4998  	req.SetContext(ctx)
  4999  	req.ApplyOptions(opts...)
  5000  	return out, req.Send()
  5001  }
  5002  
  5003  const opUpdateStudioSessionMapping = "UpdateStudioSessionMapping"
  5004  
  5005  // UpdateStudioSessionMappingRequest generates a "aws/request.Request" representing the
  5006  // client's request for the UpdateStudioSessionMapping operation. The "output" return
  5007  // value will be populated with the request's response once the request completes
  5008  // successfully.
  5009  //
  5010  // Use "Send" method on the returned Request to send the API call to the service.
  5011  // the "output" return value is not valid until after Send returns without error.
  5012  //
  5013  // See UpdateStudioSessionMapping for more information on using the UpdateStudioSessionMapping
  5014  // API call, and error handling.
  5015  //
  5016  // This method is useful when you want to inject custom logic or configuration
  5017  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5018  //
  5019  //
  5020  //    // Example sending a request using the UpdateStudioSessionMappingRequest method.
  5021  //    req, resp := client.UpdateStudioSessionMappingRequest(params)
  5022  //
  5023  //    err := req.Send()
  5024  //    if err == nil { // resp is now filled
  5025  //        fmt.Println(resp)
  5026  //    }
  5027  //
  5028  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
  5029  func (c *EMR) UpdateStudioSessionMappingRequest(input *UpdateStudioSessionMappingInput) (req *request.Request, output *UpdateStudioSessionMappingOutput) {
  5030  	op := &request.Operation{
  5031  		Name:       opUpdateStudioSessionMapping,
  5032  		HTTPMethod: "POST",
  5033  		HTTPPath:   "/",
  5034  	}
  5035  
  5036  	if input == nil {
  5037  		input = &UpdateStudioSessionMappingInput{}
  5038  	}
  5039  
  5040  	output = &UpdateStudioSessionMappingOutput{}
  5041  	req = c.newRequest(op, input, output)
  5042  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5043  	return
  5044  }
  5045  
  5046  // UpdateStudioSessionMapping API operation for Amazon EMR.
  5047  //
  5048  // Updates the session policy attached to the user or group for the specified
  5049  // Amazon EMR Studio.
  5050  //
  5051  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5052  // with awserr.Error's Code and Message methods to get detailed information about
  5053  // the error.
  5054  //
  5055  // See the AWS API reference guide for Amazon EMR's
  5056  // API operation UpdateStudioSessionMapping for usage and error information.
  5057  //
  5058  // Returned Error Types:
  5059  //   * InternalServerError
  5060  //   Indicates that an error occurred while processing the request and that the
  5061  //   request was not completed.
  5062  //
  5063  //   * InvalidRequestException
  5064  //   This exception occurs when there is something wrong with user input.
  5065  //
  5066  // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
  5067  func (c *EMR) UpdateStudioSessionMapping(input *UpdateStudioSessionMappingInput) (*UpdateStudioSessionMappingOutput, error) {
  5068  	req, out := c.UpdateStudioSessionMappingRequest(input)
  5069  	return out, req.Send()
  5070  }
  5071  
  5072  // UpdateStudioSessionMappingWithContext is the same as UpdateStudioSessionMapping with the addition of
  5073  // the ability to pass a context and additional request options.
  5074  //
  5075  // See UpdateStudioSessionMapping for details on how to use this API operation.
  5076  //
  5077  // The context must be non-nil and will be used for request cancellation. If
  5078  // the context is nil a panic will occur. In the future the SDK may create
  5079  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5080  // for more information on using Contexts.
  5081  func (c *EMR) UpdateStudioSessionMappingWithContext(ctx aws.Context, input *UpdateStudioSessionMappingInput, opts ...request.Option) (*UpdateStudioSessionMappingOutput, error) {
  5082  	req, out := c.UpdateStudioSessionMappingRequest(input)
  5083  	req.SetContext(ctx)
  5084  	req.ApplyOptions(opts...)
  5085  	return out, req.Send()
  5086  }
  5087  
  5088  type AddInstanceFleetInput struct {
  5089  	_ struct{} `type:"structure"`
  5090  
  5091  	// The unique identifier of the cluster.
  5092  	//
  5093  	// ClusterId is a required field
  5094  	ClusterId *string `type:"string" required:"true"`
  5095  
  5096  	// Specifies the configuration of the instance fleet.
  5097  	//
  5098  	// InstanceFleet is a required field
  5099  	InstanceFleet *InstanceFleetConfig `type:"structure" required:"true"`
  5100  }
  5101  
  5102  // String returns the string representation.
  5103  //
  5104  // API parameter values that are decorated as "sensitive" in the API will not
  5105  // be included in the string output. The member name will be present, but the
  5106  // value will be replaced with "sensitive".
  5107  func (s AddInstanceFleetInput) String() string {
  5108  	return awsutil.Prettify(s)
  5109  }
  5110  
  5111  // GoString returns the string representation.
  5112  //
  5113  // API parameter values that are decorated as "sensitive" in the API will not
  5114  // be included in the string output. The member name will be present, but the
  5115  // value will be replaced with "sensitive".
  5116  func (s AddInstanceFleetInput) GoString() string {
  5117  	return s.String()
  5118  }
  5119  
  5120  // Validate inspects the fields of the type to determine if they are valid.
  5121  func (s *AddInstanceFleetInput) Validate() error {
  5122  	invalidParams := request.ErrInvalidParams{Context: "AddInstanceFleetInput"}
  5123  	if s.ClusterId == nil {
  5124  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
  5125  	}
  5126  	if s.InstanceFleet == nil {
  5127  		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
  5128  	}
  5129  	if s.InstanceFleet != nil {
  5130  		if err := s.InstanceFleet.Validate(); err != nil {
  5131  			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
  5132  		}
  5133  	}
  5134  
  5135  	if invalidParams.Len() > 0 {
  5136  		return invalidParams
  5137  	}
  5138  	return nil
  5139  }
  5140  
  5141  // SetClusterId sets the ClusterId field's value.
  5142  func (s *AddInstanceFleetInput) SetClusterId(v string) *AddInstanceFleetInput {
  5143  	s.ClusterId = &v
  5144  	return s
  5145  }
  5146  
  5147  // SetInstanceFleet sets the InstanceFleet field's value.
  5148  func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddInstanceFleetInput {
  5149  	s.InstanceFleet = v
  5150  	return s
  5151  }
  5152  
  5153  type AddInstanceFleetOutput struct {
  5154  	_ struct{} `type:"structure"`
  5155  
  5156  	// The Amazon Resource Name of the cluster.
  5157  	ClusterArn *string `min:"20" type:"string"`
  5158  
  5159  	// The unique identifier of the cluster.
  5160  	ClusterId *string `type:"string"`
  5161  
  5162  	// The unique identifier of the instance fleet.
  5163  	InstanceFleetId *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 AddInstanceFleetOutput) 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 AddInstanceFleetOutput) GoString() string {
  5181  	return s.String()
  5182  }
  5183  
  5184  // SetClusterArn sets the ClusterArn field's value.
  5185  func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput {
  5186  	s.ClusterArn = &v
  5187  	return s
  5188  }
  5189  
  5190  // SetClusterId sets the ClusterId field's value.
  5191  func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput {
  5192  	s.ClusterId = &v
  5193  	return s
  5194  }
  5195  
  5196  // SetInstanceFleetId sets the InstanceFleetId field's value.
  5197  func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetOutput {
  5198  	s.InstanceFleetId = &v
  5199  	return s
  5200  }
  5201  
  5202  // Input to an AddInstanceGroups call.
  5203  type AddInstanceGroupsInput struct {
  5204  	_ struct{} `type:"structure"`
  5205  
  5206  	// Instance groups to add.
  5207  	//
  5208  	// InstanceGroups is a required field
  5209  	InstanceGroups []*InstanceGroupConfig `type:"list" required:"true"`
  5210  
  5211  	// Job flow in which to add the instance groups.
  5212  	//
  5213  	// JobFlowId is a required field
  5214  	JobFlowId *string `type:"string" required:"true"`
  5215  }
  5216  
  5217  // String returns the string representation.
  5218  //
  5219  // API parameter values that are decorated as "sensitive" in the API will not
  5220  // be included in the string output. The member name will be present, but the
  5221  // value will be replaced with "sensitive".
  5222  func (s AddInstanceGroupsInput) String() string {
  5223  	return awsutil.Prettify(s)
  5224  }
  5225  
  5226  // GoString returns the string representation.
  5227  //
  5228  // API parameter values that are decorated as "sensitive" in the API will not
  5229  // be included in the string output. The member name will be present, but the
  5230  // value will be replaced with "sensitive".
  5231  func (s AddInstanceGroupsInput) GoString() string {
  5232  	return s.String()
  5233  }
  5234  
  5235  // Validate inspects the fields of the type to determine if they are valid.
  5236  func (s *AddInstanceGroupsInput) Validate() error {
  5237  	invalidParams := request.ErrInvalidParams{Context: "AddInstanceGroupsInput"}
  5238  	if s.InstanceGroups == nil {
  5239  		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
  5240  	}
  5241  	if s.JobFlowId == nil {
  5242  		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
  5243  	}
  5244  	if s.InstanceGroups != nil {
  5245  		for i, v := range s.InstanceGroups {
  5246  			if v == nil {
  5247  				continue
  5248  			}
  5249  			if err := v.Validate(); err != nil {
  5250  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
  5251  			}
  5252  		}
  5253  	}
  5254  
  5255  	if invalidParams.Len() > 0 {
  5256  		return invalidParams
  5257  	}
  5258  	return nil
  5259  }
  5260  
  5261  // SetInstanceGroups sets the InstanceGroups field's value.
  5262  func (s *AddInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupConfig) *AddInstanceGroupsInput {
  5263  	s.InstanceGroups = v
  5264  	return s
  5265  }
  5266  
  5267  // SetJobFlowId sets the JobFlowId field's value.
  5268  func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput {
  5269  	s.JobFlowId = &v
  5270  	return s
  5271  }
  5272  
  5273  // Output from an AddInstanceGroups call.
  5274  type AddInstanceGroupsOutput struct {
  5275  	_ struct{} `type:"structure"`
  5276  
  5277  	// The Amazon Resource Name of the cluster.
  5278  	ClusterArn *string `min:"20" type:"string"`
  5279  
  5280  	// Instance group IDs of the newly created instance groups.
  5281  	InstanceGroupIds []*string `type:"list"`
  5282  
  5283  	// The job flow ID in which the instance groups are added.
  5284  	JobFlowId *string `type:"string"`
  5285  }
  5286  
  5287  // String returns the string representation.
  5288  //
  5289  // API parameter values that are decorated as "sensitive" in the API will not
  5290  // be included in the string output. The member name will be present, but the
  5291  // value will be replaced with "sensitive".
  5292  func (s AddInstanceGroupsOutput) String() string {
  5293  	return awsutil.Prettify(s)
  5294  }
  5295  
  5296  // GoString returns the string representation.
  5297  //
  5298  // API parameter values that are decorated as "sensitive" in the API will not
  5299  // be included in the string output. The member name will be present, but the
  5300  // value will be replaced with "sensitive".
  5301  func (s AddInstanceGroupsOutput) GoString() string {
  5302  	return s.String()
  5303  }
  5304  
  5305  // SetClusterArn sets the ClusterArn field's value.
  5306  func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput {
  5307  	s.ClusterArn = &v
  5308  	return s
  5309  }
  5310  
  5311  // SetInstanceGroupIds sets the InstanceGroupIds field's value.
  5312  func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput {
  5313  	s.InstanceGroupIds = v
  5314  	return s
  5315  }
  5316  
  5317  // SetJobFlowId sets the JobFlowId field's value.
  5318  func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutput {
  5319  	s.JobFlowId = &v
  5320  	return s
  5321  }
  5322  
  5323  // The input argument to the AddJobFlowSteps operation.
  5324  type AddJobFlowStepsInput struct {
  5325  	_ struct{} `type:"structure"`
  5326  
  5327  	// A string that uniquely identifies the job flow. This identifier is returned
  5328  	// by RunJobFlow and can also be obtained from ListClusters.
  5329  	//
  5330  	// JobFlowId is a required field
  5331  	JobFlowId *string `type:"string" required:"true"`
  5332  
  5333  	// A list of StepConfig to be executed by the job flow.
  5334  	//
  5335  	// Steps is a required field
  5336  	Steps []*StepConfig `type:"list" required:"true"`
  5337  }
  5338  
  5339  // String returns the string representation.
  5340  //
  5341  // API parameter values that are decorated as "sensitive" in the API will not
  5342  // be included in the string output. The member name will be present, but the
  5343  // value will be replaced with "sensitive".
  5344  func (s AddJobFlowStepsInput) String() string {
  5345  	return awsutil.Prettify(s)
  5346  }
  5347  
  5348  // GoString returns the string representation.
  5349  //
  5350  // API parameter values that are decorated as "sensitive" in the API will not
  5351  // be included in the string output. The member name will be present, but the
  5352  // value will be replaced with "sensitive".
  5353  func (s AddJobFlowStepsInput) GoString() string {
  5354  	return s.String()
  5355  }
  5356  
  5357  // Validate inspects the fields of the type to determine if they are valid.
  5358  func (s *AddJobFlowStepsInput) Validate() error {
  5359  	invalidParams := request.ErrInvalidParams{Context: "AddJobFlowStepsInput"}
  5360  	if s.JobFlowId == nil {
  5361  		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
  5362  	}
  5363  	if s.Steps == nil {
  5364  		invalidParams.Add(request.NewErrParamRequired("Steps"))
  5365  	}
  5366  	if s.Steps != nil {
  5367  		for i, v := range s.Steps {
  5368  			if v == nil {
  5369  				continue
  5370  			}
  5371  			if err := v.Validate(); err != nil {
  5372  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
  5373  			}
  5374  		}
  5375  	}
  5376  
  5377  	if invalidParams.Len() > 0 {
  5378  		return invalidParams
  5379  	}
  5380  	return nil
  5381  }
  5382  
  5383  // SetJobFlowId sets the JobFlowId field's value.
  5384  func (s *AddJobFlowStepsInput) SetJobFlowId(v string) *AddJobFlowStepsInput {
  5385  	s.JobFlowId = &v
  5386  	return s
  5387  }
  5388  
  5389  // SetSteps sets the Steps field's value.
  5390  func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput {
  5391  	s.Steps = v
  5392  	return s
  5393  }
  5394  
  5395  // The output for the AddJobFlowSteps operation.
  5396  type AddJobFlowStepsOutput struct {
  5397  	_ struct{} `type:"structure"`
  5398  
  5399  	// The identifiers of the list of steps added to the job flow.
  5400  	StepIds []*string `type:"list"`
  5401  }
  5402  
  5403  // String returns the string representation.
  5404  //
  5405  // API parameter values that are decorated as "sensitive" in the API will not
  5406  // be included in the string output. The member name will be present, but the
  5407  // value will be replaced with "sensitive".
  5408  func (s AddJobFlowStepsOutput) String() string {
  5409  	return awsutil.Prettify(s)
  5410  }
  5411  
  5412  // GoString returns the string representation.
  5413  //
  5414  // API parameter values that are decorated as "sensitive" in the API will not
  5415  // be included in the string output. The member name will be present, but the
  5416  // value will be replaced with "sensitive".
  5417  func (s AddJobFlowStepsOutput) GoString() string {
  5418  	return s.String()
  5419  }
  5420  
  5421  // SetStepIds sets the StepIds field's value.
  5422  func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput {
  5423  	s.StepIds = v
  5424  	return s
  5425  }
  5426  
  5427  // This input identifies an Amazon EMR resource and a list of tags to attach.
  5428  type AddTagsInput struct {
  5429  	_ struct{} `type:"structure"`
  5430  
  5431  	// The Amazon EMR resource identifier to which tags will be added. For example,
  5432  	// a cluster identifier or an Amazon EMR Studio ID.
  5433  	//
  5434  	// ResourceId is a required field
  5435  	ResourceId *string `type:"string" required:"true"`
  5436  
  5437  	// A list of tags to associate with a resource. Tags are user-defined key-value
  5438  	// pairs that consist of a required key string with a maximum of 128 characters,
  5439  	// and an optional value string with a maximum of 256 characters.
  5440  	//
  5441  	// Tags is a required field
  5442  	Tags []*Tag `type:"list" required:"true"`
  5443  }
  5444  
  5445  // String returns the string representation.
  5446  //
  5447  // API parameter values that are decorated as "sensitive" in the API will not
  5448  // be included in the string output. The member name will be present, but the
  5449  // value will be replaced with "sensitive".
  5450  func (s AddTagsInput) String() string {
  5451  	return awsutil.Prettify(s)
  5452  }
  5453  
  5454  // GoString returns the string representation.
  5455  //
  5456  // API parameter values that are decorated as "sensitive" in the API will not
  5457  // be included in the string output. The member name will be present, but the
  5458  // value will be replaced with "sensitive".
  5459  func (s AddTagsInput) GoString() string {
  5460  	return s.String()
  5461  }
  5462  
  5463  // Validate inspects the fields of the type to determine if they are valid.
  5464  func (s *AddTagsInput) Validate() error {
  5465  	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
  5466  	if s.ResourceId == nil {
  5467  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
  5468  	}
  5469  	if s.Tags == nil {
  5470  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  5471  	}
  5472  
  5473  	if invalidParams.Len() > 0 {
  5474  		return invalidParams
  5475  	}
  5476  	return nil
  5477  }
  5478  
  5479  // SetResourceId sets the ResourceId field's value.
  5480  func (s *AddTagsInput) SetResourceId(v string) *AddTagsInput {
  5481  	s.ResourceId = &v
  5482  	return s
  5483  }
  5484  
  5485  // SetTags sets the Tags field's value.
  5486  func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
  5487  	s.Tags = v
  5488  	return s
  5489  }
  5490  
  5491  // This output indicates the result of adding tags to a resource.
  5492  type AddTagsOutput struct {
  5493  	_ struct{} `type:"structure"`
  5494  }
  5495  
  5496  // String returns the string representation.
  5497  //
  5498  // API parameter values that are decorated as "sensitive" in the API will not
  5499  // be included in the string output. The member name will be present, but the
  5500  // value will be replaced with "sensitive".
  5501  func (s AddTagsOutput) String() string {
  5502  	return awsutil.Prettify(s)
  5503  }
  5504  
  5505  // GoString returns the string representation.
  5506  //
  5507  // API parameter values that are decorated as "sensitive" in the API will not
  5508  // be included in the string output. The member name will be present, but the
  5509  // value will be replaced with "sensitive".
  5510  func (s AddTagsOutput) GoString() string {
  5511  	return s.String()
  5512  }
  5513  
  5514  // With Amazon EMR release version 4.0 and later, the only accepted parameter
  5515  // is the application name. To pass arguments to applications, you use configuration
  5516  // classifications specified using configuration JSON objects. For more information,
  5517  // see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
  5518  //
  5519  // With earlier Amazon EMR releases, the application is any Amazon or third-party
  5520  // software that you can add to the cluster. This structure contains a list
  5521  // of strings that indicates the software to use with the cluster and accepts
  5522  // a user argument list. Amazon EMR accepts and forwards the argument list to
  5523  // the corresponding installation script as bootstrap action argument.
  5524  type Application struct {
  5525  	_ struct{} `type:"structure"`
  5526  
  5527  	// This option is for advanced users only. This is meta information about third-party
  5528  	// applications that third-party vendors use for testing purposes.
  5529  	AdditionalInfo map[string]*string `type:"map"`
  5530  
  5531  	// Arguments for Amazon EMR to pass to the application.
  5532  	Args []*string `type:"list"`
  5533  
  5534  	// The name of the application.
  5535  	Name *string `type:"string"`
  5536  
  5537  	// The version of the application.
  5538  	Version *string `type:"string"`
  5539  }
  5540  
  5541  // String returns the string representation.
  5542  //
  5543  // API parameter values that are decorated as "sensitive" in the API will not
  5544  // be included in the string output. The member name will be present, but the
  5545  // value will be replaced with "sensitive".
  5546  func (s Application) String() string {
  5547  	return awsutil.Prettify(s)
  5548  }
  5549  
  5550  // GoString returns the string representation.
  5551  //
  5552  // API parameter values that are decorated as "sensitive" in the API will not
  5553  // be included in the string output. The member name will be present, but the
  5554  // value will be replaced with "sensitive".
  5555  func (s Application) GoString() string {
  5556  	return s.String()
  5557  }
  5558  
  5559  // SetAdditionalInfo sets the AdditionalInfo field's value.
  5560  func (s *Application) SetAdditionalInfo(v map[string]*string) *Application {
  5561  	s.AdditionalInfo = v
  5562  	return s
  5563  }
  5564  
  5565  // SetArgs sets the Args field's value.
  5566  func (s *Application) SetArgs(v []*string) *Application {
  5567  	s.Args = v
  5568  	return s
  5569  }
  5570  
  5571  // SetName sets the Name field's value.
  5572  func (s *Application) SetName(v string) *Application {
  5573  	s.Name = &v
  5574  	return s
  5575  }
  5576  
  5577  // SetVersion sets the Version field's value.
  5578  func (s *Application) SetVersion(v string) *Application {
  5579  	s.Version = &v
  5580  	return s
  5581  }
  5582  
  5583  // An automatic scaling policy for a core instance group or task instance group
  5584  // in an Amazon EMR cluster. An automatic scaling policy defines how an instance
  5585  // group dynamically adds and terminates EC2 instances in response to the value
  5586  // of a CloudWatch metric. See PutAutoScalingPolicy.
  5587  type AutoScalingPolicy struct {
  5588  	_ struct{} `type:"structure"`
  5589  
  5590  	// The upper and lower EC2 instance limits for an automatic scaling policy.
  5591  	// Automatic scaling activity will not cause an instance group to grow above
  5592  	// or below these limits.
  5593  	//
  5594  	// Constraints is a required field
  5595  	Constraints *ScalingConstraints `type:"structure" required:"true"`
  5596  
  5597  	// The scale-in and scale-out rules that comprise the automatic scaling policy.
  5598  	//
  5599  	// Rules is a required field
  5600  	Rules []*ScalingRule `type:"list" required:"true"`
  5601  }
  5602  
  5603  // String returns the string representation.
  5604  //
  5605  // API parameter values that are decorated as "sensitive" in the API will not
  5606  // be included in the string output. The member name will be present, but the
  5607  // value will be replaced with "sensitive".
  5608  func (s AutoScalingPolicy) String() string {
  5609  	return awsutil.Prettify(s)
  5610  }
  5611  
  5612  // GoString returns the string representation.
  5613  //
  5614  // API parameter values that are decorated as "sensitive" in the API will not
  5615  // be included in the string output. The member name will be present, but the
  5616  // value will be replaced with "sensitive".
  5617  func (s AutoScalingPolicy) GoString() string {
  5618  	return s.String()
  5619  }
  5620  
  5621  // Validate inspects the fields of the type to determine if they are valid.
  5622  func (s *AutoScalingPolicy) Validate() error {
  5623  	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicy"}
  5624  	if s.Constraints == nil {
  5625  		invalidParams.Add(request.NewErrParamRequired("Constraints"))
  5626  	}
  5627  	if s.Rules == nil {
  5628  		invalidParams.Add(request.NewErrParamRequired("Rules"))
  5629  	}
  5630  	if s.Constraints != nil {
  5631  		if err := s.Constraints.Validate(); err != nil {
  5632  			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
  5633  		}
  5634  	}
  5635  	if s.Rules != nil {
  5636  		for i, v := range s.Rules {
  5637  			if v == nil {
  5638  				continue
  5639  			}
  5640  			if err := v.Validate(); err != nil {
  5641  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
  5642  			}
  5643  		}
  5644  	}
  5645  
  5646  	if invalidParams.Len() > 0 {
  5647  		return invalidParams
  5648  	}
  5649  	return nil
  5650  }
  5651  
  5652  // SetConstraints sets the Constraints field's value.
  5653  func (s *AutoScalingPolicy) SetConstraints(v *ScalingConstraints) *AutoScalingPolicy {
  5654  	s.Constraints = v
  5655  	return s
  5656  }
  5657  
  5658  // SetRules sets the Rules field's value.
  5659  func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy {
  5660  	s.Rules = v
  5661  	return s
  5662  }
  5663  
  5664  // An automatic scaling policy for a core instance group or task instance group
  5665  // in an Amazon EMR cluster. The automatic scaling policy defines how an instance
  5666  // group dynamically adds and terminates EC2 instances in response to the value
  5667  // of a CloudWatch metric. See PutAutoScalingPolicy.
  5668  type AutoScalingPolicyDescription struct {
  5669  	_ struct{} `type:"structure"`
  5670  
  5671  	// The upper and lower EC2 instance limits for an automatic scaling policy.
  5672  	// Automatic scaling activity will not cause an instance group to grow above
  5673  	// or below these limits.
  5674  	Constraints *ScalingConstraints `type:"structure"`
  5675  
  5676  	// The scale-in and scale-out rules that comprise the automatic scaling policy.
  5677  	Rules []*ScalingRule `type:"list"`
  5678  
  5679  	// The status of an automatic scaling policy.
  5680  	Status *AutoScalingPolicyStatus `type:"structure"`
  5681  }
  5682  
  5683  // String returns the string representation.
  5684  //
  5685  // API parameter values that are decorated as "sensitive" in the API will not
  5686  // be included in the string output. The member name will be present, but the
  5687  // value will be replaced with "sensitive".
  5688  func (s AutoScalingPolicyDescription) String() string {
  5689  	return awsutil.Prettify(s)
  5690  }
  5691  
  5692  // GoString returns the string representation.
  5693  //
  5694  // API parameter values that are decorated as "sensitive" in the API will not
  5695  // be included in the string output. The member name will be present, but the
  5696  // value will be replaced with "sensitive".
  5697  func (s AutoScalingPolicyDescription) GoString() string {
  5698  	return s.String()
  5699  }
  5700  
  5701  // SetConstraints sets the Constraints field's value.
  5702  func (s *AutoScalingPolicyDescription) SetConstraints(v *ScalingConstraints) *AutoScalingPolicyDescription {
  5703  	s.Constraints = v
  5704  	return s
  5705  }
  5706  
  5707  // SetRules sets the Rules field's value.
  5708  func (s *AutoScalingPolicyDescription) SetRules(v []*ScalingRule) *AutoScalingPolicyDescription {
  5709  	s.Rules = v
  5710  	return s
  5711  }
  5712  
  5713  // SetStatus sets the Status field's value.
  5714  func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *AutoScalingPolicyDescription {
  5715  	s.Status = v
  5716  	return s
  5717  }
  5718  
  5719  // The reason for an AutoScalingPolicyStatus change.
  5720  type AutoScalingPolicyStateChangeReason struct {
  5721  	_ struct{} `type:"structure"`
  5722  
  5723  	// The code indicating the reason for the change in status.USER_REQUEST indicates
  5724  	// that the scaling policy status was changed by a user. PROVISION_FAILURE indicates
  5725  	// that the status change was because the policy failed to provision. CLEANUP_FAILURE
  5726  	// indicates an error.
  5727  	Code *string `type:"string" enum:"AutoScalingPolicyStateChangeReasonCode"`
  5728  
  5729  	// A friendly, more verbose message that accompanies an automatic scaling policy
  5730  	// state change.
  5731  	Message *string `type:"string"`
  5732  }
  5733  
  5734  // String returns the string representation.
  5735  //
  5736  // API parameter values that are decorated as "sensitive" in the API will not
  5737  // be included in the string output. The member name will be present, but the
  5738  // value will be replaced with "sensitive".
  5739  func (s AutoScalingPolicyStateChangeReason) String() string {
  5740  	return awsutil.Prettify(s)
  5741  }
  5742  
  5743  // GoString returns the string representation.
  5744  //
  5745  // API parameter values that are decorated as "sensitive" in the API will not
  5746  // be included in the string output. The member name will be present, but the
  5747  // value will be replaced with "sensitive".
  5748  func (s AutoScalingPolicyStateChangeReason) GoString() string {
  5749  	return s.String()
  5750  }
  5751  
  5752  // SetCode sets the Code field's value.
  5753  func (s *AutoScalingPolicyStateChangeReason) SetCode(v string) *AutoScalingPolicyStateChangeReason {
  5754  	s.Code = &v
  5755  	return s
  5756  }
  5757  
  5758  // SetMessage sets the Message field's value.
  5759  func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPolicyStateChangeReason {
  5760  	s.Message = &v
  5761  	return s
  5762  }
  5763  
  5764  // The status of an automatic scaling policy.
  5765  type AutoScalingPolicyStatus struct {
  5766  	_ struct{} `type:"structure"`
  5767  
  5768  	// Indicates the status of the automatic scaling policy.
  5769  	State *string `type:"string" enum:"AutoScalingPolicyState"`
  5770  
  5771  	// The reason for a change in status.
  5772  	StateChangeReason *AutoScalingPolicyStateChangeReason `type:"structure"`
  5773  }
  5774  
  5775  // String returns the string representation.
  5776  //
  5777  // API parameter values that are decorated as "sensitive" in the API will not
  5778  // be included in the string output. The member name will be present, but the
  5779  // value will be replaced with "sensitive".
  5780  func (s AutoScalingPolicyStatus) String() string {
  5781  	return awsutil.Prettify(s)
  5782  }
  5783  
  5784  // GoString returns the string representation.
  5785  //
  5786  // API parameter values that are decorated as "sensitive" in the API will not
  5787  // be included in the string output. The member name will be present, but the
  5788  // value will be replaced with "sensitive".
  5789  func (s AutoScalingPolicyStatus) GoString() string {
  5790  	return s.String()
  5791  }
  5792  
  5793  // SetState sets the State field's value.
  5794  func (s *AutoScalingPolicyStatus) SetState(v string) *AutoScalingPolicyStatus {
  5795  	s.State = &v
  5796  	return s
  5797  }
  5798  
  5799  // SetStateChangeReason sets the StateChangeReason field's value.
  5800  func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyStateChangeReason) *AutoScalingPolicyStatus {
  5801  	s.StateChangeReason = v
  5802  	return s
  5803  }
  5804  
  5805  // An auto-termination policy for an Amazon EMR cluster. An auto-termination
  5806  // policy defines the amount of idle time in seconds after which a cluster automatically
  5807  // terminates. For alternative cluster termination options, see Control cluster
  5808  // termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html).
  5809  type AutoTerminationPolicy struct {
  5810  	_ struct{} `type:"structure"`
  5811  
  5812  	// Specifies the amount of idle time in seconds after which the cluster automatically
  5813  	// terminates. You can specify a minimum of 60 seconds and a maximum of 604800
  5814  	// seconds (seven days).
  5815  	IdleTimeout *int64 `type:"long"`
  5816  }
  5817  
  5818  // String returns the string representation.
  5819  //
  5820  // API parameter values that are decorated as "sensitive" in the API will not
  5821  // be included in the string output. The member name will be present, but the
  5822  // value will be replaced with "sensitive".
  5823  func (s AutoTerminationPolicy) String() string {
  5824  	return awsutil.Prettify(s)
  5825  }
  5826  
  5827  // GoString returns the string representation.
  5828  //
  5829  // API parameter values that are decorated as "sensitive" in the API will not
  5830  // be included in the string output. The member name will be present, but the
  5831  // value will be replaced with "sensitive".
  5832  func (s AutoTerminationPolicy) GoString() string {
  5833  	return s.String()
  5834  }
  5835  
  5836  // SetIdleTimeout sets the IdleTimeout field's value.
  5837  func (s *AutoTerminationPolicy) SetIdleTimeout(v int64) *AutoTerminationPolicy {
  5838  	s.IdleTimeout = &v
  5839  	return s
  5840  }
  5841  
  5842  // A configuration for Amazon EMR block public access. When BlockPublicSecurityGroupRules
  5843  // is set to true, Amazon EMR prevents cluster creation if one of the cluster's
  5844  // security groups has a rule that allows inbound traffic from 0.0.0.0/0 or
  5845  // ::/0 on a port, unless the port is specified as an exception using PermittedPublicSecurityGroupRuleRanges.
  5846  type BlockPublicAccessConfiguration struct {
  5847  	_ struct{} `type:"structure"`
  5848  
  5849  	// Indicates whether Amazon EMR block public access is enabled (true) or disabled
  5850  	// (false). By default, the value is false for accounts that have created EMR
  5851  	// clusters before July 2019. For accounts created after this, the default is
  5852  	// true.
  5853  	//
  5854  	// BlockPublicSecurityGroupRules is a required field
  5855  	BlockPublicSecurityGroupRules *bool `type:"boolean" required:"true"`
  5856  
  5857  	// Specifies ports and port ranges that are permitted to have security group
  5858  	// rules that allow inbound traffic from all public sources. For example, if
  5859  	// Port 23 (Telnet) is specified for PermittedPublicSecurityGroupRuleRanges,
  5860  	// Amazon EMR allows cluster creation if a security group associated with the
  5861  	// cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0
  5862  	// or IPv6 port ::/0 as the source.
  5863  	//
  5864  	// By default, Port 22, which is used for SSH access to the cluster EC2 instances,
  5865  	// is in the list of PermittedPublicSecurityGroupRuleRanges.
  5866  	PermittedPublicSecurityGroupRuleRanges []*PortRange `type:"list"`
  5867  }
  5868  
  5869  // String returns the string representation.
  5870  //
  5871  // API parameter values that are decorated as "sensitive" in the API will not
  5872  // be included in the string output. The member name will be present, but the
  5873  // value will be replaced with "sensitive".
  5874  func (s BlockPublicAccessConfiguration) String() string {
  5875  	return awsutil.Prettify(s)
  5876  }
  5877  
  5878  // GoString returns the string representation.
  5879  //
  5880  // API parameter values that are decorated as "sensitive" in the API will not
  5881  // be included in the string output. The member name will be present, but the
  5882  // value will be replaced with "sensitive".
  5883  func (s BlockPublicAccessConfiguration) GoString() string {
  5884  	return s.String()
  5885  }
  5886  
  5887  // Validate inspects the fields of the type to determine if they are valid.
  5888  func (s *BlockPublicAccessConfiguration) Validate() error {
  5889  	invalidParams := request.ErrInvalidParams{Context: "BlockPublicAccessConfiguration"}
  5890  	if s.BlockPublicSecurityGroupRules == nil {
  5891  		invalidParams.Add(request.NewErrParamRequired("BlockPublicSecurityGroupRules"))
  5892  	}
  5893  	if s.PermittedPublicSecurityGroupRuleRanges != nil {
  5894  		for i, v := range s.PermittedPublicSecurityGroupRuleRanges {
  5895  			if v == nil {
  5896  				continue
  5897  			}
  5898  			if err := v.Validate(); err != nil {
  5899  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PermittedPublicSecurityGroupRuleRanges", i), err.(request.ErrInvalidParams))
  5900  			}
  5901  		}
  5902  	}
  5903  
  5904  	if invalidParams.Len() > 0 {
  5905  		return invalidParams
  5906  	}
  5907  	return nil
  5908  }
  5909  
  5910  // SetBlockPublicSecurityGroupRules sets the BlockPublicSecurityGroupRules field's value.
  5911  func (s *BlockPublicAccessConfiguration) SetBlockPublicSecurityGroupRules(v bool) *BlockPublicAccessConfiguration {
  5912  	s.BlockPublicSecurityGroupRules = &v
  5913  	return s
  5914  }
  5915  
  5916  // SetPermittedPublicSecurityGroupRuleRanges sets the PermittedPublicSecurityGroupRuleRanges field's value.
  5917  func (s *BlockPublicAccessConfiguration) SetPermittedPublicSecurityGroupRuleRanges(v []*PortRange) *BlockPublicAccessConfiguration {
  5918  	s.PermittedPublicSecurityGroupRuleRanges = v
  5919  	return s
  5920  }
  5921  
  5922  // Properties that describe the Amazon Web Services principal that created the
  5923  // BlockPublicAccessConfiguration using the PutBlockPublicAccessConfiguration
  5924  // action as well as the date and time that the configuration was created. Each
  5925  // time a configuration for block public access is updated, Amazon EMR updates
  5926  // this metadata.
  5927  type BlockPublicAccessConfigurationMetadata struct {
  5928  	_ struct{} `type:"structure"`
  5929  
  5930  	// The Amazon Resource Name that created or last modified the configuration.
  5931  	//
  5932  	// CreatedByArn is a required field
  5933  	CreatedByArn *string `min:"20" type:"string" required:"true"`
  5934  
  5935  	// The date and time that the configuration was created.
  5936  	//
  5937  	// CreationDateTime is a required field
  5938  	CreationDateTime *time.Time `type:"timestamp" required:"true"`
  5939  }
  5940  
  5941  // String returns the string representation.
  5942  //
  5943  // API parameter values that are decorated as "sensitive" in the API will not
  5944  // be included in the string output. The member name will be present, but the
  5945  // value will be replaced with "sensitive".
  5946  func (s BlockPublicAccessConfigurationMetadata) String() string {
  5947  	return awsutil.Prettify(s)
  5948  }
  5949  
  5950  // GoString returns the string representation.
  5951  //
  5952  // API parameter values that are decorated as "sensitive" in the API will not
  5953  // be included in the string output. The member name will be present, but the
  5954  // value will be replaced with "sensitive".
  5955  func (s BlockPublicAccessConfigurationMetadata) GoString() string {
  5956  	return s.String()
  5957  }
  5958  
  5959  // SetCreatedByArn sets the CreatedByArn field's value.
  5960  func (s *BlockPublicAccessConfigurationMetadata) SetCreatedByArn(v string) *BlockPublicAccessConfigurationMetadata {
  5961  	s.CreatedByArn = &v
  5962  	return s
  5963  }
  5964  
  5965  // SetCreationDateTime sets the CreationDateTime field's value.
  5966  func (s *BlockPublicAccessConfigurationMetadata) SetCreationDateTime(v time.Time) *BlockPublicAccessConfigurationMetadata {
  5967  	s.CreationDateTime = &v
  5968  	return s
  5969  }
  5970  
  5971  // Configuration of a bootstrap action.
  5972  type BootstrapActionConfig struct {
  5973  	_ struct{} `type:"structure"`
  5974  
  5975  	// The name of the bootstrap action.
  5976  	//
  5977  	// Name is a required field
  5978  	Name *string `type:"string" required:"true"`
  5979  
  5980  	// The script run by the bootstrap action.
  5981  	//
  5982  	// ScriptBootstrapAction is a required field
  5983  	ScriptBootstrapAction *ScriptBootstrapActionConfig `type:"structure" required:"true"`
  5984  }
  5985  
  5986  // String returns the string representation.
  5987  //
  5988  // API parameter values that are decorated as "sensitive" in the API will not
  5989  // be included in the string output. The member name will be present, but the
  5990  // value will be replaced with "sensitive".
  5991  func (s BootstrapActionConfig) String() string {
  5992  	return awsutil.Prettify(s)
  5993  }
  5994  
  5995  // GoString returns the string representation.
  5996  //
  5997  // API parameter values that are decorated as "sensitive" in the API will not
  5998  // be included in the string output. The member name will be present, but the
  5999  // value will be replaced with "sensitive".
  6000  func (s BootstrapActionConfig) GoString() string {
  6001  	return s.String()
  6002  }
  6003  
  6004  // Validate inspects the fields of the type to determine if they are valid.
  6005  func (s *BootstrapActionConfig) Validate() error {
  6006  	invalidParams := request.ErrInvalidParams{Context: "BootstrapActionConfig"}
  6007  	if s.Name == nil {
  6008  		invalidParams.Add(request.NewErrParamRequired("Name"))
  6009  	}
  6010  	if s.ScriptBootstrapAction == nil {
  6011  		invalidParams.Add(request.NewErrParamRequired("ScriptBootstrapAction"))
  6012  	}
  6013  	if s.ScriptBootstrapAction != nil {
  6014  		if err := s.ScriptBootstrapAction.Validate(); err != nil {
  6015  			invalidParams.AddNested("ScriptBootstrapAction", err.(request.ErrInvalidParams))
  6016  		}
  6017  	}
  6018  
  6019  	if invalidParams.Len() > 0 {
  6020  		return invalidParams
  6021  	}
  6022  	return nil
  6023  }
  6024  
  6025  // SetName sets the Name field's value.
  6026  func (s *BootstrapActionConfig) SetName(v string) *BootstrapActionConfig {
  6027  	s.Name = &v
  6028  	return s
  6029  }
  6030  
  6031  // SetScriptBootstrapAction sets the ScriptBootstrapAction field's value.
  6032  func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActionConfig) *BootstrapActionConfig {
  6033  	s.ScriptBootstrapAction = v
  6034  	return s
  6035  }
  6036  
  6037  // Reports the configuration of a bootstrap action in a cluster (job flow).
  6038  type BootstrapActionDetail struct {
  6039  	_ struct{} `type:"structure"`
  6040  
  6041  	// A description of the bootstrap action.
  6042  	BootstrapActionConfig *BootstrapActionConfig `type:"structure"`
  6043  }
  6044  
  6045  // String returns the string representation.
  6046  //
  6047  // API parameter values that are decorated as "sensitive" in the API will not
  6048  // be included in the string output. The member name will be present, but the
  6049  // value will be replaced with "sensitive".
  6050  func (s BootstrapActionDetail) String() string {
  6051  	return awsutil.Prettify(s)
  6052  }
  6053  
  6054  // GoString returns the string representation.
  6055  //
  6056  // API parameter values that are decorated as "sensitive" in the API will not
  6057  // be included in the string output. The member name will be present, but the
  6058  // value will be replaced with "sensitive".
  6059  func (s BootstrapActionDetail) GoString() string {
  6060  	return s.String()
  6061  }
  6062  
  6063  // SetBootstrapActionConfig sets the BootstrapActionConfig field's value.
  6064  func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfig) *BootstrapActionDetail {
  6065  	s.BootstrapActionConfig = v
  6066  	return s
  6067  }
  6068  
  6069  // Specification of the status of a CancelSteps request. Available only in Amazon
  6070  // EMR version 4.8.0 and later, excluding version 5.0.0.
  6071  type CancelStepsInfo struct {
  6072  	_ struct{} `type:"structure"`
  6073  
  6074  	// The reason for the failure if the CancelSteps request fails.
  6075  	Reason *string `type:"string"`
  6076  
  6077  	// The status of a CancelSteps Request. The value may be SUBMITTED or FAILED.
  6078  	Status *string `type:"string" enum:"CancelStepsRequestStatus"`
  6079  
  6080  	// The encrypted StepId of a step.
  6081  	StepId *string `type:"string"`
  6082  }
  6083  
  6084  // String returns the string representation.
  6085  //
  6086  // API parameter values that are decorated as "sensitive" in the API will not
  6087  // be included in the string output. The member name will be present, but the
  6088  // value will be replaced with "sensitive".
  6089  func (s CancelStepsInfo) String() string {
  6090  	return awsutil.Prettify(s)
  6091  }
  6092  
  6093  // GoString returns the string representation.
  6094  //
  6095  // API parameter values that are decorated as "sensitive" in the API will not
  6096  // be included in the string output. The member name will be present, but the
  6097  // value will be replaced with "sensitive".
  6098  func (s CancelStepsInfo) GoString() string {
  6099  	return s.String()
  6100  }
  6101  
  6102  // SetReason sets the Reason field's value.
  6103  func (s *CancelStepsInfo) SetReason(v string) *CancelStepsInfo {
  6104  	s.Reason = &v
  6105  	return s
  6106  }
  6107  
  6108  // SetStatus sets the Status field's value.
  6109  func (s *CancelStepsInfo) SetStatus(v string) *CancelStepsInfo {
  6110  	s.Status = &v
  6111  	return s
  6112  }
  6113  
  6114  // SetStepId sets the StepId field's value.
  6115  func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo {
  6116  	s.StepId = &v
  6117  	return s
  6118  }
  6119  
  6120  // The input argument to the CancelSteps operation.
  6121  type CancelStepsInput struct {
  6122  	_ struct{} `type:"structure"`
  6123  
  6124  	// The ClusterID for the specified steps that will be canceled. Use RunJobFlow
  6125  	// and ListClusters to get ClusterIDs.
  6126  	//
  6127  	// ClusterId is a required field
  6128  	ClusterId *string `type:"string" required:"true"`
  6129  
  6130  	// The option to choose to cancel RUNNING steps. By default, the value is SEND_INTERRUPT.
  6131  	StepCancellationOption *string `type:"string" enum:"StepCancellationOption"`
  6132  
  6133  	// The list of StepIDs to cancel. Use ListSteps to get steps and their states
  6134  	// for the specified cluster.
  6135  	//
  6136  	// StepIds is a required field
  6137  	StepIds []*string `type:"list" required:"true"`
  6138  }
  6139  
  6140  // String returns the string representation.
  6141  //
  6142  // API parameter values that are decorated as "sensitive" in the API will not
  6143  // be included in the string output. The member name will be present, but the
  6144  // value will be replaced with "sensitive".
  6145  func (s CancelStepsInput) String() string {
  6146  	return awsutil.Prettify(s)
  6147  }
  6148  
  6149  // GoString returns the string representation.
  6150  //
  6151  // API parameter values that are decorated as "sensitive" in the API will not
  6152  // be included in the string output. The member name will be present, but the
  6153  // value will be replaced with "sensitive".
  6154  func (s CancelStepsInput) GoString() string {
  6155  	return s.String()
  6156  }
  6157  
  6158  // Validate inspects the fields of the type to determine if they are valid.
  6159  func (s *CancelStepsInput) Validate() error {
  6160  	invalidParams := request.ErrInvalidParams{Context: "CancelStepsInput"}
  6161  	if s.ClusterId == nil {
  6162  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
  6163  	}
  6164  	if s.StepIds == nil {
  6165  		invalidParams.Add(request.NewErrParamRequired("StepIds"))
  6166  	}
  6167  
  6168  	if invalidParams.Len() > 0 {
  6169  		return invalidParams
  6170  	}
  6171  	return nil
  6172  }
  6173  
  6174  // SetClusterId sets the ClusterId field's value.
  6175  func (s *CancelStepsInput) SetClusterId(v string) *CancelStepsInput {
  6176  	s.ClusterId = &v
  6177  	return s
  6178  }
  6179  
  6180  // SetStepCancellationOption sets the StepCancellationOption field's value.
  6181  func (s *CancelStepsInput) SetStepCancellationOption(v string) *CancelStepsInput {
  6182  	s.StepCancellationOption = &v
  6183  	return s
  6184  }
  6185  
  6186  // SetStepIds sets the StepIds field's value.
  6187  func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput {
  6188  	s.StepIds = v
  6189  	return s
  6190  }
  6191  
  6192  // The output for the CancelSteps operation.
  6193  type CancelStepsOutput struct {
  6194  	_ struct{} `type:"structure"`
  6195  
  6196  	// A list of CancelStepsInfo, which shows the status of specified cancel requests
  6197  	// for each StepID specified.
  6198  	CancelStepsInfoList []*CancelStepsInfo `type:"list"`
  6199  }
  6200  
  6201  // String returns the string representation.
  6202  //
  6203  // API parameter values that are decorated as "sensitive" in the API will not
  6204  // be included in the string output. The member name will be present, but the
  6205  // value will be replaced with "sensitive".
  6206  func (s CancelStepsOutput) String() string {
  6207  	return awsutil.Prettify(s)
  6208  }
  6209  
  6210  // GoString returns the string representation.
  6211  //
  6212  // API parameter values that are decorated as "sensitive" in the API will not
  6213  // be included in the string output. The member name will be present, but the
  6214  // value will be replaced with "sensitive".
  6215  func (s CancelStepsOutput) GoString() string {
  6216  	return s.String()
  6217  }
  6218  
  6219  // SetCancelStepsInfoList sets the CancelStepsInfoList field's value.
  6220  func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *CancelStepsOutput {
  6221  	s.CancelStepsInfoList = v
  6222  	return s
  6223  }
  6224  
  6225  // The definition of a CloudWatch metric alarm, which determines when an automatic
  6226  // scaling activity is triggered. When the defined alarm conditions are satisfied,
  6227  // scaling activity begins.
  6228  type CloudWatchAlarmDefinition struct {
  6229  	_ struct{} `type:"structure"`
  6230  
  6231  	// Determines how the metric specified by MetricName is compared to the value
  6232  	// specified by Threshold.
  6233  	//
  6234  	// ComparisonOperator is a required field
  6235  	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
  6236  
  6237  	// A CloudWatch metric dimension.
  6238  	Dimensions []*MetricDimension `type:"list"`
  6239  
  6240  	// The number of periods, in five-minute increments, during which the alarm
  6241  	// condition must exist before the alarm triggers automatic scaling activity.
  6242  	// The default value is 1.
  6243  	EvaluationPeriods *int64 `type:"integer"`
  6244  
  6245  	// The name of the CloudWatch metric that is watched to determine an alarm condition.
  6246  	//
  6247  	// MetricName is a required field
  6248  	MetricName *string `type:"string" required:"true"`
  6249  
  6250  	// The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
  6251  	Namespace *string `type:"string"`
  6252  
  6253  	// The period, in seconds, over which the statistic is applied. EMR CloudWatch
  6254  	// metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch
  6255  	// metric is specified, specify 300.
  6256  	//
  6257  	// Period is a required field
  6258  	Period *int64 `type:"integer" required:"true"`
  6259  
  6260  	// The statistic to apply to the metric associated with the alarm. The default
  6261  	// is AVERAGE.
  6262  	Statistic *string `type:"string" enum:"Statistic"`
  6263  
  6264  	// The value against which the specified statistic is compared.
  6265  	//
  6266  	// Threshold is a required field
  6267  	Threshold *float64 `type:"double" required:"true"`
  6268  
  6269  	// The unit of measure associated with the CloudWatch metric being watched.
  6270  	// The value specified for Unit must correspond to the units specified in the
  6271  	// CloudWatch metric.
  6272  	Unit *string `type:"string" enum:"Unit"`
  6273  }
  6274  
  6275  // String returns the string representation.
  6276  //
  6277  // API parameter values that are decorated as "sensitive" in the API will not
  6278  // be included in the string output. The member name will be present, but the
  6279  // value will be replaced with "sensitive".
  6280  func (s CloudWatchAlarmDefinition) String() string {
  6281  	return awsutil.Prettify(s)
  6282  }
  6283  
  6284  // GoString returns the string representation.
  6285  //
  6286  // API parameter values that are decorated as "sensitive" in the API will not
  6287  // be included in the string output. The member name will be present, but the
  6288  // value will be replaced with "sensitive".
  6289  func (s CloudWatchAlarmDefinition) GoString() string {
  6290  	return s.String()
  6291  }
  6292  
  6293  // Validate inspects the fields of the type to determine if they are valid.
  6294  func (s *CloudWatchAlarmDefinition) Validate() error {
  6295  	invalidParams := request.ErrInvalidParams{Context: "CloudWatchAlarmDefinition"}
  6296  	if s.ComparisonOperator == nil {
  6297  		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
  6298  	}
  6299  	if s.MetricName == nil {
  6300  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
  6301  	}
  6302  	if s.Period == nil {
  6303  		invalidParams.Add(request.NewErrParamRequired("Period"))
  6304  	}
  6305  	if s.Threshold == nil {
  6306  		invalidParams.Add(request.NewErrParamRequired("Threshold"))
  6307  	}
  6308  
  6309  	if invalidParams.Len() > 0 {
  6310  		return invalidParams
  6311  	}
  6312  	return nil
  6313  }
  6314  
  6315  // SetComparisonOperator sets the ComparisonOperator field's value.
  6316  func (s *CloudWatchAlarmDefinition) SetComparisonOperator(v string) *CloudWatchAlarmDefinition {
  6317  	s.ComparisonOperator = &v
  6318  	return s
  6319  }
  6320  
  6321  // SetDimensions sets the Dimensions field's value.
  6322  func (s *CloudWatchAlarmDefinition) SetDimensions(v []*MetricDimension) *CloudWatchAlarmDefinition {
  6323  	s.Dimensions = v
  6324  	return s
  6325  }
  6326  
  6327  // SetEvaluationPeriods sets the EvaluationPeriods field's value.
  6328  func (s *CloudWatchAlarmDefinition) SetEvaluationPeriods(v int64) *CloudWatchAlarmDefinition {
  6329  	s.EvaluationPeriods = &v
  6330  	return s
  6331  }
  6332  
  6333  // SetMetricName sets the MetricName field's value.
  6334  func (s *CloudWatchAlarmDefinition) SetMetricName(v string) *CloudWatchAlarmDefinition {
  6335  	s.MetricName = &v
  6336  	return s
  6337  }
  6338  
  6339  // SetNamespace sets the Namespace field's value.
  6340  func (s *CloudWatchAlarmDefinition) SetNamespace(v string) *CloudWatchAlarmDefinition {
  6341  	s.Namespace = &v
  6342  	return s
  6343  }
  6344  
  6345  // SetPeriod sets the Period field's value.
  6346  func (s *CloudWatchAlarmDefinition) SetPeriod(v int64) *CloudWatchAlarmDefinition {
  6347  	s.Period = &v
  6348  	return s
  6349  }
  6350  
  6351  // SetStatistic sets the Statistic field's value.
  6352  func (s *CloudWatchAlarmDefinition) SetStatistic(v string) *CloudWatchAlarmDefinition {
  6353  	s.Statistic = &v
  6354  	return s
  6355  }
  6356  
  6357  // SetThreshold sets the Threshold field's value.
  6358  func (s *CloudWatchAlarmDefinition) SetThreshold(v float64) *CloudWatchAlarmDefinition {
  6359  	s.Threshold = &v
  6360  	return s
  6361  }
  6362  
  6363  // SetUnit sets the Unit field's value.
  6364  func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition {
  6365  	s.Unit = &v
  6366  	return s
  6367  }
  6368  
  6369  // The detailed description of the cluster.
  6370  type Cluster struct {
  6371  	_ struct{} `type:"structure"`
  6372  
  6373  	// The applications installed on this cluster.
  6374  	Applications []*Application `type:"list"`
  6375  
  6376  	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
  6377  	// The IAM role provides permissions that the automatic scaling feature requires
  6378  	// to launch and terminate EC2 instances in an instance group.
  6379  	AutoScalingRole *string `type:"string"`
  6380  
  6381  	// Specifies whether the cluster should terminate after completing all steps.
  6382  	AutoTerminate *bool `type:"boolean"`
  6383  
  6384  	// The Amazon Resource Name of the cluster.
  6385  	ClusterArn *string `min:"20" type:"string"`
  6386  
  6387  	// Applies only to Amazon EMR releases 4.x and later. The list of Configurations
  6388  	// supplied to the EMR cluster.
  6389  	Configurations []*Configuration `type:"list"`
  6390  
  6391  	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
  6392  	// Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
  6393  	CustomAmiId *string `type:"string"`
  6394  
  6395  	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
  6396  	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
  6397  	EbsRootVolumeSize *int64 `type:"integer"`
  6398  
  6399  	// Provides information about the EC2 instances in a cluster grouped by category.
  6400  	// For example, key name, subnet ID, IAM instance profile, and so on.
  6401  	Ec2InstanceAttributes *Ec2InstanceAttributes `type:"structure"`
  6402  
  6403  	// The unique identifier for the cluster.
  6404  	Id *string `type:"string"`
  6405  
  6406  	//
  6407  	// The instance fleet configuration is available only in Amazon EMR versions
  6408  	// 4.8.0 and later, excluding 5.0.x versions.
  6409  	//
  6410  	// The instance group configuration of the cluster. A value of INSTANCE_GROUP
  6411  	// indicates a uniform instance group configuration. A value of INSTANCE_FLEET
  6412  	// indicates an instance fleets configuration.
  6413  	InstanceCollectionType *string `type:"string" enum:"InstanceCollectionType"`
  6414  
  6415  	// Attributes for Kerberos configuration when Kerberos authentication is enabled
  6416  	// using a security configuration. For more information see Use Kerberos Authentication
  6417  	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
  6418  	// in the Amazon EMR Management Guide.
  6419  	KerberosAttributes *KerberosAttributes `type:"structure"`
  6420  
  6421  	// The KMS key used for encrypting log files. This attribute is only available
  6422  	// with EMR version 5.30.0 and later, excluding EMR 6.0.0.
  6423  	LogEncryptionKmsKeyId *string `type:"string"`
  6424  
  6425  	// The path to the Amazon S3 location where logs for this cluster are stored.
  6426  	LogUri *string `type:"string"`
  6427  
  6428  	// The DNS name of the master node. If the cluster is on a private subnet, this
  6429  	// is the private DNS name. On a public subnet, this is the public DNS name.
  6430  	MasterPublicDnsName *string `type:"string"`
  6431  
  6432  	// The name of the cluster.
  6433  	Name *string `type:"string"`
  6434  
  6435  	// An approximation of the cost of the cluster, represented in m1.small/hours.
  6436  	// This value is incremented one time for every hour an m1.small instance runs.
  6437  	// Larger instances are weighted more, so an EC2 instance that is roughly four
  6438  	// times more expensive would result in the normalized instance hours being
  6439  	// incremented by four. This result is only an approximation and does not reflect
  6440  	// the actual billing rate.
  6441  	NormalizedInstanceHours *int64 `type:"integer"`
  6442  
  6443  	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
  6444  	OutpostArn *string `type:"string"`
  6445  
  6446  	// Placement group configured for an Amazon EMR cluster.
  6447  	PlacementGroups []*PlacementGroupConfig `type:"list"`
  6448  
  6449  	// The Amazon EMR release label, which determines the version of open-source
  6450  	// application packages installed on the cluster. Release labels are in the
  6451  	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
  6452  	// For more information about Amazon EMR release versions and included application
  6453  	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
  6454  	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
  6455  	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
  6456  	// use AmiVersion.
  6457  	ReleaseLabel *string `type:"string"`
  6458  
  6459  	// Applies only when CustomAmiID is used. Specifies the type of updates that
  6460  	// are applied from the Amazon Linux AMI package repositories when an instance
  6461  	// boots using the AMI.
  6462  	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
  6463  
  6464  	// The AMI version requested for this cluster.
  6465  	RequestedAmiVersion *string `type:"string"`
  6466  
  6467  	// The AMI version running on this cluster.
  6468  	RunningAmiVersion *string `type:"string"`
  6469  
  6470  	// The way that individual Amazon EC2 instances terminate when an automatic
  6471  	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
  6472  	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
  6473  	// regardless of when the request to terminate the instance was submitted. This
  6474  	// option is only available with Amazon EMR 5.1.0 and later and is the default
  6475  	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
  6476  	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
  6477  	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
  6478  	// With either behavior, Amazon EMR removes the least active nodes first and
  6479  	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
  6480  	// is available only in Amazon EMR version 4.1.0 and later, and is the default
  6481  	// for versions of Amazon EMR earlier than 5.1.0.
  6482  	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
  6483  
  6484  	// The name of the security configuration applied to the cluster.
  6485  	SecurityConfiguration *string `type:"string"`
  6486  
  6487  	// The IAM role that Amazon EMR assumes in order to access Amazon Web Services
  6488  	// resources on your behalf.
  6489  	ServiceRole *string `type:"string"`
  6490  
  6491  	// The current status details about the cluster.
  6492  	Status *ClusterStatus `type:"structure"`
  6493  
  6494  	// Specifies the number of steps that can be executed concurrently.
  6495  	StepConcurrencyLevel *int64 `type:"integer"`
  6496  
  6497  	// A list of tags associated with a cluster.
  6498  	Tags []*Tag `type:"list"`
  6499  
  6500  	// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances
  6501  	// from being terminated by an API call or user intervention, or in the event
  6502  	// of a cluster error.
  6503  	TerminationProtected *bool `type:"boolean"`
  6504  
  6505  	// Indicates whether the cluster is visible to IAM principals in the Amazon
  6506  	// Web Services account associated with the cluster. When true, IAM principals
  6507  	// in the Amazon Web Services account can perform EMR cluster actions on the
  6508  	// cluster that their IAM policies allow. When false, only the IAM principal
  6509  	// that created the cluster and the Amazon Web Services account root user can
  6510  	// perform EMR actions, regardless of IAM permissions policies attached to other
  6511  	// IAM principals.
  6512  	//
  6513  	// The default value is true if a value is not provided when creating a cluster
  6514  	// using the EMR API RunJobFlow command, the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
  6515  	// command, or the Amazon Web Services Management Console. IAM principals that
  6516  	// are allowed to perform actions on the cluster can use the SetVisibleToAllUsers
  6517  	// action to change the value on a running cluster. For more information, see
  6518  	// Understanding the EMR Cluster VisibleToAllUsers Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
  6519  	// in the Amazon EMRManagement Guide.
  6520  	VisibleToAllUsers *bool `type:"boolean"`
  6521  }
  6522  
  6523  // String returns the string representation.
  6524  //
  6525  // API parameter values that are decorated as "sensitive" in the API will not
  6526  // be included in the string output. The member name will be present, but the
  6527  // value will be replaced with "sensitive".
  6528  func (s Cluster) String() string {
  6529  	return awsutil.Prettify(s)
  6530  }
  6531  
  6532  // GoString returns the string representation.
  6533  //
  6534  // API parameter values that are decorated as "sensitive" in the API will not
  6535  // be included in the string output. The member name will be present, but the
  6536  // value will be replaced with "sensitive".
  6537  func (s Cluster) GoString() string {
  6538  	return s.String()
  6539  }
  6540  
  6541  // SetApplications sets the Applications field's value.
  6542  func (s *Cluster) SetApplications(v []*Application) *Cluster {
  6543  	s.Applications = v
  6544  	return s
  6545  }
  6546  
  6547  // SetAutoScalingRole sets the AutoScalingRole field's value.
  6548  func (s *Cluster) SetAutoScalingRole(v string) *Cluster {
  6549  	s.AutoScalingRole = &v
  6550  	return s
  6551  }
  6552  
  6553  // SetAutoTerminate sets the AutoTerminate field's value.
  6554  func (s *Cluster) SetAutoTerminate(v bool) *Cluster {
  6555  	s.AutoTerminate = &v
  6556  	return s
  6557  }
  6558  
  6559  // SetClusterArn sets the ClusterArn field's value.
  6560  func (s *Cluster) SetClusterArn(v string) *Cluster {
  6561  	s.ClusterArn = &v
  6562  	return s
  6563  }
  6564  
  6565  // SetConfigurations sets the Configurations field's value.
  6566  func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster {
  6567  	s.Configurations = v
  6568  	return s
  6569  }
  6570  
  6571  // SetCustomAmiId sets the CustomAmiId field's value.
  6572  func (s *Cluster) SetCustomAmiId(v string) *Cluster {
  6573  	s.CustomAmiId = &v
  6574  	return s
  6575  }
  6576  
  6577  // SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
  6578  func (s *Cluster) SetEbsRootVolumeSize(v int64) *Cluster {
  6579  	s.EbsRootVolumeSize = &v
  6580  	return s
  6581  }
  6582  
  6583  // SetEc2InstanceAttributes sets the Ec2InstanceAttributes field's value.
  6584  func (s *Cluster) SetEc2InstanceAttributes(v *Ec2InstanceAttributes) *Cluster {
  6585  	s.Ec2InstanceAttributes = v
  6586  	return s
  6587  }
  6588  
  6589  // SetId sets the Id field's value.
  6590  func (s *Cluster) SetId(v string) *Cluster {
  6591  	s.Id = &v
  6592  	return s
  6593  }
  6594  
  6595  // SetInstanceCollectionType sets the InstanceCollectionType field's value.
  6596  func (s *Cluster) SetInstanceCollectionType(v string) *Cluster {
  6597  	s.InstanceCollectionType = &v
  6598  	return s
  6599  }
  6600  
  6601  // SetKerberosAttributes sets the KerberosAttributes field's value.
  6602  func (s *Cluster) SetKerberosAttributes(v *KerberosAttributes) *Cluster {
  6603  	s.KerberosAttributes = v
  6604  	return s
  6605  }
  6606  
  6607  // SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
  6608  func (s *Cluster) SetLogEncryptionKmsKeyId(v string) *Cluster {
  6609  	s.LogEncryptionKmsKeyId = &v
  6610  	return s
  6611  }
  6612  
  6613  // SetLogUri sets the LogUri field's value.
  6614  func (s *Cluster) SetLogUri(v string) *Cluster {
  6615  	s.LogUri = &v
  6616  	return s
  6617  }
  6618  
  6619  // SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
  6620  func (s *Cluster) SetMasterPublicDnsName(v string) *Cluster {
  6621  	s.MasterPublicDnsName = &v
  6622  	return s
  6623  }
  6624  
  6625  // SetName sets the Name field's value.
  6626  func (s *Cluster) SetName(v string) *Cluster {
  6627  	s.Name = &v
  6628  	return s
  6629  }
  6630  
  6631  // SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
  6632  func (s *Cluster) SetNormalizedInstanceHours(v int64) *Cluster {
  6633  	s.NormalizedInstanceHours = &v
  6634  	return s
  6635  }
  6636  
  6637  // SetOutpostArn sets the OutpostArn field's value.
  6638  func (s *Cluster) SetOutpostArn(v string) *Cluster {
  6639  	s.OutpostArn = &v
  6640  	return s
  6641  }
  6642  
  6643  // SetPlacementGroups sets the PlacementGroups field's value.
  6644  func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster {
  6645  	s.PlacementGroups = v
  6646  	return s
  6647  }
  6648  
  6649  // SetReleaseLabel sets the ReleaseLabel field's value.
  6650  func (s *Cluster) SetReleaseLabel(v string) *Cluster {
  6651  	s.ReleaseLabel = &v
  6652  	return s
  6653  }
  6654  
  6655  // SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
  6656  func (s *Cluster) SetRepoUpgradeOnBoot(v string) *Cluster {
  6657  	s.RepoUpgradeOnBoot = &v
  6658  	return s
  6659  }
  6660  
  6661  // SetRequestedAmiVersion sets the RequestedAmiVersion field's value.
  6662  func (s *Cluster) SetRequestedAmiVersion(v string) *Cluster {
  6663  	s.RequestedAmiVersion = &v
  6664  	return s
  6665  }
  6666  
  6667  // SetRunningAmiVersion sets the RunningAmiVersion field's value.
  6668  func (s *Cluster) SetRunningAmiVersion(v string) *Cluster {
  6669  	s.RunningAmiVersion = &v
  6670  	return s
  6671  }
  6672  
  6673  // SetScaleDownBehavior sets the ScaleDownBehavior field's value.
  6674  func (s *Cluster) SetScaleDownBehavior(v string) *Cluster {
  6675  	s.ScaleDownBehavior = &v
  6676  	return s
  6677  }
  6678  
  6679  // SetSecurityConfiguration sets the SecurityConfiguration field's value.
  6680  func (s *Cluster) SetSecurityConfiguration(v string) *Cluster {
  6681  	s.SecurityConfiguration = &v
  6682  	return s
  6683  }
  6684  
  6685  // SetServiceRole sets the ServiceRole field's value.
  6686  func (s *Cluster) SetServiceRole(v string) *Cluster {
  6687  	s.ServiceRole = &v
  6688  	return s
  6689  }
  6690  
  6691  // SetStatus sets the Status field's value.
  6692  func (s *Cluster) SetStatus(v *ClusterStatus) *Cluster {
  6693  	s.Status = v
  6694  	return s
  6695  }
  6696  
  6697  // SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
  6698  func (s *Cluster) SetStepConcurrencyLevel(v int64) *Cluster {
  6699  	s.StepConcurrencyLevel = &v
  6700  	return s
  6701  }
  6702  
  6703  // SetTags sets the Tags field's value.
  6704  func (s *Cluster) SetTags(v []*Tag) *Cluster {
  6705  	s.Tags = v
  6706  	return s
  6707  }
  6708  
  6709  // SetTerminationProtected sets the TerminationProtected field's value.
  6710  func (s *Cluster) SetTerminationProtected(v bool) *Cluster {
  6711  	s.TerminationProtected = &v
  6712  	return s
  6713  }
  6714  
  6715  // SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
  6716  func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster {
  6717  	s.VisibleToAllUsers = &v
  6718  	return s
  6719  }
  6720  
  6721  // The reason that the cluster changed to its current state.
  6722  type ClusterStateChangeReason struct {
  6723  	_ struct{} `type:"structure"`
  6724  
  6725  	// The programmatic code for the state change reason.
  6726  	Code *string `type:"string" enum:"ClusterStateChangeReasonCode"`
  6727  
  6728  	// The descriptive message for the state change reason.
  6729  	Message *string `type:"string"`
  6730  }
  6731  
  6732  // String returns the string representation.
  6733  //
  6734  // API parameter values that are decorated as "sensitive" in the API will not
  6735  // be included in the string output. The member name will be present, but the
  6736  // value will be replaced with "sensitive".
  6737  func (s ClusterStateChangeReason) String() string {
  6738  	return awsutil.Prettify(s)
  6739  }
  6740  
  6741  // GoString returns the string representation.
  6742  //
  6743  // API parameter values that are decorated as "sensitive" in the API will not
  6744  // be included in the string output. The member name will be present, but the
  6745  // value will be replaced with "sensitive".
  6746  func (s ClusterStateChangeReason) GoString() string {
  6747  	return s.String()
  6748  }
  6749  
  6750  // SetCode sets the Code field's value.
  6751  func (s *ClusterStateChangeReason) SetCode(v string) *ClusterStateChangeReason {
  6752  	s.Code = &v
  6753  	return s
  6754  }
  6755  
  6756  // SetMessage sets the Message field's value.
  6757  func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReason {
  6758  	s.Message = &v
  6759  	return s
  6760  }
  6761  
  6762  // The detailed status of the cluster.
  6763  type ClusterStatus struct {
  6764  	_ struct{} `type:"structure"`
  6765  
  6766  	// The current state of the cluster.
  6767  	State *string `type:"string" enum:"ClusterState"`
  6768  
  6769  	// The reason for the cluster status change.
  6770  	StateChangeReason *ClusterStateChangeReason `type:"structure"`
  6771  
  6772  	// A timeline that represents the status of a cluster over the lifetime of the
  6773  	// cluster.
  6774  	Timeline *ClusterTimeline `type:"structure"`
  6775  }
  6776  
  6777  // String returns the string representation.
  6778  //
  6779  // API parameter values that are decorated as "sensitive" in the API will not
  6780  // be included in the string output. The member name will be present, but the
  6781  // value will be replaced with "sensitive".
  6782  func (s ClusterStatus) String() string {
  6783  	return awsutil.Prettify(s)
  6784  }
  6785  
  6786  // GoString returns the string representation.
  6787  //
  6788  // API parameter values that are decorated as "sensitive" in the API will not
  6789  // be included in the string output. The member name will be present, but the
  6790  // value will be replaced with "sensitive".
  6791  func (s ClusterStatus) GoString() string {
  6792  	return s.String()
  6793  }
  6794  
  6795  // SetState sets the State field's value.
  6796  func (s *ClusterStatus) SetState(v string) *ClusterStatus {
  6797  	s.State = &v
  6798  	return s
  6799  }
  6800  
  6801  // SetStateChangeReason sets the StateChangeReason field's value.
  6802  func (s *ClusterStatus) SetStateChangeReason(v *ClusterStateChangeReason) *ClusterStatus {
  6803  	s.StateChangeReason = v
  6804  	return s
  6805  }
  6806  
  6807  // SetTimeline sets the Timeline field's value.
  6808  func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus {
  6809  	s.Timeline = v
  6810  	return s
  6811  }
  6812  
  6813  // The summary description of the cluster.
  6814  type ClusterSummary struct {
  6815  	_ struct{} `type:"structure"`
  6816  
  6817  	// The Amazon Resource Name of the cluster.
  6818  	ClusterArn *string `min:"20" type:"string"`
  6819  
  6820  	// The unique identifier for the cluster.
  6821  	Id *string `type:"string"`
  6822  
  6823  	// The name of the cluster.
  6824  	Name *string `type:"string"`
  6825  
  6826  	// An approximation of the cost of the cluster, represented in m1.small/hours.
  6827  	// This value is incremented one time for every hour an m1.small instance runs.
  6828  	// Larger instances are weighted more, so an EC2 instance that is roughly four
  6829  	// times more expensive would result in the normalized instance hours being
  6830  	// incremented by four. This result is only an approximation and does not reflect
  6831  	// the actual billing rate.
  6832  	NormalizedInstanceHours *int64 `type:"integer"`
  6833  
  6834  	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
  6835  	OutpostArn *string `type:"string"`
  6836  
  6837  	// The details about the current status of the cluster.
  6838  	Status *ClusterStatus `type:"structure"`
  6839  }
  6840  
  6841  // String returns the string representation.
  6842  //
  6843  // API parameter values that are decorated as "sensitive" in the API will not
  6844  // be included in the string output. The member name will be present, but the
  6845  // value will be replaced with "sensitive".
  6846  func (s ClusterSummary) String() string {
  6847  	return awsutil.Prettify(s)
  6848  }
  6849  
  6850  // GoString returns the string representation.
  6851  //
  6852  // API parameter values that are decorated as "sensitive" in the API will not
  6853  // be included in the string output. The member name will be present, but the
  6854  // value will be replaced with "sensitive".
  6855  func (s ClusterSummary) GoString() string {
  6856  	return s.String()
  6857  }
  6858  
  6859  // SetClusterArn sets the ClusterArn field's value.
  6860  func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
  6861  	s.ClusterArn = &v
  6862  	return s
  6863  }
  6864  
  6865  // SetId sets the Id field's value.
  6866  func (s *ClusterSummary) SetId(v string) *ClusterSummary {
  6867  	s.Id = &v
  6868  	return s
  6869  }
  6870  
  6871  // SetName sets the Name field's value.
  6872  func (s *ClusterSummary) SetName(v string) *ClusterSummary {
  6873  	s.Name = &v
  6874  	return s
  6875  }
  6876  
  6877  // SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
  6878  func (s *ClusterSummary) SetNormalizedInstanceHours(v int64) *ClusterSummary {
  6879  	s.NormalizedInstanceHours = &v
  6880  	return s
  6881  }
  6882  
  6883  // SetOutpostArn sets the OutpostArn field's value.
  6884  func (s *ClusterSummary) SetOutpostArn(v string) *ClusterSummary {
  6885  	s.OutpostArn = &v
  6886  	return s
  6887  }
  6888  
  6889  // SetStatus sets the Status field's value.
  6890  func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary {
  6891  	s.Status = v
  6892  	return s
  6893  }
  6894  
  6895  // Represents the timeline of the cluster's lifecycle.
  6896  type ClusterTimeline struct {
  6897  	_ struct{} `type:"structure"`
  6898  
  6899  	// The creation date and time of the cluster.
  6900  	CreationDateTime *time.Time `type:"timestamp"`
  6901  
  6902  	// The date and time when the cluster was terminated.
  6903  	EndDateTime *time.Time `type:"timestamp"`
  6904  
  6905  	// The date and time when the cluster was ready to run steps.
  6906  	ReadyDateTime *time.Time `type:"timestamp"`
  6907  }
  6908  
  6909  // String returns the string representation.
  6910  //
  6911  // API parameter values that are decorated as "sensitive" in the API will not
  6912  // be included in the string output. The member name will be present, but the
  6913  // value will be replaced with "sensitive".
  6914  func (s ClusterTimeline) String() string {
  6915  	return awsutil.Prettify(s)
  6916  }
  6917  
  6918  // GoString returns the string representation.
  6919  //
  6920  // API parameter values that are decorated as "sensitive" in the API will not
  6921  // be included in the string output. The member name will be present, but the
  6922  // value will be replaced with "sensitive".
  6923  func (s ClusterTimeline) GoString() string {
  6924  	return s.String()
  6925  }
  6926  
  6927  // SetCreationDateTime sets the CreationDateTime field's value.
  6928  func (s *ClusterTimeline) SetCreationDateTime(v time.Time) *ClusterTimeline {
  6929  	s.CreationDateTime = &v
  6930  	return s
  6931  }
  6932  
  6933  // SetEndDateTime sets the EndDateTime field's value.
  6934  func (s *ClusterTimeline) SetEndDateTime(v time.Time) *ClusterTimeline {
  6935  	s.EndDateTime = &v
  6936  	return s
  6937  }
  6938  
  6939  // SetReadyDateTime sets the ReadyDateTime field's value.
  6940  func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline {
  6941  	s.ReadyDateTime = &v
  6942  	return s
  6943  }
  6944  
  6945  // An entity describing an executable that runs on a cluster.
  6946  type Command struct {
  6947  	_ struct{} `type:"structure"`
  6948  
  6949  	// Arguments for Amazon EMR to pass to the command for execution.
  6950  	Args []*string `type:"list"`
  6951  
  6952  	// The name of the command.
  6953  	Name *string `type:"string"`
  6954  
  6955  	// The Amazon S3 location of the command script.
  6956  	ScriptPath *string `type:"string"`
  6957  }
  6958  
  6959  // String returns the string representation.
  6960  //
  6961  // API parameter values that are decorated as "sensitive" in the API will not
  6962  // be included in the string output. The member name will be present, but the
  6963  // value will be replaced with "sensitive".
  6964  func (s Command) String() string {
  6965  	return awsutil.Prettify(s)
  6966  }
  6967  
  6968  // GoString returns the string representation.
  6969  //
  6970  // API parameter values that are decorated as "sensitive" in the API will not
  6971  // be included in the string output. The member name will be present, but the
  6972  // value will be replaced with "sensitive".
  6973  func (s Command) GoString() string {
  6974  	return s.String()
  6975  }
  6976  
  6977  // SetArgs sets the Args field's value.
  6978  func (s *Command) SetArgs(v []*string) *Command {
  6979  	s.Args = v
  6980  	return s
  6981  }
  6982  
  6983  // SetName sets the Name field's value.
  6984  func (s *Command) SetName(v string) *Command {
  6985  	s.Name = &v
  6986  	return s
  6987  }
  6988  
  6989  // SetScriptPath sets the ScriptPath field's value.
  6990  func (s *Command) SetScriptPath(v string) *Command {
  6991  	s.ScriptPath = &v
  6992  	return s
  6993  }
  6994  
  6995  // The EC2 unit limits for a managed scaling policy. The managed scaling activity
  6996  // of a cluster can not be above or below these limits. The limit only applies
  6997  // to the core and task nodes. The master node cannot be scaled after initial
  6998  // configuration.
  6999  type ComputeLimits struct {
  7000  	_ struct{} `type:"structure"`
  7001  
  7002  	// The upper boundary of EC2 units. It is measured through vCPU cores or instances
  7003  	// for instance groups and measured through units for instance fleets. Managed
  7004  	// scaling activities are not allowed beyond this boundary. The limit only applies
  7005  	// to the core and task nodes. The master node cannot be scaled after initial
  7006  	// configuration.
  7007  	//
  7008  	// MaximumCapacityUnits is a required field
  7009  	MaximumCapacityUnits *int64 `type:"integer" required:"true"`
  7010  
  7011  	// The upper boundary of EC2 units for core node type in a cluster. It is measured
  7012  	// through vCPU cores or instances for instance groups and measured through
  7013  	// units for instance fleets. The core units are not allowed to scale beyond
  7014  	// this boundary. The parameter is used to split capacity allocation between
  7015  	// core and task nodes.
  7016  	MaximumCoreCapacityUnits *int64 `type:"integer"`
  7017  
  7018  	// The upper boundary of On-Demand EC2 units. It is measured through vCPU cores
  7019  	// or instances for instance groups and measured through units for instance
  7020  	// fleets. The On-Demand units are not allowed to scale beyond this boundary.
  7021  	// The parameter is used to split capacity allocation between On-Demand and
  7022  	// Spot Instances.
  7023  	MaximumOnDemandCapacityUnits *int64 `type:"integer"`
  7024  
  7025  	// The lower boundary of EC2 units. It is measured through vCPU cores or instances
  7026  	// for instance groups and measured through units for instance fleets. Managed
  7027  	// scaling activities are not allowed beyond this boundary. The limit only applies
  7028  	// to the core and task nodes. The master node cannot be scaled after initial
  7029  	// configuration.
  7030  	//
  7031  	// MinimumCapacityUnits is a required field
  7032  	MinimumCapacityUnits *int64 `type:"integer" required:"true"`
  7033  
  7034  	// The unit type used for specifying a managed scaling policy.
  7035  	//
  7036  	// UnitType is a required field
  7037  	UnitType *string `type:"string" required:"true" enum:"ComputeLimitsUnitType"`
  7038  }
  7039  
  7040  // String returns the string representation.
  7041  //
  7042  // API parameter values that are decorated as "sensitive" in the API will not
  7043  // be included in the string output. The member name will be present, but the
  7044  // value will be replaced with "sensitive".
  7045  func (s ComputeLimits) String() string {
  7046  	return awsutil.Prettify(s)
  7047  }
  7048  
  7049  // GoString returns the string representation.
  7050  //
  7051  // API parameter values that are decorated as "sensitive" in the API will not
  7052  // be included in the string output. The member name will be present, but the
  7053  // value will be replaced with "sensitive".
  7054  func (s ComputeLimits) GoString() string {
  7055  	return s.String()
  7056  }
  7057  
  7058  // Validate inspects the fields of the type to determine if they are valid.
  7059  func (s *ComputeLimits) Validate() error {
  7060  	invalidParams := request.ErrInvalidParams{Context: "ComputeLimits"}
  7061  	if s.MaximumCapacityUnits == nil {
  7062  		invalidParams.Add(request.NewErrParamRequired("MaximumCapacityUnits"))
  7063  	}
  7064  	if s.MinimumCapacityUnits == nil {
  7065  		invalidParams.Add(request.NewErrParamRequired("MinimumCapacityUnits"))
  7066  	}
  7067  	if s.UnitType == nil {
  7068  		invalidParams.Add(request.NewErrParamRequired("UnitType"))
  7069  	}
  7070  
  7071  	if invalidParams.Len() > 0 {
  7072  		return invalidParams
  7073  	}
  7074  	return nil
  7075  }
  7076  
  7077  // SetMaximumCapacityUnits sets the MaximumCapacityUnits field's value.
  7078  func (s *ComputeLimits) SetMaximumCapacityUnits(v int64) *ComputeLimits {
  7079  	s.MaximumCapacityUnits = &v
  7080  	return s
  7081  }
  7082  
  7083  // SetMaximumCoreCapacityUnits sets the MaximumCoreCapacityUnits field's value.
  7084  func (s *ComputeLimits) SetMaximumCoreCapacityUnits(v int64) *ComputeLimits {
  7085  	s.MaximumCoreCapacityUnits = &v
  7086  	return s
  7087  }
  7088  
  7089  // SetMaximumOnDemandCapacityUnits sets the MaximumOnDemandCapacityUnits field's value.
  7090  func (s *ComputeLimits) SetMaximumOnDemandCapacityUnits(v int64) *ComputeLimits {
  7091  	s.MaximumOnDemandCapacityUnits = &v
  7092  	return s
  7093  }
  7094  
  7095  // SetMinimumCapacityUnits sets the MinimumCapacityUnits field's value.
  7096  func (s *ComputeLimits) SetMinimumCapacityUnits(v int64) *ComputeLimits {
  7097  	s.MinimumCapacityUnits = &v
  7098  	return s
  7099  }
  7100  
  7101  // SetUnitType sets the UnitType field's value.
  7102  func (s *ComputeLimits) SetUnitType(v string) *ComputeLimits {
  7103  	s.UnitType = &v
  7104  	return s
  7105  }
  7106  
  7107  //
  7108  // Amazon EMR releases 4.x or later.
  7109  //
  7110  // An optional configuration specification to be used when provisioning cluster
  7111  // instances, which can include configurations for applications and software
  7112  // bundled with Amazon EMR. A configuration consists of a classification, properties,
  7113  // and optional nested configurations. A classification refers to an application-specific
  7114  // configuration file. Properties are the settings you want to change in that
  7115  // file. For more information, see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
  7116  type Configuration struct {
  7117  	_ struct{} `type:"structure"`
  7118  
  7119  	// The classification within a configuration.
  7120  	Classification *string `type:"string"`
  7121  
  7122  	// A list of additional configurations to apply within a configuration object.
  7123  	Configurations []*Configuration `type:"list"`
  7124  
  7125  	// A set of properties specified within a configuration classification.
  7126  	Properties map[string]*string `type:"map"`
  7127  }
  7128  
  7129  // String returns the string representation.
  7130  //
  7131  // API parameter values that are decorated as "sensitive" in the API will not
  7132  // be included in the string output. The member name will be present, but the
  7133  // value will be replaced with "sensitive".
  7134  func (s Configuration) String() string {
  7135  	return awsutil.Prettify(s)
  7136  }
  7137  
  7138  // GoString returns the string representation.
  7139  //
  7140  // API parameter values that are decorated as "sensitive" in the API will not
  7141  // be included in the string output. The member name will be present, but the
  7142  // value will be replaced with "sensitive".
  7143  func (s Configuration) GoString() string {
  7144  	return s.String()
  7145  }
  7146  
  7147  // SetClassification sets the Classification field's value.
  7148  func (s *Configuration) SetClassification(v string) *Configuration {
  7149  	s.Classification = &v
  7150  	return s
  7151  }
  7152  
  7153  // SetConfigurations sets the Configurations field's value.
  7154  func (s *Configuration) SetConfigurations(v []*Configuration) *Configuration {
  7155  	s.Configurations = v
  7156  	return s
  7157  }
  7158  
  7159  // SetProperties sets the Properties field's value.
  7160  func (s *Configuration) SetProperties(v map[string]*string) *Configuration {
  7161  	s.Properties = v
  7162  	return s
  7163  }
  7164  
  7165  type CreateSecurityConfigurationInput struct {
  7166  	_ struct{} `type:"structure"`
  7167  
  7168  	// The name of the security configuration.
  7169  	//
  7170  	// Name is a required field
  7171  	Name *string `type:"string" required:"true"`
  7172  
  7173  	// The security configuration details in JSON format. For JSON parameters and
  7174  	// examples, see Use Security Configurations to Set Up Cluster Security (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)
  7175  	// in the Amazon EMR Management Guide.
  7176  	//
  7177  	// SecurityConfiguration is a required field
  7178  	SecurityConfiguration *string `type:"string" required:"true"`
  7179  }
  7180  
  7181  // String returns the string representation.
  7182  //
  7183  // API parameter values that are decorated as "sensitive" in the API will not
  7184  // be included in the string output. The member name will be present, but the
  7185  // value will be replaced with "sensitive".
  7186  func (s CreateSecurityConfigurationInput) String() string {
  7187  	return awsutil.Prettify(s)
  7188  }
  7189  
  7190  // GoString returns the string representation.
  7191  //
  7192  // API parameter values that are decorated as "sensitive" in the API will not
  7193  // be included in the string output. The member name will be present, but the
  7194  // value will be replaced with "sensitive".
  7195  func (s CreateSecurityConfigurationInput) GoString() string {
  7196  	return s.String()
  7197  }
  7198  
  7199  // Validate inspects the fields of the type to determine if they are valid.
  7200  func (s *CreateSecurityConfigurationInput) Validate() error {
  7201  	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
  7202  	if s.Name == nil {
  7203  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7204  	}
  7205  	if s.SecurityConfiguration == nil {
  7206  		invalidParams.Add(request.NewErrParamRequired("SecurityConfiguration"))
  7207  	}
  7208  
  7209  	if invalidParams.Len() > 0 {
  7210  		return invalidParams
  7211  	}
  7212  	return nil
  7213  }
  7214  
  7215  // SetName sets the Name field's value.
  7216  func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
  7217  	s.Name = &v
  7218  	return s
  7219  }
  7220  
  7221  // SetSecurityConfiguration sets the SecurityConfiguration field's value.
  7222  func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *CreateSecurityConfigurationInput {
  7223  	s.SecurityConfiguration = &v
  7224  	return s
  7225  }
  7226  
  7227  type CreateSecurityConfigurationOutput struct {
  7228  	_ struct{} `type:"structure"`
  7229  
  7230  	// The date and time the security configuration was created.
  7231  	//
  7232  	// CreationDateTime is a required field
  7233  	CreationDateTime *time.Time `type:"timestamp" required:"true"`
  7234  
  7235  	// The name of the security configuration.
  7236  	//
  7237  	// Name is a required field
  7238  	Name *string `type:"string" required:"true"`
  7239  }
  7240  
  7241  // String returns the string representation.
  7242  //
  7243  // API parameter values that are decorated as "sensitive" in the API will not
  7244  // be included in the string output. The member name will be present, but the
  7245  // value will be replaced with "sensitive".
  7246  func (s CreateSecurityConfigurationOutput) String() string {
  7247  	return awsutil.Prettify(s)
  7248  }
  7249  
  7250  // GoString returns the string representation.
  7251  //
  7252  // API parameter values that are decorated as "sensitive" in the API will not
  7253  // be included in the string output. The member name will be present, but the
  7254  // value will be replaced with "sensitive".
  7255  func (s CreateSecurityConfigurationOutput) GoString() string {
  7256  	return s.String()
  7257  }
  7258  
  7259  // SetCreationDateTime sets the CreationDateTime field's value.
  7260  func (s *CreateSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *CreateSecurityConfigurationOutput {
  7261  	s.CreationDateTime = &v
  7262  	return s
  7263  }
  7264  
  7265  // SetName sets the Name field's value.
  7266  func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
  7267  	s.Name = &v
  7268  	return s
  7269  }
  7270  
  7271  type CreateStudioInput struct {
  7272  	_ struct{} `type:"structure"`
  7273  
  7274  	// Specifies whether the Studio authenticates users using IAM or Amazon Web
  7275  	// Services SSO.
  7276  	//
  7277  	// AuthMode is a required field
  7278  	AuthMode *string `type:"string" required:"true" enum:"AuthMode"`
  7279  
  7280  	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
  7281  	// files.
  7282  	//
  7283  	// DefaultS3Location is a required field
  7284  	DefaultS3Location *string `type:"string" required:"true"`
  7285  
  7286  	// A detailed description of the Amazon EMR Studio.
  7287  	Description *string `type:"string"`
  7288  
  7289  	// The ID of the Amazon EMR Studio Engine security group. The Engine security
  7290  	// group allows inbound network traffic from the Workspace security group, and
  7291  	// it must be in the same VPC specified by VpcId.
  7292  	//
  7293  	// EngineSecurityGroupId is a required field
  7294  	EngineSecurityGroupId *string `type:"string" required:"true"`
  7295  
  7296  	// The authentication endpoint of your identity provider (IdP). Specify this
  7297  	// value when you use IAM authentication and want to let federated users log
  7298  	// in to a Studio with the Studio URL and credentials from your IdP. Amazon
  7299  	// EMR Studio redirects users to this endpoint to enter credentials.
  7300  	IdpAuthUrl *string `type:"string"`
  7301  
  7302  	// The name that your identity provider (IdP) uses for its RelayState parameter.
  7303  	// For example, RelayState or TargetSource. Specify this value when you use
  7304  	// IAM authentication and want to let federated users log in to a Studio using
  7305  	// the Studio URL. The RelayState parameter differs by IdP.
  7306  	IdpRelayStateParameterName *string `type:"string"`
  7307  
  7308  	// A descriptive name for the Amazon EMR Studio.
  7309  	//
  7310  	// Name is a required field
  7311  	Name *string `type:"string" required:"true"`
  7312  
  7313  	// The IAM role that the Amazon EMR Studio assumes. The service role provides
  7314  	// a way for Amazon EMR Studio to interoperate with other Amazon Web Services
  7315  	// services.
  7316  	//
  7317  	// ServiceRole is a required field
  7318  	ServiceRole *string `type:"string" required:"true"`
  7319  
  7320  	// A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can
  7321  	// have a maximum of 5 subnets. The subnets must belong to the VPC specified
  7322  	// by VpcId. Studio users can create a Workspace in any of the specified subnets.
  7323  	//
  7324  	// SubnetIds is a required field
  7325  	SubnetIds []*string `type:"list" required:"true"`
  7326  
  7327  	// A list of tags to associate with the Amazon EMR Studio. Tags are user-defined
  7328  	// key-value pairs that consist of a required key string with a maximum of 128
  7329  	// characters, and an optional value string with a maximum of 256 characters.
  7330  	Tags []*Tag `type:"list"`
  7331  
  7332  	// The IAM user role that users and groups assume when logged in to an Amazon
  7333  	// EMR Studio. Only specify a UserRole when you use Amazon Web Services SSO
  7334  	// authentication. The permissions attached to the UserRole can be scoped down
  7335  	// for each user or group using session policies.
  7336  	UserRole *string `type:"string"`
  7337  
  7338  	// The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with
  7339  	// the Studio.
  7340  	//
  7341  	// VpcId is a required field
  7342  	VpcId *string `type:"string" required:"true"`
  7343  
  7344  	// The ID of the Amazon EMR Studio Workspace security group. The Workspace security
  7345  	// group allows outbound network traffic to resources in the Engine security
  7346  	// group, and it must be in the same VPC specified by VpcId.
  7347  	//
  7348  	// WorkspaceSecurityGroupId is a required field
  7349  	WorkspaceSecurityGroupId *string `type:"string" 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 CreateStudioInput) 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 CreateStudioInput) 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 *CreateStudioInput) Validate() error {
  7372  	invalidParams := request.ErrInvalidParams{Context: "CreateStudioInput"}
  7373  	if s.AuthMode == nil {
  7374  		invalidParams.Add(request.NewErrParamRequired("AuthMode"))
  7375  	}
  7376  	if s.DefaultS3Location == nil {
  7377  		invalidParams.Add(request.NewErrParamRequired("DefaultS3Location"))
  7378  	}
  7379  	if s.EngineSecurityGroupId == nil {
  7380  		invalidParams.Add(request.NewErrParamRequired("EngineSecurityGroupId"))
  7381  	}
  7382  	if s.Name == nil {
  7383  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7384  	}
  7385  	if s.ServiceRole == nil {
  7386  		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
  7387  	}
  7388  	if s.SubnetIds == nil {
  7389  		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
  7390  	}
  7391  	if s.VpcId == nil {
  7392  		invalidParams.Add(request.NewErrParamRequired("VpcId"))
  7393  	}
  7394  	if s.WorkspaceSecurityGroupId == nil {
  7395  		invalidParams.Add(request.NewErrParamRequired("WorkspaceSecurityGroupId"))
  7396  	}
  7397  
  7398  	if invalidParams.Len() > 0 {
  7399  		return invalidParams
  7400  	}
  7401  	return nil
  7402  }
  7403  
  7404  // SetAuthMode sets the AuthMode field's value.
  7405  func (s *CreateStudioInput) SetAuthMode(v string) *CreateStudioInput {
  7406  	s.AuthMode = &v
  7407  	return s
  7408  }
  7409  
  7410  // SetDefaultS3Location sets the DefaultS3Location field's value.
  7411  func (s *CreateStudioInput) SetDefaultS3Location(v string) *CreateStudioInput {
  7412  	s.DefaultS3Location = &v
  7413  	return s
  7414  }
  7415  
  7416  // SetDescription sets the Description field's value.
  7417  func (s *CreateStudioInput) SetDescription(v string) *CreateStudioInput {
  7418  	s.Description = &v
  7419  	return s
  7420  }
  7421  
  7422  // SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
  7423  func (s *CreateStudioInput) SetEngineSecurityGroupId(v string) *CreateStudioInput {
  7424  	s.EngineSecurityGroupId = &v
  7425  	return s
  7426  }
  7427  
  7428  // SetIdpAuthUrl sets the IdpAuthUrl field's value.
  7429  func (s *CreateStudioInput) SetIdpAuthUrl(v string) *CreateStudioInput {
  7430  	s.IdpAuthUrl = &v
  7431  	return s
  7432  }
  7433  
  7434  // SetIdpRelayStateParameterName sets the IdpRelayStateParameterName field's value.
  7435  func (s *CreateStudioInput) SetIdpRelayStateParameterName(v string) *CreateStudioInput {
  7436  	s.IdpRelayStateParameterName = &v
  7437  	return s
  7438  }
  7439  
  7440  // SetName sets the Name field's value.
  7441  func (s *CreateStudioInput) SetName(v string) *CreateStudioInput {
  7442  	s.Name = &v
  7443  	return s
  7444  }
  7445  
  7446  // SetServiceRole sets the ServiceRole field's value.
  7447  func (s *CreateStudioInput) SetServiceRole(v string) *CreateStudioInput {
  7448  	s.ServiceRole = &v
  7449  	return s
  7450  }
  7451  
  7452  // SetSubnetIds sets the SubnetIds field's value.
  7453  func (s *CreateStudioInput) SetSubnetIds(v []*string) *CreateStudioInput {
  7454  	s.SubnetIds = v
  7455  	return s
  7456  }
  7457  
  7458  // SetTags sets the Tags field's value.
  7459  func (s *CreateStudioInput) SetTags(v []*Tag) *CreateStudioInput {
  7460  	s.Tags = v
  7461  	return s
  7462  }
  7463  
  7464  // SetUserRole sets the UserRole field's value.
  7465  func (s *CreateStudioInput) SetUserRole(v string) *CreateStudioInput {
  7466  	s.UserRole = &v
  7467  	return s
  7468  }
  7469  
  7470  // SetVpcId sets the VpcId field's value.
  7471  func (s *CreateStudioInput) SetVpcId(v string) *CreateStudioInput {
  7472  	s.VpcId = &v
  7473  	return s
  7474  }
  7475  
  7476  // SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
  7477  func (s *CreateStudioInput) SetWorkspaceSecurityGroupId(v string) *CreateStudioInput {
  7478  	s.WorkspaceSecurityGroupId = &v
  7479  	return s
  7480  }
  7481  
  7482  type CreateStudioOutput struct {
  7483  	_ struct{} `type:"structure"`
  7484  
  7485  	// The ID of the Amazon EMR Studio.
  7486  	StudioId *string `type:"string"`
  7487  
  7488  	// The unique Studio access URL.
  7489  	Url *string `type:"string"`
  7490  }
  7491  
  7492  // String returns the string representation.
  7493  //
  7494  // API parameter values that are decorated as "sensitive" in the API will not
  7495  // be included in the string output. The member name will be present, but the
  7496  // value will be replaced with "sensitive".
  7497  func (s CreateStudioOutput) String() string {
  7498  	return awsutil.Prettify(s)
  7499  }
  7500  
  7501  // GoString returns the string representation.
  7502  //
  7503  // API parameter values that are decorated as "sensitive" in the API will not
  7504  // be included in the string output. The member name will be present, but the
  7505  // value will be replaced with "sensitive".
  7506  func (s CreateStudioOutput) GoString() string {
  7507  	return s.String()
  7508  }
  7509  
  7510  // SetStudioId sets the StudioId field's value.
  7511  func (s *CreateStudioOutput) SetStudioId(v string) *CreateStudioOutput {
  7512  	s.StudioId = &v
  7513  	return s
  7514  }
  7515  
  7516  // SetUrl sets the Url field's value.
  7517  func (s *CreateStudioOutput) SetUrl(v string) *CreateStudioOutput {
  7518  	s.Url = &v
  7519  	return s
  7520  }
  7521  
  7522  type CreateStudioSessionMappingInput struct {
  7523  	_ struct{} `type:"structure"`
  7524  
  7525  	// The globally unique identifier (GUID) of the user or group from the Amazon
  7526  	// Web Services SSO Identity Store. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
  7527  	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
  7528  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
  7529  	// or IdentityId must be specified, but not both.
  7530  	IdentityId *string `type:"string"`
  7531  
  7532  	// The name of the user or group. For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
  7533  	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
  7534  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
  7535  	// or IdentityId must be specified, but not both.
  7536  	IdentityName *string `type:"string"`
  7537  
  7538  	// Specifies whether the identity to map to the Amazon EMR Studio is a user
  7539  	// or a group.
  7540  	//
  7541  	// IdentityType is a required field
  7542  	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
  7543  
  7544  	// The Amazon Resource Name (ARN) for the session policy that will be applied
  7545  	// to the user or group. You should specify the ARN for the session policy that
  7546  	// you want to apply, not the ARN of your user role. For more information, see
  7547  	// Create an EMR Studio User Role with Session Policies (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html).
  7548  	//
  7549  	// SessionPolicyArn is a required field
  7550  	SessionPolicyArn *string `type:"string" required:"true"`
  7551  
  7552  	// The ID of the Amazon EMR Studio to which the user or group will be mapped.
  7553  	//
  7554  	// StudioId is a required field
  7555  	StudioId *string `type:"string" required:"true"`
  7556  }
  7557  
  7558  // String returns the string representation.
  7559  //
  7560  // API parameter values that are decorated as "sensitive" in the API will not
  7561  // be included in the string output. The member name will be present, but the
  7562  // value will be replaced with "sensitive".
  7563  func (s CreateStudioSessionMappingInput) String() string {
  7564  	return awsutil.Prettify(s)
  7565  }
  7566  
  7567  // GoString returns the string representation.
  7568  //
  7569  // API parameter values that are decorated as "sensitive" in the API will not
  7570  // be included in the string output. The member name will be present, but the
  7571  // value will be replaced with "sensitive".
  7572  func (s CreateStudioSessionMappingInput) GoString() string {
  7573  	return s.String()
  7574  }
  7575  
  7576  // Validate inspects the fields of the type to determine if they are valid.
  7577  func (s *CreateStudioSessionMappingInput) Validate() error {
  7578  	invalidParams := request.ErrInvalidParams{Context: "CreateStudioSessionMappingInput"}
  7579  	if s.IdentityType == nil {
  7580  		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
  7581  	}
  7582  	if s.SessionPolicyArn == nil {
  7583  		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
  7584  	}
  7585  	if s.StudioId == nil {
  7586  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
  7587  	}
  7588  
  7589  	if invalidParams.Len() > 0 {
  7590  		return invalidParams
  7591  	}
  7592  	return nil
  7593  }
  7594  
  7595  // SetIdentityId sets the IdentityId field's value.
  7596  func (s *CreateStudioSessionMappingInput) SetIdentityId(v string) *CreateStudioSessionMappingInput {
  7597  	s.IdentityId = &v
  7598  	return s
  7599  }
  7600  
  7601  // SetIdentityName sets the IdentityName field's value.
  7602  func (s *CreateStudioSessionMappingInput) SetIdentityName(v string) *CreateStudioSessionMappingInput {
  7603  	s.IdentityName = &v
  7604  	return s
  7605  }
  7606  
  7607  // SetIdentityType sets the IdentityType field's value.
  7608  func (s *CreateStudioSessionMappingInput) SetIdentityType(v string) *CreateStudioSessionMappingInput {
  7609  	s.IdentityType = &v
  7610  	return s
  7611  }
  7612  
  7613  // SetSessionPolicyArn sets the SessionPolicyArn field's value.
  7614  func (s *CreateStudioSessionMappingInput) SetSessionPolicyArn(v string) *CreateStudioSessionMappingInput {
  7615  	s.SessionPolicyArn = &v
  7616  	return s
  7617  }
  7618  
  7619  // SetStudioId sets the StudioId field's value.
  7620  func (s *CreateStudioSessionMappingInput) SetStudioId(v string) *CreateStudioSessionMappingInput {
  7621  	s.StudioId = &v
  7622  	return s
  7623  }
  7624  
  7625  type CreateStudioSessionMappingOutput struct {
  7626  	_ struct{} `type:"structure"`
  7627  }
  7628  
  7629  // String returns the string representation.
  7630  //
  7631  // API parameter values that are decorated as "sensitive" in the API will not
  7632  // be included in the string output. The member name will be present, but the
  7633  // value will be replaced with "sensitive".
  7634  func (s CreateStudioSessionMappingOutput) String() string {
  7635  	return awsutil.Prettify(s)
  7636  }
  7637  
  7638  // GoString returns the string representation.
  7639  //
  7640  // API parameter values that are decorated as "sensitive" in the API will not
  7641  // be included in the string output. The member name will be present, but the
  7642  // value will be replaced with "sensitive".
  7643  func (s CreateStudioSessionMappingOutput) GoString() string {
  7644  	return s.String()
  7645  }
  7646  
  7647  type DeleteSecurityConfigurationInput struct {
  7648  	_ struct{} `type:"structure"`
  7649  
  7650  	// The name of the security configuration.
  7651  	//
  7652  	// Name is a required field
  7653  	Name *string `type:"string" required:"true"`
  7654  }
  7655  
  7656  // String returns the string representation.
  7657  //
  7658  // API parameter values that are decorated as "sensitive" in the API will not
  7659  // be included in the string output. The member name will be present, but the
  7660  // value will be replaced with "sensitive".
  7661  func (s DeleteSecurityConfigurationInput) String() string {
  7662  	return awsutil.Prettify(s)
  7663  }
  7664  
  7665  // GoString returns the string representation.
  7666  //
  7667  // API parameter values that are decorated as "sensitive" in the API will not
  7668  // be included in the string output. The member name will be present, but the
  7669  // value will be replaced with "sensitive".
  7670  func (s DeleteSecurityConfigurationInput) GoString() string {
  7671  	return s.String()
  7672  }
  7673  
  7674  // Validate inspects the fields of the type to determine if they are valid.
  7675  func (s *DeleteSecurityConfigurationInput) Validate() error {
  7676  	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
  7677  	if s.Name == nil {
  7678  		invalidParams.Add(request.NewErrParamRequired("Name"))
  7679  	}
  7680  
  7681  	if invalidParams.Len() > 0 {
  7682  		return invalidParams
  7683  	}
  7684  	return nil
  7685  }
  7686  
  7687  // SetName sets the Name field's value.
  7688  func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
  7689  	s.Name = &v
  7690  	return s
  7691  }
  7692  
  7693  type DeleteSecurityConfigurationOutput struct {
  7694  	_ struct{} `type:"structure"`
  7695  }
  7696  
  7697  // String 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 DeleteSecurityConfigurationOutput) String() string {
  7703  	return awsutil.Prettify(s)
  7704  }
  7705  
  7706  // GoString returns the string representation.
  7707  //
  7708  // API parameter values that are decorated as "sensitive" in the API will not
  7709  // be included in the string output. The member name will be present, but the
  7710  // value will be replaced with "sensitive".
  7711  func (s DeleteSecurityConfigurationOutput) GoString() string {
  7712  	return s.String()
  7713  }
  7714  
  7715  type DeleteStudioInput struct {
  7716  	_ struct{} `type:"structure"`
  7717  
  7718  	// The ID of the Amazon EMR Studio.
  7719  	//
  7720  	// StudioId is a required field
  7721  	StudioId *string `type:"string" required:"true"`
  7722  }
  7723  
  7724  // String returns the string representation.
  7725  //
  7726  // API parameter values that are decorated as "sensitive" in the API will not
  7727  // be included in the string output. The member name will be present, but the
  7728  // value will be replaced with "sensitive".
  7729  func (s DeleteStudioInput) String() string {
  7730  	return awsutil.Prettify(s)
  7731  }
  7732  
  7733  // GoString returns the string representation.
  7734  //
  7735  // API parameter values that are decorated as "sensitive" in the API will not
  7736  // be included in the string output. The member name will be present, but the
  7737  // value will be replaced with "sensitive".
  7738  func (s DeleteStudioInput) GoString() string {
  7739  	return s.String()
  7740  }
  7741  
  7742  // Validate inspects the fields of the type to determine if they are valid.
  7743  func (s *DeleteStudioInput) Validate() error {
  7744  	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioInput"}
  7745  	if s.StudioId == nil {
  7746  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
  7747  	}
  7748  
  7749  	if invalidParams.Len() > 0 {
  7750  		return invalidParams
  7751  	}
  7752  	return nil
  7753  }
  7754  
  7755  // SetStudioId sets the StudioId field's value.
  7756  func (s *DeleteStudioInput) SetStudioId(v string) *DeleteStudioInput {
  7757  	s.StudioId = &v
  7758  	return s
  7759  }
  7760  
  7761  type DeleteStudioOutput struct {
  7762  	_ struct{} `type:"structure"`
  7763  }
  7764  
  7765  // String returns the string representation.
  7766  //
  7767  // API parameter values that are decorated as "sensitive" in the API will not
  7768  // be included in the string output. The member name will be present, but the
  7769  // value will be replaced with "sensitive".
  7770  func (s DeleteStudioOutput) String() string {
  7771  	return awsutil.Prettify(s)
  7772  }
  7773  
  7774  // GoString returns the string representation.
  7775  //
  7776  // API parameter values that are decorated as "sensitive" in the API will not
  7777  // be included in the string output. The member name will be present, but the
  7778  // value will be replaced with "sensitive".
  7779  func (s DeleteStudioOutput) GoString() string {
  7780  	return s.String()
  7781  }
  7782  
  7783  type DeleteStudioSessionMappingInput struct {
  7784  	_ struct{} `type:"structure"`
  7785  
  7786  	// The globally unique identifier (GUID) of the user or group to remove from
  7787  	// the Amazon EMR Studio. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
  7788  	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
  7789  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
  7790  	// or IdentityId must be specified.
  7791  	IdentityId *string `type:"string"`
  7792  
  7793  	// The name of the user name or group to remove from the Amazon EMR Studio.
  7794  	// For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
  7795  	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
  7796  	// in the Amazon Web Services SSO Store API Reference. Either IdentityName or
  7797  	// IdentityId must be specified.
  7798  	IdentityName *string `type:"string"`
  7799  
  7800  	// Specifies whether the identity to delete from the Amazon EMR Studio is a
  7801  	// user or a group.
  7802  	//
  7803  	// IdentityType is a required field
  7804  	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
  7805  
  7806  	// The ID of the Amazon EMR Studio.
  7807  	//
  7808  	// StudioId is a required field
  7809  	StudioId *string `type:"string" required:"true"`
  7810  }
  7811  
  7812  // String returns the string representation.
  7813  //
  7814  // API parameter values that are decorated as "sensitive" in the API will not
  7815  // be included in the string output. The member name will be present, but the
  7816  // value will be replaced with "sensitive".
  7817  func (s DeleteStudioSessionMappingInput) String() string {
  7818  	return awsutil.Prettify(s)
  7819  }
  7820  
  7821  // GoString returns the string representation.
  7822  //
  7823  // API parameter values that are decorated as "sensitive" in the API will not
  7824  // be included in the string output. The member name will be present, but the
  7825  // value will be replaced with "sensitive".
  7826  func (s DeleteStudioSessionMappingInput) GoString() string {
  7827  	return s.String()
  7828  }
  7829  
  7830  // Validate inspects the fields of the type to determine if they are valid.
  7831  func (s *DeleteStudioSessionMappingInput) Validate() error {
  7832  	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioSessionMappingInput"}
  7833  	if s.IdentityType == nil {
  7834  		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
  7835  	}
  7836  	if s.StudioId == nil {
  7837  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
  7838  	}
  7839  
  7840  	if invalidParams.Len() > 0 {
  7841  		return invalidParams
  7842  	}
  7843  	return nil
  7844  }
  7845  
  7846  // SetIdentityId sets the IdentityId field's value.
  7847  func (s *DeleteStudioSessionMappingInput) SetIdentityId(v string) *DeleteStudioSessionMappingInput {
  7848  	s.IdentityId = &v
  7849  	return s
  7850  }
  7851  
  7852  // SetIdentityName sets the IdentityName field's value.
  7853  func (s *DeleteStudioSessionMappingInput) SetIdentityName(v string) *DeleteStudioSessionMappingInput {
  7854  	s.IdentityName = &v
  7855  	return s
  7856  }
  7857  
  7858  // SetIdentityType sets the IdentityType field's value.
  7859  func (s *DeleteStudioSessionMappingInput) SetIdentityType(v string) *DeleteStudioSessionMappingInput {
  7860  	s.IdentityType = &v
  7861  	return s
  7862  }
  7863  
  7864  // SetStudioId sets the StudioId field's value.
  7865  func (s *DeleteStudioSessionMappingInput) SetStudioId(v string) *DeleteStudioSessionMappingInput {
  7866  	s.StudioId = &v
  7867  	return s
  7868  }
  7869  
  7870  type DeleteStudioSessionMappingOutput struct {
  7871  	_ struct{} `type:"structure"`
  7872  }
  7873  
  7874  // String returns the string representation.
  7875  //
  7876  // API parameter values that are decorated as "sensitive" in the API will not
  7877  // be included in the string output. The member name will be present, but the
  7878  // value will be replaced with "sensitive".
  7879  func (s DeleteStudioSessionMappingOutput) String() string {
  7880  	return awsutil.Prettify(s)
  7881  }
  7882  
  7883  // GoString returns the string representation.
  7884  //
  7885  // API parameter values that are decorated as "sensitive" in the API will not
  7886  // be included in the string output. The member name will be present, but the
  7887  // value will be replaced with "sensitive".
  7888  func (s DeleteStudioSessionMappingOutput) GoString() string {
  7889  	return s.String()
  7890  }
  7891  
  7892  // This input determines which cluster to describe.
  7893  type DescribeClusterInput struct {
  7894  	_ struct{} `type:"structure"`
  7895  
  7896  	// The identifier of the cluster to describe.
  7897  	//
  7898  	// ClusterId is a required field
  7899  	ClusterId *string `type:"string" required:"true"`
  7900  }
  7901  
  7902  // String returns the string representation.
  7903  //
  7904  // API parameter values that are decorated as "sensitive" in the API will not
  7905  // be included in the string output. The member name will be present, but the
  7906  // value will be replaced with "sensitive".
  7907  func (s DescribeClusterInput) String() string {
  7908  	return awsutil.Prettify(s)
  7909  }
  7910  
  7911  // GoString returns the string representation.
  7912  //
  7913  // API parameter values that are decorated as "sensitive" in the API will not
  7914  // be included in the string output. The member name will be present, but the
  7915  // value will be replaced with "sensitive".
  7916  func (s DescribeClusterInput) GoString() string {
  7917  	return s.String()
  7918  }
  7919  
  7920  // Validate inspects the fields of the type to determine if they are valid.
  7921  func (s *DescribeClusterInput) Validate() error {
  7922  	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
  7923  	if s.ClusterId == nil {
  7924  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
  7925  	}
  7926  
  7927  	if invalidParams.Len() > 0 {
  7928  		return invalidParams
  7929  	}
  7930  	return nil
  7931  }
  7932  
  7933  // SetClusterId sets the ClusterId field's value.
  7934  func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
  7935  	s.ClusterId = &v
  7936  	return s
  7937  }
  7938  
  7939  // This output contains the description of the cluster.
  7940  type DescribeClusterOutput struct {
  7941  	_ struct{} `type:"structure"`
  7942  
  7943  	// This output contains the details for the requested cluster.
  7944  	Cluster *Cluster `type:"structure"`
  7945  }
  7946  
  7947  // String returns the string representation.
  7948  //
  7949  // API parameter values that are decorated as "sensitive" in the API will not
  7950  // be included in the string output. The member name will be present, but the
  7951  // value will be replaced with "sensitive".
  7952  func (s DescribeClusterOutput) String() string {
  7953  	return awsutil.Prettify(s)
  7954  }
  7955  
  7956  // GoString returns the string representation.
  7957  //
  7958  // API parameter values that are decorated as "sensitive" in the API will not
  7959  // be included in the string output. The member name will be present, but the
  7960  // value will be replaced with "sensitive".
  7961  func (s DescribeClusterOutput) GoString() string {
  7962  	return s.String()
  7963  }
  7964  
  7965  // SetCluster sets the Cluster field's value.
  7966  func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
  7967  	s.Cluster = v
  7968  	return s
  7969  }
  7970  
  7971  // The input for the DescribeJobFlows operation.
  7972  type DescribeJobFlowsInput struct {
  7973  	_ struct{} `type:"structure"`
  7974  
  7975  	// Return only job flows created after this date and time.
  7976  	CreatedAfter *time.Time `type:"timestamp"`
  7977  
  7978  	// Return only job flows created before this date and time.
  7979  	CreatedBefore *time.Time `type:"timestamp"`
  7980  
  7981  	// Return only job flows whose job flow ID is contained in this list.
  7982  	JobFlowIds []*string `type:"list"`
  7983  
  7984  	// Return only job flows whose state is contained in this list.
  7985  	JobFlowStates []*string `type:"list"`
  7986  }
  7987  
  7988  // String returns the string representation.
  7989  //
  7990  // API parameter values that are decorated as "sensitive" in the API will not
  7991  // be included in the string output. The member name will be present, but the
  7992  // value will be replaced with "sensitive".
  7993  func (s DescribeJobFlowsInput) String() string {
  7994  	return awsutil.Prettify(s)
  7995  }
  7996  
  7997  // GoString returns the string representation.
  7998  //
  7999  // API parameter values that are decorated as "sensitive" in the API will not
  8000  // be included in the string output. The member name will be present, but the
  8001  // value will be replaced with "sensitive".
  8002  func (s DescribeJobFlowsInput) GoString() string {
  8003  	return s.String()
  8004  }
  8005  
  8006  // SetCreatedAfter sets the CreatedAfter field's value.
  8007  func (s *DescribeJobFlowsInput) SetCreatedAfter(v time.Time) *DescribeJobFlowsInput {
  8008  	s.CreatedAfter = &v
  8009  	return s
  8010  }
  8011  
  8012  // SetCreatedBefore sets the CreatedBefore field's value.
  8013  func (s *DescribeJobFlowsInput) SetCreatedBefore(v time.Time) *DescribeJobFlowsInput {
  8014  	s.CreatedBefore = &v
  8015  	return s
  8016  }
  8017  
  8018  // SetJobFlowIds sets the JobFlowIds field's value.
  8019  func (s *DescribeJobFlowsInput) SetJobFlowIds(v []*string) *DescribeJobFlowsInput {
  8020  	s.JobFlowIds = v
  8021  	return s
  8022  }
  8023  
  8024  // SetJobFlowStates sets the JobFlowStates field's value.
  8025  func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsInput {
  8026  	s.JobFlowStates = v
  8027  	return s
  8028  }
  8029  
  8030  // The output for the DescribeJobFlows operation.
  8031  type DescribeJobFlowsOutput struct {
  8032  	_ struct{} `type:"structure"`
  8033  
  8034  	// A list of job flows matching the parameters supplied.
  8035  	JobFlows []*JobFlowDetail `type:"list"`
  8036  }
  8037  
  8038  // String returns the string representation.
  8039  //
  8040  // API parameter values that are decorated as "sensitive" in the API will not
  8041  // be included in the string output. The member name will be present, but the
  8042  // value will be replaced with "sensitive".
  8043  func (s DescribeJobFlowsOutput) String() string {
  8044  	return awsutil.Prettify(s)
  8045  }
  8046  
  8047  // GoString returns the string representation.
  8048  //
  8049  // API parameter values that are decorated as "sensitive" in the API will not
  8050  // be included in the string output. The member name will be present, but the
  8051  // value will be replaced with "sensitive".
  8052  func (s DescribeJobFlowsOutput) GoString() string {
  8053  	return s.String()
  8054  }
  8055  
  8056  // SetJobFlows sets the JobFlows field's value.
  8057  func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlowsOutput {
  8058  	s.JobFlows = v
  8059  	return s
  8060  }
  8061  
  8062  type DescribeNotebookExecutionInput struct {
  8063  	_ struct{} `type:"structure"`
  8064  
  8065  	// The unique identifier of the notebook execution.
  8066  	//
  8067  	// NotebookExecutionId is a required field
  8068  	NotebookExecutionId *string `type:"string" required:"true"`
  8069  }
  8070  
  8071  // String returns the string representation.
  8072  //
  8073  // API parameter values that are decorated as "sensitive" in the API will not
  8074  // be included in the string output. The member name will be present, but the
  8075  // value will be replaced with "sensitive".
  8076  func (s DescribeNotebookExecutionInput) String() string {
  8077  	return awsutil.Prettify(s)
  8078  }
  8079  
  8080  // GoString returns the string representation.
  8081  //
  8082  // API parameter values that are decorated as "sensitive" in the API will not
  8083  // be included in the string output. The member name will be present, but the
  8084  // value will be replaced with "sensitive".
  8085  func (s DescribeNotebookExecutionInput) GoString() string {
  8086  	return s.String()
  8087  }
  8088  
  8089  // Validate inspects the fields of the type to determine if they are valid.
  8090  func (s *DescribeNotebookExecutionInput) Validate() error {
  8091  	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookExecutionInput"}
  8092  	if s.NotebookExecutionId == nil {
  8093  		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
  8094  	}
  8095  
  8096  	if invalidParams.Len() > 0 {
  8097  		return invalidParams
  8098  	}
  8099  	return nil
  8100  }
  8101  
  8102  // SetNotebookExecutionId sets the NotebookExecutionId field's value.
  8103  func (s *DescribeNotebookExecutionInput) SetNotebookExecutionId(v string) *DescribeNotebookExecutionInput {
  8104  	s.NotebookExecutionId = &v
  8105  	return s
  8106  }
  8107  
  8108  type DescribeNotebookExecutionOutput struct {
  8109  	_ struct{} `type:"structure"`
  8110  
  8111  	// Properties of the notebook execution.
  8112  	NotebookExecution *NotebookExecution `type:"structure"`
  8113  }
  8114  
  8115  // String returns the string representation.
  8116  //
  8117  // API parameter values that are decorated as "sensitive" in the API will not
  8118  // be included in the string output. The member name will be present, but the
  8119  // value will be replaced with "sensitive".
  8120  func (s DescribeNotebookExecutionOutput) String() string {
  8121  	return awsutil.Prettify(s)
  8122  }
  8123  
  8124  // GoString returns the string representation.
  8125  //
  8126  // API parameter values that are decorated as "sensitive" in the API will not
  8127  // be included in the string output. The member name will be present, but the
  8128  // value will be replaced with "sensitive".
  8129  func (s DescribeNotebookExecutionOutput) GoString() string {
  8130  	return s.String()
  8131  }
  8132  
  8133  // SetNotebookExecution sets the NotebookExecution field's value.
  8134  func (s *DescribeNotebookExecutionOutput) SetNotebookExecution(v *NotebookExecution) *DescribeNotebookExecutionOutput {
  8135  	s.NotebookExecution = v
  8136  	return s
  8137  }
  8138  
  8139  type DescribeReleaseLabelInput struct {
  8140  	_ struct{} `type:"structure"`
  8141  
  8142  	// Reserved for future use. Currently set to null.
  8143  	MaxResults *int64 `min:"1" type:"integer"`
  8144  
  8145  	// The pagination token. Reserved for future use. Currently set to null.
  8146  	NextToken *string `type:"string"`
  8147  
  8148  	// The target release label to be described.
  8149  	ReleaseLabel *string `type:"string"`
  8150  }
  8151  
  8152  // String returns the string representation.
  8153  //
  8154  // API parameter values that are decorated as "sensitive" in the API will not
  8155  // be included in the string output. The member name will be present, but the
  8156  // value will be replaced with "sensitive".
  8157  func (s DescribeReleaseLabelInput) String() string {
  8158  	return awsutil.Prettify(s)
  8159  }
  8160  
  8161  // GoString returns the string representation.
  8162  //
  8163  // API parameter values that are decorated as "sensitive" in the API will not
  8164  // be included in the string output. The member name will be present, but the
  8165  // value will be replaced with "sensitive".
  8166  func (s DescribeReleaseLabelInput) GoString() string {
  8167  	return s.String()
  8168  }
  8169  
  8170  // Validate inspects the fields of the type to determine if they are valid.
  8171  func (s *DescribeReleaseLabelInput) Validate() error {
  8172  	invalidParams := request.ErrInvalidParams{Context: "DescribeReleaseLabelInput"}
  8173  	if s.MaxResults != nil && *s.MaxResults < 1 {
  8174  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  8175  	}
  8176  
  8177  	if invalidParams.Len() > 0 {
  8178  		return invalidParams
  8179  	}
  8180  	return nil
  8181  }
  8182  
  8183  // SetMaxResults sets the MaxResults field's value.
  8184  func (s *DescribeReleaseLabelInput) SetMaxResults(v int64) *DescribeReleaseLabelInput {
  8185  	s.MaxResults = &v
  8186  	return s
  8187  }
  8188  
  8189  // SetNextToken sets the NextToken field's value.
  8190  func (s *DescribeReleaseLabelInput) SetNextToken(v string) *DescribeReleaseLabelInput {
  8191  	s.NextToken = &v
  8192  	return s
  8193  }
  8194  
  8195  // SetReleaseLabel sets the ReleaseLabel field's value.
  8196  func (s *DescribeReleaseLabelInput) SetReleaseLabel(v string) *DescribeReleaseLabelInput {
  8197  	s.ReleaseLabel = &v
  8198  	return s
  8199  }
  8200  
  8201  type DescribeReleaseLabelOutput struct {
  8202  	_ struct{} `type:"structure"`
  8203  
  8204  	// The list of applications available for the target release label. Name is
  8205  	// the name of the application. Version is the concise version of the application.
  8206  	Applications []*SimplifiedApplication `type:"list"`
  8207  
  8208  	// The pagination token. Reserved for future use. Currently set to null.
  8209  	NextToken *string `type:"string"`
  8210  
  8211  	// The target release label described in the response.
  8212  	ReleaseLabel *string `type:"string"`
  8213  }
  8214  
  8215  // String returns the string representation.
  8216  //
  8217  // API parameter values that are decorated as "sensitive" in the API will not
  8218  // be included in the string output. The member name will be present, but the
  8219  // value will be replaced with "sensitive".
  8220  func (s DescribeReleaseLabelOutput) String() string {
  8221  	return awsutil.Prettify(s)
  8222  }
  8223  
  8224  // GoString returns the string representation.
  8225  //
  8226  // API parameter values that are decorated as "sensitive" in the API will not
  8227  // be included in the string output. The member name will be present, but the
  8228  // value will be replaced with "sensitive".
  8229  func (s DescribeReleaseLabelOutput) GoString() string {
  8230  	return s.String()
  8231  }
  8232  
  8233  // SetApplications sets the Applications field's value.
  8234  func (s *DescribeReleaseLabelOutput) SetApplications(v []*SimplifiedApplication) *DescribeReleaseLabelOutput {
  8235  	s.Applications = v
  8236  	return s
  8237  }
  8238  
  8239  // SetNextToken sets the NextToken field's value.
  8240  func (s *DescribeReleaseLabelOutput) SetNextToken(v string) *DescribeReleaseLabelOutput {
  8241  	s.NextToken = &v
  8242  	return s
  8243  }
  8244  
  8245  // SetReleaseLabel sets the ReleaseLabel field's value.
  8246  func (s *DescribeReleaseLabelOutput) SetReleaseLabel(v string) *DescribeReleaseLabelOutput {
  8247  	s.ReleaseLabel = &v
  8248  	return s
  8249  }
  8250  
  8251  type DescribeSecurityConfigurationInput struct {
  8252  	_ struct{} `type:"structure"`
  8253  
  8254  	// The name of the security configuration.
  8255  	//
  8256  	// Name is a required field
  8257  	Name *string `type:"string" required:"true"`
  8258  }
  8259  
  8260  // String returns the string representation.
  8261  //
  8262  // API parameter values that are decorated as "sensitive" in the API will not
  8263  // be included in the string output. The member name will be present, but the
  8264  // value will be replaced with "sensitive".
  8265  func (s DescribeSecurityConfigurationInput) String() string {
  8266  	return awsutil.Prettify(s)
  8267  }
  8268  
  8269  // GoString returns the string representation.
  8270  //
  8271  // API parameter values that are decorated as "sensitive" in the API will not
  8272  // be included in the string output. The member name will be present, but the
  8273  // value will be replaced with "sensitive".
  8274  func (s DescribeSecurityConfigurationInput) GoString() string {
  8275  	return s.String()
  8276  }
  8277  
  8278  // Validate inspects the fields of the type to determine if they are valid.
  8279  func (s *DescribeSecurityConfigurationInput) Validate() error {
  8280  	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityConfigurationInput"}
  8281  	if s.Name == nil {
  8282  		invalidParams.Add(request.NewErrParamRequired("Name"))
  8283  	}
  8284  
  8285  	if invalidParams.Len() > 0 {
  8286  		return invalidParams
  8287  	}
  8288  	return nil
  8289  }
  8290  
  8291  // SetName sets the Name field's value.
  8292  func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurityConfigurationInput {
  8293  	s.Name = &v
  8294  	return s
  8295  }
  8296  
  8297  type DescribeSecurityConfigurationOutput struct {
  8298  	_ struct{} `type:"structure"`
  8299  
  8300  	// The date and time the security configuration was created
  8301  	CreationDateTime *time.Time `type:"timestamp"`
  8302  
  8303  	// The name of the security configuration.
  8304  	Name *string `type:"string"`
  8305  
  8306  	// The security configuration details in JSON format.
  8307  	SecurityConfiguration *string `type:"string"`
  8308  }
  8309  
  8310  // String returns the string representation.
  8311  //
  8312  // API parameter values that are decorated as "sensitive" in the API will not
  8313  // be included in the string output. The member name will be present, but the
  8314  // value will be replaced with "sensitive".
  8315  func (s DescribeSecurityConfigurationOutput) String() string {
  8316  	return awsutil.Prettify(s)
  8317  }
  8318  
  8319  // GoString returns the string representation.
  8320  //
  8321  // API parameter values that are decorated as "sensitive" in the API will not
  8322  // be included in the string output. The member name will be present, but the
  8323  // value will be replaced with "sensitive".
  8324  func (s DescribeSecurityConfigurationOutput) GoString() string {
  8325  	return s.String()
  8326  }
  8327  
  8328  // SetCreationDateTime sets the CreationDateTime field's value.
  8329  func (s *DescribeSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *DescribeSecurityConfigurationOutput {
  8330  	s.CreationDateTime = &v
  8331  	return s
  8332  }
  8333  
  8334  // SetName sets the Name field's value.
  8335  func (s *DescribeSecurityConfigurationOutput) SetName(v string) *DescribeSecurityConfigurationOutput {
  8336  	s.Name = &v
  8337  	return s
  8338  }
  8339  
  8340  // SetSecurityConfiguration sets the SecurityConfiguration field's value.
  8341  func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) *DescribeSecurityConfigurationOutput {
  8342  	s.SecurityConfiguration = &v
  8343  	return s
  8344  }
  8345  
  8346  // This input determines which step to describe.
  8347  type DescribeStepInput struct {
  8348  	_ struct{} `type:"structure"`
  8349  
  8350  	// The identifier of the cluster with steps to describe.
  8351  	//
  8352  	// ClusterId is a required field
  8353  	ClusterId *string `type:"string" required:"true"`
  8354  
  8355  	// The identifier of the step to describe.
  8356  	//
  8357  	// StepId is a required field
  8358  	StepId *string `type:"string" required:"true"`
  8359  }
  8360  
  8361  // String returns the string representation.
  8362  //
  8363  // API parameter values that are decorated as "sensitive" in the API will not
  8364  // be included in the string output. The member name will be present, but the
  8365  // value will be replaced with "sensitive".
  8366  func (s DescribeStepInput) String() string {
  8367  	return awsutil.Prettify(s)
  8368  }
  8369  
  8370  // GoString returns the string representation.
  8371  //
  8372  // API parameter values that are decorated as "sensitive" in the API will not
  8373  // be included in the string output. The member name will be present, but the
  8374  // value will be replaced with "sensitive".
  8375  func (s DescribeStepInput) GoString() string {
  8376  	return s.String()
  8377  }
  8378  
  8379  // Validate inspects the fields of the type to determine if they are valid.
  8380  func (s *DescribeStepInput) Validate() error {
  8381  	invalidParams := request.ErrInvalidParams{Context: "DescribeStepInput"}
  8382  	if s.ClusterId == nil {
  8383  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
  8384  	}
  8385  	if s.StepId == nil {
  8386  		invalidParams.Add(request.NewErrParamRequired("StepId"))
  8387  	}
  8388  
  8389  	if invalidParams.Len() > 0 {
  8390  		return invalidParams
  8391  	}
  8392  	return nil
  8393  }
  8394  
  8395  // SetClusterId sets the ClusterId field's value.
  8396  func (s *DescribeStepInput) SetClusterId(v string) *DescribeStepInput {
  8397  	s.ClusterId = &v
  8398  	return s
  8399  }
  8400  
  8401  // SetStepId sets the StepId field's value.
  8402  func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput {
  8403  	s.StepId = &v
  8404  	return s
  8405  }
  8406  
  8407  // This output contains the description of the cluster step.
  8408  type DescribeStepOutput struct {
  8409  	_ struct{} `type:"structure"`
  8410  
  8411  	// The step details for the requested step identifier.
  8412  	Step *Step `type:"structure"`
  8413  }
  8414  
  8415  // String returns the string representation.
  8416  //
  8417  // API parameter values that are decorated as "sensitive" in the API will not
  8418  // be included in the string output. The member name will be present, but the
  8419  // value will be replaced with "sensitive".
  8420  func (s DescribeStepOutput) String() string {
  8421  	return awsutil.Prettify(s)
  8422  }
  8423  
  8424  // GoString returns the string representation.
  8425  //
  8426  // API parameter values that are decorated as "sensitive" in the API will not
  8427  // be included in the string output. The member name will be present, but the
  8428  // value will be replaced with "sensitive".
  8429  func (s DescribeStepOutput) GoString() string {
  8430  	return s.String()
  8431  }
  8432  
  8433  // SetStep sets the Step field's value.
  8434  func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput {
  8435  	s.Step = v
  8436  	return s
  8437  }
  8438  
  8439  type DescribeStudioInput struct {
  8440  	_ struct{} `type:"structure"`
  8441  
  8442  	// The Amazon EMR Studio ID.
  8443  	//
  8444  	// StudioId is a required field
  8445  	StudioId *string `type:"string" required:"true"`
  8446  }
  8447  
  8448  // String returns the string representation.
  8449  //
  8450  // API parameter values that are decorated as "sensitive" in the API will not
  8451  // be included in the string output. The member name will be present, but the
  8452  // value will be replaced with "sensitive".
  8453  func (s DescribeStudioInput) String() string {
  8454  	return awsutil.Prettify(s)
  8455  }
  8456  
  8457  // GoString returns the string representation.
  8458  //
  8459  // API parameter values that are decorated as "sensitive" in the API will not
  8460  // be included in the string output. The member name will be present, but the
  8461  // value will be replaced with "sensitive".
  8462  func (s DescribeStudioInput) GoString() string {
  8463  	return s.String()
  8464  }
  8465  
  8466  // Validate inspects the fields of the type to determine if they are valid.
  8467  func (s *DescribeStudioInput) Validate() error {
  8468  	invalidParams := request.ErrInvalidParams{Context: "DescribeStudioInput"}
  8469  	if s.StudioId == nil {
  8470  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
  8471  	}
  8472  
  8473  	if invalidParams.Len() > 0 {
  8474  		return invalidParams
  8475  	}
  8476  	return nil
  8477  }
  8478  
  8479  // SetStudioId sets the StudioId field's value.
  8480  func (s *DescribeStudioInput) SetStudioId(v string) *DescribeStudioInput {
  8481  	s.StudioId = &v
  8482  	return s
  8483  }
  8484  
  8485  type DescribeStudioOutput struct {
  8486  	_ struct{} `type:"structure"`
  8487  
  8488  	// The Amazon EMR Studio details.
  8489  	Studio *Studio `type:"structure"`
  8490  }
  8491  
  8492  // String returns the string representation.
  8493  //
  8494  // API parameter values that are decorated as "sensitive" in the API will not
  8495  // be included in the string output. The member name will be present, but the
  8496  // value will be replaced with "sensitive".
  8497  func (s DescribeStudioOutput) String() string {
  8498  	return awsutil.Prettify(s)
  8499  }
  8500  
  8501  // GoString returns the string representation.
  8502  //
  8503  // API parameter values that are decorated as "sensitive" in the API will not
  8504  // be included in the string output. The member name will be present, but the
  8505  // value will be replaced with "sensitive".
  8506  func (s DescribeStudioOutput) GoString() string {
  8507  	return s.String()
  8508  }
  8509  
  8510  // SetStudio sets the Studio field's value.
  8511  func (s *DescribeStudioOutput) SetStudio(v *Studio) *DescribeStudioOutput {
  8512  	s.Studio = v
  8513  	return s
  8514  }
  8515  
  8516  // Configuration of requested EBS block device associated with the instance
  8517  // group.
  8518  type EbsBlockDevice struct {
  8519  	_ struct{} `type:"structure"`
  8520  
  8521  	// The device name that is exposed to the instance, such as /dev/sdh.
  8522  	Device *string `type:"string"`
  8523  
  8524  	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
  8525  	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
  8526  	VolumeSpecification *VolumeSpecification `type:"structure"`
  8527  }
  8528  
  8529  // String returns the string representation.
  8530  //
  8531  // API parameter values that are decorated as "sensitive" in the API will not
  8532  // be included in the string output. The member name will be present, but the
  8533  // value will be replaced with "sensitive".
  8534  func (s EbsBlockDevice) String() string {
  8535  	return awsutil.Prettify(s)
  8536  }
  8537  
  8538  // GoString returns the string representation.
  8539  //
  8540  // API parameter values that are decorated as "sensitive" in the API will not
  8541  // be included in the string output. The member name will be present, but the
  8542  // value will be replaced with "sensitive".
  8543  func (s EbsBlockDevice) GoString() string {
  8544  	return s.String()
  8545  }
  8546  
  8547  // SetDevice sets the Device field's value.
  8548  func (s *EbsBlockDevice) SetDevice(v string) *EbsBlockDevice {
  8549  	s.Device = &v
  8550  	return s
  8551  }
  8552  
  8553  // SetVolumeSpecification sets the VolumeSpecification field's value.
  8554  func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDevice {
  8555  	s.VolumeSpecification = v
  8556  	return s
  8557  }
  8558  
  8559  // Configuration of requested EBS block device associated with the instance
  8560  // group with count of volumes that will be associated to every instance.
  8561  type EbsBlockDeviceConfig struct {
  8562  	_ struct{} `type:"structure"`
  8563  
  8564  	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
  8565  	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
  8566  	//
  8567  	// VolumeSpecification is a required field
  8568  	VolumeSpecification *VolumeSpecification `type:"structure" required:"true"`
  8569  
  8570  	// Number of EBS volumes with a specific volume configuration that will be associated
  8571  	// with every instance in the instance group
  8572  	VolumesPerInstance *int64 `type:"integer"`
  8573  }
  8574  
  8575  // String returns the string representation.
  8576  //
  8577  // API parameter values that are decorated as "sensitive" in the API will not
  8578  // be included in the string output. The member name will be present, but the
  8579  // value will be replaced with "sensitive".
  8580  func (s EbsBlockDeviceConfig) String() string {
  8581  	return awsutil.Prettify(s)
  8582  }
  8583  
  8584  // GoString returns the string representation.
  8585  //
  8586  // API parameter values that are decorated as "sensitive" in the API will not
  8587  // be included in the string output. The member name will be present, but the
  8588  // value will be replaced with "sensitive".
  8589  func (s EbsBlockDeviceConfig) GoString() string {
  8590  	return s.String()
  8591  }
  8592  
  8593  // Validate inspects the fields of the type to determine if they are valid.
  8594  func (s *EbsBlockDeviceConfig) Validate() error {
  8595  	invalidParams := request.ErrInvalidParams{Context: "EbsBlockDeviceConfig"}
  8596  	if s.VolumeSpecification == nil {
  8597  		invalidParams.Add(request.NewErrParamRequired("VolumeSpecification"))
  8598  	}
  8599  	if s.VolumeSpecification != nil {
  8600  		if err := s.VolumeSpecification.Validate(); err != nil {
  8601  			invalidParams.AddNested("VolumeSpecification", err.(request.ErrInvalidParams))
  8602  		}
  8603  	}
  8604  
  8605  	if invalidParams.Len() > 0 {
  8606  		return invalidParams
  8607  	}
  8608  	return nil
  8609  }
  8610  
  8611  // SetVolumeSpecification sets the VolumeSpecification field's value.
  8612  func (s *EbsBlockDeviceConfig) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDeviceConfig {
  8613  	s.VolumeSpecification = v
  8614  	return s
  8615  }
  8616  
  8617  // SetVolumesPerInstance sets the VolumesPerInstance field's value.
  8618  func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceConfig {
  8619  	s.VolumesPerInstance = &v
  8620  	return s
  8621  }
  8622  
  8623  // The Amazon EBS configuration of a cluster instance.
  8624  type EbsConfiguration struct {
  8625  	_ struct{} `type:"structure"`
  8626  
  8627  	// An array of Amazon EBS volume specifications attached to a cluster instance.
  8628  	EbsBlockDeviceConfigs []*EbsBlockDeviceConfig `type:"list"`
  8629  
  8630  	// Indicates whether an Amazon EBS volume is EBS-optimized.
  8631  	EbsOptimized *bool `type:"boolean"`
  8632  }
  8633  
  8634  // String returns the string representation.
  8635  //
  8636  // API parameter values that are decorated as "sensitive" in the API will not
  8637  // be included in the string output. The member name will be present, but the
  8638  // value will be replaced with "sensitive".
  8639  func (s EbsConfiguration) String() string {
  8640  	return awsutil.Prettify(s)
  8641  }
  8642  
  8643  // GoString returns the string representation.
  8644  //
  8645  // API parameter values that are decorated as "sensitive" in the API will not
  8646  // be included in the string output. The member name will be present, but the
  8647  // value will be replaced with "sensitive".
  8648  func (s EbsConfiguration) GoString() string {
  8649  	return s.String()
  8650  }
  8651  
  8652  // Validate inspects the fields of the type to determine if they are valid.
  8653  func (s *EbsConfiguration) Validate() error {
  8654  	invalidParams := request.ErrInvalidParams{Context: "EbsConfiguration"}
  8655  	if s.EbsBlockDeviceConfigs != nil {
  8656  		for i, v := range s.EbsBlockDeviceConfigs {
  8657  			if v == nil {
  8658  				continue
  8659  			}
  8660  			if err := v.Validate(); err != nil {
  8661  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EbsBlockDeviceConfigs", i), err.(request.ErrInvalidParams))
  8662  			}
  8663  		}
  8664  	}
  8665  
  8666  	if invalidParams.Len() > 0 {
  8667  		return invalidParams
  8668  	}
  8669  	return nil
  8670  }
  8671  
  8672  // SetEbsBlockDeviceConfigs sets the EbsBlockDeviceConfigs field's value.
  8673  func (s *EbsConfiguration) SetEbsBlockDeviceConfigs(v []*EbsBlockDeviceConfig) *EbsConfiguration {
  8674  	s.EbsBlockDeviceConfigs = v
  8675  	return s
  8676  }
  8677  
  8678  // SetEbsOptimized sets the EbsOptimized field's value.
  8679  func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration {
  8680  	s.EbsOptimized = &v
  8681  	return s
  8682  }
  8683  
  8684  // EBS block device that's attached to an EC2 instance.
  8685  type EbsVolume struct {
  8686  	_ struct{} `type:"structure"`
  8687  
  8688  	// The device name that is exposed to the instance, such as /dev/sdh.
  8689  	Device *string `type:"string"`
  8690  
  8691  	// The volume identifier of the EBS volume.
  8692  	VolumeId *string `type:"string"`
  8693  }
  8694  
  8695  // String returns the string representation.
  8696  //
  8697  // API parameter values that are decorated as "sensitive" in the API will not
  8698  // be included in the string output. The member name will be present, but the
  8699  // value will be replaced with "sensitive".
  8700  func (s EbsVolume) String() string {
  8701  	return awsutil.Prettify(s)
  8702  }
  8703  
  8704  // GoString returns the string representation.
  8705  //
  8706  // API parameter values that are decorated as "sensitive" in the API will not
  8707  // be included in the string output. The member name will be present, but the
  8708  // value will be replaced with "sensitive".
  8709  func (s EbsVolume) GoString() string {
  8710  	return s.String()
  8711  }
  8712  
  8713  // SetDevice sets the Device field's value.
  8714  func (s *EbsVolume) SetDevice(v string) *EbsVolume {
  8715  	s.Device = &v
  8716  	return s
  8717  }
  8718  
  8719  // SetVolumeId sets the VolumeId field's value.
  8720  func (s *EbsVolume) SetVolumeId(v string) *EbsVolume {
  8721  	s.VolumeId = &v
  8722  	return s
  8723  }
  8724  
  8725  // Provides information about the EC2 instances in a cluster grouped by category.
  8726  // For example, key name, subnet ID, IAM instance profile, and so on.
  8727  type Ec2InstanceAttributes struct {
  8728  	_ struct{} `type:"structure"`
  8729  
  8730  	// A list of additional Amazon EC2 security group IDs for the master node.
  8731  	AdditionalMasterSecurityGroups []*string `type:"list"`
  8732  
  8733  	// A list of additional Amazon EC2 security group IDs for the core and task
  8734  	// nodes.
  8735  	AdditionalSlaveSecurityGroups []*string `type:"list"`
  8736  
  8737  	// The Availability Zone in which the cluster will run.
  8738  	Ec2AvailabilityZone *string `type:"string"`
  8739  
  8740  	// The name of the Amazon EC2 key pair to use when connecting with SSH into
  8741  	// the master node as a user named "hadoop".
  8742  	Ec2KeyName *string `type:"string"`
  8743  
  8744  	// Set this parameter to the identifier of the Amazon VPC subnet where you want
  8745  	// the cluster to launch. If you do not specify this value, and your account
  8746  	// supports EC2-Classic, the cluster launches in EC2-Classic.
  8747  	Ec2SubnetId *string `type:"string"`
  8748  
  8749  	// The identifier of the Amazon EC2 security group for the master node.
  8750  	EmrManagedMasterSecurityGroup *string `type:"string"`
  8751  
  8752  	// The identifier of the Amazon EC2 security group for the core and task nodes.
  8753  	EmrManagedSlaveSecurityGroup *string `type:"string"`
  8754  
  8755  	// The IAM role that was specified when the cluster was launched. The EC2 instances
  8756  	// of the cluster assume this role.
  8757  	IamInstanceProfile *string `type:"string"`
  8758  
  8759  	// Applies to clusters configured with the instance fleets option. Specifies
  8760  	// one or more Availability Zones in which to launch EC2 cluster instances when
  8761  	// the EC2-Classic network configuration is supported. Amazon EMR chooses the
  8762  	// Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones,
  8763  	// and then launches all cluster instances within that Availability Zone. If
  8764  	// you do not specify this value, Amazon EMR chooses the Availability Zone for
  8765  	// you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified
  8766  	// together.
  8767  	RequestedEc2AvailabilityZones []*string `type:"list"`
  8768  
  8769  	// Applies to clusters configured with the instance fleets option. Specifies
  8770  	// the unique identifier of one or more Amazon EC2 subnets in which to launch
  8771  	// EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR
  8772  	// chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds,
  8773  	// and then launches all cluster instances within that Subnet. If this value
  8774  	// is not specified, and the account and Region support EC2-Classic networks,
  8775  	// the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones
  8776  	// instead of this setting. If EC2-Classic is not supported, and no Subnet is
  8777  	// specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and
  8778  	// RequestedEc2AvailabilityZones cannot be specified together.
  8779  	RequestedEc2SubnetIds []*string `type:"list"`
  8780  
  8781  	// The identifier of the Amazon EC2 security group for the Amazon EMR service
  8782  	// to access clusters in VPC private subnets.
  8783  	ServiceAccessSecurityGroup *string `type:"string"`
  8784  }
  8785  
  8786  // String returns the string representation.
  8787  //
  8788  // API parameter values that are decorated as "sensitive" in the API will not
  8789  // be included in the string output. The member name will be present, but the
  8790  // value will be replaced with "sensitive".
  8791  func (s Ec2InstanceAttributes) String() string {
  8792  	return awsutil.Prettify(s)
  8793  }
  8794  
  8795  // GoString returns the string representation.
  8796  //
  8797  // API parameter values that are decorated as "sensitive" in the API will not
  8798  // be included in the string output. The member name will be present, but the
  8799  // value will be replaced with "sensitive".
  8800  func (s Ec2InstanceAttributes) GoString() string {
  8801  	return s.String()
  8802  }
  8803  
  8804  // SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
  8805  func (s *Ec2InstanceAttributes) SetAdditionalMasterSecurityGroups(v []*string) *Ec2InstanceAttributes {
  8806  	s.AdditionalMasterSecurityGroups = v
  8807  	return s
  8808  }
  8809  
  8810  // SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
  8811  func (s *Ec2InstanceAttributes) SetAdditionalSlaveSecurityGroups(v []*string) *Ec2InstanceAttributes {
  8812  	s.AdditionalSlaveSecurityGroups = v
  8813  	return s
  8814  }
  8815  
  8816  // SetEc2AvailabilityZone sets the Ec2AvailabilityZone field's value.
  8817  func (s *Ec2InstanceAttributes) SetEc2AvailabilityZone(v string) *Ec2InstanceAttributes {
  8818  	s.Ec2AvailabilityZone = &v
  8819  	return s
  8820  }
  8821  
  8822  // SetEc2KeyName sets the Ec2KeyName field's value.
  8823  func (s *Ec2InstanceAttributes) SetEc2KeyName(v string) *Ec2InstanceAttributes {
  8824  	s.Ec2KeyName = &v
  8825  	return s
  8826  }
  8827  
  8828  // SetEc2SubnetId sets the Ec2SubnetId field's value.
  8829  func (s *Ec2InstanceAttributes) SetEc2SubnetId(v string) *Ec2InstanceAttributes {
  8830  	s.Ec2SubnetId = &v
  8831  	return s
  8832  }
  8833  
  8834  // SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
  8835  func (s *Ec2InstanceAttributes) SetEmrManagedMasterSecurityGroup(v string) *Ec2InstanceAttributes {
  8836  	s.EmrManagedMasterSecurityGroup = &v
  8837  	return s
  8838  }
  8839  
  8840  // SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
  8841  func (s *Ec2InstanceAttributes) SetEmrManagedSlaveSecurityGroup(v string) *Ec2InstanceAttributes {
  8842  	s.EmrManagedSlaveSecurityGroup = &v
  8843  	return s
  8844  }
  8845  
  8846  // SetIamInstanceProfile sets the IamInstanceProfile field's value.
  8847  func (s *Ec2InstanceAttributes) SetIamInstanceProfile(v string) *Ec2InstanceAttributes {
  8848  	s.IamInstanceProfile = &v
  8849  	return s
  8850  }
  8851  
  8852  // SetRequestedEc2AvailabilityZones sets the RequestedEc2AvailabilityZones field's value.
  8853  func (s *Ec2InstanceAttributes) SetRequestedEc2AvailabilityZones(v []*string) *Ec2InstanceAttributes {
  8854  	s.RequestedEc2AvailabilityZones = v
  8855  	return s
  8856  }
  8857  
  8858  // SetRequestedEc2SubnetIds sets the RequestedEc2SubnetIds field's value.
  8859  func (s *Ec2InstanceAttributes) SetRequestedEc2SubnetIds(v []*string) *Ec2InstanceAttributes {
  8860  	s.RequestedEc2SubnetIds = v
  8861  	return s
  8862  }
  8863  
  8864  // SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
  8865  func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2InstanceAttributes {
  8866  	s.ServiceAccessSecurityGroup = &v
  8867  	return s
  8868  }
  8869  
  8870  // Specifies the execution engine (cluster) to run the notebook and perform
  8871  // the notebook execution, for example, an EMR cluster.
  8872  type ExecutionEngineConfig struct {
  8873  	_ struct{} `type:"structure"`
  8874  
  8875  	// The unique identifier of the execution engine. For an EMR cluster, this is
  8876  	// the cluster ID.
  8877  	//
  8878  	// Id is a required field
  8879  	Id *string `type:"string" required:"true"`
  8880  
  8881  	// An optional unique ID of an EC2 security group to associate with the master
  8882  	// instance of the EMR cluster for this notebook execution. For more information
  8883  	// see Specifying EC2 Security Groups for EMR Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
  8884  	// in the EMR Management Guide.
  8885  	MasterInstanceSecurityGroupId *string `type:"string"`
  8886  
  8887  	// The type of execution engine. A value of EMR specifies an EMR cluster.
  8888  	Type *string `type:"string" enum:"ExecutionEngineType"`
  8889  }
  8890  
  8891  // String returns the string representation.
  8892  //
  8893  // API parameter values that are decorated as "sensitive" in the API will not
  8894  // be included in the string output. The member name will be present, but the
  8895  // value will be replaced with "sensitive".
  8896  func (s ExecutionEngineConfig) String() string {
  8897  	return awsutil.Prettify(s)
  8898  }
  8899  
  8900  // GoString returns the string representation.
  8901  //
  8902  // API parameter values that are decorated as "sensitive" in the API will not
  8903  // be included in the string output. The member name will be present, but the
  8904  // value will be replaced with "sensitive".
  8905  func (s ExecutionEngineConfig) GoString() string {
  8906  	return s.String()
  8907  }
  8908  
  8909  // Validate inspects the fields of the type to determine if they are valid.
  8910  func (s *ExecutionEngineConfig) Validate() error {
  8911  	invalidParams := request.ErrInvalidParams{Context: "ExecutionEngineConfig"}
  8912  	if s.Id == nil {
  8913  		invalidParams.Add(request.NewErrParamRequired("Id"))
  8914  	}
  8915  
  8916  	if invalidParams.Len() > 0 {
  8917  		return invalidParams
  8918  	}
  8919  	return nil
  8920  }
  8921  
  8922  // SetId sets the Id field's value.
  8923  func (s *ExecutionEngineConfig) SetId(v string) *ExecutionEngineConfig {
  8924  	s.Id = &v
  8925  	return s
  8926  }
  8927  
  8928  // SetMasterInstanceSecurityGroupId sets the MasterInstanceSecurityGroupId field's value.
  8929  func (s *ExecutionEngineConfig) SetMasterInstanceSecurityGroupId(v string) *ExecutionEngineConfig {
  8930  	s.MasterInstanceSecurityGroupId = &v
  8931  	return s
  8932  }
  8933  
  8934  // SetType sets the Type field's value.
  8935  func (s *ExecutionEngineConfig) SetType(v string) *ExecutionEngineConfig {
  8936  	s.Type = &v
  8937  	return s
  8938  }
  8939  
  8940  // The details of the step failure. The service attempts to detect the root
  8941  // cause for many common failures.
  8942  type FailureDetails struct {
  8943  	_ struct{} `type:"structure"`
  8944  
  8945  	// The path to the log file where the step failure root cause was originally
  8946  	// recorded.
  8947  	LogFile *string `type:"string"`
  8948  
  8949  	// The descriptive message including the error the Amazon EMR service has identified
  8950  	// as the cause of step failure. This is text from an error log that describes
  8951  	// the root cause of the failure.
  8952  	Message *string `type:"string"`
  8953  
  8954  	// The reason for the step failure. In the case where the service cannot successfully
  8955  	// determine the root cause of the failure, it returns "Unknown Error" as a
  8956  	// reason.
  8957  	Reason *string `type:"string"`
  8958  }
  8959  
  8960  // String returns the string representation.
  8961  //
  8962  // API parameter values that are decorated as "sensitive" in the API will not
  8963  // be included in the string output. The member name will be present, but the
  8964  // value will be replaced with "sensitive".
  8965  func (s FailureDetails) String() string {
  8966  	return awsutil.Prettify(s)
  8967  }
  8968  
  8969  // GoString returns the string representation.
  8970  //
  8971  // API parameter values that are decorated as "sensitive" in the API will not
  8972  // be included in the string output. The member name will be present, but the
  8973  // value will be replaced with "sensitive".
  8974  func (s FailureDetails) GoString() string {
  8975  	return s.String()
  8976  }
  8977  
  8978  // SetLogFile sets the LogFile field's value.
  8979  func (s *FailureDetails) SetLogFile(v string) *FailureDetails {
  8980  	s.LogFile = &v
  8981  	return s
  8982  }
  8983  
  8984  // SetMessage sets the Message field's value.
  8985  func (s *FailureDetails) SetMessage(v string) *FailureDetails {
  8986  	s.Message = &v
  8987  	return s
  8988  }
  8989  
  8990  // SetReason sets the Reason field's value.
  8991  func (s *FailureDetails) SetReason(v string) *FailureDetails {
  8992  	s.Reason = &v
  8993  	return s
  8994  }
  8995  
  8996  type GetAutoTerminationPolicyInput struct {
  8997  	_ struct{} `type:"structure"`
  8998  
  8999  	// Specifies the ID of the Amazon EMR cluster for which the auto-termination
  9000  	// policy will be fetched.
  9001  	//
  9002  	// ClusterId is a required field
  9003  	ClusterId *string `type:"string" required:"true"`
  9004  }
  9005  
  9006  // String returns the string representation.
  9007  //
  9008  // API parameter values that are decorated as "sensitive" in the API will not
  9009  // be included in the string output. The member name will be present, but the
  9010  // value will be replaced with "sensitive".
  9011  func (s GetAutoTerminationPolicyInput) String() string {
  9012  	return awsutil.Prettify(s)
  9013  }
  9014  
  9015  // GoString returns the string representation.
  9016  //
  9017  // API parameter values that are decorated as "sensitive" in the API will not
  9018  // be included in the string output. The member name will be present, but the
  9019  // value will be replaced with "sensitive".
  9020  func (s GetAutoTerminationPolicyInput) GoString() string {
  9021  	return s.String()
  9022  }
  9023  
  9024  // Validate inspects the fields of the type to determine if they are valid.
  9025  func (s *GetAutoTerminationPolicyInput) Validate() error {
  9026  	invalidParams := request.ErrInvalidParams{Context: "GetAutoTerminationPolicyInput"}
  9027  	if s.ClusterId == nil {
  9028  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
  9029  	}
  9030  
  9031  	if invalidParams.Len() > 0 {
  9032  		return invalidParams
  9033  	}
  9034  	return nil
  9035  }
  9036  
  9037  // SetClusterId sets the ClusterId field's value.
  9038  func (s *GetAutoTerminationPolicyInput) SetClusterId(v string) *GetAutoTerminationPolicyInput {
  9039  	s.ClusterId = &v
  9040  	return s
  9041  }
  9042  
  9043  type GetAutoTerminationPolicyOutput struct {
  9044  	_ struct{} `type:"structure"`
  9045  
  9046  	// Specifies the auto-termination policy that is attached to an Amazon EMR cluster.
  9047  	AutoTerminationPolicy *AutoTerminationPolicy `type:"structure"`
  9048  }
  9049  
  9050  // String returns the string representation.
  9051  //
  9052  // API parameter values that are decorated as "sensitive" in the API will not
  9053  // be included in the string output. The member name will be present, but the
  9054  // value will be replaced with "sensitive".
  9055  func (s GetAutoTerminationPolicyOutput) String() string {
  9056  	return awsutil.Prettify(s)
  9057  }
  9058  
  9059  // GoString returns the string representation.
  9060  //
  9061  // API parameter values that are decorated as "sensitive" in the API will not
  9062  // be included in the string output. The member name will be present, but the
  9063  // value will be replaced with "sensitive".
  9064  func (s GetAutoTerminationPolicyOutput) GoString() string {
  9065  	return s.String()
  9066  }
  9067  
  9068  // SetAutoTerminationPolicy sets the AutoTerminationPolicy field's value.
  9069  func (s *GetAutoTerminationPolicyOutput) SetAutoTerminationPolicy(v *AutoTerminationPolicy) *GetAutoTerminationPolicyOutput {
  9070  	s.AutoTerminationPolicy = v
  9071  	return s
  9072  }
  9073  
  9074  type GetBlockPublicAccessConfigurationInput struct {
  9075  	_ struct{} `type:"structure"`
  9076  }
  9077  
  9078  // String returns the string representation.
  9079  //
  9080  // API parameter values that are decorated as "sensitive" in the API will not
  9081  // be included in the string output. The member name will be present, but the
  9082  // value will be replaced with "sensitive".
  9083  func (s GetBlockPublicAccessConfigurationInput) String() string {
  9084  	return awsutil.Prettify(s)
  9085  }
  9086  
  9087  // GoString returns the string representation.
  9088  //
  9089  // API parameter values that are decorated as "sensitive" in the API will not
  9090  // be included in the string output. The member name will be present, but the
  9091  // value will be replaced with "sensitive".
  9092  func (s GetBlockPublicAccessConfigurationInput) GoString() string {
  9093  	return s.String()
  9094  }
  9095  
  9096  type GetBlockPublicAccessConfigurationOutput struct {
  9097  	_ struct{} `type:"structure"`
  9098  
  9099  	// A configuration for Amazon EMR block public access. The configuration applies
  9100  	// to all clusters created in your account for the current Region. The configuration
  9101  	// specifies whether block public access is enabled. If block public access
  9102  	// is enabled, security groups associated with the cluster cannot have rules
  9103  	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
  9104  	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
  9105  	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
  9106  	// and public access is allowed on this port. You can change this by updating
  9107  	// the block public access configuration to remove the exception.
  9108  	//
  9109  	// For accounts that created clusters in a Region before November 25, 2019,
  9110  	// block public access is disabled by default in that Region. To use this feature,
  9111  	// you must manually enable and configure it. For accounts that did not create
  9112  	// an EMR cluster in a Region before this date, block public access is enabled
  9113  	// by default in that Region.
  9114  	//
  9115  	// BlockPublicAccessConfiguration is a required field
  9116  	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
  9117  
  9118  	// Properties that describe the Amazon Web Services principal that created the
  9119  	// BlockPublicAccessConfiguration using the PutBlockPublicAccessConfiguration
  9120  	// action as well as the date and time that the configuration was created. Each
  9121  	// time a configuration for block public access is updated, Amazon EMR updates
  9122  	// this metadata.
  9123  	//
  9124  	// BlockPublicAccessConfigurationMetadata is a required field
  9125  	BlockPublicAccessConfigurationMetadata *BlockPublicAccessConfigurationMetadata `type:"structure" required:"true"`
  9126  }
  9127  
  9128  // String returns the string representation.
  9129  //
  9130  // API parameter values that are decorated as "sensitive" in the API will not
  9131  // be included in the string output. The member name will be present, but the
  9132  // value will be replaced with "sensitive".
  9133  func (s GetBlockPublicAccessConfigurationOutput) String() string {
  9134  	return awsutil.Prettify(s)
  9135  }
  9136  
  9137  // GoString returns the string representation.
  9138  //
  9139  // API parameter values that are decorated as "sensitive" in the API will not
  9140  // be included in the string output. The member name will be present, but the
  9141  // value will be replaced with "sensitive".
  9142  func (s GetBlockPublicAccessConfigurationOutput) GoString() string {
  9143  	return s.String()
  9144  }
  9145  
  9146  // SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
  9147  func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *GetBlockPublicAccessConfigurationOutput {
  9148  	s.BlockPublicAccessConfiguration = v
  9149  	return s
  9150  }
  9151  
  9152  // SetBlockPublicAccessConfigurationMetadata sets the BlockPublicAccessConfigurationMetadata field's value.
  9153  func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfigurationMetadata(v *BlockPublicAccessConfigurationMetadata) *GetBlockPublicAccessConfigurationOutput {
  9154  	s.BlockPublicAccessConfigurationMetadata = v
  9155  	return s
  9156  }
  9157  
  9158  type GetManagedScalingPolicyInput struct {
  9159  	_ struct{} `type:"structure"`
  9160  
  9161  	// Specifies the ID of the cluster for which the managed scaling policy will
  9162  	// be fetched.
  9163  	//
  9164  	// ClusterId is a required field
  9165  	ClusterId *string `type:"string" required:"true"`
  9166  }
  9167  
  9168  // String returns the string representation.
  9169  //
  9170  // API parameter values that are decorated as "sensitive" in the API will not
  9171  // be included in the string output. The member name will be present, but the
  9172  // value will be replaced with "sensitive".
  9173  func (s GetManagedScalingPolicyInput) String() string {
  9174  	return awsutil.Prettify(s)
  9175  }
  9176  
  9177  // GoString returns the string representation.
  9178  //
  9179  // API parameter values that are decorated as "sensitive" in the API will not
  9180  // be included in the string output. The member name will be present, but the
  9181  // value will be replaced with "sensitive".
  9182  func (s GetManagedScalingPolicyInput) GoString() string {
  9183  	return s.String()
  9184  }
  9185  
  9186  // Validate inspects the fields of the type to determine if they are valid.
  9187  func (s *GetManagedScalingPolicyInput) Validate() error {
  9188  	invalidParams := request.ErrInvalidParams{Context: "GetManagedScalingPolicyInput"}
  9189  	if s.ClusterId == nil {
  9190  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
  9191  	}
  9192  
  9193  	if invalidParams.Len() > 0 {
  9194  		return invalidParams
  9195  	}
  9196  	return nil
  9197  }
  9198  
  9199  // SetClusterId sets the ClusterId field's value.
  9200  func (s *GetManagedScalingPolicyInput) SetClusterId(v string) *GetManagedScalingPolicyInput {
  9201  	s.ClusterId = &v
  9202  	return s
  9203  }
  9204  
  9205  type GetManagedScalingPolicyOutput struct {
  9206  	_ struct{} `type:"structure"`
  9207  
  9208  	// Specifies the managed scaling policy that is attached to an Amazon EMR cluster.
  9209  	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
  9210  }
  9211  
  9212  // String returns the string representation.
  9213  //
  9214  // API parameter values that are decorated as "sensitive" in the API will not
  9215  // be included in the string output. The member name will be present, but the
  9216  // value will be replaced with "sensitive".
  9217  func (s GetManagedScalingPolicyOutput) String() string {
  9218  	return awsutil.Prettify(s)
  9219  }
  9220  
  9221  // GoString returns the string representation.
  9222  //
  9223  // API parameter values that are decorated as "sensitive" in the API will not
  9224  // be included in the string output. The member name will be present, but the
  9225  // value will be replaced with "sensitive".
  9226  func (s GetManagedScalingPolicyOutput) GoString() string {
  9227  	return s.String()
  9228  }
  9229  
  9230  // SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
  9231  func (s *GetManagedScalingPolicyOutput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *GetManagedScalingPolicyOutput {
  9232  	s.ManagedScalingPolicy = v
  9233  	return s
  9234  }
  9235  
  9236  type GetStudioSessionMappingInput struct {
  9237  	_ struct{} `type:"structure"`
  9238  
  9239  	// The globally unique identifier (GUID) of the user or group. For more information,
  9240  	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
  9241  	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
  9242  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
  9243  	// or IdentityId must be specified.
  9244  	IdentityId *string `type:"string"`
  9245  
  9246  	// The name of the user or group to fetch. For more information, see UserName
  9247  	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
  9248  	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
  9249  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
  9250  	// or IdentityId must be specified.
  9251  	IdentityName *string `type:"string"`
  9252  
  9253  	// Specifies whether the identity to fetch is a user or a group.
  9254  	//
  9255  	// IdentityType is a required field
  9256  	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
  9257  
  9258  	// The ID of the Amazon EMR Studio.
  9259  	//
  9260  	// StudioId is a required field
  9261  	StudioId *string `type:"string" required:"true"`
  9262  }
  9263  
  9264  // String returns the string representation.
  9265  //
  9266  // API parameter values that are decorated as "sensitive" in the API will not
  9267  // be included in the string output. The member name will be present, but the
  9268  // value will be replaced with "sensitive".
  9269  func (s GetStudioSessionMappingInput) String() string {
  9270  	return awsutil.Prettify(s)
  9271  }
  9272  
  9273  // GoString returns the string representation.
  9274  //
  9275  // API parameter values that are decorated as "sensitive" in the API will not
  9276  // be included in the string output. The member name will be present, but the
  9277  // value will be replaced with "sensitive".
  9278  func (s GetStudioSessionMappingInput) GoString() string {
  9279  	return s.String()
  9280  }
  9281  
  9282  // Validate inspects the fields of the type to determine if they are valid.
  9283  func (s *GetStudioSessionMappingInput) Validate() error {
  9284  	invalidParams := request.ErrInvalidParams{Context: "GetStudioSessionMappingInput"}
  9285  	if s.IdentityType == nil {
  9286  		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
  9287  	}
  9288  	if s.StudioId == nil {
  9289  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
  9290  	}
  9291  
  9292  	if invalidParams.Len() > 0 {
  9293  		return invalidParams
  9294  	}
  9295  	return nil
  9296  }
  9297  
  9298  // SetIdentityId sets the IdentityId field's value.
  9299  func (s *GetStudioSessionMappingInput) SetIdentityId(v string) *GetStudioSessionMappingInput {
  9300  	s.IdentityId = &v
  9301  	return s
  9302  }
  9303  
  9304  // SetIdentityName sets the IdentityName field's value.
  9305  func (s *GetStudioSessionMappingInput) SetIdentityName(v string) *GetStudioSessionMappingInput {
  9306  	s.IdentityName = &v
  9307  	return s
  9308  }
  9309  
  9310  // SetIdentityType sets the IdentityType field's value.
  9311  func (s *GetStudioSessionMappingInput) SetIdentityType(v string) *GetStudioSessionMappingInput {
  9312  	s.IdentityType = &v
  9313  	return s
  9314  }
  9315  
  9316  // SetStudioId sets the StudioId field's value.
  9317  func (s *GetStudioSessionMappingInput) SetStudioId(v string) *GetStudioSessionMappingInput {
  9318  	s.StudioId = &v
  9319  	return s
  9320  }
  9321  
  9322  type GetStudioSessionMappingOutput struct {
  9323  	_ struct{} `type:"structure"`
  9324  
  9325  	// The session mapping details for the specified Amazon EMR Studio and identity,
  9326  	// including session policy ARN and creation time.
  9327  	SessionMapping *SessionMappingDetail `type:"structure"`
  9328  }
  9329  
  9330  // String returns the string representation.
  9331  //
  9332  // API parameter values that are decorated as "sensitive" in the API will not
  9333  // be included in the string output. The member name will be present, but the
  9334  // value will be replaced with "sensitive".
  9335  func (s GetStudioSessionMappingOutput) String() string {
  9336  	return awsutil.Prettify(s)
  9337  }
  9338  
  9339  // GoString returns the string representation.
  9340  //
  9341  // API parameter values that are decorated as "sensitive" in the API will not
  9342  // be included in the string output. The member name will be present, but the
  9343  // value will be replaced with "sensitive".
  9344  func (s GetStudioSessionMappingOutput) GoString() string {
  9345  	return s.String()
  9346  }
  9347  
  9348  // SetSessionMapping sets the SessionMapping field's value.
  9349  func (s *GetStudioSessionMappingOutput) SetSessionMapping(v *SessionMappingDetail) *GetStudioSessionMappingOutput {
  9350  	s.SessionMapping = v
  9351  	return s
  9352  }
  9353  
  9354  // A job flow step consisting of a JAR file whose main function will be executed.
  9355  // The main function submits a job for Hadoop to execute and waits for the job
  9356  // to finish or fail.
  9357  type HadoopJarStepConfig struct {
  9358  	_ struct{} `type:"structure"`
  9359  
  9360  	// A list of command line arguments passed to the JAR file's main function when
  9361  	// executed.
  9362  	Args []*string `type:"list"`
  9363  
  9364  	// A path to a JAR file run during the step.
  9365  	//
  9366  	// Jar is a required field
  9367  	Jar *string `type:"string" required:"true"`
  9368  
  9369  	// The name of the main class in the specified Java file. If not specified,
  9370  	// the JAR file should specify a Main-Class in its manifest file.
  9371  	MainClass *string `type:"string"`
  9372  
  9373  	// A list of Java properties that are set when the step runs. You can use these
  9374  	// properties to pass key-value pairs to your main function.
  9375  	Properties []*KeyValue `type:"list"`
  9376  }
  9377  
  9378  // String returns the string representation.
  9379  //
  9380  // API parameter values that are decorated as "sensitive" in the API will not
  9381  // be included in the string output. The member name will be present, but the
  9382  // value will be replaced with "sensitive".
  9383  func (s HadoopJarStepConfig) String() string {
  9384  	return awsutil.Prettify(s)
  9385  }
  9386  
  9387  // GoString returns the string representation.
  9388  //
  9389  // API parameter values that are decorated as "sensitive" in the API will not
  9390  // be included in the string output. The member name will be present, but the
  9391  // value will be replaced with "sensitive".
  9392  func (s HadoopJarStepConfig) GoString() string {
  9393  	return s.String()
  9394  }
  9395  
  9396  // Validate inspects the fields of the type to determine if they are valid.
  9397  func (s *HadoopJarStepConfig) Validate() error {
  9398  	invalidParams := request.ErrInvalidParams{Context: "HadoopJarStepConfig"}
  9399  	if s.Jar == nil {
  9400  		invalidParams.Add(request.NewErrParamRequired("Jar"))
  9401  	}
  9402  
  9403  	if invalidParams.Len() > 0 {
  9404  		return invalidParams
  9405  	}
  9406  	return nil
  9407  }
  9408  
  9409  // SetArgs sets the Args field's value.
  9410  func (s *HadoopJarStepConfig) SetArgs(v []*string) *HadoopJarStepConfig {
  9411  	s.Args = v
  9412  	return s
  9413  }
  9414  
  9415  // SetJar sets the Jar field's value.
  9416  func (s *HadoopJarStepConfig) SetJar(v string) *HadoopJarStepConfig {
  9417  	s.Jar = &v
  9418  	return s
  9419  }
  9420  
  9421  // SetMainClass sets the MainClass field's value.
  9422  func (s *HadoopJarStepConfig) SetMainClass(v string) *HadoopJarStepConfig {
  9423  	s.MainClass = &v
  9424  	return s
  9425  }
  9426  
  9427  // SetProperties sets the Properties field's value.
  9428  func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig {
  9429  	s.Properties = v
  9430  	return s
  9431  }
  9432  
  9433  // A cluster step consisting of a JAR file whose main function will be executed.
  9434  // The main function submits a job for Hadoop to execute and waits for the job
  9435  // to finish or fail.
  9436  type HadoopStepConfig struct {
  9437  	_ struct{} `type:"structure"`
  9438  
  9439  	// The list of command line arguments to pass to the JAR file's main function
  9440  	// for execution.
  9441  	Args []*string `type:"list"`
  9442  
  9443  	// The path to the JAR file that runs during the step.
  9444  	Jar *string `type:"string"`
  9445  
  9446  	// The name of the main class in the specified Java file. If not specified,
  9447  	// the JAR file should specify a main class in its manifest file.
  9448  	MainClass *string `type:"string"`
  9449  
  9450  	// The list of Java properties that are set when the step runs. You can use
  9451  	// these properties to pass key-value pairs to your main function.
  9452  	Properties map[string]*string `type:"map"`
  9453  }
  9454  
  9455  // String returns the string representation.
  9456  //
  9457  // API parameter values that are decorated as "sensitive" in the API will not
  9458  // be included in the string output. The member name will be present, but the
  9459  // value will be replaced with "sensitive".
  9460  func (s HadoopStepConfig) String() string {
  9461  	return awsutil.Prettify(s)
  9462  }
  9463  
  9464  // GoString returns the string representation.
  9465  //
  9466  // API parameter values that are decorated as "sensitive" in the API will not
  9467  // be included in the string output. The member name will be present, but the
  9468  // value will be replaced with "sensitive".
  9469  func (s HadoopStepConfig) GoString() string {
  9470  	return s.String()
  9471  }
  9472  
  9473  // SetArgs sets the Args field's value.
  9474  func (s *HadoopStepConfig) SetArgs(v []*string) *HadoopStepConfig {
  9475  	s.Args = v
  9476  	return s
  9477  }
  9478  
  9479  // SetJar sets the Jar field's value.
  9480  func (s *HadoopStepConfig) SetJar(v string) *HadoopStepConfig {
  9481  	s.Jar = &v
  9482  	return s
  9483  }
  9484  
  9485  // SetMainClass sets the MainClass field's value.
  9486  func (s *HadoopStepConfig) SetMainClass(v string) *HadoopStepConfig {
  9487  	s.MainClass = &v
  9488  	return s
  9489  }
  9490  
  9491  // SetProperties sets the Properties field's value.
  9492  func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig {
  9493  	s.Properties = v
  9494  	return s
  9495  }
  9496  
  9497  // Represents an EC2 instance provisioned as part of cluster.
  9498  type Instance struct {
  9499  	_ struct{} `type:"structure"`
  9500  
  9501  	// The list of Amazon EBS volumes that are attached to this instance.
  9502  	EbsVolumes []*EbsVolume `type:"list"`
  9503  
  9504  	// The unique identifier of the instance in Amazon EC2.
  9505  	Ec2InstanceId *string `type:"string"`
  9506  
  9507  	// The unique identifier for the instance in Amazon EMR.
  9508  	Id *string `type:"string"`
  9509  
  9510  	// The unique identifier of the instance fleet to which an EC2 instance belongs.
  9511  	InstanceFleetId *string `type:"string"`
  9512  
  9513  	// The identifier of the instance group to which this instance belongs.
  9514  	InstanceGroupId *string `type:"string"`
  9515  
  9516  	// The EC2 instance type, for example m3.xlarge.
  9517  	InstanceType *string `min:"1" type:"string"`
  9518  
  9519  	// The instance purchasing option. Valid values are ON_DEMAND or SPOT.
  9520  	Market *string `type:"string" enum:"MarketType"`
  9521  
  9522  	// The private DNS name of the instance.
  9523  	PrivateDnsName *string `type:"string"`
  9524  
  9525  	// The private IP address of the instance.
  9526  	PrivateIpAddress *string `type:"string"`
  9527  
  9528  	// The public DNS name of the instance.
  9529  	PublicDnsName *string `type:"string"`
  9530  
  9531  	// The public IP address of the instance.
  9532  	PublicIpAddress *string `type:"string"`
  9533  
  9534  	// The current status of the instance.
  9535  	Status *InstanceStatus `type:"structure"`
  9536  }
  9537  
  9538  // String returns the string representation.
  9539  //
  9540  // API parameter values that are decorated as "sensitive" in the API will not
  9541  // be included in the string output. The member name will be present, but the
  9542  // value will be replaced with "sensitive".
  9543  func (s Instance) String() string {
  9544  	return awsutil.Prettify(s)
  9545  }
  9546  
  9547  // GoString returns the string representation.
  9548  //
  9549  // API parameter values that are decorated as "sensitive" in the API will not
  9550  // be included in the string output. The member name will be present, but the
  9551  // value will be replaced with "sensitive".
  9552  func (s Instance) GoString() string {
  9553  	return s.String()
  9554  }
  9555  
  9556  // SetEbsVolumes sets the EbsVolumes field's value.
  9557  func (s *Instance) SetEbsVolumes(v []*EbsVolume) *Instance {
  9558  	s.EbsVolumes = v
  9559  	return s
  9560  }
  9561  
  9562  // SetEc2InstanceId sets the Ec2InstanceId field's value.
  9563  func (s *Instance) SetEc2InstanceId(v string) *Instance {
  9564  	s.Ec2InstanceId = &v
  9565  	return s
  9566  }
  9567  
  9568  // SetId sets the Id field's value.
  9569  func (s *Instance) SetId(v string) *Instance {
  9570  	s.Id = &v
  9571  	return s
  9572  }
  9573  
  9574  // SetInstanceFleetId sets the InstanceFleetId field's value.
  9575  func (s *Instance) SetInstanceFleetId(v string) *Instance {
  9576  	s.InstanceFleetId = &v
  9577  	return s
  9578  }
  9579  
  9580  // SetInstanceGroupId sets the InstanceGroupId field's value.
  9581  func (s *Instance) SetInstanceGroupId(v string) *Instance {
  9582  	s.InstanceGroupId = &v
  9583  	return s
  9584  }
  9585  
  9586  // SetInstanceType sets the InstanceType field's value.
  9587  func (s *Instance) SetInstanceType(v string) *Instance {
  9588  	s.InstanceType = &v
  9589  	return s
  9590  }
  9591  
  9592  // SetMarket sets the Market field's value.
  9593  func (s *Instance) SetMarket(v string) *Instance {
  9594  	s.Market = &v
  9595  	return s
  9596  }
  9597  
  9598  // SetPrivateDnsName sets the PrivateDnsName field's value.
  9599  func (s *Instance) SetPrivateDnsName(v string) *Instance {
  9600  	s.PrivateDnsName = &v
  9601  	return s
  9602  }
  9603  
  9604  // SetPrivateIpAddress sets the PrivateIpAddress field's value.
  9605  func (s *Instance) SetPrivateIpAddress(v string) *Instance {
  9606  	s.PrivateIpAddress = &v
  9607  	return s
  9608  }
  9609  
  9610  // SetPublicDnsName sets the PublicDnsName field's value.
  9611  func (s *Instance) SetPublicDnsName(v string) *Instance {
  9612  	s.PublicDnsName = &v
  9613  	return s
  9614  }
  9615  
  9616  // SetPublicIpAddress sets the PublicIpAddress field's value.
  9617  func (s *Instance) SetPublicIpAddress(v string) *Instance {
  9618  	s.PublicIpAddress = &v
  9619  	return s
  9620  }
  9621  
  9622  // SetStatus sets the Status field's value.
  9623  func (s *Instance) SetStatus(v *InstanceStatus) *Instance {
  9624  	s.Status = v
  9625  	return s
  9626  }
  9627  
  9628  // Describes an instance fleet, which is a group of EC2 instances that host
  9629  // a particular node type (master, core, or task) in an Amazon EMR cluster.
  9630  // Instance fleets can consist of a mix of instance types and On-Demand and
  9631  // Spot Instances, which are provisioned to meet a defined target capacity.
  9632  //
  9633  // The instance fleet configuration is available only in Amazon EMR versions
  9634  // 4.8.0 and later, excluding 5.0.x versions.
  9635  type InstanceFleet struct {
  9636  	_ struct{} `type:"structure"`
  9637  
  9638  	// The unique identifier of the instance fleet.
  9639  	Id *string `type:"string"`
  9640  
  9641  	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
  9642  	// or TASK.
  9643  	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
  9644  
  9645  	// An array of specifications for the instance types that comprise an instance
  9646  	// fleet.
  9647  	InstanceTypeSpecifications []*InstanceTypeSpecification `type:"list"`
  9648  
  9649  	// Describes the launch specification for an instance fleet.
  9650  	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
  9651  
  9652  	// A friendly name for the instance fleet.
  9653  	Name *string `type:"string"`
  9654  
  9655  	// The number of On-Demand units that have been provisioned for the instance
  9656  	// fleet to fulfill TargetOnDemandCapacity. This provisioned capacity might
  9657  	// be less than or greater than TargetOnDemandCapacity.
  9658  	ProvisionedOnDemandCapacity *int64 `type:"integer"`
  9659  
  9660  	// The number of Spot units that have been provisioned for this instance fleet
  9661  	// to fulfill TargetSpotCapacity. This provisioned capacity might be less than
  9662  	// or greater than TargetSpotCapacity.
  9663  	ProvisionedSpotCapacity *int64 `type:"integer"`
  9664  
  9665  	// The current status of the instance fleet.
  9666  	Status *InstanceFleetStatus `type:"structure"`
  9667  
  9668  	// The target capacity of On-Demand units for the instance fleet, which determines
  9669  	// how many On-Demand Instances to provision. When the instance fleet launches,
  9670  	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
  9671  	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
  9672  	// Instance is provisioned, the WeightedCapacity units count toward the target
  9673  	// capacity. Amazon EMR provisions instances until the target capacity is totally
  9674  	// fulfilled, even if this results in an overage. For example, if there are
  9675  	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
  9676  	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
  9677  	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedOnDemandCapacity
  9678  	// to determine the Spot capacity units that have been provisioned for the instance
  9679  	// fleet.
  9680  	//
  9681  	// If not specified or set to 0, only Spot Instances are provisioned for the
  9682  	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
  9683  	// and TargetOnDemandCapacity should be greater than 0. For a master instance
  9684  	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
  9685  	// and its value must be 1.
  9686  	TargetOnDemandCapacity *int64 `type:"integer"`
  9687  
  9688  	// The target capacity of Spot units for the instance fleet, which determines
  9689  	// how many Spot Instances to provision. When the instance fleet launches, Amazon
  9690  	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
  9691  	// Each instance configuration has a specified WeightedCapacity. When a Spot
  9692  	// instance is provisioned, the WeightedCapacity units count toward the target
  9693  	// capacity. Amazon EMR provisions instances until the target capacity is totally
  9694  	// fulfilled, even if this results in an overage. For example, if there are
  9695  	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
  9696  	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
  9697  	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedSpotCapacity
  9698  	// to determine the Spot capacity units that have been provisioned for the instance
  9699  	// fleet.
  9700  	//
  9701  	// If not specified or set to 0, only On-Demand Instances are provisioned for
  9702  	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
  9703  	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
  9704  	// and TargetOnDemandCapacity can be specified, and its value must be 1.
  9705  	TargetSpotCapacity *int64 `type:"integer"`
  9706  }
  9707  
  9708  // String returns the string representation.
  9709  //
  9710  // API parameter values that are decorated as "sensitive" in the API will not
  9711  // be included in the string output. The member name will be present, but the
  9712  // value will be replaced with "sensitive".
  9713  func (s InstanceFleet) String() string {
  9714  	return awsutil.Prettify(s)
  9715  }
  9716  
  9717  // GoString returns the string representation.
  9718  //
  9719  // API parameter values that are decorated as "sensitive" in the API will not
  9720  // be included in the string output. The member name will be present, but the
  9721  // value will be replaced with "sensitive".
  9722  func (s InstanceFleet) GoString() string {
  9723  	return s.String()
  9724  }
  9725  
  9726  // SetId sets the Id field's value.
  9727  func (s *InstanceFleet) SetId(v string) *InstanceFleet {
  9728  	s.Id = &v
  9729  	return s
  9730  }
  9731  
  9732  // SetInstanceFleetType sets the InstanceFleetType field's value.
  9733  func (s *InstanceFleet) SetInstanceFleetType(v string) *InstanceFleet {
  9734  	s.InstanceFleetType = &v
  9735  	return s
  9736  }
  9737  
  9738  // SetInstanceTypeSpecifications sets the InstanceTypeSpecifications field's value.
  9739  func (s *InstanceFleet) SetInstanceTypeSpecifications(v []*InstanceTypeSpecification) *InstanceFleet {
  9740  	s.InstanceTypeSpecifications = v
  9741  	return s
  9742  }
  9743  
  9744  // SetLaunchSpecifications sets the LaunchSpecifications field's value.
  9745  func (s *InstanceFleet) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleet {
  9746  	s.LaunchSpecifications = v
  9747  	return s
  9748  }
  9749  
  9750  // SetName sets the Name field's value.
  9751  func (s *InstanceFleet) SetName(v string) *InstanceFleet {
  9752  	s.Name = &v
  9753  	return s
  9754  }
  9755  
  9756  // SetProvisionedOnDemandCapacity sets the ProvisionedOnDemandCapacity field's value.
  9757  func (s *InstanceFleet) SetProvisionedOnDemandCapacity(v int64) *InstanceFleet {
  9758  	s.ProvisionedOnDemandCapacity = &v
  9759  	return s
  9760  }
  9761  
  9762  // SetProvisionedSpotCapacity sets the ProvisionedSpotCapacity field's value.
  9763  func (s *InstanceFleet) SetProvisionedSpotCapacity(v int64) *InstanceFleet {
  9764  	s.ProvisionedSpotCapacity = &v
  9765  	return s
  9766  }
  9767  
  9768  // SetStatus sets the Status field's value.
  9769  func (s *InstanceFleet) SetStatus(v *InstanceFleetStatus) *InstanceFleet {
  9770  	s.Status = v
  9771  	return s
  9772  }
  9773  
  9774  // SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
  9775  func (s *InstanceFleet) SetTargetOnDemandCapacity(v int64) *InstanceFleet {
  9776  	s.TargetOnDemandCapacity = &v
  9777  	return s
  9778  }
  9779  
  9780  // SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
  9781  func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet {
  9782  	s.TargetSpotCapacity = &v
  9783  	return s
  9784  }
  9785  
  9786  // The configuration that defines an instance fleet.
  9787  //
  9788  // The instance fleet configuration is available only in Amazon EMR versions
  9789  // 4.8.0 and later, excluding 5.0.x versions.
  9790  type InstanceFleetConfig struct {
  9791  	_ struct{} `type:"structure"`
  9792  
  9793  	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
  9794  	// and TASK.
  9795  	//
  9796  	// InstanceFleetType is a required field
  9797  	InstanceFleetType *string `type:"string" required:"true" enum:"InstanceFleetType"`
  9798  
  9799  	// The instance type configurations that define the EC2 instances in the instance
  9800  	// fleet.
  9801  	InstanceTypeConfigs []*InstanceTypeConfig `type:"list"`
  9802  
  9803  	// The launch specification for the instance fleet.
  9804  	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
  9805  
  9806  	// The friendly name of the instance fleet.
  9807  	Name *string `type:"string"`
  9808  
  9809  	// The target capacity of On-Demand units for the instance fleet, which determines
  9810  	// how many On-Demand Instances to provision. When the instance fleet launches,
  9811  	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
  9812  	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
  9813  	// Instance is provisioned, the WeightedCapacity units count toward the target
  9814  	// capacity. Amazon EMR provisions instances until the target capacity is totally
  9815  	// fulfilled, even if this results in an overage. For example, if there are
  9816  	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
  9817  	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
  9818  	// and the target capacity is exceeded by 3 units.
  9819  	//
  9820  	// If not specified or set to 0, only Spot Instances are provisioned for the
  9821  	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
  9822  	// and TargetOnDemandCapacity should be greater than 0. For a master instance
  9823  	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
  9824  	// and its value must be 1.
  9825  	TargetOnDemandCapacity *int64 `type:"integer"`
  9826  
  9827  	// The target capacity of Spot units for the instance fleet, which determines
  9828  	// how many Spot Instances to provision. When the instance fleet launches, Amazon
  9829  	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
  9830  	// Each instance configuration has a specified WeightedCapacity. When a Spot
  9831  	// Instance is provisioned, the WeightedCapacity units count toward the target
  9832  	// capacity. Amazon EMR provisions instances until the target capacity is totally
  9833  	// fulfilled, even if this results in an overage. For example, if there are
  9834  	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
  9835  	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
  9836  	// and the target capacity is exceeded by 3 units.
  9837  	//
  9838  	// If not specified or set to 0, only On-Demand Instances are provisioned for
  9839  	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
  9840  	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
  9841  	// and TargetOnDemandCapacity can be specified, and its value must be 1.
  9842  	TargetSpotCapacity *int64 `type:"integer"`
  9843  }
  9844  
  9845  // String returns the string representation.
  9846  //
  9847  // API parameter values that are decorated as "sensitive" in the API will not
  9848  // be included in the string output. The member name will be present, but the
  9849  // value will be replaced with "sensitive".
  9850  func (s InstanceFleetConfig) String() string {
  9851  	return awsutil.Prettify(s)
  9852  }
  9853  
  9854  // GoString returns the string representation.
  9855  //
  9856  // API parameter values that are decorated as "sensitive" in the API will not
  9857  // be included in the string output. The member name will be present, but the
  9858  // value will be replaced with "sensitive".
  9859  func (s InstanceFleetConfig) GoString() string {
  9860  	return s.String()
  9861  }
  9862  
  9863  // Validate inspects the fields of the type to determine if they are valid.
  9864  func (s *InstanceFleetConfig) Validate() error {
  9865  	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetConfig"}
  9866  	if s.InstanceFleetType == nil {
  9867  		invalidParams.Add(request.NewErrParamRequired("InstanceFleetType"))
  9868  	}
  9869  	if s.InstanceTypeConfigs != nil {
  9870  		for i, v := range s.InstanceTypeConfigs {
  9871  			if v == nil {
  9872  				continue
  9873  			}
  9874  			if err := v.Validate(); err != nil {
  9875  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceTypeConfigs", i), err.(request.ErrInvalidParams))
  9876  			}
  9877  		}
  9878  	}
  9879  	if s.LaunchSpecifications != nil {
  9880  		if err := s.LaunchSpecifications.Validate(); err != nil {
  9881  			invalidParams.AddNested("LaunchSpecifications", err.(request.ErrInvalidParams))
  9882  		}
  9883  	}
  9884  
  9885  	if invalidParams.Len() > 0 {
  9886  		return invalidParams
  9887  	}
  9888  	return nil
  9889  }
  9890  
  9891  // SetInstanceFleetType sets the InstanceFleetType field's value.
  9892  func (s *InstanceFleetConfig) SetInstanceFleetType(v string) *InstanceFleetConfig {
  9893  	s.InstanceFleetType = &v
  9894  	return s
  9895  }
  9896  
  9897  // SetInstanceTypeConfigs sets the InstanceTypeConfigs field's value.
  9898  func (s *InstanceFleetConfig) SetInstanceTypeConfigs(v []*InstanceTypeConfig) *InstanceFleetConfig {
  9899  	s.InstanceTypeConfigs = v
  9900  	return s
  9901  }
  9902  
  9903  // SetLaunchSpecifications sets the LaunchSpecifications field's value.
  9904  func (s *InstanceFleetConfig) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleetConfig {
  9905  	s.LaunchSpecifications = v
  9906  	return s
  9907  }
  9908  
  9909  // SetName sets the Name field's value.
  9910  func (s *InstanceFleetConfig) SetName(v string) *InstanceFleetConfig {
  9911  	s.Name = &v
  9912  	return s
  9913  }
  9914  
  9915  // SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
  9916  func (s *InstanceFleetConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetConfig {
  9917  	s.TargetOnDemandCapacity = &v
  9918  	return s
  9919  }
  9920  
  9921  // SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
  9922  func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfig {
  9923  	s.TargetSpotCapacity = &v
  9924  	return s
  9925  }
  9926  
  9927  // Configuration parameters for an instance fleet modification request.
  9928  //
  9929  // The instance fleet configuration is available only in Amazon EMR versions
  9930  // 4.8.0 and later, excluding 5.0.x versions.
  9931  type InstanceFleetModifyConfig struct {
  9932  	_ struct{} `type:"structure"`
  9933  
  9934  	// A unique identifier for the instance fleet.
  9935  	//
  9936  	// InstanceFleetId is a required field
  9937  	InstanceFleetId *string `type:"string" required:"true"`
  9938  
  9939  	// The target capacity of On-Demand units for the instance fleet. For more information
  9940  	// see InstanceFleetConfig$TargetOnDemandCapacity.
  9941  	TargetOnDemandCapacity *int64 `type:"integer"`
  9942  
  9943  	// The target capacity of Spot units for the instance fleet. For more information,
  9944  	// see InstanceFleetConfig$TargetSpotCapacity.
  9945  	TargetSpotCapacity *int64 `type:"integer"`
  9946  }
  9947  
  9948  // String returns the string representation.
  9949  //
  9950  // API parameter values that are decorated as "sensitive" in the API will not
  9951  // be included in the string output. The member name will be present, but the
  9952  // value will be replaced with "sensitive".
  9953  func (s InstanceFleetModifyConfig) String() string {
  9954  	return awsutil.Prettify(s)
  9955  }
  9956  
  9957  // GoString returns the string representation.
  9958  //
  9959  // API parameter values that are decorated as "sensitive" in the API will not
  9960  // be included in the string output. The member name will be present, but the
  9961  // value will be replaced with "sensitive".
  9962  func (s InstanceFleetModifyConfig) GoString() string {
  9963  	return s.String()
  9964  }
  9965  
  9966  // Validate inspects the fields of the type to determine if they are valid.
  9967  func (s *InstanceFleetModifyConfig) Validate() error {
  9968  	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetModifyConfig"}
  9969  	if s.InstanceFleetId == nil {
  9970  		invalidParams.Add(request.NewErrParamRequired("InstanceFleetId"))
  9971  	}
  9972  
  9973  	if invalidParams.Len() > 0 {
  9974  		return invalidParams
  9975  	}
  9976  	return nil
  9977  }
  9978  
  9979  // SetInstanceFleetId sets the InstanceFleetId field's value.
  9980  func (s *InstanceFleetModifyConfig) SetInstanceFleetId(v string) *InstanceFleetModifyConfig {
  9981  	s.InstanceFleetId = &v
  9982  	return s
  9983  }
  9984  
  9985  // SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
  9986  func (s *InstanceFleetModifyConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetModifyConfig {
  9987  	s.TargetOnDemandCapacity = &v
  9988  	return s
  9989  }
  9990  
  9991  // SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
  9992  func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFleetModifyConfig {
  9993  	s.TargetSpotCapacity = &v
  9994  	return s
  9995  }
  9996  
  9997  // The launch specification for Spot Instances in the fleet, which determines
  9998  // the defined duration, provisioning timeout behavior, and allocation strategy.
  9999  //
 10000  // The instance fleet configuration is available only in Amazon EMR versions
 10001  // 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot Instance allocation
 10002  // strategies are available in Amazon EMR version 5.12.1 and later.
 10003  type InstanceFleetProvisioningSpecifications struct {
 10004  	_ struct{} `type:"structure"`
 10005  
 10006  	// The launch specification for On-Demand Instances in the instance fleet, which
 10007  	// determines the allocation strategy.
 10008  	//
 10009  	// The instance fleet configuration is available only in Amazon EMR versions
 10010  	// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
 10011  	// strategy is available in Amazon EMR version 5.12.1 and later.
 10012  	OnDemandSpecification *OnDemandProvisioningSpecification `type:"structure"`
 10013  
 10014  	// The launch specification for Spot Instances in the fleet, which determines
 10015  	// the defined duration, provisioning timeout behavior, and allocation strategy.
 10016  	SpotSpecification *SpotProvisioningSpecification `type:"structure"`
 10017  }
 10018  
 10019  // String returns the string representation.
 10020  //
 10021  // API parameter values that are decorated as "sensitive" in the API will not
 10022  // be included in the string output. The member name will be present, but the
 10023  // value will be replaced with "sensitive".
 10024  func (s InstanceFleetProvisioningSpecifications) String() string {
 10025  	return awsutil.Prettify(s)
 10026  }
 10027  
 10028  // GoString returns the string representation.
 10029  //
 10030  // API parameter values that are decorated as "sensitive" in the API will not
 10031  // be included in the string output. The member name will be present, but the
 10032  // value will be replaced with "sensitive".
 10033  func (s InstanceFleetProvisioningSpecifications) GoString() string {
 10034  	return s.String()
 10035  }
 10036  
 10037  // Validate inspects the fields of the type to determine if they are valid.
 10038  func (s *InstanceFleetProvisioningSpecifications) Validate() error {
 10039  	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetProvisioningSpecifications"}
 10040  	if s.OnDemandSpecification != nil {
 10041  		if err := s.OnDemandSpecification.Validate(); err != nil {
 10042  			invalidParams.AddNested("OnDemandSpecification", err.(request.ErrInvalidParams))
 10043  		}
 10044  	}
 10045  	if s.SpotSpecification != nil {
 10046  		if err := s.SpotSpecification.Validate(); err != nil {
 10047  			invalidParams.AddNested("SpotSpecification", err.(request.ErrInvalidParams))
 10048  		}
 10049  	}
 10050  
 10051  	if invalidParams.Len() > 0 {
 10052  		return invalidParams
 10053  	}
 10054  	return nil
 10055  }
 10056  
 10057  // SetOnDemandSpecification sets the OnDemandSpecification field's value.
 10058  func (s *InstanceFleetProvisioningSpecifications) SetOnDemandSpecification(v *OnDemandProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
 10059  	s.OnDemandSpecification = v
 10060  	return s
 10061  }
 10062  
 10063  // SetSpotSpecification sets the SpotSpecification field's value.
 10064  func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
 10065  	s.SpotSpecification = v
 10066  	return s
 10067  }
 10068  
 10069  // Provides status change reason details for the instance fleet.
 10070  //
 10071  // The instance fleet configuration is available only in Amazon EMR versions
 10072  // 4.8.0 and later, excluding 5.0.x versions.
 10073  type InstanceFleetStateChangeReason struct {
 10074  	_ struct{} `type:"structure"`
 10075  
 10076  	// A code corresponding to the reason the state change occurred.
 10077  	Code *string `type:"string" enum:"InstanceFleetStateChangeReasonCode"`
 10078  
 10079  	// An explanatory message.
 10080  	Message *string `type:"string"`
 10081  }
 10082  
 10083  // String returns the string representation.
 10084  //
 10085  // API parameter values that are decorated as "sensitive" in the API will not
 10086  // be included in the string output. The member name will be present, but the
 10087  // value will be replaced with "sensitive".
 10088  func (s InstanceFleetStateChangeReason) String() string {
 10089  	return awsutil.Prettify(s)
 10090  }
 10091  
 10092  // GoString returns the string representation.
 10093  //
 10094  // API parameter values that are decorated as "sensitive" in the API will not
 10095  // be included in the string output. The member name will be present, but the
 10096  // value will be replaced with "sensitive".
 10097  func (s InstanceFleetStateChangeReason) GoString() string {
 10098  	return s.String()
 10099  }
 10100  
 10101  // SetCode sets the Code field's value.
 10102  func (s *InstanceFleetStateChangeReason) SetCode(v string) *InstanceFleetStateChangeReason {
 10103  	s.Code = &v
 10104  	return s
 10105  }
 10106  
 10107  // SetMessage sets the Message field's value.
 10108  func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStateChangeReason {
 10109  	s.Message = &v
 10110  	return s
 10111  }
 10112  
 10113  // The status of the instance fleet.
 10114  //
 10115  // The instance fleet configuration is available only in Amazon EMR versions
 10116  // 4.8.0 and later, excluding 5.0.x versions.
 10117  type InstanceFleetStatus struct {
 10118  	_ struct{} `type:"structure"`
 10119  
 10120  	// A code representing the instance fleet status.
 10121  	//
 10122  	//    * PROVISIONING—The instance fleet is provisioning EC2 resources and
 10123  	//    is not yet ready to run jobs.
 10124  	//
 10125  	//    * BOOTSTRAPPING—EC2 instances and other resources have been provisioned
 10126  	//    and the bootstrap actions specified for the instances are underway.
 10127  	//
 10128  	//    * RUNNING—EC2 instances and other resources are running. They are either
 10129  	//    executing jobs or waiting to execute jobs.
 10130  	//
 10131  	//    * RESIZING—A resize operation is underway. EC2 instances are either
 10132  	//    being added or removed.
 10133  	//
 10134  	//    * SUSPENDED—A resize operation could not complete. Existing EC2 instances
 10135  	//    are running, but instances can't be added or removed.
 10136  	//
 10137  	//    * TERMINATING—The instance fleet is terminating EC2 instances.
 10138  	//
 10139  	//    * TERMINATED—The instance fleet is no longer active, and all EC2 instances
 10140  	//    have been terminated.
 10141  	State *string `type:"string" enum:"InstanceFleetState"`
 10142  
 10143  	// Provides status change reason details for the instance fleet.
 10144  	StateChangeReason *InstanceFleetStateChangeReason `type:"structure"`
 10145  
 10146  	// Provides historical timestamps for the instance fleet, including the time
 10147  	// of creation, the time it became ready to run jobs, and the time of termination.
 10148  	Timeline *InstanceFleetTimeline `type:"structure"`
 10149  }
 10150  
 10151  // String returns the string representation.
 10152  //
 10153  // API parameter values that are decorated as "sensitive" in the API will not
 10154  // be included in the string output. The member name will be present, but the
 10155  // value will be replaced with "sensitive".
 10156  func (s InstanceFleetStatus) String() string {
 10157  	return awsutil.Prettify(s)
 10158  }
 10159  
 10160  // GoString returns the string representation.
 10161  //
 10162  // API parameter values that are decorated as "sensitive" in the API will not
 10163  // be included in the string output. The member name will be present, but the
 10164  // value will be replaced with "sensitive".
 10165  func (s InstanceFleetStatus) GoString() string {
 10166  	return s.String()
 10167  }
 10168  
 10169  // SetState sets the State field's value.
 10170  func (s *InstanceFleetStatus) SetState(v string) *InstanceFleetStatus {
 10171  	s.State = &v
 10172  	return s
 10173  }
 10174  
 10175  // SetStateChangeReason sets the StateChangeReason field's value.
 10176  func (s *InstanceFleetStatus) SetStateChangeReason(v *InstanceFleetStateChangeReason) *InstanceFleetStatus {
 10177  	s.StateChangeReason = v
 10178  	return s
 10179  }
 10180  
 10181  // SetTimeline sets the Timeline field's value.
 10182  func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFleetStatus {
 10183  	s.Timeline = v
 10184  	return s
 10185  }
 10186  
 10187  // Provides historical timestamps for the instance fleet, including the time
 10188  // of creation, the time it became ready to run jobs, and the time of termination.
 10189  //
 10190  // The instance fleet configuration is available only in Amazon EMR versions
 10191  // 4.8.0 and later, excluding 5.0.x versions.
 10192  type InstanceFleetTimeline struct {
 10193  	_ struct{} `type:"structure"`
 10194  
 10195  	// The time and date the instance fleet was created.
 10196  	CreationDateTime *time.Time `type:"timestamp"`
 10197  
 10198  	// The time and date the instance fleet terminated.
 10199  	EndDateTime *time.Time `type:"timestamp"`
 10200  
 10201  	// The time and date the instance fleet was ready to run jobs.
 10202  	ReadyDateTime *time.Time `type:"timestamp"`
 10203  }
 10204  
 10205  // String returns the string representation.
 10206  //
 10207  // API parameter values that are decorated as "sensitive" in the API will not
 10208  // be included in the string output. The member name will be present, but the
 10209  // value will be replaced with "sensitive".
 10210  func (s InstanceFleetTimeline) String() string {
 10211  	return awsutil.Prettify(s)
 10212  }
 10213  
 10214  // GoString returns the string representation.
 10215  //
 10216  // API parameter values that are decorated as "sensitive" in the API will not
 10217  // be included in the string output. The member name will be present, but the
 10218  // value will be replaced with "sensitive".
 10219  func (s InstanceFleetTimeline) GoString() string {
 10220  	return s.String()
 10221  }
 10222  
 10223  // SetCreationDateTime sets the CreationDateTime field's value.
 10224  func (s *InstanceFleetTimeline) SetCreationDateTime(v time.Time) *InstanceFleetTimeline {
 10225  	s.CreationDateTime = &v
 10226  	return s
 10227  }
 10228  
 10229  // SetEndDateTime sets the EndDateTime field's value.
 10230  func (s *InstanceFleetTimeline) SetEndDateTime(v time.Time) *InstanceFleetTimeline {
 10231  	s.EndDateTime = &v
 10232  	return s
 10233  }
 10234  
 10235  // SetReadyDateTime sets the ReadyDateTime field's value.
 10236  func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTimeline {
 10237  	s.ReadyDateTime = &v
 10238  	return s
 10239  }
 10240  
 10241  // This entity represents an instance group, which is a group of instances that
 10242  // have common purpose. For example, CORE instance group is used for HDFS.
 10243  type InstanceGroup struct {
 10244  	_ struct{} `type:"structure"`
 10245  
 10246  	// An automatic scaling policy for a core instance group or task instance group
 10247  	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
 10248  	// group dynamically adds and terminates EC2 instances in response to the value
 10249  	// of a CloudWatch metric. See PutAutoScalingPolicy.
 10250  	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
 10251  
 10252  	// If specified, indicates that the instance group uses Spot Instances. This
 10253  	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
 10254  	// to set the amount equal to the On-Demand price, or specify an amount in USD.
 10255  	BidPrice *string `type:"string"`
 10256  
 10257  	//
 10258  	// Amazon EMR releases 4.x or later.
 10259  	//
 10260  	// The list of configurations supplied for an Amazon EMR cluster instance group.
 10261  	// You can specify a separate configuration for each instance group (master,
 10262  	// core, and task).
 10263  	Configurations []*Configuration `type:"list"`
 10264  
 10265  	// The version number of the requested configuration specification for this
 10266  	// instance group.
 10267  	ConfigurationsVersion *int64 `type:"long"`
 10268  
 10269  	// The custom AMI ID to use for the provisioned instance group.
 10270  	CustomAmiId *string `type:"string"`
 10271  
 10272  	// The EBS block devices that are mapped to this instance group.
 10273  	EbsBlockDevices []*EbsBlockDevice `type:"list"`
 10274  
 10275  	// If the instance group is EBS-optimized. An Amazon EBS-optimized instance
 10276  	// uses an optimized configuration stack and provides additional, dedicated
 10277  	// capacity for Amazon EBS I/O.
 10278  	EbsOptimized *bool `type:"boolean"`
 10279  
 10280  	// The identifier of the instance group.
 10281  	Id *string `type:"string"`
 10282  
 10283  	// The type of the instance group. Valid values are MASTER, CORE or TASK.
 10284  	InstanceGroupType *string `type:"string" enum:"InstanceGroupType"`
 10285  
 10286  	// The EC2 instance type for all instances in the instance group.
 10287  	InstanceType *string `min:"1" type:"string"`
 10288  
 10289  	// A list of configurations that were successfully applied for an instance group
 10290  	// last time.
 10291  	LastSuccessfullyAppliedConfigurations []*Configuration `type:"list"`
 10292  
 10293  	// The version number of a configuration specification that was successfully
 10294  	// applied for an instance group last time.
 10295  	LastSuccessfullyAppliedConfigurationsVersion *int64 `type:"long"`
 10296  
 10297  	// The marketplace to provision instances for this group. Valid values are ON_DEMAND
 10298  	// or SPOT.
 10299  	Market *string `type:"string" enum:"MarketType"`
 10300  
 10301  	// The name of the instance group.
 10302  	Name *string `type:"string"`
 10303  
 10304  	// The target number of instances for the instance group.
 10305  	RequestedInstanceCount *int64 `type:"integer"`
 10306  
 10307  	// The number of instances currently running in this instance group.
 10308  	RunningInstanceCount *int64 `type:"integer"`
 10309  
 10310  	// Policy for customizing shrink operations.
 10311  	ShrinkPolicy *ShrinkPolicy `type:"structure"`
 10312  
 10313  	// The current status of the instance group.
 10314  	Status *InstanceGroupStatus `type:"structure"`
 10315  }
 10316  
 10317  // String returns the string representation.
 10318  //
 10319  // API parameter values that are decorated as "sensitive" in the API will not
 10320  // be included in the string output. The member name will be present, but the
 10321  // value will be replaced with "sensitive".
 10322  func (s InstanceGroup) String() string {
 10323  	return awsutil.Prettify(s)
 10324  }
 10325  
 10326  // GoString returns the string representation.
 10327  //
 10328  // API parameter values that are decorated as "sensitive" in the API will not
 10329  // be included in the string output. The member name will be present, but the
 10330  // value will be replaced with "sensitive".
 10331  func (s InstanceGroup) GoString() string {
 10332  	return s.String()
 10333  }
 10334  
 10335  // SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
 10336  func (s *InstanceGroup) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *InstanceGroup {
 10337  	s.AutoScalingPolicy = v
 10338  	return s
 10339  }
 10340  
 10341  // SetBidPrice sets the BidPrice field's value.
 10342  func (s *InstanceGroup) SetBidPrice(v string) *InstanceGroup {
 10343  	s.BidPrice = &v
 10344  	return s
 10345  }
 10346  
 10347  // SetConfigurations sets the Configurations field's value.
 10348  func (s *InstanceGroup) SetConfigurations(v []*Configuration) *InstanceGroup {
 10349  	s.Configurations = v
 10350  	return s
 10351  }
 10352  
 10353  // SetConfigurationsVersion sets the ConfigurationsVersion field's value.
 10354  func (s *InstanceGroup) SetConfigurationsVersion(v int64) *InstanceGroup {
 10355  	s.ConfigurationsVersion = &v
 10356  	return s
 10357  }
 10358  
 10359  // SetCustomAmiId sets the CustomAmiId field's value.
 10360  func (s *InstanceGroup) SetCustomAmiId(v string) *InstanceGroup {
 10361  	s.CustomAmiId = &v
 10362  	return s
 10363  }
 10364  
 10365  // SetEbsBlockDevices sets the EbsBlockDevices field's value.
 10366  func (s *InstanceGroup) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceGroup {
 10367  	s.EbsBlockDevices = v
 10368  	return s
 10369  }
 10370  
 10371  // SetEbsOptimized sets the EbsOptimized field's value.
 10372  func (s *InstanceGroup) SetEbsOptimized(v bool) *InstanceGroup {
 10373  	s.EbsOptimized = &v
 10374  	return s
 10375  }
 10376  
 10377  // SetId sets the Id field's value.
 10378  func (s *InstanceGroup) SetId(v string) *InstanceGroup {
 10379  	s.Id = &v
 10380  	return s
 10381  }
 10382  
 10383  // SetInstanceGroupType sets the InstanceGroupType field's value.
 10384  func (s *InstanceGroup) SetInstanceGroupType(v string) *InstanceGroup {
 10385  	s.InstanceGroupType = &v
 10386  	return s
 10387  }
 10388  
 10389  // SetInstanceType sets the InstanceType field's value.
 10390  func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
 10391  	s.InstanceType = &v
 10392  	return s
 10393  }
 10394  
 10395  // SetLastSuccessfullyAppliedConfigurations sets the LastSuccessfullyAppliedConfigurations field's value.
 10396  func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurations(v []*Configuration) *InstanceGroup {
 10397  	s.LastSuccessfullyAppliedConfigurations = v
 10398  	return s
 10399  }
 10400  
 10401  // SetLastSuccessfullyAppliedConfigurationsVersion sets the LastSuccessfullyAppliedConfigurationsVersion field's value.
 10402  func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurationsVersion(v int64) *InstanceGroup {
 10403  	s.LastSuccessfullyAppliedConfigurationsVersion = &v
 10404  	return s
 10405  }
 10406  
 10407  // SetMarket sets the Market field's value.
 10408  func (s *InstanceGroup) SetMarket(v string) *InstanceGroup {
 10409  	s.Market = &v
 10410  	return s
 10411  }
 10412  
 10413  // SetName sets the Name field's value.
 10414  func (s *InstanceGroup) SetName(v string) *InstanceGroup {
 10415  	s.Name = &v
 10416  	return s
 10417  }
 10418  
 10419  // SetRequestedInstanceCount sets the RequestedInstanceCount field's value.
 10420  func (s *InstanceGroup) SetRequestedInstanceCount(v int64) *InstanceGroup {
 10421  	s.RequestedInstanceCount = &v
 10422  	return s
 10423  }
 10424  
 10425  // SetRunningInstanceCount sets the RunningInstanceCount field's value.
 10426  func (s *InstanceGroup) SetRunningInstanceCount(v int64) *InstanceGroup {
 10427  	s.RunningInstanceCount = &v
 10428  	return s
 10429  }
 10430  
 10431  // SetShrinkPolicy sets the ShrinkPolicy field's value.
 10432  func (s *InstanceGroup) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroup {
 10433  	s.ShrinkPolicy = v
 10434  	return s
 10435  }
 10436  
 10437  // SetStatus sets the Status field's value.
 10438  func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup {
 10439  	s.Status = v
 10440  	return s
 10441  }
 10442  
 10443  // Configuration defining a new instance group.
 10444  type InstanceGroupConfig struct {
 10445  	_ struct{} `type:"structure"`
 10446  
 10447  	// An automatic scaling policy for a core instance group or task instance group
 10448  	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
 10449  	// group dynamically adds and terminates EC2 instances in response to the value
 10450  	// of a CloudWatch metric. See PutAutoScalingPolicy.
 10451  	AutoScalingPolicy *AutoScalingPolicy `type:"structure"`
 10452  
 10453  	// If specified, indicates that the instance group uses Spot Instances. This
 10454  	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
 10455  	// to set the amount equal to the On-Demand price, or specify an amount in USD.
 10456  	BidPrice *string `type:"string"`
 10457  
 10458  	//
 10459  	// Amazon EMR releases 4.x or later.
 10460  	//
 10461  	// The list of configurations supplied for an EMR cluster instance group. You
 10462  	// can specify a separate configuration for each instance group (master, core,
 10463  	// and task).
 10464  	Configurations []*Configuration `type:"list"`
 10465  
 10466  	// The custom AMI ID to use for the provisioned instance group.
 10467  	CustomAmiId *string `type:"string"`
 10468  
 10469  	// EBS configurations that will be attached to each EC2 instance in the instance
 10470  	// group.
 10471  	EbsConfiguration *EbsConfiguration `type:"structure"`
 10472  
 10473  	// Target number of instances for the instance group.
 10474  	//
 10475  	// InstanceCount is a required field
 10476  	InstanceCount *int64 `type:"integer" required:"true"`
 10477  
 10478  	// The role of the instance group in the cluster.
 10479  	//
 10480  	// InstanceRole is a required field
 10481  	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
 10482  
 10483  	// The EC2 instance type for all instances in the instance group.
 10484  	//
 10485  	// InstanceType is a required field
 10486  	InstanceType *string `min:"1" type:"string" required:"true"`
 10487  
 10488  	// Market type of the EC2 instances used to create a cluster node.
 10489  	Market *string `type:"string" enum:"MarketType"`
 10490  
 10491  	// Friendly name given to the instance group.
 10492  	Name *string `type:"string"`
 10493  }
 10494  
 10495  // String returns the string representation.
 10496  //
 10497  // API parameter values that are decorated as "sensitive" in the API will not
 10498  // be included in the string output. The member name will be present, but the
 10499  // value will be replaced with "sensitive".
 10500  func (s InstanceGroupConfig) String() string {
 10501  	return awsutil.Prettify(s)
 10502  }
 10503  
 10504  // GoString returns the string representation.
 10505  //
 10506  // API parameter values that are decorated as "sensitive" in the API will not
 10507  // be included in the string output. The member name will be present, but the
 10508  // value will be replaced with "sensitive".
 10509  func (s InstanceGroupConfig) GoString() string {
 10510  	return s.String()
 10511  }
 10512  
 10513  // Validate inspects the fields of the type to determine if they are valid.
 10514  func (s *InstanceGroupConfig) Validate() error {
 10515  	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupConfig"}
 10516  	if s.InstanceCount == nil {
 10517  		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
 10518  	}
 10519  	if s.InstanceRole == nil {
 10520  		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
 10521  	}
 10522  	if s.InstanceType == nil {
 10523  		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
 10524  	}
 10525  	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
 10526  		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
 10527  	}
 10528  	if s.AutoScalingPolicy != nil {
 10529  		if err := s.AutoScalingPolicy.Validate(); err != nil {
 10530  			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
 10531  		}
 10532  	}
 10533  	if s.EbsConfiguration != nil {
 10534  		if err := s.EbsConfiguration.Validate(); err != nil {
 10535  			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
 10536  		}
 10537  	}
 10538  
 10539  	if invalidParams.Len() > 0 {
 10540  		return invalidParams
 10541  	}
 10542  	return nil
 10543  }
 10544  
 10545  // SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
 10546  func (s *InstanceGroupConfig) SetAutoScalingPolicy(v *AutoScalingPolicy) *InstanceGroupConfig {
 10547  	s.AutoScalingPolicy = v
 10548  	return s
 10549  }
 10550  
 10551  // SetBidPrice sets the BidPrice field's value.
 10552  func (s *InstanceGroupConfig) SetBidPrice(v string) *InstanceGroupConfig {
 10553  	s.BidPrice = &v
 10554  	return s
 10555  }
 10556  
 10557  // SetConfigurations sets the Configurations field's value.
 10558  func (s *InstanceGroupConfig) SetConfigurations(v []*Configuration) *InstanceGroupConfig {
 10559  	s.Configurations = v
 10560  	return s
 10561  }
 10562  
 10563  // SetCustomAmiId sets the CustomAmiId field's value.
 10564  func (s *InstanceGroupConfig) SetCustomAmiId(v string) *InstanceGroupConfig {
 10565  	s.CustomAmiId = &v
 10566  	return s
 10567  }
 10568  
 10569  // SetEbsConfiguration sets the EbsConfiguration field's value.
 10570  func (s *InstanceGroupConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceGroupConfig {
 10571  	s.EbsConfiguration = v
 10572  	return s
 10573  }
 10574  
 10575  // SetInstanceCount sets the InstanceCount field's value.
 10576  func (s *InstanceGroupConfig) SetInstanceCount(v int64) *InstanceGroupConfig {
 10577  	s.InstanceCount = &v
 10578  	return s
 10579  }
 10580  
 10581  // SetInstanceRole sets the InstanceRole field's value.
 10582  func (s *InstanceGroupConfig) SetInstanceRole(v string) *InstanceGroupConfig {
 10583  	s.InstanceRole = &v
 10584  	return s
 10585  }
 10586  
 10587  // SetInstanceType sets the InstanceType field's value.
 10588  func (s *InstanceGroupConfig) SetInstanceType(v string) *InstanceGroupConfig {
 10589  	s.InstanceType = &v
 10590  	return s
 10591  }
 10592  
 10593  // SetMarket sets the Market field's value.
 10594  func (s *InstanceGroupConfig) SetMarket(v string) *InstanceGroupConfig {
 10595  	s.Market = &v
 10596  	return s
 10597  }
 10598  
 10599  // SetName sets the Name field's value.
 10600  func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig {
 10601  	s.Name = &v
 10602  	return s
 10603  }
 10604  
 10605  // Detailed information about an instance group.
 10606  type InstanceGroupDetail struct {
 10607  	_ struct{} `type:"structure"`
 10608  
 10609  	// If specified, indicates that the instance group uses Spot Instances. This
 10610  	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
 10611  	// to set the amount equal to the On-Demand price, or specify an amount in USD.
 10612  	BidPrice *string `type:"string"`
 10613  
 10614  	// The date/time the instance group was created.
 10615  	//
 10616  	// CreationDateTime is a required field
 10617  	CreationDateTime *time.Time `type:"timestamp" required:"true"`
 10618  
 10619  	// The custom AMI ID to use for the provisioned instance group.
 10620  	CustomAmiId *string `type:"string"`
 10621  
 10622  	// The date/time the instance group was terminated.
 10623  	EndDateTime *time.Time `type:"timestamp"`
 10624  
 10625  	// Unique identifier for the instance group.
 10626  	InstanceGroupId *string `type:"string"`
 10627  
 10628  	// Target number of instances to run in the instance group.
 10629  	//
 10630  	// InstanceRequestCount is a required field
 10631  	InstanceRequestCount *int64 `type:"integer" required:"true"`
 10632  
 10633  	// Instance group role in the cluster
 10634  	//
 10635  	// InstanceRole is a required field
 10636  	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
 10637  
 10638  	// Actual count of running instances.
 10639  	//
 10640  	// InstanceRunningCount is a required field
 10641  	InstanceRunningCount *int64 `type:"integer" required:"true"`
 10642  
 10643  	// EC2 instance type.
 10644  	//
 10645  	// InstanceType is a required field
 10646  	InstanceType *string `min:"1" type:"string" required:"true"`
 10647  
 10648  	// Details regarding the state of the instance group.
 10649  	LastStateChangeReason *string `type:"string"`
 10650  
 10651  	// Market type of the EC2 instances used to create a cluster node.
 10652  	//
 10653  	// Market is a required field
 10654  	Market *string `type:"string" required:"true" enum:"MarketType"`
 10655  
 10656  	// Friendly name for the instance group.
 10657  	Name *string `type:"string"`
 10658  
 10659  	// The date/time the instance group was available to the cluster.
 10660  	ReadyDateTime *time.Time `type:"timestamp"`
 10661  
 10662  	// The date/time the instance group was started.
 10663  	StartDateTime *time.Time `type:"timestamp"`
 10664  
 10665  	// State of instance group. The following values are deprecated: STARTING, TERMINATED,
 10666  	// and FAILED.
 10667  	//
 10668  	// State is a required field
 10669  	State *string `type:"string" required:"true" enum:"InstanceGroupState"`
 10670  }
 10671  
 10672  // String returns the string representation.
 10673  //
 10674  // API parameter values that are decorated as "sensitive" in the API will not
 10675  // be included in the string output. The member name will be present, but the
 10676  // value will be replaced with "sensitive".
 10677  func (s InstanceGroupDetail) String() string {
 10678  	return awsutil.Prettify(s)
 10679  }
 10680  
 10681  // GoString returns the string representation.
 10682  //
 10683  // API parameter values that are decorated as "sensitive" in the API will not
 10684  // be included in the string output. The member name will be present, but the
 10685  // value will be replaced with "sensitive".
 10686  func (s InstanceGroupDetail) GoString() string {
 10687  	return s.String()
 10688  }
 10689  
 10690  // SetBidPrice sets the BidPrice field's value.
 10691  func (s *InstanceGroupDetail) SetBidPrice(v string) *InstanceGroupDetail {
 10692  	s.BidPrice = &v
 10693  	return s
 10694  }
 10695  
 10696  // SetCreationDateTime sets the CreationDateTime field's value.
 10697  func (s *InstanceGroupDetail) SetCreationDateTime(v time.Time) *InstanceGroupDetail {
 10698  	s.CreationDateTime = &v
 10699  	return s
 10700  }
 10701  
 10702  // SetCustomAmiId sets the CustomAmiId field's value.
 10703  func (s *InstanceGroupDetail) SetCustomAmiId(v string) *InstanceGroupDetail {
 10704  	s.CustomAmiId = &v
 10705  	return s
 10706  }
 10707  
 10708  // SetEndDateTime sets the EndDateTime field's value.
 10709  func (s *InstanceGroupDetail) SetEndDateTime(v time.Time) *InstanceGroupDetail {
 10710  	s.EndDateTime = &v
 10711  	return s
 10712  }
 10713  
 10714  // SetInstanceGroupId sets the InstanceGroupId field's value.
 10715  func (s *InstanceGroupDetail) SetInstanceGroupId(v string) *InstanceGroupDetail {
 10716  	s.InstanceGroupId = &v
 10717  	return s
 10718  }
 10719  
 10720  // SetInstanceRequestCount sets the InstanceRequestCount field's value.
 10721  func (s *InstanceGroupDetail) SetInstanceRequestCount(v int64) *InstanceGroupDetail {
 10722  	s.InstanceRequestCount = &v
 10723  	return s
 10724  }
 10725  
 10726  // SetInstanceRole sets the InstanceRole field's value.
 10727  func (s *InstanceGroupDetail) SetInstanceRole(v string) *InstanceGroupDetail {
 10728  	s.InstanceRole = &v
 10729  	return s
 10730  }
 10731  
 10732  // SetInstanceRunningCount sets the InstanceRunningCount field's value.
 10733  func (s *InstanceGroupDetail) SetInstanceRunningCount(v int64) *InstanceGroupDetail {
 10734  	s.InstanceRunningCount = &v
 10735  	return s
 10736  }
 10737  
 10738  // SetInstanceType sets the InstanceType field's value.
 10739  func (s *InstanceGroupDetail) SetInstanceType(v string) *InstanceGroupDetail {
 10740  	s.InstanceType = &v
 10741  	return s
 10742  }
 10743  
 10744  // SetLastStateChangeReason sets the LastStateChangeReason field's value.
 10745  func (s *InstanceGroupDetail) SetLastStateChangeReason(v string) *InstanceGroupDetail {
 10746  	s.LastStateChangeReason = &v
 10747  	return s
 10748  }
 10749  
 10750  // SetMarket sets the Market field's value.
 10751  func (s *InstanceGroupDetail) SetMarket(v string) *InstanceGroupDetail {
 10752  	s.Market = &v
 10753  	return s
 10754  }
 10755  
 10756  // SetName sets the Name field's value.
 10757  func (s *InstanceGroupDetail) SetName(v string) *InstanceGroupDetail {
 10758  	s.Name = &v
 10759  	return s
 10760  }
 10761  
 10762  // SetReadyDateTime sets the ReadyDateTime field's value.
 10763  func (s *InstanceGroupDetail) SetReadyDateTime(v time.Time) *InstanceGroupDetail {
 10764  	s.ReadyDateTime = &v
 10765  	return s
 10766  }
 10767  
 10768  // SetStartDateTime sets the StartDateTime field's value.
 10769  func (s *InstanceGroupDetail) SetStartDateTime(v time.Time) *InstanceGroupDetail {
 10770  	s.StartDateTime = &v
 10771  	return s
 10772  }
 10773  
 10774  // SetState sets the State field's value.
 10775  func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail {
 10776  	s.State = &v
 10777  	return s
 10778  }
 10779  
 10780  // Modify the size or configurations of an instance group.
 10781  type InstanceGroupModifyConfig struct {
 10782  	_ struct{} `type:"structure"`
 10783  
 10784  	// A list of new or modified configurations to apply for an instance group.
 10785  	Configurations []*Configuration `type:"list"`
 10786  
 10787  	// The EC2 InstanceIds to terminate. After you terminate the instances, the
 10788  	// instance group will not return to its original requested size.
 10789  	EC2InstanceIdsToTerminate []*string `type:"list"`
 10790  
 10791  	// Target size for the instance group.
 10792  	InstanceCount *int64 `type:"integer"`
 10793  
 10794  	// Unique ID of the instance group to modify.
 10795  	//
 10796  	// InstanceGroupId is a required field
 10797  	InstanceGroupId *string `type:"string" required:"true"`
 10798  
 10799  	// Policy for customizing shrink operations.
 10800  	ShrinkPolicy *ShrinkPolicy `type:"structure"`
 10801  }
 10802  
 10803  // String returns the string representation.
 10804  //
 10805  // API parameter values that are decorated as "sensitive" in the API will not
 10806  // be included in the string output. The member name will be present, but the
 10807  // value will be replaced with "sensitive".
 10808  func (s InstanceGroupModifyConfig) String() string {
 10809  	return awsutil.Prettify(s)
 10810  }
 10811  
 10812  // GoString returns the string representation.
 10813  //
 10814  // API parameter values that are decorated as "sensitive" in the API will not
 10815  // be included in the string output. The member name will be present, but the
 10816  // value will be replaced with "sensitive".
 10817  func (s InstanceGroupModifyConfig) GoString() string {
 10818  	return s.String()
 10819  }
 10820  
 10821  // Validate inspects the fields of the type to determine if they are valid.
 10822  func (s *InstanceGroupModifyConfig) Validate() error {
 10823  	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupModifyConfig"}
 10824  	if s.InstanceGroupId == nil {
 10825  		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
 10826  	}
 10827  
 10828  	if invalidParams.Len() > 0 {
 10829  		return invalidParams
 10830  	}
 10831  	return nil
 10832  }
 10833  
 10834  // SetConfigurations sets the Configurations field's value.
 10835  func (s *InstanceGroupModifyConfig) SetConfigurations(v []*Configuration) *InstanceGroupModifyConfig {
 10836  	s.Configurations = v
 10837  	return s
 10838  }
 10839  
 10840  // SetEC2InstanceIdsToTerminate sets the EC2InstanceIdsToTerminate field's value.
 10841  func (s *InstanceGroupModifyConfig) SetEC2InstanceIdsToTerminate(v []*string) *InstanceGroupModifyConfig {
 10842  	s.EC2InstanceIdsToTerminate = v
 10843  	return s
 10844  }
 10845  
 10846  // SetInstanceCount sets the InstanceCount field's value.
 10847  func (s *InstanceGroupModifyConfig) SetInstanceCount(v int64) *InstanceGroupModifyConfig {
 10848  	s.InstanceCount = &v
 10849  	return s
 10850  }
 10851  
 10852  // SetInstanceGroupId sets the InstanceGroupId field's value.
 10853  func (s *InstanceGroupModifyConfig) SetInstanceGroupId(v string) *InstanceGroupModifyConfig {
 10854  	s.InstanceGroupId = &v
 10855  	return s
 10856  }
 10857  
 10858  // SetShrinkPolicy sets the ShrinkPolicy field's value.
 10859  func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroupModifyConfig {
 10860  	s.ShrinkPolicy = v
 10861  	return s
 10862  }
 10863  
 10864  // The status change reason details for the instance group.
 10865  type InstanceGroupStateChangeReason struct {
 10866  	_ struct{} `type:"structure"`
 10867  
 10868  	// The programmable code for the state change reason.
 10869  	Code *string `type:"string" enum:"InstanceGroupStateChangeReasonCode"`
 10870  
 10871  	// The status change reason description.
 10872  	Message *string `type:"string"`
 10873  }
 10874  
 10875  // String returns the string representation.
 10876  //
 10877  // API parameter values that are decorated as "sensitive" in the API will not
 10878  // be included in the string output. The member name will be present, but the
 10879  // value will be replaced with "sensitive".
 10880  func (s InstanceGroupStateChangeReason) String() string {
 10881  	return awsutil.Prettify(s)
 10882  }
 10883  
 10884  // GoString returns the string representation.
 10885  //
 10886  // API parameter values that are decorated as "sensitive" in the API will not
 10887  // be included in the string output. The member name will be present, but the
 10888  // value will be replaced with "sensitive".
 10889  func (s InstanceGroupStateChangeReason) GoString() string {
 10890  	return s.String()
 10891  }
 10892  
 10893  // SetCode sets the Code field's value.
 10894  func (s *InstanceGroupStateChangeReason) SetCode(v string) *InstanceGroupStateChangeReason {
 10895  	s.Code = &v
 10896  	return s
 10897  }
 10898  
 10899  // SetMessage sets the Message field's value.
 10900  func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStateChangeReason {
 10901  	s.Message = &v
 10902  	return s
 10903  }
 10904  
 10905  // The details of the instance group status.
 10906  type InstanceGroupStatus struct {
 10907  	_ struct{} `type:"structure"`
 10908  
 10909  	// The current state of the instance group.
 10910  	State *string `type:"string" enum:"InstanceGroupState"`
 10911  
 10912  	// The status change reason details for the instance group.
 10913  	StateChangeReason *InstanceGroupStateChangeReason `type:"structure"`
 10914  
 10915  	// The timeline of the instance group status over time.
 10916  	Timeline *InstanceGroupTimeline `type:"structure"`
 10917  }
 10918  
 10919  // String returns the string representation.
 10920  //
 10921  // API parameter values that are decorated as "sensitive" in the API will not
 10922  // be included in the string output. The member name will be present, but the
 10923  // value will be replaced with "sensitive".
 10924  func (s InstanceGroupStatus) String() string {
 10925  	return awsutil.Prettify(s)
 10926  }
 10927  
 10928  // GoString returns the string representation.
 10929  //
 10930  // API parameter values that are decorated as "sensitive" in the API will not
 10931  // be included in the string output. The member name will be present, but the
 10932  // value will be replaced with "sensitive".
 10933  func (s InstanceGroupStatus) GoString() string {
 10934  	return s.String()
 10935  }
 10936  
 10937  // SetState sets the State field's value.
 10938  func (s *InstanceGroupStatus) SetState(v string) *InstanceGroupStatus {
 10939  	s.State = &v
 10940  	return s
 10941  }
 10942  
 10943  // SetStateChangeReason sets the StateChangeReason field's value.
 10944  func (s *InstanceGroupStatus) SetStateChangeReason(v *InstanceGroupStateChangeReason) *InstanceGroupStatus {
 10945  	s.StateChangeReason = v
 10946  	return s
 10947  }
 10948  
 10949  // SetTimeline sets the Timeline field's value.
 10950  func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGroupStatus {
 10951  	s.Timeline = v
 10952  	return s
 10953  }
 10954  
 10955  // The timeline of the instance group lifecycle.
 10956  type InstanceGroupTimeline struct {
 10957  	_ struct{} `type:"structure"`
 10958  
 10959  	// The creation date and time of the instance group.
 10960  	CreationDateTime *time.Time `type:"timestamp"`
 10961  
 10962  	// The date and time when the instance group terminated.
 10963  	EndDateTime *time.Time `type:"timestamp"`
 10964  
 10965  	// The date and time when the instance group became ready to perform tasks.
 10966  	ReadyDateTime *time.Time `type:"timestamp"`
 10967  }
 10968  
 10969  // String returns the string representation.
 10970  //
 10971  // API parameter values that are decorated as "sensitive" in the API will not
 10972  // be included in the string output. The member name will be present, but the
 10973  // value will be replaced with "sensitive".
 10974  func (s InstanceGroupTimeline) String() string {
 10975  	return awsutil.Prettify(s)
 10976  }
 10977  
 10978  // GoString returns the string representation.
 10979  //
 10980  // API parameter values that are decorated as "sensitive" in the API will not
 10981  // be included in the string output. The member name will be present, but the
 10982  // value will be replaced with "sensitive".
 10983  func (s InstanceGroupTimeline) GoString() string {
 10984  	return s.String()
 10985  }
 10986  
 10987  // SetCreationDateTime sets the CreationDateTime field's value.
 10988  func (s *InstanceGroupTimeline) SetCreationDateTime(v time.Time) *InstanceGroupTimeline {
 10989  	s.CreationDateTime = &v
 10990  	return s
 10991  }
 10992  
 10993  // SetEndDateTime sets the EndDateTime field's value.
 10994  func (s *InstanceGroupTimeline) SetEndDateTime(v time.Time) *InstanceGroupTimeline {
 10995  	s.EndDateTime = &v
 10996  	return s
 10997  }
 10998  
 10999  // SetReadyDateTime sets the ReadyDateTime field's value.
 11000  func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTimeline {
 11001  	s.ReadyDateTime = &v
 11002  	return s
 11003  }
 11004  
 11005  // Custom policy for requesting termination protection or termination of specific
 11006  // instances when shrinking an instance group.
 11007  type InstanceResizePolicy struct {
 11008  	_ struct{} `type:"structure"`
 11009  
 11010  	// Decommissioning timeout override for the specific list of instances to be
 11011  	// terminated.
 11012  	InstanceTerminationTimeout *int64 `type:"integer"`
 11013  
 11014  	// Specific list of instances to be protected when shrinking an instance group.
 11015  	InstancesToProtect []*string `type:"list"`
 11016  
 11017  	// Specific list of instances to be terminated when shrinking an instance group.
 11018  	InstancesToTerminate []*string `type:"list"`
 11019  }
 11020  
 11021  // String returns the string representation.
 11022  //
 11023  // API parameter values that are decorated as "sensitive" in the API will not
 11024  // be included in the string output. The member name will be present, but the
 11025  // value will be replaced with "sensitive".
 11026  func (s InstanceResizePolicy) String() string {
 11027  	return awsutil.Prettify(s)
 11028  }
 11029  
 11030  // GoString returns the string representation.
 11031  //
 11032  // API parameter values that are decorated as "sensitive" in the API will not
 11033  // be included in the string output. The member name will be present, but the
 11034  // value will be replaced with "sensitive".
 11035  func (s InstanceResizePolicy) GoString() string {
 11036  	return s.String()
 11037  }
 11038  
 11039  // SetInstanceTerminationTimeout sets the InstanceTerminationTimeout field's value.
 11040  func (s *InstanceResizePolicy) SetInstanceTerminationTimeout(v int64) *InstanceResizePolicy {
 11041  	s.InstanceTerminationTimeout = &v
 11042  	return s
 11043  }
 11044  
 11045  // SetInstancesToProtect sets the InstancesToProtect field's value.
 11046  func (s *InstanceResizePolicy) SetInstancesToProtect(v []*string) *InstanceResizePolicy {
 11047  	s.InstancesToProtect = v
 11048  	return s
 11049  }
 11050  
 11051  // SetInstancesToTerminate sets the InstancesToTerminate field's value.
 11052  func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceResizePolicy {
 11053  	s.InstancesToTerminate = v
 11054  	return s
 11055  }
 11056  
 11057  // The details of the status change reason for the instance.
 11058  type InstanceStateChangeReason struct {
 11059  	_ struct{} `type:"structure"`
 11060  
 11061  	// The programmable code for the state change reason.
 11062  	Code *string `type:"string" enum:"InstanceStateChangeReasonCode"`
 11063  
 11064  	// The status change reason description.
 11065  	Message *string `type:"string"`
 11066  }
 11067  
 11068  // String returns the string representation.
 11069  //
 11070  // API parameter values that are decorated as "sensitive" in the API will not
 11071  // be included in the string output. The member name will be present, but the
 11072  // value will be replaced with "sensitive".
 11073  func (s InstanceStateChangeReason) String() string {
 11074  	return awsutil.Prettify(s)
 11075  }
 11076  
 11077  // GoString returns the string representation.
 11078  //
 11079  // API parameter values that are decorated as "sensitive" in the API will not
 11080  // be included in the string output. The member name will be present, but the
 11081  // value will be replaced with "sensitive".
 11082  func (s InstanceStateChangeReason) GoString() string {
 11083  	return s.String()
 11084  }
 11085  
 11086  // SetCode sets the Code field's value.
 11087  func (s *InstanceStateChangeReason) SetCode(v string) *InstanceStateChangeReason {
 11088  	s.Code = &v
 11089  	return s
 11090  }
 11091  
 11092  // SetMessage sets the Message field's value.
 11093  func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeReason {
 11094  	s.Message = &v
 11095  	return s
 11096  }
 11097  
 11098  // The instance status details.
 11099  type InstanceStatus struct {
 11100  	_ struct{} `type:"structure"`
 11101  
 11102  	// The current state of the instance.
 11103  	State *string `type:"string" enum:"InstanceState"`
 11104  
 11105  	// The details of the status change reason for the instance.
 11106  	StateChangeReason *InstanceStateChangeReason `type:"structure"`
 11107  
 11108  	// The timeline of the instance status over time.
 11109  	Timeline *InstanceTimeline `type:"structure"`
 11110  }
 11111  
 11112  // String returns the string representation.
 11113  //
 11114  // API parameter values that are decorated as "sensitive" in the API will not
 11115  // be included in the string output. The member name will be present, but the
 11116  // value will be replaced with "sensitive".
 11117  func (s InstanceStatus) String() string {
 11118  	return awsutil.Prettify(s)
 11119  }
 11120  
 11121  // GoString returns the string representation.
 11122  //
 11123  // API parameter values that are decorated as "sensitive" in the API will not
 11124  // be included in the string output. The member name will be present, but the
 11125  // value will be replaced with "sensitive".
 11126  func (s InstanceStatus) GoString() string {
 11127  	return s.String()
 11128  }
 11129  
 11130  // SetState sets the State field's value.
 11131  func (s *InstanceStatus) SetState(v string) *InstanceStatus {
 11132  	s.State = &v
 11133  	return s
 11134  }
 11135  
 11136  // SetStateChangeReason sets the StateChangeReason field's value.
 11137  func (s *InstanceStatus) SetStateChangeReason(v *InstanceStateChangeReason) *InstanceStatus {
 11138  	s.StateChangeReason = v
 11139  	return s
 11140  }
 11141  
 11142  // SetTimeline sets the Timeline field's value.
 11143  func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus {
 11144  	s.Timeline = v
 11145  	return s
 11146  }
 11147  
 11148  // The timeline of the instance lifecycle.
 11149  type InstanceTimeline struct {
 11150  	_ struct{} `type:"structure"`
 11151  
 11152  	// The creation date and time of the instance.
 11153  	CreationDateTime *time.Time `type:"timestamp"`
 11154  
 11155  	// The date and time when the instance was terminated.
 11156  	EndDateTime *time.Time `type:"timestamp"`
 11157  
 11158  	// The date and time when the instance was ready to perform tasks.
 11159  	ReadyDateTime *time.Time `type:"timestamp"`
 11160  }
 11161  
 11162  // String returns the string representation.
 11163  //
 11164  // API parameter values that are decorated as "sensitive" in the API will not
 11165  // be included in the string output. The member name will be present, but the
 11166  // value will be replaced with "sensitive".
 11167  func (s InstanceTimeline) String() string {
 11168  	return awsutil.Prettify(s)
 11169  }
 11170  
 11171  // GoString returns the string representation.
 11172  //
 11173  // API parameter values that are decorated as "sensitive" in the API will not
 11174  // be included in the string output. The member name will be present, but the
 11175  // value will be replaced with "sensitive".
 11176  func (s InstanceTimeline) GoString() string {
 11177  	return s.String()
 11178  }
 11179  
 11180  // SetCreationDateTime sets the CreationDateTime field's value.
 11181  func (s *InstanceTimeline) SetCreationDateTime(v time.Time) *InstanceTimeline {
 11182  	s.CreationDateTime = &v
 11183  	return s
 11184  }
 11185  
 11186  // SetEndDateTime sets the EndDateTime field's value.
 11187  func (s *InstanceTimeline) SetEndDateTime(v time.Time) *InstanceTimeline {
 11188  	s.EndDateTime = &v
 11189  	return s
 11190  }
 11191  
 11192  // SetReadyDateTime sets the ReadyDateTime field's value.
 11193  func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline {
 11194  	s.ReadyDateTime = &v
 11195  	return s
 11196  }
 11197  
 11198  // An instance type configuration for each instance type in an instance fleet,
 11199  // which determines the EC2 instances Amazon EMR attempts to provision to fulfill
 11200  // On-Demand and Spot target capacities. When you use an allocation strategy,
 11201  // you can include a maximum of 30 instance type configurations for a fleet.
 11202  // For more information about how to use an allocation strategy, see Configure
 11203  // Instance Fleets (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-fleet.html).
 11204  // Without an allocation strategy, you may specify a maximum of five instance
 11205  // type configurations for a fleet.
 11206  //
 11207  // The instance fleet configuration is available only in Amazon EMR versions
 11208  // 4.8.0 and later, excluding 5.0.x versions.
 11209  type InstanceTypeConfig struct {
 11210  	_ struct{} `type:"structure"`
 11211  
 11212  	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
 11213  	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
 11214  	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
 11215  	BidPrice *string `type:"string"`
 11216  
 11217  	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
 11218  	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
 11219  	// 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided,
 11220  	// BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
 11221  	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
 11222  
 11223  	// A configuration classification that applies when provisioning cluster instances,
 11224  	// which can include configurations for applications and software that run on
 11225  	// the cluster.
 11226  	Configurations []*Configuration `type:"list"`
 11227  
 11228  	// The custom AMI ID to use for the instance type.
 11229  	CustomAmiId *string `type:"string"`
 11230  
 11231  	// The configuration of Amazon Elastic Block Store (Amazon EBS) attached to
 11232  	// each instance as defined by InstanceType.
 11233  	EbsConfiguration *EbsConfiguration `type:"structure"`
 11234  
 11235  	// An EC2 instance type, such as m3.xlarge.
 11236  	//
 11237  	// InstanceType is a required field
 11238  	InstanceType *string `min:"1" type:"string" required:"true"`
 11239  
 11240  	// The number of units that a provisioned instance of this type provides toward
 11241  	// fulfilling the target capacities defined in InstanceFleetConfig. This value
 11242  	// is 1 for a master instance fleet, and must be 1 or greater for core and task
 11243  	// instance fleets. Defaults to 1 if not specified.
 11244  	WeightedCapacity *int64 `type:"integer"`
 11245  }
 11246  
 11247  // String returns the string representation.
 11248  //
 11249  // API parameter values that are decorated as "sensitive" in the API will not
 11250  // be included in the string output. The member name will be present, but the
 11251  // value will be replaced with "sensitive".
 11252  func (s InstanceTypeConfig) String() string {
 11253  	return awsutil.Prettify(s)
 11254  }
 11255  
 11256  // GoString returns the string representation.
 11257  //
 11258  // API parameter values that are decorated as "sensitive" in the API will not
 11259  // be included in the string output. The member name will be present, but the
 11260  // value will be replaced with "sensitive".
 11261  func (s InstanceTypeConfig) GoString() string {
 11262  	return s.String()
 11263  }
 11264  
 11265  // Validate inspects the fields of the type to determine if they are valid.
 11266  func (s *InstanceTypeConfig) Validate() error {
 11267  	invalidParams := request.ErrInvalidParams{Context: "InstanceTypeConfig"}
 11268  	if s.InstanceType == nil {
 11269  		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
 11270  	}
 11271  	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
 11272  		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
 11273  	}
 11274  	if s.EbsConfiguration != nil {
 11275  		if err := s.EbsConfiguration.Validate(); err != nil {
 11276  			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
 11277  		}
 11278  	}
 11279  
 11280  	if invalidParams.Len() > 0 {
 11281  		return invalidParams
 11282  	}
 11283  	return nil
 11284  }
 11285  
 11286  // SetBidPrice sets the BidPrice field's value.
 11287  func (s *InstanceTypeConfig) SetBidPrice(v string) *InstanceTypeConfig {
 11288  	s.BidPrice = &v
 11289  	return s
 11290  }
 11291  
 11292  // SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
 11293  func (s *InstanceTypeConfig) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeConfig {
 11294  	s.BidPriceAsPercentageOfOnDemandPrice = &v
 11295  	return s
 11296  }
 11297  
 11298  // SetConfigurations sets the Configurations field's value.
 11299  func (s *InstanceTypeConfig) SetConfigurations(v []*Configuration) *InstanceTypeConfig {
 11300  	s.Configurations = v
 11301  	return s
 11302  }
 11303  
 11304  // SetCustomAmiId sets the CustomAmiId field's value.
 11305  func (s *InstanceTypeConfig) SetCustomAmiId(v string) *InstanceTypeConfig {
 11306  	s.CustomAmiId = &v
 11307  	return s
 11308  }
 11309  
 11310  // SetEbsConfiguration sets the EbsConfiguration field's value.
 11311  func (s *InstanceTypeConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceTypeConfig {
 11312  	s.EbsConfiguration = v
 11313  	return s
 11314  }
 11315  
 11316  // SetInstanceType sets the InstanceType field's value.
 11317  func (s *InstanceTypeConfig) SetInstanceType(v string) *InstanceTypeConfig {
 11318  	s.InstanceType = &v
 11319  	return s
 11320  }
 11321  
 11322  // SetWeightedCapacity sets the WeightedCapacity field's value.
 11323  func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig {
 11324  	s.WeightedCapacity = &v
 11325  	return s
 11326  }
 11327  
 11328  // The configuration specification for each instance type in an instance fleet.
 11329  //
 11330  // The instance fleet configuration is available only in Amazon EMR versions
 11331  // 4.8.0 and later, excluding 5.0.x versions.
 11332  type InstanceTypeSpecification struct {
 11333  	_ struct{} `type:"structure"`
 11334  
 11335  	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
 11336  	// Expressed in USD.
 11337  	BidPrice *string `type:"string"`
 11338  
 11339  	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
 11340  	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
 11341  	// 20%).
 11342  	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
 11343  
 11344  	// A configuration classification that applies when provisioning cluster instances,
 11345  	// which can include configurations for applications and software bundled with
 11346  	// Amazon EMR.
 11347  	Configurations []*Configuration `type:"list"`
 11348  
 11349  	// The custom AMI ID to use for the instance type.
 11350  	CustomAmiId *string `type:"string"`
 11351  
 11352  	// The configuration of Amazon Elastic Block Store (Amazon EBS) attached to
 11353  	// each instance as defined by InstanceType.
 11354  	EbsBlockDevices []*EbsBlockDevice `type:"list"`
 11355  
 11356  	// Evaluates to TRUE when the specified InstanceType is EBS-optimized.
 11357  	EbsOptimized *bool `type:"boolean"`
 11358  
 11359  	// The EC2 instance type, for example m3.xlarge.
 11360  	InstanceType *string `min:"1" type:"string"`
 11361  
 11362  	// The number of units that a provisioned instance of this type provides toward
 11363  	// fulfilling the target capacities defined in InstanceFleetConfig. Capacity
 11364  	// values represent performance characteristics such as vCPUs, memory, or I/O.
 11365  	// If not specified, the default value is 1.
 11366  	WeightedCapacity *int64 `type:"integer"`
 11367  }
 11368  
 11369  // String returns the string representation.
 11370  //
 11371  // API parameter values that are decorated as "sensitive" in the API will not
 11372  // be included in the string output. The member name will be present, but the
 11373  // value will be replaced with "sensitive".
 11374  func (s InstanceTypeSpecification) String() string {
 11375  	return awsutil.Prettify(s)
 11376  }
 11377  
 11378  // GoString returns the string representation.
 11379  //
 11380  // API parameter values that are decorated as "sensitive" in the API will not
 11381  // be included in the string output. The member name will be present, but the
 11382  // value will be replaced with "sensitive".
 11383  func (s InstanceTypeSpecification) GoString() string {
 11384  	return s.String()
 11385  }
 11386  
 11387  // SetBidPrice sets the BidPrice field's value.
 11388  func (s *InstanceTypeSpecification) SetBidPrice(v string) *InstanceTypeSpecification {
 11389  	s.BidPrice = &v
 11390  	return s
 11391  }
 11392  
 11393  // SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
 11394  func (s *InstanceTypeSpecification) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeSpecification {
 11395  	s.BidPriceAsPercentageOfOnDemandPrice = &v
 11396  	return s
 11397  }
 11398  
 11399  // SetConfigurations sets the Configurations field's value.
 11400  func (s *InstanceTypeSpecification) SetConfigurations(v []*Configuration) *InstanceTypeSpecification {
 11401  	s.Configurations = v
 11402  	return s
 11403  }
 11404  
 11405  // SetCustomAmiId sets the CustomAmiId field's value.
 11406  func (s *InstanceTypeSpecification) SetCustomAmiId(v string) *InstanceTypeSpecification {
 11407  	s.CustomAmiId = &v
 11408  	return s
 11409  }
 11410  
 11411  // SetEbsBlockDevices sets the EbsBlockDevices field's value.
 11412  func (s *InstanceTypeSpecification) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceTypeSpecification {
 11413  	s.EbsBlockDevices = v
 11414  	return s
 11415  }
 11416  
 11417  // SetEbsOptimized sets the EbsOptimized field's value.
 11418  func (s *InstanceTypeSpecification) SetEbsOptimized(v bool) *InstanceTypeSpecification {
 11419  	s.EbsOptimized = &v
 11420  	return s
 11421  }
 11422  
 11423  // SetInstanceType sets the InstanceType field's value.
 11424  func (s *InstanceTypeSpecification) SetInstanceType(v string) *InstanceTypeSpecification {
 11425  	s.InstanceType = &v
 11426  	return s
 11427  }
 11428  
 11429  // SetWeightedCapacity sets the WeightedCapacity field's value.
 11430  func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSpecification {
 11431  	s.WeightedCapacity = &v
 11432  	return s
 11433  }
 11434  
 11435  // Indicates that an error occurred while processing the request and that the
 11436  // request was not completed.
 11437  type InternalServerError struct {
 11438  	_            struct{}                  `type:"structure"`
 11439  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11440  
 11441  	Message_ *string `locationName:"message" type:"string"`
 11442  }
 11443  
 11444  // String returns the string representation.
 11445  //
 11446  // API parameter values that are decorated as "sensitive" in the API will not
 11447  // be included in the string output. The member name will be present, but the
 11448  // value will be replaced with "sensitive".
 11449  func (s InternalServerError) String() string {
 11450  	return awsutil.Prettify(s)
 11451  }
 11452  
 11453  // GoString returns the string representation.
 11454  //
 11455  // API parameter values that are decorated as "sensitive" in the API will not
 11456  // be included in the string output. The member name will be present, but the
 11457  // value will be replaced with "sensitive".
 11458  func (s InternalServerError) GoString() string {
 11459  	return s.String()
 11460  }
 11461  
 11462  func newErrorInternalServerError(v protocol.ResponseMetadata) error {
 11463  	return &InternalServerError{
 11464  		RespMetadata: v,
 11465  	}
 11466  }
 11467  
 11468  // Code returns the exception type name.
 11469  func (s *InternalServerError) Code() string {
 11470  	return "InternalServerError"
 11471  }
 11472  
 11473  // Message returns the exception's message.
 11474  func (s *InternalServerError) Message() string {
 11475  	if s.Message_ != nil {
 11476  		return *s.Message_
 11477  	}
 11478  	return ""
 11479  }
 11480  
 11481  // OrigErr always returns nil, satisfies awserr.Error interface.
 11482  func (s *InternalServerError) OrigErr() error {
 11483  	return nil
 11484  }
 11485  
 11486  func (s *InternalServerError) Error() string {
 11487  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11488  }
 11489  
 11490  // Status code returns the HTTP status code for the request's response error.
 11491  func (s *InternalServerError) StatusCode() int {
 11492  	return s.RespMetadata.StatusCode
 11493  }
 11494  
 11495  // RequestID returns the service's response RequestID for request.
 11496  func (s *InternalServerError) RequestID() string {
 11497  	return s.RespMetadata.RequestID
 11498  }
 11499  
 11500  // This exception occurs when there is an internal failure in the Amazon EMR
 11501  // service.
 11502  type InternalServerException struct {
 11503  	_            struct{}                  `type:"structure"`
 11504  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11505  
 11506  	// The message associated with the exception.
 11507  	Message_ *string `locationName:"Message" type:"string"`
 11508  }
 11509  
 11510  // String returns the string representation.
 11511  //
 11512  // API parameter values that are decorated as "sensitive" in the API will not
 11513  // be included in the string output. The member name will be present, but the
 11514  // value will be replaced with "sensitive".
 11515  func (s InternalServerException) String() string {
 11516  	return awsutil.Prettify(s)
 11517  }
 11518  
 11519  // GoString returns the string representation.
 11520  //
 11521  // API parameter values that are decorated as "sensitive" in the API will not
 11522  // be included in the string output. The member name will be present, but the
 11523  // value will be replaced with "sensitive".
 11524  func (s InternalServerException) GoString() string {
 11525  	return s.String()
 11526  }
 11527  
 11528  func newErrorInternalServerException(v protocol.ResponseMetadata) error {
 11529  	return &InternalServerException{
 11530  		RespMetadata: v,
 11531  	}
 11532  }
 11533  
 11534  // Code returns the exception type name.
 11535  func (s *InternalServerException) Code() string {
 11536  	return "InternalServerException"
 11537  }
 11538  
 11539  // Message returns the exception's message.
 11540  func (s *InternalServerException) Message() string {
 11541  	if s.Message_ != nil {
 11542  		return *s.Message_
 11543  	}
 11544  	return ""
 11545  }
 11546  
 11547  // OrigErr always returns nil, satisfies awserr.Error interface.
 11548  func (s *InternalServerException) OrigErr() error {
 11549  	return nil
 11550  }
 11551  
 11552  func (s *InternalServerException) Error() string {
 11553  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 11554  }
 11555  
 11556  // Status code returns the HTTP status code for the request's response error.
 11557  func (s *InternalServerException) StatusCode() int {
 11558  	return s.RespMetadata.StatusCode
 11559  }
 11560  
 11561  // RequestID returns the service's response RequestID for request.
 11562  func (s *InternalServerException) RequestID() string {
 11563  	return s.RespMetadata.RequestID
 11564  }
 11565  
 11566  // This exception occurs when there is something wrong with user input.
 11567  type InvalidRequestException struct {
 11568  	_            struct{}                  `type:"structure"`
 11569  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 11570  
 11571  	// The error code associated with the exception.
 11572  	ErrorCode *string `min:"1" type:"string"`
 11573  
 11574  	// The message associated with the exception.
 11575  	Message_ *string `locationName:"Message" type:"string"`
 11576  }
 11577  
 11578  // String returns the string representation.
 11579  //
 11580  // API parameter values that are decorated as "sensitive" in the API will not
 11581  // be included in the string output. The member name will be present, but the
 11582  // value will be replaced with "sensitive".
 11583  func (s InvalidRequestException) String() string {
 11584  	return awsutil.Prettify(s)
 11585  }
 11586  
 11587  // GoString returns the string representation.
 11588  //
 11589  // API parameter values that are decorated as "sensitive" in the API will not
 11590  // be included in the string output. The member name will be present, but the
 11591  // value will be replaced with "sensitive".
 11592  func (s InvalidRequestException) GoString() string {
 11593  	return s.String()
 11594  }
 11595  
 11596  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
 11597  	return &InvalidRequestException{
 11598  		RespMetadata: v,
 11599  	}
 11600  }
 11601  
 11602  // Code returns the exception type name.
 11603  func (s *InvalidRequestException) Code() string {
 11604  	return "InvalidRequestException"
 11605  }
 11606  
 11607  // Message returns the exception's message.
 11608  func (s *InvalidRequestException) Message() string {
 11609  	if s.Message_ != nil {
 11610  		return *s.Message_
 11611  	}
 11612  	return ""
 11613  }
 11614  
 11615  // OrigErr always returns nil, satisfies awserr.Error interface.
 11616  func (s *InvalidRequestException) OrigErr() error {
 11617  	return nil
 11618  }
 11619  
 11620  func (s *InvalidRequestException) Error() string {
 11621  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 11622  }
 11623  
 11624  // Status code returns the HTTP status code for the request's response error.
 11625  func (s *InvalidRequestException) StatusCode() int {
 11626  	return s.RespMetadata.StatusCode
 11627  }
 11628  
 11629  // RequestID returns the service's response RequestID for request.
 11630  func (s *InvalidRequestException) RequestID() string {
 11631  	return s.RespMetadata.RequestID
 11632  }
 11633  
 11634  // A description of a cluster (job flow).
 11635  type JobFlowDetail struct {
 11636  	_ struct{} `type:"structure"`
 11637  
 11638  	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
 11639  	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
 11640  	AmiVersion *string `type:"string"`
 11641  
 11642  	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
 11643  	// The IAM role provides a way for the automatic scaling feature to get the
 11644  	// required permissions it needs to launch and terminate EC2 instances in an
 11645  	// instance group.
 11646  	AutoScalingRole *string `type:"string"`
 11647  
 11648  	// A list of the bootstrap actions run by the job flow.
 11649  	BootstrapActions []*BootstrapActionDetail `type:"list"`
 11650  
 11651  	// Describes the execution status of the job flow.
 11652  	//
 11653  	// ExecutionStatusDetail is a required field
 11654  	ExecutionStatusDetail *JobFlowExecutionStatusDetail `type:"structure" required:"true"`
 11655  
 11656  	// Describes the Amazon EC2 instances of the job flow.
 11657  	//
 11658  	// Instances is a required field
 11659  	Instances *JobFlowInstancesDetail `type:"structure" required:"true"`
 11660  
 11661  	// The job flow identifier.
 11662  	//
 11663  	// JobFlowId is a required field
 11664  	JobFlowId *string `type:"string" required:"true"`
 11665  
 11666  	// The IAM role that was specified when the job flow was launched. The EC2 instances
 11667  	// of the job flow assume this role.
 11668  	JobFlowRole *string `type:"string"`
 11669  
 11670  	// The KMS key used for encrypting log files. This attribute is only available
 11671  	// with EMR version 5.30.0 and later, excluding EMR 6.0.0.
 11672  	LogEncryptionKmsKeyId *string `type:"string"`
 11673  
 11674  	// The location in Amazon S3 where log files for the job are stored.
 11675  	LogUri *string `type:"string"`
 11676  
 11677  	// The name of the job flow.
 11678  	//
 11679  	// Name is a required field
 11680  	Name *string `type:"string" required:"true"`
 11681  
 11682  	// The way that individual Amazon EC2 instances terminate when an automatic
 11683  	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
 11684  	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
 11685  	// regardless of when the request to terminate the instance was submitted. This
 11686  	// option is only available with Amazon EMR 5.1.0 and later and is the default
 11687  	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
 11688  	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
 11689  	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
 11690  	// With either behavior, Amazon EMR removes the least active nodes first and
 11691  	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
 11692  	// available only in Amazon EMR version 4.1.0 and later, and is the default
 11693  	// for versions of Amazon EMR earlier than 5.1.0.
 11694  	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
 11695  
 11696  	// The IAM role that is assumed by the Amazon EMR service to access Amazon Web
 11697  	// Services resources on your behalf.
 11698  	ServiceRole *string `type:"string"`
 11699  
 11700  	// A list of steps run by the job flow.
 11701  	Steps []*StepDetail `type:"list"`
 11702  
 11703  	// A list of strings set by third-party software when the job flow is launched.
 11704  	// If you are not using third-party software to manage the job flow, this value
 11705  	// is empty.
 11706  	SupportedProducts []*string `type:"list"`
 11707  
 11708  	// Indicates whether the cluster is visible to IAM principals in the Amazon
 11709  	// Web Services account associated with the cluster. When true, IAM principals
 11710  	// in the Amazon Web Services account can perform EMR cluster actions that their
 11711  	// IAM policies allow. When false, only the IAM principal that created the cluster
 11712  	// and the Amazon Web Services account root user can perform EMR actions, regardless
 11713  	// of IAM permissions policies attached to other IAM principals.
 11714  	//
 11715  	// The default value is true if a value is not provided when creating a cluster
 11716  	// using the EMR API RunJobFlow command, the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
 11717  	// command, or the Amazon Web Services Management Console. IAM principals that
 11718  	// are authorized to perform actions on the cluster can use the SetVisibleToAllUsers
 11719  	// action to change the value on a running cluster. For more information, see
 11720  	// Understanding the EMR Cluster VisibleToAllUsers Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
 11721  	// in the Amazon EMRManagement Guide.
 11722  	VisibleToAllUsers *bool `type:"boolean"`
 11723  }
 11724  
 11725  // String returns the string representation.
 11726  //
 11727  // API parameter values that are decorated as "sensitive" in the API will not
 11728  // be included in the string output. The member name will be present, but the
 11729  // value will be replaced with "sensitive".
 11730  func (s JobFlowDetail) String() string {
 11731  	return awsutil.Prettify(s)
 11732  }
 11733  
 11734  // GoString returns the string representation.
 11735  //
 11736  // API parameter values that are decorated as "sensitive" in the API will not
 11737  // be included in the string output. The member name will be present, but the
 11738  // value will be replaced with "sensitive".
 11739  func (s JobFlowDetail) GoString() string {
 11740  	return s.String()
 11741  }
 11742  
 11743  // SetAmiVersion sets the AmiVersion field's value.
 11744  func (s *JobFlowDetail) SetAmiVersion(v string) *JobFlowDetail {
 11745  	s.AmiVersion = &v
 11746  	return s
 11747  }
 11748  
 11749  // SetAutoScalingRole sets the AutoScalingRole field's value.
 11750  func (s *JobFlowDetail) SetAutoScalingRole(v string) *JobFlowDetail {
 11751  	s.AutoScalingRole = &v
 11752  	return s
 11753  }
 11754  
 11755  // SetBootstrapActions sets the BootstrapActions field's value.
 11756  func (s *JobFlowDetail) SetBootstrapActions(v []*BootstrapActionDetail) *JobFlowDetail {
 11757  	s.BootstrapActions = v
 11758  	return s
 11759  }
 11760  
 11761  // SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
 11762  func (s *JobFlowDetail) SetExecutionStatusDetail(v *JobFlowExecutionStatusDetail) *JobFlowDetail {
 11763  	s.ExecutionStatusDetail = v
 11764  	return s
 11765  }
 11766  
 11767  // SetInstances sets the Instances field's value.
 11768  func (s *JobFlowDetail) SetInstances(v *JobFlowInstancesDetail) *JobFlowDetail {
 11769  	s.Instances = v
 11770  	return s
 11771  }
 11772  
 11773  // SetJobFlowId sets the JobFlowId field's value.
 11774  func (s *JobFlowDetail) SetJobFlowId(v string) *JobFlowDetail {
 11775  	s.JobFlowId = &v
 11776  	return s
 11777  }
 11778  
 11779  // SetJobFlowRole sets the JobFlowRole field's value.
 11780  func (s *JobFlowDetail) SetJobFlowRole(v string) *JobFlowDetail {
 11781  	s.JobFlowRole = &v
 11782  	return s
 11783  }
 11784  
 11785  // SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
 11786  func (s *JobFlowDetail) SetLogEncryptionKmsKeyId(v string) *JobFlowDetail {
 11787  	s.LogEncryptionKmsKeyId = &v
 11788  	return s
 11789  }
 11790  
 11791  // SetLogUri sets the LogUri field's value.
 11792  func (s *JobFlowDetail) SetLogUri(v string) *JobFlowDetail {
 11793  	s.LogUri = &v
 11794  	return s
 11795  }
 11796  
 11797  // SetName sets the Name field's value.
 11798  func (s *JobFlowDetail) SetName(v string) *JobFlowDetail {
 11799  	s.Name = &v
 11800  	return s
 11801  }
 11802  
 11803  // SetScaleDownBehavior sets the ScaleDownBehavior field's value.
 11804  func (s *JobFlowDetail) SetScaleDownBehavior(v string) *JobFlowDetail {
 11805  	s.ScaleDownBehavior = &v
 11806  	return s
 11807  }
 11808  
 11809  // SetServiceRole sets the ServiceRole field's value.
 11810  func (s *JobFlowDetail) SetServiceRole(v string) *JobFlowDetail {
 11811  	s.ServiceRole = &v
 11812  	return s
 11813  }
 11814  
 11815  // SetSteps sets the Steps field's value.
 11816  func (s *JobFlowDetail) SetSteps(v []*StepDetail) *JobFlowDetail {
 11817  	s.Steps = v
 11818  	return s
 11819  }
 11820  
 11821  // SetSupportedProducts sets the SupportedProducts field's value.
 11822  func (s *JobFlowDetail) SetSupportedProducts(v []*string) *JobFlowDetail {
 11823  	s.SupportedProducts = v
 11824  	return s
 11825  }
 11826  
 11827  // SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
 11828  func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail {
 11829  	s.VisibleToAllUsers = &v
 11830  	return s
 11831  }
 11832  
 11833  // Describes the status of the cluster (job flow).
 11834  type JobFlowExecutionStatusDetail struct {
 11835  	_ struct{} `type:"structure"`
 11836  
 11837  	// The creation date and time of the job flow.
 11838  	//
 11839  	// CreationDateTime is a required field
 11840  	CreationDateTime *time.Time `type:"timestamp" required:"true"`
 11841  
 11842  	// The completion date and time of the job flow.
 11843  	EndDateTime *time.Time `type:"timestamp"`
 11844  
 11845  	// Description of the job flow last changed state.
 11846  	LastStateChangeReason *string `type:"string"`
 11847  
 11848  	// The date and time when the job flow was ready to start running bootstrap
 11849  	// actions.
 11850  	ReadyDateTime *time.Time `type:"timestamp"`
 11851  
 11852  	// The start date and time of the job flow.
 11853  	StartDateTime *time.Time `type:"timestamp"`
 11854  
 11855  	// The state of the job flow.
 11856  	//
 11857  	// State is a required field
 11858  	State *string `type:"string" required:"true" enum:"JobFlowExecutionState"`
 11859  }
 11860  
 11861  // String returns the string representation.
 11862  //
 11863  // API parameter values that are decorated as "sensitive" in the API will not
 11864  // be included in the string output. The member name will be present, but the
 11865  // value will be replaced with "sensitive".
 11866  func (s JobFlowExecutionStatusDetail) String() string {
 11867  	return awsutil.Prettify(s)
 11868  }
 11869  
 11870  // GoString returns the string representation.
 11871  //
 11872  // API parameter values that are decorated as "sensitive" in the API will not
 11873  // be included in the string output. The member name will be present, but the
 11874  // value will be replaced with "sensitive".
 11875  func (s JobFlowExecutionStatusDetail) GoString() string {
 11876  	return s.String()
 11877  }
 11878  
 11879  // SetCreationDateTime sets the CreationDateTime field's value.
 11880  func (s *JobFlowExecutionStatusDetail) SetCreationDateTime(v time.Time) *JobFlowExecutionStatusDetail {
 11881  	s.CreationDateTime = &v
 11882  	return s
 11883  }
 11884  
 11885  // SetEndDateTime sets the EndDateTime field's value.
 11886  func (s *JobFlowExecutionStatusDetail) SetEndDateTime(v time.Time) *JobFlowExecutionStatusDetail {
 11887  	s.EndDateTime = &v
 11888  	return s
 11889  }
 11890  
 11891  // SetLastStateChangeReason sets the LastStateChangeReason field's value.
 11892  func (s *JobFlowExecutionStatusDetail) SetLastStateChangeReason(v string) *JobFlowExecutionStatusDetail {
 11893  	s.LastStateChangeReason = &v
 11894  	return s
 11895  }
 11896  
 11897  // SetReadyDateTime sets the ReadyDateTime field's value.
 11898  func (s *JobFlowExecutionStatusDetail) SetReadyDateTime(v time.Time) *JobFlowExecutionStatusDetail {
 11899  	s.ReadyDateTime = &v
 11900  	return s
 11901  }
 11902  
 11903  // SetStartDateTime sets the StartDateTime field's value.
 11904  func (s *JobFlowExecutionStatusDetail) SetStartDateTime(v time.Time) *JobFlowExecutionStatusDetail {
 11905  	s.StartDateTime = &v
 11906  	return s
 11907  }
 11908  
 11909  // SetState sets the State field's value.
 11910  func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatusDetail {
 11911  	s.State = &v
 11912  	return s
 11913  }
 11914  
 11915  // A description of the Amazon EC2 instance on which the cluster (job flow)
 11916  // runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or
 11917  // InstanceFleets. They cannot be used together. You may also have MasterInstanceType,
 11918  // SlaveInstanceType, and InstanceCount (all three must be present), but we
 11919  // don't recommend this configuration.
 11920  type JobFlowInstancesConfig struct {
 11921  	_ struct{} `type:"structure"`
 11922  
 11923  	// A list of additional Amazon EC2 security group IDs for the master node.
 11924  	AdditionalMasterSecurityGroups []*string `type:"list"`
 11925  
 11926  	// A list of additional Amazon EC2 security group IDs for the core and task
 11927  	// nodes.
 11928  	AdditionalSlaveSecurityGroups []*string `type:"list"`
 11929  
 11930  	// The name of the EC2 key pair that can be used to connect to the master node
 11931  	// using SSH as the user called "hadoop."
 11932  	Ec2KeyName *string `type:"string"`
 11933  
 11934  	// Applies to clusters that use the uniform instance group configuration. To
 11935  	// launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this
 11936  	// parameter to the identifier of the Amazon VPC subnet where you want the cluster
 11937  	// to launch. If you do not specify this value and your account supports EC2-Classic,
 11938  	// the cluster launches in EC2-Classic.
 11939  	Ec2SubnetId *string `type:"string"`
 11940  
 11941  	// Applies to clusters that use the instance fleet configuration. When multiple
 11942  	// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances
 11943  	// in the optimal subnet.
 11944  	//
 11945  	// The instance fleet configuration is available only in Amazon EMR versions
 11946  	// 4.8.0 and later, excluding 5.0.x versions.
 11947  	Ec2SubnetIds []*string `type:"list"`
 11948  
 11949  	// The identifier of the Amazon EC2 security group for the master node. If you
 11950  	// specify EmrManagedMasterSecurityGroup, you must also specify EmrManagedSlaveSecurityGroup.
 11951  	EmrManagedMasterSecurityGroup *string `type:"string"`
 11952  
 11953  	// The identifier of the Amazon EC2 security group for the core and task nodes.
 11954  	// If you specify EmrManagedSlaveSecurityGroup, you must also specify EmrManagedMasterSecurityGroup.
 11955  	EmrManagedSlaveSecurityGroup *string `type:"string"`
 11956  
 11957  	// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop
 11958  	// version for the cluster. Valid inputs are "0.18" (no longer maintained),
 11959  	// "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3",
 11960  	// "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is
 11961  	// used, unless the AmiVersion parameter is set in the RunJobFlow call, in which
 11962  	// case the default version of Hadoop for that AMI version is used.
 11963  	HadoopVersion *string `type:"string"`
 11964  
 11965  	// The number of EC2 instances in the cluster.
 11966  	InstanceCount *int64 `type:"integer"`
 11967  
 11968  	//
 11969  	// The instance fleet configuration is available only in Amazon EMR versions
 11970  	// 4.8.0 and later, excluding 5.0.x versions.
 11971  	//
 11972  	// Describes the EC2 instances and instance configurations for clusters that
 11973  	// use the instance fleet configuration.
 11974  	InstanceFleets []*InstanceFleetConfig `type:"list"`
 11975  
 11976  	// Configuration for the instance groups in a cluster.
 11977  	InstanceGroups []*InstanceGroupConfig `type:"list"`
 11978  
 11979  	// Specifies whether the cluster should remain available after completing all
 11980  	// steps. Defaults to true. For more information about configuring cluster termination,
 11981  	// see Control Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html)
 11982  	// in the EMR Management Guide.
 11983  	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
 11984  
 11985  	// The EC2 instance type of the master node.
 11986  	MasterInstanceType *string `min:"1" type:"string"`
 11987  
 11988  	// The Availability Zone in which the cluster runs.
 11989  	Placement *PlacementType `type:"structure"`
 11990  
 11991  	// The identifier of the Amazon EC2 security group for the Amazon EMR service
 11992  	// to access clusters in VPC private subnets.
 11993  	ServiceAccessSecurityGroup *string `type:"string"`
 11994  
 11995  	// The EC2 instance type of the core and task nodes.
 11996  	SlaveInstanceType *string `min:"1" type:"string"`
 11997  
 11998  	// Specifies whether to lock the cluster to prevent the Amazon EC2 instances
 11999  	// from being terminated by API call, user intervention, or in the event of
 12000  	// a job-flow error.
 12001  	TerminationProtected *bool `type:"boolean"`
 12002  }
 12003  
 12004  // String returns the string representation.
 12005  //
 12006  // API parameter values that are decorated as "sensitive" in the API will not
 12007  // be included in the string output. The member name will be present, but the
 12008  // value will be replaced with "sensitive".
 12009  func (s JobFlowInstancesConfig) String() string {
 12010  	return awsutil.Prettify(s)
 12011  }
 12012  
 12013  // GoString returns the string representation.
 12014  //
 12015  // API parameter values that are decorated as "sensitive" in the API will not
 12016  // be included in the string output. The member name will be present, but the
 12017  // value will be replaced with "sensitive".
 12018  func (s JobFlowInstancesConfig) GoString() string {
 12019  	return s.String()
 12020  }
 12021  
 12022  // Validate inspects the fields of the type to determine if they are valid.
 12023  func (s *JobFlowInstancesConfig) Validate() error {
 12024  	invalidParams := request.ErrInvalidParams{Context: "JobFlowInstancesConfig"}
 12025  	if s.MasterInstanceType != nil && len(*s.MasterInstanceType) < 1 {
 12026  		invalidParams.Add(request.NewErrParamMinLen("MasterInstanceType", 1))
 12027  	}
 12028  	if s.SlaveInstanceType != nil && len(*s.SlaveInstanceType) < 1 {
 12029  		invalidParams.Add(request.NewErrParamMinLen("SlaveInstanceType", 1))
 12030  	}
 12031  	if s.InstanceFleets != nil {
 12032  		for i, v := range s.InstanceFleets {
 12033  			if v == nil {
 12034  				continue
 12035  			}
 12036  			if err := v.Validate(); err != nil {
 12037  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceFleets", i), err.(request.ErrInvalidParams))
 12038  			}
 12039  		}
 12040  	}
 12041  	if s.InstanceGroups != nil {
 12042  		for i, v := range s.InstanceGroups {
 12043  			if v == nil {
 12044  				continue
 12045  			}
 12046  			if err := v.Validate(); err != nil {
 12047  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
 12048  			}
 12049  		}
 12050  	}
 12051  
 12052  	if invalidParams.Len() > 0 {
 12053  		return invalidParams
 12054  	}
 12055  	return nil
 12056  }
 12057  
 12058  // SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
 12059  func (s *JobFlowInstancesConfig) SetAdditionalMasterSecurityGroups(v []*string) *JobFlowInstancesConfig {
 12060  	s.AdditionalMasterSecurityGroups = v
 12061  	return s
 12062  }
 12063  
 12064  // SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
 12065  func (s *JobFlowInstancesConfig) SetAdditionalSlaveSecurityGroups(v []*string) *JobFlowInstancesConfig {
 12066  	s.AdditionalSlaveSecurityGroups = v
 12067  	return s
 12068  }
 12069  
 12070  // SetEc2KeyName sets the Ec2KeyName field's value.
 12071  func (s *JobFlowInstancesConfig) SetEc2KeyName(v string) *JobFlowInstancesConfig {
 12072  	s.Ec2KeyName = &v
 12073  	return s
 12074  }
 12075  
 12076  // SetEc2SubnetId sets the Ec2SubnetId field's value.
 12077  func (s *JobFlowInstancesConfig) SetEc2SubnetId(v string) *JobFlowInstancesConfig {
 12078  	s.Ec2SubnetId = &v
 12079  	return s
 12080  }
 12081  
 12082  // SetEc2SubnetIds sets the Ec2SubnetIds field's value.
 12083  func (s *JobFlowInstancesConfig) SetEc2SubnetIds(v []*string) *JobFlowInstancesConfig {
 12084  	s.Ec2SubnetIds = v
 12085  	return s
 12086  }
 12087  
 12088  // SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
 12089  func (s *JobFlowInstancesConfig) SetEmrManagedMasterSecurityGroup(v string) *JobFlowInstancesConfig {
 12090  	s.EmrManagedMasterSecurityGroup = &v
 12091  	return s
 12092  }
 12093  
 12094  // SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
 12095  func (s *JobFlowInstancesConfig) SetEmrManagedSlaveSecurityGroup(v string) *JobFlowInstancesConfig {
 12096  	s.EmrManagedSlaveSecurityGroup = &v
 12097  	return s
 12098  }
 12099  
 12100  // SetHadoopVersion sets the HadoopVersion field's value.
 12101  func (s *JobFlowInstancesConfig) SetHadoopVersion(v string) *JobFlowInstancesConfig {
 12102  	s.HadoopVersion = &v
 12103  	return s
 12104  }
 12105  
 12106  // SetInstanceCount sets the InstanceCount field's value.
 12107  func (s *JobFlowInstancesConfig) SetInstanceCount(v int64) *JobFlowInstancesConfig {
 12108  	s.InstanceCount = &v
 12109  	return s
 12110  }
 12111  
 12112  // SetInstanceFleets sets the InstanceFleets field's value.
 12113  func (s *JobFlowInstancesConfig) SetInstanceFleets(v []*InstanceFleetConfig) *JobFlowInstancesConfig {
 12114  	s.InstanceFleets = v
 12115  	return s
 12116  }
 12117  
 12118  // SetInstanceGroups sets the InstanceGroups field's value.
 12119  func (s *JobFlowInstancesConfig) SetInstanceGroups(v []*InstanceGroupConfig) *JobFlowInstancesConfig {
 12120  	s.InstanceGroups = v
 12121  	return s
 12122  }
 12123  
 12124  // SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
 12125  func (s *JobFlowInstancesConfig) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesConfig {
 12126  	s.KeepJobFlowAliveWhenNoSteps = &v
 12127  	return s
 12128  }
 12129  
 12130  // SetMasterInstanceType sets the MasterInstanceType field's value.
 12131  func (s *JobFlowInstancesConfig) SetMasterInstanceType(v string) *JobFlowInstancesConfig {
 12132  	s.MasterInstanceType = &v
 12133  	return s
 12134  }
 12135  
 12136  // SetPlacement sets the Placement field's value.
 12137  func (s *JobFlowInstancesConfig) SetPlacement(v *PlacementType) *JobFlowInstancesConfig {
 12138  	s.Placement = v
 12139  	return s
 12140  }
 12141  
 12142  // SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
 12143  func (s *JobFlowInstancesConfig) SetServiceAccessSecurityGroup(v string) *JobFlowInstancesConfig {
 12144  	s.ServiceAccessSecurityGroup = &v
 12145  	return s
 12146  }
 12147  
 12148  // SetSlaveInstanceType sets the SlaveInstanceType field's value.
 12149  func (s *JobFlowInstancesConfig) SetSlaveInstanceType(v string) *JobFlowInstancesConfig {
 12150  	s.SlaveInstanceType = &v
 12151  	return s
 12152  }
 12153  
 12154  // SetTerminationProtected sets the TerminationProtected field's value.
 12155  func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstancesConfig {
 12156  	s.TerminationProtected = &v
 12157  	return s
 12158  }
 12159  
 12160  // Specify the type of Amazon EC2 instances that the cluster (job flow) runs
 12161  // on.
 12162  type JobFlowInstancesDetail struct {
 12163  	_ struct{} `type:"structure"`
 12164  
 12165  	// The name of an Amazon EC2 key pair that can be used to connect to the master
 12166  	// node using SSH.
 12167  	Ec2KeyName *string `type:"string"`
 12168  
 12169  	// For clusters launched within Amazon Virtual Private Cloud, this is the identifier
 12170  	// of the subnet where the cluster was launched.
 12171  	Ec2SubnetId *string `type:"string"`
 12172  
 12173  	// The Hadoop version for the cluster.
 12174  	HadoopVersion *string `type:"string"`
 12175  
 12176  	// The number of Amazon EC2 instances in the cluster. If the value is 1, the
 12177  	// same instance serves as both the master and core and task node. If the value
 12178  	// is greater than 1, one instance is the master node and all others are core
 12179  	// and task nodes.
 12180  	//
 12181  	// InstanceCount is a required field
 12182  	InstanceCount *int64 `type:"integer" required:"true"`
 12183  
 12184  	// Details about the instance groups in a cluster.
 12185  	InstanceGroups []*InstanceGroupDetail `type:"list"`
 12186  
 12187  	// Specifies whether the cluster should remain available after completing all
 12188  	// steps.
 12189  	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
 12190  
 12191  	// The Amazon EC2 instance identifier of the master node.
 12192  	MasterInstanceId *string `type:"string"`
 12193  
 12194  	// The Amazon EC2 master node instance type.
 12195  	//
 12196  	// MasterInstanceType is a required field
 12197  	MasterInstanceType *string `min:"1" type:"string" required:"true"`
 12198  
 12199  	// The DNS name of the master node. If the cluster is on a private subnet, this
 12200  	// is the private DNS name. On a public subnet, this is the public DNS name.
 12201  	MasterPublicDnsName *string `type:"string"`
 12202  
 12203  	// An approximation of the cost of the cluster, represented in m1.small/hours.
 12204  	// This value is increased one time for every hour that an m1.small instance
 12205  	// runs. Larger instances are weighted more heavily, so an Amazon EC2 instance
 12206  	// that is roughly four times more expensive would result in the normalized
 12207  	// instance hours being increased incrementally four times. This result is only
 12208  	// an approximation and does not reflect the actual billing rate.
 12209  	NormalizedInstanceHours *int64 `type:"integer"`
 12210  
 12211  	// The Amazon EC2 Availability Zone for the cluster.
 12212  	Placement *PlacementType `type:"structure"`
 12213  
 12214  	// The Amazon EC2 core and task node instance type.
 12215  	//
 12216  	// SlaveInstanceType is a required field
 12217  	SlaveInstanceType *string `min:"1" type:"string" required:"true"`
 12218  
 12219  	// Specifies whether the Amazon EC2 instances in the cluster are protected from
 12220  	// termination by API calls, user intervention, or in the event of a job-flow
 12221  	// error.
 12222  	TerminationProtected *bool `type:"boolean"`
 12223  }
 12224  
 12225  // String returns the string representation.
 12226  //
 12227  // API parameter values that are decorated as "sensitive" in the API will not
 12228  // be included in the string output. The member name will be present, but the
 12229  // value will be replaced with "sensitive".
 12230  func (s JobFlowInstancesDetail) String() string {
 12231  	return awsutil.Prettify(s)
 12232  }
 12233  
 12234  // GoString returns the string representation.
 12235  //
 12236  // API parameter values that are decorated as "sensitive" in the API will not
 12237  // be included in the string output. The member name will be present, but the
 12238  // value will be replaced with "sensitive".
 12239  func (s JobFlowInstancesDetail) GoString() string {
 12240  	return s.String()
 12241  }
 12242  
 12243  // SetEc2KeyName sets the Ec2KeyName field's value.
 12244  func (s *JobFlowInstancesDetail) SetEc2KeyName(v string) *JobFlowInstancesDetail {
 12245  	s.Ec2KeyName = &v
 12246  	return s
 12247  }
 12248  
 12249  // SetEc2SubnetId sets the Ec2SubnetId field's value.
 12250  func (s *JobFlowInstancesDetail) SetEc2SubnetId(v string) *JobFlowInstancesDetail {
 12251  	s.Ec2SubnetId = &v
 12252  	return s
 12253  }
 12254  
 12255  // SetHadoopVersion sets the HadoopVersion field's value.
 12256  func (s *JobFlowInstancesDetail) SetHadoopVersion(v string) *JobFlowInstancesDetail {
 12257  	s.HadoopVersion = &v
 12258  	return s
 12259  }
 12260  
 12261  // SetInstanceCount sets the InstanceCount field's value.
 12262  func (s *JobFlowInstancesDetail) SetInstanceCount(v int64) *JobFlowInstancesDetail {
 12263  	s.InstanceCount = &v
 12264  	return s
 12265  }
 12266  
 12267  // SetInstanceGroups sets the InstanceGroups field's value.
 12268  func (s *JobFlowInstancesDetail) SetInstanceGroups(v []*InstanceGroupDetail) *JobFlowInstancesDetail {
 12269  	s.InstanceGroups = v
 12270  	return s
 12271  }
 12272  
 12273  // SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
 12274  func (s *JobFlowInstancesDetail) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesDetail {
 12275  	s.KeepJobFlowAliveWhenNoSteps = &v
 12276  	return s
 12277  }
 12278  
 12279  // SetMasterInstanceId sets the MasterInstanceId field's value.
 12280  func (s *JobFlowInstancesDetail) SetMasterInstanceId(v string) *JobFlowInstancesDetail {
 12281  	s.MasterInstanceId = &v
 12282  	return s
 12283  }
 12284  
 12285  // SetMasterInstanceType sets the MasterInstanceType field's value.
 12286  func (s *JobFlowInstancesDetail) SetMasterInstanceType(v string) *JobFlowInstancesDetail {
 12287  	s.MasterInstanceType = &v
 12288  	return s
 12289  }
 12290  
 12291  // SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
 12292  func (s *JobFlowInstancesDetail) SetMasterPublicDnsName(v string) *JobFlowInstancesDetail {
 12293  	s.MasterPublicDnsName = &v
 12294  	return s
 12295  }
 12296  
 12297  // SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
 12298  func (s *JobFlowInstancesDetail) SetNormalizedInstanceHours(v int64) *JobFlowInstancesDetail {
 12299  	s.NormalizedInstanceHours = &v
 12300  	return s
 12301  }
 12302  
 12303  // SetPlacement sets the Placement field's value.
 12304  func (s *JobFlowInstancesDetail) SetPlacement(v *PlacementType) *JobFlowInstancesDetail {
 12305  	s.Placement = v
 12306  	return s
 12307  }
 12308  
 12309  // SetSlaveInstanceType sets the SlaveInstanceType field's value.
 12310  func (s *JobFlowInstancesDetail) SetSlaveInstanceType(v string) *JobFlowInstancesDetail {
 12311  	s.SlaveInstanceType = &v
 12312  	return s
 12313  }
 12314  
 12315  // SetTerminationProtected sets the TerminationProtected field's value.
 12316  func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstancesDetail {
 12317  	s.TerminationProtected = &v
 12318  	return s
 12319  }
 12320  
 12321  // Attributes for Kerberos configuration when Kerberos authentication is enabled
 12322  // using a security configuration. For more information see Use Kerberos Authentication
 12323  // (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
 12324  // in the Amazon EMR Management Guide.
 12325  type KerberosAttributes struct {
 12326  	_ struct{} `type:"structure"`
 12327  
 12328  	// The Active Directory password for ADDomainJoinUser.
 12329  	ADDomainJoinPassword *string `type:"string"`
 12330  
 12331  	// Required only when establishing a cross-realm trust with an Active Directory
 12332  	// domain. A user with sufficient privileges to join resources to the domain.
 12333  	ADDomainJoinUser *string `type:"string"`
 12334  
 12335  	// Required only when establishing a cross-realm trust with a KDC in a different
 12336  	// realm. The cross-realm principal password, which must be identical across
 12337  	// realms.
 12338  	CrossRealmTrustPrincipalPassword *string `type:"string"`
 12339  
 12340  	// The password used within the cluster for the kadmin service on the cluster-dedicated
 12341  	// KDC, which maintains Kerberos principals, password policies, and keytabs
 12342  	// for the cluster.
 12343  	//
 12344  	// KdcAdminPassword is a required field
 12345  	KdcAdminPassword *string `type:"string" required:"true"`
 12346  
 12347  	// The name of the Kerberos realm to which all nodes in a cluster belong. For
 12348  	// example, EC2.INTERNAL.
 12349  	//
 12350  	// Realm is a required field
 12351  	Realm *string `type:"string" required:"true"`
 12352  }
 12353  
 12354  // String returns the string representation.
 12355  //
 12356  // API parameter values that are decorated as "sensitive" in the API will not
 12357  // be included in the string output. The member name will be present, but the
 12358  // value will be replaced with "sensitive".
 12359  func (s KerberosAttributes) String() string {
 12360  	return awsutil.Prettify(s)
 12361  }
 12362  
 12363  // GoString returns the string representation.
 12364  //
 12365  // API parameter values that are decorated as "sensitive" in the API will not
 12366  // be included in the string output. The member name will be present, but the
 12367  // value will be replaced with "sensitive".
 12368  func (s KerberosAttributes) GoString() string {
 12369  	return s.String()
 12370  }
 12371  
 12372  // Validate inspects the fields of the type to determine if they are valid.
 12373  func (s *KerberosAttributes) Validate() error {
 12374  	invalidParams := request.ErrInvalidParams{Context: "KerberosAttributes"}
 12375  	if s.KdcAdminPassword == nil {
 12376  		invalidParams.Add(request.NewErrParamRequired("KdcAdminPassword"))
 12377  	}
 12378  	if s.Realm == nil {
 12379  		invalidParams.Add(request.NewErrParamRequired("Realm"))
 12380  	}
 12381  
 12382  	if invalidParams.Len() > 0 {
 12383  		return invalidParams
 12384  	}
 12385  	return nil
 12386  }
 12387  
 12388  // SetADDomainJoinPassword sets the ADDomainJoinPassword field's value.
 12389  func (s *KerberosAttributes) SetADDomainJoinPassword(v string) *KerberosAttributes {
 12390  	s.ADDomainJoinPassword = &v
 12391  	return s
 12392  }
 12393  
 12394  // SetADDomainJoinUser sets the ADDomainJoinUser field's value.
 12395  func (s *KerberosAttributes) SetADDomainJoinUser(v string) *KerberosAttributes {
 12396  	s.ADDomainJoinUser = &v
 12397  	return s
 12398  }
 12399  
 12400  // SetCrossRealmTrustPrincipalPassword sets the CrossRealmTrustPrincipalPassword field's value.
 12401  func (s *KerberosAttributes) SetCrossRealmTrustPrincipalPassword(v string) *KerberosAttributes {
 12402  	s.CrossRealmTrustPrincipalPassword = &v
 12403  	return s
 12404  }
 12405  
 12406  // SetKdcAdminPassword sets the KdcAdminPassword field's value.
 12407  func (s *KerberosAttributes) SetKdcAdminPassword(v string) *KerberosAttributes {
 12408  	s.KdcAdminPassword = &v
 12409  	return s
 12410  }
 12411  
 12412  // SetRealm sets the Realm field's value.
 12413  func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes {
 12414  	s.Realm = &v
 12415  	return s
 12416  }
 12417  
 12418  // A key-value pair.
 12419  type KeyValue struct {
 12420  	_ struct{} `type:"structure"`
 12421  
 12422  	// The unique identifier of a key-value pair.
 12423  	Key *string `type:"string"`
 12424  
 12425  	// The value part of the identified key.
 12426  	Value *string `type:"string"`
 12427  }
 12428  
 12429  // String returns the string representation.
 12430  //
 12431  // API parameter values that are decorated as "sensitive" in the API will not
 12432  // be included in the string output. The member name will be present, but the
 12433  // value will be replaced with "sensitive".
 12434  func (s KeyValue) String() string {
 12435  	return awsutil.Prettify(s)
 12436  }
 12437  
 12438  // GoString returns the string representation.
 12439  //
 12440  // API parameter values that are decorated as "sensitive" in the API will not
 12441  // be included in the string output. The member name will be present, but the
 12442  // value will be replaced with "sensitive".
 12443  func (s KeyValue) GoString() string {
 12444  	return s.String()
 12445  }
 12446  
 12447  // SetKey sets the Key field's value.
 12448  func (s *KeyValue) SetKey(v string) *KeyValue {
 12449  	s.Key = &v
 12450  	return s
 12451  }
 12452  
 12453  // SetValue sets the Value field's value.
 12454  func (s *KeyValue) SetValue(v string) *KeyValue {
 12455  	s.Value = &v
 12456  	return s
 12457  }
 12458  
 12459  // This input determines which bootstrap actions to retrieve.
 12460  type ListBootstrapActionsInput struct {
 12461  	_ struct{} `type:"structure"`
 12462  
 12463  	// The cluster identifier for the bootstrap actions to list.
 12464  	//
 12465  	// ClusterId is a required field
 12466  	ClusterId *string `type:"string" required:"true"`
 12467  
 12468  	// The pagination token that indicates the next set of results to retrieve.
 12469  	Marker *string `type:"string"`
 12470  }
 12471  
 12472  // String returns the string representation.
 12473  //
 12474  // API parameter values that are decorated as "sensitive" in the API will not
 12475  // be included in the string output. The member name will be present, but the
 12476  // value will be replaced with "sensitive".
 12477  func (s ListBootstrapActionsInput) String() string {
 12478  	return awsutil.Prettify(s)
 12479  }
 12480  
 12481  // GoString returns the string representation.
 12482  //
 12483  // API parameter values that are decorated as "sensitive" in the API will not
 12484  // be included in the string output. The member name will be present, but the
 12485  // value will be replaced with "sensitive".
 12486  func (s ListBootstrapActionsInput) GoString() string {
 12487  	return s.String()
 12488  }
 12489  
 12490  // Validate inspects the fields of the type to determine if they are valid.
 12491  func (s *ListBootstrapActionsInput) Validate() error {
 12492  	invalidParams := request.ErrInvalidParams{Context: "ListBootstrapActionsInput"}
 12493  	if s.ClusterId == nil {
 12494  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 12495  	}
 12496  
 12497  	if invalidParams.Len() > 0 {
 12498  		return invalidParams
 12499  	}
 12500  	return nil
 12501  }
 12502  
 12503  // SetClusterId sets the ClusterId field's value.
 12504  func (s *ListBootstrapActionsInput) SetClusterId(v string) *ListBootstrapActionsInput {
 12505  	s.ClusterId = &v
 12506  	return s
 12507  }
 12508  
 12509  // SetMarker sets the Marker field's value.
 12510  func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInput {
 12511  	s.Marker = &v
 12512  	return s
 12513  }
 12514  
 12515  // This output contains the bootstrap actions detail.
 12516  type ListBootstrapActionsOutput struct {
 12517  	_ struct{} `type:"structure"`
 12518  
 12519  	// The bootstrap actions associated with the cluster.
 12520  	BootstrapActions []*Command `type:"list"`
 12521  
 12522  	// The pagination token that indicates the next set of results to retrieve.
 12523  	Marker *string `type:"string"`
 12524  }
 12525  
 12526  // String returns the string representation.
 12527  //
 12528  // API parameter values that are decorated as "sensitive" in the API will not
 12529  // be included in the string output. The member name will be present, but the
 12530  // value will be replaced with "sensitive".
 12531  func (s ListBootstrapActionsOutput) String() string {
 12532  	return awsutil.Prettify(s)
 12533  }
 12534  
 12535  // GoString returns the string representation.
 12536  //
 12537  // API parameter values that are decorated as "sensitive" in the API will not
 12538  // be included in the string output. The member name will be present, but the
 12539  // value will be replaced with "sensitive".
 12540  func (s ListBootstrapActionsOutput) GoString() string {
 12541  	return s.String()
 12542  }
 12543  
 12544  // SetBootstrapActions sets the BootstrapActions field's value.
 12545  func (s *ListBootstrapActionsOutput) SetBootstrapActions(v []*Command) *ListBootstrapActionsOutput {
 12546  	s.BootstrapActions = v
 12547  	return s
 12548  }
 12549  
 12550  // SetMarker sets the Marker field's value.
 12551  func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOutput {
 12552  	s.Marker = &v
 12553  	return s
 12554  }
 12555  
 12556  // This input determines how the ListClusters action filters the list of clusters
 12557  // that it returns.
 12558  type ListClustersInput struct {
 12559  	_ struct{} `type:"structure"`
 12560  
 12561  	// The cluster state filters to apply when listing clusters. Clusters that change
 12562  	// state while this action runs may be not be returned as expected in the list
 12563  	// of clusters.
 12564  	ClusterStates []*string `type:"list"`
 12565  
 12566  	// The creation date and time beginning value filter for listing clusters.
 12567  	CreatedAfter *time.Time `type:"timestamp"`
 12568  
 12569  	// The creation date and time end value filter for listing clusters.
 12570  	CreatedBefore *time.Time `type:"timestamp"`
 12571  
 12572  	// The pagination token that indicates the next set of results to retrieve.
 12573  	Marker *string `type:"string"`
 12574  }
 12575  
 12576  // String returns the string representation.
 12577  //
 12578  // API parameter values that are decorated as "sensitive" in the API will not
 12579  // be included in the string output. The member name will be present, but the
 12580  // value will be replaced with "sensitive".
 12581  func (s ListClustersInput) String() string {
 12582  	return awsutil.Prettify(s)
 12583  }
 12584  
 12585  // GoString returns the string representation.
 12586  //
 12587  // API parameter values that are decorated as "sensitive" in the API will not
 12588  // be included in the string output. The member name will be present, but the
 12589  // value will be replaced with "sensitive".
 12590  func (s ListClustersInput) GoString() string {
 12591  	return s.String()
 12592  }
 12593  
 12594  // SetClusterStates sets the ClusterStates field's value.
 12595  func (s *ListClustersInput) SetClusterStates(v []*string) *ListClustersInput {
 12596  	s.ClusterStates = v
 12597  	return s
 12598  }
 12599  
 12600  // SetCreatedAfter sets the CreatedAfter field's value.
 12601  func (s *ListClustersInput) SetCreatedAfter(v time.Time) *ListClustersInput {
 12602  	s.CreatedAfter = &v
 12603  	return s
 12604  }
 12605  
 12606  // SetCreatedBefore sets the CreatedBefore field's value.
 12607  func (s *ListClustersInput) SetCreatedBefore(v time.Time) *ListClustersInput {
 12608  	s.CreatedBefore = &v
 12609  	return s
 12610  }
 12611  
 12612  // SetMarker sets the Marker field's value.
 12613  func (s *ListClustersInput) SetMarker(v string) *ListClustersInput {
 12614  	s.Marker = &v
 12615  	return s
 12616  }
 12617  
 12618  // This contains a ClusterSummaryList with the cluster details; for example,
 12619  // the cluster IDs, names, and status.
 12620  type ListClustersOutput struct {
 12621  	_ struct{} `type:"structure"`
 12622  
 12623  	// The list of clusters for the account based on the given filters.
 12624  	Clusters []*ClusterSummary `type:"list"`
 12625  
 12626  	// The pagination token that indicates the next set of results to retrieve.
 12627  	Marker *string `type:"string"`
 12628  }
 12629  
 12630  // String returns the string representation.
 12631  //
 12632  // API parameter values that are decorated as "sensitive" in the API will not
 12633  // be included in the string output. The member name will be present, but the
 12634  // value will be replaced with "sensitive".
 12635  func (s ListClustersOutput) String() string {
 12636  	return awsutil.Prettify(s)
 12637  }
 12638  
 12639  // GoString returns the string representation.
 12640  //
 12641  // API parameter values that are decorated as "sensitive" in the API will not
 12642  // be included in the string output. The member name will be present, but the
 12643  // value will be replaced with "sensitive".
 12644  func (s ListClustersOutput) GoString() string {
 12645  	return s.String()
 12646  }
 12647  
 12648  // SetClusters sets the Clusters field's value.
 12649  func (s *ListClustersOutput) SetClusters(v []*ClusterSummary) *ListClustersOutput {
 12650  	s.Clusters = v
 12651  	return s
 12652  }
 12653  
 12654  // SetMarker sets the Marker field's value.
 12655  func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput {
 12656  	s.Marker = &v
 12657  	return s
 12658  }
 12659  
 12660  type ListInstanceFleetsInput struct {
 12661  	_ struct{} `type:"structure"`
 12662  
 12663  	// The unique identifier of the cluster.
 12664  	//
 12665  	// ClusterId is a required field
 12666  	ClusterId *string `type:"string" required:"true"`
 12667  
 12668  	// The pagination token that indicates the next set of results to retrieve.
 12669  	Marker *string `type:"string"`
 12670  }
 12671  
 12672  // String returns the string representation.
 12673  //
 12674  // API parameter values that are decorated as "sensitive" in the API will not
 12675  // be included in the string output. The member name will be present, but the
 12676  // value will be replaced with "sensitive".
 12677  func (s ListInstanceFleetsInput) String() string {
 12678  	return awsutil.Prettify(s)
 12679  }
 12680  
 12681  // GoString returns the string representation.
 12682  //
 12683  // API parameter values that are decorated as "sensitive" in the API will not
 12684  // be included in the string output. The member name will be present, but the
 12685  // value will be replaced with "sensitive".
 12686  func (s ListInstanceFleetsInput) GoString() string {
 12687  	return s.String()
 12688  }
 12689  
 12690  // Validate inspects the fields of the type to determine if they are valid.
 12691  func (s *ListInstanceFleetsInput) Validate() error {
 12692  	invalidParams := request.ErrInvalidParams{Context: "ListInstanceFleetsInput"}
 12693  	if s.ClusterId == nil {
 12694  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 12695  	}
 12696  
 12697  	if invalidParams.Len() > 0 {
 12698  		return invalidParams
 12699  	}
 12700  	return nil
 12701  }
 12702  
 12703  // SetClusterId sets the ClusterId field's value.
 12704  func (s *ListInstanceFleetsInput) SetClusterId(v string) *ListInstanceFleetsInput {
 12705  	s.ClusterId = &v
 12706  	return s
 12707  }
 12708  
 12709  // SetMarker sets the Marker field's value.
 12710  func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput {
 12711  	s.Marker = &v
 12712  	return s
 12713  }
 12714  
 12715  type ListInstanceFleetsOutput struct {
 12716  	_ struct{} `type:"structure"`
 12717  
 12718  	// The list of instance fleets for the cluster and given filters.
 12719  	InstanceFleets []*InstanceFleet `type:"list"`
 12720  
 12721  	// The pagination token that indicates the next set of results to retrieve.
 12722  	Marker *string `type:"string"`
 12723  }
 12724  
 12725  // String returns the string representation.
 12726  //
 12727  // API parameter values that are decorated as "sensitive" in the API will not
 12728  // be included in the string output. The member name will be present, but the
 12729  // value will be replaced with "sensitive".
 12730  func (s ListInstanceFleetsOutput) String() string {
 12731  	return awsutil.Prettify(s)
 12732  }
 12733  
 12734  // GoString returns the string representation.
 12735  //
 12736  // API parameter values that are decorated as "sensitive" in the API will not
 12737  // be included in the string output. The member name will be present, but the
 12738  // value will be replaced with "sensitive".
 12739  func (s ListInstanceFleetsOutput) GoString() string {
 12740  	return s.String()
 12741  }
 12742  
 12743  // SetInstanceFleets sets the InstanceFleets field's value.
 12744  func (s *ListInstanceFleetsOutput) SetInstanceFleets(v []*InstanceFleet) *ListInstanceFleetsOutput {
 12745  	s.InstanceFleets = v
 12746  	return s
 12747  }
 12748  
 12749  // SetMarker sets the Marker field's value.
 12750  func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput {
 12751  	s.Marker = &v
 12752  	return s
 12753  }
 12754  
 12755  // This input determines which instance groups to retrieve.
 12756  type ListInstanceGroupsInput struct {
 12757  	_ struct{} `type:"structure"`
 12758  
 12759  	// The identifier of the cluster for which to list the instance groups.
 12760  	//
 12761  	// ClusterId is a required field
 12762  	ClusterId *string `type:"string" required:"true"`
 12763  
 12764  	// The pagination token that indicates the next set of results to retrieve.
 12765  	Marker *string `type:"string"`
 12766  }
 12767  
 12768  // String returns the string representation.
 12769  //
 12770  // API parameter values that are decorated as "sensitive" in the API will not
 12771  // be included in the string output. The member name will be present, but the
 12772  // value will be replaced with "sensitive".
 12773  func (s ListInstanceGroupsInput) String() string {
 12774  	return awsutil.Prettify(s)
 12775  }
 12776  
 12777  // GoString returns the string representation.
 12778  //
 12779  // API parameter values that are decorated as "sensitive" in the API will not
 12780  // be included in the string output. The member name will be present, but the
 12781  // value will be replaced with "sensitive".
 12782  func (s ListInstanceGroupsInput) GoString() string {
 12783  	return s.String()
 12784  }
 12785  
 12786  // Validate inspects the fields of the type to determine if they are valid.
 12787  func (s *ListInstanceGroupsInput) Validate() error {
 12788  	invalidParams := request.ErrInvalidParams{Context: "ListInstanceGroupsInput"}
 12789  	if s.ClusterId == nil {
 12790  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 12791  	}
 12792  
 12793  	if invalidParams.Len() > 0 {
 12794  		return invalidParams
 12795  	}
 12796  	return nil
 12797  }
 12798  
 12799  // SetClusterId sets the ClusterId field's value.
 12800  func (s *ListInstanceGroupsInput) SetClusterId(v string) *ListInstanceGroupsInput {
 12801  	s.ClusterId = &v
 12802  	return s
 12803  }
 12804  
 12805  // SetMarker sets the Marker field's value.
 12806  func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput {
 12807  	s.Marker = &v
 12808  	return s
 12809  }
 12810  
 12811  // This input determines which instance groups to retrieve.
 12812  type ListInstanceGroupsOutput struct {
 12813  	_ struct{} `type:"structure"`
 12814  
 12815  	// The list of instance groups for the cluster and given filters.
 12816  	InstanceGroups []*InstanceGroup `type:"list"`
 12817  
 12818  	// The pagination token that indicates the next set of results to retrieve.
 12819  	Marker *string `type:"string"`
 12820  }
 12821  
 12822  // String returns the string representation.
 12823  //
 12824  // API parameter values that are decorated as "sensitive" in the API will not
 12825  // be included in the string output. The member name will be present, but the
 12826  // value will be replaced with "sensitive".
 12827  func (s ListInstanceGroupsOutput) String() string {
 12828  	return awsutil.Prettify(s)
 12829  }
 12830  
 12831  // GoString returns the string representation.
 12832  //
 12833  // API parameter values that are decorated as "sensitive" in the API will not
 12834  // be included in the string output. The member name will be present, but the
 12835  // value will be replaced with "sensitive".
 12836  func (s ListInstanceGroupsOutput) GoString() string {
 12837  	return s.String()
 12838  }
 12839  
 12840  // SetInstanceGroups sets the InstanceGroups field's value.
 12841  func (s *ListInstanceGroupsOutput) SetInstanceGroups(v []*InstanceGroup) *ListInstanceGroupsOutput {
 12842  	s.InstanceGroups = v
 12843  	return s
 12844  }
 12845  
 12846  // SetMarker sets the Marker field's value.
 12847  func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput {
 12848  	s.Marker = &v
 12849  	return s
 12850  }
 12851  
 12852  // This input determines which instances to list.
 12853  type ListInstancesInput struct {
 12854  	_ struct{} `type:"structure"`
 12855  
 12856  	// The identifier of the cluster for which to list the instances.
 12857  	//
 12858  	// ClusterId is a required field
 12859  	ClusterId *string `type:"string" required:"true"`
 12860  
 12861  	// The unique identifier of the instance fleet.
 12862  	InstanceFleetId *string `type:"string"`
 12863  
 12864  	// The node type of the instance fleet. For example MASTER, CORE, or TASK.
 12865  	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
 12866  
 12867  	// The identifier of the instance group for which to list the instances.
 12868  	InstanceGroupId *string `type:"string"`
 12869  
 12870  	// The type of instance group for which to list the instances.
 12871  	InstanceGroupTypes []*string `type:"list"`
 12872  
 12873  	// A list of instance states that will filter the instances returned with this
 12874  	// request.
 12875  	InstanceStates []*string `type:"list"`
 12876  
 12877  	// The pagination token that indicates the next set of results to retrieve.
 12878  	Marker *string `type:"string"`
 12879  }
 12880  
 12881  // String returns the string representation.
 12882  //
 12883  // API parameter values that are decorated as "sensitive" in the API will not
 12884  // be included in the string output. The member name will be present, but the
 12885  // value will be replaced with "sensitive".
 12886  func (s ListInstancesInput) String() string {
 12887  	return awsutil.Prettify(s)
 12888  }
 12889  
 12890  // GoString returns the string representation.
 12891  //
 12892  // API parameter values that are decorated as "sensitive" in the API will not
 12893  // be included in the string output. The member name will be present, but the
 12894  // value will be replaced with "sensitive".
 12895  func (s ListInstancesInput) GoString() string {
 12896  	return s.String()
 12897  }
 12898  
 12899  // Validate inspects the fields of the type to determine if they are valid.
 12900  func (s *ListInstancesInput) Validate() error {
 12901  	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
 12902  	if s.ClusterId == nil {
 12903  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 12904  	}
 12905  
 12906  	if invalidParams.Len() > 0 {
 12907  		return invalidParams
 12908  	}
 12909  	return nil
 12910  }
 12911  
 12912  // SetClusterId sets the ClusterId field's value.
 12913  func (s *ListInstancesInput) SetClusterId(v string) *ListInstancesInput {
 12914  	s.ClusterId = &v
 12915  	return s
 12916  }
 12917  
 12918  // SetInstanceFleetId sets the InstanceFleetId field's value.
 12919  func (s *ListInstancesInput) SetInstanceFleetId(v string) *ListInstancesInput {
 12920  	s.InstanceFleetId = &v
 12921  	return s
 12922  }
 12923  
 12924  // SetInstanceFleetType sets the InstanceFleetType field's value.
 12925  func (s *ListInstancesInput) SetInstanceFleetType(v string) *ListInstancesInput {
 12926  	s.InstanceFleetType = &v
 12927  	return s
 12928  }
 12929  
 12930  // SetInstanceGroupId sets the InstanceGroupId field's value.
 12931  func (s *ListInstancesInput) SetInstanceGroupId(v string) *ListInstancesInput {
 12932  	s.InstanceGroupId = &v
 12933  	return s
 12934  }
 12935  
 12936  // SetInstanceGroupTypes sets the InstanceGroupTypes field's value.
 12937  func (s *ListInstancesInput) SetInstanceGroupTypes(v []*string) *ListInstancesInput {
 12938  	s.InstanceGroupTypes = v
 12939  	return s
 12940  }
 12941  
 12942  // SetInstanceStates sets the InstanceStates field's value.
 12943  func (s *ListInstancesInput) SetInstanceStates(v []*string) *ListInstancesInput {
 12944  	s.InstanceStates = v
 12945  	return s
 12946  }
 12947  
 12948  // SetMarker sets the Marker field's value.
 12949  func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput {
 12950  	s.Marker = &v
 12951  	return s
 12952  }
 12953  
 12954  // This output contains the list of instances.
 12955  type ListInstancesOutput struct {
 12956  	_ struct{} `type:"structure"`
 12957  
 12958  	// The list of instances for the cluster and given filters.
 12959  	Instances []*Instance `type:"list"`
 12960  
 12961  	// The pagination token that indicates the next set of results to retrieve.
 12962  	Marker *string `type:"string"`
 12963  }
 12964  
 12965  // String returns the string representation.
 12966  //
 12967  // API parameter values that are decorated as "sensitive" in the API will not
 12968  // be included in the string output. The member name will be present, but the
 12969  // value will be replaced with "sensitive".
 12970  func (s ListInstancesOutput) String() string {
 12971  	return awsutil.Prettify(s)
 12972  }
 12973  
 12974  // GoString returns the string representation.
 12975  //
 12976  // API parameter values that are decorated as "sensitive" in the API will not
 12977  // be included in the string output. The member name will be present, but the
 12978  // value will be replaced with "sensitive".
 12979  func (s ListInstancesOutput) GoString() string {
 12980  	return s.String()
 12981  }
 12982  
 12983  // SetInstances sets the Instances field's value.
 12984  func (s *ListInstancesOutput) SetInstances(v []*Instance) *ListInstancesOutput {
 12985  	s.Instances = v
 12986  	return s
 12987  }
 12988  
 12989  // SetMarker sets the Marker field's value.
 12990  func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput {
 12991  	s.Marker = &v
 12992  	return s
 12993  }
 12994  
 12995  type ListNotebookExecutionsInput struct {
 12996  	_ struct{} `type:"structure"`
 12997  
 12998  	// The unique ID of the editor associated with the notebook execution.
 12999  	EditorId *string `type:"string"`
 13000  
 13001  	// The beginning of time range filter for listing notebook executions. The default
 13002  	// is the timestamp of 30 days ago.
 13003  	From *time.Time `type:"timestamp"`
 13004  
 13005  	// The pagination token, returned by a previous ListNotebookExecutions call,
 13006  	// that indicates the start of the list for this ListNotebookExecutions call.
 13007  	Marker *string `type:"string"`
 13008  
 13009  	// The status filter for listing notebook executions.
 13010  	//
 13011  	//    * START_PENDING indicates that the cluster has received the execution
 13012  	//    request but execution has not begun.
 13013  	//
 13014  	//    * STARTING indicates that the execution is starting on the cluster.
 13015  	//
 13016  	//    * RUNNING indicates that the execution is being processed by the cluster.
 13017  	//
 13018  	//    * FINISHING indicates that execution processing is in the final stages.
 13019  	//
 13020  	//    * FINISHED indicates that the execution has completed without error.
 13021  	//
 13022  	//    * FAILING indicates that the execution is failing and will not finish
 13023  	//    successfully.
 13024  	//
 13025  	//    * FAILED indicates that the execution failed.
 13026  	//
 13027  	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
 13028  	//    request and the stop is pending.
 13029  	//
 13030  	//    * STOPPING indicates that the cluster is in the process of stopping the
 13031  	//    execution as a result of a StopNotebookExecution request.
 13032  	//
 13033  	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
 13034  	//    request.
 13035  	Status *string `type:"string" enum:"NotebookExecutionStatus"`
 13036  
 13037  	// The end of time range filter for listing notebook executions. The default
 13038  	// is the current timestamp.
 13039  	To *time.Time `type:"timestamp"`
 13040  }
 13041  
 13042  // String returns the string representation.
 13043  //
 13044  // API parameter values that are decorated as "sensitive" in the API will not
 13045  // be included in the string output. The member name will be present, but the
 13046  // value will be replaced with "sensitive".
 13047  func (s ListNotebookExecutionsInput) String() string {
 13048  	return awsutil.Prettify(s)
 13049  }
 13050  
 13051  // GoString returns the string representation.
 13052  //
 13053  // API parameter values that are decorated as "sensitive" in the API will not
 13054  // be included in the string output. The member name will be present, but the
 13055  // value will be replaced with "sensitive".
 13056  func (s ListNotebookExecutionsInput) GoString() string {
 13057  	return s.String()
 13058  }
 13059  
 13060  // SetEditorId sets the EditorId field's value.
 13061  func (s *ListNotebookExecutionsInput) SetEditorId(v string) *ListNotebookExecutionsInput {
 13062  	s.EditorId = &v
 13063  	return s
 13064  }
 13065  
 13066  // SetFrom sets the From field's value.
 13067  func (s *ListNotebookExecutionsInput) SetFrom(v time.Time) *ListNotebookExecutionsInput {
 13068  	s.From = &v
 13069  	return s
 13070  }
 13071  
 13072  // SetMarker sets the Marker field's value.
 13073  func (s *ListNotebookExecutionsInput) SetMarker(v string) *ListNotebookExecutionsInput {
 13074  	s.Marker = &v
 13075  	return s
 13076  }
 13077  
 13078  // SetStatus sets the Status field's value.
 13079  func (s *ListNotebookExecutionsInput) SetStatus(v string) *ListNotebookExecutionsInput {
 13080  	s.Status = &v
 13081  	return s
 13082  }
 13083  
 13084  // SetTo sets the To field's value.
 13085  func (s *ListNotebookExecutionsInput) SetTo(v time.Time) *ListNotebookExecutionsInput {
 13086  	s.To = &v
 13087  	return s
 13088  }
 13089  
 13090  type ListNotebookExecutionsOutput struct {
 13091  	_ struct{} `type:"structure"`
 13092  
 13093  	// A pagination token that a subsequent ListNotebookExecutions can use to determine
 13094  	// the next set of results to retrieve.
 13095  	Marker *string `type:"string"`
 13096  
 13097  	// A list of notebook executions.
 13098  	NotebookExecutions []*NotebookExecutionSummary `type:"list"`
 13099  }
 13100  
 13101  // String returns the string representation.
 13102  //
 13103  // API parameter values that are decorated as "sensitive" in the API will not
 13104  // be included in the string output. The member name will be present, but the
 13105  // value will be replaced with "sensitive".
 13106  func (s ListNotebookExecutionsOutput) String() string {
 13107  	return awsutil.Prettify(s)
 13108  }
 13109  
 13110  // GoString returns the string representation.
 13111  //
 13112  // API parameter values that are decorated as "sensitive" in the API will not
 13113  // be included in the string output. The member name will be present, but the
 13114  // value will be replaced with "sensitive".
 13115  func (s ListNotebookExecutionsOutput) GoString() string {
 13116  	return s.String()
 13117  }
 13118  
 13119  // SetMarker sets the Marker field's value.
 13120  func (s *ListNotebookExecutionsOutput) SetMarker(v string) *ListNotebookExecutionsOutput {
 13121  	s.Marker = &v
 13122  	return s
 13123  }
 13124  
 13125  // SetNotebookExecutions sets the NotebookExecutions field's value.
 13126  func (s *ListNotebookExecutionsOutput) SetNotebookExecutions(v []*NotebookExecutionSummary) *ListNotebookExecutionsOutput {
 13127  	s.NotebookExecutions = v
 13128  	return s
 13129  }
 13130  
 13131  type ListReleaseLabelsInput struct {
 13132  	_ struct{} `type:"structure"`
 13133  
 13134  	// Filters the results of the request. Prefix specifies the prefix of release
 13135  	// labels to return. Application specifies the application (with/without version)
 13136  	// of release labels to return.
 13137  	Filters *ReleaseLabelFilter `type:"structure"`
 13138  
 13139  	// Defines the maximum number of release labels to return in a single response.
 13140  	// The default is 100.
 13141  	MaxResults *int64 `min:"1" type:"integer"`
 13142  
 13143  	// Specifies the next page of results. If NextToken is not specified, which
 13144  	// is usually the case for the first request of ListReleaseLabels, the first
 13145  	// page of results are determined by other filtering parameters or by the latest
 13146  	// version. The ListReleaseLabels request fails if the identity (Amazon Web
 13147  	// Services account ID) and all filtering parameters are different from the
 13148  	// original request, or if the NextToken is expired or tampered with.
 13149  	NextToken *string `type:"string"`
 13150  }
 13151  
 13152  // String returns the string representation.
 13153  //
 13154  // API parameter values that are decorated as "sensitive" in the API will not
 13155  // be included in the string output. The member name will be present, but the
 13156  // value will be replaced with "sensitive".
 13157  func (s ListReleaseLabelsInput) String() string {
 13158  	return awsutil.Prettify(s)
 13159  }
 13160  
 13161  // GoString returns the string representation.
 13162  //
 13163  // API parameter values that are decorated as "sensitive" in the API will not
 13164  // be included in the string output. The member name will be present, but the
 13165  // value will be replaced with "sensitive".
 13166  func (s ListReleaseLabelsInput) GoString() string {
 13167  	return s.String()
 13168  }
 13169  
 13170  // Validate inspects the fields of the type to determine if they are valid.
 13171  func (s *ListReleaseLabelsInput) Validate() error {
 13172  	invalidParams := request.ErrInvalidParams{Context: "ListReleaseLabelsInput"}
 13173  	if s.MaxResults != nil && *s.MaxResults < 1 {
 13174  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
 13175  	}
 13176  
 13177  	if invalidParams.Len() > 0 {
 13178  		return invalidParams
 13179  	}
 13180  	return nil
 13181  }
 13182  
 13183  // SetFilters sets the Filters field's value.
 13184  func (s *ListReleaseLabelsInput) SetFilters(v *ReleaseLabelFilter) *ListReleaseLabelsInput {
 13185  	s.Filters = v
 13186  	return s
 13187  }
 13188  
 13189  // SetMaxResults sets the MaxResults field's value.
 13190  func (s *ListReleaseLabelsInput) SetMaxResults(v int64) *ListReleaseLabelsInput {
 13191  	s.MaxResults = &v
 13192  	return s
 13193  }
 13194  
 13195  // SetNextToken sets the NextToken field's value.
 13196  func (s *ListReleaseLabelsInput) SetNextToken(v string) *ListReleaseLabelsInput {
 13197  	s.NextToken = &v
 13198  	return s
 13199  }
 13200  
 13201  type ListReleaseLabelsOutput struct {
 13202  	_ struct{} `type:"structure"`
 13203  
 13204  	// Used to paginate the next page of results if specified in the next ListReleaseLabels
 13205  	// request.
 13206  	NextToken *string `type:"string"`
 13207  
 13208  	// The returned release labels.
 13209  	ReleaseLabels []*string `type:"list"`
 13210  }
 13211  
 13212  // String returns the string representation.
 13213  //
 13214  // API parameter values that are decorated as "sensitive" in the API will not
 13215  // be included in the string output. The member name will be present, but the
 13216  // value will be replaced with "sensitive".
 13217  func (s ListReleaseLabelsOutput) String() string {
 13218  	return awsutil.Prettify(s)
 13219  }
 13220  
 13221  // GoString returns the string representation.
 13222  //
 13223  // API parameter values that are decorated as "sensitive" in the API will not
 13224  // be included in the string output. The member name will be present, but the
 13225  // value will be replaced with "sensitive".
 13226  func (s ListReleaseLabelsOutput) GoString() string {
 13227  	return s.String()
 13228  }
 13229  
 13230  // SetNextToken sets the NextToken field's value.
 13231  func (s *ListReleaseLabelsOutput) SetNextToken(v string) *ListReleaseLabelsOutput {
 13232  	s.NextToken = &v
 13233  	return s
 13234  }
 13235  
 13236  // SetReleaseLabels sets the ReleaseLabels field's value.
 13237  func (s *ListReleaseLabelsOutput) SetReleaseLabels(v []*string) *ListReleaseLabelsOutput {
 13238  	s.ReleaseLabels = v
 13239  	return s
 13240  }
 13241  
 13242  type ListSecurityConfigurationsInput struct {
 13243  	_ struct{} `type:"structure"`
 13244  
 13245  	// The pagination token that indicates the set of results to retrieve.
 13246  	Marker *string `type:"string"`
 13247  }
 13248  
 13249  // String returns the string representation.
 13250  //
 13251  // API parameter values that are decorated as "sensitive" in the API will not
 13252  // be included in the string output. The member name will be present, but the
 13253  // value will be replaced with "sensitive".
 13254  func (s ListSecurityConfigurationsInput) String() string {
 13255  	return awsutil.Prettify(s)
 13256  }
 13257  
 13258  // GoString returns the string representation.
 13259  //
 13260  // API parameter values that are decorated as "sensitive" in the API will not
 13261  // be included in the string output. The member name will be present, but the
 13262  // value will be replaced with "sensitive".
 13263  func (s ListSecurityConfigurationsInput) GoString() string {
 13264  	return s.String()
 13265  }
 13266  
 13267  // SetMarker sets the Marker field's value.
 13268  func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfigurationsInput {
 13269  	s.Marker = &v
 13270  	return s
 13271  }
 13272  
 13273  type ListSecurityConfigurationsOutput struct {
 13274  	_ struct{} `type:"structure"`
 13275  
 13276  	// A pagination token that indicates the next set of results to retrieve. Include
 13277  	// the marker in the next ListSecurityConfiguration call to retrieve the next
 13278  	// page of results, if required.
 13279  	Marker *string `type:"string"`
 13280  
 13281  	// The creation date and time, and name, of each security configuration.
 13282  	SecurityConfigurations []*SecurityConfigurationSummary `type:"list"`
 13283  }
 13284  
 13285  // String returns the string representation.
 13286  //
 13287  // API parameter values that are decorated as "sensitive" in the API will not
 13288  // be included in the string output. The member name will be present, but the
 13289  // value will be replaced with "sensitive".
 13290  func (s ListSecurityConfigurationsOutput) String() string {
 13291  	return awsutil.Prettify(s)
 13292  }
 13293  
 13294  // GoString returns the string representation.
 13295  //
 13296  // API parameter values that are decorated as "sensitive" in the API will not
 13297  // be included in the string output. The member name will be present, but the
 13298  // value will be replaced with "sensitive".
 13299  func (s ListSecurityConfigurationsOutput) GoString() string {
 13300  	return s.String()
 13301  }
 13302  
 13303  // SetMarker sets the Marker field's value.
 13304  func (s *ListSecurityConfigurationsOutput) SetMarker(v string) *ListSecurityConfigurationsOutput {
 13305  	s.Marker = &v
 13306  	return s
 13307  }
 13308  
 13309  // SetSecurityConfigurations sets the SecurityConfigurations field's value.
 13310  func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfigurationSummary) *ListSecurityConfigurationsOutput {
 13311  	s.SecurityConfigurations = v
 13312  	return s
 13313  }
 13314  
 13315  // This input determines which steps to list.
 13316  type ListStepsInput struct {
 13317  	_ struct{} `type:"structure"`
 13318  
 13319  	// The identifier of the cluster for which to list the steps.
 13320  	//
 13321  	// ClusterId is a required field
 13322  	ClusterId *string `type:"string" required:"true"`
 13323  
 13324  	// The maximum number of steps that a single ListSteps action returns is 50.
 13325  	// To return a longer list of steps, use multiple ListSteps actions along with
 13326  	// the Marker parameter, which is a pagination token that indicates the next
 13327  	// set of results to retrieve.
 13328  	Marker *string `type:"string"`
 13329  
 13330  	// The filter to limit the step list based on the identifier of the steps. You
 13331  	// can specify a maximum of ten Step IDs. The character constraint applies to
 13332  	// the overall length of the array.
 13333  	StepIds []*string `type:"list"`
 13334  
 13335  	// The filter to limit the step list based on certain states.
 13336  	StepStates []*string `type:"list"`
 13337  }
 13338  
 13339  // String returns the string representation.
 13340  //
 13341  // API parameter values that are decorated as "sensitive" in the API will not
 13342  // be included in the string output. The member name will be present, but the
 13343  // value will be replaced with "sensitive".
 13344  func (s ListStepsInput) String() string {
 13345  	return awsutil.Prettify(s)
 13346  }
 13347  
 13348  // GoString returns the string representation.
 13349  //
 13350  // API parameter values that are decorated as "sensitive" in the API will not
 13351  // be included in the string output. The member name will be present, but the
 13352  // value will be replaced with "sensitive".
 13353  func (s ListStepsInput) GoString() string {
 13354  	return s.String()
 13355  }
 13356  
 13357  // Validate inspects the fields of the type to determine if they are valid.
 13358  func (s *ListStepsInput) Validate() error {
 13359  	invalidParams := request.ErrInvalidParams{Context: "ListStepsInput"}
 13360  	if s.ClusterId == nil {
 13361  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 13362  	}
 13363  
 13364  	if invalidParams.Len() > 0 {
 13365  		return invalidParams
 13366  	}
 13367  	return nil
 13368  }
 13369  
 13370  // SetClusterId sets the ClusterId field's value.
 13371  func (s *ListStepsInput) SetClusterId(v string) *ListStepsInput {
 13372  	s.ClusterId = &v
 13373  	return s
 13374  }
 13375  
 13376  // SetMarker sets the Marker field's value.
 13377  func (s *ListStepsInput) SetMarker(v string) *ListStepsInput {
 13378  	s.Marker = &v
 13379  	return s
 13380  }
 13381  
 13382  // SetStepIds sets the StepIds field's value.
 13383  func (s *ListStepsInput) SetStepIds(v []*string) *ListStepsInput {
 13384  	s.StepIds = v
 13385  	return s
 13386  }
 13387  
 13388  // SetStepStates sets the StepStates field's value.
 13389  func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput {
 13390  	s.StepStates = v
 13391  	return s
 13392  }
 13393  
 13394  // This output contains the list of steps returned in reverse order. This means
 13395  // that the last step is the first element in the list.
 13396  type ListStepsOutput struct {
 13397  	_ struct{} `type:"structure"`
 13398  
 13399  	// The maximum number of steps that a single ListSteps action returns is 50.
 13400  	// To return a longer list of steps, use multiple ListSteps actions along with
 13401  	// the Marker parameter, which is a pagination token that indicates the next
 13402  	// set of results to retrieve.
 13403  	Marker *string `type:"string"`
 13404  
 13405  	// The filtered list of steps for the cluster.
 13406  	Steps []*StepSummary `type:"list"`
 13407  }
 13408  
 13409  // String returns the string representation.
 13410  //
 13411  // API parameter values that are decorated as "sensitive" in the API will not
 13412  // be included in the string output. The member name will be present, but the
 13413  // value will be replaced with "sensitive".
 13414  func (s ListStepsOutput) String() string {
 13415  	return awsutil.Prettify(s)
 13416  }
 13417  
 13418  // GoString returns the string representation.
 13419  //
 13420  // API parameter values that are decorated as "sensitive" in the API will not
 13421  // be included in the string output. The member name will be present, but the
 13422  // value will be replaced with "sensitive".
 13423  func (s ListStepsOutput) GoString() string {
 13424  	return s.String()
 13425  }
 13426  
 13427  // SetMarker sets the Marker field's value.
 13428  func (s *ListStepsOutput) SetMarker(v string) *ListStepsOutput {
 13429  	s.Marker = &v
 13430  	return s
 13431  }
 13432  
 13433  // SetSteps sets the Steps field's value.
 13434  func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput {
 13435  	s.Steps = v
 13436  	return s
 13437  }
 13438  
 13439  type ListStudioSessionMappingsInput struct {
 13440  	_ struct{} `type:"structure"`
 13441  
 13442  	// Specifies whether to return session mappings for users or groups. If not
 13443  	// specified, the results include session mapping details for both users and
 13444  	// groups.
 13445  	IdentityType *string `type:"string" enum:"IdentityType"`
 13446  
 13447  	// The pagination token that indicates the set of results to retrieve.
 13448  	Marker *string `type:"string"`
 13449  
 13450  	// The ID of the Amazon EMR Studio.
 13451  	StudioId *string `type:"string"`
 13452  }
 13453  
 13454  // String returns the string representation.
 13455  //
 13456  // API parameter values that are decorated as "sensitive" in the API will not
 13457  // be included in the string output. The member name will be present, but the
 13458  // value will be replaced with "sensitive".
 13459  func (s ListStudioSessionMappingsInput) String() string {
 13460  	return awsutil.Prettify(s)
 13461  }
 13462  
 13463  // GoString returns the string representation.
 13464  //
 13465  // API parameter values that are decorated as "sensitive" in the API will not
 13466  // be included in the string output. The member name will be present, but the
 13467  // value will be replaced with "sensitive".
 13468  func (s ListStudioSessionMappingsInput) GoString() string {
 13469  	return s.String()
 13470  }
 13471  
 13472  // SetIdentityType sets the IdentityType field's value.
 13473  func (s *ListStudioSessionMappingsInput) SetIdentityType(v string) *ListStudioSessionMappingsInput {
 13474  	s.IdentityType = &v
 13475  	return s
 13476  }
 13477  
 13478  // SetMarker sets the Marker field's value.
 13479  func (s *ListStudioSessionMappingsInput) SetMarker(v string) *ListStudioSessionMappingsInput {
 13480  	s.Marker = &v
 13481  	return s
 13482  }
 13483  
 13484  // SetStudioId sets the StudioId field's value.
 13485  func (s *ListStudioSessionMappingsInput) SetStudioId(v string) *ListStudioSessionMappingsInput {
 13486  	s.StudioId = &v
 13487  	return s
 13488  }
 13489  
 13490  type ListStudioSessionMappingsOutput struct {
 13491  	_ struct{} `type:"structure"`
 13492  
 13493  	// The pagination token that indicates the next set of results to retrieve.
 13494  	Marker *string `type:"string"`
 13495  
 13496  	// A list of session mapping summary objects. Each object includes session mapping
 13497  	// details such as creation time, identity type (user or group), and Amazon
 13498  	// EMR Studio ID.
 13499  	SessionMappings []*SessionMappingSummary `type:"list"`
 13500  }
 13501  
 13502  // String returns the string representation.
 13503  //
 13504  // API parameter values that are decorated as "sensitive" in the API will not
 13505  // be included in the string output. The member name will be present, but the
 13506  // value will be replaced with "sensitive".
 13507  func (s ListStudioSessionMappingsOutput) String() string {
 13508  	return awsutil.Prettify(s)
 13509  }
 13510  
 13511  // GoString returns the string representation.
 13512  //
 13513  // API parameter values that are decorated as "sensitive" in the API will not
 13514  // be included in the string output. The member name will be present, but the
 13515  // value will be replaced with "sensitive".
 13516  func (s ListStudioSessionMappingsOutput) GoString() string {
 13517  	return s.String()
 13518  }
 13519  
 13520  // SetMarker sets the Marker field's value.
 13521  func (s *ListStudioSessionMappingsOutput) SetMarker(v string) *ListStudioSessionMappingsOutput {
 13522  	s.Marker = &v
 13523  	return s
 13524  }
 13525  
 13526  // SetSessionMappings sets the SessionMappings field's value.
 13527  func (s *ListStudioSessionMappingsOutput) SetSessionMappings(v []*SessionMappingSummary) *ListStudioSessionMappingsOutput {
 13528  	s.SessionMappings = v
 13529  	return s
 13530  }
 13531  
 13532  type ListStudiosInput struct {
 13533  	_ struct{} `type:"structure"`
 13534  
 13535  	// The pagination token that indicates the set of results to retrieve.
 13536  	Marker *string `type:"string"`
 13537  }
 13538  
 13539  // String returns the string representation.
 13540  //
 13541  // API parameter values that are decorated as "sensitive" in the API will not
 13542  // be included in the string output. The member name will be present, but the
 13543  // value will be replaced with "sensitive".
 13544  func (s ListStudiosInput) String() string {
 13545  	return awsutil.Prettify(s)
 13546  }
 13547  
 13548  // GoString returns the string representation.
 13549  //
 13550  // API parameter values that are decorated as "sensitive" in the API will not
 13551  // be included in the string output. The member name will be present, but the
 13552  // value will be replaced with "sensitive".
 13553  func (s ListStudiosInput) GoString() string {
 13554  	return s.String()
 13555  }
 13556  
 13557  // SetMarker sets the Marker field's value.
 13558  func (s *ListStudiosInput) SetMarker(v string) *ListStudiosInput {
 13559  	s.Marker = &v
 13560  	return s
 13561  }
 13562  
 13563  type ListStudiosOutput struct {
 13564  	_ struct{} `type:"structure"`
 13565  
 13566  	// The pagination token that indicates the next set of results to retrieve.
 13567  	Marker *string `type:"string"`
 13568  
 13569  	// The list of Studio summary objects.
 13570  	Studios []*StudioSummary `type:"list"`
 13571  }
 13572  
 13573  // String returns the string representation.
 13574  //
 13575  // API parameter values that are decorated as "sensitive" in the API will not
 13576  // be included in the string output. The member name will be present, but the
 13577  // value will be replaced with "sensitive".
 13578  func (s ListStudiosOutput) String() string {
 13579  	return awsutil.Prettify(s)
 13580  }
 13581  
 13582  // GoString returns the string representation.
 13583  //
 13584  // API parameter values that are decorated as "sensitive" in the API will not
 13585  // be included in the string output. The member name will be present, but the
 13586  // value will be replaced with "sensitive".
 13587  func (s ListStudiosOutput) GoString() string {
 13588  	return s.String()
 13589  }
 13590  
 13591  // SetMarker sets the Marker field's value.
 13592  func (s *ListStudiosOutput) SetMarker(v string) *ListStudiosOutput {
 13593  	s.Marker = &v
 13594  	return s
 13595  }
 13596  
 13597  // SetStudios sets the Studios field's value.
 13598  func (s *ListStudiosOutput) SetStudios(v []*StudioSummary) *ListStudiosOutput {
 13599  	s.Studios = v
 13600  	return s
 13601  }
 13602  
 13603  // Managed scaling policy for an Amazon EMR cluster. The policy specifies the
 13604  // limits for resources that can be added or terminated from a cluster. The
 13605  // policy only applies to the core and task nodes. The master node cannot be
 13606  // scaled after initial configuration.
 13607  type ManagedScalingPolicy struct {
 13608  	_ struct{} `type:"structure"`
 13609  
 13610  	// The EC2 unit limits for a managed scaling policy. The managed scaling activity
 13611  	// of a cluster is not allowed to go above or below these limits. The limit
 13612  	// only applies to the core and task nodes. The master node cannot be scaled
 13613  	// after initial configuration.
 13614  	ComputeLimits *ComputeLimits `type:"structure"`
 13615  }
 13616  
 13617  // String returns the string representation.
 13618  //
 13619  // API parameter values that are decorated as "sensitive" in the API will not
 13620  // be included in the string output. The member name will be present, but the
 13621  // value will be replaced with "sensitive".
 13622  func (s ManagedScalingPolicy) String() string {
 13623  	return awsutil.Prettify(s)
 13624  }
 13625  
 13626  // GoString returns the string representation.
 13627  //
 13628  // API parameter values that are decorated as "sensitive" in the API will not
 13629  // be included in the string output. The member name will be present, but the
 13630  // value will be replaced with "sensitive".
 13631  func (s ManagedScalingPolicy) GoString() string {
 13632  	return s.String()
 13633  }
 13634  
 13635  // Validate inspects the fields of the type to determine if they are valid.
 13636  func (s *ManagedScalingPolicy) Validate() error {
 13637  	invalidParams := request.ErrInvalidParams{Context: "ManagedScalingPolicy"}
 13638  	if s.ComputeLimits != nil {
 13639  		if err := s.ComputeLimits.Validate(); err != nil {
 13640  			invalidParams.AddNested("ComputeLimits", err.(request.ErrInvalidParams))
 13641  		}
 13642  	}
 13643  
 13644  	if invalidParams.Len() > 0 {
 13645  		return invalidParams
 13646  	}
 13647  	return nil
 13648  }
 13649  
 13650  // SetComputeLimits sets the ComputeLimits field's value.
 13651  func (s *ManagedScalingPolicy) SetComputeLimits(v *ComputeLimits) *ManagedScalingPolicy {
 13652  	s.ComputeLimits = v
 13653  	return s
 13654  }
 13655  
 13656  // A CloudWatch dimension, which is specified using a Key (known as a Name in
 13657  // CloudWatch), Value pair. By default, Amazon EMR uses one dimension whose
 13658  // Key is JobFlowID and Value is a variable representing the cluster ID, which
 13659  // is ${emr.clusterId}. This enables the rule to bootstrap when the cluster
 13660  // ID becomes available.
 13661  type MetricDimension struct {
 13662  	_ struct{} `type:"structure"`
 13663  
 13664  	// The dimension name.
 13665  	Key *string `type:"string"`
 13666  
 13667  	// The dimension value.
 13668  	Value *string `type:"string"`
 13669  }
 13670  
 13671  // String returns the string representation.
 13672  //
 13673  // API parameter values that are decorated as "sensitive" in the API will not
 13674  // be included in the string output. The member name will be present, but the
 13675  // value will be replaced with "sensitive".
 13676  func (s MetricDimension) String() string {
 13677  	return awsutil.Prettify(s)
 13678  }
 13679  
 13680  // GoString returns the string representation.
 13681  //
 13682  // API parameter values that are decorated as "sensitive" in the API will not
 13683  // be included in the string output. The member name will be present, but the
 13684  // value will be replaced with "sensitive".
 13685  func (s MetricDimension) GoString() string {
 13686  	return s.String()
 13687  }
 13688  
 13689  // SetKey sets the Key field's value.
 13690  func (s *MetricDimension) SetKey(v string) *MetricDimension {
 13691  	s.Key = &v
 13692  	return s
 13693  }
 13694  
 13695  // SetValue sets the Value field's value.
 13696  func (s *MetricDimension) SetValue(v string) *MetricDimension {
 13697  	s.Value = &v
 13698  	return s
 13699  }
 13700  
 13701  type ModifyClusterInput struct {
 13702  	_ struct{} `type:"structure"`
 13703  
 13704  	// The unique identifier of the cluster.
 13705  	//
 13706  	// ClusterId is a required field
 13707  	ClusterId *string `type:"string" required:"true"`
 13708  
 13709  	// The number of steps that can be executed concurrently. You can specify a
 13710  	// minimum of 1 step and a maximum of 256 steps. We recommend that you do not
 13711  	// change this parameter while steps are running or the ActionOnFailure setting
 13712  	// may not behave as expected. For more information see Step$ActionOnFailure.
 13713  	StepConcurrencyLevel *int64 `type:"integer"`
 13714  }
 13715  
 13716  // String returns the string representation.
 13717  //
 13718  // API parameter values that are decorated as "sensitive" in the API will not
 13719  // be included in the string output. The member name will be present, but the
 13720  // value will be replaced with "sensitive".
 13721  func (s ModifyClusterInput) String() string {
 13722  	return awsutil.Prettify(s)
 13723  }
 13724  
 13725  // GoString returns the string representation.
 13726  //
 13727  // API parameter values that are decorated as "sensitive" in the API will not
 13728  // be included in the string output. The member name will be present, but the
 13729  // value will be replaced with "sensitive".
 13730  func (s ModifyClusterInput) GoString() string {
 13731  	return s.String()
 13732  }
 13733  
 13734  // Validate inspects the fields of the type to determine if they are valid.
 13735  func (s *ModifyClusterInput) Validate() error {
 13736  	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
 13737  	if s.ClusterId == nil {
 13738  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 13739  	}
 13740  
 13741  	if invalidParams.Len() > 0 {
 13742  		return invalidParams
 13743  	}
 13744  	return nil
 13745  }
 13746  
 13747  // SetClusterId sets the ClusterId field's value.
 13748  func (s *ModifyClusterInput) SetClusterId(v string) *ModifyClusterInput {
 13749  	s.ClusterId = &v
 13750  	return s
 13751  }
 13752  
 13753  // SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
 13754  func (s *ModifyClusterInput) SetStepConcurrencyLevel(v int64) *ModifyClusterInput {
 13755  	s.StepConcurrencyLevel = &v
 13756  	return s
 13757  }
 13758  
 13759  type ModifyClusterOutput struct {
 13760  	_ struct{} `type:"structure"`
 13761  
 13762  	// The number of steps that can be executed concurrently.
 13763  	StepConcurrencyLevel *int64 `type:"integer"`
 13764  }
 13765  
 13766  // String returns the string representation.
 13767  //
 13768  // API parameter values that are decorated as "sensitive" in the API will not
 13769  // be included in the string output. The member name will be present, but the
 13770  // value will be replaced with "sensitive".
 13771  func (s ModifyClusterOutput) String() string {
 13772  	return awsutil.Prettify(s)
 13773  }
 13774  
 13775  // GoString returns the string representation.
 13776  //
 13777  // API parameter values that are decorated as "sensitive" in the API will not
 13778  // be included in the string output. The member name will be present, but the
 13779  // value will be replaced with "sensitive".
 13780  func (s ModifyClusterOutput) GoString() string {
 13781  	return s.String()
 13782  }
 13783  
 13784  // SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
 13785  func (s *ModifyClusterOutput) SetStepConcurrencyLevel(v int64) *ModifyClusterOutput {
 13786  	s.StepConcurrencyLevel = &v
 13787  	return s
 13788  }
 13789  
 13790  type ModifyInstanceFleetInput struct {
 13791  	_ struct{} `type:"structure"`
 13792  
 13793  	// The unique identifier of the cluster.
 13794  	//
 13795  	// ClusterId is a required field
 13796  	ClusterId *string `type:"string" required:"true"`
 13797  
 13798  	// The configuration parameters of the instance fleet.
 13799  	//
 13800  	// InstanceFleet is a required field
 13801  	InstanceFleet *InstanceFleetModifyConfig `type:"structure" required:"true"`
 13802  }
 13803  
 13804  // String returns the string representation.
 13805  //
 13806  // API parameter values that are decorated as "sensitive" in the API will not
 13807  // be included in the string output. The member name will be present, but the
 13808  // value will be replaced with "sensitive".
 13809  func (s ModifyInstanceFleetInput) String() string {
 13810  	return awsutil.Prettify(s)
 13811  }
 13812  
 13813  // GoString returns the string representation.
 13814  //
 13815  // API parameter values that are decorated as "sensitive" in the API will not
 13816  // be included in the string output. The member name will be present, but the
 13817  // value will be replaced with "sensitive".
 13818  func (s ModifyInstanceFleetInput) GoString() string {
 13819  	return s.String()
 13820  }
 13821  
 13822  // Validate inspects the fields of the type to determine if they are valid.
 13823  func (s *ModifyInstanceFleetInput) Validate() error {
 13824  	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceFleetInput"}
 13825  	if s.ClusterId == nil {
 13826  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 13827  	}
 13828  	if s.InstanceFleet == nil {
 13829  		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
 13830  	}
 13831  	if s.InstanceFleet != nil {
 13832  		if err := s.InstanceFleet.Validate(); err != nil {
 13833  			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
 13834  		}
 13835  	}
 13836  
 13837  	if invalidParams.Len() > 0 {
 13838  		return invalidParams
 13839  	}
 13840  	return nil
 13841  }
 13842  
 13843  // SetClusterId sets the ClusterId field's value.
 13844  func (s *ModifyInstanceFleetInput) SetClusterId(v string) *ModifyInstanceFleetInput {
 13845  	s.ClusterId = &v
 13846  	return s
 13847  }
 13848  
 13849  // SetInstanceFleet sets the InstanceFleet field's value.
 13850  func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig) *ModifyInstanceFleetInput {
 13851  	s.InstanceFleet = v
 13852  	return s
 13853  }
 13854  
 13855  type ModifyInstanceFleetOutput struct {
 13856  	_ struct{} `type:"structure"`
 13857  }
 13858  
 13859  // String returns the string representation.
 13860  //
 13861  // API parameter values that are decorated as "sensitive" in the API will not
 13862  // be included in the string output. The member name will be present, but the
 13863  // value will be replaced with "sensitive".
 13864  func (s ModifyInstanceFleetOutput) String() string {
 13865  	return awsutil.Prettify(s)
 13866  }
 13867  
 13868  // GoString returns the string representation.
 13869  //
 13870  // API parameter values that are decorated as "sensitive" in the API will not
 13871  // be included in the string output. The member name will be present, but the
 13872  // value will be replaced with "sensitive".
 13873  func (s ModifyInstanceFleetOutput) GoString() string {
 13874  	return s.String()
 13875  }
 13876  
 13877  // Change the size of some instance groups.
 13878  type ModifyInstanceGroupsInput struct {
 13879  	_ struct{} `type:"structure"`
 13880  
 13881  	// The ID of the cluster to which the instance group belongs.
 13882  	ClusterId *string `type:"string"`
 13883  
 13884  	// Instance groups to change.
 13885  	InstanceGroups []*InstanceGroupModifyConfig `type:"list"`
 13886  }
 13887  
 13888  // String returns the string representation.
 13889  //
 13890  // API parameter values that are decorated as "sensitive" in the API will not
 13891  // be included in the string output. The member name will be present, but the
 13892  // value will be replaced with "sensitive".
 13893  func (s ModifyInstanceGroupsInput) String() string {
 13894  	return awsutil.Prettify(s)
 13895  }
 13896  
 13897  // GoString returns the string representation.
 13898  //
 13899  // API parameter values that are decorated as "sensitive" in the API will not
 13900  // be included in the string output. The member name will be present, but the
 13901  // value will be replaced with "sensitive".
 13902  func (s ModifyInstanceGroupsInput) GoString() string {
 13903  	return s.String()
 13904  }
 13905  
 13906  // Validate inspects the fields of the type to determine if they are valid.
 13907  func (s *ModifyInstanceGroupsInput) Validate() error {
 13908  	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceGroupsInput"}
 13909  	if s.InstanceGroups != nil {
 13910  		for i, v := range s.InstanceGroups {
 13911  			if v == nil {
 13912  				continue
 13913  			}
 13914  			if err := v.Validate(); err != nil {
 13915  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
 13916  			}
 13917  		}
 13918  	}
 13919  
 13920  	if invalidParams.Len() > 0 {
 13921  		return invalidParams
 13922  	}
 13923  	return nil
 13924  }
 13925  
 13926  // SetClusterId sets the ClusterId field's value.
 13927  func (s *ModifyInstanceGroupsInput) SetClusterId(v string) *ModifyInstanceGroupsInput {
 13928  	s.ClusterId = &v
 13929  	return s
 13930  }
 13931  
 13932  // SetInstanceGroups sets the InstanceGroups field's value.
 13933  func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyConfig) *ModifyInstanceGroupsInput {
 13934  	s.InstanceGroups = v
 13935  	return s
 13936  }
 13937  
 13938  type ModifyInstanceGroupsOutput struct {
 13939  	_ struct{} `type:"structure"`
 13940  }
 13941  
 13942  // String returns the string representation.
 13943  //
 13944  // API parameter values that are decorated as "sensitive" in the API will not
 13945  // be included in the string output. The member name will be present, but the
 13946  // value will be replaced with "sensitive".
 13947  func (s ModifyInstanceGroupsOutput) String() string {
 13948  	return awsutil.Prettify(s)
 13949  }
 13950  
 13951  // GoString returns the string representation.
 13952  //
 13953  // API parameter values that are decorated as "sensitive" in the API will not
 13954  // be included in the string output. The member name will be present, but the
 13955  // value will be replaced with "sensitive".
 13956  func (s ModifyInstanceGroupsOutput) GoString() string {
 13957  	return s.String()
 13958  }
 13959  
 13960  // A notebook execution. An execution is a specific instance that an EMR Notebook
 13961  // is run using the StartNotebookExecution action.
 13962  type NotebookExecution struct {
 13963  	_ struct{} `type:"structure"`
 13964  
 13965  	// The Amazon Resource Name (ARN) of the notebook execution.
 13966  	Arn *string `type:"string"`
 13967  
 13968  	// The unique identifier of the EMR Notebook that is used for the notebook execution.
 13969  	EditorId *string `type:"string"`
 13970  
 13971  	// The timestamp when notebook execution ended.
 13972  	EndTime *time.Time `type:"timestamp"`
 13973  
 13974  	// The execution engine, such as an EMR cluster, used to run the EMR notebook
 13975  	// and perform the notebook execution.
 13976  	ExecutionEngine *ExecutionEngineConfig `type:"structure"`
 13977  
 13978  	// The reason for the latest status change of the notebook execution.
 13979  	LastStateChangeReason *string `type:"string"`
 13980  
 13981  	// The unique identifier of a notebook execution.
 13982  	NotebookExecutionId *string `type:"string"`
 13983  
 13984  	// A name for the notebook execution.
 13985  	NotebookExecutionName *string `type:"string"`
 13986  
 13987  	// The unique identifier of the EC2 security group associated with the EMR Notebook
 13988  	// instance. For more information see Specifying EC2 Security Groups for EMR
 13989  	// Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
 13990  	// in the EMR Management Guide.
 13991  	NotebookInstanceSecurityGroupId *string `type:"string"`
 13992  
 13993  	// Input parameters in JSON format passed to the EMR Notebook at runtime for
 13994  	// execution.
 13995  	NotebookParams *string `type:"string"`
 13996  
 13997  	// The location of the notebook execution's output file in Amazon S3.
 13998  	OutputNotebookURI *string `type:"string"`
 13999  
 14000  	// The timestamp when notebook execution started.
 14001  	StartTime *time.Time `type:"timestamp"`
 14002  
 14003  	// The status of the notebook execution.
 14004  	//
 14005  	//    * START_PENDING indicates that the cluster has received the execution
 14006  	//    request but execution has not begun.
 14007  	//
 14008  	//    * STARTING indicates that the execution is starting on the cluster.
 14009  	//
 14010  	//    * RUNNING indicates that the execution is being processed by the cluster.
 14011  	//
 14012  	//    * FINISHING indicates that execution processing is in the final stages.
 14013  	//
 14014  	//    * FINISHED indicates that the execution has completed without error.
 14015  	//
 14016  	//    * FAILING indicates that the execution is failing and will not finish
 14017  	//    successfully.
 14018  	//
 14019  	//    * FAILED indicates that the execution failed.
 14020  	//
 14021  	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
 14022  	//    request and the stop is pending.
 14023  	//
 14024  	//    * STOPPING indicates that the cluster is in the process of stopping the
 14025  	//    execution as a result of a StopNotebookExecution request.
 14026  	//
 14027  	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
 14028  	//    request.
 14029  	Status *string `type:"string" enum:"NotebookExecutionStatus"`
 14030  
 14031  	// A list of tags associated with a notebook execution. Tags are user-defined
 14032  	// key-value pairs that consist of a required key string with a maximum of 128
 14033  	// characters and an optional value string with a maximum of 256 characters.
 14034  	Tags []*Tag `type:"list"`
 14035  }
 14036  
 14037  // String returns the string representation.
 14038  //
 14039  // API parameter values that are decorated as "sensitive" in the API will not
 14040  // be included in the string output. The member name will be present, but the
 14041  // value will be replaced with "sensitive".
 14042  func (s NotebookExecution) String() string {
 14043  	return awsutil.Prettify(s)
 14044  }
 14045  
 14046  // GoString returns the string representation.
 14047  //
 14048  // API parameter values that are decorated as "sensitive" in the API will not
 14049  // be included in the string output. The member name will be present, but the
 14050  // value will be replaced with "sensitive".
 14051  func (s NotebookExecution) GoString() string {
 14052  	return s.String()
 14053  }
 14054  
 14055  // SetArn sets the Arn field's value.
 14056  func (s *NotebookExecution) SetArn(v string) *NotebookExecution {
 14057  	s.Arn = &v
 14058  	return s
 14059  }
 14060  
 14061  // SetEditorId sets the EditorId field's value.
 14062  func (s *NotebookExecution) SetEditorId(v string) *NotebookExecution {
 14063  	s.EditorId = &v
 14064  	return s
 14065  }
 14066  
 14067  // SetEndTime sets the EndTime field's value.
 14068  func (s *NotebookExecution) SetEndTime(v time.Time) *NotebookExecution {
 14069  	s.EndTime = &v
 14070  	return s
 14071  }
 14072  
 14073  // SetExecutionEngine sets the ExecutionEngine field's value.
 14074  func (s *NotebookExecution) SetExecutionEngine(v *ExecutionEngineConfig) *NotebookExecution {
 14075  	s.ExecutionEngine = v
 14076  	return s
 14077  }
 14078  
 14079  // SetLastStateChangeReason sets the LastStateChangeReason field's value.
 14080  func (s *NotebookExecution) SetLastStateChangeReason(v string) *NotebookExecution {
 14081  	s.LastStateChangeReason = &v
 14082  	return s
 14083  }
 14084  
 14085  // SetNotebookExecutionId sets the NotebookExecutionId field's value.
 14086  func (s *NotebookExecution) SetNotebookExecutionId(v string) *NotebookExecution {
 14087  	s.NotebookExecutionId = &v
 14088  	return s
 14089  }
 14090  
 14091  // SetNotebookExecutionName sets the NotebookExecutionName field's value.
 14092  func (s *NotebookExecution) SetNotebookExecutionName(v string) *NotebookExecution {
 14093  	s.NotebookExecutionName = &v
 14094  	return s
 14095  }
 14096  
 14097  // SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
 14098  func (s *NotebookExecution) SetNotebookInstanceSecurityGroupId(v string) *NotebookExecution {
 14099  	s.NotebookInstanceSecurityGroupId = &v
 14100  	return s
 14101  }
 14102  
 14103  // SetNotebookParams sets the NotebookParams field's value.
 14104  func (s *NotebookExecution) SetNotebookParams(v string) *NotebookExecution {
 14105  	s.NotebookParams = &v
 14106  	return s
 14107  }
 14108  
 14109  // SetOutputNotebookURI sets the OutputNotebookURI field's value.
 14110  func (s *NotebookExecution) SetOutputNotebookURI(v string) *NotebookExecution {
 14111  	s.OutputNotebookURI = &v
 14112  	return s
 14113  }
 14114  
 14115  // SetStartTime sets the StartTime field's value.
 14116  func (s *NotebookExecution) SetStartTime(v time.Time) *NotebookExecution {
 14117  	s.StartTime = &v
 14118  	return s
 14119  }
 14120  
 14121  // SetStatus sets the Status field's value.
 14122  func (s *NotebookExecution) SetStatus(v string) *NotebookExecution {
 14123  	s.Status = &v
 14124  	return s
 14125  }
 14126  
 14127  // SetTags sets the Tags field's value.
 14128  func (s *NotebookExecution) SetTags(v []*Tag) *NotebookExecution {
 14129  	s.Tags = v
 14130  	return s
 14131  }
 14132  
 14133  // Details for a notebook execution. The details include information such as
 14134  // the unique ID and status of the notebook execution.
 14135  type NotebookExecutionSummary struct {
 14136  	_ struct{} `type:"structure"`
 14137  
 14138  	// The unique identifier of the editor associated with the notebook execution.
 14139  	EditorId *string `type:"string"`
 14140  
 14141  	// The timestamp when notebook execution started.
 14142  	EndTime *time.Time `type:"timestamp"`
 14143  
 14144  	// The unique identifier of the notebook execution.
 14145  	NotebookExecutionId *string `type:"string"`
 14146  
 14147  	// The name of the notebook execution.
 14148  	NotebookExecutionName *string `type:"string"`
 14149  
 14150  	// The timestamp when notebook execution started.
 14151  	StartTime *time.Time `type:"timestamp"`
 14152  
 14153  	// The status of the notebook execution.
 14154  	//
 14155  	//    * START_PENDING indicates that the cluster has received the execution
 14156  	//    request but execution has not begun.
 14157  	//
 14158  	//    * STARTING indicates that the execution is starting on the cluster.
 14159  	//
 14160  	//    * RUNNING indicates that the execution is being processed by the cluster.
 14161  	//
 14162  	//    * FINISHING indicates that execution processing is in the final stages.
 14163  	//
 14164  	//    * FINISHED indicates that the execution has completed without error.
 14165  	//
 14166  	//    * FAILING indicates that the execution is failing and will not finish
 14167  	//    successfully.
 14168  	//
 14169  	//    * FAILED indicates that the execution failed.
 14170  	//
 14171  	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
 14172  	//    request and the stop is pending.
 14173  	//
 14174  	//    * STOPPING indicates that the cluster is in the process of stopping the
 14175  	//    execution as a result of a StopNotebookExecution request.
 14176  	//
 14177  	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
 14178  	//    request.
 14179  	Status *string `type:"string" enum:"NotebookExecutionStatus"`
 14180  }
 14181  
 14182  // String returns the string representation.
 14183  //
 14184  // API parameter values that are decorated as "sensitive" in the API will not
 14185  // be included in the string output. The member name will be present, but the
 14186  // value will be replaced with "sensitive".
 14187  func (s NotebookExecutionSummary) String() string {
 14188  	return awsutil.Prettify(s)
 14189  }
 14190  
 14191  // GoString returns the string representation.
 14192  //
 14193  // API parameter values that are decorated as "sensitive" in the API will not
 14194  // be included in the string output. The member name will be present, but the
 14195  // value will be replaced with "sensitive".
 14196  func (s NotebookExecutionSummary) GoString() string {
 14197  	return s.String()
 14198  }
 14199  
 14200  // SetEditorId sets the EditorId field's value.
 14201  func (s *NotebookExecutionSummary) SetEditorId(v string) *NotebookExecutionSummary {
 14202  	s.EditorId = &v
 14203  	return s
 14204  }
 14205  
 14206  // SetEndTime sets the EndTime field's value.
 14207  func (s *NotebookExecutionSummary) SetEndTime(v time.Time) *NotebookExecutionSummary {
 14208  	s.EndTime = &v
 14209  	return s
 14210  }
 14211  
 14212  // SetNotebookExecutionId sets the NotebookExecutionId field's value.
 14213  func (s *NotebookExecutionSummary) SetNotebookExecutionId(v string) *NotebookExecutionSummary {
 14214  	s.NotebookExecutionId = &v
 14215  	return s
 14216  }
 14217  
 14218  // SetNotebookExecutionName sets the NotebookExecutionName field's value.
 14219  func (s *NotebookExecutionSummary) SetNotebookExecutionName(v string) *NotebookExecutionSummary {
 14220  	s.NotebookExecutionName = &v
 14221  	return s
 14222  }
 14223  
 14224  // SetStartTime sets the StartTime field's value.
 14225  func (s *NotebookExecutionSummary) SetStartTime(v time.Time) *NotebookExecutionSummary {
 14226  	s.StartTime = &v
 14227  	return s
 14228  }
 14229  
 14230  // SetStatus sets the Status field's value.
 14231  func (s *NotebookExecutionSummary) SetStatus(v string) *NotebookExecutionSummary {
 14232  	s.Status = &v
 14233  	return s
 14234  }
 14235  
 14236  // Describes the strategy for using unused Capacity Reservations for fulfilling
 14237  // On-Demand capacity.
 14238  type OnDemandCapacityReservationOptions struct {
 14239  	_ struct{} `type:"structure"`
 14240  
 14241  	// Indicates the instance's Capacity Reservation preferences. Possible preferences
 14242  	// include:
 14243  	//
 14244  	//    * open - The instance can run in any open Capacity Reservation that has
 14245  	//    matching attributes (instance type, platform, Availability Zone).
 14246  	//
 14247  	//    * none - The instance avoids running in a Capacity Reservation even if
 14248  	//    one is available. The instance runs as an On-Demand Instance.
 14249  	CapacityReservationPreference *string `type:"string" enum:"OnDemandCapacityReservationPreference"`
 14250  
 14251  	// The ARN of the Capacity Reservation resource group in which to run the instance.
 14252  	CapacityReservationResourceGroupArn *string `type:"string"`
 14253  
 14254  	// Indicates whether to use unused Capacity Reservations for fulfilling On-Demand
 14255  	// capacity.
 14256  	//
 14257  	// If you specify use-capacity-reservations-first, the fleet uses unused Capacity
 14258  	// Reservations to fulfill On-Demand capacity up to the target On-Demand capacity.
 14259  	// If multiple instance pools have unused Capacity Reservations, the On-Demand
 14260  	// allocation strategy (lowest-price) is applied. If the number of unused Capacity
 14261  	// Reservations is less than the On-Demand target capacity, the remaining On-Demand
 14262  	// target capacity is launched according to the On-Demand allocation strategy
 14263  	// (lowest-price).
 14264  	//
 14265  	// If you do not specify a value, the fleet fulfills the On-Demand capacity
 14266  	// according to the chosen On-Demand allocation strategy.
 14267  	UsageStrategy *string `type:"string" enum:"OnDemandCapacityReservationUsageStrategy"`
 14268  }
 14269  
 14270  // String returns the string representation.
 14271  //
 14272  // API parameter values that are decorated as "sensitive" in the API will not
 14273  // be included in the string output. The member name will be present, but the
 14274  // value will be replaced with "sensitive".
 14275  func (s OnDemandCapacityReservationOptions) String() string {
 14276  	return awsutil.Prettify(s)
 14277  }
 14278  
 14279  // GoString returns the string representation.
 14280  //
 14281  // API parameter values that are decorated as "sensitive" in the API will not
 14282  // be included in the string output. The member name will be present, but the
 14283  // value will be replaced with "sensitive".
 14284  func (s OnDemandCapacityReservationOptions) GoString() string {
 14285  	return s.String()
 14286  }
 14287  
 14288  // SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
 14289  func (s *OnDemandCapacityReservationOptions) SetCapacityReservationPreference(v string) *OnDemandCapacityReservationOptions {
 14290  	s.CapacityReservationPreference = &v
 14291  	return s
 14292  }
 14293  
 14294  // SetCapacityReservationResourceGroupArn sets the CapacityReservationResourceGroupArn field's value.
 14295  func (s *OnDemandCapacityReservationOptions) SetCapacityReservationResourceGroupArn(v string) *OnDemandCapacityReservationOptions {
 14296  	s.CapacityReservationResourceGroupArn = &v
 14297  	return s
 14298  }
 14299  
 14300  // SetUsageStrategy sets the UsageStrategy field's value.
 14301  func (s *OnDemandCapacityReservationOptions) SetUsageStrategy(v string) *OnDemandCapacityReservationOptions {
 14302  	s.UsageStrategy = &v
 14303  	return s
 14304  }
 14305  
 14306  // The launch specification for On-Demand Instances in the instance fleet, which
 14307  // determines the allocation strategy.
 14308  //
 14309  // The instance fleet configuration is available only in Amazon EMR versions
 14310  // 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
 14311  // strategy is available in Amazon EMR version 5.12.1 and later.
 14312  type OnDemandProvisioningSpecification struct {
 14313  	_ struct{} `type:"structure"`
 14314  
 14315  	// Specifies the strategy to use in launching On-Demand instance fleets. Currently,
 14316  	// the only option is lowest-price (the default), which launches the lowest
 14317  	// price first.
 14318  	//
 14319  	// AllocationStrategy is a required field
 14320  	AllocationStrategy *string `type:"string" required:"true" enum:"OnDemandProvisioningAllocationStrategy"`
 14321  
 14322  	// The launch specification for On-Demand instances in the instance fleet, which
 14323  	// determines the allocation strategy.
 14324  	CapacityReservationOptions *OnDemandCapacityReservationOptions `type:"structure"`
 14325  }
 14326  
 14327  // String returns the string representation.
 14328  //
 14329  // API parameter values that are decorated as "sensitive" in the API will not
 14330  // be included in the string output. The member name will be present, but the
 14331  // value will be replaced with "sensitive".
 14332  func (s OnDemandProvisioningSpecification) String() string {
 14333  	return awsutil.Prettify(s)
 14334  }
 14335  
 14336  // GoString returns the string representation.
 14337  //
 14338  // API parameter values that are decorated as "sensitive" in the API will not
 14339  // be included in the string output. The member name will be present, but the
 14340  // value will be replaced with "sensitive".
 14341  func (s OnDemandProvisioningSpecification) GoString() string {
 14342  	return s.String()
 14343  }
 14344  
 14345  // Validate inspects the fields of the type to determine if they are valid.
 14346  func (s *OnDemandProvisioningSpecification) Validate() error {
 14347  	invalidParams := request.ErrInvalidParams{Context: "OnDemandProvisioningSpecification"}
 14348  	if s.AllocationStrategy == nil {
 14349  		invalidParams.Add(request.NewErrParamRequired("AllocationStrategy"))
 14350  	}
 14351  
 14352  	if invalidParams.Len() > 0 {
 14353  		return invalidParams
 14354  	}
 14355  	return nil
 14356  }
 14357  
 14358  // SetAllocationStrategy sets the AllocationStrategy field's value.
 14359  func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnDemandProvisioningSpecification {
 14360  	s.AllocationStrategy = &v
 14361  	return s
 14362  }
 14363  
 14364  // SetCapacityReservationOptions sets the CapacityReservationOptions field's value.
 14365  func (s *OnDemandProvisioningSpecification) SetCapacityReservationOptions(v *OnDemandCapacityReservationOptions) *OnDemandProvisioningSpecification {
 14366  	s.CapacityReservationOptions = v
 14367  	return s
 14368  }
 14369  
 14370  // Placement group configuration for an Amazon EMR cluster. The configuration
 14371  // specifies the placement strategy that can be applied to instance roles during
 14372  // cluster creation.
 14373  //
 14374  // To use this configuration, consider attaching managed policy AmazonElasticMapReducePlacementGroupPolicy
 14375  // to the EMR role.
 14376  type PlacementGroupConfig struct {
 14377  	_ struct{} `type:"structure"`
 14378  
 14379  	// Role of the instance in the cluster.
 14380  	//
 14381  	// Starting with Amazon EMR version 5.23.0, the only supported instance role
 14382  	// is MASTER.
 14383  	//
 14384  	// InstanceRole is a required field
 14385  	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
 14386  
 14387  	// EC2 Placement Group strategy associated with instance role.
 14388  	//
 14389  	// Starting with Amazon EMR version 5.23.0, the only supported placement strategy
 14390  	// is SPREAD for the MASTER instance role.
 14391  	PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"`
 14392  }
 14393  
 14394  // String returns the string representation.
 14395  //
 14396  // API parameter values that are decorated as "sensitive" in the API will not
 14397  // be included in the string output. The member name will be present, but the
 14398  // value will be replaced with "sensitive".
 14399  func (s PlacementGroupConfig) String() string {
 14400  	return awsutil.Prettify(s)
 14401  }
 14402  
 14403  // GoString returns the string representation.
 14404  //
 14405  // API parameter values that are decorated as "sensitive" in the API will not
 14406  // be included in the string output. The member name will be present, but the
 14407  // value will be replaced with "sensitive".
 14408  func (s PlacementGroupConfig) GoString() string {
 14409  	return s.String()
 14410  }
 14411  
 14412  // Validate inspects the fields of the type to determine if they are valid.
 14413  func (s *PlacementGroupConfig) Validate() error {
 14414  	invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"}
 14415  	if s.InstanceRole == nil {
 14416  		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
 14417  	}
 14418  
 14419  	if invalidParams.Len() > 0 {
 14420  		return invalidParams
 14421  	}
 14422  	return nil
 14423  }
 14424  
 14425  // SetInstanceRole sets the InstanceRole field's value.
 14426  func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig {
 14427  	s.InstanceRole = &v
 14428  	return s
 14429  }
 14430  
 14431  // SetPlacementStrategy sets the PlacementStrategy field's value.
 14432  func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig {
 14433  	s.PlacementStrategy = &v
 14434  	return s
 14435  }
 14436  
 14437  // The Amazon EC2 Availability Zone configuration of the cluster (job flow).
 14438  type PlacementType struct {
 14439  	_ struct{} `type:"structure"`
 14440  
 14441  	// The Amazon EC2 Availability Zone for the cluster. AvailabilityZone is used
 14442  	// for uniform instance groups, while AvailabilityZones (plural) is used for
 14443  	// instance fleets.
 14444  	AvailabilityZone *string `type:"string"`
 14445  
 14446  	// When multiple Availability Zones are specified, Amazon EMR evaluates them
 14447  	// and launches instances in the optimal Availability Zone. AvailabilityZones
 14448  	// is used for instance fleets, while AvailabilityZone (singular) is used for
 14449  	// uniform instance groups.
 14450  	//
 14451  	// The instance fleet configuration is available only in Amazon EMR versions
 14452  	// 4.8.0 and later, excluding 5.0.x versions.
 14453  	AvailabilityZones []*string `type:"list"`
 14454  }
 14455  
 14456  // String returns the string representation.
 14457  //
 14458  // API parameter values that are decorated as "sensitive" in the API will not
 14459  // be included in the string output. The member name will be present, but the
 14460  // value will be replaced with "sensitive".
 14461  func (s PlacementType) String() string {
 14462  	return awsutil.Prettify(s)
 14463  }
 14464  
 14465  // GoString returns the string representation.
 14466  //
 14467  // API parameter values that are decorated as "sensitive" in the API will not
 14468  // be included in the string output. The member name will be present, but the
 14469  // value will be replaced with "sensitive".
 14470  func (s PlacementType) GoString() string {
 14471  	return s.String()
 14472  }
 14473  
 14474  // SetAvailabilityZone sets the AvailabilityZone field's value.
 14475  func (s *PlacementType) SetAvailabilityZone(v string) *PlacementType {
 14476  	s.AvailabilityZone = &v
 14477  	return s
 14478  }
 14479  
 14480  // SetAvailabilityZones sets the AvailabilityZones field's value.
 14481  func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType {
 14482  	s.AvailabilityZones = v
 14483  	return s
 14484  }
 14485  
 14486  // A list of port ranges that are permitted to allow inbound traffic from all
 14487  // public IP addresses. To specify a single port, use the same value for MinRange
 14488  // and MaxRange.
 14489  type PortRange struct {
 14490  	_ struct{} `type:"structure"`
 14491  
 14492  	// The smallest port number in a specified range of port numbers.
 14493  	MaxRange *int64 `type:"integer"`
 14494  
 14495  	// The smallest port number in a specified range of port numbers.
 14496  	//
 14497  	// MinRange is a required field
 14498  	MinRange *int64 `type:"integer" required:"true"`
 14499  }
 14500  
 14501  // String returns the string representation.
 14502  //
 14503  // API parameter values that are decorated as "sensitive" in the API will not
 14504  // be included in the string output. The member name will be present, but the
 14505  // value will be replaced with "sensitive".
 14506  func (s PortRange) String() string {
 14507  	return awsutil.Prettify(s)
 14508  }
 14509  
 14510  // GoString returns the string representation.
 14511  //
 14512  // API parameter values that are decorated as "sensitive" in the API will not
 14513  // be included in the string output. The member name will be present, but the
 14514  // value will be replaced with "sensitive".
 14515  func (s PortRange) GoString() string {
 14516  	return s.String()
 14517  }
 14518  
 14519  // Validate inspects the fields of the type to determine if they are valid.
 14520  func (s *PortRange) Validate() error {
 14521  	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
 14522  	if s.MaxRange != nil && *s.MaxRange < -1 {
 14523  		invalidParams.Add(request.NewErrParamMinValue("MaxRange", -1))
 14524  	}
 14525  	if s.MinRange == nil {
 14526  		invalidParams.Add(request.NewErrParamRequired("MinRange"))
 14527  	}
 14528  	if s.MinRange != nil && *s.MinRange < -1 {
 14529  		invalidParams.Add(request.NewErrParamMinValue("MinRange", -1))
 14530  	}
 14531  
 14532  	if invalidParams.Len() > 0 {
 14533  		return invalidParams
 14534  	}
 14535  	return nil
 14536  }
 14537  
 14538  // SetMaxRange sets the MaxRange field's value.
 14539  func (s *PortRange) SetMaxRange(v int64) *PortRange {
 14540  	s.MaxRange = &v
 14541  	return s
 14542  }
 14543  
 14544  // SetMinRange sets the MinRange field's value.
 14545  func (s *PortRange) SetMinRange(v int64) *PortRange {
 14546  	s.MinRange = &v
 14547  	return s
 14548  }
 14549  
 14550  type PutAutoScalingPolicyInput struct {
 14551  	_ struct{} `type:"structure"`
 14552  
 14553  	// Specifies the definition of the automatic scaling policy.
 14554  	//
 14555  	// AutoScalingPolicy is a required field
 14556  	AutoScalingPolicy *AutoScalingPolicy `type:"structure" required:"true"`
 14557  
 14558  	// Specifies the ID of a cluster. The instance group to which the automatic
 14559  	// scaling policy is applied is within this cluster.
 14560  	//
 14561  	// ClusterId is a required field
 14562  	ClusterId *string `type:"string" required:"true"`
 14563  
 14564  	// Specifies the ID of the instance group to which the automatic scaling policy
 14565  	// is applied.
 14566  	//
 14567  	// InstanceGroupId is a required field
 14568  	InstanceGroupId *string `type:"string" required:"true"`
 14569  }
 14570  
 14571  // String returns the string representation.
 14572  //
 14573  // API parameter values that are decorated as "sensitive" in the API will not
 14574  // be included in the string output. The member name will be present, but the
 14575  // value will be replaced with "sensitive".
 14576  func (s PutAutoScalingPolicyInput) String() string {
 14577  	return awsutil.Prettify(s)
 14578  }
 14579  
 14580  // GoString returns the string representation.
 14581  //
 14582  // API parameter values that are decorated as "sensitive" in the API will not
 14583  // be included in the string output. The member name will be present, but the
 14584  // value will be replaced with "sensitive".
 14585  func (s PutAutoScalingPolicyInput) GoString() string {
 14586  	return s.String()
 14587  }
 14588  
 14589  // Validate inspects the fields of the type to determine if they are valid.
 14590  func (s *PutAutoScalingPolicyInput) Validate() error {
 14591  	invalidParams := request.ErrInvalidParams{Context: "PutAutoScalingPolicyInput"}
 14592  	if s.AutoScalingPolicy == nil {
 14593  		invalidParams.Add(request.NewErrParamRequired("AutoScalingPolicy"))
 14594  	}
 14595  	if s.ClusterId == nil {
 14596  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 14597  	}
 14598  	if s.InstanceGroupId == nil {
 14599  		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
 14600  	}
 14601  	if s.AutoScalingPolicy != nil {
 14602  		if err := s.AutoScalingPolicy.Validate(); err != nil {
 14603  			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
 14604  		}
 14605  	}
 14606  
 14607  	if invalidParams.Len() > 0 {
 14608  		return invalidParams
 14609  	}
 14610  	return nil
 14611  }
 14612  
 14613  // SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
 14614  func (s *PutAutoScalingPolicyInput) SetAutoScalingPolicy(v *AutoScalingPolicy) *PutAutoScalingPolicyInput {
 14615  	s.AutoScalingPolicy = v
 14616  	return s
 14617  }
 14618  
 14619  // SetClusterId sets the ClusterId field's value.
 14620  func (s *PutAutoScalingPolicyInput) SetClusterId(v string) *PutAutoScalingPolicyInput {
 14621  	s.ClusterId = &v
 14622  	return s
 14623  }
 14624  
 14625  // SetInstanceGroupId sets the InstanceGroupId field's value.
 14626  func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScalingPolicyInput {
 14627  	s.InstanceGroupId = &v
 14628  	return s
 14629  }
 14630  
 14631  type PutAutoScalingPolicyOutput struct {
 14632  	_ struct{} `type:"structure"`
 14633  
 14634  	// The automatic scaling policy definition.
 14635  	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
 14636  
 14637  	// The Amazon Resource Name (ARN) of the cluster.
 14638  	ClusterArn *string `min:"20" type:"string"`
 14639  
 14640  	// Specifies the ID of a cluster. The instance group to which the automatic
 14641  	// scaling policy is applied is within this cluster.
 14642  	ClusterId *string `type:"string"`
 14643  
 14644  	// Specifies the ID of the instance group to which the scaling policy is applied.
 14645  	InstanceGroupId *string `type:"string"`
 14646  }
 14647  
 14648  // String returns the string representation.
 14649  //
 14650  // API parameter values that are decorated as "sensitive" in the API will not
 14651  // be included in the string output. The member name will be present, but the
 14652  // value will be replaced with "sensitive".
 14653  func (s PutAutoScalingPolicyOutput) String() string {
 14654  	return awsutil.Prettify(s)
 14655  }
 14656  
 14657  // GoString returns the string representation.
 14658  //
 14659  // API parameter values that are decorated as "sensitive" in the API will not
 14660  // be included in the string output. The member name will be present, but the
 14661  // value will be replaced with "sensitive".
 14662  func (s PutAutoScalingPolicyOutput) GoString() string {
 14663  	return s.String()
 14664  }
 14665  
 14666  // SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
 14667  func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *PutAutoScalingPolicyOutput {
 14668  	s.AutoScalingPolicy = v
 14669  	return s
 14670  }
 14671  
 14672  // SetClusterArn sets the ClusterArn field's value.
 14673  func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput {
 14674  	s.ClusterArn = &v
 14675  	return s
 14676  }
 14677  
 14678  // SetClusterId sets the ClusterId field's value.
 14679  func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput {
 14680  	s.ClusterId = &v
 14681  	return s
 14682  }
 14683  
 14684  // SetInstanceGroupId sets the InstanceGroupId field's value.
 14685  func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalingPolicyOutput {
 14686  	s.InstanceGroupId = &v
 14687  	return s
 14688  }
 14689  
 14690  type PutAutoTerminationPolicyInput struct {
 14691  	_ struct{} `type:"structure"`
 14692  
 14693  	// Specifies the auto-termination policy to attach to the cluster.
 14694  	AutoTerminationPolicy *AutoTerminationPolicy `type:"structure"`
 14695  
 14696  	// Specifies the ID of the Amazon EMR cluster to which the auto-termination
 14697  	// policy will be attached.
 14698  	//
 14699  	// ClusterId is a required field
 14700  	ClusterId *string `type:"string" required:"true"`
 14701  }
 14702  
 14703  // String returns the string representation.
 14704  //
 14705  // API parameter values that are decorated as "sensitive" in the API will not
 14706  // be included in the string output. The member name will be present, but the
 14707  // value will be replaced with "sensitive".
 14708  func (s PutAutoTerminationPolicyInput) String() string {
 14709  	return awsutil.Prettify(s)
 14710  }
 14711  
 14712  // GoString returns the string representation.
 14713  //
 14714  // API parameter values that are decorated as "sensitive" in the API will not
 14715  // be included in the string output. The member name will be present, but the
 14716  // value will be replaced with "sensitive".
 14717  func (s PutAutoTerminationPolicyInput) GoString() string {
 14718  	return s.String()
 14719  }
 14720  
 14721  // Validate inspects the fields of the type to determine if they are valid.
 14722  func (s *PutAutoTerminationPolicyInput) Validate() error {
 14723  	invalidParams := request.ErrInvalidParams{Context: "PutAutoTerminationPolicyInput"}
 14724  	if s.ClusterId == nil {
 14725  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 14726  	}
 14727  
 14728  	if invalidParams.Len() > 0 {
 14729  		return invalidParams
 14730  	}
 14731  	return nil
 14732  }
 14733  
 14734  // SetAutoTerminationPolicy sets the AutoTerminationPolicy field's value.
 14735  func (s *PutAutoTerminationPolicyInput) SetAutoTerminationPolicy(v *AutoTerminationPolicy) *PutAutoTerminationPolicyInput {
 14736  	s.AutoTerminationPolicy = v
 14737  	return s
 14738  }
 14739  
 14740  // SetClusterId sets the ClusterId field's value.
 14741  func (s *PutAutoTerminationPolicyInput) SetClusterId(v string) *PutAutoTerminationPolicyInput {
 14742  	s.ClusterId = &v
 14743  	return s
 14744  }
 14745  
 14746  type PutAutoTerminationPolicyOutput struct {
 14747  	_ struct{} `type:"structure"`
 14748  }
 14749  
 14750  // String returns the string representation.
 14751  //
 14752  // API parameter values that are decorated as "sensitive" in the API will not
 14753  // be included in the string output. The member name will be present, but the
 14754  // value will be replaced with "sensitive".
 14755  func (s PutAutoTerminationPolicyOutput) String() string {
 14756  	return awsutil.Prettify(s)
 14757  }
 14758  
 14759  // GoString returns the string representation.
 14760  //
 14761  // API parameter values that are decorated as "sensitive" in the API will not
 14762  // be included in the string output. The member name will be present, but the
 14763  // value will be replaced with "sensitive".
 14764  func (s PutAutoTerminationPolicyOutput) GoString() string {
 14765  	return s.String()
 14766  }
 14767  
 14768  type PutBlockPublicAccessConfigurationInput struct {
 14769  	_ struct{} `type:"structure"`
 14770  
 14771  	// A configuration for Amazon EMR block public access. The configuration applies
 14772  	// to all clusters created in your account for the current Region. The configuration
 14773  	// specifies whether block public access is enabled. If block public access
 14774  	// is enabled, security groups associated with the cluster cannot have rules
 14775  	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
 14776  	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
 14777  	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
 14778  	// and public access is allowed on this port. You can change this by updating
 14779  	// BlockPublicSecurityGroupRules to remove the exception.
 14780  	//
 14781  	// For accounts that created clusters in a Region before November 25, 2019,
 14782  	// block public access is disabled by default in that Region. To use this feature,
 14783  	// you must manually enable and configure it. For accounts that did not create
 14784  	// an EMR cluster in a Region before this date, block public access is enabled
 14785  	// by default in that Region.
 14786  	//
 14787  	// BlockPublicAccessConfiguration is a required field
 14788  	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
 14789  }
 14790  
 14791  // String returns the string representation.
 14792  //
 14793  // API parameter values that are decorated as "sensitive" in the API will not
 14794  // be included in the string output. The member name will be present, but the
 14795  // value will be replaced with "sensitive".
 14796  func (s PutBlockPublicAccessConfigurationInput) String() string {
 14797  	return awsutil.Prettify(s)
 14798  }
 14799  
 14800  // GoString returns the string representation.
 14801  //
 14802  // API parameter values that are decorated as "sensitive" in the API will not
 14803  // be included in the string output. The member name will be present, but the
 14804  // value will be replaced with "sensitive".
 14805  func (s PutBlockPublicAccessConfigurationInput) GoString() string {
 14806  	return s.String()
 14807  }
 14808  
 14809  // Validate inspects the fields of the type to determine if they are valid.
 14810  func (s *PutBlockPublicAccessConfigurationInput) Validate() error {
 14811  	invalidParams := request.ErrInvalidParams{Context: "PutBlockPublicAccessConfigurationInput"}
 14812  	if s.BlockPublicAccessConfiguration == nil {
 14813  		invalidParams.Add(request.NewErrParamRequired("BlockPublicAccessConfiguration"))
 14814  	}
 14815  	if s.BlockPublicAccessConfiguration != nil {
 14816  		if err := s.BlockPublicAccessConfiguration.Validate(); err != nil {
 14817  			invalidParams.AddNested("BlockPublicAccessConfiguration", err.(request.ErrInvalidParams))
 14818  		}
 14819  	}
 14820  
 14821  	if invalidParams.Len() > 0 {
 14822  		return invalidParams
 14823  	}
 14824  	return nil
 14825  }
 14826  
 14827  // SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
 14828  func (s *PutBlockPublicAccessConfigurationInput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *PutBlockPublicAccessConfigurationInput {
 14829  	s.BlockPublicAccessConfiguration = v
 14830  	return s
 14831  }
 14832  
 14833  type PutBlockPublicAccessConfigurationOutput struct {
 14834  	_ struct{} `type:"structure"`
 14835  }
 14836  
 14837  // String returns the string representation.
 14838  //
 14839  // API parameter values that are decorated as "sensitive" in the API will not
 14840  // be included in the string output. The member name will be present, but the
 14841  // value will be replaced with "sensitive".
 14842  func (s PutBlockPublicAccessConfigurationOutput) String() string {
 14843  	return awsutil.Prettify(s)
 14844  }
 14845  
 14846  // GoString returns the string representation.
 14847  //
 14848  // API parameter values that are decorated as "sensitive" in the API will not
 14849  // be included in the string output. The member name will be present, but the
 14850  // value will be replaced with "sensitive".
 14851  func (s PutBlockPublicAccessConfigurationOutput) GoString() string {
 14852  	return s.String()
 14853  }
 14854  
 14855  type PutManagedScalingPolicyInput struct {
 14856  	_ struct{} `type:"structure"`
 14857  
 14858  	// Specifies the ID of an EMR cluster where the managed scaling policy is attached.
 14859  	//
 14860  	// ClusterId is a required field
 14861  	ClusterId *string `type:"string" required:"true"`
 14862  
 14863  	// Specifies the constraints for the managed scaling policy.
 14864  	//
 14865  	// ManagedScalingPolicy is a required field
 14866  	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure" required:"true"`
 14867  }
 14868  
 14869  // String returns the string representation.
 14870  //
 14871  // API parameter values that are decorated as "sensitive" in the API will not
 14872  // be included in the string output. The member name will be present, but the
 14873  // value will be replaced with "sensitive".
 14874  func (s PutManagedScalingPolicyInput) String() string {
 14875  	return awsutil.Prettify(s)
 14876  }
 14877  
 14878  // GoString returns the string representation.
 14879  //
 14880  // API parameter values that are decorated as "sensitive" in the API will not
 14881  // be included in the string output. The member name will be present, but the
 14882  // value will be replaced with "sensitive".
 14883  func (s PutManagedScalingPolicyInput) GoString() string {
 14884  	return s.String()
 14885  }
 14886  
 14887  // Validate inspects the fields of the type to determine if they are valid.
 14888  func (s *PutManagedScalingPolicyInput) Validate() error {
 14889  	invalidParams := request.ErrInvalidParams{Context: "PutManagedScalingPolicyInput"}
 14890  	if s.ClusterId == nil {
 14891  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 14892  	}
 14893  	if s.ManagedScalingPolicy == nil {
 14894  		invalidParams.Add(request.NewErrParamRequired("ManagedScalingPolicy"))
 14895  	}
 14896  	if s.ManagedScalingPolicy != nil {
 14897  		if err := s.ManagedScalingPolicy.Validate(); err != nil {
 14898  			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
 14899  		}
 14900  	}
 14901  
 14902  	if invalidParams.Len() > 0 {
 14903  		return invalidParams
 14904  	}
 14905  	return nil
 14906  }
 14907  
 14908  // SetClusterId sets the ClusterId field's value.
 14909  func (s *PutManagedScalingPolicyInput) SetClusterId(v string) *PutManagedScalingPolicyInput {
 14910  	s.ClusterId = &v
 14911  	return s
 14912  }
 14913  
 14914  // SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
 14915  func (s *PutManagedScalingPolicyInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *PutManagedScalingPolicyInput {
 14916  	s.ManagedScalingPolicy = v
 14917  	return s
 14918  }
 14919  
 14920  type PutManagedScalingPolicyOutput struct {
 14921  	_ struct{} `type:"structure"`
 14922  }
 14923  
 14924  // String returns the string representation.
 14925  //
 14926  // API parameter values that are decorated as "sensitive" in the API will not
 14927  // be included in the string output. The member name will be present, but the
 14928  // value will be replaced with "sensitive".
 14929  func (s PutManagedScalingPolicyOutput) String() string {
 14930  	return awsutil.Prettify(s)
 14931  }
 14932  
 14933  // GoString returns the string representation.
 14934  //
 14935  // API parameter values that are decorated as "sensitive" in the API will not
 14936  // be included in the string output. The member name will be present, but the
 14937  // value will be replaced with "sensitive".
 14938  func (s PutManagedScalingPolicyOutput) GoString() string {
 14939  	return s.String()
 14940  }
 14941  
 14942  // The release label filters by application or version prefix.
 14943  type ReleaseLabelFilter struct {
 14944  	_ struct{} `type:"structure"`
 14945  
 14946  	// Optional release label application filter. For example, spark@2.1.0.
 14947  	Application *string `type:"string"`
 14948  
 14949  	// Optional release label version prefix filter. For example, emr-5.
 14950  	Prefix *string `type:"string"`
 14951  }
 14952  
 14953  // String returns the string representation.
 14954  //
 14955  // API parameter values that are decorated as "sensitive" in the API will not
 14956  // be included in the string output. The member name will be present, but the
 14957  // value will be replaced with "sensitive".
 14958  func (s ReleaseLabelFilter) String() string {
 14959  	return awsutil.Prettify(s)
 14960  }
 14961  
 14962  // GoString returns the string representation.
 14963  //
 14964  // API parameter values that are decorated as "sensitive" in the API will not
 14965  // be included in the string output. The member name will be present, but the
 14966  // value will be replaced with "sensitive".
 14967  func (s ReleaseLabelFilter) GoString() string {
 14968  	return s.String()
 14969  }
 14970  
 14971  // SetApplication sets the Application field's value.
 14972  func (s *ReleaseLabelFilter) SetApplication(v string) *ReleaseLabelFilter {
 14973  	s.Application = &v
 14974  	return s
 14975  }
 14976  
 14977  // SetPrefix sets the Prefix field's value.
 14978  func (s *ReleaseLabelFilter) SetPrefix(v string) *ReleaseLabelFilter {
 14979  	s.Prefix = &v
 14980  	return s
 14981  }
 14982  
 14983  type RemoveAutoScalingPolicyInput struct {
 14984  	_ struct{} `type:"structure"`
 14985  
 14986  	// Specifies the ID of a cluster. The instance group to which the automatic
 14987  	// scaling policy is applied is within this cluster.
 14988  	//
 14989  	// ClusterId is a required field
 14990  	ClusterId *string `type:"string" required:"true"`
 14991  
 14992  	// Specifies the ID of the instance group to which the scaling policy is applied.
 14993  	//
 14994  	// InstanceGroupId is a required field
 14995  	InstanceGroupId *string `type:"string" required:"true"`
 14996  }
 14997  
 14998  // String returns the string representation.
 14999  //
 15000  // API parameter values that are decorated as "sensitive" in the API will not
 15001  // be included in the string output. The member name will be present, but the
 15002  // value will be replaced with "sensitive".
 15003  func (s RemoveAutoScalingPolicyInput) String() string {
 15004  	return awsutil.Prettify(s)
 15005  }
 15006  
 15007  // GoString returns the string representation.
 15008  //
 15009  // API parameter values that are decorated as "sensitive" in the API will not
 15010  // be included in the string output. The member name will be present, but the
 15011  // value will be replaced with "sensitive".
 15012  func (s RemoveAutoScalingPolicyInput) GoString() string {
 15013  	return s.String()
 15014  }
 15015  
 15016  // Validate inspects the fields of the type to determine if they are valid.
 15017  func (s *RemoveAutoScalingPolicyInput) Validate() error {
 15018  	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoScalingPolicyInput"}
 15019  	if s.ClusterId == nil {
 15020  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 15021  	}
 15022  	if s.InstanceGroupId == nil {
 15023  		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
 15024  	}
 15025  
 15026  	if invalidParams.Len() > 0 {
 15027  		return invalidParams
 15028  	}
 15029  	return nil
 15030  }
 15031  
 15032  // SetClusterId sets the ClusterId field's value.
 15033  func (s *RemoveAutoScalingPolicyInput) SetClusterId(v string) *RemoveAutoScalingPolicyInput {
 15034  	s.ClusterId = &v
 15035  	return s
 15036  }
 15037  
 15038  // SetInstanceGroupId sets the InstanceGroupId field's value.
 15039  func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoScalingPolicyInput {
 15040  	s.InstanceGroupId = &v
 15041  	return s
 15042  }
 15043  
 15044  type RemoveAutoScalingPolicyOutput struct {
 15045  	_ struct{} `type:"structure"`
 15046  }
 15047  
 15048  // String returns the string representation.
 15049  //
 15050  // API parameter values that are decorated as "sensitive" in the API will not
 15051  // be included in the string output. The member name will be present, but the
 15052  // value will be replaced with "sensitive".
 15053  func (s RemoveAutoScalingPolicyOutput) String() string {
 15054  	return awsutil.Prettify(s)
 15055  }
 15056  
 15057  // GoString returns the string representation.
 15058  //
 15059  // API parameter values that are decorated as "sensitive" in the API will not
 15060  // be included in the string output. The member name will be present, but the
 15061  // value will be replaced with "sensitive".
 15062  func (s RemoveAutoScalingPolicyOutput) GoString() string {
 15063  	return s.String()
 15064  }
 15065  
 15066  type RemoveAutoTerminationPolicyInput struct {
 15067  	_ struct{} `type:"structure"`
 15068  
 15069  	// Specifies the ID of the Amazon EMR cluster from which the auto-termination
 15070  	// policy will be removed.
 15071  	//
 15072  	// ClusterId is a required field
 15073  	ClusterId *string `type:"string" required:"true"`
 15074  }
 15075  
 15076  // String returns the string representation.
 15077  //
 15078  // API parameter values that are decorated as "sensitive" in the API will not
 15079  // be included in the string output. The member name will be present, but the
 15080  // value will be replaced with "sensitive".
 15081  func (s RemoveAutoTerminationPolicyInput) String() string {
 15082  	return awsutil.Prettify(s)
 15083  }
 15084  
 15085  // GoString returns the string representation.
 15086  //
 15087  // API parameter values that are decorated as "sensitive" in the API will not
 15088  // be included in the string output. The member name will be present, but the
 15089  // value will be replaced with "sensitive".
 15090  func (s RemoveAutoTerminationPolicyInput) GoString() string {
 15091  	return s.String()
 15092  }
 15093  
 15094  // Validate inspects the fields of the type to determine if they are valid.
 15095  func (s *RemoveAutoTerminationPolicyInput) Validate() error {
 15096  	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoTerminationPolicyInput"}
 15097  	if s.ClusterId == nil {
 15098  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 15099  	}
 15100  
 15101  	if invalidParams.Len() > 0 {
 15102  		return invalidParams
 15103  	}
 15104  	return nil
 15105  }
 15106  
 15107  // SetClusterId sets the ClusterId field's value.
 15108  func (s *RemoveAutoTerminationPolicyInput) SetClusterId(v string) *RemoveAutoTerminationPolicyInput {
 15109  	s.ClusterId = &v
 15110  	return s
 15111  }
 15112  
 15113  type RemoveAutoTerminationPolicyOutput struct {
 15114  	_ struct{} `type:"structure"`
 15115  }
 15116  
 15117  // String returns the string representation.
 15118  //
 15119  // API parameter values that are decorated as "sensitive" in the API will not
 15120  // be included in the string output. The member name will be present, but the
 15121  // value will be replaced with "sensitive".
 15122  func (s RemoveAutoTerminationPolicyOutput) String() string {
 15123  	return awsutil.Prettify(s)
 15124  }
 15125  
 15126  // GoString returns the string representation.
 15127  //
 15128  // API parameter values that are decorated as "sensitive" in the API will not
 15129  // be included in the string output. The member name will be present, but the
 15130  // value will be replaced with "sensitive".
 15131  func (s RemoveAutoTerminationPolicyOutput) GoString() string {
 15132  	return s.String()
 15133  }
 15134  
 15135  type RemoveManagedScalingPolicyInput struct {
 15136  	_ struct{} `type:"structure"`
 15137  
 15138  	// Specifies the ID of the cluster from which the managed scaling policy will
 15139  	// be removed.
 15140  	//
 15141  	// ClusterId is a required field
 15142  	ClusterId *string `type:"string" required:"true"`
 15143  }
 15144  
 15145  // String returns the string representation.
 15146  //
 15147  // API parameter values that are decorated as "sensitive" in the API will not
 15148  // be included in the string output. The member name will be present, but the
 15149  // value will be replaced with "sensitive".
 15150  func (s RemoveManagedScalingPolicyInput) String() string {
 15151  	return awsutil.Prettify(s)
 15152  }
 15153  
 15154  // GoString returns the string representation.
 15155  //
 15156  // API parameter values that are decorated as "sensitive" in the API will not
 15157  // be included in the string output. The member name will be present, but the
 15158  // value will be replaced with "sensitive".
 15159  func (s RemoveManagedScalingPolicyInput) GoString() string {
 15160  	return s.String()
 15161  }
 15162  
 15163  // Validate inspects the fields of the type to determine if they are valid.
 15164  func (s *RemoveManagedScalingPolicyInput) Validate() error {
 15165  	invalidParams := request.ErrInvalidParams{Context: "RemoveManagedScalingPolicyInput"}
 15166  	if s.ClusterId == nil {
 15167  		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
 15168  	}
 15169  
 15170  	if invalidParams.Len() > 0 {
 15171  		return invalidParams
 15172  	}
 15173  	return nil
 15174  }
 15175  
 15176  // SetClusterId sets the ClusterId field's value.
 15177  func (s *RemoveManagedScalingPolicyInput) SetClusterId(v string) *RemoveManagedScalingPolicyInput {
 15178  	s.ClusterId = &v
 15179  	return s
 15180  }
 15181  
 15182  type RemoveManagedScalingPolicyOutput struct {
 15183  	_ struct{} `type:"structure"`
 15184  }
 15185  
 15186  // String returns the string representation.
 15187  //
 15188  // API parameter values that are decorated as "sensitive" in the API will not
 15189  // be included in the string output. The member name will be present, but the
 15190  // value will be replaced with "sensitive".
 15191  func (s RemoveManagedScalingPolicyOutput) String() string {
 15192  	return awsutil.Prettify(s)
 15193  }
 15194  
 15195  // GoString returns the string representation.
 15196  //
 15197  // API parameter values that are decorated as "sensitive" in the API will not
 15198  // be included in the string output. The member name will be present, but the
 15199  // value will be replaced with "sensitive".
 15200  func (s RemoveManagedScalingPolicyOutput) GoString() string {
 15201  	return s.String()
 15202  }
 15203  
 15204  // This input identifies an Amazon EMR resource and a list of tags to remove.
 15205  type RemoveTagsInput struct {
 15206  	_ struct{} `type:"structure"`
 15207  
 15208  	// The Amazon EMR resource identifier from which tags will be removed. For example,
 15209  	// a cluster identifier or an Amazon EMR Studio ID.
 15210  	//
 15211  	// ResourceId is a required field
 15212  	ResourceId *string `type:"string" required:"true"`
 15213  
 15214  	// A list of tag keys to remove from the resource.
 15215  	//
 15216  	// TagKeys is a required field
 15217  	TagKeys []*string `type:"list" required:"true"`
 15218  }
 15219  
 15220  // String returns the string representation.
 15221  //
 15222  // API parameter values that are decorated as "sensitive" in the API will not
 15223  // be included in the string output. The member name will be present, but the
 15224  // value will be replaced with "sensitive".
 15225  func (s RemoveTagsInput) String() string {
 15226  	return awsutil.Prettify(s)
 15227  }
 15228  
 15229  // GoString returns the string representation.
 15230  //
 15231  // API parameter values that are decorated as "sensitive" in the API will not
 15232  // be included in the string output. The member name will be present, but the
 15233  // value will be replaced with "sensitive".
 15234  func (s RemoveTagsInput) GoString() string {
 15235  	return s.String()
 15236  }
 15237  
 15238  // Validate inspects the fields of the type to determine if they are valid.
 15239  func (s *RemoveTagsInput) Validate() error {
 15240  	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
 15241  	if s.ResourceId == nil {
 15242  		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
 15243  	}
 15244  	if s.TagKeys == nil {
 15245  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 15246  	}
 15247  
 15248  	if invalidParams.Len() > 0 {
 15249  		return invalidParams
 15250  	}
 15251  	return nil
 15252  }
 15253  
 15254  // SetResourceId sets the ResourceId field's value.
 15255  func (s *RemoveTagsInput) SetResourceId(v string) *RemoveTagsInput {
 15256  	s.ResourceId = &v
 15257  	return s
 15258  }
 15259  
 15260  // SetTagKeys sets the TagKeys field's value.
 15261  func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
 15262  	s.TagKeys = v
 15263  	return s
 15264  }
 15265  
 15266  // This output indicates the result of removing tags from the resource.
 15267  type RemoveTagsOutput struct {
 15268  	_ struct{} `type:"structure"`
 15269  }
 15270  
 15271  // String returns the string representation.
 15272  //
 15273  // API parameter values that are decorated as "sensitive" in the API will not
 15274  // be included in the string output. The member name will be present, but the
 15275  // value will be replaced with "sensitive".
 15276  func (s RemoveTagsOutput) String() string {
 15277  	return awsutil.Prettify(s)
 15278  }
 15279  
 15280  // GoString returns the string representation.
 15281  //
 15282  // API parameter values that are decorated as "sensitive" in the API will not
 15283  // be included in the string output. The member name will be present, but the
 15284  // value will be replaced with "sensitive".
 15285  func (s RemoveTagsOutput) GoString() string {
 15286  	return s.String()
 15287  }
 15288  
 15289  // Input to the RunJobFlow operation.
 15290  type RunJobFlowInput struct {
 15291  	_ struct{} `type:"structure"`
 15292  
 15293  	// A JSON string for selecting additional features.
 15294  	AdditionalInfo *string `type:"string"`
 15295  
 15296  	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
 15297  	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
 15298  	AmiVersion *string `type:"string"`
 15299  
 15300  	// Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
 15301  	// applications for Amazon EMR to install and configure when launching the cluster.
 15302  	// For a list of applications available for each Amazon EMR release version,
 15303  	// see the Amazon EMR Release Guide (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
 15304  	Applications []*Application `type:"list"`
 15305  
 15306  	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
 15307  	// The IAM role provides permissions that the automatic scaling feature requires
 15308  	// to launch and terminate EC2 instances in an instance group.
 15309  	AutoScalingRole *string `type:"string"`
 15310  
 15311  	// An auto-termination policy for an Amazon EMR cluster. An auto-termination
 15312  	// policy defines the amount of idle time in seconds after which a cluster automatically
 15313  	// terminates. For alternative cluster termination options, see Control cluster
 15314  	// termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html).
 15315  	AutoTerminationPolicy *AutoTerminationPolicy `type:"structure"`
 15316  
 15317  	// A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
 15318  	BootstrapActions []*BootstrapActionConfig `type:"list"`
 15319  
 15320  	// For Amazon EMR releases 4.0 and later. The list of configurations supplied
 15321  	// for the EMR cluster you are creating.
 15322  	Configurations []*Configuration `type:"list"`
 15323  
 15324  	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
 15325  	// Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when
 15326  	// it launches cluster EC2 instances. For more information about custom AMIs
 15327  	// in Amazon EMR, see Using a Custom AMI (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)
 15328  	// in the Amazon EMR Management Guide. If omitted, the cluster uses the base
 15329  	// Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and
 15330  	// 3.x, use AmiVersion instead.
 15331  	//
 15332  	// For information about creating a custom AMI, see Creating an Amazon EBS-Backed
 15333  	// Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
 15334  	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information
 15335  	// about finding an AMI ID, see Finding a Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
 15336  	CustomAmiId *string `type:"string"`
 15337  
 15338  	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
 15339  	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
 15340  	EbsRootVolumeSize *int64 `type:"integer"`
 15341  
 15342  	// A specification of the number and type of Amazon EC2 instances.
 15343  	//
 15344  	// Instances is a required field
 15345  	Instances *JobFlowInstancesConfig `type:"structure" required:"true"`
 15346  
 15347  	// Also called instance profile and EC2 role. An IAM role for an EMR cluster.
 15348  	// The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole.
 15349  	// In order to use the default role, you must have already created it using
 15350  	// the CLI or console.
 15351  	JobFlowRole *string `type:"string"`
 15352  
 15353  	// Attributes for Kerberos configuration when Kerberos authentication is enabled
 15354  	// using a security configuration. For more information see Use Kerberos Authentication
 15355  	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
 15356  	// in the Amazon EMR Management Guide.
 15357  	KerberosAttributes *KerberosAttributes `type:"structure"`
 15358  
 15359  	// The KMS key used for encrypting log files. If a value is not provided, the
 15360  	// logs remain encrypted by AES-256. This attribute is only available with Amazon
 15361  	// EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.
 15362  	LogEncryptionKmsKeyId *string `type:"string"`
 15363  
 15364  	// The location in Amazon S3 to write the log files of the job flow. If a value
 15365  	// is not provided, logs are not created.
 15366  	LogUri *string `type:"string"`
 15367  
 15368  	// The specified managed scaling policy for an Amazon EMR cluster.
 15369  	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
 15370  
 15371  	// The name of the job flow.
 15372  	//
 15373  	// Name is a required field
 15374  	Name *string `type:"string" required:"true"`
 15375  
 15376  	//
 15377  	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
 15378  	// use Applications.
 15379  	//
 15380  	// A list of strings that indicates third-party software to use with the job
 15381  	// flow that accepts a user argument list. EMR accepts and forwards the argument
 15382  	// list to the corresponding installation script as bootstrap action arguments.
 15383  	// For more information, see "Launch a Job Flow on the MapR Distribution for
 15384  	// Hadoop" in the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
 15385  	// Supported values are:
 15386  	//
 15387  	//    * "mapr-m3" - launch the cluster using MapR M3 Edition.
 15388  	//
 15389  	//    * "mapr-m5" - launch the cluster using MapR M5 Edition.
 15390  	//
 15391  	//    * "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5"
 15392  	//    - launch the job flow using MapR M3 or M5 Edition respectively.
 15393  	//
 15394  	//    * "mapr-m7" - launch the cluster using MapR M7 Edition.
 15395  	//
 15396  	//    * "hunk" - launch the cluster with the Hunk Big Data Analytics Platform.
 15397  	//
 15398  	//    * "hue"- launch the cluster with Hue installed.
 15399  	//
 15400  	//    * "spark" - launch the cluster with Apache Spark installed.
 15401  	//
 15402  	//    * "ganglia" - launch the cluster with the Ganglia Monitoring System installed.
 15403  	NewSupportedProducts []*SupportedProductConfig `type:"list"`
 15404  
 15405  	// The specified placement group configuration for an Amazon EMR cluster.
 15406  	PlacementGroupConfigs []*PlacementGroupConfig `type:"list"`
 15407  
 15408  	// The Amazon EMR release label, which determines the version of open-source
 15409  	// application packages installed on the cluster. Release labels are in the
 15410  	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
 15411  	// For more information about Amazon EMR release versions and included application
 15412  	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
 15413  	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
 15414  	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
 15415  	// use AmiVersion.
 15416  	ReleaseLabel *string `type:"string"`
 15417  
 15418  	// Applies only when CustomAmiID is used. Specifies which updates from the Amazon
 15419  	// Linux AMI package repositories to apply automatically when the instance boots
 15420  	// using the AMI. If omitted, the default is SECURITY, which indicates that
 15421  	// only security updates are applied. If NONE is specified, no updates are applied,
 15422  	// and all updates must be applied manually.
 15423  	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
 15424  
 15425  	// Specifies the way that individual Amazon EC2 instances terminate when an
 15426  	// automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
 15427  	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
 15428  	// regardless of when the request to terminate the instance was submitted. This
 15429  	// option is only available with Amazon EMR 5.1.0 and later and is the default
 15430  	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
 15431  	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
 15432  	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
 15433  	// With either behavior, Amazon EMR removes the least active nodes first and
 15434  	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
 15435  	// available only in Amazon EMR version 4.1.0 and later, and is the default
 15436  	// for versions of Amazon EMR earlier than 5.1.0.
 15437  	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
 15438  
 15439  	// The name of a security configuration to apply to the cluster.
 15440  	SecurityConfiguration *string `type:"string"`
 15441  
 15442  	// The IAM role that Amazon EMR assumes in order to access Amazon Web Services
 15443  	// resources on your behalf.
 15444  	ServiceRole *string `type:"string"`
 15445  
 15446  	// Specifies the number of steps that can be executed concurrently. The default
 15447  	// value is 1. The maximum value is 256.
 15448  	StepConcurrencyLevel *int64 `type:"integer"`
 15449  
 15450  	// A list of steps to run.
 15451  	Steps []*StepConfig `type:"list"`
 15452  
 15453  	//
 15454  	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
 15455  	// use Applications.
 15456  	//
 15457  	// A list of strings that indicates third-party software to use. For more information,
 15458  	// see the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
 15459  	// Currently supported values are:
 15460  	//
 15461  	//    * "mapr-m3" - launch the job flow using MapR M3 Edition.
 15462  	//
 15463  	//    * "mapr-m5" - launch the job flow using MapR M5 Edition.
 15464  	SupportedProducts []*string `type:"list"`
 15465  
 15466  	// A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
 15467  	Tags []*Tag `type:"list"`
 15468  
 15469  	// Set this value to true so that IAM principals in the Amazon Web Services
 15470  	// account associated with the cluster can perform EMR actions on the cluster
 15471  	// that their IAM policies allow. This value defaults to true for clusters created
 15472  	// using the EMR API or the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
 15473  	// command.
 15474  	//
 15475  	// When set to false, only the IAM principal that created the cluster and the
 15476  	// Amazon Web Services account root user can perform EMR actions for the cluster,
 15477  	// regardless of the IAM permissions policies attached to other IAM principals.
 15478  	// For more information, see Understanding the EMR Cluster VisibleToAllUsers
 15479  	// Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
 15480  	// in the Amazon EMRManagement Guide.
 15481  	VisibleToAllUsers *bool `type:"boolean"`
 15482  }
 15483  
 15484  // String returns the string representation.
 15485  //
 15486  // API parameter values that are decorated as "sensitive" in the API will not
 15487  // be included in the string output. The member name will be present, but the
 15488  // value will be replaced with "sensitive".
 15489  func (s RunJobFlowInput) String() string {
 15490  	return awsutil.Prettify(s)
 15491  }
 15492  
 15493  // GoString returns the string representation.
 15494  //
 15495  // API parameter values that are decorated as "sensitive" in the API will not
 15496  // be included in the string output. The member name will be present, but the
 15497  // value will be replaced with "sensitive".
 15498  func (s RunJobFlowInput) GoString() string {
 15499  	return s.String()
 15500  }
 15501  
 15502  // Validate inspects the fields of the type to determine if they are valid.
 15503  func (s *RunJobFlowInput) Validate() error {
 15504  	invalidParams := request.ErrInvalidParams{Context: "RunJobFlowInput"}
 15505  	if s.Instances == nil {
 15506  		invalidParams.Add(request.NewErrParamRequired("Instances"))
 15507  	}
 15508  	if s.Name == nil {
 15509  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15510  	}
 15511  	if s.BootstrapActions != nil {
 15512  		for i, v := range s.BootstrapActions {
 15513  			if v == nil {
 15514  				continue
 15515  			}
 15516  			if err := v.Validate(); err != nil {
 15517  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BootstrapActions", i), err.(request.ErrInvalidParams))
 15518  			}
 15519  		}
 15520  	}
 15521  	if s.Instances != nil {
 15522  		if err := s.Instances.Validate(); err != nil {
 15523  			invalidParams.AddNested("Instances", err.(request.ErrInvalidParams))
 15524  		}
 15525  	}
 15526  	if s.KerberosAttributes != nil {
 15527  		if err := s.KerberosAttributes.Validate(); err != nil {
 15528  			invalidParams.AddNested("KerberosAttributes", err.(request.ErrInvalidParams))
 15529  		}
 15530  	}
 15531  	if s.ManagedScalingPolicy != nil {
 15532  		if err := s.ManagedScalingPolicy.Validate(); err != nil {
 15533  			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
 15534  		}
 15535  	}
 15536  	if s.PlacementGroupConfigs != nil {
 15537  		for i, v := range s.PlacementGroupConfigs {
 15538  			if v == nil {
 15539  				continue
 15540  			}
 15541  			if err := v.Validate(); err != nil {
 15542  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams))
 15543  			}
 15544  		}
 15545  	}
 15546  	if s.Steps != nil {
 15547  		for i, v := range s.Steps {
 15548  			if v == nil {
 15549  				continue
 15550  			}
 15551  			if err := v.Validate(); err != nil {
 15552  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
 15553  			}
 15554  		}
 15555  	}
 15556  
 15557  	if invalidParams.Len() > 0 {
 15558  		return invalidParams
 15559  	}
 15560  	return nil
 15561  }
 15562  
 15563  // SetAdditionalInfo sets the AdditionalInfo field's value.
 15564  func (s *RunJobFlowInput) SetAdditionalInfo(v string) *RunJobFlowInput {
 15565  	s.AdditionalInfo = &v
 15566  	return s
 15567  }
 15568  
 15569  // SetAmiVersion sets the AmiVersion field's value.
 15570  func (s *RunJobFlowInput) SetAmiVersion(v string) *RunJobFlowInput {
 15571  	s.AmiVersion = &v
 15572  	return s
 15573  }
 15574  
 15575  // SetApplications sets the Applications field's value.
 15576  func (s *RunJobFlowInput) SetApplications(v []*Application) *RunJobFlowInput {
 15577  	s.Applications = v
 15578  	return s
 15579  }
 15580  
 15581  // SetAutoScalingRole sets the AutoScalingRole field's value.
 15582  func (s *RunJobFlowInput) SetAutoScalingRole(v string) *RunJobFlowInput {
 15583  	s.AutoScalingRole = &v
 15584  	return s
 15585  }
 15586  
 15587  // SetAutoTerminationPolicy sets the AutoTerminationPolicy field's value.
 15588  func (s *RunJobFlowInput) SetAutoTerminationPolicy(v *AutoTerminationPolicy) *RunJobFlowInput {
 15589  	s.AutoTerminationPolicy = v
 15590  	return s
 15591  }
 15592  
 15593  // SetBootstrapActions sets the BootstrapActions field's value.
 15594  func (s *RunJobFlowInput) SetBootstrapActions(v []*BootstrapActionConfig) *RunJobFlowInput {
 15595  	s.BootstrapActions = v
 15596  	return s
 15597  }
 15598  
 15599  // SetConfigurations sets the Configurations field's value.
 15600  func (s *RunJobFlowInput) SetConfigurations(v []*Configuration) *RunJobFlowInput {
 15601  	s.Configurations = v
 15602  	return s
 15603  }
 15604  
 15605  // SetCustomAmiId sets the CustomAmiId field's value.
 15606  func (s *RunJobFlowInput) SetCustomAmiId(v string) *RunJobFlowInput {
 15607  	s.CustomAmiId = &v
 15608  	return s
 15609  }
 15610  
 15611  // SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
 15612  func (s *RunJobFlowInput) SetEbsRootVolumeSize(v int64) *RunJobFlowInput {
 15613  	s.EbsRootVolumeSize = &v
 15614  	return s
 15615  }
 15616  
 15617  // SetInstances sets the Instances field's value.
 15618  func (s *RunJobFlowInput) SetInstances(v *JobFlowInstancesConfig) *RunJobFlowInput {
 15619  	s.Instances = v
 15620  	return s
 15621  }
 15622  
 15623  // SetJobFlowRole sets the JobFlowRole field's value.
 15624  func (s *RunJobFlowInput) SetJobFlowRole(v string) *RunJobFlowInput {
 15625  	s.JobFlowRole = &v
 15626  	return s
 15627  }
 15628  
 15629  // SetKerberosAttributes sets the KerberosAttributes field's value.
 15630  func (s *RunJobFlowInput) SetKerberosAttributes(v *KerberosAttributes) *RunJobFlowInput {
 15631  	s.KerberosAttributes = v
 15632  	return s
 15633  }
 15634  
 15635  // SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
 15636  func (s *RunJobFlowInput) SetLogEncryptionKmsKeyId(v string) *RunJobFlowInput {
 15637  	s.LogEncryptionKmsKeyId = &v
 15638  	return s
 15639  }
 15640  
 15641  // SetLogUri sets the LogUri field's value.
 15642  func (s *RunJobFlowInput) SetLogUri(v string) *RunJobFlowInput {
 15643  	s.LogUri = &v
 15644  	return s
 15645  }
 15646  
 15647  // SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
 15648  func (s *RunJobFlowInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *RunJobFlowInput {
 15649  	s.ManagedScalingPolicy = v
 15650  	return s
 15651  }
 15652  
 15653  // SetName sets the Name field's value.
 15654  func (s *RunJobFlowInput) SetName(v string) *RunJobFlowInput {
 15655  	s.Name = &v
 15656  	return s
 15657  }
 15658  
 15659  // SetNewSupportedProducts sets the NewSupportedProducts field's value.
 15660  func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) *RunJobFlowInput {
 15661  	s.NewSupportedProducts = v
 15662  	return s
 15663  }
 15664  
 15665  // SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value.
 15666  func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput {
 15667  	s.PlacementGroupConfigs = v
 15668  	return s
 15669  }
 15670  
 15671  // SetReleaseLabel sets the ReleaseLabel field's value.
 15672  func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput {
 15673  	s.ReleaseLabel = &v
 15674  	return s
 15675  }
 15676  
 15677  // SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
 15678  func (s *RunJobFlowInput) SetRepoUpgradeOnBoot(v string) *RunJobFlowInput {
 15679  	s.RepoUpgradeOnBoot = &v
 15680  	return s
 15681  }
 15682  
 15683  // SetScaleDownBehavior sets the ScaleDownBehavior field's value.
 15684  func (s *RunJobFlowInput) SetScaleDownBehavior(v string) *RunJobFlowInput {
 15685  	s.ScaleDownBehavior = &v
 15686  	return s
 15687  }
 15688  
 15689  // SetSecurityConfiguration sets the SecurityConfiguration field's value.
 15690  func (s *RunJobFlowInput) SetSecurityConfiguration(v string) *RunJobFlowInput {
 15691  	s.SecurityConfiguration = &v
 15692  	return s
 15693  }
 15694  
 15695  // SetServiceRole sets the ServiceRole field's value.
 15696  func (s *RunJobFlowInput) SetServiceRole(v string) *RunJobFlowInput {
 15697  	s.ServiceRole = &v
 15698  	return s
 15699  }
 15700  
 15701  // SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
 15702  func (s *RunJobFlowInput) SetStepConcurrencyLevel(v int64) *RunJobFlowInput {
 15703  	s.StepConcurrencyLevel = &v
 15704  	return s
 15705  }
 15706  
 15707  // SetSteps sets the Steps field's value.
 15708  func (s *RunJobFlowInput) SetSteps(v []*StepConfig) *RunJobFlowInput {
 15709  	s.Steps = v
 15710  	return s
 15711  }
 15712  
 15713  // SetSupportedProducts sets the SupportedProducts field's value.
 15714  func (s *RunJobFlowInput) SetSupportedProducts(v []*string) *RunJobFlowInput {
 15715  	s.SupportedProducts = v
 15716  	return s
 15717  }
 15718  
 15719  // SetTags sets the Tags field's value.
 15720  func (s *RunJobFlowInput) SetTags(v []*Tag) *RunJobFlowInput {
 15721  	s.Tags = v
 15722  	return s
 15723  }
 15724  
 15725  // SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
 15726  func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput {
 15727  	s.VisibleToAllUsers = &v
 15728  	return s
 15729  }
 15730  
 15731  // The result of the RunJobFlow operation.
 15732  type RunJobFlowOutput struct {
 15733  	_ struct{} `type:"structure"`
 15734  
 15735  	// The Amazon Resource Name (ARN) of the cluster.
 15736  	ClusterArn *string `min:"20" type:"string"`
 15737  
 15738  	// A unique identifier for the job flow.
 15739  	JobFlowId *string `type:"string"`
 15740  }
 15741  
 15742  // String returns the string representation.
 15743  //
 15744  // API parameter values that are decorated as "sensitive" in the API will not
 15745  // be included in the string output. The member name will be present, but the
 15746  // value will be replaced with "sensitive".
 15747  func (s RunJobFlowOutput) String() string {
 15748  	return awsutil.Prettify(s)
 15749  }
 15750  
 15751  // GoString returns the string representation.
 15752  //
 15753  // API parameter values that are decorated as "sensitive" in the API will not
 15754  // be included in the string output. The member name will be present, but the
 15755  // value will be replaced with "sensitive".
 15756  func (s RunJobFlowOutput) GoString() string {
 15757  	return s.String()
 15758  }
 15759  
 15760  // SetClusterArn sets the ClusterArn field's value.
 15761  func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput {
 15762  	s.ClusterArn = &v
 15763  	return s
 15764  }
 15765  
 15766  // SetJobFlowId sets the JobFlowId field's value.
 15767  func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput {
 15768  	s.JobFlowId = &v
 15769  	return s
 15770  }
 15771  
 15772  // The type of adjustment the automatic scaling activity makes when triggered,
 15773  // and the periodicity of the adjustment.
 15774  type ScalingAction struct {
 15775  	_ struct{} `type:"structure"`
 15776  
 15777  	// Not available for instance groups. Instance groups use the market type specified
 15778  	// for the group.
 15779  	Market *string `type:"string" enum:"MarketType"`
 15780  
 15781  	// The type of adjustment the automatic scaling activity makes when triggered,
 15782  	// and the periodicity of the adjustment.
 15783  	//
 15784  	// SimpleScalingPolicyConfiguration is a required field
 15785  	SimpleScalingPolicyConfiguration *SimpleScalingPolicyConfiguration `type:"structure" required:"true"`
 15786  }
 15787  
 15788  // String returns the string representation.
 15789  //
 15790  // API parameter values that are decorated as "sensitive" in the API will not
 15791  // be included in the string output. The member name will be present, but the
 15792  // value will be replaced with "sensitive".
 15793  func (s ScalingAction) String() string {
 15794  	return awsutil.Prettify(s)
 15795  }
 15796  
 15797  // GoString returns the string representation.
 15798  //
 15799  // API parameter values that are decorated as "sensitive" in the API will not
 15800  // be included in the string output. The member name will be present, but the
 15801  // value will be replaced with "sensitive".
 15802  func (s ScalingAction) GoString() string {
 15803  	return s.String()
 15804  }
 15805  
 15806  // Validate inspects the fields of the type to determine if they are valid.
 15807  func (s *ScalingAction) Validate() error {
 15808  	invalidParams := request.ErrInvalidParams{Context: "ScalingAction"}
 15809  	if s.SimpleScalingPolicyConfiguration == nil {
 15810  		invalidParams.Add(request.NewErrParamRequired("SimpleScalingPolicyConfiguration"))
 15811  	}
 15812  	if s.SimpleScalingPolicyConfiguration != nil {
 15813  		if err := s.SimpleScalingPolicyConfiguration.Validate(); err != nil {
 15814  			invalidParams.AddNested("SimpleScalingPolicyConfiguration", err.(request.ErrInvalidParams))
 15815  		}
 15816  	}
 15817  
 15818  	if invalidParams.Len() > 0 {
 15819  		return invalidParams
 15820  	}
 15821  	return nil
 15822  }
 15823  
 15824  // SetMarket sets the Market field's value.
 15825  func (s *ScalingAction) SetMarket(v string) *ScalingAction {
 15826  	s.Market = &v
 15827  	return s
 15828  }
 15829  
 15830  // SetSimpleScalingPolicyConfiguration sets the SimpleScalingPolicyConfiguration field's value.
 15831  func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPolicyConfiguration) *ScalingAction {
 15832  	s.SimpleScalingPolicyConfiguration = v
 15833  	return s
 15834  }
 15835  
 15836  // The upper and lower EC2 instance limits for an automatic scaling policy.
 15837  // Automatic scaling activities triggered by automatic scaling rules will not
 15838  // cause an instance group to grow above or below these limits.
 15839  type ScalingConstraints struct {
 15840  	_ struct{} `type:"structure"`
 15841  
 15842  	// The upper boundary of EC2 instances in an instance group beyond which scaling
 15843  	// activities are not allowed to grow. Scale-out activities will not add instances
 15844  	// beyond this boundary.
 15845  	//
 15846  	// MaxCapacity is a required field
 15847  	MaxCapacity *int64 `type:"integer" required:"true"`
 15848  
 15849  	// The lower boundary of EC2 instances in an instance group below which scaling
 15850  	// activities are not allowed to shrink. Scale-in activities will not terminate
 15851  	// instances below this boundary.
 15852  	//
 15853  	// MinCapacity is a required field
 15854  	MinCapacity *int64 `type:"integer" required:"true"`
 15855  }
 15856  
 15857  // String returns the string representation.
 15858  //
 15859  // API parameter values that are decorated as "sensitive" in the API will not
 15860  // be included in the string output. The member name will be present, but the
 15861  // value will be replaced with "sensitive".
 15862  func (s ScalingConstraints) String() string {
 15863  	return awsutil.Prettify(s)
 15864  }
 15865  
 15866  // GoString returns the string representation.
 15867  //
 15868  // API parameter values that are decorated as "sensitive" in the API will not
 15869  // be included in the string output. The member name will be present, but the
 15870  // value will be replaced with "sensitive".
 15871  func (s ScalingConstraints) GoString() string {
 15872  	return s.String()
 15873  }
 15874  
 15875  // Validate inspects the fields of the type to determine if they are valid.
 15876  func (s *ScalingConstraints) Validate() error {
 15877  	invalidParams := request.ErrInvalidParams{Context: "ScalingConstraints"}
 15878  	if s.MaxCapacity == nil {
 15879  		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
 15880  	}
 15881  	if s.MinCapacity == nil {
 15882  		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
 15883  	}
 15884  
 15885  	if invalidParams.Len() > 0 {
 15886  		return invalidParams
 15887  	}
 15888  	return nil
 15889  }
 15890  
 15891  // SetMaxCapacity sets the MaxCapacity field's value.
 15892  func (s *ScalingConstraints) SetMaxCapacity(v int64) *ScalingConstraints {
 15893  	s.MaxCapacity = &v
 15894  	return s
 15895  }
 15896  
 15897  // SetMinCapacity sets the MinCapacity field's value.
 15898  func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints {
 15899  	s.MinCapacity = &v
 15900  	return s
 15901  }
 15902  
 15903  // A scale-in or scale-out rule that defines scaling activity, including the
 15904  // CloudWatch metric alarm that triggers activity, how EC2 instances are added
 15905  // or removed, and the periodicity of adjustments. The automatic scaling policy
 15906  // for an instance group can comprise one or more automatic scaling rules.
 15907  type ScalingRule struct {
 15908  	_ struct{} `type:"structure"`
 15909  
 15910  	// The conditions that trigger an automatic scaling activity.
 15911  	//
 15912  	// Action is a required field
 15913  	Action *ScalingAction `type:"structure" required:"true"`
 15914  
 15915  	// A friendly, more verbose description of the automatic scaling rule.
 15916  	Description *string `type:"string"`
 15917  
 15918  	// The name used to identify an automatic scaling rule. Rule names must be unique
 15919  	// within a scaling policy.
 15920  	//
 15921  	// Name is a required field
 15922  	Name *string `type:"string" required:"true"`
 15923  
 15924  	// The CloudWatch alarm definition that determines when automatic scaling activity
 15925  	// is triggered.
 15926  	//
 15927  	// Trigger is a required field
 15928  	Trigger *ScalingTrigger `type:"structure" required:"true"`
 15929  }
 15930  
 15931  // String returns the string representation.
 15932  //
 15933  // API parameter values that are decorated as "sensitive" in the API will not
 15934  // be included in the string output. The member name will be present, but the
 15935  // value will be replaced with "sensitive".
 15936  func (s ScalingRule) String() string {
 15937  	return awsutil.Prettify(s)
 15938  }
 15939  
 15940  // GoString returns the string representation.
 15941  //
 15942  // API parameter values that are decorated as "sensitive" in the API will not
 15943  // be included in the string output. The member name will be present, but the
 15944  // value will be replaced with "sensitive".
 15945  func (s ScalingRule) GoString() string {
 15946  	return s.String()
 15947  }
 15948  
 15949  // Validate inspects the fields of the type to determine if they are valid.
 15950  func (s *ScalingRule) Validate() error {
 15951  	invalidParams := request.ErrInvalidParams{Context: "ScalingRule"}
 15952  	if s.Action == nil {
 15953  		invalidParams.Add(request.NewErrParamRequired("Action"))
 15954  	}
 15955  	if s.Name == nil {
 15956  		invalidParams.Add(request.NewErrParamRequired("Name"))
 15957  	}
 15958  	if s.Trigger == nil {
 15959  		invalidParams.Add(request.NewErrParamRequired("Trigger"))
 15960  	}
 15961  	if s.Action != nil {
 15962  		if err := s.Action.Validate(); err != nil {
 15963  			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
 15964  		}
 15965  	}
 15966  	if s.Trigger != nil {
 15967  		if err := s.Trigger.Validate(); err != nil {
 15968  			invalidParams.AddNested("Trigger", err.(request.ErrInvalidParams))
 15969  		}
 15970  	}
 15971  
 15972  	if invalidParams.Len() > 0 {
 15973  		return invalidParams
 15974  	}
 15975  	return nil
 15976  }
 15977  
 15978  // SetAction sets the Action field's value.
 15979  func (s *ScalingRule) SetAction(v *ScalingAction) *ScalingRule {
 15980  	s.Action = v
 15981  	return s
 15982  }
 15983  
 15984  // SetDescription sets the Description field's value.
 15985  func (s *ScalingRule) SetDescription(v string) *ScalingRule {
 15986  	s.Description = &v
 15987  	return s
 15988  }
 15989  
 15990  // SetName sets the Name field's value.
 15991  func (s *ScalingRule) SetName(v string) *ScalingRule {
 15992  	s.Name = &v
 15993  	return s
 15994  }
 15995  
 15996  // SetTrigger sets the Trigger field's value.
 15997  func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule {
 15998  	s.Trigger = v
 15999  	return s
 16000  }
 16001  
 16002  // The conditions that trigger an automatic scaling activity.
 16003  type ScalingTrigger struct {
 16004  	_ struct{} `type:"structure"`
 16005  
 16006  	// The definition of a CloudWatch metric alarm. When the defined alarm conditions
 16007  	// are met along with other trigger parameters, scaling activity begins.
 16008  	//
 16009  	// CloudWatchAlarmDefinition is a required field
 16010  	CloudWatchAlarmDefinition *CloudWatchAlarmDefinition `type:"structure" required:"true"`
 16011  }
 16012  
 16013  // String returns the string representation.
 16014  //
 16015  // API parameter values that are decorated as "sensitive" in the API will not
 16016  // be included in the string output. The member name will be present, but the
 16017  // value will be replaced with "sensitive".
 16018  func (s ScalingTrigger) String() string {
 16019  	return awsutil.Prettify(s)
 16020  }
 16021  
 16022  // GoString returns the string representation.
 16023  //
 16024  // API parameter values that are decorated as "sensitive" in the API will not
 16025  // be included in the string output. The member name will be present, but the
 16026  // value will be replaced with "sensitive".
 16027  func (s ScalingTrigger) GoString() string {
 16028  	return s.String()
 16029  }
 16030  
 16031  // Validate inspects the fields of the type to determine if they are valid.
 16032  func (s *ScalingTrigger) Validate() error {
 16033  	invalidParams := request.ErrInvalidParams{Context: "ScalingTrigger"}
 16034  	if s.CloudWatchAlarmDefinition == nil {
 16035  		invalidParams.Add(request.NewErrParamRequired("CloudWatchAlarmDefinition"))
 16036  	}
 16037  	if s.CloudWatchAlarmDefinition != nil {
 16038  		if err := s.CloudWatchAlarmDefinition.Validate(); err != nil {
 16039  			invalidParams.AddNested("CloudWatchAlarmDefinition", err.(request.ErrInvalidParams))
 16040  		}
 16041  	}
 16042  
 16043  	if invalidParams.Len() > 0 {
 16044  		return invalidParams
 16045  	}
 16046  	return nil
 16047  }
 16048  
 16049  // SetCloudWatchAlarmDefinition sets the CloudWatchAlarmDefinition field's value.
 16050  func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefinition) *ScalingTrigger {
 16051  	s.CloudWatchAlarmDefinition = v
 16052  	return s
 16053  }
 16054  
 16055  // Configuration of the script to run during a bootstrap action.
 16056  type ScriptBootstrapActionConfig struct {
 16057  	_ struct{} `type:"structure"`
 16058  
 16059  	// A list of command line arguments to pass to the bootstrap action script.
 16060  	Args []*string `type:"list"`
 16061  
 16062  	// Location in Amazon S3 of the script to run during a bootstrap action.
 16063  	//
 16064  	// Path is a required field
 16065  	Path *string `type:"string" required:"true"`
 16066  }
 16067  
 16068  // String returns the string representation.
 16069  //
 16070  // API parameter values that are decorated as "sensitive" in the API will not
 16071  // be included in the string output. The member name will be present, but the
 16072  // value will be replaced with "sensitive".
 16073  func (s ScriptBootstrapActionConfig) String() string {
 16074  	return awsutil.Prettify(s)
 16075  }
 16076  
 16077  // GoString returns the string representation.
 16078  //
 16079  // API parameter values that are decorated as "sensitive" in the API will not
 16080  // be included in the string output. The member name will be present, but the
 16081  // value will be replaced with "sensitive".
 16082  func (s ScriptBootstrapActionConfig) GoString() string {
 16083  	return s.String()
 16084  }
 16085  
 16086  // Validate inspects the fields of the type to determine if they are valid.
 16087  func (s *ScriptBootstrapActionConfig) Validate() error {
 16088  	invalidParams := request.ErrInvalidParams{Context: "ScriptBootstrapActionConfig"}
 16089  	if s.Path == nil {
 16090  		invalidParams.Add(request.NewErrParamRequired("Path"))
 16091  	}
 16092  
 16093  	if invalidParams.Len() > 0 {
 16094  		return invalidParams
 16095  	}
 16096  	return nil
 16097  }
 16098  
 16099  // SetArgs sets the Args field's value.
 16100  func (s *ScriptBootstrapActionConfig) SetArgs(v []*string) *ScriptBootstrapActionConfig {
 16101  	s.Args = v
 16102  	return s
 16103  }
 16104  
 16105  // SetPath sets the Path field's value.
 16106  func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionConfig {
 16107  	s.Path = &v
 16108  	return s
 16109  }
 16110  
 16111  // The creation date and time, and name, of a security configuration.
 16112  type SecurityConfigurationSummary struct {
 16113  	_ struct{} `type:"structure"`
 16114  
 16115  	// The date and time the security configuration was created.
 16116  	CreationDateTime *time.Time `type:"timestamp"`
 16117  
 16118  	// The name of the security configuration.
 16119  	Name *string `type:"string"`
 16120  }
 16121  
 16122  // String returns the string representation.
 16123  //
 16124  // API parameter values that are decorated as "sensitive" in the API will not
 16125  // be included in the string output. The member name will be present, but the
 16126  // value will be replaced with "sensitive".
 16127  func (s SecurityConfigurationSummary) String() string {
 16128  	return awsutil.Prettify(s)
 16129  }
 16130  
 16131  // GoString returns the string representation.
 16132  //
 16133  // API parameter values that are decorated as "sensitive" in the API will not
 16134  // be included in the string output. The member name will be present, but the
 16135  // value will be replaced with "sensitive".
 16136  func (s SecurityConfigurationSummary) GoString() string {
 16137  	return s.String()
 16138  }
 16139  
 16140  // SetCreationDateTime sets the CreationDateTime field's value.
 16141  func (s *SecurityConfigurationSummary) SetCreationDateTime(v time.Time) *SecurityConfigurationSummary {
 16142  	s.CreationDateTime = &v
 16143  	return s
 16144  }
 16145  
 16146  // SetName sets the Name field's value.
 16147  func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationSummary {
 16148  	s.Name = &v
 16149  	return s
 16150  }
 16151  
 16152  // Details for an Amazon EMR Studio session mapping including creation time,
 16153  // user or group ID, Studio ID, and so on.
 16154  type SessionMappingDetail struct {
 16155  	_ struct{} `type:"structure"`
 16156  
 16157  	// The time the session mapping was created.
 16158  	CreationTime *time.Time `type:"timestamp"`
 16159  
 16160  	// The globally unique identifier (GUID) of the user or group.
 16161  	IdentityId *string `type:"string"`
 16162  
 16163  	// The name of the user or group. For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
 16164  	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
 16165  	// in the Amazon Web Services SSO Identity Store API Reference.
 16166  	IdentityName *string `type:"string"`
 16167  
 16168  	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
 16169  	// or a group.
 16170  	IdentityType *string `type:"string" enum:"IdentityType"`
 16171  
 16172  	// The time the session mapping was last modified.
 16173  	LastModifiedTime *time.Time `type:"timestamp"`
 16174  
 16175  	// The Amazon Resource Name (ARN) of the session policy associated with the
 16176  	// user or group.
 16177  	SessionPolicyArn *string `type:"string"`
 16178  
 16179  	// The ID of the Amazon EMR Studio.
 16180  	StudioId *string `type:"string"`
 16181  }
 16182  
 16183  // String returns the string representation.
 16184  //
 16185  // API parameter values that are decorated as "sensitive" in the API will not
 16186  // be included in the string output. The member name will be present, but the
 16187  // value will be replaced with "sensitive".
 16188  func (s SessionMappingDetail) String() string {
 16189  	return awsutil.Prettify(s)
 16190  }
 16191  
 16192  // GoString returns the string representation.
 16193  //
 16194  // API parameter values that are decorated as "sensitive" in the API will not
 16195  // be included in the string output. The member name will be present, but the
 16196  // value will be replaced with "sensitive".
 16197  func (s SessionMappingDetail) GoString() string {
 16198  	return s.String()
 16199  }
 16200  
 16201  // SetCreationTime sets the CreationTime field's value.
 16202  func (s *SessionMappingDetail) SetCreationTime(v time.Time) *SessionMappingDetail {
 16203  	s.CreationTime = &v
 16204  	return s
 16205  }
 16206  
 16207  // SetIdentityId sets the IdentityId field's value.
 16208  func (s *SessionMappingDetail) SetIdentityId(v string) *SessionMappingDetail {
 16209  	s.IdentityId = &v
 16210  	return s
 16211  }
 16212  
 16213  // SetIdentityName sets the IdentityName field's value.
 16214  func (s *SessionMappingDetail) SetIdentityName(v string) *SessionMappingDetail {
 16215  	s.IdentityName = &v
 16216  	return s
 16217  }
 16218  
 16219  // SetIdentityType sets the IdentityType field's value.
 16220  func (s *SessionMappingDetail) SetIdentityType(v string) *SessionMappingDetail {
 16221  	s.IdentityType = &v
 16222  	return s
 16223  }
 16224  
 16225  // SetLastModifiedTime sets the LastModifiedTime field's value.
 16226  func (s *SessionMappingDetail) SetLastModifiedTime(v time.Time) *SessionMappingDetail {
 16227  	s.LastModifiedTime = &v
 16228  	return s
 16229  }
 16230  
 16231  // SetSessionPolicyArn sets the SessionPolicyArn field's value.
 16232  func (s *SessionMappingDetail) SetSessionPolicyArn(v string) *SessionMappingDetail {
 16233  	s.SessionPolicyArn = &v
 16234  	return s
 16235  }
 16236  
 16237  // SetStudioId sets the StudioId field's value.
 16238  func (s *SessionMappingDetail) SetStudioId(v string) *SessionMappingDetail {
 16239  	s.StudioId = &v
 16240  	return s
 16241  }
 16242  
 16243  // Details for an Amazon EMR Studio session mapping. The details do not include
 16244  // the time the session mapping was last modified.
 16245  type SessionMappingSummary struct {
 16246  	_ struct{} `type:"structure"`
 16247  
 16248  	// The time the session mapping was created.
 16249  	CreationTime *time.Time `type:"timestamp"`
 16250  
 16251  	// The globally unique identifier (GUID) of the user or group from the Amazon
 16252  	// Web Services SSO Identity Store.
 16253  	IdentityId *string `type:"string"`
 16254  
 16255  	// The name of the user or group. For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
 16256  	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
 16257  	// in the Amazon Web Services SSO Identity Store API Reference.
 16258  	IdentityName *string `type:"string"`
 16259  
 16260  	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
 16261  	// or a group.
 16262  	IdentityType *string `type:"string" enum:"IdentityType"`
 16263  
 16264  	// The Amazon Resource Name (ARN) of the session policy associated with the
 16265  	// user or group.
 16266  	SessionPolicyArn *string `type:"string"`
 16267  
 16268  	// The ID of the Amazon EMR Studio.
 16269  	StudioId *string `type:"string"`
 16270  }
 16271  
 16272  // String returns the string representation.
 16273  //
 16274  // API parameter values that are decorated as "sensitive" in the API will not
 16275  // be included in the string output. The member name will be present, but the
 16276  // value will be replaced with "sensitive".
 16277  func (s SessionMappingSummary) String() string {
 16278  	return awsutil.Prettify(s)
 16279  }
 16280  
 16281  // GoString returns the string representation.
 16282  //
 16283  // API parameter values that are decorated as "sensitive" in the API will not
 16284  // be included in the string output. The member name will be present, but the
 16285  // value will be replaced with "sensitive".
 16286  func (s SessionMappingSummary) GoString() string {
 16287  	return s.String()
 16288  }
 16289  
 16290  // SetCreationTime sets the CreationTime field's value.
 16291  func (s *SessionMappingSummary) SetCreationTime(v time.Time) *SessionMappingSummary {
 16292  	s.CreationTime = &v
 16293  	return s
 16294  }
 16295  
 16296  // SetIdentityId sets the IdentityId field's value.
 16297  func (s *SessionMappingSummary) SetIdentityId(v string) *SessionMappingSummary {
 16298  	s.IdentityId = &v
 16299  	return s
 16300  }
 16301  
 16302  // SetIdentityName sets the IdentityName field's value.
 16303  func (s *SessionMappingSummary) SetIdentityName(v string) *SessionMappingSummary {
 16304  	s.IdentityName = &v
 16305  	return s
 16306  }
 16307  
 16308  // SetIdentityType sets the IdentityType field's value.
 16309  func (s *SessionMappingSummary) SetIdentityType(v string) *SessionMappingSummary {
 16310  	s.IdentityType = &v
 16311  	return s
 16312  }
 16313  
 16314  // SetSessionPolicyArn sets the SessionPolicyArn field's value.
 16315  func (s *SessionMappingSummary) SetSessionPolicyArn(v string) *SessionMappingSummary {
 16316  	s.SessionPolicyArn = &v
 16317  	return s
 16318  }
 16319  
 16320  // SetStudioId sets the StudioId field's value.
 16321  func (s *SessionMappingSummary) SetStudioId(v string) *SessionMappingSummary {
 16322  	s.StudioId = &v
 16323  	return s
 16324  }
 16325  
 16326  // The input argument to the TerminationProtection operation.
 16327  type SetTerminationProtectionInput struct {
 16328  	_ struct{} `type:"structure"`
 16329  
 16330  	// A list of strings that uniquely identify the clusters to protect. This identifier
 16331  	// is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
 16332  	//
 16333  	// JobFlowIds is a required field
 16334  	JobFlowIds []*string `type:"list" required:"true"`
 16335  
 16336  	// A Boolean that indicates whether to protect the cluster and prevent the Amazon
 16337  	// EC2 instances in the cluster from shutting down due to API calls, user intervention,
 16338  	// or job-flow error.
 16339  	//
 16340  	// TerminationProtected is a required field
 16341  	TerminationProtected *bool `type:"boolean" required:"true"`
 16342  }
 16343  
 16344  // String returns the string representation.
 16345  //
 16346  // API parameter values that are decorated as "sensitive" in the API will not
 16347  // be included in the string output. The member name will be present, but the
 16348  // value will be replaced with "sensitive".
 16349  func (s SetTerminationProtectionInput) String() string {
 16350  	return awsutil.Prettify(s)
 16351  }
 16352  
 16353  // GoString returns the string representation.
 16354  //
 16355  // API parameter values that are decorated as "sensitive" in the API will not
 16356  // be included in the string output. The member name will be present, but the
 16357  // value will be replaced with "sensitive".
 16358  func (s SetTerminationProtectionInput) GoString() string {
 16359  	return s.String()
 16360  }
 16361  
 16362  // Validate inspects the fields of the type to determine if they are valid.
 16363  func (s *SetTerminationProtectionInput) Validate() error {
 16364  	invalidParams := request.ErrInvalidParams{Context: "SetTerminationProtectionInput"}
 16365  	if s.JobFlowIds == nil {
 16366  		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
 16367  	}
 16368  	if s.TerminationProtected == nil {
 16369  		invalidParams.Add(request.NewErrParamRequired("TerminationProtected"))
 16370  	}
 16371  
 16372  	if invalidParams.Len() > 0 {
 16373  		return invalidParams
 16374  	}
 16375  	return nil
 16376  }
 16377  
 16378  // SetJobFlowIds sets the JobFlowIds field's value.
 16379  func (s *SetTerminationProtectionInput) SetJobFlowIds(v []*string) *SetTerminationProtectionInput {
 16380  	s.JobFlowIds = v
 16381  	return s
 16382  }
 16383  
 16384  // SetTerminationProtected sets the TerminationProtected field's value.
 16385  func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerminationProtectionInput {
 16386  	s.TerminationProtected = &v
 16387  	return s
 16388  }
 16389  
 16390  type SetTerminationProtectionOutput struct {
 16391  	_ struct{} `type:"structure"`
 16392  }
 16393  
 16394  // String returns the string representation.
 16395  //
 16396  // API parameter values that are decorated as "sensitive" in the API will not
 16397  // be included in the string output. The member name will be present, but the
 16398  // value will be replaced with "sensitive".
 16399  func (s SetTerminationProtectionOutput) String() string {
 16400  	return awsutil.Prettify(s)
 16401  }
 16402  
 16403  // GoString returns the string representation.
 16404  //
 16405  // API parameter values that are decorated as "sensitive" in the API will not
 16406  // be included in the string output. The member name will be present, but the
 16407  // value will be replaced with "sensitive".
 16408  func (s SetTerminationProtectionOutput) GoString() string {
 16409  	return s.String()
 16410  }
 16411  
 16412  // The input to the SetVisibleToAllUsers action.
 16413  type SetVisibleToAllUsersInput struct {
 16414  	_ struct{} `type:"structure"`
 16415  
 16416  	// The unique identifier of the job flow (cluster).
 16417  	//
 16418  	// JobFlowIds is a required field
 16419  	JobFlowIds []*string `type:"list" required:"true"`
 16420  
 16421  	// A value of true indicates that an IAM principal in the Amazon Web Services
 16422  	// account can perform EMR actions on the cluster that the IAM policies attached
 16423  	// to the principal allow. A value of false indicates that only the IAM principal
 16424  	// that created the cluster and the Amazon Web Services root user can perform
 16425  	// EMR actions on the cluster.
 16426  	//
 16427  	// VisibleToAllUsers is a required field
 16428  	VisibleToAllUsers *bool `type:"boolean" required:"true"`
 16429  }
 16430  
 16431  // String returns the string representation.
 16432  //
 16433  // API parameter values that are decorated as "sensitive" in the API will not
 16434  // be included in the string output. The member name will be present, but the
 16435  // value will be replaced with "sensitive".
 16436  func (s SetVisibleToAllUsersInput) String() string {
 16437  	return awsutil.Prettify(s)
 16438  }
 16439  
 16440  // GoString returns the string representation.
 16441  //
 16442  // API parameter values that are decorated as "sensitive" in the API will not
 16443  // be included in the string output. The member name will be present, but the
 16444  // value will be replaced with "sensitive".
 16445  func (s SetVisibleToAllUsersInput) GoString() string {
 16446  	return s.String()
 16447  }
 16448  
 16449  // Validate inspects the fields of the type to determine if they are valid.
 16450  func (s *SetVisibleToAllUsersInput) Validate() error {
 16451  	invalidParams := request.ErrInvalidParams{Context: "SetVisibleToAllUsersInput"}
 16452  	if s.JobFlowIds == nil {
 16453  		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
 16454  	}
 16455  	if s.VisibleToAllUsers == nil {
 16456  		invalidParams.Add(request.NewErrParamRequired("VisibleToAllUsers"))
 16457  	}
 16458  
 16459  	if invalidParams.Len() > 0 {
 16460  		return invalidParams
 16461  	}
 16462  	return nil
 16463  }
 16464  
 16465  // SetJobFlowIds sets the JobFlowIds field's value.
 16466  func (s *SetVisibleToAllUsersInput) SetJobFlowIds(v []*string) *SetVisibleToAllUsersInput {
 16467  	s.JobFlowIds = v
 16468  	return s
 16469  }
 16470  
 16471  // SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
 16472  func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAllUsersInput {
 16473  	s.VisibleToAllUsers = &v
 16474  	return s
 16475  }
 16476  
 16477  type SetVisibleToAllUsersOutput struct {
 16478  	_ struct{} `type:"structure"`
 16479  }
 16480  
 16481  // String returns the string representation.
 16482  //
 16483  // API parameter values that are decorated as "sensitive" in the API will not
 16484  // be included in the string output. The member name will be present, but the
 16485  // value will be replaced with "sensitive".
 16486  func (s SetVisibleToAllUsersOutput) String() string {
 16487  	return awsutil.Prettify(s)
 16488  }
 16489  
 16490  // GoString returns the string representation.
 16491  //
 16492  // API parameter values that are decorated as "sensitive" in the API will not
 16493  // be included in the string output. The member name will be present, but the
 16494  // value will be replaced with "sensitive".
 16495  func (s SetVisibleToAllUsersOutput) GoString() string {
 16496  	return s.String()
 16497  }
 16498  
 16499  // Policy for customizing shrink operations. Allows configuration of decommissioning
 16500  // timeout and targeted instance shrinking.
 16501  type ShrinkPolicy struct {
 16502  	_ struct{} `type:"structure"`
 16503  
 16504  	// The desired timeout for decommissioning an instance. Overrides the default
 16505  	// YARN decommissioning timeout.
 16506  	DecommissionTimeout *int64 `type:"integer"`
 16507  
 16508  	// Custom policy for requesting termination protection or termination of specific
 16509  	// instances when shrinking an instance group.
 16510  	InstanceResizePolicy *InstanceResizePolicy `type:"structure"`
 16511  }
 16512  
 16513  // String returns the string representation.
 16514  //
 16515  // API parameter values that are decorated as "sensitive" in the API will not
 16516  // be included in the string output. The member name will be present, but the
 16517  // value will be replaced with "sensitive".
 16518  func (s ShrinkPolicy) String() string {
 16519  	return awsutil.Prettify(s)
 16520  }
 16521  
 16522  // GoString returns the string representation.
 16523  //
 16524  // API parameter values that are decorated as "sensitive" in the API will not
 16525  // be included in the string output. The member name will be present, but the
 16526  // value will be replaced with "sensitive".
 16527  func (s ShrinkPolicy) GoString() string {
 16528  	return s.String()
 16529  }
 16530  
 16531  // SetDecommissionTimeout sets the DecommissionTimeout field's value.
 16532  func (s *ShrinkPolicy) SetDecommissionTimeout(v int64) *ShrinkPolicy {
 16533  	s.DecommissionTimeout = &v
 16534  	return s
 16535  }
 16536  
 16537  // SetInstanceResizePolicy sets the InstanceResizePolicy field's value.
 16538  func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkPolicy {
 16539  	s.InstanceResizePolicy = v
 16540  	return s
 16541  }
 16542  
 16543  // An automatic scaling configuration, which describes how the policy adds or
 16544  // removes instances, the cooldown period, and the number of EC2 instances that
 16545  // will be added each time the CloudWatch metric alarm condition is satisfied.
 16546  type SimpleScalingPolicyConfiguration struct {
 16547  	_ struct{} `type:"structure"`
 16548  
 16549  	// The way in which EC2 instances are added (if ScalingAdjustment is a positive
 16550  	// number) or terminated (if ScalingAdjustment is a negative number) each time
 16551  	// the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY
 16552  	// indicates that the EC2 instance count increments or decrements by ScalingAdjustment,
 16553  	// which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates
 16554  	// the instance count increments or decrements by the percentage specified by
 16555  	// ScalingAdjustment, which should be expressed as an integer. For example,
 16556  	// 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY
 16557  	// indicates the scaling activity results in an instance group with the number
 16558  	// of EC2 instances specified by ScalingAdjustment, which should be expressed
 16559  	// as a positive integer.
 16560  	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
 16561  
 16562  	// The amount of time, in seconds, after a scaling activity completes before
 16563  	// any further trigger-related scaling activities can start. The default value
 16564  	// is 0.
 16565  	CoolDown *int64 `type:"integer"`
 16566  
 16567  	// The amount by which to scale in or scale out, based on the specified AdjustmentType.
 16568  	// A positive value adds to the instance group's EC2 instance count while a
 16569  	// negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY,
 16570  	// the number should only be a positive integer. If AdjustmentType is set to
 16571  	// PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an
 16572  	// integer. For example, -20 indicates a decrease in 20% increments of cluster
 16573  	// capacity.
 16574  	//
 16575  	// ScalingAdjustment is a required field
 16576  	ScalingAdjustment *int64 `type:"integer" required:"true"`
 16577  }
 16578  
 16579  // String returns the string representation.
 16580  //
 16581  // API parameter values that are decorated as "sensitive" in the API will not
 16582  // be included in the string output. The member name will be present, but the
 16583  // value will be replaced with "sensitive".
 16584  func (s SimpleScalingPolicyConfiguration) String() string {
 16585  	return awsutil.Prettify(s)
 16586  }
 16587  
 16588  // GoString returns the string representation.
 16589  //
 16590  // API parameter values that are decorated as "sensitive" in the API will not
 16591  // be included in the string output. The member name will be present, but the
 16592  // value will be replaced with "sensitive".
 16593  func (s SimpleScalingPolicyConfiguration) GoString() string {
 16594  	return s.String()
 16595  }
 16596  
 16597  // Validate inspects the fields of the type to determine if they are valid.
 16598  func (s *SimpleScalingPolicyConfiguration) Validate() error {
 16599  	invalidParams := request.ErrInvalidParams{Context: "SimpleScalingPolicyConfiguration"}
 16600  	if s.ScalingAdjustment == nil {
 16601  		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
 16602  	}
 16603  
 16604  	if invalidParams.Len() > 0 {
 16605  		return invalidParams
 16606  	}
 16607  	return nil
 16608  }
 16609  
 16610  // SetAdjustmentType sets the AdjustmentType field's value.
 16611  func (s *SimpleScalingPolicyConfiguration) SetAdjustmentType(v string) *SimpleScalingPolicyConfiguration {
 16612  	s.AdjustmentType = &v
 16613  	return s
 16614  }
 16615  
 16616  // SetCoolDown sets the CoolDown field's value.
 16617  func (s *SimpleScalingPolicyConfiguration) SetCoolDown(v int64) *SimpleScalingPolicyConfiguration {
 16618  	s.CoolDown = &v
 16619  	return s
 16620  }
 16621  
 16622  // SetScalingAdjustment sets the ScalingAdjustment field's value.
 16623  func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *SimpleScalingPolicyConfiguration {
 16624  	s.ScalingAdjustment = &v
 16625  	return s
 16626  }
 16627  
 16628  // The returned release label application names or versions.
 16629  type SimplifiedApplication struct {
 16630  	_ struct{} `type:"structure"`
 16631  
 16632  	// The returned release label application name. For example, hadoop.
 16633  	Name *string `type:"string"`
 16634  
 16635  	// The returned release label application version. For example, 3.2.1.
 16636  	Version *string `type:"string"`
 16637  }
 16638  
 16639  // String returns the string representation.
 16640  //
 16641  // API parameter values that are decorated as "sensitive" in the API will not
 16642  // be included in the string output. The member name will be present, but the
 16643  // value will be replaced with "sensitive".
 16644  func (s SimplifiedApplication) String() string {
 16645  	return awsutil.Prettify(s)
 16646  }
 16647  
 16648  // GoString returns the string representation.
 16649  //
 16650  // API parameter values that are decorated as "sensitive" in the API will not
 16651  // be included in the string output. The member name will be present, but the
 16652  // value will be replaced with "sensitive".
 16653  func (s SimplifiedApplication) GoString() string {
 16654  	return s.String()
 16655  }
 16656  
 16657  // SetName sets the Name field's value.
 16658  func (s *SimplifiedApplication) SetName(v string) *SimplifiedApplication {
 16659  	s.Name = &v
 16660  	return s
 16661  }
 16662  
 16663  // SetVersion sets the Version field's value.
 16664  func (s *SimplifiedApplication) SetVersion(v string) *SimplifiedApplication {
 16665  	s.Version = &v
 16666  	return s
 16667  }
 16668  
 16669  // The launch specification for Spot Instances in the instance fleet, which
 16670  // determines the defined duration, provisioning timeout behavior, and allocation
 16671  // strategy.
 16672  //
 16673  // The instance fleet configuration is available only in Amazon EMR versions
 16674  // 4.8.0 and later, excluding 5.0.x versions. Spot Instance allocation strategy
 16675  // is available in Amazon EMR version 5.12.1 and later.
 16676  type SpotProvisioningSpecification struct {
 16677  	_ struct{} `type:"structure"`
 16678  
 16679  	// Specifies the strategy to use in launching Spot Instance fleets. Currently,
 16680  	// the only option is capacity-optimized (the default), which launches instances
 16681  	// from Spot Instance pools with optimal capacity for the number of instances
 16682  	// that are launching.
 16683  	AllocationStrategy *string `type:"string" enum:"SpotProvisioningAllocationStrategy"`
 16684  
 16685  	// The defined duration for Spot Instances (also known as Spot blocks) in minutes.
 16686  	// When specified, the Spot Instance does not terminate before the defined duration
 16687  	// expires, and defined duration pricing for Spot Instances applies. Valid values
 16688  	// are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as
 16689  	// a Spot Instance receives its instance ID. At the end of the duration, Amazon
 16690  	// EC2 marks the Spot Instance for termination and provides a Spot Instance
 16691  	// termination notice, which gives the instance a two-minute warning before
 16692  	// it terminates.
 16693  	BlockDurationMinutes *int64 `type:"integer"`
 16694  
 16695  	// The action to take when TargetSpotCapacity has not been fulfilled when the
 16696  	// TimeoutDurationMinutes has expired; that is, when all Spot Instances could
 16697  	// not be provisioned within the Spot provisioning timeout. Valid values are
 16698  	// TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies
 16699  	// that if no Spot Instances are available, On-Demand Instances should be provisioned
 16700  	// to fulfill any remaining Spot capacity.
 16701  	//
 16702  	// TimeoutAction is a required field
 16703  	TimeoutAction *string `type:"string" required:"true" enum:"SpotProvisioningTimeoutAction"`
 16704  
 16705  	// The spot provisioning timeout period in minutes. If Spot Instances are not
 16706  	// provisioned within this time period, the TimeOutAction is taken. Minimum
 16707  	// value is 5 and maximum value is 1440. The timeout applies only during initial
 16708  	// provisioning, when the cluster is first created.
 16709  	//
 16710  	// TimeoutDurationMinutes is a required field
 16711  	TimeoutDurationMinutes *int64 `type:"integer" required:"true"`
 16712  }
 16713  
 16714  // String returns the string representation.
 16715  //
 16716  // API parameter values that are decorated as "sensitive" in the API will not
 16717  // be included in the string output. The member name will be present, but the
 16718  // value will be replaced with "sensitive".
 16719  func (s SpotProvisioningSpecification) String() string {
 16720  	return awsutil.Prettify(s)
 16721  }
 16722  
 16723  // GoString returns the string representation.
 16724  //
 16725  // API parameter values that are decorated as "sensitive" in the API will not
 16726  // be included in the string output. The member name will be present, but the
 16727  // value will be replaced with "sensitive".
 16728  func (s SpotProvisioningSpecification) GoString() string {
 16729  	return s.String()
 16730  }
 16731  
 16732  // Validate inspects the fields of the type to determine if they are valid.
 16733  func (s *SpotProvisioningSpecification) Validate() error {
 16734  	invalidParams := request.ErrInvalidParams{Context: "SpotProvisioningSpecification"}
 16735  	if s.TimeoutAction == nil {
 16736  		invalidParams.Add(request.NewErrParamRequired("TimeoutAction"))
 16737  	}
 16738  	if s.TimeoutDurationMinutes == nil {
 16739  		invalidParams.Add(request.NewErrParamRequired("TimeoutDurationMinutes"))
 16740  	}
 16741  
 16742  	if invalidParams.Len() > 0 {
 16743  		return invalidParams
 16744  	}
 16745  	return nil
 16746  }
 16747  
 16748  // SetAllocationStrategy sets the AllocationStrategy field's value.
 16749  func (s *SpotProvisioningSpecification) SetAllocationStrategy(v string) *SpotProvisioningSpecification {
 16750  	s.AllocationStrategy = &v
 16751  	return s
 16752  }
 16753  
 16754  // SetBlockDurationMinutes sets the BlockDurationMinutes field's value.
 16755  func (s *SpotProvisioningSpecification) SetBlockDurationMinutes(v int64) *SpotProvisioningSpecification {
 16756  	s.BlockDurationMinutes = &v
 16757  	return s
 16758  }
 16759  
 16760  // SetTimeoutAction sets the TimeoutAction field's value.
 16761  func (s *SpotProvisioningSpecification) SetTimeoutAction(v string) *SpotProvisioningSpecification {
 16762  	s.TimeoutAction = &v
 16763  	return s
 16764  }
 16765  
 16766  // SetTimeoutDurationMinutes sets the TimeoutDurationMinutes field's value.
 16767  func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *SpotProvisioningSpecification {
 16768  	s.TimeoutDurationMinutes = &v
 16769  	return s
 16770  }
 16771  
 16772  type StartNotebookExecutionInput struct {
 16773  	_ struct{} `type:"structure"`
 16774  
 16775  	// The unique identifier of the EMR Notebook to use for notebook execution.
 16776  	//
 16777  	// EditorId is a required field
 16778  	EditorId *string `type:"string" required:"true"`
 16779  
 16780  	// Specifies the execution engine (cluster) that runs the notebook execution.
 16781  	//
 16782  	// ExecutionEngine is a required field
 16783  	ExecutionEngine *ExecutionEngineConfig `type:"structure" required:"true"`
 16784  
 16785  	// An optional name for the notebook execution.
 16786  	NotebookExecutionName *string `type:"string"`
 16787  
 16788  	// The unique identifier of the Amazon EC2 security group to associate with
 16789  	// the EMR Notebook for this notebook execution.
 16790  	NotebookInstanceSecurityGroupId *string `type:"string"`
 16791  
 16792  	// Input parameters in JSON format passed to the EMR Notebook at runtime for
 16793  	// execution.
 16794  	NotebookParams *string `type:"string"`
 16795  
 16796  	// The path and file name of the notebook file for this execution, relative
 16797  	// to the path specified for the EMR Notebook. For example, if you specify a
 16798  	// path of s3://MyBucket/MyNotebooks when you create an EMR Notebook for a notebook
 16799  	// with an ID of e-ABCDEFGHIJK1234567890ABCD (the EditorID of this request),
 16800  	// and you specify a RelativePath of my_notebook_executions/notebook_execution.ipynb,
 16801  	// the location of the file for the notebook execution is s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb.
 16802  	//
 16803  	// RelativePath is a required field
 16804  	RelativePath *string `type:"string" required:"true"`
 16805  
 16806  	// The name or ARN of the IAM role that is used as the service role for Amazon
 16807  	// EMR (the EMR role) for the notebook execution.
 16808  	//
 16809  	// ServiceRole is a required field
 16810  	ServiceRole *string `type:"string" required:"true"`
 16811  
 16812  	// A list of tags associated with a notebook execution. Tags are user-defined
 16813  	// key-value pairs that consist of a required key string with a maximum of 128
 16814  	// characters and an optional value string with a maximum of 256 characters.
 16815  	Tags []*Tag `type:"list"`
 16816  }
 16817  
 16818  // String returns the string representation.
 16819  //
 16820  // API parameter values that are decorated as "sensitive" in the API will not
 16821  // be included in the string output. The member name will be present, but the
 16822  // value will be replaced with "sensitive".
 16823  func (s StartNotebookExecutionInput) String() string {
 16824  	return awsutil.Prettify(s)
 16825  }
 16826  
 16827  // GoString returns the string representation.
 16828  //
 16829  // API parameter values that are decorated as "sensitive" in the API will not
 16830  // be included in the string output. The member name will be present, but the
 16831  // value will be replaced with "sensitive".
 16832  func (s StartNotebookExecutionInput) GoString() string {
 16833  	return s.String()
 16834  }
 16835  
 16836  // Validate inspects the fields of the type to determine if they are valid.
 16837  func (s *StartNotebookExecutionInput) Validate() error {
 16838  	invalidParams := request.ErrInvalidParams{Context: "StartNotebookExecutionInput"}
 16839  	if s.EditorId == nil {
 16840  		invalidParams.Add(request.NewErrParamRequired("EditorId"))
 16841  	}
 16842  	if s.ExecutionEngine == nil {
 16843  		invalidParams.Add(request.NewErrParamRequired("ExecutionEngine"))
 16844  	}
 16845  	if s.RelativePath == nil {
 16846  		invalidParams.Add(request.NewErrParamRequired("RelativePath"))
 16847  	}
 16848  	if s.ServiceRole == nil {
 16849  		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
 16850  	}
 16851  	if s.ExecutionEngine != nil {
 16852  		if err := s.ExecutionEngine.Validate(); err != nil {
 16853  			invalidParams.AddNested("ExecutionEngine", err.(request.ErrInvalidParams))
 16854  		}
 16855  	}
 16856  
 16857  	if invalidParams.Len() > 0 {
 16858  		return invalidParams
 16859  	}
 16860  	return nil
 16861  }
 16862  
 16863  // SetEditorId sets the EditorId field's value.
 16864  func (s *StartNotebookExecutionInput) SetEditorId(v string) *StartNotebookExecutionInput {
 16865  	s.EditorId = &v
 16866  	return s
 16867  }
 16868  
 16869  // SetExecutionEngine sets the ExecutionEngine field's value.
 16870  func (s *StartNotebookExecutionInput) SetExecutionEngine(v *ExecutionEngineConfig) *StartNotebookExecutionInput {
 16871  	s.ExecutionEngine = v
 16872  	return s
 16873  }
 16874  
 16875  // SetNotebookExecutionName sets the NotebookExecutionName field's value.
 16876  func (s *StartNotebookExecutionInput) SetNotebookExecutionName(v string) *StartNotebookExecutionInput {
 16877  	s.NotebookExecutionName = &v
 16878  	return s
 16879  }
 16880  
 16881  // SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
 16882  func (s *StartNotebookExecutionInput) SetNotebookInstanceSecurityGroupId(v string) *StartNotebookExecutionInput {
 16883  	s.NotebookInstanceSecurityGroupId = &v
 16884  	return s
 16885  }
 16886  
 16887  // SetNotebookParams sets the NotebookParams field's value.
 16888  func (s *StartNotebookExecutionInput) SetNotebookParams(v string) *StartNotebookExecutionInput {
 16889  	s.NotebookParams = &v
 16890  	return s
 16891  }
 16892  
 16893  // SetRelativePath sets the RelativePath field's value.
 16894  func (s *StartNotebookExecutionInput) SetRelativePath(v string) *StartNotebookExecutionInput {
 16895  	s.RelativePath = &v
 16896  	return s
 16897  }
 16898  
 16899  // SetServiceRole sets the ServiceRole field's value.
 16900  func (s *StartNotebookExecutionInput) SetServiceRole(v string) *StartNotebookExecutionInput {
 16901  	s.ServiceRole = &v
 16902  	return s
 16903  }
 16904  
 16905  // SetTags sets the Tags field's value.
 16906  func (s *StartNotebookExecutionInput) SetTags(v []*Tag) *StartNotebookExecutionInput {
 16907  	s.Tags = v
 16908  	return s
 16909  }
 16910  
 16911  type StartNotebookExecutionOutput struct {
 16912  	_ struct{} `type:"structure"`
 16913  
 16914  	// The unique identifier of the notebook execution.
 16915  	NotebookExecutionId *string `type:"string"`
 16916  }
 16917  
 16918  // String returns the string representation.
 16919  //
 16920  // API parameter values that are decorated as "sensitive" in the API will not
 16921  // be included in the string output. The member name will be present, but the
 16922  // value will be replaced with "sensitive".
 16923  func (s StartNotebookExecutionOutput) String() string {
 16924  	return awsutil.Prettify(s)
 16925  }
 16926  
 16927  // GoString returns the string representation.
 16928  //
 16929  // API parameter values that are decorated as "sensitive" in the API will not
 16930  // be included in the string output. The member name will be present, but the
 16931  // value will be replaced with "sensitive".
 16932  func (s StartNotebookExecutionOutput) GoString() string {
 16933  	return s.String()
 16934  }
 16935  
 16936  // SetNotebookExecutionId sets the NotebookExecutionId field's value.
 16937  func (s *StartNotebookExecutionOutput) SetNotebookExecutionId(v string) *StartNotebookExecutionOutput {
 16938  	s.NotebookExecutionId = &v
 16939  	return s
 16940  }
 16941  
 16942  // This represents a step in a cluster.
 16943  type Step struct {
 16944  	_ struct{} `type:"structure"`
 16945  
 16946  	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
 16947  	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
 16948  	// compatibility. We recommend using TERMINATE_CLUSTER instead.
 16949  	//
 16950  	// If a cluster's StepConcurrencyLevel is greater than 1, do not use AddJobFlowSteps
 16951  	// to submit a step with this parameter set to CANCEL_AND_WAIT or TERMINATE_CLUSTER.
 16952  	// The step is not submitted and the action fails with a message that the ActionOnFailure
 16953  	// setting is not valid.
 16954  	//
 16955  	// If you change a cluster's StepConcurrencyLevel to be greater than 1 while
 16956  	// a step is running, the ActionOnFailure parameter may not behave as you expect.
 16957  	// In this case, for a step that fails with this parameter set to CANCEL_AND_WAIT,
 16958  	// pending steps and the running step are not canceled; for a step that fails
 16959  	// with this parameter set to TERMINATE_CLUSTER, the cluster does not terminate.
 16960  	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
 16961  
 16962  	// The Hadoop job configuration of the cluster step.
 16963  	Config *HadoopStepConfig `type:"structure"`
 16964  
 16965  	// The identifier of the cluster step.
 16966  	Id *string `type:"string"`
 16967  
 16968  	// The name of the cluster step.
 16969  	Name *string `type:"string"`
 16970  
 16971  	// The current execution status details of the cluster step.
 16972  	Status *StepStatus `type:"structure"`
 16973  }
 16974  
 16975  // String returns the string representation.
 16976  //
 16977  // API parameter values that are decorated as "sensitive" in the API will not
 16978  // be included in the string output. The member name will be present, but the
 16979  // value will be replaced with "sensitive".
 16980  func (s Step) String() string {
 16981  	return awsutil.Prettify(s)
 16982  }
 16983  
 16984  // GoString returns the string representation.
 16985  //
 16986  // API parameter values that are decorated as "sensitive" in the API will not
 16987  // be included in the string output. The member name will be present, but the
 16988  // value will be replaced with "sensitive".
 16989  func (s Step) GoString() string {
 16990  	return s.String()
 16991  }
 16992  
 16993  // SetActionOnFailure sets the ActionOnFailure field's value.
 16994  func (s *Step) SetActionOnFailure(v string) *Step {
 16995  	s.ActionOnFailure = &v
 16996  	return s
 16997  }
 16998  
 16999  // SetConfig sets the Config field's value.
 17000  func (s *Step) SetConfig(v *HadoopStepConfig) *Step {
 17001  	s.Config = v
 17002  	return s
 17003  }
 17004  
 17005  // SetId sets the Id field's value.
 17006  func (s *Step) SetId(v string) *Step {
 17007  	s.Id = &v
 17008  	return s
 17009  }
 17010  
 17011  // SetName sets the Name field's value.
 17012  func (s *Step) SetName(v string) *Step {
 17013  	s.Name = &v
 17014  	return s
 17015  }
 17016  
 17017  // SetStatus sets the Status field's value.
 17018  func (s *Step) SetStatus(v *StepStatus) *Step {
 17019  	s.Status = v
 17020  	return s
 17021  }
 17022  
 17023  // Specification for a cluster (job flow) step.
 17024  type StepConfig struct {
 17025  	_ struct{} `type:"structure"`
 17026  
 17027  	// The action to take when the step fails. Use one of the following values:
 17028  	//
 17029  	//    * TERMINATE_CLUSTER - Shuts down the cluster.
 17030  	//
 17031  	//    * CANCEL_AND_WAIT - Cancels any pending steps and returns the cluster
 17032  	//    to the WAITING state.
 17033  	//
 17034  	//    * CONTINUE - Continues to the next step in the queue.
 17035  	//
 17036  	//    * TERMINATE_JOB_FLOW - Shuts down the cluster. TERMINATE_JOB_FLOW is provided
 17037  	//    for backward compatibility. We recommend using TERMINATE_CLUSTER instead.
 17038  	//
 17039  	// If a cluster's StepConcurrencyLevel is greater than 1, do not use AddJobFlowSteps
 17040  	// to submit a step with this parameter set to CANCEL_AND_WAIT or TERMINATE_CLUSTER.
 17041  	// The step is not submitted and the action fails with a message that the ActionOnFailure
 17042  	// setting is not valid.
 17043  	//
 17044  	// If you change a cluster's StepConcurrencyLevel to be greater than 1 while
 17045  	// a step is running, the ActionOnFailure parameter may not behave as you expect.
 17046  	// In this case, for a step that fails with this parameter set to CANCEL_AND_WAIT,
 17047  	// pending steps and the running step are not canceled; for a step that fails
 17048  	// with this parameter set to TERMINATE_CLUSTER, the cluster does not terminate.
 17049  	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
 17050  
 17051  	// The JAR file used for the step.
 17052  	//
 17053  	// HadoopJarStep is a required field
 17054  	HadoopJarStep *HadoopJarStepConfig `type:"structure" required:"true"`
 17055  
 17056  	// The name of the step.
 17057  	//
 17058  	// Name is a required field
 17059  	Name *string `type:"string" required:"true"`
 17060  }
 17061  
 17062  // String returns the string representation.
 17063  //
 17064  // API parameter values that are decorated as "sensitive" in the API will not
 17065  // be included in the string output. The member name will be present, but the
 17066  // value will be replaced with "sensitive".
 17067  func (s StepConfig) String() string {
 17068  	return awsutil.Prettify(s)
 17069  }
 17070  
 17071  // GoString returns the string representation.
 17072  //
 17073  // API parameter values that are decorated as "sensitive" in the API will not
 17074  // be included in the string output. The member name will be present, but the
 17075  // value will be replaced with "sensitive".
 17076  func (s StepConfig) GoString() string {
 17077  	return s.String()
 17078  }
 17079  
 17080  // Validate inspects the fields of the type to determine if they are valid.
 17081  func (s *StepConfig) Validate() error {
 17082  	invalidParams := request.ErrInvalidParams{Context: "StepConfig"}
 17083  	if s.HadoopJarStep == nil {
 17084  		invalidParams.Add(request.NewErrParamRequired("HadoopJarStep"))
 17085  	}
 17086  	if s.Name == nil {
 17087  		invalidParams.Add(request.NewErrParamRequired("Name"))
 17088  	}
 17089  	if s.HadoopJarStep != nil {
 17090  		if err := s.HadoopJarStep.Validate(); err != nil {
 17091  			invalidParams.AddNested("HadoopJarStep", err.(request.ErrInvalidParams))
 17092  		}
 17093  	}
 17094  
 17095  	if invalidParams.Len() > 0 {
 17096  		return invalidParams
 17097  	}
 17098  	return nil
 17099  }
 17100  
 17101  // SetActionOnFailure sets the ActionOnFailure field's value.
 17102  func (s *StepConfig) SetActionOnFailure(v string) *StepConfig {
 17103  	s.ActionOnFailure = &v
 17104  	return s
 17105  }
 17106  
 17107  // SetHadoopJarStep sets the HadoopJarStep field's value.
 17108  func (s *StepConfig) SetHadoopJarStep(v *HadoopJarStepConfig) *StepConfig {
 17109  	s.HadoopJarStep = v
 17110  	return s
 17111  }
 17112  
 17113  // SetName sets the Name field's value.
 17114  func (s *StepConfig) SetName(v string) *StepConfig {
 17115  	s.Name = &v
 17116  	return s
 17117  }
 17118  
 17119  // Combines the execution state and configuration of a step.
 17120  type StepDetail struct {
 17121  	_ struct{} `type:"structure"`
 17122  
 17123  	// The description of the step status.
 17124  	//
 17125  	// ExecutionStatusDetail is a required field
 17126  	ExecutionStatusDetail *StepExecutionStatusDetail `type:"structure" required:"true"`
 17127  
 17128  	// The step configuration.
 17129  	//
 17130  	// StepConfig is a required field
 17131  	StepConfig *StepConfig `type:"structure" required:"true"`
 17132  }
 17133  
 17134  // String returns the string representation.
 17135  //
 17136  // API parameter values that are decorated as "sensitive" in the API will not
 17137  // be included in the string output. The member name will be present, but the
 17138  // value will be replaced with "sensitive".
 17139  func (s StepDetail) String() string {
 17140  	return awsutil.Prettify(s)
 17141  }
 17142  
 17143  // GoString returns the string representation.
 17144  //
 17145  // API parameter values that are decorated as "sensitive" in the API will not
 17146  // be included in the string output. The member name will be present, but the
 17147  // value will be replaced with "sensitive".
 17148  func (s StepDetail) GoString() string {
 17149  	return s.String()
 17150  }
 17151  
 17152  // SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
 17153  func (s *StepDetail) SetExecutionStatusDetail(v *StepExecutionStatusDetail) *StepDetail {
 17154  	s.ExecutionStatusDetail = v
 17155  	return s
 17156  }
 17157  
 17158  // SetStepConfig sets the StepConfig field's value.
 17159  func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail {
 17160  	s.StepConfig = v
 17161  	return s
 17162  }
 17163  
 17164  // The execution state of a step.
 17165  type StepExecutionStatusDetail struct {
 17166  	_ struct{} `type:"structure"`
 17167  
 17168  	// The creation date and time of the step.
 17169  	//
 17170  	// CreationDateTime is a required field
 17171  	CreationDateTime *time.Time `type:"timestamp" required:"true"`
 17172  
 17173  	// The completion date and time of the step.
 17174  	EndDateTime *time.Time `type:"timestamp"`
 17175  
 17176  	// A description of the step's current state.
 17177  	LastStateChangeReason *string `type:"string"`
 17178  
 17179  	// The start date and time of the step.
 17180  	StartDateTime *time.Time `type:"timestamp"`
 17181  
 17182  	// The state of the step.
 17183  	//
 17184  	// State is a required field
 17185  	State *string `type:"string" required:"true" enum:"StepExecutionState"`
 17186  }
 17187  
 17188  // String returns the string representation.
 17189  //
 17190  // API parameter values that are decorated as "sensitive" in the API will not
 17191  // be included in the string output. The member name will be present, but the
 17192  // value will be replaced with "sensitive".
 17193  func (s StepExecutionStatusDetail) String() string {
 17194  	return awsutil.Prettify(s)
 17195  }
 17196  
 17197  // GoString returns the string representation.
 17198  //
 17199  // API parameter values that are decorated as "sensitive" in the API will not
 17200  // be included in the string output. The member name will be present, but the
 17201  // value will be replaced with "sensitive".
 17202  func (s StepExecutionStatusDetail) GoString() string {
 17203  	return s.String()
 17204  }
 17205  
 17206  // SetCreationDateTime sets the CreationDateTime field's value.
 17207  func (s *StepExecutionStatusDetail) SetCreationDateTime(v time.Time) *StepExecutionStatusDetail {
 17208  	s.CreationDateTime = &v
 17209  	return s
 17210  }
 17211  
 17212  // SetEndDateTime sets the EndDateTime field's value.
 17213  func (s *StepExecutionStatusDetail) SetEndDateTime(v time.Time) *StepExecutionStatusDetail {
 17214  	s.EndDateTime = &v
 17215  	return s
 17216  }
 17217  
 17218  // SetLastStateChangeReason sets the LastStateChangeReason field's value.
 17219  func (s *StepExecutionStatusDetail) SetLastStateChangeReason(v string) *StepExecutionStatusDetail {
 17220  	s.LastStateChangeReason = &v
 17221  	return s
 17222  }
 17223  
 17224  // SetStartDateTime sets the StartDateTime field's value.
 17225  func (s *StepExecutionStatusDetail) SetStartDateTime(v time.Time) *StepExecutionStatusDetail {
 17226  	s.StartDateTime = &v
 17227  	return s
 17228  }
 17229  
 17230  // SetState sets the State field's value.
 17231  func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetail {
 17232  	s.State = &v
 17233  	return s
 17234  }
 17235  
 17236  // The details of the step state change reason.
 17237  type StepStateChangeReason struct {
 17238  	_ struct{} `type:"structure"`
 17239  
 17240  	// The programmable code for the state change reason. Note: Currently, the service
 17241  	// provides no code for the state change.
 17242  	Code *string `type:"string" enum:"StepStateChangeReasonCode"`
 17243  
 17244  	// The descriptive message for the state change reason.
 17245  	Message *string `type:"string"`
 17246  }
 17247  
 17248  // String returns the string representation.
 17249  //
 17250  // API parameter values that are decorated as "sensitive" in the API will not
 17251  // be included in the string output. The member name will be present, but the
 17252  // value will be replaced with "sensitive".
 17253  func (s StepStateChangeReason) String() string {
 17254  	return awsutil.Prettify(s)
 17255  }
 17256  
 17257  // GoString returns the string representation.
 17258  //
 17259  // API parameter values that are decorated as "sensitive" in the API will not
 17260  // be included in the string output. The member name will be present, but the
 17261  // value will be replaced with "sensitive".
 17262  func (s StepStateChangeReason) GoString() string {
 17263  	return s.String()
 17264  }
 17265  
 17266  // SetCode sets the Code field's value.
 17267  func (s *StepStateChangeReason) SetCode(v string) *StepStateChangeReason {
 17268  	s.Code = &v
 17269  	return s
 17270  }
 17271  
 17272  // SetMessage sets the Message field's value.
 17273  func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason {
 17274  	s.Message = &v
 17275  	return s
 17276  }
 17277  
 17278  // The execution status details of the cluster step.
 17279  type StepStatus struct {
 17280  	_ struct{} `type:"structure"`
 17281  
 17282  	// The details for the step failure including reason, message, and log file
 17283  	// path where the root cause was identified.
 17284  	FailureDetails *FailureDetails `type:"structure"`
 17285  
 17286  	// The execution state of the cluster step.
 17287  	State *string `type:"string" enum:"StepState"`
 17288  
 17289  	// The reason for the step execution status change.
 17290  	StateChangeReason *StepStateChangeReason `type:"structure"`
 17291  
 17292  	// The timeline of the cluster step status over time.
 17293  	Timeline *StepTimeline `type:"structure"`
 17294  }
 17295  
 17296  // String returns the string representation.
 17297  //
 17298  // API parameter values that are decorated as "sensitive" in the API will not
 17299  // be included in the string output. The member name will be present, but the
 17300  // value will be replaced with "sensitive".
 17301  func (s StepStatus) String() string {
 17302  	return awsutil.Prettify(s)
 17303  }
 17304  
 17305  // GoString returns the string representation.
 17306  //
 17307  // API parameter values that are decorated as "sensitive" in the API will not
 17308  // be included in the string output. The member name will be present, but the
 17309  // value will be replaced with "sensitive".
 17310  func (s StepStatus) GoString() string {
 17311  	return s.String()
 17312  }
 17313  
 17314  // SetFailureDetails sets the FailureDetails field's value.
 17315  func (s *StepStatus) SetFailureDetails(v *FailureDetails) *StepStatus {
 17316  	s.FailureDetails = v
 17317  	return s
 17318  }
 17319  
 17320  // SetState sets the State field's value.
 17321  func (s *StepStatus) SetState(v string) *StepStatus {
 17322  	s.State = &v
 17323  	return s
 17324  }
 17325  
 17326  // SetStateChangeReason sets the StateChangeReason field's value.
 17327  func (s *StepStatus) SetStateChangeReason(v *StepStateChangeReason) *StepStatus {
 17328  	s.StateChangeReason = v
 17329  	return s
 17330  }
 17331  
 17332  // SetTimeline sets the Timeline field's value.
 17333  func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus {
 17334  	s.Timeline = v
 17335  	return s
 17336  }
 17337  
 17338  // The summary of the cluster step.
 17339  type StepSummary struct {
 17340  	_ struct{} `type:"structure"`
 17341  
 17342  	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
 17343  	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is available for backward
 17344  	// compatibility.
 17345  	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
 17346  
 17347  	// The Hadoop job configuration of the cluster step.
 17348  	Config *HadoopStepConfig `type:"structure"`
 17349  
 17350  	// The identifier of the cluster step.
 17351  	Id *string `type:"string"`
 17352  
 17353  	// The name of the cluster step.
 17354  	Name *string `type:"string"`
 17355  
 17356  	// The current execution status details of the cluster step.
 17357  	Status *StepStatus `type:"structure"`
 17358  }
 17359  
 17360  // String returns the string representation.
 17361  //
 17362  // API parameter values that are decorated as "sensitive" in the API will not
 17363  // be included in the string output. The member name will be present, but the
 17364  // value will be replaced with "sensitive".
 17365  func (s StepSummary) String() string {
 17366  	return awsutil.Prettify(s)
 17367  }
 17368  
 17369  // GoString returns the string representation.
 17370  //
 17371  // API parameter values that are decorated as "sensitive" in the API will not
 17372  // be included in the string output. The member name will be present, but the
 17373  // value will be replaced with "sensitive".
 17374  func (s StepSummary) GoString() string {
 17375  	return s.String()
 17376  }
 17377  
 17378  // SetActionOnFailure sets the ActionOnFailure field's value.
 17379  func (s *StepSummary) SetActionOnFailure(v string) *StepSummary {
 17380  	s.ActionOnFailure = &v
 17381  	return s
 17382  }
 17383  
 17384  // SetConfig sets the Config field's value.
 17385  func (s *StepSummary) SetConfig(v *HadoopStepConfig) *StepSummary {
 17386  	s.Config = v
 17387  	return s
 17388  }
 17389  
 17390  // SetId sets the Id field's value.
 17391  func (s *StepSummary) SetId(v string) *StepSummary {
 17392  	s.Id = &v
 17393  	return s
 17394  }
 17395  
 17396  // SetName sets the Name field's value.
 17397  func (s *StepSummary) SetName(v string) *StepSummary {
 17398  	s.Name = &v
 17399  	return s
 17400  }
 17401  
 17402  // SetStatus sets the Status field's value.
 17403  func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary {
 17404  	s.Status = v
 17405  	return s
 17406  }
 17407  
 17408  // The timeline of the cluster step lifecycle.
 17409  type StepTimeline struct {
 17410  	_ struct{} `type:"structure"`
 17411  
 17412  	// The date and time when the cluster step was created.
 17413  	CreationDateTime *time.Time `type:"timestamp"`
 17414  
 17415  	// The date and time when the cluster step execution completed or failed.
 17416  	EndDateTime *time.Time `type:"timestamp"`
 17417  
 17418  	// The date and time when the cluster step execution started.
 17419  	StartDateTime *time.Time `type:"timestamp"`
 17420  }
 17421  
 17422  // String returns the string representation.
 17423  //
 17424  // API parameter values that are decorated as "sensitive" in the API will not
 17425  // be included in the string output. The member name will be present, but the
 17426  // value will be replaced with "sensitive".
 17427  func (s StepTimeline) String() string {
 17428  	return awsutil.Prettify(s)
 17429  }
 17430  
 17431  // GoString returns the string representation.
 17432  //
 17433  // API parameter values that are decorated as "sensitive" in the API will not
 17434  // be included in the string output. The member name will be present, but the
 17435  // value will be replaced with "sensitive".
 17436  func (s StepTimeline) GoString() string {
 17437  	return s.String()
 17438  }
 17439  
 17440  // SetCreationDateTime sets the CreationDateTime field's value.
 17441  func (s *StepTimeline) SetCreationDateTime(v time.Time) *StepTimeline {
 17442  	s.CreationDateTime = &v
 17443  	return s
 17444  }
 17445  
 17446  // SetEndDateTime sets the EndDateTime field's value.
 17447  func (s *StepTimeline) SetEndDateTime(v time.Time) *StepTimeline {
 17448  	s.EndDateTime = &v
 17449  	return s
 17450  }
 17451  
 17452  // SetStartDateTime sets the StartDateTime field's value.
 17453  func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline {
 17454  	s.StartDateTime = &v
 17455  	return s
 17456  }
 17457  
 17458  type StopNotebookExecutionInput struct {
 17459  	_ struct{} `type:"structure"`
 17460  
 17461  	// The unique identifier of the notebook execution.
 17462  	//
 17463  	// NotebookExecutionId is a required field
 17464  	NotebookExecutionId *string `type:"string" required:"true"`
 17465  }
 17466  
 17467  // String returns the string representation.
 17468  //
 17469  // API parameter values that are decorated as "sensitive" in the API will not
 17470  // be included in the string output. The member name will be present, but the
 17471  // value will be replaced with "sensitive".
 17472  func (s StopNotebookExecutionInput) String() string {
 17473  	return awsutil.Prettify(s)
 17474  }
 17475  
 17476  // GoString returns the string representation.
 17477  //
 17478  // API parameter values that are decorated as "sensitive" in the API will not
 17479  // be included in the string output. The member name will be present, but the
 17480  // value will be replaced with "sensitive".
 17481  func (s StopNotebookExecutionInput) GoString() string {
 17482  	return s.String()
 17483  }
 17484  
 17485  // Validate inspects the fields of the type to determine if they are valid.
 17486  func (s *StopNotebookExecutionInput) Validate() error {
 17487  	invalidParams := request.ErrInvalidParams{Context: "StopNotebookExecutionInput"}
 17488  	if s.NotebookExecutionId == nil {
 17489  		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
 17490  	}
 17491  
 17492  	if invalidParams.Len() > 0 {
 17493  		return invalidParams
 17494  	}
 17495  	return nil
 17496  }
 17497  
 17498  // SetNotebookExecutionId sets the NotebookExecutionId field's value.
 17499  func (s *StopNotebookExecutionInput) SetNotebookExecutionId(v string) *StopNotebookExecutionInput {
 17500  	s.NotebookExecutionId = &v
 17501  	return s
 17502  }
 17503  
 17504  type StopNotebookExecutionOutput struct {
 17505  	_ struct{} `type:"structure"`
 17506  }
 17507  
 17508  // String returns the string representation.
 17509  //
 17510  // API parameter values that are decorated as "sensitive" in the API will not
 17511  // be included in the string output. The member name will be present, but the
 17512  // value will be replaced with "sensitive".
 17513  func (s StopNotebookExecutionOutput) String() string {
 17514  	return awsutil.Prettify(s)
 17515  }
 17516  
 17517  // GoString returns the string representation.
 17518  //
 17519  // API parameter values that are decorated as "sensitive" in the API will not
 17520  // be included in the string output. The member name will be present, but the
 17521  // value will be replaced with "sensitive".
 17522  func (s StopNotebookExecutionOutput) GoString() string {
 17523  	return s.String()
 17524  }
 17525  
 17526  // Details for an Amazon EMR Studio including ID, creation time, name, and so
 17527  // on.
 17528  type Studio struct {
 17529  	_ struct{} `type:"structure"`
 17530  
 17531  	// Specifies whether the Amazon EMR Studio authenticates users using IAM or
 17532  	// Amazon Web Services SSO.
 17533  	AuthMode *string `type:"string" enum:"AuthMode"`
 17534  
 17535  	// The time the Amazon EMR Studio was created.
 17536  	CreationTime *time.Time `type:"timestamp"`
 17537  
 17538  	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
 17539  	// files.
 17540  	DefaultS3Location *string `type:"string"`
 17541  
 17542  	// The detailed description of the Amazon EMR Studio.
 17543  	Description *string `type:"string"`
 17544  
 17545  	// The ID of the Engine security group associated with the Amazon EMR Studio.
 17546  	// The Engine security group allows inbound network traffic from resources in
 17547  	// the Workspace security group.
 17548  	EngineSecurityGroupId *string `type:"string"`
 17549  
 17550  	// Your identity provider's authentication endpoint. Amazon EMR Studio redirects
 17551  	// federated users to this endpoint for authentication when logging in to a
 17552  	// Studio with the Studio URL.
 17553  	IdpAuthUrl *string `type:"string"`
 17554  
 17555  	// The name of your identity provider's RelayState parameter.
 17556  	IdpRelayStateParameterName *string `type:"string"`
 17557  
 17558  	// The name of the Amazon EMR Studio.
 17559  	Name *string `type:"string"`
 17560  
 17561  	// The name of the IAM role assumed by the Amazon EMR Studio.
 17562  	ServiceRole *string `type:"string"`
 17563  
 17564  	// The Amazon Resource Name (ARN) of the Amazon EMR Studio.
 17565  	StudioArn *string `type:"string"`
 17566  
 17567  	// The ID of the Amazon EMR Studio.
 17568  	StudioId *string `type:"string"`
 17569  
 17570  	// The list of IDs of the subnets associated with the Amazon EMR Studio.
 17571  	SubnetIds []*string `type:"list"`
 17572  
 17573  	// A list of tags associated with the Amazon EMR Studio.
 17574  	Tags []*Tag `type:"list"`
 17575  
 17576  	// The unique access URL of the Amazon EMR Studio.
 17577  	Url *string `type:"string"`
 17578  
 17579  	// The name of the IAM role assumed by users logged in to the Amazon EMR Studio.
 17580  	// A Studio only requires a UserRole when you use IAM authentication.
 17581  	UserRole *string `type:"string"`
 17582  
 17583  	// The ID of the VPC associated with the Amazon EMR Studio.
 17584  	VpcId *string `type:"string"`
 17585  
 17586  	// The ID of the Workspace security group associated with the Amazon EMR Studio.
 17587  	// The Workspace security group allows outbound network traffic to resources
 17588  	// in the Engine security group and to the internet.
 17589  	WorkspaceSecurityGroupId *string `type:"string"`
 17590  }
 17591  
 17592  // String returns the string representation.
 17593  //
 17594  // API parameter values that are decorated as "sensitive" in the API will not
 17595  // be included in the string output. The member name will be present, but the
 17596  // value will be replaced with "sensitive".
 17597  func (s Studio) String() string {
 17598  	return awsutil.Prettify(s)
 17599  }
 17600  
 17601  // GoString returns the string representation.
 17602  //
 17603  // API parameter values that are decorated as "sensitive" in the API will not
 17604  // be included in the string output. The member name will be present, but the
 17605  // value will be replaced with "sensitive".
 17606  func (s Studio) GoString() string {
 17607  	return s.String()
 17608  }
 17609  
 17610  // SetAuthMode sets the AuthMode field's value.
 17611  func (s *Studio) SetAuthMode(v string) *Studio {
 17612  	s.AuthMode = &v
 17613  	return s
 17614  }
 17615  
 17616  // SetCreationTime sets the CreationTime field's value.
 17617  func (s *Studio) SetCreationTime(v time.Time) *Studio {
 17618  	s.CreationTime = &v
 17619  	return s
 17620  }
 17621  
 17622  // SetDefaultS3Location sets the DefaultS3Location field's value.
 17623  func (s *Studio) SetDefaultS3Location(v string) *Studio {
 17624  	s.DefaultS3Location = &v
 17625  	return s
 17626  }
 17627  
 17628  // SetDescription sets the Description field's value.
 17629  func (s *Studio) SetDescription(v string) *Studio {
 17630  	s.Description = &v
 17631  	return s
 17632  }
 17633  
 17634  // SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
 17635  func (s *Studio) SetEngineSecurityGroupId(v string) *Studio {
 17636  	s.EngineSecurityGroupId = &v
 17637  	return s
 17638  }
 17639  
 17640  // SetIdpAuthUrl sets the IdpAuthUrl field's value.
 17641  func (s *Studio) SetIdpAuthUrl(v string) *Studio {
 17642  	s.IdpAuthUrl = &v
 17643  	return s
 17644  }
 17645  
 17646  // SetIdpRelayStateParameterName sets the IdpRelayStateParameterName field's value.
 17647  func (s *Studio) SetIdpRelayStateParameterName(v string) *Studio {
 17648  	s.IdpRelayStateParameterName = &v
 17649  	return s
 17650  }
 17651  
 17652  // SetName sets the Name field's value.
 17653  func (s *Studio) SetName(v string) *Studio {
 17654  	s.Name = &v
 17655  	return s
 17656  }
 17657  
 17658  // SetServiceRole sets the ServiceRole field's value.
 17659  func (s *Studio) SetServiceRole(v string) *Studio {
 17660  	s.ServiceRole = &v
 17661  	return s
 17662  }
 17663  
 17664  // SetStudioArn sets the StudioArn field's value.
 17665  func (s *Studio) SetStudioArn(v string) *Studio {
 17666  	s.StudioArn = &v
 17667  	return s
 17668  }
 17669  
 17670  // SetStudioId sets the StudioId field's value.
 17671  func (s *Studio) SetStudioId(v string) *Studio {
 17672  	s.StudioId = &v
 17673  	return s
 17674  }
 17675  
 17676  // SetSubnetIds sets the SubnetIds field's value.
 17677  func (s *Studio) SetSubnetIds(v []*string) *Studio {
 17678  	s.SubnetIds = v
 17679  	return s
 17680  }
 17681  
 17682  // SetTags sets the Tags field's value.
 17683  func (s *Studio) SetTags(v []*Tag) *Studio {
 17684  	s.Tags = v
 17685  	return s
 17686  }
 17687  
 17688  // SetUrl sets the Url field's value.
 17689  func (s *Studio) SetUrl(v string) *Studio {
 17690  	s.Url = &v
 17691  	return s
 17692  }
 17693  
 17694  // SetUserRole sets the UserRole field's value.
 17695  func (s *Studio) SetUserRole(v string) *Studio {
 17696  	s.UserRole = &v
 17697  	return s
 17698  }
 17699  
 17700  // SetVpcId sets the VpcId field's value.
 17701  func (s *Studio) SetVpcId(v string) *Studio {
 17702  	s.VpcId = &v
 17703  	return s
 17704  }
 17705  
 17706  // SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
 17707  func (s *Studio) SetWorkspaceSecurityGroupId(v string) *Studio {
 17708  	s.WorkspaceSecurityGroupId = &v
 17709  	return s
 17710  }
 17711  
 17712  // Details for an Amazon EMR Studio, including ID, Name, VPC, and Description.
 17713  // The details do not include subnets, IAM roles, security groups, or tags associated
 17714  // with the Studio.
 17715  type StudioSummary struct {
 17716  	_ struct{} `type:"structure"`
 17717  
 17718  	// Specifies whether the Studio authenticates users using IAM or Amazon Web
 17719  	// Services SSO.
 17720  	AuthMode *string `type:"string" enum:"AuthMode"`
 17721  
 17722  	// The time when the Amazon EMR Studio was created.
 17723  	CreationTime *time.Time `type:"timestamp"`
 17724  
 17725  	// The detailed description of the Amazon EMR Studio.
 17726  	Description *string `type:"string"`
 17727  
 17728  	// The name of the Amazon EMR Studio.
 17729  	Name *string `type:"string"`
 17730  
 17731  	// The ID of the Amazon EMR Studio.
 17732  	StudioId *string `type:"string"`
 17733  
 17734  	// The unique access URL of the Amazon EMR Studio.
 17735  	Url *string `type:"string"`
 17736  
 17737  	// The ID of the Virtual Private Cloud (Amazon VPC) associated with the Amazon
 17738  	// EMR Studio.
 17739  	VpcId *string `type:"string"`
 17740  }
 17741  
 17742  // String returns the string representation.
 17743  //
 17744  // API parameter values that are decorated as "sensitive" in the API will not
 17745  // be included in the string output. The member name will be present, but the
 17746  // value will be replaced with "sensitive".
 17747  func (s StudioSummary) String() string {
 17748  	return awsutil.Prettify(s)
 17749  }
 17750  
 17751  // GoString returns the string representation.
 17752  //
 17753  // API parameter values that are decorated as "sensitive" in the API will not
 17754  // be included in the string output. The member name will be present, but the
 17755  // value will be replaced with "sensitive".
 17756  func (s StudioSummary) GoString() string {
 17757  	return s.String()
 17758  }
 17759  
 17760  // SetAuthMode sets the AuthMode field's value.
 17761  func (s *StudioSummary) SetAuthMode(v string) *StudioSummary {
 17762  	s.AuthMode = &v
 17763  	return s
 17764  }
 17765  
 17766  // SetCreationTime sets the CreationTime field's value.
 17767  func (s *StudioSummary) SetCreationTime(v time.Time) *StudioSummary {
 17768  	s.CreationTime = &v
 17769  	return s
 17770  }
 17771  
 17772  // SetDescription sets the Description field's value.
 17773  func (s *StudioSummary) SetDescription(v string) *StudioSummary {
 17774  	s.Description = &v
 17775  	return s
 17776  }
 17777  
 17778  // SetName sets the Name field's value.
 17779  func (s *StudioSummary) SetName(v string) *StudioSummary {
 17780  	s.Name = &v
 17781  	return s
 17782  }
 17783  
 17784  // SetStudioId sets the StudioId field's value.
 17785  func (s *StudioSummary) SetStudioId(v string) *StudioSummary {
 17786  	s.StudioId = &v
 17787  	return s
 17788  }
 17789  
 17790  // SetUrl sets the Url field's value.
 17791  func (s *StudioSummary) SetUrl(v string) *StudioSummary {
 17792  	s.Url = &v
 17793  	return s
 17794  }
 17795  
 17796  // SetVpcId sets the VpcId field's value.
 17797  func (s *StudioSummary) SetVpcId(v string) *StudioSummary {
 17798  	s.VpcId = &v
 17799  	return s
 17800  }
 17801  
 17802  // The list of supported product configurations that allow user-supplied arguments.
 17803  // EMR accepts these arguments and forwards them to the corresponding installation
 17804  // script as bootstrap action arguments.
 17805  type SupportedProductConfig struct {
 17806  	_ struct{} `type:"structure"`
 17807  
 17808  	// The list of user-supplied arguments.
 17809  	Args []*string `type:"list"`
 17810  
 17811  	// The name of the product configuration.
 17812  	Name *string `type:"string"`
 17813  }
 17814  
 17815  // String returns the string representation.
 17816  //
 17817  // API parameter values that are decorated as "sensitive" in the API will not
 17818  // be included in the string output. The member name will be present, but the
 17819  // value will be replaced with "sensitive".
 17820  func (s SupportedProductConfig) String() string {
 17821  	return awsutil.Prettify(s)
 17822  }
 17823  
 17824  // GoString returns the string representation.
 17825  //
 17826  // API parameter values that are decorated as "sensitive" in the API will not
 17827  // be included in the string output. The member name will be present, but the
 17828  // value will be replaced with "sensitive".
 17829  func (s SupportedProductConfig) GoString() string {
 17830  	return s.String()
 17831  }
 17832  
 17833  // SetArgs sets the Args field's value.
 17834  func (s *SupportedProductConfig) SetArgs(v []*string) *SupportedProductConfig {
 17835  	s.Args = v
 17836  	return s
 17837  }
 17838  
 17839  // SetName sets the Name field's value.
 17840  func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig {
 17841  	s.Name = &v
 17842  	return s
 17843  }
 17844  
 17845  // A key-value pair containing user-defined metadata that you can associate
 17846  // with an Amazon EMR resource. Tags make it easier to associate clusters in
 17847  // various ways, such as grouping clusters to track your Amazon EMR resource
 17848  // allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
 17849  type Tag struct {
 17850  	_ struct{} `type:"structure"`
 17851  
 17852  	// A user-defined key, which is the minimum required information for a valid
 17853  	// tag. For more information, see Tag (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
 17854  	Key *string `type:"string"`
 17855  
 17856  	// A user-defined value, which is optional in a tag. For more information, see
 17857  	// Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
 17858  	Value *string `type:"string"`
 17859  }
 17860  
 17861  // String returns the string representation.
 17862  //
 17863  // API parameter values that are decorated as "sensitive" in the API will not
 17864  // be included in the string output. The member name will be present, but the
 17865  // value will be replaced with "sensitive".
 17866  func (s Tag) String() string {
 17867  	return awsutil.Prettify(s)
 17868  }
 17869  
 17870  // GoString returns the string representation.
 17871  //
 17872  // API parameter values that are decorated as "sensitive" in the API will not
 17873  // be included in the string output. The member name will be present, but the
 17874  // value will be replaced with "sensitive".
 17875  func (s Tag) GoString() string {
 17876  	return s.String()
 17877  }
 17878  
 17879  // SetKey sets the Key field's value.
 17880  func (s *Tag) SetKey(v string) *Tag {
 17881  	s.Key = &v
 17882  	return s
 17883  }
 17884  
 17885  // SetValue sets the Value field's value.
 17886  func (s *Tag) SetValue(v string) *Tag {
 17887  	s.Value = &v
 17888  	return s
 17889  }
 17890  
 17891  // Input to the TerminateJobFlows operation.
 17892  type TerminateJobFlowsInput struct {
 17893  	_ struct{} `type:"structure"`
 17894  
 17895  	// A list of job flows to be shut down.
 17896  	//
 17897  	// JobFlowIds is a required field
 17898  	JobFlowIds []*string `type:"list" required:"true"`
 17899  }
 17900  
 17901  // String returns the string representation.
 17902  //
 17903  // API parameter values that are decorated as "sensitive" in the API will not
 17904  // be included in the string output. The member name will be present, but the
 17905  // value will be replaced with "sensitive".
 17906  func (s TerminateJobFlowsInput) String() string {
 17907  	return awsutil.Prettify(s)
 17908  }
 17909  
 17910  // GoString returns the string representation.
 17911  //
 17912  // API parameter values that are decorated as "sensitive" in the API will not
 17913  // be included in the string output. The member name will be present, but the
 17914  // value will be replaced with "sensitive".
 17915  func (s TerminateJobFlowsInput) GoString() string {
 17916  	return s.String()
 17917  }
 17918  
 17919  // Validate inspects the fields of the type to determine if they are valid.
 17920  func (s *TerminateJobFlowsInput) Validate() error {
 17921  	invalidParams := request.ErrInvalidParams{Context: "TerminateJobFlowsInput"}
 17922  	if s.JobFlowIds == nil {
 17923  		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
 17924  	}
 17925  
 17926  	if invalidParams.Len() > 0 {
 17927  		return invalidParams
 17928  	}
 17929  	return nil
 17930  }
 17931  
 17932  // SetJobFlowIds sets the JobFlowIds field's value.
 17933  func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsInput {
 17934  	s.JobFlowIds = v
 17935  	return s
 17936  }
 17937  
 17938  type TerminateJobFlowsOutput struct {
 17939  	_ struct{} `type:"structure"`
 17940  }
 17941  
 17942  // String returns the string representation.
 17943  //
 17944  // API parameter values that are decorated as "sensitive" in the API will not
 17945  // be included in the string output. The member name will be present, but the
 17946  // value will be replaced with "sensitive".
 17947  func (s TerminateJobFlowsOutput) String() string {
 17948  	return awsutil.Prettify(s)
 17949  }
 17950  
 17951  // GoString returns the string representation.
 17952  //
 17953  // API parameter values that are decorated as "sensitive" in the API will not
 17954  // be included in the string output. The member name will be present, but the
 17955  // value will be replaced with "sensitive".
 17956  func (s TerminateJobFlowsOutput) GoString() string {
 17957  	return s.String()
 17958  }
 17959  
 17960  type UpdateStudioInput struct {
 17961  	_ struct{} `type:"structure"`
 17962  
 17963  	// The Amazon S3 location to back up Workspaces and notebook files for the Amazon
 17964  	// EMR Studio.
 17965  	DefaultS3Location *string `type:"string"`
 17966  
 17967  	// A detailed description to assign to the Amazon EMR Studio.
 17968  	Description *string `type:"string"`
 17969  
 17970  	// A descriptive name for the Amazon EMR Studio.
 17971  	Name *string `type:"string"`
 17972  
 17973  	// The ID of the Amazon EMR Studio to update.
 17974  	//
 17975  	// StudioId is a required field
 17976  	StudioId *string `type:"string" required:"true"`
 17977  
 17978  	// A list of subnet IDs to associate with the Amazon EMR Studio. The list can
 17979  	// include new subnet IDs, but must also include all of the subnet IDs previously
 17980  	// associated with the Studio. The list order does not matter. A Studio can
 17981  	// have a maximum of 5 subnets. The subnets must belong to the same VPC as the
 17982  	// Studio.
 17983  	SubnetIds []*string `type:"list"`
 17984  }
 17985  
 17986  // String returns the string representation.
 17987  //
 17988  // API parameter values that are decorated as "sensitive" in the API will not
 17989  // be included in the string output. The member name will be present, but the
 17990  // value will be replaced with "sensitive".
 17991  func (s UpdateStudioInput) String() string {
 17992  	return awsutil.Prettify(s)
 17993  }
 17994  
 17995  // GoString returns the string representation.
 17996  //
 17997  // API parameter values that are decorated as "sensitive" in the API will not
 17998  // be included in the string output. The member name will be present, but the
 17999  // value will be replaced with "sensitive".
 18000  func (s UpdateStudioInput) GoString() string {
 18001  	return s.String()
 18002  }
 18003  
 18004  // Validate inspects the fields of the type to determine if they are valid.
 18005  func (s *UpdateStudioInput) Validate() error {
 18006  	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioInput"}
 18007  	if s.StudioId == nil {
 18008  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
 18009  	}
 18010  
 18011  	if invalidParams.Len() > 0 {
 18012  		return invalidParams
 18013  	}
 18014  	return nil
 18015  }
 18016  
 18017  // SetDefaultS3Location sets the DefaultS3Location field's value.
 18018  func (s *UpdateStudioInput) SetDefaultS3Location(v string) *UpdateStudioInput {
 18019  	s.DefaultS3Location = &v
 18020  	return s
 18021  }
 18022  
 18023  // SetDescription sets the Description field's value.
 18024  func (s *UpdateStudioInput) SetDescription(v string) *UpdateStudioInput {
 18025  	s.Description = &v
 18026  	return s
 18027  }
 18028  
 18029  // SetName sets the Name field's value.
 18030  func (s *UpdateStudioInput) SetName(v string) *UpdateStudioInput {
 18031  	s.Name = &v
 18032  	return s
 18033  }
 18034  
 18035  // SetStudioId sets the StudioId field's value.
 18036  func (s *UpdateStudioInput) SetStudioId(v string) *UpdateStudioInput {
 18037  	s.StudioId = &v
 18038  	return s
 18039  }
 18040  
 18041  // SetSubnetIds sets the SubnetIds field's value.
 18042  func (s *UpdateStudioInput) SetSubnetIds(v []*string) *UpdateStudioInput {
 18043  	s.SubnetIds = v
 18044  	return s
 18045  }
 18046  
 18047  type UpdateStudioOutput struct {
 18048  	_ struct{} `type:"structure"`
 18049  }
 18050  
 18051  // String returns the string representation.
 18052  //
 18053  // API parameter values that are decorated as "sensitive" in the API will not
 18054  // be included in the string output. The member name will be present, but the
 18055  // value will be replaced with "sensitive".
 18056  func (s UpdateStudioOutput) String() string {
 18057  	return awsutil.Prettify(s)
 18058  }
 18059  
 18060  // GoString returns the string representation.
 18061  //
 18062  // API parameter values that are decorated as "sensitive" in the API will not
 18063  // be included in the string output. The member name will be present, but the
 18064  // value will be replaced with "sensitive".
 18065  func (s UpdateStudioOutput) GoString() string {
 18066  	return s.String()
 18067  }
 18068  
 18069  type UpdateStudioSessionMappingInput struct {
 18070  	_ struct{} `type:"structure"`
 18071  
 18072  	// The globally unique identifier (GUID) of the user or group. For more information,
 18073  	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
 18074  	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
 18075  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
 18076  	// or IdentityId must be specified.
 18077  	IdentityId *string `type:"string"`
 18078  
 18079  	// The name of the user or group to update. For more information, see UserName
 18080  	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
 18081  	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
 18082  	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
 18083  	// or IdentityId must be specified.
 18084  	IdentityName *string `type:"string"`
 18085  
 18086  	// Specifies whether the identity to update is a user or a group.
 18087  	//
 18088  	// IdentityType is a required field
 18089  	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
 18090  
 18091  	// The Amazon Resource Name (ARN) of the session policy to associate with the
 18092  	// specified user or group.
 18093  	//
 18094  	// SessionPolicyArn is a required field
 18095  	SessionPolicyArn *string `type:"string" required:"true"`
 18096  
 18097  	// The ID of the Amazon EMR Studio.
 18098  	//
 18099  	// StudioId is a required field
 18100  	StudioId *string `type:"string" required:"true"`
 18101  }
 18102  
 18103  // String returns the string representation.
 18104  //
 18105  // API parameter values that are decorated as "sensitive" in the API will not
 18106  // be included in the string output. The member name will be present, but the
 18107  // value will be replaced with "sensitive".
 18108  func (s UpdateStudioSessionMappingInput) String() string {
 18109  	return awsutil.Prettify(s)
 18110  }
 18111  
 18112  // GoString returns the string representation.
 18113  //
 18114  // API parameter values that are decorated as "sensitive" in the API will not
 18115  // be included in the string output. The member name will be present, but the
 18116  // value will be replaced with "sensitive".
 18117  func (s UpdateStudioSessionMappingInput) GoString() string {
 18118  	return s.String()
 18119  }
 18120  
 18121  // Validate inspects the fields of the type to determine if they are valid.
 18122  func (s *UpdateStudioSessionMappingInput) Validate() error {
 18123  	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioSessionMappingInput"}
 18124  	if s.IdentityType == nil {
 18125  		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
 18126  	}
 18127  	if s.SessionPolicyArn == nil {
 18128  		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
 18129  	}
 18130  	if s.StudioId == nil {
 18131  		invalidParams.Add(request.NewErrParamRequired("StudioId"))
 18132  	}
 18133  
 18134  	if invalidParams.Len() > 0 {
 18135  		return invalidParams
 18136  	}
 18137  	return nil
 18138  }
 18139  
 18140  // SetIdentityId sets the IdentityId field's value.
 18141  func (s *UpdateStudioSessionMappingInput) SetIdentityId(v string) *UpdateStudioSessionMappingInput {
 18142  	s.IdentityId = &v
 18143  	return s
 18144  }
 18145  
 18146  // SetIdentityName sets the IdentityName field's value.
 18147  func (s *UpdateStudioSessionMappingInput) SetIdentityName(v string) *UpdateStudioSessionMappingInput {
 18148  	s.IdentityName = &v
 18149  	return s
 18150  }
 18151  
 18152  // SetIdentityType sets the IdentityType field's value.
 18153  func (s *UpdateStudioSessionMappingInput) SetIdentityType(v string) *UpdateStudioSessionMappingInput {
 18154  	s.IdentityType = &v
 18155  	return s
 18156  }
 18157  
 18158  // SetSessionPolicyArn sets the SessionPolicyArn field's value.
 18159  func (s *UpdateStudioSessionMappingInput) SetSessionPolicyArn(v string) *UpdateStudioSessionMappingInput {
 18160  	s.SessionPolicyArn = &v
 18161  	return s
 18162  }
 18163  
 18164  // SetStudioId sets the StudioId field's value.
 18165  func (s *UpdateStudioSessionMappingInput) SetStudioId(v string) *UpdateStudioSessionMappingInput {
 18166  	s.StudioId = &v
 18167  	return s
 18168  }
 18169  
 18170  type UpdateStudioSessionMappingOutput struct {
 18171  	_ struct{} `type:"structure"`
 18172  }
 18173  
 18174  // String returns the string representation.
 18175  //
 18176  // API parameter values that are decorated as "sensitive" in the API will not
 18177  // be included in the string output. The member name will be present, but the
 18178  // value will be replaced with "sensitive".
 18179  func (s UpdateStudioSessionMappingOutput) String() string {
 18180  	return awsutil.Prettify(s)
 18181  }
 18182  
 18183  // GoString returns the string representation.
 18184  //
 18185  // API parameter values that are decorated as "sensitive" in the API will not
 18186  // be included in the string output. The member name will be present, but the
 18187  // value will be replaced with "sensitive".
 18188  func (s UpdateStudioSessionMappingOutput) GoString() string {
 18189  	return s.String()
 18190  }
 18191  
 18192  // EBS volume specifications such as volume type, IOPS, and size (GiB) that
 18193  // will be requested for the EBS volume attached to an EC2 instance in the cluster.
 18194  type VolumeSpecification struct {
 18195  	_ struct{} `type:"structure"`
 18196  
 18197  	// The number of I/O operations per second (IOPS) that the volume supports.
 18198  	Iops *int64 `type:"integer"`
 18199  
 18200  	// The volume size, in gibibytes (GiB). This can be a number from 1 - 1024.
 18201  	// If the volume type is EBS-optimized, the minimum value is 10.
 18202  	//
 18203  	// SizeInGB is a required field
 18204  	SizeInGB *int64 `type:"integer" required:"true"`
 18205  
 18206  	// The volume type. Volume types supported are gp2, io1, standard.
 18207  	//
 18208  	// VolumeType is a required field
 18209  	VolumeType *string `type:"string" required:"true"`
 18210  }
 18211  
 18212  // String returns the string representation.
 18213  //
 18214  // API parameter values that are decorated as "sensitive" in the API will not
 18215  // be included in the string output. The member name will be present, but the
 18216  // value will be replaced with "sensitive".
 18217  func (s VolumeSpecification) String() string {
 18218  	return awsutil.Prettify(s)
 18219  }
 18220  
 18221  // GoString returns the string representation.
 18222  //
 18223  // API parameter values that are decorated as "sensitive" in the API will not
 18224  // be included in the string output. The member name will be present, but the
 18225  // value will be replaced with "sensitive".
 18226  func (s VolumeSpecification) GoString() string {
 18227  	return s.String()
 18228  }
 18229  
 18230  // Validate inspects the fields of the type to determine if they are valid.
 18231  func (s *VolumeSpecification) Validate() error {
 18232  	invalidParams := request.ErrInvalidParams{Context: "VolumeSpecification"}
 18233  	if s.SizeInGB == nil {
 18234  		invalidParams.Add(request.NewErrParamRequired("SizeInGB"))
 18235  	}
 18236  	if s.VolumeType == nil {
 18237  		invalidParams.Add(request.NewErrParamRequired("VolumeType"))
 18238  	}
 18239  
 18240  	if invalidParams.Len() > 0 {
 18241  		return invalidParams
 18242  	}
 18243  	return nil
 18244  }
 18245  
 18246  // SetIops sets the Iops field's value.
 18247  func (s *VolumeSpecification) SetIops(v int64) *VolumeSpecification {
 18248  	s.Iops = &v
 18249  	return s
 18250  }
 18251  
 18252  // SetSizeInGB sets the SizeInGB field's value.
 18253  func (s *VolumeSpecification) SetSizeInGB(v int64) *VolumeSpecification {
 18254  	s.SizeInGB = &v
 18255  	return s
 18256  }
 18257  
 18258  // SetVolumeType sets the VolumeType field's value.
 18259  func (s *VolumeSpecification) SetVolumeType(v string) *VolumeSpecification {
 18260  	s.VolumeType = &v
 18261  	return s
 18262  }
 18263  
 18264  const (
 18265  	// ActionOnFailureTerminateJobFlow is a ActionOnFailure enum value
 18266  	ActionOnFailureTerminateJobFlow = "TERMINATE_JOB_FLOW"
 18267  
 18268  	// ActionOnFailureTerminateCluster is a ActionOnFailure enum value
 18269  	ActionOnFailureTerminateCluster = "TERMINATE_CLUSTER"
 18270  
 18271  	// ActionOnFailureCancelAndWait is a ActionOnFailure enum value
 18272  	ActionOnFailureCancelAndWait = "CANCEL_AND_WAIT"
 18273  
 18274  	// ActionOnFailureContinue is a ActionOnFailure enum value
 18275  	ActionOnFailureContinue = "CONTINUE"
 18276  )
 18277  
 18278  // ActionOnFailure_Values returns all elements of the ActionOnFailure enum
 18279  func ActionOnFailure_Values() []string {
 18280  	return []string{
 18281  		ActionOnFailureTerminateJobFlow,
 18282  		ActionOnFailureTerminateCluster,
 18283  		ActionOnFailureCancelAndWait,
 18284  		ActionOnFailureContinue,
 18285  	}
 18286  }
 18287  
 18288  const (
 18289  	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
 18290  	AdjustmentTypeChangeInCapacity = "CHANGE_IN_CAPACITY"
 18291  
 18292  	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
 18293  	AdjustmentTypePercentChangeInCapacity = "PERCENT_CHANGE_IN_CAPACITY"
 18294  
 18295  	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
 18296  	AdjustmentTypeExactCapacity = "EXACT_CAPACITY"
 18297  )
 18298  
 18299  // AdjustmentType_Values returns all elements of the AdjustmentType enum
 18300  func AdjustmentType_Values() []string {
 18301  	return []string{
 18302  		AdjustmentTypeChangeInCapacity,
 18303  		AdjustmentTypePercentChangeInCapacity,
 18304  		AdjustmentTypeExactCapacity,
 18305  	}
 18306  }
 18307  
 18308  const (
 18309  	// AuthModeSso is a AuthMode enum value
 18310  	AuthModeSso = "SSO"
 18311  
 18312  	// AuthModeIam is a AuthMode enum value
 18313  	AuthModeIam = "IAM"
 18314  )
 18315  
 18316  // AuthMode_Values returns all elements of the AuthMode enum
 18317  func AuthMode_Values() []string {
 18318  	return []string{
 18319  		AuthModeSso,
 18320  		AuthModeIam,
 18321  	}
 18322  }
 18323  
 18324  const (
 18325  	// AutoScalingPolicyStatePending is a AutoScalingPolicyState enum value
 18326  	AutoScalingPolicyStatePending = "PENDING"
 18327  
 18328  	// AutoScalingPolicyStateAttaching is a AutoScalingPolicyState enum value
 18329  	AutoScalingPolicyStateAttaching = "ATTACHING"
 18330  
 18331  	// AutoScalingPolicyStateAttached is a AutoScalingPolicyState enum value
 18332  	AutoScalingPolicyStateAttached = "ATTACHED"
 18333  
 18334  	// AutoScalingPolicyStateDetaching is a AutoScalingPolicyState enum value
 18335  	AutoScalingPolicyStateDetaching = "DETACHING"
 18336  
 18337  	// AutoScalingPolicyStateDetached is a AutoScalingPolicyState enum value
 18338  	AutoScalingPolicyStateDetached = "DETACHED"
 18339  
 18340  	// AutoScalingPolicyStateFailed is a AutoScalingPolicyState enum value
 18341  	AutoScalingPolicyStateFailed = "FAILED"
 18342  )
 18343  
 18344  // AutoScalingPolicyState_Values returns all elements of the AutoScalingPolicyState enum
 18345  func AutoScalingPolicyState_Values() []string {
 18346  	return []string{
 18347  		AutoScalingPolicyStatePending,
 18348  		AutoScalingPolicyStateAttaching,
 18349  		AutoScalingPolicyStateAttached,
 18350  		AutoScalingPolicyStateDetaching,
 18351  		AutoScalingPolicyStateDetached,
 18352  		AutoScalingPolicyStateFailed,
 18353  	}
 18354  }
 18355  
 18356  const (
 18357  	// AutoScalingPolicyStateChangeReasonCodeUserRequest is a AutoScalingPolicyStateChangeReasonCode enum value
 18358  	AutoScalingPolicyStateChangeReasonCodeUserRequest = "USER_REQUEST"
 18359  
 18360  	// AutoScalingPolicyStateChangeReasonCodeProvisionFailure is a AutoScalingPolicyStateChangeReasonCode enum value
 18361  	AutoScalingPolicyStateChangeReasonCodeProvisionFailure = "PROVISION_FAILURE"
 18362  
 18363  	// AutoScalingPolicyStateChangeReasonCodeCleanupFailure is a AutoScalingPolicyStateChangeReasonCode enum value
 18364  	AutoScalingPolicyStateChangeReasonCodeCleanupFailure = "CLEANUP_FAILURE"
 18365  )
 18366  
 18367  // AutoScalingPolicyStateChangeReasonCode_Values returns all elements of the AutoScalingPolicyStateChangeReasonCode enum
 18368  func AutoScalingPolicyStateChangeReasonCode_Values() []string {
 18369  	return []string{
 18370  		AutoScalingPolicyStateChangeReasonCodeUserRequest,
 18371  		AutoScalingPolicyStateChangeReasonCodeProvisionFailure,
 18372  		AutoScalingPolicyStateChangeReasonCodeCleanupFailure,
 18373  	}
 18374  }
 18375  
 18376  const (
 18377  	// CancelStepsRequestStatusSubmitted is a CancelStepsRequestStatus enum value
 18378  	CancelStepsRequestStatusSubmitted = "SUBMITTED"
 18379  
 18380  	// CancelStepsRequestStatusFailed is a CancelStepsRequestStatus enum value
 18381  	CancelStepsRequestStatusFailed = "FAILED"
 18382  )
 18383  
 18384  // CancelStepsRequestStatus_Values returns all elements of the CancelStepsRequestStatus enum
 18385  func CancelStepsRequestStatus_Values() []string {
 18386  	return []string{
 18387  		CancelStepsRequestStatusSubmitted,
 18388  		CancelStepsRequestStatusFailed,
 18389  	}
 18390  }
 18391  
 18392  const (
 18393  	// ClusterStateStarting is a ClusterState enum value
 18394  	ClusterStateStarting = "STARTING"
 18395  
 18396  	// ClusterStateBootstrapping is a ClusterState enum value
 18397  	ClusterStateBootstrapping = "BOOTSTRAPPING"
 18398  
 18399  	// ClusterStateRunning is a ClusterState enum value
 18400  	ClusterStateRunning = "RUNNING"
 18401  
 18402  	// ClusterStateWaiting is a ClusterState enum value
 18403  	ClusterStateWaiting = "WAITING"
 18404  
 18405  	// ClusterStateTerminating is a ClusterState enum value
 18406  	ClusterStateTerminating = "TERMINATING"
 18407  
 18408  	// ClusterStateTerminated is a ClusterState enum value
 18409  	ClusterStateTerminated = "TERMINATED"
 18410  
 18411  	// ClusterStateTerminatedWithErrors is a ClusterState enum value
 18412  	ClusterStateTerminatedWithErrors = "TERMINATED_WITH_ERRORS"
 18413  )
 18414  
 18415  // ClusterState_Values returns all elements of the ClusterState enum
 18416  func ClusterState_Values() []string {
 18417  	return []string{
 18418  		ClusterStateStarting,
 18419  		ClusterStateBootstrapping,
 18420  		ClusterStateRunning,
 18421  		ClusterStateWaiting,
 18422  		ClusterStateTerminating,
 18423  		ClusterStateTerminated,
 18424  		ClusterStateTerminatedWithErrors,
 18425  	}
 18426  }
 18427  
 18428  const (
 18429  	// ClusterStateChangeReasonCodeInternalError is a ClusterStateChangeReasonCode enum value
 18430  	ClusterStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
 18431  
 18432  	// ClusterStateChangeReasonCodeValidationError is a ClusterStateChangeReasonCode enum value
 18433  	ClusterStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
 18434  
 18435  	// ClusterStateChangeReasonCodeInstanceFailure is a ClusterStateChangeReasonCode enum value
 18436  	ClusterStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
 18437  
 18438  	// ClusterStateChangeReasonCodeInstanceFleetTimeout is a ClusterStateChangeReasonCode enum value
 18439  	ClusterStateChangeReasonCodeInstanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT"
 18440  
 18441  	// ClusterStateChangeReasonCodeBootstrapFailure is a ClusterStateChangeReasonCode enum value
 18442  	ClusterStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
 18443  
 18444  	// ClusterStateChangeReasonCodeUserRequest is a ClusterStateChangeReasonCode enum value
 18445  	ClusterStateChangeReasonCodeUserRequest = "USER_REQUEST"
 18446  
 18447  	// ClusterStateChangeReasonCodeStepFailure is a ClusterStateChangeReasonCode enum value
 18448  	ClusterStateChangeReasonCodeStepFailure = "STEP_FAILURE"
 18449  
 18450  	// ClusterStateChangeReasonCodeAllStepsCompleted is a ClusterStateChangeReasonCode enum value
 18451  	ClusterStateChangeReasonCodeAllStepsCompleted = "ALL_STEPS_COMPLETED"
 18452  )
 18453  
 18454  // ClusterStateChangeReasonCode_Values returns all elements of the ClusterStateChangeReasonCode enum
 18455  func ClusterStateChangeReasonCode_Values() []string {
 18456  	return []string{
 18457  		ClusterStateChangeReasonCodeInternalError,
 18458  		ClusterStateChangeReasonCodeValidationError,
 18459  		ClusterStateChangeReasonCodeInstanceFailure,
 18460  		ClusterStateChangeReasonCodeInstanceFleetTimeout,
 18461  		ClusterStateChangeReasonCodeBootstrapFailure,
 18462  		ClusterStateChangeReasonCodeUserRequest,
 18463  		ClusterStateChangeReasonCodeStepFailure,
 18464  		ClusterStateChangeReasonCodeAllStepsCompleted,
 18465  	}
 18466  }
 18467  
 18468  const (
 18469  	// ComparisonOperatorGreaterThanOrEqual is a ComparisonOperator enum value
 18470  	ComparisonOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
 18471  
 18472  	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
 18473  	ComparisonOperatorGreaterThan = "GREATER_THAN"
 18474  
 18475  	// ComparisonOperatorLessThan is a ComparisonOperator enum value
 18476  	ComparisonOperatorLessThan = "LESS_THAN"
 18477  
 18478  	// ComparisonOperatorLessThanOrEqual is a ComparisonOperator enum value
 18479  	ComparisonOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL"
 18480  )
 18481  
 18482  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
 18483  func ComparisonOperator_Values() []string {
 18484  	return []string{
 18485  		ComparisonOperatorGreaterThanOrEqual,
 18486  		ComparisonOperatorGreaterThan,
 18487  		ComparisonOperatorLessThan,
 18488  		ComparisonOperatorLessThanOrEqual,
 18489  	}
 18490  }
 18491  
 18492  const (
 18493  	// ComputeLimitsUnitTypeInstanceFleetUnits is a ComputeLimitsUnitType enum value
 18494  	ComputeLimitsUnitTypeInstanceFleetUnits = "InstanceFleetUnits"
 18495  
 18496  	// ComputeLimitsUnitTypeInstances is a ComputeLimitsUnitType enum value
 18497  	ComputeLimitsUnitTypeInstances = "Instances"
 18498  
 18499  	// ComputeLimitsUnitTypeVcpu is a ComputeLimitsUnitType enum value
 18500  	ComputeLimitsUnitTypeVcpu = "VCPU"
 18501  )
 18502  
 18503  // ComputeLimitsUnitType_Values returns all elements of the ComputeLimitsUnitType enum
 18504  func ComputeLimitsUnitType_Values() []string {
 18505  	return []string{
 18506  		ComputeLimitsUnitTypeInstanceFleetUnits,
 18507  		ComputeLimitsUnitTypeInstances,
 18508  		ComputeLimitsUnitTypeVcpu,
 18509  	}
 18510  }
 18511  
 18512  const (
 18513  	// ExecutionEngineTypeEmr is a ExecutionEngineType enum value
 18514  	ExecutionEngineTypeEmr = "EMR"
 18515  )
 18516  
 18517  // ExecutionEngineType_Values returns all elements of the ExecutionEngineType enum
 18518  func ExecutionEngineType_Values() []string {
 18519  	return []string{
 18520  		ExecutionEngineTypeEmr,
 18521  	}
 18522  }
 18523  
 18524  const (
 18525  	// IdentityTypeUser is a IdentityType enum value
 18526  	IdentityTypeUser = "USER"
 18527  
 18528  	// IdentityTypeGroup is a IdentityType enum value
 18529  	IdentityTypeGroup = "GROUP"
 18530  )
 18531  
 18532  // IdentityType_Values returns all elements of the IdentityType enum
 18533  func IdentityType_Values() []string {
 18534  	return []string{
 18535  		IdentityTypeUser,
 18536  		IdentityTypeGroup,
 18537  	}
 18538  }
 18539  
 18540  const (
 18541  	// InstanceCollectionTypeInstanceFleet is a InstanceCollectionType enum value
 18542  	InstanceCollectionTypeInstanceFleet = "INSTANCE_FLEET"
 18543  
 18544  	// InstanceCollectionTypeInstanceGroup is a InstanceCollectionType enum value
 18545  	InstanceCollectionTypeInstanceGroup = "INSTANCE_GROUP"
 18546  )
 18547  
 18548  // InstanceCollectionType_Values returns all elements of the InstanceCollectionType enum
 18549  func InstanceCollectionType_Values() []string {
 18550  	return []string{
 18551  		InstanceCollectionTypeInstanceFleet,
 18552  		InstanceCollectionTypeInstanceGroup,
 18553  	}
 18554  }
 18555  
 18556  const (
 18557  	// InstanceFleetStateProvisioning is a InstanceFleetState enum value
 18558  	InstanceFleetStateProvisioning = "PROVISIONING"
 18559  
 18560  	// InstanceFleetStateBootstrapping is a InstanceFleetState enum value
 18561  	InstanceFleetStateBootstrapping = "BOOTSTRAPPING"
 18562  
 18563  	// InstanceFleetStateRunning is a InstanceFleetState enum value
 18564  	InstanceFleetStateRunning = "RUNNING"
 18565  
 18566  	// InstanceFleetStateResizing is a InstanceFleetState enum value
 18567  	InstanceFleetStateResizing = "RESIZING"
 18568  
 18569  	// InstanceFleetStateSuspended is a InstanceFleetState enum value
 18570  	InstanceFleetStateSuspended = "SUSPENDED"
 18571  
 18572  	// InstanceFleetStateTerminating is a InstanceFleetState enum value
 18573  	InstanceFleetStateTerminating = "TERMINATING"
 18574  
 18575  	// InstanceFleetStateTerminated is a InstanceFleetState enum value
 18576  	InstanceFleetStateTerminated = "TERMINATED"
 18577  )
 18578  
 18579  // InstanceFleetState_Values returns all elements of the InstanceFleetState enum
 18580  func InstanceFleetState_Values() []string {
 18581  	return []string{
 18582  		InstanceFleetStateProvisioning,
 18583  		InstanceFleetStateBootstrapping,
 18584  		InstanceFleetStateRunning,
 18585  		InstanceFleetStateResizing,
 18586  		InstanceFleetStateSuspended,
 18587  		InstanceFleetStateTerminating,
 18588  		InstanceFleetStateTerminated,
 18589  	}
 18590  }
 18591  
 18592  const (
 18593  	// InstanceFleetStateChangeReasonCodeInternalError is a InstanceFleetStateChangeReasonCode enum value
 18594  	InstanceFleetStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
 18595  
 18596  	// InstanceFleetStateChangeReasonCodeValidationError is a InstanceFleetStateChangeReasonCode enum value
 18597  	InstanceFleetStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
 18598  
 18599  	// InstanceFleetStateChangeReasonCodeInstanceFailure is a InstanceFleetStateChangeReasonCode enum value
 18600  	InstanceFleetStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
 18601  
 18602  	// InstanceFleetStateChangeReasonCodeClusterTerminated is a InstanceFleetStateChangeReasonCode enum value
 18603  	InstanceFleetStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
 18604  )
 18605  
 18606  // InstanceFleetStateChangeReasonCode_Values returns all elements of the InstanceFleetStateChangeReasonCode enum
 18607  func InstanceFleetStateChangeReasonCode_Values() []string {
 18608  	return []string{
 18609  		InstanceFleetStateChangeReasonCodeInternalError,
 18610  		InstanceFleetStateChangeReasonCodeValidationError,
 18611  		InstanceFleetStateChangeReasonCodeInstanceFailure,
 18612  		InstanceFleetStateChangeReasonCodeClusterTerminated,
 18613  	}
 18614  }
 18615  
 18616  const (
 18617  	// InstanceFleetTypeMaster is a InstanceFleetType enum value
 18618  	InstanceFleetTypeMaster = "MASTER"
 18619  
 18620  	// InstanceFleetTypeCore is a InstanceFleetType enum value
 18621  	InstanceFleetTypeCore = "CORE"
 18622  
 18623  	// InstanceFleetTypeTask is a InstanceFleetType enum value
 18624  	InstanceFleetTypeTask = "TASK"
 18625  )
 18626  
 18627  // InstanceFleetType_Values returns all elements of the InstanceFleetType enum
 18628  func InstanceFleetType_Values() []string {
 18629  	return []string{
 18630  		InstanceFleetTypeMaster,
 18631  		InstanceFleetTypeCore,
 18632  		InstanceFleetTypeTask,
 18633  	}
 18634  }
 18635  
 18636  const (
 18637  	// InstanceGroupStateProvisioning is a InstanceGroupState enum value
 18638  	InstanceGroupStateProvisioning = "PROVISIONING"
 18639  
 18640  	// InstanceGroupStateBootstrapping is a InstanceGroupState enum value
 18641  	InstanceGroupStateBootstrapping = "BOOTSTRAPPING"
 18642  
 18643  	// InstanceGroupStateRunning is a InstanceGroupState enum value
 18644  	InstanceGroupStateRunning = "RUNNING"
 18645  
 18646  	// InstanceGroupStateReconfiguring is a InstanceGroupState enum value
 18647  	InstanceGroupStateReconfiguring = "RECONFIGURING"
 18648  
 18649  	// InstanceGroupStateResizing is a InstanceGroupState enum value
 18650  	InstanceGroupStateResizing = "RESIZING"
 18651  
 18652  	// InstanceGroupStateSuspended is a InstanceGroupState enum value
 18653  	InstanceGroupStateSuspended = "SUSPENDED"
 18654  
 18655  	// InstanceGroupStateTerminating is a InstanceGroupState enum value
 18656  	InstanceGroupStateTerminating = "TERMINATING"
 18657  
 18658  	// InstanceGroupStateTerminated is a InstanceGroupState enum value
 18659  	InstanceGroupStateTerminated = "TERMINATED"
 18660  
 18661  	// InstanceGroupStateArrested is a InstanceGroupState enum value
 18662  	InstanceGroupStateArrested = "ARRESTED"
 18663  
 18664  	// InstanceGroupStateShuttingDown is a InstanceGroupState enum value
 18665  	InstanceGroupStateShuttingDown = "SHUTTING_DOWN"
 18666  
 18667  	// InstanceGroupStateEnded is a InstanceGroupState enum value
 18668  	InstanceGroupStateEnded = "ENDED"
 18669  )
 18670  
 18671  // InstanceGroupState_Values returns all elements of the InstanceGroupState enum
 18672  func InstanceGroupState_Values() []string {
 18673  	return []string{
 18674  		InstanceGroupStateProvisioning,
 18675  		InstanceGroupStateBootstrapping,
 18676  		InstanceGroupStateRunning,
 18677  		InstanceGroupStateReconfiguring,
 18678  		InstanceGroupStateResizing,
 18679  		InstanceGroupStateSuspended,
 18680  		InstanceGroupStateTerminating,
 18681  		InstanceGroupStateTerminated,
 18682  		InstanceGroupStateArrested,
 18683  		InstanceGroupStateShuttingDown,
 18684  		InstanceGroupStateEnded,
 18685  	}
 18686  }
 18687  
 18688  const (
 18689  	// InstanceGroupStateChangeReasonCodeInternalError is a InstanceGroupStateChangeReasonCode enum value
 18690  	InstanceGroupStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
 18691  
 18692  	// InstanceGroupStateChangeReasonCodeValidationError is a InstanceGroupStateChangeReasonCode enum value
 18693  	InstanceGroupStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
 18694  
 18695  	// InstanceGroupStateChangeReasonCodeInstanceFailure is a InstanceGroupStateChangeReasonCode enum value
 18696  	InstanceGroupStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
 18697  
 18698  	// InstanceGroupStateChangeReasonCodeClusterTerminated is a InstanceGroupStateChangeReasonCode enum value
 18699  	InstanceGroupStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
 18700  )
 18701  
 18702  // InstanceGroupStateChangeReasonCode_Values returns all elements of the InstanceGroupStateChangeReasonCode enum
 18703  func InstanceGroupStateChangeReasonCode_Values() []string {
 18704  	return []string{
 18705  		InstanceGroupStateChangeReasonCodeInternalError,
 18706  		InstanceGroupStateChangeReasonCodeValidationError,
 18707  		InstanceGroupStateChangeReasonCodeInstanceFailure,
 18708  		InstanceGroupStateChangeReasonCodeClusterTerminated,
 18709  	}
 18710  }
 18711  
 18712  const (
 18713  	// InstanceGroupTypeMaster is a InstanceGroupType enum value
 18714  	InstanceGroupTypeMaster = "MASTER"
 18715  
 18716  	// InstanceGroupTypeCore is a InstanceGroupType enum value
 18717  	InstanceGroupTypeCore = "CORE"
 18718  
 18719  	// InstanceGroupTypeTask is a InstanceGroupType enum value
 18720  	InstanceGroupTypeTask = "TASK"
 18721  )
 18722  
 18723  // InstanceGroupType_Values returns all elements of the InstanceGroupType enum
 18724  func InstanceGroupType_Values() []string {
 18725  	return []string{
 18726  		InstanceGroupTypeMaster,
 18727  		InstanceGroupTypeCore,
 18728  		InstanceGroupTypeTask,
 18729  	}
 18730  }
 18731  
 18732  const (
 18733  	// InstanceRoleTypeMaster is a InstanceRoleType enum value
 18734  	InstanceRoleTypeMaster = "MASTER"
 18735  
 18736  	// InstanceRoleTypeCore is a InstanceRoleType enum value
 18737  	InstanceRoleTypeCore = "CORE"
 18738  
 18739  	// InstanceRoleTypeTask is a InstanceRoleType enum value
 18740  	InstanceRoleTypeTask = "TASK"
 18741  )
 18742  
 18743  // InstanceRoleType_Values returns all elements of the InstanceRoleType enum
 18744  func InstanceRoleType_Values() []string {
 18745  	return []string{
 18746  		InstanceRoleTypeMaster,
 18747  		InstanceRoleTypeCore,
 18748  		InstanceRoleTypeTask,
 18749  	}
 18750  }
 18751  
 18752  const (
 18753  	// InstanceStateAwaitingFulfillment is a InstanceState enum value
 18754  	InstanceStateAwaitingFulfillment = "AWAITING_FULFILLMENT"
 18755  
 18756  	// InstanceStateProvisioning is a InstanceState enum value
 18757  	InstanceStateProvisioning = "PROVISIONING"
 18758  
 18759  	// InstanceStateBootstrapping is a InstanceState enum value
 18760  	InstanceStateBootstrapping = "BOOTSTRAPPING"
 18761  
 18762  	// InstanceStateRunning is a InstanceState enum value
 18763  	InstanceStateRunning = "RUNNING"
 18764  
 18765  	// InstanceStateTerminated is a InstanceState enum value
 18766  	InstanceStateTerminated = "TERMINATED"
 18767  )
 18768  
 18769  // InstanceState_Values returns all elements of the InstanceState enum
 18770  func InstanceState_Values() []string {
 18771  	return []string{
 18772  		InstanceStateAwaitingFulfillment,
 18773  		InstanceStateProvisioning,
 18774  		InstanceStateBootstrapping,
 18775  		InstanceStateRunning,
 18776  		InstanceStateTerminated,
 18777  	}
 18778  }
 18779  
 18780  const (
 18781  	// InstanceStateChangeReasonCodeInternalError is a InstanceStateChangeReasonCode enum value
 18782  	InstanceStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
 18783  
 18784  	// InstanceStateChangeReasonCodeValidationError is a InstanceStateChangeReasonCode enum value
 18785  	InstanceStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
 18786  
 18787  	// InstanceStateChangeReasonCodeInstanceFailure is a InstanceStateChangeReasonCode enum value
 18788  	InstanceStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
 18789  
 18790  	// InstanceStateChangeReasonCodeBootstrapFailure is a InstanceStateChangeReasonCode enum value
 18791  	InstanceStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
 18792  
 18793  	// InstanceStateChangeReasonCodeClusterTerminated is a InstanceStateChangeReasonCode enum value
 18794  	InstanceStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
 18795  )
 18796  
 18797  // InstanceStateChangeReasonCode_Values returns all elements of the InstanceStateChangeReasonCode enum
 18798  func InstanceStateChangeReasonCode_Values() []string {
 18799  	return []string{
 18800  		InstanceStateChangeReasonCodeInternalError,
 18801  		InstanceStateChangeReasonCodeValidationError,
 18802  		InstanceStateChangeReasonCodeInstanceFailure,
 18803  		InstanceStateChangeReasonCodeBootstrapFailure,
 18804  		InstanceStateChangeReasonCodeClusterTerminated,
 18805  	}
 18806  }
 18807  
 18808  // The type of instance.
 18809  const (
 18810  	// JobFlowExecutionStateStarting is a JobFlowExecutionState enum value
 18811  	JobFlowExecutionStateStarting = "STARTING"
 18812  
 18813  	// JobFlowExecutionStateBootstrapping is a JobFlowExecutionState enum value
 18814  	JobFlowExecutionStateBootstrapping = "BOOTSTRAPPING"
 18815  
 18816  	// JobFlowExecutionStateRunning is a JobFlowExecutionState enum value
 18817  	JobFlowExecutionStateRunning = "RUNNING"
 18818  
 18819  	// JobFlowExecutionStateWaiting is a JobFlowExecutionState enum value
 18820  	JobFlowExecutionStateWaiting = "WAITING"
 18821  
 18822  	// JobFlowExecutionStateShuttingDown is a JobFlowExecutionState enum value
 18823  	JobFlowExecutionStateShuttingDown = "SHUTTING_DOWN"
 18824  
 18825  	// JobFlowExecutionStateTerminated is a JobFlowExecutionState enum value
 18826  	JobFlowExecutionStateTerminated = "TERMINATED"
 18827  
 18828  	// JobFlowExecutionStateCompleted is a JobFlowExecutionState enum value
 18829  	JobFlowExecutionStateCompleted = "COMPLETED"
 18830  
 18831  	// JobFlowExecutionStateFailed is a JobFlowExecutionState enum value
 18832  	JobFlowExecutionStateFailed = "FAILED"
 18833  )
 18834  
 18835  // JobFlowExecutionState_Values returns all elements of the JobFlowExecutionState enum
 18836  func JobFlowExecutionState_Values() []string {
 18837  	return []string{
 18838  		JobFlowExecutionStateStarting,
 18839  		JobFlowExecutionStateBootstrapping,
 18840  		JobFlowExecutionStateRunning,
 18841  		JobFlowExecutionStateWaiting,
 18842  		JobFlowExecutionStateShuttingDown,
 18843  		JobFlowExecutionStateTerminated,
 18844  		JobFlowExecutionStateCompleted,
 18845  		JobFlowExecutionStateFailed,
 18846  	}
 18847  }
 18848  
 18849  const (
 18850  	// MarketTypeOnDemand is a MarketType enum value
 18851  	MarketTypeOnDemand = "ON_DEMAND"
 18852  
 18853  	// MarketTypeSpot is a MarketType enum value
 18854  	MarketTypeSpot = "SPOT"
 18855  )
 18856  
 18857  // MarketType_Values returns all elements of the MarketType enum
 18858  func MarketType_Values() []string {
 18859  	return []string{
 18860  		MarketTypeOnDemand,
 18861  		MarketTypeSpot,
 18862  	}
 18863  }
 18864  
 18865  const (
 18866  	// NotebookExecutionStatusStartPending is a NotebookExecutionStatus enum value
 18867  	NotebookExecutionStatusStartPending = "START_PENDING"
 18868  
 18869  	// NotebookExecutionStatusStarting is a NotebookExecutionStatus enum value
 18870  	NotebookExecutionStatusStarting = "STARTING"
 18871  
 18872  	// NotebookExecutionStatusRunning is a NotebookExecutionStatus enum value
 18873  	NotebookExecutionStatusRunning = "RUNNING"
 18874  
 18875  	// NotebookExecutionStatusFinishing is a NotebookExecutionStatus enum value
 18876  	NotebookExecutionStatusFinishing = "FINISHING"
 18877  
 18878  	// NotebookExecutionStatusFinished is a NotebookExecutionStatus enum value
 18879  	NotebookExecutionStatusFinished = "FINISHED"
 18880  
 18881  	// NotebookExecutionStatusFailing is a NotebookExecutionStatus enum value
 18882  	NotebookExecutionStatusFailing = "FAILING"
 18883  
 18884  	// NotebookExecutionStatusFailed is a NotebookExecutionStatus enum value
 18885  	NotebookExecutionStatusFailed = "FAILED"
 18886  
 18887  	// NotebookExecutionStatusStopPending is a NotebookExecutionStatus enum value
 18888  	NotebookExecutionStatusStopPending = "STOP_PENDING"
 18889  
 18890  	// NotebookExecutionStatusStopping is a NotebookExecutionStatus enum value
 18891  	NotebookExecutionStatusStopping = "STOPPING"
 18892  
 18893  	// NotebookExecutionStatusStopped is a NotebookExecutionStatus enum value
 18894  	NotebookExecutionStatusStopped = "STOPPED"
 18895  )
 18896  
 18897  // NotebookExecutionStatus_Values returns all elements of the NotebookExecutionStatus enum
 18898  func NotebookExecutionStatus_Values() []string {
 18899  	return []string{
 18900  		NotebookExecutionStatusStartPending,
 18901  		NotebookExecutionStatusStarting,
 18902  		NotebookExecutionStatusRunning,
 18903  		NotebookExecutionStatusFinishing,
 18904  		NotebookExecutionStatusFinished,
 18905  		NotebookExecutionStatusFailing,
 18906  		NotebookExecutionStatusFailed,
 18907  		NotebookExecutionStatusStopPending,
 18908  		NotebookExecutionStatusStopping,
 18909  		NotebookExecutionStatusStopped,
 18910  	}
 18911  }
 18912  
 18913  const (
 18914  	// OnDemandCapacityReservationPreferenceOpen is a OnDemandCapacityReservationPreference enum value
 18915  	OnDemandCapacityReservationPreferenceOpen = "open"
 18916  
 18917  	// OnDemandCapacityReservationPreferenceNone is a OnDemandCapacityReservationPreference enum value
 18918  	OnDemandCapacityReservationPreferenceNone = "none"
 18919  )
 18920  
 18921  // OnDemandCapacityReservationPreference_Values returns all elements of the OnDemandCapacityReservationPreference enum
 18922  func OnDemandCapacityReservationPreference_Values() []string {
 18923  	return []string{
 18924  		OnDemandCapacityReservationPreferenceOpen,
 18925  		OnDemandCapacityReservationPreferenceNone,
 18926  	}
 18927  }
 18928  
 18929  const (
 18930  	// OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst is a OnDemandCapacityReservationUsageStrategy enum value
 18931  	OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst = "use-capacity-reservations-first"
 18932  )
 18933  
 18934  // OnDemandCapacityReservationUsageStrategy_Values returns all elements of the OnDemandCapacityReservationUsageStrategy enum
 18935  func OnDemandCapacityReservationUsageStrategy_Values() []string {
 18936  	return []string{
 18937  		OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst,
 18938  	}
 18939  }
 18940  
 18941  const (
 18942  	// OnDemandProvisioningAllocationStrategyLowestPrice is a OnDemandProvisioningAllocationStrategy enum value
 18943  	OnDemandProvisioningAllocationStrategyLowestPrice = "lowest-price"
 18944  )
 18945  
 18946  // OnDemandProvisioningAllocationStrategy_Values returns all elements of the OnDemandProvisioningAllocationStrategy enum
 18947  func OnDemandProvisioningAllocationStrategy_Values() []string {
 18948  	return []string{
 18949  		OnDemandProvisioningAllocationStrategyLowestPrice,
 18950  	}
 18951  }
 18952  
 18953  const (
 18954  	// PlacementGroupStrategySpread is a PlacementGroupStrategy enum value
 18955  	PlacementGroupStrategySpread = "SPREAD"
 18956  
 18957  	// PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value
 18958  	PlacementGroupStrategyPartition = "PARTITION"
 18959  
 18960  	// PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value
 18961  	PlacementGroupStrategyCluster = "CLUSTER"
 18962  
 18963  	// PlacementGroupStrategyNone is a PlacementGroupStrategy enum value
 18964  	PlacementGroupStrategyNone = "NONE"
 18965  )
 18966  
 18967  // PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum
 18968  func PlacementGroupStrategy_Values() []string {
 18969  	return []string{
 18970  		PlacementGroupStrategySpread,
 18971  		PlacementGroupStrategyPartition,
 18972  		PlacementGroupStrategyCluster,
 18973  		PlacementGroupStrategyNone,
 18974  	}
 18975  }
 18976  
 18977  const (
 18978  	// RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value
 18979  	RepoUpgradeOnBootSecurity = "SECURITY"
 18980  
 18981  	// RepoUpgradeOnBootNone is a RepoUpgradeOnBoot enum value
 18982  	RepoUpgradeOnBootNone = "NONE"
 18983  )
 18984  
 18985  // RepoUpgradeOnBoot_Values returns all elements of the RepoUpgradeOnBoot enum
 18986  func RepoUpgradeOnBoot_Values() []string {
 18987  	return []string{
 18988  		RepoUpgradeOnBootSecurity,
 18989  		RepoUpgradeOnBootNone,
 18990  	}
 18991  }
 18992  
 18993  const (
 18994  	// ScaleDownBehaviorTerminateAtInstanceHour is a ScaleDownBehavior enum value
 18995  	ScaleDownBehaviorTerminateAtInstanceHour = "TERMINATE_AT_INSTANCE_HOUR"
 18996  
 18997  	// ScaleDownBehaviorTerminateAtTaskCompletion is a ScaleDownBehavior enum value
 18998  	ScaleDownBehaviorTerminateAtTaskCompletion = "TERMINATE_AT_TASK_COMPLETION"
 18999  )
 19000  
 19001  // ScaleDownBehavior_Values returns all elements of the ScaleDownBehavior enum
 19002  func ScaleDownBehavior_Values() []string {
 19003  	return []string{
 19004  		ScaleDownBehaviorTerminateAtInstanceHour,
 19005  		ScaleDownBehaviorTerminateAtTaskCompletion,
 19006  	}
 19007  }
 19008  
 19009  const (
 19010  	// SpotProvisioningAllocationStrategyCapacityOptimized is a SpotProvisioningAllocationStrategy enum value
 19011  	SpotProvisioningAllocationStrategyCapacityOptimized = "capacity-optimized"
 19012  )
 19013  
 19014  // SpotProvisioningAllocationStrategy_Values returns all elements of the SpotProvisioningAllocationStrategy enum
 19015  func SpotProvisioningAllocationStrategy_Values() []string {
 19016  	return []string{
 19017  		SpotProvisioningAllocationStrategyCapacityOptimized,
 19018  	}
 19019  }
 19020  
 19021  const (
 19022  	// SpotProvisioningTimeoutActionSwitchToOnDemand is a SpotProvisioningTimeoutAction enum value
 19023  	SpotProvisioningTimeoutActionSwitchToOnDemand = "SWITCH_TO_ON_DEMAND"
 19024  
 19025  	// SpotProvisioningTimeoutActionTerminateCluster is a SpotProvisioningTimeoutAction enum value
 19026  	SpotProvisioningTimeoutActionTerminateCluster = "TERMINATE_CLUSTER"
 19027  )
 19028  
 19029  // SpotProvisioningTimeoutAction_Values returns all elements of the SpotProvisioningTimeoutAction enum
 19030  func SpotProvisioningTimeoutAction_Values() []string {
 19031  	return []string{
 19032  		SpotProvisioningTimeoutActionSwitchToOnDemand,
 19033  		SpotProvisioningTimeoutActionTerminateCluster,
 19034  	}
 19035  }
 19036  
 19037  const (
 19038  	// StatisticSampleCount is a Statistic enum value
 19039  	StatisticSampleCount = "SAMPLE_COUNT"
 19040  
 19041  	// StatisticAverage is a Statistic enum value
 19042  	StatisticAverage = "AVERAGE"
 19043  
 19044  	// StatisticSum is a Statistic enum value
 19045  	StatisticSum = "SUM"
 19046  
 19047  	// StatisticMinimum is a Statistic enum value
 19048  	StatisticMinimum = "MINIMUM"
 19049  
 19050  	// StatisticMaximum is a Statistic enum value
 19051  	StatisticMaximum = "MAXIMUM"
 19052  )
 19053  
 19054  // Statistic_Values returns all elements of the Statistic enum
 19055  func Statistic_Values() []string {
 19056  	return []string{
 19057  		StatisticSampleCount,
 19058  		StatisticAverage,
 19059  		StatisticSum,
 19060  		StatisticMinimum,
 19061  		StatisticMaximum,
 19062  	}
 19063  }
 19064  
 19065  const (
 19066  	// StepCancellationOptionSendInterrupt is a StepCancellationOption enum value
 19067  	StepCancellationOptionSendInterrupt = "SEND_INTERRUPT"
 19068  
 19069  	// StepCancellationOptionTerminateProcess is a StepCancellationOption enum value
 19070  	StepCancellationOptionTerminateProcess = "TERMINATE_PROCESS"
 19071  )
 19072  
 19073  // StepCancellationOption_Values returns all elements of the StepCancellationOption enum
 19074  func StepCancellationOption_Values() []string {
 19075  	return []string{
 19076  		StepCancellationOptionSendInterrupt,
 19077  		StepCancellationOptionTerminateProcess,
 19078  	}
 19079  }
 19080  
 19081  const (
 19082  	// StepExecutionStatePending is a StepExecutionState enum value
 19083  	StepExecutionStatePending = "PENDING"
 19084  
 19085  	// StepExecutionStateRunning is a StepExecutionState enum value
 19086  	StepExecutionStateRunning = "RUNNING"
 19087  
 19088  	// StepExecutionStateContinue is a StepExecutionState enum value
 19089  	StepExecutionStateContinue = "CONTINUE"
 19090  
 19091  	// StepExecutionStateCompleted is a StepExecutionState enum value
 19092  	StepExecutionStateCompleted = "COMPLETED"
 19093  
 19094  	// StepExecutionStateCancelled is a StepExecutionState enum value
 19095  	StepExecutionStateCancelled = "CANCELLED"
 19096  
 19097  	// StepExecutionStateFailed is a StepExecutionState enum value
 19098  	StepExecutionStateFailed = "FAILED"
 19099  
 19100  	// StepExecutionStateInterrupted is a StepExecutionState enum value
 19101  	StepExecutionStateInterrupted = "INTERRUPTED"
 19102  )
 19103  
 19104  // StepExecutionState_Values returns all elements of the StepExecutionState enum
 19105  func StepExecutionState_Values() []string {
 19106  	return []string{
 19107  		StepExecutionStatePending,
 19108  		StepExecutionStateRunning,
 19109  		StepExecutionStateContinue,
 19110  		StepExecutionStateCompleted,
 19111  		StepExecutionStateCancelled,
 19112  		StepExecutionStateFailed,
 19113  		StepExecutionStateInterrupted,
 19114  	}
 19115  }
 19116  
 19117  const (
 19118  	// StepStatePending is a StepState enum value
 19119  	StepStatePending = "PENDING"
 19120  
 19121  	// StepStateCancelPending is a StepState enum value
 19122  	StepStateCancelPending = "CANCEL_PENDING"
 19123  
 19124  	// StepStateRunning is a StepState enum value
 19125  	StepStateRunning = "RUNNING"
 19126  
 19127  	// StepStateCompleted is a StepState enum value
 19128  	StepStateCompleted = "COMPLETED"
 19129  
 19130  	// StepStateCancelled is a StepState enum value
 19131  	StepStateCancelled = "CANCELLED"
 19132  
 19133  	// StepStateFailed is a StepState enum value
 19134  	StepStateFailed = "FAILED"
 19135  
 19136  	// StepStateInterrupted is a StepState enum value
 19137  	StepStateInterrupted = "INTERRUPTED"
 19138  )
 19139  
 19140  // StepState_Values returns all elements of the StepState enum
 19141  func StepState_Values() []string {
 19142  	return []string{
 19143  		StepStatePending,
 19144  		StepStateCancelPending,
 19145  		StepStateRunning,
 19146  		StepStateCompleted,
 19147  		StepStateCancelled,
 19148  		StepStateFailed,
 19149  		StepStateInterrupted,
 19150  	}
 19151  }
 19152  
 19153  const (
 19154  	// StepStateChangeReasonCodeNone is a StepStateChangeReasonCode enum value
 19155  	StepStateChangeReasonCodeNone = "NONE"
 19156  )
 19157  
 19158  // StepStateChangeReasonCode_Values returns all elements of the StepStateChangeReasonCode enum
 19159  func StepStateChangeReasonCode_Values() []string {
 19160  	return []string{
 19161  		StepStateChangeReasonCodeNone,
 19162  	}
 19163  }
 19164  
 19165  const (
 19166  	// UnitNone is a Unit enum value
 19167  	UnitNone = "NONE"
 19168  
 19169  	// UnitSeconds is a Unit enum value
 19170  	UnitSeconds = "SECONDS"
 19171  
 19172  	// UnitMicroSeconds is a Unit enum value
 19173  	UnitMicroSeconds = "MICRO_SECONDS"
 19174  
 19175  	// UnitMilliSeconds is a Unit enum value
 19176  	UnitMilliSeconds = "MILLI_SECONDS"
 19177  
 19178  	// UnitBytes is a Unit enum value
 19179  	UnitBytes = "BYTES"
 19180  
 19181  	// UnitKiloBytes is a Unit enum value
 19182  	UnitKiloBytes = "KILO_BYTES"
 19183  
 19184  	// UnitMegaBytes is a Unit enum value
 19185  	UnitMegaBytes = "MEGA_BYTES"
 19186  
 19187  	// UnitGigaBytes is a Unit enum value
 19188  	UnitGigaBytes = "GIGA_BYTES"
 19189  
 19190  	// UnitTeraBytes is a Unit enum value
 19191  	UnitTeraBytes = "TERA_BYTES"
 19192  
 19193  	// UnitBits is a Unit enum value
 19194  	UnitBits = "BITS"
 19195  
 19196  	// UnitKiloBits is a Unit enum value
 19197  	UnitKiloBits = "KILO_BITS"
 19198  
 19199  	// UnitMegaBits is a Unit enum value
 19200  	UnitMegaBits = "MEGA_BITS"
 19201  
 19202  	// UnitGigaBits is a Unit enum value
 19203  	UnitGigaBits = "GIGA_BITS"
 19204  
 19205  	// UnitTeraBits is a Unit enum value
 19206  	UnitTeraBits = "TERA_BITS"
 19207  
 19208  	// UnitPercent is a Unit enum value
 19209  	UnitPercent = "PERCENT"
 19210  
 19211  	// UnitCount is a Unit enum value
 19212  	UnitCount = "COUNT"
 19213  
 19214  	// UnitBytesPerSecond is a Unit enum value
 19215  	UnitBytesPerSecond = "BYTES_PER_SECOND"
 19216  
 19217  	// UnitKiloBytesPerSecond is a Unit enum value
 19218  	UnitKiloBytesPerSecond = "KILO_BYTES_PER_SECOND"
 19219  
 19220  	// UnitMegaBytesPerSecond is a Unit enum value
 19221  	UnitMegaBytesPerSecond = "MEGA_BYTES_PER_SECOND"
 19222  
 19223  	// UnitGigaBytesPerSecond is a Unit enum value
 19224  	UnitGigaBytesPerSecond = "GIGA_BYTES_PER_SECOND"
 19225  
 19226  	// UnitTeraBytesPerSecond is a Unit enum value
 19227  	UnitTeraBytesPerSecond = "TERA_BYTES_PER_SECOND"
 19228  
 19229  	// UnitBitsPerSecond is a Unit enum value
 19230  	UnitBitsPerSecond = "BITS_PER_SECOND"
 19231  
 19232  	// UnitKiloBitsPerSecond is a Unit enum value
 19233  	UnitKiloBitsPerSecond = "KILO_BITS_PER_SECOND"
 19234  
 19235  	// UnitMegaBitsPerSecond is a Unit enum value
 19236  	UnitMegaBitsPerSecond = "MEGA_BITS_PER_SECOND"
 19237  
 19238  	// UnitGigaBitsPerSecond is a Unit enum value
 19239  	UnitGigaBitsPerSecond = "GIGA_BITS_PER_SECOND"
 19240  
 19241  	// UnitTeraBitsPerSecond is a Unit enum value
 19242  	UnitTeraBitsPerSecond = "TERA_BITS_PER_SECOND"
 19243  
 19244  	// UnitCountPerSecond is a Unit enum value
 19245  	UnitCountPerSecond = "COUNT_PER_SECOND"
 19246  )
 19247  
 19248  // Unit_Values returns all elements of the Unit enum
 19249  func Unit_Values() []string {
 19250  	return []string{
 19251  		UnitNone,
 19252  		UnitSeconds,
 19253  		UnitMicroSeconds,
 19254  		UnitMilliSeconds,
 19255  		UnitBytes,
 19256  		UnitKiloBytes,
 19257  		UnitMegaBytes,
 19258  		UnitGigaBytes,
 19259  		UnitTeraBytes,
 19260  		UnitBits,
 19261  		UnitKiloBits,
 19262  		UnitMegaBits,
 19263  		UnitGigaBits,
 19264  		UnitTeraBits,
 19265  		UnitPercent,
 19266  		UnitCount,
 19267  		UnitBytesPerSecond,
 19268  		UnitKiloBytesPerSecond,
 19269  		UnitMegaBytesPerSecond,
 19270  		UnitGigaBytesPerSecond,
 19271  		UnitTeraBytesPerSecond,
 19272  		UnitBitsPerSecond,
 19273  		UnitKiloBitsPerSecond,
 19274  		UnitMegaBitsPerSecond,
 19275  		UnitGigaBitsPerSecond,
 19276  		UnitTeraBitsPerSecond,
 19277  		UnitCountPerSecond,
 19278  	}
 19279  }