1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package emr
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const 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
42func (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 Elastic MapReduce.
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 Elastic MapReduce'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
81func (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.
95func (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
102const 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
128func (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 Elastic MapReduce.
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 Elastic MapReduce'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
161func (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.
175func (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
182const 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
208func (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 Elastic MapReduce.
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 Elastic MapReduce'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
263func (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.
277func (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
284const 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
310func (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 Elastic MapReduce.
328//
329// Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters
330// in various ways, such as grouping clusters to track your Amazon EMR resource
331// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
332//
333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
334// with awserr.Error's Code and Message methods to get detailed information about
335// the error.
336//
337// See the AWS API reference guide for Amazon Elastic MapReduce's
338// API operation AddTags for usage and error information.
339//
340// Returned Error Types:
341//   * InternalServerException
342//   This exception occurs when there is an internal failure in the Amazon EMR
343//   service.
344//
345//   * InvalidRequestException
346//   This exception occurs when there is something wrong with user input.
347//
348// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
349func (c *EMR) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
350	req, out := c.AddTagsRequest(input)
351	return out, req.Send()
352}
353
354// AddTagsWithContext is the same as AddTags with the addition of
355// the ability to pass a context and additional request options.
356//
357// See AddTags for details on how to use this API operation.
358//
359// The context must be non-nil and will be used for request cancellation. If
360// the context is nil a panic will occur. In the future the SDK may create
361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
362// for more information on using Contexts.
363func (c *EMR) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
364	req, out := c.AddTagsRequest(input)
365	req.SetContext(ctx)
366	req.ApplyOptions(opts...)
367	return out, req.Send()
368}
369
370const opCancelSteps = "CancelSteps"
371
372// CancelStepsRequest generates a "aws/request.Request" representing the
373// client's request for the CancelSteps operation. The "output" return
374// value will be populated with the request's response once the request completes
375// successfully.
376//
377// Use "Send" method on the returned Request to send the API call to the service.
378// the "output" return value is not valid until after Send returns without error.
379//
380// See CancelSteps for more information on using the CancelSteps
381// API call, and error handling.
382//
383// This method is useful when you want to inject custom logic or configuration
384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
385//
386//
387//    // Example sending a request using the CancelStepsRequest method.
388//    req, resp := client.CancelStepsRequest(params)
389//
390//    err := req.Send()
391//    if err == nil { // resp is now filled
392//        fmt.Println(resp)
393//    }
394//
395// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
396func (c *EMR) CancelStepsRequest(input *CancelStepsInput) (req *request.Request, output *CancelStepsOutput) {
397	op := &request.Operation{
398		Name:       opCancelSteps,
399		HTTPMethod: "POST",
400		HTTPPath:   "/",
401	}
402
403	if input == nil {
404		input = &CancelStepsInput{}
405	}
406
407	output = &CancelStepsOutput{}
408	req = c.newRequest(op, input, output)
409	return
410}
411
412// CancelSteps API operation for Amazon Elastic MapReduce.
413//
414// Cancels a pending step or steps in a running cluster. Available only in Amazon
415// EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps
416// are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous;
417// it does not guarantee that a step will be canceled, even if the request is
418// successfully submitted. You can only cancel steps that are in a PENDING state.
419//
420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
421// with awserr.Error's Code and Message methods to get detailed information about
422// the error.
423//
424// See the AWS API reference guide for Amazon Elastic MapReduce's
425// API operation CancelSteps for usage and error information.
426//
427// Returned Error Types:
428//   * InternalServerError
429//   Indicates that an error occurred while processing the request and that the
430//   request was not completed.
431//
432//   * InvalidRequestException
433//   This exception occurs when there is something wrong with user input.
434//
435// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
436func (c *EMR) CancelSteps(input *CancelStepsInput) (*CancelStepsOutput, error) {
437	req, out := c.CancelStepsRequest(input)
438	return out, req.Send()
439}
440
441// CancelStepsWithContext is the same as CancelSteps with the addition of
442// the ability to pass a context and additional request options.
443//
444// See CancelSteps for details on how to use this API operation.
445//
446// The context must be non-nil and will be used for request cancellation. If
447// the context is nil a panic will occur. In the future the SDK may create
448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
449// for more information on using Contexts.
450func (c *EMR) CancelStepsWithContext(ctx aws.Context, input *CancelStepsInput, opts ...request.Option) (*CancelStepsOutput, error) {
451	req, out := c.CancelStepsRequest(input)
452	req.SetContext(ctx)
453	req.ApplyOptions(opts...)
454	return out, req.Send()
455}
456
457const opCreateSecurityConfiguration = "CreateSecurityConfiguration"
458
459// CreateSecurityConfigurationRequest generates a "aws/request.Request" representing the
460// client's request for the CreateSecurityConfiguration operation. The "output" return
461// value will be populated with the request's response once the request completes
462// successfully.
463//
464// Use "Send" method on the returned Request to send the API call to the service.
465// the "output" return value is not valid until after Send returns without error.
466//
467// See CreateSecurityConfiguration for more information on using the CreateSecurityConfiguration
468// API call, and error handling.
469//
470// This method is useful when you want to inject custom logic or configuration
471// into the SDK's request lifecycle. Such as custom headers, or retry logic.
472//
473//
474//    // Example sending a request using the CreateSecurityConfigurationRequest method.
475//    req, resp := client.CreateSecurityConfigurationRequest(params)
476//
477//    err := req.Send()
478//    if err == nil { // resp is now filled
479//        fmt.Println(resp)
480//    }
481//
482// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
483func (c *EMR) CreateSecurityConfigurationRequest(input *CreateSecurityConfigurationInput) (req *request.Request, output *CreateSecurityConfigurationOutput) {
484	op := &request.Operation{
485		Name:       opCreateSecurityConfiguration,
486		HTTPMethod: "POST",
487		HTTPPath:   "/",
488	}
489
490	if input == nil {
491		input = &CreateSecurityConfigurationInput{}
492	}
493
494	output = &CreateSecurityConfigurationOutput{}
495	req = c.newRequest(op, input, output)
496	return
497}
498
499// CreateSecurityConfiguration API operation for Amazon Elastic MapReduce.
500//
501// Creates a security configuration, which is stored in the service and can
502// be specified when a cluster is created.
503//
504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
505// with awserr.Error's Code and Message methods to get detailed information about
506// the error.
507//
508// See the AWS API reference guide for Amazon Elastic MapReduce's
509// API operation CreateSecurityConfiguration for usage and error information.
510//
511// Returned Error Types:
512//   * InternalServerException
513//   This exception occurs when there is an internal failure in the Amazon EMR
514//   service.
515//
516//   * InvalidRequestException
517//   This exception occurs when there is something wrong with user input.
518//
519// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
520func (c *EMR) CreateSecurityConfiguration(input *CreateSecurityConfigurationInput) (*CreateSecurityConfigurationOutput, error) {
521	req, out := c.CreateSecurityConfigurationRequest(input)
522	return out, req.Send()
523}
524
525// CreateSecurityConfigurationWithContext is the same as CreateSecurityConfiguration with the addition of
526// the ability to pass a context and additional request options.
527//
528// See CreateSecurityConfiguration for details on how to use this API operation.
529//
530// The context must be non-nil and will be used for request cancellation. If
531// the context is nil a panic will occur. In the future the SDK may create
532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
533// for more information on using Contexts.
534func (c *EMR) CreateSecurityConfigurationWithContext(ctx aws.Context, input *CreateSecurityConfigurationInput, opts ...request.Option) (*CreateSecurityConfigurationOutput, error) {
535	req, out := c.CreateSecurityConfigurationRequest(input)
536	req.SetContext(ctx)
537	req.ApplyOptions(opts...)
538	return out, req.Send()
539}
540
541const opCreateStudio = "CreateStudio"
542
543// CreateStudioRequest generates a "aws/request.Request" representing the
544// client's request for the CreateStudio operation. The "output" return
545// value will be populated with the request's response once the request completes
546// successfully.
547//
548// Use "Send" method on the returned Request to send the API call to the service.
549// the "output" return value is not valid until after Send returns without error.
550//
551// See CreateStudio for more information on using the CreateStudio
552// API call, and error handling.
553//
554// This method is useful when you want to inject custom logic or configuration
555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
556//
557//
558//    // Example sending a request using the CreateStudioRequest method.
559//    req, resp := client.CreateStudioRequest(params)
560//
561//    err := req.Send()
562//    if err == nil { // resp is now filled
563//        fmt.Println(resp)
564//    }
565//
566// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
567func (c *EMR) CreateStudioRequest(input *CreateStudioInput) (req *request.Request, output *CreateStudioOutput) {
568	op := &request.Operation{
569		Name:       opCreateStudio,
570		HTTPMethod: "POST",
571		HTTPPath:   "/",
572	}
573
574	if input == nil {
575		input = &CreateStudioInput{}
576	}
577
578	output = &CreateStudioOutput{}
579	req = c.newRequest(op, input, output)
580	return
581}
582
583// CreateStudio API operation for Amazon Elastic MapReduce.
584//
585// Creates a new Amazon EMR Studio.
586//
587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
588// with awserr.Error's Code and Message methods to get detailed information about
589// the error.
590//
591// See the AWS API reference guide for Amazon Elastic MapReduce's
592// API operation CreateStudio for usage and error information.
593//
594// Returned Error Types:
595//   * InternalServerException
596//   This exception occurs when there is an internal failure in the Amazon EMR
597//   service.
598//
599//   * InvalidRequestException
600//   This exception occurs when there is something wrong with user input.
601//
602// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
603func (c *EMR) CreateStudio(input *CreateStudioInput) (*CreateStudioOutput, error) {
604	req, out := c.CreateStudioRequest(input)
605	return out, req.Send()
606}
607
608// CreateStudioWithContext is the same as CreateStudio with the addition of
609// the ability to pass a context and additional request options.
610//
611// See CreateStudio for details on how to use this API operation.
612//
613// The context must be non-nil and will be used for request cancellation. If
614// the context is nil a panic will occur. In the future the SDK may create
615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
616// for more information on using Contexts.
617func (c *EMR) CreateStudioWithContext(ctx aws.Context, input *CreateStudioInput, opts ...request.Option) (*CreateStudioOutput, error) {
618	req, out := c.CreateStudioRequest(input)
619	req.SetContext(ctx)
620	req.ApplyOptions(opts...)
621	return out, req.Send()
622}
623
624const opCreateStudioSessionMapping = "CreateStudioSessionMapping"
625
626// CreateStudioSessionMappingRequest generates a "aws/request.Request" representing the
627// client's request for the CreateStudioSessionMapping operation. The "output" return
628// value will be populated with the request's response once the request completes
629// successfully.
630//
631// Use "Send" method on the returned Request to send the API call to the service.
632// the "output" return value is not valid until after Send returns without error.
633//
634// See CreateStudioSessionMapping for more information on using the CreateStudioSessionMapping
635// API call, and error handling.
636//
637// This method is useful when you want to inject custom logic or configuration
638// into the SDK's request lifecycle. Such as custom headers, or retry logic.
639//
640//
641//    // Example sending a request using the CreateStudioSessionMappingRequest method.
642//    req, resp := client.CreateStudioSessionMappingRequest(params)
643//
644//    err := req.Send()
645//    if err == nil { // resp is now filled
646//        fmt.Println(resp)
647//    }
648//
649// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
650func (c *EMR) CreateStudioSessionMappingRequest(input *CreateStudioSessionMappingInput) (req *request.Request, output *CreateStudioSessionMappingOutput) {
651	op := &request.Operation{
652		Name:       opCreateStudioSessionMapping,
653		HTTPMethod: "POST",
654		HTTPPath:   "/",
655	}
656
657	if input == nil {
658		input = &CreateStudioSessionMappingInput{}
659	}
660
661	output = &CreateStudioSessionMappingOutput{}
662	req = c.newRequest(op, input, output)
663	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
664	return
665}
666
667// CreateStudioSessionMapping API operation for Amazon Elastic MapReduce.
668//
669// Maps a user or group to the Amazon EMR Studio specified by StudioId, and
670// applies a session policy to refine Studio permissions for that user or group.
671//
672// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
673// with awserr.Error's Code and Message methods to get detailed information about
674// the error.
675//
676// See the AWS API reference guide for Amazon Elastic MapReduce's
677// API operation CreateStudioSessionMapping for usage and error information.
678//
679// Returned Error Types:
680//   * InternalServerError
681//   Indicates that an error occurred while processing the request and that the
682//   request was not completed.
683//
684//   * InvalidRequestException
685//   This exception occurs when there is something wrong with user input.
686//
687// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
688func (c *EMR) CreateStudioSessionMapping(input *CreateStudioSessionMappingInput) (*CreateStudioSessionMappingOutput, error) {
689	req, out := c.CreateStudioSessionMappingRequest(input)
690	return out, req.Send()
691}
692
693// CreateStudioSessionMappingWithContext is the same as CreateStudioSessionMapping with the addition of
694// the ability to pass a context and additional request options.
695//
696// See CreateStudioSessionMapping for details on how to use this API operation.
697//
698// The context must be non-nil and will be used for request cancellation. If
699// the context is nil a panic will occur. In the future the SDK may create
700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
701// for more information on using Contexts.
702func (c *EMR) CreateStudioSessionMappingWithContext(ctx aws.Context, input *CreateStudioSessionMappingInput, opts ...request.Option) (*CreateStudioSessionMappingOutput, error) {
703	req, out := c.CreateStudioSessionMappingRequest(input)
704	req.SetContext(ctx)
705	req.ApplyOptions(opts...)
706	return out, req.Send()
707}
708
709const opDeleteSecurityConfiguration = "DeleteSecurityConfiguration"
710
711// DeleteSecurityConfigurationRequest generates a "aws/request.Request" representing the
712// client's request for the DeleteSecurityConfiguration operation. The "output" return
713// value will be populated with the request's response once the request completes
714// successfully.
715//
716// Use "Send" method on the returned Request to send the API call to the service.
717// the "output" return value is not valid until after Send returns without error.
718//
719// See DeleteSecurityConfiguration for more information on using the DeleteSecurityConfiguration
720// API call, and error handling.
721//
722// This method is useful when you want to inject custom logic or configuration
723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
724//
725//
726//    // Example sending a request using the DeleteSecurityConfigurationRequest method.
727//    req, resp := client.DeleteSecurityConfigurationRequest(params)
728//
729//    err := req.Send()
730//    if err == nil { // resp is now filled
731//        fmt.Println(resp)
732//    }
733//
734// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
735func (c *EMR) DeleteSecurityConfigurationRequest(input *DeleteSecurityConfigurationInput) (req *request.Request, output *DeleteSecurityConfigurationOutput) {
736	op := &request.Operation{
737		Name:       opDeleteSecurityConfiguration,
738		HTTPMethod: "POST",
739		HTTPPath:   "/",
740	}
741
742	if input == nil {
743		input = &DeleteSecurityConfigurationInput{}
744	}
745
746	output = &DeleteSecurityConfigurationOutput{}
747	req = c.newRequest(op, input, output)
748	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
749	return
750}
751
752// DeleteSecurityConfiguration API operation for Amazon Elastic MapReduce.
753//
754// Deletes a security configuration.
755//
756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
757// with awserr.Error's Code and Message methods to get detailed information about
758// the error.
759//
760// See the AWS API reference guide for Amazon Elastic MapReduce's
761// API operation DeleteSecurityConfiguration for usage and error information.
762//
763// Returned Error Types:
764//   * InternalServerException
765//   This exception occurs when there is an internal failure in the Amazon EMR
766//   service.
767//
768//   * InvalidRequestException
769//   This exception occurs when there is something wrong with user input.
770//
771// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
772func (c *EMR) DeleteSecurityConfiguration(input *DeleteSecurityConfigurationInput) (*DeleteSecurityConfigurationOutput, error) {
773	req, out := c.DeleteSecurityConfigurationRequest(input)
774	return out, req.Send()
775}
776
777// DeleteSecurityConfigurationWithContext is the same as DeleteSecurityConfiguration with the addition of
778// the ability to pass a context and additional request options.
779//
780// See DeleteSecurityConfiguration for details on how to use this API operation.
781//
782// The context must be non-nil and will be used for request cancellation. If
783// the context is nil a panic will occur. In the future the SDK may create
784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
785// for more information on using Contexts.
786func (c *EMR) DeleteSecurityConfigurationWithContext(ctx aws.Context, input *DeleteSecurityConfigurationInput, opts ...request.Option) (*DeleteSecurityConfigurationOutput, error) {
787	req, out := c.DeleteSecurityConfigurationRequest(input)
788	req.SetContext(ctx)
789	req.ApplyOptions(opts...)
790	return out, req.Send()
791}
792
793const opDeleteStudio = "DeleteStudio"
794
795// DeleteStudioRequest generates a "aws/request.Request" representing the
796// client's request for the DeleteStudio operation. The "output" return
797// value will be populated with the request's response once the request completes
798// successfully.
799//
800// Use "Send" method on the returned Request to send the API call to the service.
801// the "output" return value is not valid until after Send returns without error.
802//
803// See DeleteStudio for more information on using the DeleteStudio
804// API call, and error handling.
805//
806// This method is useful when you want to inject custom logic or configuration
807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
808//
809//
810//    // Example sending a request using the DeleteStudioRequest method.
811//    req, resp := client.DeleteStudioRequest(params)
812//
813//    err := req.Send()
814//    if err == nil { // resp is now filled
815//        fmt.Println(resp)
816//    }
817//
818// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
819func (c *EMR) DeleteStudioRequest(input *DeleteStudioInput) (req *request.Request, output *DeleteStudioOutput) {
820	op := &request.Operation{
821		Name:       opDeleteStudio,
822		HTTPMethod: "POST",
823		HTTPPath:   "/",
824	}
825
826	if input == nil {
827		input = &DeleteStudioInput{}
828	}
829
830	output = &DeleteStudioOutput{}
831	req = c.newRequest(op, input, output)
832	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
833	return
834}
835
836// DeleteStudio API operation for Amazon Elastic MapReduce.
837//
838// Removes an Amazon EMR Studio from the Studio metadata store.
839//
840// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
841// with awserr.Error's Code and Message methods to get detailed information about
842// the error.
843//
844// See the AWS API reference guide for Amazon Elastic MapReduce's
845// API operation DeleteStudio for usage and error information.
846//
847// Returned Error Types:
848//   * InternalServerException
849//   This exception occurs when there is an internal failure in the Amazon EMR
850//   service.
851//
852//   * InvalidRequestException
853//   This exception occurs when there is something wrong with user input.
854//
855// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
856func (c *EMR) DeleteStudio(input *DeleteStudioInput) (*DeleteStudioOutput, error) {
857	req, out := c.DeleteStudioRequest(input)
858	return out, req.Send()
859}
860
861// DeleteStudioWithContext is the same as DeleteStudio with the addition of
862// the ability to pass a context and additional request options.
863//
864// See DeleteStudio for details on how to use this API operation.
865//
866// The context must be non-nil and will be used for request cancellation. If
867// the context is nil a panic will occur. In the future the SDK may create
868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
869// for more information on using Contexts.
870func (c *EMR) DeleteStudioWithContext(ctx aws.Context, input *DeleteStudioInput, opts ...request.Option) (*DeleteStudioOutput, error) {
871	req, out := c.DeleteStudioRequest(input)
872	req.SetContext(ctx)
873	req.ApplyOptions(opts...)
874	return out, req.Send()
875}
876
877const opDeleteStudioSessionMapping = "DeleteStudioSessionMapping"
878
879// DeleteStudioSessionMappingRequest generates a "aws/request.Request" representing the
880// client's request for the DeleteStudioSessionMapping operation. The "output" return
881// value will be populated with the request's response once the request completes
882// successfully.
883//
884// Use "Send" method on the returned Request to send the API call to the service.
885// the "output" return value is not valid until after Send returns without error.
886//
887// See DeleteStudioSessionMapping for more information on using the DeleteStudioSessionMapping
888// API call, and error handling.
889//
890// This method is useful when you want to inject custom logic or configuration
891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
892//
893//
894//    // Example sending a request using the DeleteStudioSessionMappingRequest method.
895//    req, resp := client.DeleteStudioSessionMappingRequest(params)
896//
897//    err := req.Send()
898//    if err == nil { // resp is now filled
899//        fmt.Println(resp)
900//    }
901//
902// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
903func (c *EMR) DeleteStudioSessionMappingRequest(input *DeleteStudioSessionMappingInput) (req *request.Request, output *DeleteStudioSessionMappingOutput) {
904	op := &request.Operation{
905		Name:       opDeleteStudioSessionMapping,
906		HTTPMethod: "POST",
907		HTTPPath:   "/",
908	}
909
910	if input == nil {
911		input = &DeleteStudioSessionMappingInput{}
912	}
913
914	output = &DeleteStudioSessionMappingOutput{}
915	req = c.newRequest(op, input, output)
916	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
917	return
918}
919
920// DeleteStudioSessionMapping API operation for Amazon Elastic MapReduce.
921//
922// Removes a user or group from an Amazon EMR Studio.
923//
924// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
925// with awserr.Error's Code and Message methods to get detailed information about
926// the error.
927//
928// See the AWS API reference guide for Amazon Elastic MapReduce's
929// API operation DeleteStudioSessionMapping for usage and error information.
930//
931// Returned Error Types:
932//   * InternalServerError
933//   Indicates that an error occurred while processing the request and that the
934//   request was not completed.
935//
936//   * InvalidRequestException
937//   This exception occurs when there is something wrong with user input.
938//
939// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
940func (c *EMR) DeleteStudioSessionMapping(input *DeleteStudioSessionMappingInput) (*DeleteStudioSessionMappingOutput, error) {
941	req, out := c.DeleteStudioSessionMappingRequest(input)
942	return out, req.Send()
943}
944
945// DeleteStudioSessionMappingWithContext is the same as DeleteStudioSessionMapping with the addition of
946// the ability to pass a context and additional request options.
947//
948// See DeleteStudioSessionMapping for details on how to use this API operation.
949//
950// The context must be non-nil and will be used for request cancellation. If
951// the context is nil a panic will occur. In the future the SDK may create
952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
953// for more information on using Contexts.
954func (c *EMR) DeleteStudioSessionMappingWithContext(ctx aws.Context, input *DeleteStudioSessionMappingInput, opts ...request.Option) (*DeleteStudioSessionMappingOutput, error) {
955	req, out := c.DeleteStudioSessionMappingRequest(input)
956	req.SetContext(ctx)
957	req.ApplyOptions(opts...)
958	return out, req.Send()
959}
960
961const opDescribeCluster = "DescribeCluster"
962
963// DescribeClusterRequest generates a "aws/request.Request" representing the
964// client's request for the DescribeCluster operation. The "output" return
965// value will be populated with the request's response once the request completes
966// successfully.
967//
968// Use "Send" method on the returned Request to send the API call to the service.
969// the "output" return value is not valid until after Send returns without error.
970//
971// See DescribeCluster for more information on using the DescribeCluster
972// API call, and error handling.
973//
974// This method is useful when you want to inject custom logic or configuration
975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
976//
977//
978//    // Example sending a request using the DescribeClusterRequest method.
979//    req, resp := client.DescribeClusterRequest(params)
980//
981//    err := req.Send()
982//    if err == nil { // resp is now filled
983//        fmt.Println(resp)
984//    }
985//
986// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
987func (c *EMR) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
988	op := &request.Operation{
989		Name:       opDescribeCluster,
990		HTTPMethod: "POST",
991		HTTPPath:   "/",
992	}
993
994	if input == nil {
995		input = &DescribeClusterInput{}
996	}
997
998	output = &DescribeClusterOutput{}
999	req = c.newRequest(op, input, output)
1000	return
1001}
1002
1003// DescribeCluster API operation for Amazon Elastic MapReduce.
1004//
1005// Provides cluster-level details including status, hardware and software configuration,
1006// VPC settings, and so on.
1007//
1008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1009// with awserr.Error's Code and Message methods to get detailed information about
1010// the error.
1011//
1012// See the AWS API reference guide for Amazon Elastic MapReduce's
1013// API operation DescribeCluster for usage and error information.
1014//
1015// Returned Error Types:
1016//   * InternalServerException
1017//   This exception occurs when there is an internal failure in the Amazon EMR
1018//   service.
1019//
1020//   * InvalidRequestException
1021//   This exception occurs when there is something wrong with user input.
1022//
1023// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
1024func (c *EMR) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
1025	req, out := c.DescribeClusterRequest(input)
1026	return out, req.Send()
1027}
1028
1029// DescribeClusterWithContext is the same as DescribeCluster with the addition of
1030// the ability to pass a context and additional request options.
1031//
1032// See DescribeCluster for details on how to use this API operation.
1033//
1034// The context must be non-nil and will be used for request cancellation. If
1035// the context is nil a panic will occur. In the future the SDK may create
1036// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1037// for more information on using Contexts.
1038func (c *EMR) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
1039	req, out := c.DescribeClusterRequest(input)
1040	req.SetContext(ctx)
1041	req.ApplyOptions(opts...)
1042	return out, req.Send()
1043}
1044
1045const opDescribeJobFlows = "DescribeJobFlows"
1046
1047// DescribeJobFlowsRequest generates a "aws/request.Request" representing the
1048// client's request for the DescribeJobFlows operation. The "output" return
1049// value will be populated with the request's response once the request completes
1050// successfully.
1051//
1052// Use "Send" method on the returned Request to send the API call to the service.
1053// the "output" return value is not valid until after Send returns without error.
1054//
1055// See DescribeJobFlows for more information on using the DescribeJobFlows
1056// API call, and error handling.
1057//
1058// This method is useful when you want to inject custom logic or configuration
1059// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1060//
1061//
1062//    // Example sending a request using the DescribeJobFlowsRequest method.
1063//    req, resp := client.DescribeJobFlowsRequest(params)
1064//
1065//    err := req.Send()
1066//    if err == nil { // resp is now filled
1067//        fmt.Println(resp)
1068//    }
1069//
1070// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1071//
1072// Deprecated: DescribeJobFlows has been deprecated
1073func (c *EMR) DescribeJobFlowsRequest(input *DescribeJobFlowsInput) (req *request.Request, output *DescribeJobFlowsOutput) {
1074	if c.Client.Config.Logger != nil {
1075		c.Client.Config.Logger.Log("This operation, DescribeJobFlows, has been deprecated")
1076	}
1077	op := &request.Operation{
1078		Name:       opDescribeJobFlows,
1079		HTTPMethod: "POST",
1080		HTTPPath:   "/",
1081	}
1082
1083	if input == nil {
1084		input = &DescribeJobFlowsInput{}
1085	}
1086
1087	output = &DescribeJobFlowsOutput{}
1088	req = c.newRequest(op, input, output)
1089	return
1090}
1091
1092// DescribeJobFlows API operation for Amazon Elastic MapReduce.
1093//
1094// This API is no longer supported and will eventually be removed. We recommend
1095// you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and
1096// ListBootstrapActions instead.
1097//
1098// DescribeJobFlows returns a list of job flows that match all of the supplied
1099// parameters. The parameters can include a list of job flow IDs, job flow states,
1100// and restrictions on job flow creation date and time.
1101//
1102// Regardless of supplied parameters, only job flows created within the last
1103// two months are returned.
1104//
1105// If no parameters are supplied, then job flows matching either of the following
1106// criteria are returned:
1107//
1108//    * Job flows created and completed in the last two weeks
1109//
1110//    * Job flows created within the last two months that are in one of the
1111//    following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING
1112//
1113// Amazon EMR can return a maximum of 512 job flow descriptions.
1114//
1115// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1116// with awserr.Error's Code and Message methods to get detailed information about
1117// the error.
1118//
1119// See the AWS API reference guide for Amazon Elastic MapReduce's
1120// API operation DescribeJobFlows for usage and error information.
1121//
1122// Returned Error Types:
1123//   * InternalServerError
1124//   Indicates that an error occurred while processing the request and that the
1125//   request was not completed.
1126//
1127// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1128//
1129// Deprecated: DescribeJobFlows has been deprecated
1130func (c *EMR) DescribeJobFlows(input *DescribeJobFlowsInput) (*DescribeJobFlowsOutput, error) {
1131	req, out := c.DescribeJobFlowsRequest(input)
1132	return out, req.Send()
1133}
1134
1135// DescribeJobFlowsWithContext is the same as DescribeJobFlows with the addition of
1136// the ability to pass a context and additional request options.
1137//
1138// See DescribeJobFlows for details on how to use this API operation.
1139//
1140// The context must be non-nil and will be used for request cancellation. If
1141// the context is nil a panic will occur. In the future the SDK may create
1142// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1143// for more information on using Contexts.
1144//
1145// Deprecated: DescribeJobFlowsWithContext has been deprecated
1146func (c *EMR) DescribeJobFlowsWithContext(ctx aws.Context, input *DescribeJobFlowsInput, opts ...request.Option) (*DescribeJobFlowsOutput, error) {
1147	req, out := c.DescribeJobFlowsRequest(input)
1148	req.SetContext(ctx)
1149	req.ApplyOptions(opts...)
1150	return out, req.Send()
1151}
1152
1153const opDescribeNotebookExecution = "DescribeNotebookExecution"
1154
1155// DescribeNotebookExecutionRequest generates a "aws/request.Request" representing the
1156// client's request for the DescribeNotebookExecution operation. The "output" return
1157// value will be populated with the request's response once the request completes
1158// successfully.
1159//
1160// Use "Send" method on the returned Request to send the API call to the service.
1161// the "output" return value is not valid until after Send returns without error.
1162//
1163// See DescribeNotebookExecution for more information on using the DescribeNotebookExecution
1164// API call, and error handling.
1165//
1166// This method is useful when you want to inject custom logic or configuration
1167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1168//
1169//
1170//    // Example sending a request using the DescribeNotebookExecutionRequest method.
1171//    req, resp := client.DescribeNotebookExecutionRequest(params)
1172//
1173//    err := req.Send()
1174//    if err == nil { // resp is now filled
1175//        fmt.Println(resp)
1176//    }
1177//
1178// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1179func (c *EMR) DescribeNotebookExecutionRequest(input *DescribeNotebookExecutionInput) (req *request.Request, output *DescribeNotebookExecutionOutput) {
1180	op := &request.Operation{
1181		Name:       opDescribeNotebookExecution,
1182		HTTPMethod: "POST",
1183		HTTPPath:   "/",
1184	}
1185
1186	if input == nil {
1187		input = &DescribeNotebookExecutionInput{}
1188	}
1189
1190	output = &DescribeNotebookExecutionOutput{}
1191	req = c.newRequest(op, input, output)
1192	return
1193}
1194
1195// DescribeNotebookExecution API operation for Amazon Elastic MapReduce.
1196//
1197// Provides details of a notebook execution.
1198//
1199// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1200// with awserr.Error's Code and Message methods to get detailed information about
1201// the error.
1202//
1203// See the AWS API reference guide for Amazon Elastic MapReduce's
1204// API operation DescribeNotebookExecution for usage and error information.
1205//
1206// Returned Error Types:
1207//   * InternalServerError
1208//   Indicates that an error occurred while processing the request and that the
1209//   request was not completed.
1210//
1211//   * InvalidRequestException
1212//   This exception occurs when there is something wrong with user input.
1213//
1214// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1215func (c *EMR) DescribeNotebookExecution(input *DescribeNotebookExecutionInput) (*DescribeNotebookExecutionOutput, error) {
1216	req, out := c.DescribeNotebookExecutionRequest(input)
1217	return out, req.Send()
1218}
1219
1220// DescribeNotebookExecutionWithContext is the same as DescribeNotebookExecution with the addition of
1221// the ability to pass a context and additional request options.
1222//
1223// See DescribeNotebookExecution for details on how to use this API operation.
1224//
1225// The context must be non-nil and will be used for request cancellation. If
1226// the context is nil a panic will occur. In the future the SDK may create
1227// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1228// for more information on using Contexts.
1229func (c *EMR) DescribeNotebookExecutionWithContext(ctx aws.Context, input *DescribeNotebookExecutionInput, opts ...request.Option) (*DescribeNotebookExecutionOutput, error) {
1230	req, out := c.DescribeNotebookExecutionRequest(input)
1231	req.SetContext(ctx)
1232	req.ApplyOptions(opts...)
1233	return out, req.Send()
1234}
1235
1236const opDescribeSecurityConfiguration = "DescribeSecurityConfiguration"
1237
1238// DescribeSecurityConfigurationRequest generates a "aws/request.Request" representing the
1239// client's request for the DescribeSecurityConfiguration operation. The "output" return
1240// value will be populated with the request's response once the request completes
1241// successfully.
1242//
1243// Use "Send" method on the returned Request to send the API call to the service.
1244// the "output" return value is not valid until after Send returns without error.
1245//
1246// See DescribeSecurityConfiguration for more information on using the DescribeSecurityConfiguration
1247// API call, and error handling.
1248//
1249// This method is useful when you want to inject custom logic or configuration
1250// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1251//
1252//
1253//    // Example sending a request using the DescribeSecurityConfigurationRequest method.
1254//    req, resp := client.DescribeSecurityConfigurationRequest(params)
1255//
1256//    err := req.Send()
1257//    if err == nil { // resp is now filled
1258//        fmt.Println(resp)
1259//    }
1260//
1261// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1262func (c *EMR) DescribeSecurityConfigurationRequest(input *DescribeSecurityConfigurationInput) (req *request.Request, output *DescribeSecurityConfigurationOutput) {
1263	op := &request.Operation{
1264		Name:       opDescribeSecurityConfiguration,
1265		HTTPMethod: "POST",
1266		HTTPPath:   "/",
1267	}
1268
1269	if input == nil {
1270		input = &DescribeSecurityConfigurationInput{}
1271	}
1272
1273	output = &DescribeSecurityConfigurationOutput{}
1274	req = c.newRequest(op, input, output)
1275	return
1276}
1277
1278// DescribeSecurityConfiguration API operation for Amazon Elastic MapReduce.
1279//
1280// Provides the details of a security configuration by returning the configuration
1281// JSON.
1282//
1283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1284// with awserr.Error's Code and Message methods to get detailed information about
1285// the error.
1286//
1287// See the AWS API reference guide for Amazon Elastic MapReduce's
1288// API operation DescribeSecurityConfiguration for usage and error information.
1289//
1290// Returned Error Types:
1291//   * InternalServerException
1292//   This exception occurs when there is an internal failure in the Amazon EMR
1293//   service.
1294//
1295//   * InvalidRequestException
1296//   This exception occurs when there is something wrong with user input.
1297//
1298// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1299func (c *EMR) DescribeSecurityConfiguration(input *DescribeSecurityConfigurationInput) (*DescribeSecurityConfigurationOutput, error) {
1300	req, out := c.DescribeSecurityConfigurationRequest(input)
1301	return out, req.Send()
1302}
1303
1304// DescribeSecurityConfigurationWithContext is the same as DescribeSecurityConfiguration with the addition of
1305// the ability to pass a context and additional request options.
1306//
1307// See DescribeSecurityConfiguration for details on how to use this API operation.
1308//
1309// The context must be non-nil and will be used for request cancellation. If
1310// the context is nil a panic will occur. In the future the SDK may create
1311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1312// for more information on using Contexts.
1313func (c *EMR) DescribeSecurityConfigurationWithContext(ctx aws.Context, input *DescribeSecurityConfigurationInput, opts ...request.Option) (*DescribeSecurityConfigurationOutput, error) {
1314	req, out := c.DescribeSecurityConfigurationRequest(input)
1315	req.SetContext(ctx)
1316	req.ApplyOptions(opts...)
1317	return out, req.Send()
1318}
1319
1320const opDescribeStep = "DescribeStep"
1321
1322// DescribeStepRequest generates a "aws/request.Request" representing the
1323// client's request for the DescribeStep operation. The "output" return
1324// value will be populated with the request's response once the request completes
1325// successfully.
1326//
1327// Use "Send" method on the returned Request to send the API call to the service.
1328// the "output" return value is not valid until after Send returns without error.
1329//
1330// See DescribeStep for more information on using the DescribeStep
1331// API call, and error handling.
1332//
1333// This method is useful when you want to inject custom logic or configuration
1334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1335//
1336//
1337//    // Example sending a request using the DescribeStepRequest method.
1338//    req, resp := client.DescribeStepRequest(params)
1339//
1340//    err := req.Send()
1341//    if err == nil { // resp is now filled
1342//        fmt.Println(resp)
1343//    }
1344//
1345// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1346func (c *EMR) DescribeStepRequest(input *DescribeStepInput) (req *request.Request, output *DescribeStepOutput) {
1347	op := &request.Operation{
1348		Name:       opDescribeStep,
1349		HTTPMethod: "POST",
1350		HTTPPath:   "/",
1351	}
1352
1353	if input == nil {
1354		input = &DescribeStepInput{}
1355	}
1356
1357	output = &DescribeStepOutput{}
1358	req = c.newRequest(op, input, output)
1359	return
1360}
1361
1362// DescribeStep API operation for Amazon Elastic MapReduce.
1363//
1364// Provides more detail about the cluster step.
1365//
1366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1367// with awserr.Error's Code and Message methods to get detailed information about
1368// the error.
1369//
1370// See the AWS API reference guide for Amazon Elastic MapReduce's
1371// API operation DescribeStep for usage and error information.
1372//
1373// Returned Error Types:
1374//   * InternalServerException
1375//   This exception occurs when there is an internal failure in the Amazon EMR
1376//   service.
1377//
1378//   * InvalidRequestException
1379//   This exception occurs when there is something wrong with user input.
1380//
1381// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1382func (c *EMR) DescribeStep(input *DescribeStepInput) (*DescribeStepOutput, error) {
1383	req, out := c.DescribeStepRequest(input)
1384	return out, req.Send()
1385}
1386
1387// DescribeStepWithContext is the same as DescribeStep with the addition of
1388// the ability to pass a context and additional request options.
1389//
1390// See DescribeStep for details on how to use this API operation.
1391//
1392// The context must be non-nil and will be used for request cancellation. If
1393// the context is nil a panic will occur. In the future the SDK may create
1394// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1395// for more information on using Contexts.
1396func (c *EMR) DescribeStepWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.Option) (*DescribeStepOutput, error) {
1397	req, out := c.DescribeStepRequest(input)
1398	req.SetContext(ctx)
1399	req.ApplyOptions(opts...)
1400	return out, req.Send()
1401}
1402
1403const opDescribeStudio = "DescribeStudio"
1404
1405// DescribeStudioRequest generates a "aws/request.Request" representing the
1406// client's request for the DescribeStudio operation. The "output" return
1407// value will be populated with the request's response once the request completes
1408// successfully.
1409//
1410// Use "Send" method on the returned Request to send the API call to the service.
1411// the "output" return value is not valid until after Send returns without error.
1412//
1413// See DescribeStudio for more information on using the DescribeStudio
1414// API call, and error handling.
1415//
1416// This method is useful when you want to inject custom logic or configuration
1417// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1418//
1419//
1420//    // Example sending a request using the DescribeStudioRequest method.
1421//    req, resp := client.DescribeStudioRequest(params)
1422//
1423//    err := req.Send()
1424//    if err == nil { // resp is now filled
1425//        fmt.Println(resp)
1426//    }
1427//
1428// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1429func (c *EMR) DescribeStudioRequest(input *DescribeStudioInput) (req *request.Request, output *DescribeStudioOutput) {
1430	op := &request.Operation{
1431		Name:       opDescribeStudio,
1432		HTTPMethod: "POST",
1433		HTTPPath:   "/",
1434	}
1435
1436	if input == nil {
1437		input = &DescribeStudioInput{}
1438	}
1439
1440	output = &DescribeStudioOutput{}
1441	req = c.newRequest(op, input, output)
1442	return
1443}
1444
1445// DescribeStudio API operation for Amazon Elastic MapReduce.
1446//
1447// Returns details for the specified Amazon EMR Studio including ID, Name, VPC,
1448// Studio access URL, and so on.
1449//
1450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1451// with awserr.Error's Code and Message methods to get detailed information about
1452// the error.
1453//
1454// See the AWS API reference guide for Amazon Elastic MapReduce's
1455// API operation DescribeStudio for usage and error information.
1456//
1457// Returned Error Types:
1458//   * InternalServerException
1459//   This exception occurs when there is an internal failure in the Amazon EMR
1460//   service.
1461//
1462//   * InvalidRequestException
1463//   This exception occurs when there is something wrong with user input.
1464//
1465// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1466func (c *EMR) DescribeStudio(input *DescribeStudioInput) (*DescribeStudioOutput, error) {
1467	req, out := c.DescribeStudioRequest(input)
1468	return out, req.Send()
1469}
1470
1471// DescribeStudioWithContext is the same as DescribeStudio with the addition of
1472// the ability to pass a context and additional request options.
1473//
1474// See DescribeStudio for details on how to use this API operation.
1475//
1476// The context must be non-nil and will be used for request cancellation. If
1477// the context is nil a panic will occur. In the future the SDK may create
1478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1479// for more information on using Contexts.
1480func (c *EMR) DescribeStudioWithContext(ctx aws.Context, input *DescribeStudioInput, opts ...request.Option) (*DescribeStudioOutput, error) {
1481	req, out := c.DescribeStudioRequest(input)
1482	req.SetContext(ctx)
1483	req.ApplyOptions(opts...)
1484	return out, req.Send()
1485}
1486
1487const opGetBlockPublicAccessConfiguration = "GetBlockPublicAccessConfiguration"
1488
1489// GetBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
1490// client's request for the GetBlockPublicAccessConfiguration operation. The "output" return
1491// value will be populated with the request's response once the request completes
1492// successfully.
1493//
1494// Use "Send" method on the returned Request to send the API call to the service.
1495// the "output" return value is not valid until after Send returns without error.
1496//
1497// See GetBlockPublicAccessConfiguration for more information on using the GetBlockPublicAccessConfiguration
1498// API call, and error handling.
1499//
1500// This method is useful when you want to inject custom logic or configuration
1501// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1502//
1503//
1504//    // Example sending a request using the GetBlockPublicAccessConfigurationRequest method.
1505//    req, resp := client.GetBlockPublicAccessConfigurationRequest(params)
1506//
1507//    err := req.Send()
1508//    if err == nil { // resp is now filled
1509//        fmt.Println(resp)
1510//    }
1511//
1512// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1513func (c *EMR) GetBlockPublicAccessConfigurationRequest(input *GetBlockPublicAccessConfigurationInput) (req *request.Request, output *GetBlockPublicAccessConfigurationOutput) {
1514	op := &request.Operation{
1515		Name:       opGetBlockPublicAccessConfiguration,
1516		HTTPMethod: "POST",
1517		HTTPPath:   "/",
1518	}
1519
1520	if input == nil {
1521		input = &GetBlockPublicAccessConfigurationInput{}
1522	}
1523
1524	output = &GetBlockPublicAccessConfigurationOutput{}
1525	req = c.newRequest(op, input, output)
1526	return
1527}
1528
1529// GetBlockPublicAccessConfiguration API operation for Amazon Elastic MapReduce.
1530//
1531// Returns the Amazon EMR block public access configuration for your AWS account
1532// in the current Region. For more information see Configure Block Public Access
1533// for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
1534// in the Amazon EMR Management Guide.
1535//
1536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1537// with awserr.Error's Code and Message methods to get detailed information about
1538// the error.
1539//
1540// See the AWS API reference guide for Amazon Elastic MapReduce's
1541// API operation GetBlockPublicAccessConfiguration for usage and error information.
1542//
1543// Returned Error Types:
1544//   * InternalServerException
1545//   This exception occurs when there is an internal failure in the Amazon EMR
1546//   service.
1547//
1548//   * InvalidRequestException
1549//   This exception occurs when there is something wrong with user input.
1550//
1551// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1552func (c *EMR) GetBlockPublicAccessConfiguration(input *GetBlockPublicAccessConfigurationInput) (*GetBlockPublicAccessConfigurationOutput, error) {
1553	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1554	return out, req.Send()
1555}
1556
1557// GetBlockPublicAccessConfigurationWithContext is the same as GetBlockPublicAccessConfiguration with the addition of
1558// the ability to pass a context and additional request options.
1559//
1560// See GetBlockPublicAccessConfiguration for details on how to use this API operation.
1561//
1562// The context must be non-nil and will be used for request cancellation. If
1563// the context is nil a panic will occur. In the future the SDK may create
1564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1565// for more information on using Contexts.
1566func (c *EMR) GetBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *GetBlockPublicAccessConfigurationInput, opts ...request.Option) (*GetBlockPublicAccessConfigurationOutput, error) {
1567	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1568	req.SetContext(ctx)
1569	req.ApplyOptions(opts...)
1570	return out, req.Send()
1571}
1572
1573const opGetManagedScalingPolicy = "GetManagedScalingPolicy"
1574
1575// GetManagedScalingPolicyRequest generates a "aws/request.Request" representing the
1576// client's request for the GetManagedScalingPolicy operation. The "output" return
1577// value will be populated with the request's response once the request completes
1578// successfully.
1579//
1580// Use "Send" method on the returned Request to send the API call to the service.
1581// the "output" return value is not valid until after Send returns without error.
1582//
1583// See GetManagedScalingPolicy for more information on using the GetManagedScalingPolicy
1584// API call, and error handling.
1585//
1586// This method is useful when you want to inject custom logic or configuration
1587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1588//
1589//
1590//    // Example sending a request using the GetManagedScalingPolicyRequest method.
1591//    req, resp := client.GetManagedScalingPolicyRequest(params)
1592//
1593//    err := req.Send()
1594//    if err == nil { // resp is now filled
1595//        fmt.Println(resp)
1596//    }
1597//
1598// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1599func (c *EMR) GetManagedScalingPolicyRequest(input *GetManagedScalingPolicyInput) (req *request.Request, output *GetManagedScalingPolicyOutput) {
1600	op := &request.Operation{
1601		Name:       opGetManagedScalingPolicy,
1602		HTTPMethod: "POST",
1603		HTTPPath:   "/",
1604	}
1605
1606	if input == nil {
1607		input = &GetManagedScalingPolicyInput{}
1608	}
1609
1610	output = &GetManagedScalingPolicyOutput{}
1611	req = c.newRequest(op, input, output)
1612	return
1613}
1614
1615// GetManagedScalingPolicy API operation for Amazon Elastic MapReduce.
1616//
1617// Fetches the attached managed scaling policy for an Amazon EMR cluster.
1618//
1619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1620// with awserr.Error's Code and Message methods to get detailed information about
1621// the error.
1622//
1623// See the AWS API reference guide for Amazon Elastic MapReduce's
1624// API operation GetManagedScalingPolicy for usage and error information.
1625// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1626func (c *EMR) GetManagedScalingPolicy(input *GetManagedScalingPolicyInput) (*GetManagedScalingPolicyOutput, error) {
1627	req, out := c.GetManagedScalingPolicyRequest(input)
1628	return out, req.Send()
1629}
1630
1631// GetManagedScalingPolicyWithContext is the same as GetManagedScalingPolicy with the addition of
1632// the ability to pass a context and additional request options.
1633//
1634// See GetManagedScalingPolicy for details on how to use this API operation.
1635//
1636// The context must be non-nil and will be used for request cancellation. If
1637// the context is nil a panic will occur. In the future the SDK may create
1638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1639// for more information on using Contexts.
1640func (c *EMR) GetManagedScalingPolicyWithContext(ctx aws.Context, input *GetManagedScalingPolicyInput, opts ...request.Option) (*GetManagedScalingPolicyOutput, error) {
1641	req, out := c.GetManagedScalingPolicyRequest(input)
1642	req.SetContext(ctx)
1643	req.ApplyOptions(opts...)
1644	return out, req.Send()
1645}
1646
1647const opGetStudioSessionMapping = "GetStudioSessionMapping"
1648
1649// GetStudioSessionMappingRequest generates a "aws/request.Request" representing the
1650// client's request for the GetStudioSessionMapping operation. The "output" return
1651// value will be populated with the request's response once the request completes
1652// successfully.
1653//
1654// Use "Send" method on the returned Request to send the API call to the service.
1655// the "output" return value is not valid until after Send returns without error.
1656//
1657// See GetStudioSessionMapping for more information on using the GetStudioSessionMapping
1658// API call, and error handling.
1659//
1660// This method is useful when you want to inject custom logic or configuration
1661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1662//
1663//
1664//    // Example sending a request using the GetStudioSessionMappingRequest method.
1665//    req, resp := client.GetStudioSessionMappingRequest(params)
1666//
1667//    err := req.Send()
1668//    if err == nil { // resp is now filled
1669//        fmt.Println(resp)
1670//    }
1671//
1672// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1673func (c *EMR) GetStudioSessionMappingRequest(input *GetStudioSessionMappingInput) (req *request.Request, output *GetStudioSessionMappingOutput) {
1674	op := &request.Operation{
1675		Name:       opGetStudioSessionMapping,
1676		HTTPMethod: "POST",
1677		HTTPPath:   "/",
1678	}
1679
1680	if input == nil {
1681		input = &GetStudioSessionMappingInput{}
1682	}
1683
1684	output = &GetStudioSessionMappingOutput{}
1685	req = c.newRequest(op, input, output)
1686	return
1687}
1688
1689// GetStudioSessionMapping API operation for Amazon Elastic MapReduce.
1690//
1691// Fetches mapping details for the specified Amazon EMR Studio and identity
1692// (user or group).
1693//
1694// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1695// with awserr.Error's Code and Message methods to get detailed information about
1696// the error.
1697//
1698// See the AWS API reference guide for Amazon Elastic MapReduce's
1699// API operation GetStudioSessionMapping for usage and error information.
1700//
1701// Returned Error Types:
1702//   * InternalServerError
1703//   Indicates that an error occurred while processing the request and that the
1704//   request was not completed.
1705//
1706//   * InvalidRequestException
1707//   This exception occurs when there is something wrong with user input.
1708//
1709// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1710func (c *EMR) GetStudioSessionMapping(input *GetStudioSessionMappingInput) (*GetStudioSessionMappingOutput, error) {
1711	req, out := c.GetStudioSessionMappingRequest(input)
1712	return out, req.Send()
1713}
1714
1715// GetStudioSessionMappingWithContext is the same as GetStudioSessionMapping with the addition of
1716// the ability to pass a context and additional request options.
1717//
1718// See GetStudioSessionMapping for details on how to use this API operation.
1719//
1720// The context must be non-nil and will be used for request cancellation. If
1721// the context is nil a panic will occur. In the future the SDK may create
1722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1723// for more information on using Contexts.
1724func (c *EMR) GetStudioSessionMappingWithContext(ctx aws.Context, input *GetStudioSessionMappingInput, opts ...request.Option) (*GetStudioSessionMappingOutput, error) {
1725	req, out := c.GetStudioSessionMappingRequest(input)
1726	req.SetContext(ctx)
1727	req.ApplyOptions(opts...)
1728	return out, req.Send()
1729}
1730
1731const opListBootstrapActions = "ListBootstrapActions"
1732
1733// ListBootstrapActionsRequest generates a "aws/request.Request" representing the
1734// client's request for the ListBootstrapActions operation. The "output" return
1735// value will be populated with the request's response once the request completes
1736// successfully.
1737//
1738// Use "Send" method on the returned Request to send the API call to the service.
1739// the "output" return value is not valid until after Send returns without error.
1740//
1741// See ListBootstrapActions for more information on using the ListBootstrapActions
1742// API call, and error handling.
1743//
1744// This method is useful when you want to inject custom logic or configuration
1745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1746//
1747//
1748//    // Example sending a request using the ListBootstrapActionsRequest method.
1749//    req, resp := client.ListBootstrapActionsRequest(params)
1750//
1751//    err := req.Send()
1752//    if err == nil { // resp is now filled
1753//        fmt.Println(resp)
1754//    }
1755//
1756// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1757func (c *EMR) ListBootstrapActionsRequest(input *ListBootstrapActionsInput) (req *request.Request, output *ListBootstrapActionsOutput) {
1758	op := &request.Operation{
1759		Name:       opListBootstrapActions,
1760		HTTPMethod: "POST",
1761		HTTPPath:   "/",
1762		Paginator: &request.Paginator{
1763			InputTokens:     []string{"Marker"},
1764			OutputTokens:    []string{"Marker"},
1765			LimitToken:      "",
1766			TruncationToken: "",
1767		},
1768	}
1769
1770	if input == nil {
1771		input = &ListBootstrapActionsInput{}
1772	}
1773
1774	output = &ListBootstrapActionsOutput{}
1775	req = c.newRequest(op, input, output)
1776	return
1777}
1778
1779// ListBootstrapActions API operation for Amazon Elastic MapReduce.
1780//
1781// Provides information about the bootstrap actions associated with a cluster.
1782//
1783// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1784// with awserr.Error's Code and Message methods to get detailed information about
1785// the error.
1786//
1787// See the AWS API reference guide for Amazon Elastic MapReduce's
1788// API operation ListBootstrapActions for usage and error information.
1789//
1790// Returned Error Types:
1791//   * InternalServerException
1792//   This exception occurs when there is an internal failure in the Amazon EMR
1793//   service.
1794//
1795//   * InvalidRequestException
1796//   This exception occurs when there is something wrong with user input.
1797//
1798// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1799func (c *EMR) ListBootstrapActions(input *ListBootstrapActionsInput) (*ListBootstrapActionsOutput, error) {
1800	req, out := c.ListBootstrapActionsRequest(input)
1801	return out, req.Send()
1802}
1803
1804// ListBootstrapActionsWithContext is the same as ListBootstrapActions with the addition of
1805// the ability to pass a context and additional request options.
1806//
1807// See ListBootstrapActions for details on how to use this API operation.
1808//
1809// The context must be non-nil and will be used for request cancellation. If
1810// the context is nil a panic will occur. In the future the SDK may create
1811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1812// for more information on using Contexts.
1813func (c *EMR) ListBootstrapActionsWithContext(ctx aws.Context, input *ListBootstrapActionsInput, opts ...request.Option) (*ListBootstrapActionsOutput, error) {
1814	req, out := c.ListBootstrapActionsRequest(input)
1815	req.SetContext(ctx)
1816	req.ApplyOptions(opts...)
1817	return out, req.Send()
1818}
1819
1820// ListBootstrapActionsPages iterates over the pages of a ListBootstrapActions operation,
1821// calling the "fn" function with the response data for each page. To stop
1822// iterating, return false from the fn function.
1823//
1824// See ListBootstrapActions method for more information on how to use this operation.
1825//
1826// Note: This operation can generate multiple requests to a service.
1827//
1828//    // Example iterating over at most 3 pages of a ListBootstrapActions operation.
1829//    pageNum := 0
1830//    err := client.ListBootstrapActionsPages(params,
1831//        func(page *emr.ListBootstrapActionsOutput, lastPage bool) bool {
1832//            pageNum++
1833//            fmt.Println(page)
1834//            return pageNum <= 3
1835//        })
1836//
1837func (c *EMR) ListBootstrapActionsPages(input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool) error {
1838	return c.ListBootstrapActionsPagesWithContext(aws.BackgroundContext(), input, fn)
1839}
1840
1841// ListBootstrapActionsPagesWithContext same as ListBootstrapActionsPages except
1842// it takes a Context and allows setting request options on the pages.
1843//
1844// The context must be non-nil and will be used for request cancellation. If
1845// the context is nil a panic will occur. In the future the SDK may create
1846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1847// for more information on using Contexts.
1848func (c *EMR) ListBootstrapActionsPagesWithContext(ctx aws.Context, input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool, opts ...request.Option) error {
1849	p := request.Pagination{
1850		NewRequest: func() (*request.Request, error) {
1851			var inCpy *ListBootstrapActionsInput
1852			if input != nil {
1853				tmp := *input
1854				inCpy = &tmp
1855			}
1856			req, _ := c.ListBootstrapActionsRequest(inCpy)
1857			req.SetContext(ctx)
1858			req.ApplyOptions(opts...)
1859			return req, nil
1860		},
1861	}
1862
1863	for p.Next() {
1864		if !fn(p.Page().(*ListBootstrapActionsOutput), !p.HasNextPage()) {
1865			break
1866		}
1867	}
1868
1869	return p.Err()
1870}
1871
1872const opListClusters = "ListClusters"
1873
1874// ListClustersRequest generates a "aws/request.Request" representing the
1875// client's request for the ListClusters operation. The "output" return
1876// value will be populated with the request's response once the request completes
1877// successfully.
1878//
1879// Use "Send" method on the returned Request to send the API call to the service.
1880// the "output" return value is not valid until after Send returns without error.
1881//
1882// See ListClusters for more information on using the ListClusters
1883// API call, and error handling.
1884//
1885// This method is useful when you want to inject custom logic or configuration
1886// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1887//
1888//
1889//    // Example sending a request using the ListClustersRequest method.
1890//    req, resp := client.ListClustersRequest(params)
1891//
1892//    err := req.Send()
1893//    if err == nil { // resp is now filled
1894//        fmt.Println(resp)
1895//    }
1896//
1897// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1898func (c *EMR) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1899	op := &request.Operation{
1900		Name:       opListClusters,
1901		HTTPMethod: "POST",
1902		HTTPPath:   "/",
1903		Paginator: &request.Paginator{
1904			InputTokens:     []string{"Marker"},
1905			OutputTokens:    []string{"Marker"},
1906			LimitToken:      "",
1907			TruncationToken: "",
1908		},
1909	}
1910
1911	if input == nil {
1912		input = &ListClustersInput{}
1913	}
1914
1915	output = &ListClustersOutput{}
1916	req = c.newRequest(op, input, output)
1917	return
1918}
1919
1920// ListClusters API operation for Amazon Elastic MapReduce.
1921//
1922// Provides the status of all clusters visible to this AWS account. Allows you
1923// to filter the list of clusters based on certain criteria; for example, filtering
1924// by cluster creation date and time or by status. This call returns a maximum
1925// of 50 clusters per call, but returns a marker to track the paging of the
1926// cluster list across multiple ListClusters calls.
1927//
1928// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1929// with awserr.Error's Code and Message methods to get detailed information about
1930// the error.
1931//
1932// See the AWS API reference guide for Amazon Elastic MapReduce's
1933// API operation ListClusters for usage and error information.
1934//
1935// Returned Error Types:
1936//   * InternalServerException
1937//   This exception occurs when there is an internal failure in the Amazon EMR
1938//   service.
1939//
1940//   * InvalidRequestException
1941//   This exception occurs when there is something wrong with user input.
1942//
1943// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1944func (c *EMR) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
1945	req, out := c.ListClustersRequest(input)
1946	return out, req.Send()
1947}
1948
1949// ListClustersWithContext is the same as ListClusters with the addition of
1950// the ability to pass a context and additional request options.
1951//
1952// See ListClusters for details on how to use this API operation.
1953//
1954// The context must be non-nil and will be used for request cancellation. If
1955// the context is nil a panic will occur. In the future the SDK may create
1956// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1957// for more information on using Contexts.
1958func (c *EMR) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
1959	req, out := c.ListClustersRequest(input)
1960	req.SetContext(ctx)
1961	req.ApplyOptions(opts...)
1962	return out, req.Send()
1963}
1964
1965// ListClustersPages iterates over the pages of a ListClusters operation,
1966// calling the "fn" function with the response data for each page. To stop
1967// iterating, return false from the fn function.
1968//
1969// See ListClusters method for more information on how to use this operation.
1970//
1971// Note: This operation can generate multiple requests to a service.
1972//
1973//    // Example iterating over at most 3 pages of a ListClusters operation.
1974//    pageNum := 0
1975//    err := client.ListClustersPages(params,
1976//        func(page *emr.ListClustersOutput, lastPage bool) bool {
1977//            pageNum++
1978//            fmt.Println(page)
1979//            return pageNum <= 3
1980//        })
1981//
1982func (c *EMR) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
1983	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
1984}
1985
1986// ListClustersPagesWithContext same as ListClustersPages except
1987// it takes a Context and allows setting request options on the pages.
1988//
1989// The context must be non-nil and will be used for request cancellation. If
1990// the context is nil a panic will occur. In the future the SDK may create
1991// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1992// for more information on using Contexts.
1993func (c *EMR) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
1994	p := request.Pagination{
1995		NewRequest: func() (*request.Request, error) {
1996			var inCpy *ListClustersInput
1997			if input != nil {
1998				tmp := *input
1999				inCpy = &tmp
2000			}
2001			req, _ := c.ListClustersRequest(inCpy)
2002			req.SetContext(ctx)
2003			req.ApplyOptions(opts...)
2004			return req, nil
2005		},
2006	}
2007
2008	for p.Next() {
2009		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2010			break
2011		}
2012	}
2013
2014	return p.Err()
2015}
2016
2017const opListInstanceFleets = "ListInstanceFleets"
2018
2019// ListInstanceFleetsRequest generates a "aws/request.Request" representing the
2020// client's request for the ListInstanceFleets operation. The "output" return
2021// value will be populated with the request's response once the request completes
2022// successfully.
2023//
2024// Use "Send" method on the returned Request to send the API call to the service.
2025// the "output" return value is not valid until after Send returns without error.
2026//
2027// See ListInstanceFleets for more information on using the ListInstanceFleets
2028// API call, and error handling.
2029//
2030// This method is useful when you want to inject custom logic or configuration
2031// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2032//
2033//
2034//    // Example sending a request using the ListInstanceFleetsRequest method.
2035//    req, resp := client.ListInstanceFleetsRequest(params)
2036//
2037//    err := req.Send()
2038//    if err == nil { // resp is now filled
2039//        fmt.Println(resp)
2040//    }
2041//
2042// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2043func (c *EMR) ListInstanceFleetsRequest(input *ListInstanceFleetsInput) (req *request.Request, output *ListInstanceFleetsOutput) {
2044	op := &request.Operation{
2045		Name:       opListInstanceFleets,
2046		HTTPMethod: "POST",
2047		HTTPPath:   "/",
2048		Paginator: &request.Paginator{
2049			InputTokens:     []string{"Marker"},
2050			OutputTokens:    []string{"Marker"},
2051			LimitToken:      "",
2052			TruncationToken: "",
2053		},
2054	}
2055
2056	if input == nil {
2057		input = &ListInstanceFleetsInput{}
2058	}
2059
2060	output = &ListInstanceFleetsOutput{}
2061	req = c.newRequest(op, input, output)
2062	return
2063}
2064
2065// ListInstanceFleets API operation for Amazon Elastic MapReduce.
2066//
2067// Lists all available details about the instance fleets in a cluster.
2068//
2069// The instance fleet configuration is available only in Amazon EMR versions
2070// 4.8.0 and later, excluding 5.0.x versions.
2071//
2072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2073// with awserr.Error's Code and Message methods to get detailed information about
2074// the error.
2075//
2076// See the AWS API reference guide for Amazon Elastic MapReduce's
2077// API operation ListInstanceFleets for usage and error information.
2078//
2079// Returned Error Types:
2080//   * InternalServerException
2081//   This exception occurs when there is an internal failure in the Amazon EMR
2082//   service.
2083//
2084//   * InvalidRequestException
2085//   This exception occurs when there is something wrong with user input.
2086//
2087// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2088func (c *EMR) ListInstanceFleets(input *ListInstanceFleetsInput) (*ListInstanceFleetsOutput, error) {
2089	req, out := c.ListInstanceFleetsRequest(input)
2090	return out, req.Send()
2091}
2092
2093// ListInstanceFleetsWithContext is the same as ListInstanceFleets with the addition of
2094// the ability to pass a context and additional request options.
2095//
2096// See ListInstanceFleets for details on how to use this API operation.
2097//
2098// The context must be non-nil and will be used for request cancellation. If
2099// the context is nil a panic will occur. In the future the SDK may create
2100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2101// for more information on using Contexts.
2102func (c *EMR) ListInstanceFleetsWithContext(ctx aws.Context, input *ListInstanceFleetsInput, opts ...request.Option) (*ListInstanceFleetsOutput, error) {
2103	req, out := c.ListInstanceFleetsRequest(input)
2104	req.SetContext(ctx)
2105	req.ApplyOptions(opts...)
2106	return out, req.Send()
2107}
2108
2109// ListInstanceFleetsPages iterates over the pages of a ListInstanceFleets operation,
2110// calling the "fn" function with the response data for each page. To stop
2111// iterating, return false from the fn function.
2112//
2113// See ListInstanceFleets method for more information on how to use this operation.
2114//
2115// Note: This operation can generate multiple requests to a service.
2116//
2117//    // Example iterating over at most 3 pages of a ListInstanceFleets operation.
2118//    pageNum := 0
2119//    err := client.ListInstanceFleetsPages(params,
2120//        func(page *emr.ListInstanceFleetsOutput, lastPage bool) bool {
2121//            pageNum++
2122//            fmt.Println(page)
2123//            return pageNum <= 3
2124//        })
2125//
2126func (c *EMR) ListInstanceFleetsPages(input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool) error {
2127	return c.ListInstanceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
2128}
2129
2130// ListInstanceFleetsPagesWithContext same as ListInstanceFleetsPages except
2131// it takes a Context and allows setting request options on the pages.
2132//
2133// The context must be non-nil and will be used for request cancellation. If
2134// the context is nil a panic will occur. In the future the SDK may create
2135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2136// for more information on using Contexts.
2137func (c *EMR) ListInstanceFleetsPagesWithContext(ctx aws.Context, input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool, opts ...request.Option) error {
2138	p := request.Pagination{
2139		NewRequest: func() (*request.Request, error) {
2140			var inCpy *ListInstanceFleetsInput
2141			if input != nil {
2142				tmp := *input
2143				inCpy = &tmp
2144			}
2145			req, _ := c.ListInstanceFleetsRequest(inCpy)
2146			req.SetContext(ctx)
2147			req.ApplyOptions(opts...)
2148			return req, nil
2149		},
2150	}
2151
2152	for p.Next() {
2153		if !fn(p.Page().(*ListInstanceFleetsOutput), !p.HasNextPage()) {
2154			break
2155		}
2156	}
2157
2158	return p.Err()
2159}
2160
2161const opListInstanceGroups = "ListInstanceGroups"
2162
2163// ListInstanceGroupsRequest generates a "aws/request.Request" representing the
2164// client's request for the ListInstanceGroups operation. The "output" return
2165// value will be populated with the request's response once the request completes
2166// successfully.
2167//
2168// Use "Send" method on the returned Request to send the API call to the service.
2169// the "output" return value is not valid until after Send returns without error.
2170//
2171// See ListInstanceGroups for more information on using the ListInstanceGroups
2172// API call, and error handling.
2173//
2174// This method is useful when you want to inject custom logic or configuration
2175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2176//
2177//
2178//    // Example sending a request using the ListInstanceGroupsRequest method.
2179//    req, resp := client.ListInstanceGroupsRequest(params)
2180//
2181//    err := req.Send()
2182//    if err == nil { // resp is now filled
2183//        fmt.Println(resp)
2184//    }
2185//
2186// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2187func (c *EMR) ListInstanceGroupsRequest(input *ListInstanceGroupsInput) (req *request.Request, output *ListInstanceGroupsOutput) {
2188	op := &request.Operation{
2189		Name:       opListInstanceGroups,
2190		HTTPMethod: "POST",
2191		HTTPPath:   "/",
2192		Paginator: &request.Paginator{
2193			InputTokens:     []string{"Marker"},
2194			OutputTokens:    []string{"Marker"},
2195			LimitToken:      "",
2196			TruncationToken: "",
2197		},
2198	}
2199
2200	if input == nil {
2201		input = &ListInstanceGroupsInput{}
2202	}
2203
2204	output = &ListInstanceGroupsOutput{}
2205	req = c.newRequest(op, input, output)
2206	return
2207}
2208
2209// ListInstanceGroups API operation for Amazon Elastic MapReduce.
2210//
2211// Provides all available details about the instance groups in a cluster.
2212//
2213// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2214// with awserr.Error's Code and Message methods to get detailed information about
2215// the error.
2216//
2217// See the AWS API reference guide for Amazon Elastic MapReduce's
2218// API operation ListInstanceGroups for usage and error information.
2219//
2220// Returned Error Types:
2221//   * InternalServerException
2222//   This exception occurs when there is an internal failure in the Amazon EMR
2223//   service.
2224//
2225//   * InvalidRequestException
2226//   This exception occurs when there is something wrong with user input.
2227//
2228// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2229func (c *EMR) ListInstanceGroups(input *ListInstanceGroupsInput) (*ListInstanceGroupsOutput, error) {
2230	req, out := c.ListInstanceGroupsRequest(input)
2231	return out, req.Send()
2232}
2233
2234// ListInstanceGroupsWithContext is the same as ListInstanceGroups with the addition of
2235// the ability to pass a context and additional request options.
2236//
2237// See ListInstanceGroups for details on how to use this API operation.
2238//
2239// The context must be non-nil and will be used for request cancellation. If
2240// the context is nil a panic will occur. In the future the SDK may create
2241// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2242// for more information on using Contexts.
2243func (c *EMR) ListInstanceGroupsWithContext(ctx aws.Context, input *ListInstanceGroupsInput, opts ...request.Option) (*ListInstanceGroupsOutput, error) {
2244	req, out := c.ListInstanceGroupsRequest(input)
2245	req.SetContext(ctx)
2246	req.ApplyOptions(opts...)
2247	return out, req.Send()
2248}
2249
2250// ListInstanceGroupsPages iterates over the pages of a ListInstanceGroups operation,
2251// calling the "fn" function with the response data for each page. To stop
2252// iterating, return false from the fn function.
2253//
2254// See ListInstanceGroups method for more information on how to use this operation.
2255//
2256// Note: This operation can generate multiple requests to a service.
2257//
2258//    // Example iterating over at most 3 pages of a ListInstanceGroups operation.
2259//    pageNum := 0
2260//    err := client.ListInstanceGroupsPages(params,
2261//        func(page *emr.ListInstanceGroupsOutput, lastPage bool) bool {
2262//            pageNum++
2263//            fmt.Println(page)
2264//            return pageNum <= 3
2265//        })
2266//
2267func (c *EMR) ListInstanceGroupsPages(input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool) error {
2268	return c.ListInstanceGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2269}
2270
2271// ListInstanceGroupsPagesWithContext same as ListInstanceGroupsPages except
2272// it takes a Context and allows setting request options on the pages.
2273//
2274// The context must be non-nil and will be used for request cancellation. If
2275// the context is nil a panic will occur. In the future the SDK may create
2276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2277// for more information on using Contexts.
2278func (c *EMR) ListInstanceGroupsPagesWithContext(ctx aws.Context, input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool, opts ...request.Option) error {
2279	p := request.Pagination{
2280		NewRequest: func() (*request.Request, error) {
2281			var inCpy *ListInstanceGroupsInput
2282			if input != nil {
2283				tmp := *input
2284				inCpy = &tmp
2285			}
2286			req, _ := c.ListInstanceGroupsRequest(inCpy)
2287			req.SetContext(ctx)
2288			req.ApplyOptions(opts...)
2289			return req, nil
2290		},
2291	}
2292
2293	for p.Next() {
2294		if !fn(p.Page().(*ListInstanceGroupsOutput), !p.HasNextPage()) {
2295			break
2296		}
2297	}
2298
2299	return p.Err()
2300}
2301
2302const opListInstances = "ListInstances"
2303
2304// ListInstancesRequest generates a "aws/request.Request" representing the
2305// client's request for the ListInstances operation. The "output" return
2306// value will be populated with the request's response once the request completes
2307// successfully.
2308//
2309// Use "Send" method on the returned Request to send the API call to the service.
2310// the "output" return value is not valid until after Send returns without error.
2311//
2312// See ListInstances for more information on using the ListInstances
2313// API call, and error handling.
2314//
2315// This method is useful when you want to inject custom logic or configuration
2316// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2317//
2318//
2319//    // Example sending a request using the ListInstancesRequest method.
2320//    req, resp := client.ListInstancesRequest(params)
2321//
2322//    err := req.Send()
2323//    if err == nil { // resp is now filled
2324//        fmt.Println(resp)
2325//    }
2326//
2327// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2328func (c *EMR) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
2329	op := &request.Operation{
2330		Name:       opListInstances,
2331		HTTPMethod: "POST",
2332		HTTPPath:   "/",
2333		Paginator: &request.Paginator{
2334			InputTokens:     []string{"Marker"},
2335			OutputTokens:    []string{"Marker"},
2336			LimitToken:      "",
2337			TruncationToken: "",
2338		},
2339	}
2340
2341	if input == nil {
2342		input = &ListInstancesInput{}
2343	}
2344
2345	output = &ListInstancesOutput{}
2346	req = c.newRequest(op, input, output)
2347	return
2348}
2349
2350// ListInstances API operation for Amazon Elastic MapReduce.
2351//
2352// Provides information for all active EC2 instances and EC2 instances terminated
2353// in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the
2354// following states are considered active: AWAITING_FULFILLMENT, PROVISIONING,
2355// BOOTSTRAPPING, RUNNING.
2356//
2357// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2358// with awserr.Error's Code and Message methods to get detailed information about
2359// the error.
2360//
2361// See the AWS API reference guide for Amazon Elastic MapReduce's
2362// API operation ListInstances for usage and error information.
2363//
2364// Returned Error Types:
2365//   * InternalServerException
2366//   This exception occurs when there is an internal failure in the Amazon EMR
2367//   service.
2368//
2369//   * InvalidRequestException
2370//   This exception occurs when there is something wrong with user input.
2371//
2372// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2373func (c *EMR) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
2374	req, out := c.ListInstancesRequest(input)
2375	return out, req.Send()
2376}
2377
2378// ListInstancesWithContext is the same as ListInstances with the addition of
2379// the ability to pass a context and additional request options.
2380//
2381// See ListInstances for details on how to use this API operation.
2382//
2383// The context must be non-nil and will be used for request cancellation. If
2384// the context is nil a panic will occur. In the future the SDK may create
2385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2386// for more information on using Contexts.
2387func (c *EMR) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
2388	req, out := c.ListInstancesRequest(input)
2389	req.SetContext(ctx)
2390	req.ApplyOptions(opts...)
2391	return out, req.Send()
2392}
2393
2394// ListInstancesPages iterates over the pages of a ListInstances operation,
2395// calling the "fn" function with the response data for each page. To stop
2396// iterating, return false from the fn function.
2397//
2398// See ListInstances method for more information on how to use this operation.
2399//
2400// Note: This operation can generate multiple requests to a service.
2401//
2402//    // Example iterating over at most 3 pages of a ListInstances operation.
2403//    pageNum := 0
2404//    err := client.ListInstancesPages(params,
2405//        func(page *emr.ListInstancesOutput, lastPage bool) bool {
2406//            pageNum++
2407//            fmt.Println(page)
2408//            return pageNum <= 3
2409//        })
2410//
2411func (c *EMR) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
2412	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2413}
2414
2415// ListInstancesPagesWithContext same as ListInstancesPages except
2416// it takes a Context and allows setting request options on the pages.
2417//
2418// The context must be non-nil and will be used for request cancellation. If
2419// the context is nil a panic will occur. In the future the SDK may create
2420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2421// for more information on using Contexts.
2422func (c *EMR) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
2423	p := request.Pagination{
2424		NewRequest: func() (*request.Request, error) {
2425			var inCpy *ListInstancesInput
2426			if input != nil {
2427				tmp := *input
2428				inCpy = &tmp
2429			}
2430			req, _ := c.ListInstancesRequest(inCpy)
2431			req.SetContext(ctx)
2432			req.ApplyOptions(opts...)
2433			return req, nil
2434		},
2435	}
2436
2437	for p.Next() {
2438		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
2439			break
2440		}
2441	}
2442
2443	return p.Err()
2444}
2445
2446const opListNotebookExecutions = "ListNotebookExecutions"
2447
2448// ListNotebookExecutionsRequest generates a "aws/request.Request" representing the
2449// client's request for the ListNotebookExecutions operation. The "output" return
2450// value will be populated with the request's response once the request completes
2451// successfully.
2452//
2453// Use "Send" method on the returned Request to send the API call to the service.
2454// the "output" return value is not valid until after Send returns without error.
2455//
2456// See ListNotebookExecutions for more information on using the ListNotebookExecutions
2457// API call, and error handling.
2458//
2459// This method is useful when you want to inject custom logic or configuration
2460// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2461//
2462//
2463//    // Example sending a request using the ListNotebookExecutionsRequest method.
2464//    req, resp := client.ListNotebookExecutionsRequest(params)
2465//
2466//    err := req.Send()
2467//    if err == nil { // resp is now filled
2468//        fmt.Println(resp)
2469//    }
2470//
2471// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2472func (c *EMR) ListNotebookExecutionsRequest(input *ListNotebookExecutionsInput) (req *request.Request, output *ListNotebookExecutionsOutput) {
2473	op := &request.Operation{
2474		Name:       opListNotebookExecutions,
2475		HTTPMethod: "POST",
2476		HTTPPath:   "/",
2477		Paginator: &request.Paginator{
2478			InputTokens:     []string{"Marker"},
2479			OutputTokens:    []string{"Marker"},
2480			LimitToken:      "",
2481			TruncationToken: "",
2482		},
2483	}
2484
2485	if input == nil {
2486		input = &ListNotebookExecutionsInput{}
2487	}
2488
2489	output = &ListNotebookExecutionsOutput{}
2490	req = c.newRequest(op, input, output)
2491	return
2492}
2493
2494// ListNotebookExecutions API operation for Amazon Elastic MapReduce.
2495//
2496// Provides summaries of all notebook executions. You can filter the list based
2497// on multiple criteria such as status, time range, and editor id. Returns a
2498// maximum of 50 notebook executions and a marker to track the paging of a longer
2499// notebook execution list across multiple ListNotebookExecution calls.
2500//
2501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2502// with awserr.Error's Code and Message methods to get detailed information about
2503// the error.
2504//
2505// See the AWS API reference guide for Amazon Elastic MapReduce's
2506// API operation ListNotebookExecutions for usage and error information.
2507//
2508// Returned Error Types:
2509//   * InternalServerError
2510//   Indicates that an error occurred while processing the request and that the
2511//   request was not completed.
2512//
2513//   * InvalidRequestException
2514//   This exception occurs when there is something wrong with user input.
2515//
2516// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2517func (c *EMR) ListNotebookExecutions(input *ListNotebookExecutionsInput) (*ListNotebookExecutionsOutput, error) {
2518	req, out := c.ListNotebookExecutionsRequest(input)
2519	return out, req.Send()
2520}
2521
2522// ListNotebookExecutionsWithContext is the same as ListNotebookExecutions with the addition of
2523// the ability to pass a context and additional request options.
2524//
2525// See ListNotebookExecutions for details on how to use this API operation.
2526//
2527// The context must be non-nil and will be used for request cancellation. If
2528// the context is nil a panic will occur. In the future the SDK may create
2529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2530// for more information on using Contexts.
2531func (c *EMR) ListNotebookExecutionsWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, opts ...request.Option) (*ListNotebookExecutionsOutput, error) {
2532	req, out := c.ListNotebookExecutionsRequest(input)
2533	req.SetContext(ctx)
2534	req.ApplyOptions(opts...)
2535	return out, req.Send()
2536}
2537
2538// ListNotebookExecutionsPages iterates over the pages of a ListNotebookExecutions operation,
2539// calling the "fn" function with the response data for each page. To stop
2540// iterating, return false from the fn function.
2541//
2542// See ListNotebookExecutions method for more information on how to use this operation.
2543//
2544// Note: This operation can generate multiple requests to a service.
2545//
2546//    // Example iterating over at most 3 pages of a ListNotebookExecutions operation.
2547//    pageNum := 0
2548//    err := client.ListNotebookExecutionsPages(params,
2549//        func(page *emr.ListNotebookExecutionsOutput, lastPage bool) bool {
2550//            pageNum++
2551//            fmt.Println(page)
2552//            return pageNum <= 3
2553//        })
2554//
2555func (c *EMR) ListNotebookExecutionsPages(input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool) error {
2556	return c.ListNotebookExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2557}
2558
2559// ListNotebookExecutionsPagesWithContext same as ListNotebookExecutionsPages except
2560// it takes a Context and allows setting request options on the pages.
2561//
2562// The context must be non-nil and will be used for request cancellation. If
2563// the context is nil a panic will occur. In the future the SDK may create
2564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2565// for more information on using Contexts.
2566func (c *EMR) ListNotebookExecutionsPagesWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool, opts ...request.Option) error {
2567	p := request.Pagination{
2568		NewRequest: func() (*request.Request, error) {
2569			var inCpy *ListNotebookExecutionsInput
2570			if input != nil {
2571				tmp := *input
2572				inCpy = &tmp
2573			}
2574			req, _ := c.ListNotebookExecutionsRequest(inCpy)
2575			req.SetContext(ctx)
2576			req.ApplyOptions(opts...)
2577			return req, nil
2578		},
2579	}
2580
2581	for p.Next() {
2582		if !fn(p.Page().(*ListNotebookExecutionsOutput), !p.HasNextPage()) {
2583			break
2584		}
2585	}
2586
2587	return p.Err()
2588}
2589
2590const opListSecurityConfigurations = "ListSecurityConfigurations"
2591
2592// ListSecurityConfigurationsRequest generates a "aws/request.Request" representing the
2593// client's request for the ListSecurityConfigurations operation. The "output" return
2594// value will be populated with the request's response once the request completes
2595// successfully.
2596//
2597// Use "Send" method on the returned Request to send the API call to the service.
2598// the "output" return value is not valid until after Send returns without error.
2599//
2600// See ListSecurityConfigurations for more information on using the ListSecurityConfigurations
2601// API call, and error handling.
2602//
2603// This method is useful when you want to inject custom logic or configuration
2604// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2605//
2606//
2607//    // Example sending a request using the ListSecurityConfigurationsRequest method.
2608//    req, resp := client.ListSecurityConfigurationsRequest(params)
2609//
2610//    err := req.Send()
2611//    if err == nil { // resp is now filled
2612//        fmt.Println(resp)
2613//    }
2614//
2615// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2616func (c *EMR) ListSecurityConfigurationsRequest(input *ListSecurityConfigurationsInput) (req *request.Request, output *ListSecurityConfigurationsOutput) {
2617	op := &request.Operation{
2618		Name:       opListSecurityConfigurations,
2619		HTTPMethod: "POST",
2620		HTTPPath:   "/",
2621		Paginator: &request.Paginator{
2622			InputTokens:     []string{"Marker"},
2623			OutputTokens:    []string{"Marker"},
2624			LimitToken:      "",
2625			TruncationToken: "",
2626		},
2627	}
2628
2629	if input == nil {
2630		input = &ListSecurityConfigurationsInput{}
2631	}
2632
2633	output = &ListSecurityConfigurationsOutput{}
2634	req = c.newRequest(op, input, output)
2635	return
2636}
2637
2638// ListSecurityConfigurations API operation for Amazon Elastic MapReduce.
2639//
2640// Lists all the security configurations visible to this account, providing
2641// their creation dates and times, and their names. This call returns a maximum
2642// of 50 clusters per call, but returns a marker to track the paging of the
2643// cluster list across multiple ListSecurityConfigurations calls.
2644//
2645// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2646// with awserr.Error's Code and Message methods to get detailed information about
2647// the error.
2648//
2649// See the AWS API reference guide for Amazon Elastic MapReduce's
2650// API operation ListSecurityConfigurations for usage and error information.
2651//
2652// Returned Error Types:
2653//   * InternalServerException
2654//   This exception occurs when there is an internal failure in the Amazon EMR
2655//   service.
2656//
2657//   * InvalidRequestException
2658//   This exception occurs when there is something wrong with user input.
2659//
2660// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2661func (c *EMR) ListSecurityConfigurations(input *ListSecurityConfigurationsInput) (*ListSecurityConfigurationsOutput, error) {
2662	req, out := c.ListSecurityConfigurationsRequest(input)
2663	return out, req.Send()
2664}
2665
2666// ListSecurityConfigurationsWithContext is the same as ListSecurityConfigurations with the addition of
2667// the ability to pass a context and additional request options.
2668//
2669// See ListSecurityConfigurations for details on how to use this API operation.
2670//
2671// The context must be non-nil and will be used for request cancellation. If
2672// the context is nil a panic will occur. In the future the SDK may create
2673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2674// for more information on using Contexts.
2675func (c *EMR) ListSecurityConfigurationsWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, opts ...request.Option) (*ListSecurityConfigurationsOutput, error) {
2676	req, out := c.ListSecurityConfigurationsRequest(input)
2677	req.SetContext(ctx)
2678	req.ApplyOptions(opts...)
2679	return out, req.Send()
2680}
2681
2682// ListSecurityConfigurationsPages iterates over the pages of a ListSecurityConfigurations operation,
2683// calling the "fn" function with the response data for each page. To stop
2684// iterating, return false from the fn function.
2685//
2686// See ListSecurityConfigurations method for more information on how to use this operation.
2687//
2688// Note: This operation can generate multiple requests to a service.
2689//
2690//    // Example iterating over at most 3 pages of a ListSecurityConfigurations operation.
2691//    pageNum := 0
2692//    err := client.ListSecurityConfigurationsPages(params,
2693//        func(page *emr.ListSecurityConfigurationsOutput, lastPage bool) bool {
2694//            pageNum++
2695//            fmt.Println(page)
2696//            return pageNum <= 3
2697//        })
2698//
2699func (c *EMR) ListSecurityConfigurationsPages(input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool) error {
2700	return c.ListSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
2701}
2702
2703// ListSecurityConfigurationsPagesWithContext same as ListSecurityConfigurationsPages except
2704// it takes a Context and allows setting request options on the pages.
2705//
2706// The context must be non-nil and will be used for request cancellation. If
2707// the context is nil a panic will occur. In the future the SDK may create
2708// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2709// for more information on using Contexts.
2710func (c *EMR) ListSecurityConfigurationsPagesWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
2711	p := request.Pagination{
2712		NewRequest: func() (*request.Request, error) {
2713			var inCpy *ListSecurityConfigurationsInput
2714			if input != nil {
2715				tmp := *input
2716				inCpy = &tmp
2717			}
2718			req, _ := c.ListSecurityConfigurationsRequest(inCpy)
2719			req.SetContext(ctx)
2720			req.ApplyOptions(opts...)
2721			return req, nil
2722		},
2723	}
2724
2725	for p.Next() {
2726		if !fn(p.Page().(*ListSecurityConfigurationsOutput), !p.HasNextPage()) {
2727			break
2728		}
2729	}
2730
2731	return p.Err()
2732}
2733
2734const opListSteps = "ListSteps"
2735
2736// ListStepsRequest generates a "aws/request.Request" representing the
2737// client's request for the ListSteps operation. The "output" return
2738// value will be populated with the request's response once the request completes
2739// successfully.
2740//
2741// Use "Send" method on the returned Request to send the API call to the service.
2742// the "output" return value is not valid until after Send returns without error.
2743//
2744// See ListSteps for more information on using the ListSteps
2745// API call, and error handling.
2746//
2747// This method is useful when you want to inject custom logic or configuration
2748// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2749//
2750//
2751//    // Example sending a request using the ListStepsRequest method.
2752//    req, resp := client.ListStepsRequest(params)
2753//
2754//    err := req.Send()
2755//    if err == nil { // resp is now filled
2756//        fmt.Println(resp)
2757//    }
2758//
2759// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2760func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, output *ListStepsOutput) {
2761	op := &request.Operation{
2762		Name:       opListSteps,
2763		HTTPMethod: "POST",
2764		HTTPPath:   "/",
2765		Paginator: &request.Paginator{
2766			InputTokens:     []string{"Marker"},
2767			OutputTokens:    []string{"Marker"},
2768			LimitToken:      "",
2769			TruncationToken: "",
2770		},
2771	}
2772
2773	if input == nil {
2774		input = &ListStepsInput{}
2775	}
2776
2777	output = &ListStepsOutput{}
2778	req = c.newRequest(op, input, output)
2779	return
2780}
2781
2782// ListSteps API operation for Amazon Elastic MapReduce.
2783//
2784// Provides a list of steps for the cluster in reverse order unless you specify
2785// stepIds with the request of filter by StepStates. You can specify a maximum
2786// of 10 stepIDs.
2787//
2788// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2789// with awserr.Error's Code and Message methods to get detailed information about
2790// the error.
2791//
2792// See the AWS API reference guide for Amazon Elastic MapReduce's
2793// API operation ListSteps for usage and error information.
2794//
2795// Returned Error Types:
2796//   * InternalServerException
2797//   This exception occurs when there is an internal failure in the Amazon EMR
2798//   service.
2799//
2800//   * InvalidRequestException
2801//   This exception occurs when there is something wrong with user input.
2802//
2803// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2804func (c *EMR) ListSteps(input *ListStepsInput) (*ListStepsOutput, error) {
2805	req, out := c.ListStepsRequest(input)
2806	return out, req.Send()
2807}
2808
2809// ListStepsWithContext is the same as ListSteps with the addition of
2810// the ability to pass a context and additional request options.
2811//
2812// See ListSteps for details on how to use this API operation.
2813//
2814// The context must be non-nil and will be used for request cancellation. If
2815// the context is nil a panic will occur. In the future the SDK may create
2816// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2817// for more information on using Contexts.
2818func (c *EMR) ListStepsWithContext(ctx aws.Context, input *ListStepsInput, opts ...request.Option) (*ListStepsOutput, error) {
2819	req, out := c.ListStepsRequest(input)
2820	req.SetContext(ctx)
2821	req.ApplyOptions(opts...)
2822	return out, req.Send()
2823}
2824
2825// ListStepsPages iterates over the pages of a ListSteps operation,
2826// calling the "fn" function with the response data for each page. To stop
2827// iterating, return false from the fn function.
2828//
2829// See ListSteps method for more information on how to use this operation.
2830//
2831// Note: This operation can generate multiple requests to a service.
2832//
2833//    // Example iterating over at most 3 pages of a ListSteps operation.
2834//    pageNum := 0
2835//    err := client.ListStepsPages(params,
2836//        func(page *emr.ListStepsOutput, lastPage bool) bool {
2837//            pageNum++
2838//            fmt.Println(page)
2839//            return pageNum <= 3
2840//        })
2841//
2842func (c *EMR) ListStepsPages(input *ListStepsInput, fn func(*ListStepsOutput, bool) bool) error {
2843	return c.ListStepsPagesWithContext(aws.BackgroundContext(), input, fn)
2844}
2845
2846// ListStepsPagesWithContext same as ListStepsPages except
2847// it takes a Context and allows setting request options on the pages.
2848//
2849// The context must be non-nil and will be used for request cancellation. If
2850// the context is nil a panic will occur. In the future the SDK may create
2851// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2852// for more information on using Contexts.
2853func (c *EMR) ListStepsPagesWithContext(ctx aws.Context, input *ListStepsInput, fn func(*ListStepsOutput, bool) bool, opts ...request.Option) error {
2854	p := request.Pagination{
2855		NewRequest: func() (*request.Request, error) {
2856			var inCpy *ListStepsInput
2857			if input != nil {
2858				tmp := *input
2859				inCpy = &tmp
2860			}
2861			req, _ := c.ListStepsRequest(inCpy)
2862			req.SetContext(ctx)
2863			req.ApplyOptions(opts...)
2864			return req, nil
2865		},
2866	}
2867
2868	for p.Next() {
2869		if !fn(p.Page().(*ListStepsOutput), !p.HasNextPage()) {
2870			break
2871		}
2872	}
2873
2874	return p.Err()
2875}
2876
2877const opListStudioSessionMappings = "ListStudioSessionMappings"
2878
2879// ListStudioSessionMappingsRequest generates a "aws/request.Request" representing the
2880// client's request for the ListStudioSessionMappings operation. The "output" return
2881// value will be populated with the request's response once the request completes
2882// successfully.
2883//
2884// Use "Send" method on the returned Request to send the API call to the service.
2885// the "output" return value is not valid until after Send returns without error.
2886//
2887// See ListStudioSessionMappings for more information on using the ListStudioSessionMappings
2888// API call, and error handling.
2889//
2890// This method is useful when you want to inject custom logic or configuration
2891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2892//
2893//
2894//    // Example sending a request using the ListStudioSessionMappingsRequest method.
2895//    req, resp := client.ListStudioSessionMappingsRequest(params)
2896//
2897//    err := req.Send()
2898//    if err == nil { // resp is now filled
2899//        fmt.Println(resp)
2900//    }
2901//
2902// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
2903func (c *EMR) ListStudioSessionMappingsRequest(input *ListStudioSessionMappingsInput) (req *request.Request, output *ListStudioSessionMappingsOutput) {
2904	op := &request.Operation{
2905		Name:       opListStudioSessionMappings,
2906		HTTPMethod: "POST",
2907		HTTPPath:   "/",
2908		Paginator: &request.Paginator{
2909			InputTokens:     []string{"Marker"},
2910			OutputTokens:    []string{"Marker"},
2911			LimitToken:      "",
2912			TruncationToken: "",
2913		},
2914	}
2915
2916	if input == nil {
2917		input = &ListStudioSessionMappingsInput{}
2918	}
2919
2920	output = &ListStudioSessionMappingsOutput{}
2921	req = c.newRequest(op, input, output)
2922	return
2923}
2924
2925// ListStudioSessionMappings API operation for Amazon Elastic MapReduce.
2926//
2927// Returns a list of all user or group session mappings for the Amazon EMR Studio
2928// specified by StudioId.
2929//
2930// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2931// with awserr.Error's Code and Message methods to get detailed information about
2932// the error.
2933//
2934// See the AWS API reference guide for Amazon Elastic MapReduce's
2935// API operation ListStudioSessionMappings for usage and error information.
2936//
2937// Returned Error Types:
2938//   * InternalServerError
2939//   Indicates that an error occurred while processing the request and that the
2940//   request was not completed.
2941//
2942//   * InvalidRequestException
2943//   This exception occurs when there is something wrong with user input.
2944//
2945// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
2946func (c *EMR) ListStudioSessionMappings(input *ListStudioSessionMappingsInput) (*ListStudioSessionMappingsOutput, error) {
2947	req, out := c.ListStudioSessionMappingsRequest(input)
2948	return out, req.Send()
2949}
2950
2951// ListStudioSessionMappingsWithContext is the same as ListStudioSessionMappings with the addition of
2952// the ability to pass a context and additional request options.
2953//
2954// See ListStudioSessionMappings for details on how to use this API operation.
2955//
2956// The context must be non-nil and will be used for request cancellation. If
2957// the context is nil a panic will occur. In the future the SDK may create
2958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2959// for more information on using Contexts.
2960func (c *EMR) ListStudioSessionMappingsWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, opts ...request.Option) (*ListStudioSessionMappingsOutput, error) {
2961	req, out := c.ListStudioSessionMappingsRequest(input)
2962	req.SetContext(ctx)
2963	req.ApplyOptions(opts...)
2964	return out, req.Send()
2965}
2966
2967// ListStudioSessionMappingsPages iterates over the pages of a ListStudioSessionMappings operation,
2968// calling the "fn" function with the response data for each page. To stop
2969// iterating, return false from the fn function.
2970//
2971// See ListStudioSessionMappings method for more information on how to use this operation.
2972//
2973// Note: This operation can generate multiple requests to a service.
2974//
2975//    // Example iterating over at most 3 pages of a ListStudioSessionMappings operation.
2976//    pageNum := 0
2977//    err := client.ListStudioSessionMappingsPages(params,
2978//        func(page *emr.ListStudioSessionMappingsOutput, lastPage bool) bool {
2979//            pageNum++
2980//            fmt.Println(page)
2981//            return pageNum <= 3
2982//        })
2983//
2984func (c *EMR) ListStudioSessionMappingsPages(input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool) error {
2985	return c.ListStudioSessionMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
2986}
2987
2988// ListStudioSessionMappingsPagesWithContext same as ListStudioSessionMappingsPages except
2989// it takes a Context and allows setting request options on the pages.
2990//
2991// The context must be non-nil and will be used for request cancellation. If
2992// the context is nil a panic will occur. In the future the SDK may create
2993// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2994// for more information on using Contexts.
2995func (c *EMR) ListStudioSessionMappingsPagesWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool, opts ...request.Option) error {
2996	p := request.Pagination{
2997		NewRequest: func() (*request.Request, error) {
2998			var inCpy *ListStudioSessionMappingsInput
2999			if input != nil {
3000				tmp := *input
3001				inCpy = &tmp
3002			}
3003			req, _ := c.ListStudioSessionMappingsRequest(inCpy)
3004			req.SetContext(ctx)
3005			req.ApplyOptions(opts...)
3006			return req, nil
3007		},
3008	}
3009
3010	for p.Next() {
3011		if !fn(p.Page().(*ListStudioSessionMappingsOutput), !p.HasNextPage()) {
3012			break
3013		}
3014	}
3015
3016	return p.Err()
3017}
3018
3019const opListStudios = "ListStudios"
3020
3021// ListStudiosRequest generates a "aws/request.Request" representing the
3022// client's request for the ListStudios operation. The "output" return
3023// value will be populated with the request's response once the request completes
3024// successfully.
3025//
3026// Use "Send" method on the returned Request to send the API call to the service.
3027// the "output" return value is not valid until after Send returns without error.
3028//
3029// See ListStudios for more information on using the ListStudios
3030// API call, and error handling.
3031//
3032// This method is useful when you want to inject custom logic or configuration
3033// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3034//
3035//
3036//    // Example sending a request using the ListStudiosRequest method.
3037//    req, resp := client.ListStudiosRequest(params)
3038//
3039//    err := req.Send()
3040//    if err == nil { // resp is now filled
3041//        fmt.Println(resp)
3042//    }
3043//
3044// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3045func (c *EMR) ListStudiosRequest(input *ListStudiosInput) (req *request.Request, output *ListStudiosOutput) {
3046	op := &request.Operation{
3047		Name:       opListStudios,
3048		HTTPMethod: "POST",
3049		HTTPPath:   "/",
3050		Paginator: &request.Paginator{
3051			InputTokens:     []string{"Marker"},
3052			OutputTokens:    []string{"Marker"},
3053			LimitToken:      "",
3054			TruncationToken: "",
3055		},
3056	}
3057
3058	if input == nil {
3059		input = &ListStudiosInput{}
3060	}
3061
3062	output = &ListStudiosOutput{}
3063	req = c.newRequest(op, input, output)
3064	return
3065}
3066
3067// ListStudios API operation for Amazon Elastic MapReduce.
3068//
3069// Returns a list of all Amazon EMR Studios associated with the AWS account.
3070// The list includes details such as ID, Studio Access URL, and creation time
3071// for each Studio.
3072//
3073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3074// with awserr.Error's Code and Message methods to get detailed information about
3075// the error.
3076//
3077// See the AWS API reference guide for Amazon Elastic MapReduce's
3078// API operation ListStudios for usage and error information.
3079//
3080// Returned Error Types:
3081//   * InternalServerException
3082//   This exception occurs when there is an internal failure in the Amazon EMR
3083//   service.
3084//
3085//   * InvalidRequestException
3086//   This exception occurs when there is something wrong with user input.
3087//
3088// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3089func (c *EMR) ListStudios(input *ListStudiosInput) (*ListStudiosOutput, error) {
3090	req, out := c.ListStudiosRequest(input)
3091	return out, req.Send()
3092}
3093
3094// ListStudiosWithContext is the same as ListStudios with the addition of
3095// the ability to pass a context and additional request options.
3096//
3097// See ListStudios for details on how to use this API operation.
3098//
3099// The context must be non-nil and will be used for request cancellation. If
3100// the context is nil a panic will occur. In the future the SDK may create
3101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3102// for more information on using Contexts.
3103func (c *EMR) ListStudiosWithContext(ctx aws.Context, input *ListStudiosInput, opts ...request.Option) (*ListStudiosOutput, error) {
3104	req, out := c.ListStudiosRequest(input)
3105	req.SetContext(ctx)
3106	req.ApplyOptions(opts...)
3107	return out, req.Send()
3108}
3109
3110// ListStudiosPages iterates over the pages of a ListStudios operation,
3111// calling the "fn" function with the response data for each page. To stop
3112// iterating, return false from the fn function.
3113//
3114// See ListStudios method for more information on how to use this operation.
3115//
3116// Note: This operation can generate multiple requests to a service.
3117//
3118//    // Example iterating over at most 3 pages of a ListStudios operation.
3119//    pageNum := 0
3120//    err := client.ListStudiosPages(params,
3121//        func(page *emr.ListStudiosOutput, lastPage bool) bool {
3122//            pageNum++
3123//            fmt.Println(page)
3124//            return pageNum <= 3
3125//        })
3126//
3127func (c *EMR) ListStudiosPages(input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool) error {
3128	return c.ListStudiosPagesWithContext(aws.BackgroundContext(), input, fn)
3129}
3130
3131// ListStudiosPagesWithContext same as ListStudiosPages except
3132// it takes a Context and allows setting request options on the pages.
3133//
3134// The context must be non-nil and will be used for request cancellation. If
3135// the context is nil a panic will occur. In the future the SDK may create
3136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3137// for more information on using Contexts.
3138func (c *EMR) ListStudiosPagesWithContext(ctx aws.Context, input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool, opts ...request.Option) error {
3139	p := request.Pagination{
3140		NewRequest: func() (*request.Request, error) {
3141			var inCpy *ListStudiosInput
3142			if input != nil {
3143				tmp := *input
3144				inCpy = &tmp
3145			}
3146			req, _ := c.ListStudiosRequest(inCpy)
3147			req.SetContext(ctx)
3148			req.ApplyOptions(opts...)
3149			return req, nil
3150		},
3151	}
3152
3153	for p.Next() {
3154		if !fn(p.Page().(*ListStudiosOutput), !p.HasNextPage()) {
3155			break
3156		}
3157	}
3158
3159	return p.Err()
3160}
3161
3162const opModifyCluster = "ModifyCluster"
3163
3164// ModifyClusterRequest generates a "aws/request.Request" representing the
3165// client's request for the ModifyCluster operation. The "output" return
3166// value will be populated with the request's response once the request completes
3167// successfully.
3168//
3169// Use "Send" method on the returned Request to send the API call to the service.
3170// the "output" return value is not valid until after Send returns without error.
3171//
3172// See ModifyCluster for more information on using the ModifyCluster
3173// API call, and error handling.
3174//
3175// This method is useful when you want to inject custom logic or configuration
3176// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3177//
3178//
3179//    // Example sending a request using the ModifyClusterRequest method.
3180//    req, resp := client.ModifyClusterRequest(params)
3181//
3182//    err := req.Send()
3183//    if err == nil { // resp is now filled
3184//        fmt.Println(resp)
3185//    }
3186//
3187// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3188func (c *EMR) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
3189	op := &request.Operation{
3190		Name:       opModifyCluster,
3191		HTTPMethod: "POST",
3192		HTTPPath:   "/",
3193	}
3194
3195	if input == nil {
3196		input = &ModifyClusterInput{}
3197	}
3198
3199	output = &ModifyClusterOutput{}
3200	req = c.newRequest(op, input, output)
3201	return
3202}
3203
3204// ModifyCluster API operation for Amazon Elastic MapReduce.
3205//
3206// Modifies the number of steps that can be executed concurrently for the cluster
3207// specified using ClusterID.
3208//
3209// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3210// with awserr.Error's Code and Message methods to get detailed information about
3211// the error.
3212//
3213// See the AWS API reference guide for Amazon Elastic MapReduce's
3214// API operation ModifyCluster for usage and error information.
3215//
3216// Returned Error Types:
3217//   * InternalServerError
3218//   Indicates that an error occurred while processing the request and that the
3219//   request was not completed.
3220//
3221//   * InvalidRequestException
3222//   This exception occurs when there is something wrong with user input.
3223//
3224// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3225func (c *EMR) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
3226	req, out := c.ModifyClusterRequest(input)
3227	return out, req.Send()
3228}
3229
3230// ModifyClusterWithContext is the same as ModifyCluster with the addition of
3231// the ability to pass a context and additional request options.
3232//
3233// See ModifyCluster for details on how to use this API operation.
3234//
3235// The context must be non-nil and will be used for request cancellation. If
3236// the context is nil a panic will occur. In the future the SDK may create
3237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3238// for more information on using Contexts.
3239func (c *EMR) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
3240	req, out := c.ModifyClusterRequest(input)
3241	req.SetContext(ctx)
3242	req.ApplyOptions(opts...)
3243	return out, req.Send()
3244}
3245
3246const opModifyInstanceFleet = "ModifyInstanceFleet"
3247
3248// ModifyInstanceFleetRequest generates a "aws/request.Request" representing the
3249// client's request for the ModifyInstanceFleet operation. The "output" return
3250// value will be populated with the request's response once the request completes
3251// successfully.
3252//
3253// Use "Send" method on the returned Request to send the API call to the service.
3254// the "output" return value is not valid until after Send returns without error.
3255//
3256// See ModifyInstanceFleet for more information on using the ModifyInstanceFleet
3257// API call, and error handling.
3258//
3259// This method is useful when you want to inject custom logic or configuration
3260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3261//
3262//
3263//    // Example sending a request using the ModifyInstanceFleetRequest method.
3264//    req, resp := client.ModifyInstanceFleetRequest(params)
3265//
3266//    err := req.Send()
3267//    if err == nil { // resp is now filled
3268//        fmt.Println(resp)
3269//    }
3270//
3271// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3272func (c *EMR) ModifyInstanceFleetRequest(input *ModifyInstanceFleetInput) (req *request.Request, output *ModifyInstanceFleetOutput) {
3273	op := &request.Operation{
3274		Name:       opModifyInstanceFleet,
3275		HTTPMethod: "POST",
3276		HTTPPath:   "/",
3277	}
3278
3279	if input == nil {
3280		input = &ModifyInstanceFleetInput{}
3281	}
3282
3283	output = &ModifyInstanceFleetOutput{}
3284	req = c.newRequest(op, input, output)
3285	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3286	return
3287}
3288
3289// ModifyInstanceFleet API operation for Amazon Elastic MapReduce.
3290//
3291// Modifies the target On-Demand and target Spot capacities for the instance
3292// fleet with the specified InstanceFleetID within the cluster specified using
3293// ClusterID. The call either succeeds or fails atomically.
3294//
3295// The instance fleet configuration is available only in Amazon EMR versions
3296// 4.8.0 and later, excluding 5.0.x versions.
3297//
3298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3299// with awserr.Error's Code and Message methods to get detailed information about
3300// the error.
3301//
3302// See the AWS API reference guide for Amazon Elastic MapReduce's
3303// API operation ModifyInstanceFleet for usage and error information.
3304//
3305// Returned Error Types:
3306//   * InternalServerException
3307//   This exception occurs when there is an internal failure in the Amazon EMR
3308//   service.
3309//
3310//   * InvalidRequestException
3311//   This exception occurs when there is something wrong with user input.
3312//
3313// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3314func (c *EMR) ModifyInstanceFleet(input *ModifyInstanceFleetInput) (*ModifyInstanceFleetOutput, error) {
3315	req, out := c.ModifyInstanceFleetRequest(input)
3316	return out, req.Send()
3317}
3318
3319// ModifyInstanceFleetWithContext is the same as ModifyInstanceFleet with the addition of
3320// the ability to pass a context and additional request options.
3321//
3322// See ModifyInstanceFleet for details on how to use this API operation.
3323//
3324// The context must be non-nil and will be used for request cancellation. If
3325// the context is nil a panic will occur. In the future the SDK may create
3326// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3327// for more information on using Contexts.
3328func (c *EMR) ModifyInstanceFleetWithContext(ctx aws.Context, input *ModifyInstanceFleetInput, opts ...request.Option) (*ModifyInstanceFleetOutput, error) {
3329	req, out := c.ModifyInstanceFleetRequest(input)
3330	req.SetContext(ctx)
3331	req.ApplyOptions(opts...)
3332	return out, req.Send()
3333}
3334
3335const opModifyInstanceGroups = "ModifyInstanceGroups"
3336
3337// ModifyInstanceGroupsRequest generates a "aws/request.Request" representing the
3338// client's request for the ModifyInstanceGroups operation. The "output" return
3339// value will be populated with the request's response once the request completes
3340// successfully.
3341//
3342// Use "Send" method on the returned Request to send the API call to the service.
3343// the "output" return value is not valid until after Send returns without error.
3344//
3345// See ModifyInstanceGroups for more information on using the ModifyInstanceGroups
3346// API call, and error handling.
3347//
3348// This method is useful when you want to inject custom logic or configuration
3349// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3350//
3351//
3352//    // Example sending a request using the ModifyInstanceGroupsRequest method.
3353//    req, resp := client.ModifyInstanceGroupsRequest(params)
3354//
3355//    err := req.Send()
3356//    if err == nil { // resp is now filled
3357//        fmt.Println(resp)
3358//    }
3359//
3360// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3361func (c *EMR) ModifyInstanceGroupsRequest(input *ModifyInstanceGroupsInput) (req *request.Request, output *ModifyInstanceGroupsOutput) {
3362	op := &request.Operation{
3363		Name:       opModifyInstanceGroups,
3364		HTTPMethod: "POST",
3365		HTTPPath:   "/",
3366	}
3367
3368	if input == nil {
3369		input = &ModifyInstanceGroupsInput{}
3370	}
3371
3372	output = &ModifyInstanceGroupsOutput{}
3373	req = c.newRequest(op, input, output)
3374	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3375	return
3376}
3377
3378// ModifyInstanceGroups API operation for Amazon Elastic MapReduce.
3379//
3380// ModifyInstanceGroups modifies the number of nodes and configuration settings
3381// of an instance group. The input parameters include the new target instance
3382// count for the group and the instance group ID. The call will either succeed
3383// or fail atomically.
3384//
3385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3386// with awserr.Error's Code and Message methods to get detailed information about
3387// the error.
3388//
3389// See the AWS API reference guide for Amazon Elastic MapReduce's
3390// API operation ModifyInstanceGroups for usage and error information.
3391//
3392// Returned Error Types:
3393//   * InternalServerError
3394//   Indicates that an error occurred while processing the request and that the
3395//   request was not completed.
3396//
3397// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3398func (c *EMR) ModifyInstanceGroups(input *ModifyInstanceGroupsInput) (*ModifyInstanceGroupsOutput, error) {
3399	req, out := c.ModifyInstanceGroupsRequest(input)
3400	return out, req.Send()
3401}
3402
3403// ModifyInstanceGroupsWithContext is the same as ModifyInstanceGroups with the addition of
3404// the ability to pass a context and additional request options.
3405//
3406// See ModifyInstanceGroups for details on how to use this API operation.
3407//
3408// The context must be non-nil and will be used for request cancellation. If
3409// the context is nil a panic will occur. In the future the SDK may create
3410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3411// for more information on using Contexts.
3412func (c *EMR) ModifyInstanceGroupsWithContext(ctx aws.Context, input *ModifyInstanceGroupsInput, opts ...request.Option) (*ModifyInstanceGroupsOutput, error) {
3413	req, out := c.ModifyInstanceGroupsRequest(input)
3414	req.SetContext(ctx)
3415	req.ApplyOptions(opts...)
3416	return out, req.Send()
3417}
3418
3419const opPutAutoScalingPolicy = "PutAutoScalingPolicy"
3420
3421// PutAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3422// client's request for the PutAutoScalingPolicy operation. The "output" return
3423// value will be populated with the request's response once the request completes
3424// successfully.
3425//
3426// Use "Send" method on the returned Request to send the API call to the service.
3427// the "output" return value is not valid until after Send returns without error.
3428//
3429// See PutAutoScalingPolicy for more information on using the PutAutoScalingPolicy
3430// API call, and error handling.
3431//
3432// This method is useful when you want to inject custom logic or configuration
3433// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3434//
3435//
3436//    // Example sending a request using the PutAutoScalingPolicyRequest method.
3437//    req, resp := client.PutAutoScalingPolicyRequest(params)
3438//
3439//    err := req.Send()
3440//    if err == nil { // resp is now filled
3441//        fmt.Println(resp)
3442//    }
3443//
3444// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3445func (c *EMR) PutAutoScalingPolicyRequest(input *PutAutoScalingPolicyInput) (req *request.Request, output *PutAutoScalingPolicyOutput) {
3446	op := &request.Operation{
3447		Name:       opPutAutoScalingPolicy,
3448		HTTPMethod: "POST",
3449		HTTPPath:   "/",
3450	}
3451
3452	if input == nil {
3453		input = &PutAutoScalingPolicyInput{}
3454	}
3455
3456	output = &PutAutoScalingPolicyOutput{}
3457	req = c.newRequest(op, input, output)
3458	return
3459}
3460
3461// PutAutoScalingPolicy API operation for Amazon Elastic MapReduce.
3462//
3463// Creates or updates an automatic scaling policy for a core instance group
3464// or task instance group in an Amazon EMR cluster. The automatic scaling policy
3465// defines how an instance group dynamically adds and terminates EC2 instances
3466// in response to the value of a CloudWatch metric.
3467//
3468// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3469// with awserr.Error's Code and Message methods to get detailed information about
3470// the error.
3471//
3472// See the AWS API reference guide for Amazon Elastic MapReduce's
3473// API operation PutAutoScalingPolicy for usage and error information.
3474// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3475func (c *EMR) PutAutoScalingPolicy(input *PutAutoScalingPolicyInput) (*PutAutoScalingPolicyOutput, error) {
3476	req, out := c.PutAutoScalingPolicyRequest(input)
3477	return out, req.Send()
3478}
3479
3480// PutAutoScalingPolicyWithContext is the same as PutAutoScalingPolicy with the addition of
3481// the ability to pass a context and additional request options.
3482//
3483// See PutAutoScalingPolicy for details on how to use this API operation.
3484//
3485// The context must be non-nil and will be used for request cancellation. If
3486// the context is nil a panic will occur. In the future the SDK may create
3487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3488// for more information on using Contexts.
3489func (c *EMR) PutAutoScalingPolicyWithContext(ctx aws.Context, input *PutAutoScalingPolicyInput, opts ...request.Option) (*PutAutoScalingPolicyOutput, error) {
3490	req, out := c.PutAutoScalingPolicyRequest(input)
3491	req.SetContext(ctx)
3492	req.ApplyOptions(opts...)
3493	return out, req.Send()
3494}
3495
3496const opPutBlockPublicAccessConfiguration = "PutBlockPublicAccessConfiguration"
3497
3498// PutBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
3499// client's request for the PutBlockPublicAccessConfiguration operation. The "output" return
3500// value will be populated with the request's response once the request completes
3501// successfully.
3502//
3503// Use "Send" method on the returned Request to send the API call to the service.
3504// the "output" return value is not valid until after Send returns without error.
3505//
3506// See PutBlockPublicAccessConfiguration for more information on using the PutBlockPublicAccessConfiguration
3507// API call, and error handling.
3508//
3509// This method is useful when you want to inject custom logic or configuration
3510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3511//
3512//
3513//    // Example sending a request using the PutBlockPublicAccessConfigurationRequest method.
3514//    req, resp := client.PutBlockPublicAccessConfigurationRequest(params)
3515//
3516//    err := req.Send()
3517//    if err == nil { // resp is now filled
3518//        fmt.Println(resp)
3519//    }
3520//
3521// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3522func (c *EMR) PutBlockPublicAccessConfigurationRequest(input *PutBlockPublicAccessConfigurationInput) (req *request.Request, output *PutBlockPublicAccessConfigurationOutput) {
3523	op := &request.Operation{
3524		Name:       opPutBlockPublicAccessConfiguration,
3525		HTTPMethod: "POST",
3526		HTTPPath:   "/",
3527	}
3528
3529	if input == nil {
3530		input = &PutBlockPublicAccessConfigurationInput{}
3531	}
3532
3533	output = &PutBlockPublicAccessConfigurationOutput{}
3534	req = c.newRequest(op, input, output)
3535	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3536	return
3537}
3538
3539// PutBlockPublicAccessConfiguration API operation for Amazon Elastic MapReduce.
3540//
3541// Creates or updates an Amazon EMR block public access configuration for your
3542// AWS account in the current Region. For more information see Configure Block
3543// Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
3544// in the Amazon EMR Management Guide.
3545//
3546// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3547// with awserr.Error's Code and Message methods to get detailed information about
3548// the error.
3549//
3550// See the AWS API reference guide for Amazon Elastic MapReduce's
3551// API operation PutBlockPublicAccessConfiguration for usage and error information.
3552//
3553// Returned Error Types:
3554//   * InternalServerException
3555//   This exception occurs when there is an internal failure in the Amazon EMR
3556//   service.
3557//
3558//   * InvalidRequestException
3559//   This exception occurs when there is something wrong with user input.
3560//
3561// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3562func (c *EMR) PutBlockPublicAccessConfiguration(input *PutBlockPublicAccessConfigurationInput) (*PutBlockPublicAccessConfigurationOutput, error) {
3563	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3564	return out, req.Send()
3565}
3566
3567// PutBlockPublicAccessConfigurationWithContext is the same as PutBlockPublicAccessConfiguration with the addition of
3568// the ability to pass a context and additional request options.
3569//
3570// See PutBlockPublicAccessConfiguration for details on how to use this API operation.
3571//
3572// The context must be non-nil and will be used for request cancellation. If
3573// the context is nil a panic will occur. In the future the SDK may create
3574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3575// for more information on using Contexts.
3576func (c *EMR) PutBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *PutBlockPublicAccessConfigurationInput, opts ...request.Option) (*PutBlockPublicAccessConfigurationOutput, error) {
3577	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3578	req.SetContext(ctx)
3579	req.ApplyOptions(opts...)
3580	return out, req.Send()
3581}
3582
3583const opPutManagedScalingPolicy = "PutManagedScalingPolicy"
3584
3585// PutManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3586// client's request for the PutManagedScalingPolicy operation. The "output" return
3587// value will be populated with the request's response once the request completes
3588// successfully.
3589//
3590// Use "Send" method on the returned Request to send the API call to the service.
3591// the "output" return value is not valid until after Send returns without error.
3592//
3593// See PutManagedScalingPolicy for more information on using the PutManagedScalingPolicy
3594// API call, and error handling.
3595//
3596// This method is useful when you want to inject custom logic or configuration
3597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3598//
3599//
3600//    // Example sending a request using the PutManagedScalingPolicyRequest method.
3601//    req, resp := client.PutManagedScalingPolicyRequest(params)
3602//
3603//    err := req.Send()
3604//    if err == nil { // resp is now filled
3605//        fmt.Println(resp)
3606//    }
3607//
3608// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3609func (c *EMR) PutManagedScalingPolicyRequest(input *PutManagedScalingPolicyInput) (req *request.Request, output *PutManagedScalingPolicyOutput) {
3610	op := &request.Operation{
3611		Name:       opPutManagedScalingPolicy,
3612		HTTPMethod: "POST",
3613		HTTPPath:   "/",
3614	}
3615
3616	if input == nil {
3617		input = &PutManagedScalingPolicyInput{}
3618	}
3619
3620	output = &PutManagedScalingPolicyOutput{}
3621	req = c.newRequest(op, input, output)
3622	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3623	return
3624}
3625
3626// PutManagedScalingPolicy API operation for Amazon Elastic MapReduce.
3627//
3628// Creates or updates a managed scaling policy for an Amazon EMR cluster. The
3629// managed scaling policy defines the limits for resources, such as EC2 instances
3630// that can be added or terminated from a cluster. The policy only applies to
3631// the core and task nodes. The master node cannot be scaled after initial configuration.
3632//
3633// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3634// with awserr.Error's Code and Message methods to get detailed information about
3635// the error.
3636//
3637// See the AWS API reference guide for Amazon Elastic MapReduce's
3638// API operation PutManagedScalingPolicy for usage and error information.
3639// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3640func (c *EMR) PutManagedScalingPolicy(input *PutManagedScalingPolicyInput) (*PutManagedScalingPolicyOutput, error) {
3641	req, out := c.PutManagedScalingPolicyRequest(input)
3642	return out, req.Send()
3643}
3644
3645// PutManagedScalingPolicyWithContext is the same as PutManagedScalingPolicy with the addition of
3646// the ability to pass a context and additional request options.
3647//
3648// See PutManagedScalingPolicy for details on how to use this API operation.
3649//
3650// The context must be non-nil and will be used for request cancellation. If
3651// the context is nil a panic will occur. In the future the SDK may create
3652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3653// for more information on using Contexts.
3654func (c *EMR) PutManagedScalingPolicyWithContext(ctx aws.Context, input *PutManagedScalingPolicyInput, opts ...request.Option) (*PutManagedScalingPolicyOutput, error) {
3655	req, out := c.PutManagedScalingPolicyRequest(input)
3656	req.SetContext(ctx)
3657	req.ApplyOptions(opts...)
3658	return out, req.Send()
3659}
3660
3661const opRemoveAutoScalingPolicy = "RemoveAutoScalingPolicy"
3662
3663// RemoveAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3664// client's request for the RemoveAutoScalingPolicy operation. The "output" return
3665// value will be populated with the request's response once the request completes
3666// successfully.
3667//
3668// Use "Send" method on the returned Request to send the API call to the service.
3669// the "output" return value is not valid until after Send returns without error.
3670//
3671// See RemoveAutoScalingPolicy for more information on using the RemoveAutoScalingPolicy
3672// API call, and error handling.
3673//
3674// This method is useful when you want to inject custom logic or configuration
3675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3676//
3677//
3678//    // Example sending a request using the RemoveAutoScalingPolicyRequest method.
3679//    req, resp := client.RemoveAutoScalingPolicyRequest(params)
3680//
3681//    err := req.Send()
3682//    if err == nil { // resp is now filled
3683//        fmt.Println(resp)
3684//    }
3685//
3686// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
3687func (c *EMR) RemoveAutoScalingPolicyRequest(input *RemoveAutoScalingPolicyInput) (req *request.Request, output *RemoveAutoScalingPolicyOutput) {
3688	op := &request.Operation{
3689		Name:       opRemoveAutoScalingPolicy,
3690		HTTPMethod: "POST",
3691		HTTPPath:   "/",
3692	}
3693
3694	if input == nil {
3695		input = &RemoveAutoScalingPolicyInput{}
3696	}
3697
3698	output = &RemoveAutoScalingPolicyOutput{}
3699	req = c.newRequest(op, input, output)
3700	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3701	return
3702}
3703
3704// RemoveAutoScalingPolicy API operation for Amazon Elastic MapReduce.
3705//
3706// Removes an automatic scaling policy from a specified instance group within
3707// an EMR cluster.
3708//
3709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3710// with awserr.Error's Code and Message methods to get detailed information about
3711// the error.
3712//
3713// See the AWS API reference guide for Amazon Elastic MapReduce's
3714// API operation RemoveAutoScalingPolicy for usage and error information.
3715// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
3716func (c *EMR) RemoveAutoScalingPolicy(input *RemoveAutoScalingPolicyInput) (*RemoveAutoScalingPolicyOutput, error) {
3717	req, out := c.RemoveAutoScalingPolicyRequest(input)
3718	return out, req.Send()
3719}
3720
3721// RemoveAutoScalingPolicyWithContext is the same as RemoveAutoScalingPolicy with the addition of
3722// the ability to pass a context and additional request options.
3723//
3724// See RemoveAutoScalingPolicy for details on how to use this API operation.
3725//
3726// The context must be non-nil and will be used for request cancellation. If
3727// the context is nil a panic will occur. In the future the SDK may create
3728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3729// for more information on using Contexts.
3730func (c *EMR) RemoveAutoScalingPolicyWithContext(ctx aws.Context, input *RemoveAutoScalingPolicyInput, opts ...request.Option) (*RemoveAutoScalingPolicyOutput, error) {
3731	req, out := c.RemoveAutoScalingPolicyRequest(input)
3732	req.SetContext(ctx)
3733	req.ApplyOptions(opts...)
3734	return out, req.Send()
3735}
3736
3737const opRemoveManagedScalingPolicy = "RemoveManagedScalingPolicy"
3738
3739// RemoveManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3740// client's request for the RemoveManagedScalingPolicy operation. The "output" return
3741// value will be populated with the request's response once the request completes
3742// successfully.
3743//
3744// Use "Send" method on the returned Request to send the API call to the service.
3745// the "output" return value is not valid until after Send returns without error.
3746//
3747// See RemoveManagedScalingPolicy for more information on using the RemoveManagedScalingPolicy
3748// API call, and error handling.
3749//
3750// This method is useful when you want to inject custom logic or configuration
3751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3752//
3753//
3754//    // Example sending a request using the RemoveManagedScalingPolicyRequest method.
3755//    req, resp := client.RemoveManagedScalingPolicyRequest(params)
3756//
3757//    err := req.Send()
3758//    if err == nil { // resp is now filled
3759//        fmt.Println(resp)
3760//    }
3761//
3762// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
3763func (c *EMR) RemoveManagedScalingPolicyRequest(input *RemoveManagedScalingPolicyInput) (req *request.Request, output *RemoveManagedScalingPolicyOutput) {
3764	op := &request.Operation{
3765		Name:       opRemoveManagedScalingPolicy,
3766		HTTPMethod: "POST",
3767		HTTPPath:   "/",
3768	}
3769
3770	if input == nil {
3771		input = &RemoveManagedScalingPolicyInput{}
3772	}
3773
3774	output = &RemoveManagedScalingPolicyOutput{}
3775	req = c.newRequest(op, input, output)
3776	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3777	return
3778}
3779
3780// RemoveManagedScalingPolicy API operation for Amazon Elastic MapReduce.
3781//
3782// Removes a managed scaling policy from a specified EMR cluster.
3783//
3784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3785// with awserr.Error's Code and Message methods to get detailed information about
3786// the error.
3787//
3788// See the AWS API reference guide for Amazon Elastic MapReduce's
3789// API operation RemoveManagedScalingPolicy for usage and error information.
3790// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
3791func (c *EMR) RemoveManagedScalingPolicy(input *RemoveManagedScalingPolicyInput) (*RemoveManagedScalingPolicyOutput, error) {
3792	req, out := c.RemoveManagedScalingPolicyRequest(input)
3793	return out, req.Send()
3794}
3795
3796// RemoveManagedScalingPolicyWithContext is the same as RemoveManagedScalingPolicy with the addition of
3797// the ability to pass a context and additional request options.
3798//
3799// See RemoveManagedScalingPolicy for details on how to use this API operation.
3800//
3801// The context must be non-nil and will be used for request cancellation. If
3802// the context is nil a panic will occur. In the future the SDK may create
3803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3804// for more information on using Contexts.
3805func (c *EMR) RemoveManagedScalingPolicyWithContext(ctx aws.Context, input *RemoveManagedScalingPolicyInput, opts ...request.Option) (*RemoveManagedScalingPolicyOutput, error) {
3806	req, out := c.RemoveManagedScalingPolicyRequest(input)
3807	req.SetContext(ctx)
3808	req.ApplyOptions(opts...)
3809	return out, req.Send()
3810}
3811
3812const opRemoveTags = "RemoveTags"
3813
3814// RemoveTagsRequest generates a "aws/request.Request" representing the
3815// client's request for the RemoveTags operation. The "output" return
3816// value will be populated with the request's response once the request completes
3817// successfully.
3818//
3819// Use "Send" method on the returned Request to send the API call to the service.
3820// the "output" return value is not valid until after Send returns without error.
3821//
3822// See RemoveTags for more information on using the RemoveTags
3823// API call, and error handling.
3824//
3825// This method is useful when you want to inject custom logic or configuration
3826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3827//
3828//
3829//    // Example sending a request using the RemoveTagsRequest method.
3830//    req, resp := client.RemoveTagsRequest(params)
3831//
3832//    err := req.Send()
3833//    if err == nil { // resp is now filled
3834//        fmt.Println(resp)
3835//    }
3836//
3837// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
3838func (c *EMR) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
3839	op := &request.Operation{
3840		Name:       opRemoveTags,
3841		HTTPMethod: "POST",
3842		HTTPPath:   "/",
3843	}
3844
3845	if input == nil {
3846		input = &RemoveTagsInput{}
3847	}
3848
3849	output = &RemoveTagsOutput{}
3850	req = c.newRequest(op, input, output)
3851	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3852	return
3853}
3854
3855// RemoveTags API operation for Amazon Elastic MapReduce.
3856//
3857// Removes tags from an Amazon EMR resource. Tags make it easier to associate
3858// clusters in various ways, such as grouping clusters to track your Amazon
3859// EMR resource allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
3860//
3861// The following example removes the stack tag with value Prod from a cluster:
3862//
3863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3864// with awserr.Error's Code and Message methods to get detailed information about
3865// the error.
3866//
3867// See the AWS API reference guide for Amazon Elastic MapReduce's
3868// API operation RemoveTags for usage and error information.
3869//
3870// Returned Error Types:
3871//   * InternalServerException
3872//   This exception occurs when there is an internal failure in the Amazon EMR
3873//   service.
3874//
3875//   * InvalidRequestException
3876//   This exception occurs when there is something wrong with user input.
3877//
3878// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
3879func (c *EMR) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
3880	req, out := c.RemoveTagsRequest(input)
3881	return out, req.Send()
3882}
3883
3884// RemoveTagsWithContext is the same as RemoveTags with the addition of
3885// the ability to pass a context and additional request options.
3886//
3887// See RemoveTags for details on how to use this API operation.
3888//
3889// The context must be non-nil and will be used for request cancellation. If
3890// the context is nil a panic will occur. In the future the SDK may create
3891// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3892// for more information on using Contexts.
3893func (c *EMR) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
3894	req, out := c.RemoveTagsRequest(input)
3895	req.SetContext(ctx)
3896	req.ApplyOptions(opts...)
3897	return out, req.Send()
3898}
3899
3900const opRunJobFlow = "RunJobFlow"
3901
3902// RunJobFlowRequest generates a "aws/request.Request" representing the
3903// client's request for the RunJobFlow operation. The "output" return
3904// value will be populated with the request's response once the request completes
3905// successfully.
3906//
3907// Use "Send" method on the returned Request to send the API call to the service.
3908// the "output" return value is not valid until after Send returns without error.
3909//
3910// See RunJobFlow for more information on using the RunJobFlow
3911// API call, and error handling.
3912//
3913// This method is useful when you want to inject custom logic or configuration
3914// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3915//
3916//
3917//    // Example sending a request using the RunJobFlowRequest method.
3918//    req, resp := client.RunJobFlowRequest(params)
3919//
3920//    err := req.Send()
3921//    if err == nil { // resp is now filled
3922//        fmt.Println(resp)
3923//    }
3924//
3925// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
3926func (c *EMR) RunJobFlowRequest(input *RunJobFlowInput) (req *request.Request, output *RunJobFlowOutput) {
3927	op := &request.Operation{
3928		Name:       opRunJobFlow,
3929		HTTPMethod: "POST",
3930		HTTPPath:   "/",
3931	}
3932
3933	if input == nil {
3934		input = &RunJobFlowInput{}
3935	}
3936
3937	output = &RunJobFlowOutput{}
3938	req = c.newRequest(op, input, output)
3939	return
3940}
3941
3942// RunJobFlow API operation for Amazon Elastic MapReduce.
3943//
3944// RunJobFlow creates and starts running a new cluster (job flow). The cluster
3945// runs the steps specified. After the steps complete, the cluster stops and
3946// the HDFS partition is lost. To prevent loss of data, configure the last step
3947// of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig
3948// KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions
3949// to the WAITING state rather than shutting down after the steps have completed.
3950//
3951// For additional protection, you can set the JobFlowInstancesConfig TerminationProtected
3952// parameter to TRUE to lock the cluster and prevent it from being terminated
3953// by API call, user intervention, or in the event of a job flow error.
3954//
3955// A maximum of 256 steps are allowed in each job flow.
3956//
3957// If your cluster is long-running (such as a Hive data warehouse) or complex,
3958// you may require more than 256 steps to process your data. You can bypass
3959// the 256-step limitation in various ways, including using the SSH shell to
3960// connect to the master node and submitting queries directly to the software
3961// running on the master node, such as Hive and Hadoop. For more information
3962// on how to do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
3963// in the Amazon EMR Management Guide.
3964//
3965// For long running clusters, we recommend that you periodically store your
3966// results.
3967//
3968// The instance fleets configuration is available only in Amazon EMR versions
3969// 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain
3970// InstanceFleets parameters or InstanceGroups parameters, but not both.
3971//
3972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3973// with awserr.Error's Code and Message methods to get detailed information about
3974// the error.
3975//
3976// See the AWS API reference guide for Amazon Elastic MapReduce's
3977// API operation RunJobFlow for usage and error information.
3978//
3979// Returned Error Types:
3980//   * InternalServerError
3981//   Indicates that an error occurred while processing the request and that the
3982//   request was not completed.
3983//
3984// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
3985func (c *EMR) RunJobFlow(input *RunJobFlowInput) (*RunJobFlowOutput, error) {
3986	req, out := c.RunJobFlowRequest(input)
3987	return out, req.Send()
3988}
3989
3990// RunJobFlowWithContext is the same as RunJobFlow with the addition of
3991// the ability to pass a context and additional request options.
3992//
3993// See RunJobFlow for details on how to use this API operation.
3994//
3995// The context must be non-nil and will be used for request cancellation. If
3996// the context is nil a panic will occur. In the future the SDK may create
3997// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3998// for more information on using Contexts.
3999func (c *EMR) RunJobFlowWithContext(ctx aws.Context, input *RunJobFlowInput, opts ...request.Option) (*RunJobFlowOutput, error) {
4000	req, out := c.RunJobFlowRequest(input)
4001	req.SetContext(ctx)
4002	req.ApplyOptions(opts...)
4003	return out, req.Send()
4004}
4005
4006const opSetTerminationProtection = "SetTerminationProtection"
4007
4008// SetTerminationProtectionRequest generates a "aws/request.Request" representing the
4009// client's request for the SetTerminationProtection operation. The "output" return
4010// value will be populated with the request's response once the request completes
4011// successfully.
4012//
4013// Use "Send" method on the returned Request to send the API call to the service.
4014// the "output" return value is not valid until after Send returns without error.
4015//
4016// See SetTerminationProtection for more information on using the SetTerminationProtection
4017// API call, and error handling.
4018//
4019// This method is useful when you want to inject custom logic or configuration
4020// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4021//
4022//
4023//    // Example sending a request using the SetTerminationProtectionRequest method.
4024//    req, resp := client.SetTerminationProtectionRequest(params)
4025//
4026//    err := req.Send()
4027//    if err == nil { // resp is now filled
4028//        fmt.Println(resp)
4029//    }
4030//
4031// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4032func (c *EMR) SetTerminationProtectionRequest(input *SetTerminationProtectionInput) (req *request.Request, output *SetTerminationProtectionOutput) {
4033	op := &request.Operation{
4034		Name:       opSetTerminationProtection,
4035		HTTPMethod: "POST",
4036		HTTPPath:   "/",
4037	}
4038
4039	if input == nil {
4040		input = &SetTerminationProtectionInput{}
4041	}
4042
4043	output = &SetTerminationProtectionOutput{}
4044	req = c.newRequest(op, input, output)
4045	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4046	return
4047}
4048
4049// SetTerminationProtection API operation for Amazon Elastic MapReduce.
4050//
4051// SetTerminationProtection locks a cluster (job flow) so the EC2 instances
4052// in the cluster cannot be terminated by user intervention, an API call, or
4053// in the event of a job-flow error. The cluster still terminates upon successful
4054// completion of the job flow. Calling SetTerminationProtection on a cluster
4055// is similar to calling the Amazon EC2 DisableAPITermination API on all EC2
4056// instances in a cluster.
4057//
4058// SetTerminationProtection is used to prevent accidental termination of a cluster
4059// and to ensure that in the event of an error, the instances persist so that
4060// you can recover any data stored in their ephemeral instance storage.
4061//
4062// To terminate a cluster that has been locked by setting SetTerminationProtection
4063// to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection
4064// in which you set the value to false.
4065//
4066// For more information, seeManaging Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)
4067// in the Amazon EMR Management Guide.
4068//
4069// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4070// with awserr.Error's Code and Message methods to get detailed information about
4071// the error.
4072//
4073// See the AWS API reference guide for Amazon Elastic MapReduce's
4074// API operation SetTerminationProtection for usage and error information.
4075//
4076// Returned Error Types:
4077//   * InternalServerError
4078//   Indicates that an error occurred while processing the request and that the
4079//   request was not completed.
4080//
4081// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4082func (c *EMR) SetTerminationProtection(input *SetTerminationProtectionInput) (*SetTerminationProtectionOutput, error) {
4083	req, out := c.SetTerminationProtectionRequest(input)
4084	return out, req.Send()
4085}
4086
4087// SetTerminationProtectionWithContext is the same as SetTerminationProtection with the addition of
4088// the ability to pass a context and additional request options.
4089//
4090// See SetTerminationProtection for details on how to use this API operation.
4091//
4092// The context must be non-nil and will be used for request cancellation. If
4093// the context is nil a panic will occur. In the future the SDK may create
4094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4095// for more information on using Contexts.
4096func (c *EMR) SetTerminationProtectionWithContext(ctx aws.Context, input *SetTerminationProtectionInput, opts ...request.Option) (*SetTerminationProtectionOutput, error) {
4097	req, out := c.SetTerminationProtectionRequest(input)
4098	req.SetContext(ctx)
4099	req.ApplyOptions(opts...)
4100	return out, req.Send()
4101}
4102
4103const opSetVisibleToAllUsers = "SetVisibleToAllUsers"
4104
4105// SetVisibleToAllUsersRequest generates a "aws/request.Request" representing the
4106// client's request for the SetVisibleToAllUsers operation. The "output" return
4107// value will be populated with the request's response once the request completes
4108// successfully.
4109//
4110// Use "Send" method on the returned Request to send the API call to the service.
4111// the "output" return value is not valid until after Send returns without error.
4112//
4113// See SetVisibleToAllUsers for more information on using the SetVisibleToAllUsers
4114// API call, and error handling.
4115//
4116// This method is useful when you want to inject custom logic or configuration
4117// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4118//
4119//
4120//    // Example sending a request using the SetVisibleToAllUsersRequest method.
4121//    req, resp := client.SetVisibleToAllUsersRequest(params)
4122//
4123//    err := req.Send()
4124//    if err == nil { // resp is now filled
4125//        fmt.Println(resp)
4126//    }
4127//
4128// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4129func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req *request.Request, output *SetVisibleToAllUsersOutput) {
4130	op := &request.Operation{
4131		Name:       opSetVisibleToAllUsers,
4132		HTTPMethod: "POST",
4133		HTTPPath:   "/",
4134	}
4135
4136	if input == nil {
4137		input = &SetVisibleToAllUsersInput{}
4138	}
4139
4140	output = &SetVisibleToAllUsersOutput{}
4141	req = c.newRequest(op, input, output)
4142	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4143	return
4144}
4145
4146// SetVisibleToAllUsers API operation for Amazon Elastic MapReduce.
4147//
4148// Sets the Cluster$VisibleToAllUsers value, which determines whether the cluster
4149// is visible to all IAM users of the AWS account associated with the cluster.
4150// Only the IAM user who created the cluster or the AWS account root user can
4151// call this action. The default value, true, indicates that all IAM users in
4152// the AWS account can perform cluster actions if they have the proper IAM policy
4153// permissions. If set to false, only the IAM user that created the cluster
4154// can perform actions. This action works on running clusters. You can override
4155// the default true setting when you create a cluster by using the VisibleToAllUsers
4156// parameter with RunJobFlow.
4157//
4158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4159// with awserr.Error's Code and Message methods to get detailed information about
4160// the error.
4161//
4162// See the AWS API reference guide for Amazon Elastic MapReduce's
4163// API operation SetVisibleToAllUsers for usage and error information.
4164//
4165// Returned Error Types:
4166//   * InternalServerError
4167//   Indicates that an error occurred while processing the request and that the
4168//   request was not completed.
4169//
4170// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4171func (c *EMR) SetVisibleToAllUsers(input *SetVisibleToAllUsersInput) (*SetVisibleToAllUsersOutput, error) {
4172	req, out := c.SetVisibleToAllUsersRequest(input)
4173	return out, req.Send()
4174}
4175
4176// SetVisibleToAllUsersWithContext is the same as SetVisibleToAllUsers with the addition of
4177// the ability to pass a context and additional request options.
4178//
4179// See SetVisibleToAllUsers for details on how to use this API operation.
4180//
4181// The context must be non-nil and will be used for request cancellation. If
4182// the context is nil a panic will occur. In the future the SDK may create
4183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4184// for more information on using Contexts.
4185func (c *EMR) SetVisibleToAllUsersWithContext(ctx aws.Context, input *SetVisibleToAllUsersInput, opts ...request.Option) (*SetVisibleToAllUsersOutput, error) {
4186	req, out := c.SetVisibleToAllUsersRequest(input)
4187	req.SetContext(ctx)
4188	req.ApplyOptions(opts...)
4189	return out, req.Send()
4190}
4191
4192const opStartNotebookExecution = "StartNotebookExecution"
4193
4194// StartNotebookExecutionRequest generates a "aws/request.Request" representing the
4195// client's request for the StartNotebookExecution operation. The "output" return
4196// value will be populated with the request's response once the request completes
4197// successfully.
4198//
4199// Use "Send" method on the returned Request to send the API call to the service.
4200// the "output" return value is not valid until after Send returns without error.
4201//
4202// See StartNotebookExecution for more information on using the StartNotebookExecution
4203// API call, and error handling.
4204//
4205// This method is useful when you want to inject custom logic or configuration
4206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4207//
4208//
4209//    // Example sending a request using the StartNotebookExecutionRequest method.
4210//    req, resp := client.StartNotebookExecutionRequest(params)
4211//
4212//    err := req.Send()
4213//    if err == nil { // resp is now filled
4214//        fmt.Println(resp)
4215//    }
4216//
4217// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4218func (c *EMR) StartNotebookExecutionRequest(input *StartNotebookExecutionInput) (req *request.Request, output *StartNotebookExecutionOutput) {
4219	op := &request.Operation{
4220		Name:       opStartNotebookExecution,
4221		HTTPMethod: "POST",
4222		HTTPPath:   "/",
4223	}
4224
4225	if input == nil {
4226		input = &StartNotebookExecutionInput{}
4227	}
4228
4229	output = &StartNotebookExecutionOutput{}
4230	req = c.newRequest(op, input, output)
4231	return
4232}
4233
4234// StartNotebookExecution API operation for Amazon Elastic MapReduce.
4235//
4236// Starts a notebook execution.
4237//
4238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4239// with awserr.Error's Code and Message methods to get detailed information about
4240// the error.
4241//
4242// See the AWS API reference guide for Amazon Elastic MapReduce's
4243// API operation StartNotebookExecution for usage and error information.
4244//
4245// Returned Error Types:
4246//   * InternalServerException
4247//   This exception occurs when there is an internal failure in the Amazon EMR
4248//   service.
4249//
4250//   * InvalidRequestException
4251//   This exception occurs when there is something wrong with user input.
4252//
4253// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4254func (c *EMR) StartNotebookExecution(input *StartNotebookExecutionInput) (*StartNotebookExecutionOutput, error) {
4255	req, out := c.StartNotebookExecutionRequest(input)
4256	return out, req.Send()
4257}
4258
4259// StartNotebookExecutionWithContext is the same as StartNotebookExecution with the addition of
4260// the ability to pass a context and additional request options.
4261//
4262// See StartNotebookExecution for details on how to use this API operation.
4263//
4264// The context must be non-nil and will be used for request cancellation. If
4265// the context is nil a panic will occur. In the future the SDK may create
4266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4267// for more information on using Contexts.
4268func (c *EMR) StartNotebookExecutionWithContext(ctx aws.Context, input *StartNotebookExecutionInput, opts ...request.Option) (*StartNotebookExecutionOutput, error) {
4269	req, out := c.StartNotebookExecutionRequest(input)
4270	req.SetContext(ctx)
4271	req.ApplyOptions(opts...)
4272	return out, req.Send()
4273}
4274
4275const opStopNotebookExecution = "StopNotebookExecution"
4276
4277// StopNotebookExecutionRequest generates a "aws/request.Request" representing the
4278// client's request for the StopNotebookExecution operation. The "output" return
4279// value will be populated with the request's response once the request completes
4280// successfully.
4281//
4282// Use "Send" method on the returned Request to send the API call to the service.
4283// the "output" return value is not valid until after Send returns without error.
4284//
4285// See StopNotebookExecution for more information on using the StopNotebookExecution
4286// API call, and error handling.
4287//
4288// This method is useful when you want to inject custom logic or configuration
4289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4290//
4291//
4292//    // Example sending a request using the StopNotebookExecutionRequest method.
4293//    req, resp := client.StopNotebookExecutionRequest(params)
4294//
4295//    err := req.Send()
4296//    if err == nil { // resp is now filled
4297//        fmt.Println(resp)
4298//    }
4299//
4300// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4301func (c *EMR) StopNotebookExecutionRequest(input *StopNotebookExecutionInput) (req *request.Request, output *StopNotebookExecutionOutput) {
4302	op := &request.Operation{
4303		Name:       opStopNotebookExecution,
4304		HTTPMethod: "POST",
4305		HTTPPath:   "/",
4306	}
4307
4308	if input == nil {
4309		input = &StopNotebookExecutionInput{}
4310	}
4311
4312	output = &StopNotebookExecutionOutput{}
4313	req = c.newRequest(op, input, output)
4314	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4315	return
4316}
4317
4318// StopNotebookExecution API operation for Amazon Elastic MapReduce.
4319//
4320// Stops a notebook execution.
4321//
4322// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4323// with awserr.Error's Code and Message methods to get detailed information about
4324// the error.
4325//
4326// See the AWS API reference guide for Amazon Elastic MapReduce's
4327// API operation StopNotebookExecution for usage and error information.
4328//
4329// Returned Error Types:
4330//   * InternalServerError
4331//   Indicates that an error occurred while processing the request and that the
4332//   request was not completed.
4333//
4334//   * InvalidRequestException
4335//   This exception occurs when there is something wrong with user input.
4336//
4337// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4338func (c *EMR) StopNotebookExecution(input *StopNotebookExecutionInput) (*StopNotebookExecutionOutput, error) {
4339	req, out := c.StopNotebookExecutionRequest(input)
4340	return out, req.Send()
4341}
4342
4343// StopNotebookExecutionWithContext is the same as StopNotebookExecution with the addition of
4344// the ability to pass a context and additional request options.
4345//
4346// See StopNotebookExecution for details on how to use this API operation.
4347//
4348// The context must be non-nil and will be used for request cancellation. If
4349// the context is nil a panic will occur. In the future the SDK may create
4350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4351// for more information on using Contexts.
4352func (c *EMR) StopNotebookExecutionWithContext(ctx aws.Context, input *StopNotebookExecutionInput, opts ...request.Option) (*StopNotebookExecutionOutput, error) {
4353	req, out := c.StopNotebookExecutionRequest(input)
4354	req.SetContext(ctx)
4355	req.ApplyOptions(opts...)
4356	return out, req.Send()
4357}
4358
4359const opTerminateJobFlows = "TerminateJobFlows"
4360
4361// TerminateJobFlowsRequest generates a "aws/request.Request" representing the
4362// client's request for the TerminateJobFlows operation. The "output" return
4363// value will be populated with the request's response once the request completes
4364// successfully.
4365//
4366// Use "Send" method on the returned Request to send the API call to the service.
4367// the "output" return value is not valid until after Send returns without error.
4368//
4369// See TerminateJobFlows for more information on using the TerminateJobFlows
4370// API call, and error handling.
4371//
4372// This method is useful when you want to inject custom logic or configuration
4373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4374//
4375//
4376//    // Example sending a request using the TerminateJobFlowsRequest method.
4377//    req, resp := client.TerminateJobFlowsRequest(params)
4378//
4379//    err := req.Send()
4380//    if err == nil { // resp is now filled
4381//        fmt.Println(resp)
4382//    }
4383//
4384// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4385func (c *EMR) TerminateJobFlowsRequest(input *TerminateJobFlowsInput) (req *request.Request, output *TerminateJobFlowsOutput) {
4386	op := &request.Operation{
4387		Name:       opTerminateJobFlows,
4388		HTTPMethod: "POST",
4389		HTTPPath:   "/",
4390	}
4391
4392	if input == nil {
4393		input = &TerminateJobFlowsInput{}
4394	}
4395
4396	output = &TerminateJobFlowsOutput{}
4397	req = c.newRequest(op, input, output)
4398	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4399	return
4400}
4401
4402// TerminateJobFlows API operation for Amazon Elastic MapReduce.
4403//
4404// TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow
4405// is shut down, any step not yet completed is canceled and the EC2 instances
4406// on which the cluster is running are stopped. Any log files not already saved
4407// are uploaded to Amazon S3 if a LogUri was specified when the cluster was
4408// created.
4409//
4410// The maximum number of clusters allowed is 10. The call to TerminateJobFlows
4411// is asynchronous. Depending on the configuration of the cluster, it may take
4412// up to 1-5 minutes for the cluster to completely terminate and release allocated
4413// resources, such as Amazon EC2 instances.
4414//
4415// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4416// with awserr.Error's Code and Message methods to get detailed information about
4417// the error.
4418//
4419// See the AWS API reference guide for Amazon Elastic MapReduce's
4420// API operation TerminateJobFlows for usage and error information.
4421//
4422// Returned Error Types:
4423//   * InternalServerError
4424//   Indicates that an error occurred while processing the request and that the
4425//   request was not completed.
4426//
4427// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4428func (c *EMR) TerminateJobFlows(input *TerminateJobFlowsInput) (*TerminateJobFlowsOutput, error) {
4429	req, out := c.TerminateJobFlowsRequest(input)
4430	return out, req.Send()
4431}
4432
4433// TerminateJobFlowsWithContext is the same as TerminateJobFlows with the addition of
4434// the ability to pass a context and additional request options.
4435//
4436// See TerminateJobFlows for details on how to use this API operation.
4437//
4438// The context must be non-nil and will be used for request cancellation. If
4439// the context is nil a panic will occur. In the future the SDK may create
4440// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4441// for more information on using Contexts.
4442func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobFlowsInput, opts ...request.Option) (*TerminateJobFlowsOutput, error) {
4443	req, out := c.TerminateJobFlowsRequest(input)
4444	req.SetContext(ctx)
4445	req.ApplyOptions(opts...)
4446	return out, req.Send()
4447}
4448
4449const opUpdateStudio = "UpdateStudio"
4450
4451// UpdateStudioRequest generates a "aws/request.Request" representing the
4452// client's request for the UpdateStudio operation. The "output" return
4453// value will be populated with the request's response once the request completes
4454// successfully.
4455//
4456// Use "Send" method on the returned Request to send the API call to the service.
4457// the "output" return value is not valid until after Send returns without error.
4458//
4459// See UpdateStudio for more information on using the UpdateStudio
4460// API call, and error handling.
4461//
4462// This method is useful when you want to inject custom logic or configuration
4463// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4464//
4465//
4466//    // Example sending a request using the UpdateStudioRequest method.
4467//    req, resp := client.UpdateStudioRequest(params)
4468//
4469//    err := req.Send()
4470//    if err == nil { // resp is now filled
4471//        fmt.Println(resp)
4472//    }
4473//
4474// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
4475func (c *EMR) UpdateStudioRequest(input *UpdateStudioInput) (req *request.Request, output *UpdateStudioOutput) {
4476	op := &request.Operation{
4477		Name:       opUpdateStudio,
4478		HTTPMethod: "POST",
4479		HTTPPath:   "/",
4480	}
4481
4482	if input == nil {
4483		input = &UpdateStudioInput{}
4484	}
4485
4486	output = &UpdateStudioOutput{}
4487	req = c.newRequest(op, input, output)
4488	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4489	return
4490}
4491
4492// UpdateStudio API operation for Amazon Elastic MapReduce.
4493//
4494// Updates an Amazon EMR Studio configuration, including attributes such as
4495// name, description, and subnets.
4496//
4497// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4498// with awserr.Error's Code and Message methods to get detailed information about
4499// the error.
4500//
4501// See the AWS API reference guide for Amazon Elastic MapReduce's
4502// API operation UpdateStudio for usage and error information.
4503//
4504// Returned Error Types:
4505//   * InternalServerException
4506//   This exception occurs when there is an internal failure in the Amazon EMR
4507//   service.
4508//
4509//   * InvalidRequestException
4510//   This exception occurs when there is something wrong with user input.
4511//
4512// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
4513func (c *EMR) UpdateStudio(input *UpdateStudioInput) (*UpdateStudioOutput, error) {
4514	req, out := c.UpdateStudioRequest(input)
4515	return out, req.Send()
4516}
4517
4518// UpdateStudioWithContext is the same as UpdateStudio with the addition of
4519// the ability to pass a context and additional request options.
4520//
4521// See UpdateStudio for details on how to use this API operation.
4522//
4523// The context must be non-nil and will be used for request cancellation. If
4524// the context is nil a panic will occur. In the future the SDK may create
4525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4526// for more information on using Contexts.
4527func (c *EMR) UpdateStudioWithContext(ctx aws.Context, input *UpdateStudioInput, opts ...request.Option) (*UpdateStudioOutput, error) {
4528	req, out := c.UpdateStudioRequest(input)
4529	req.SetContext(ctx)
4530	req.ApplyOptions(opts...)
4531	return out, req.Send()
4532}
4533
4534const opUpdateStudioSessionMapping = "UpdateStudioSessionMapping"
4535
4536// UpdateStudioSessionMappingRequest generates a "aws/request.Request" representing the
4537// client's request for the UpdateStudioSessionMapping operation. The "output" return
4538// value will be populated with the request's response once the request completes
4539// successfully.
4540//
4541// Use "Send" method on the returned Request to send the API call to the service.
4542// the "output" return value is not valid until after Send returns without error.
4543//
4544// See UpdateStudioSessionMapping for more information on using the UpdateStudioSessionMapping
4545// API call, and error handling.
4546//
4547// This method is useful when you want to inject custom logic or configuration
4548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4549//
4550//
4551//    // Example sending a request using the UpdateStudioSessionMappingRequest method.
4552//    req, resp := client.UpdateStudioSessionMappingRequest(params)
4553//
4554//    err := req.Send()
4555//    if err == nil { // resp is now filled
4556//        fmt.Println(resp)
4557//    }
4558//
4559// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
4560func (c *EMR) UpdateStudioSessionMappingRequest(input *UpdateStudioSessionMappingInput) (req *request.Request, output *UpdateStudioSessionMappingOutput) {
4561	op := &request.Operation{
4562		Name:       opUpdateStudioSessionMapping,
4563		HTTPMethod: "POST",
4564		HTTPPath:   "/",
4565	}
4566
4567	if input == nil {
4568		input = &UpdateStudioSessionMappingInput{}
4569	}
4570
4571	output = &UpdateStudioSessionMappingOutput{}
4572	req = c.newRequest(op, input, output)
4573	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4574	return
4575}
4576
4577// UpdateStudioSessionMapping API operation for Amazon Elastic MapReduce.
4578//
4579// Updates the session policy attached to the user or group for the specified
4580// Amazon EMR Studio.
4581//
4582// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4583// with awserr.Error's Code and Message methods to get detailed information about
4584// the error.
4585//
4586// See the AWS API reference guide for Amazon Elastic MapReduce's
4587// API operation UpdateStudioSessionMapping for usage and error information.
4588//
4589// Returned Error Types:
4590//   * InternalServerError
4591//   Indicates that an error occurred while processing the request and that the
4592//   request was not completed.
4593//
4594//   * InvalidRequestException
4595//   This exception occurs when there is something wrong with user input.
4596//
4597// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
4598func (c *EMR) UpdateStudioSessionMapping(input *UpdateStudioSessionMappingInput) (*UpdateStudioSessionMappingOutput, error) {
4599	req, out := c.UpdateStudioSessionMappingRequest(input)
4600	return out, req.Send()
4601}
4602
4603// UpdateStudioSessionMappingWithContext is the same as UpdateStudioSessionMapping with the addition of
4604// the ability to pass a context and additional request options.
4605//
4606// See UpdateStudioSessionMapping for details on how to use this API operation.
4607//
4608// The context must be non-nil and will be used for request cancellation. If
4609// the context is nil a panic will occur. In the future the SDK may create
4610// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4611// for more information on using Contexts.
4612func (c *EMR) UpdateStudioSessionMappingWithContext(ctx aws.Context, input *UpdateStudioSessionMappingInput, opts ...request.Option) (*UpdateStudioSessionMappingOutput, error) {
4613	req, out := c.UpdateStudioSessionMappingRequest(input)
4614	req.SetContext(ctx)
4615	req.ApplyOptions(opts...)
4616	return out, req.Send()
4617}
4618
4619type AddInstanceFleetInput struct {
4620	_ struct{} `type:"structure"`
4621
4622	// The unique identifier of the cluster.
4623	//
4624	// ClusterId is a required field
4625	ClusterId *string `type:"string" required:"true"`
4626
4627	// Specifies the configuration of the instance fleet.
4628	//
4629	// InstanceFleet is a required field
4630	InstanceFleet *InstanceFleetConfig `type:"structure" required:"true"`
4631}
4632
4633// String returns the string representation
4634func (s AddInstanceFleetInput) String() string {
4635	return awsutil.Prettify(s)
4636}
4637
4638// GoString returns the string representation
4639func (s AddInstanceFleetInput) GoString() string {
4640	return s.String()
4641}
4642
4643// Validate inspects the fields of the type to determine if they are valid.
4644func (s *AddInstanceFleetInput) Validate() error {
4645	invalidParams := request.ErrInvalidParams{Context: "AddInstanceFleetInput"}
4646	if s.ClusterId == nil {
4647		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
4648	}
4649	if s.InstanceFleet == nil {
4650		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
4651	}
4652	if s.InstanceFleet != nil {
4653		if err := s.InstanceFleet.Validate(); err != nil {
4654			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
4655		}
4656	}
4657
4658	if invalidParams.Len() > 0 {
4659		return invalidParams
4660	}
4661	return nil
4662}
4663
4664// SetClusterId sets the ClusterId field's value.
4665func (s *AddInstanceFleetInput) SetClusterId(v string) *AddInstanceFleetInput {
4666	s.ClusterId = &v
4667	return s
4668}
4669
4670// SetInstanceFleet sets the InstanceFleet field's value.
4671func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddInstanceFleetInput {
4672	s.InstanceFleet = v
4673	return s
4674}
4675
4676type AddInstanceFleetOutput struct {
4677	_ struct{} `type:"structure"`
4678
4679	// The Amazon Resource Name of the cluster.
4680	ClusterArn *string `min:"20" type:"string"`
4681
4682	// The unique identifier of the cluster.
4683	ClusterId *string `type:"string"`
4684
4685	// The unique identifier of the instance fleet.
4686	InstanceFleetId *string `type:"string"`
4687}
4688
4689// String returns the string representation
4690func (s AddInstanceFleetOutput) String() string {
4691	return awsutil.Prettify(s)
4692}
4693
4694// GoString returns the string representation
4695func (s AddInstanceFleetOutput) GoString() string {
4696	return s.String()
4697}
4698
4699// SetClusterArn sets the ClusterArn field's value.
4700func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput {
4701	s.ClusterArn = &v
4702	return s
4703}
4704
4705// SetClusterId sets the ClusterId field's value.
4706func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput {
4707	s.ClusterId = &v
4708	return s
4709}
4710
4711// SetInstanceFleetId sets the InstanceFleetId field's value.
4712func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetOutput {
4713	s.InstanceFleetId = &v
4714	return s
4715}
4716
4717// Input to an AddInstanceGroups call.
4718type AddInstanceGroupsInput struct {
4719	_ struct{} `type:"structure"`
4720
4721	// Instance groups to add.
4722	//
4723	// InstanceGroups is a required field
4724	InstanceGroups []*InstanceGroupConfig `type:"list" required:"true"`
4725
4726	// Job flow in which to add the instance groups.
4727	//
4728	// JobFlowId is a required field
4729	JobFlowId *string `type:"string" required:"true"`
4730}
4731
4732// String returns the string representation
4733func (s AddInstanceGroupsInput) String() string {
4734	return awsutil.Prettify(s)
4735}
4736
4737// GoString returns the string representation
4738func (s AddInstanceGroupsInput) GoString() string {
4739	return s.String()
4740}
4741
4742// Validate inspects the fields of the type to determine if they are valid.
4743func (s *AddInstanceGroupsInput) Validate() error {
4744	invalidParams := request.ErrInvalidParams{Context: "AddInstanceGroupsInput"}
4745	if s.InstanceGroups == nil {
4746		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
4747	}
4748	if s.JobFlowId == nil {
4749		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
4750	}
4751	if s.InstanceGroups != nil {
4752		for i, v := range s.InstanceGroups {
4753			if v == nil {
4754				continue
4755			}
4756			if err := v.Validate(); err != nil {
4757				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
4758			}
4759		}
4760	}
4761
4762	if invalidParams.Len() > 0 {
4763		return invalidParams
4764	}
4765	return nil
4766}
4767
4768// SetInstanceGroups sets the InstanceGroups field's value.
4769func (s *AddInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupConfig) *AddInstanceGroupsInput {
4770	s.InstanceGroups = v
4771	return s
4772}
4773
4774// SetJobFlowId sets the JobFlowId field's value.
4775func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput {
4776	s.JobFlowId = &v
4777	return s
4778}
4779
4780// Output from an AddInstanceGroups call.
4781type AddInstanceGroupsOutput struct {
4782	_ struct{} `type:"structure"`
4783
4784	// The Amazon Resource Name of the cluster.
4785	ClusterArn *string `min:"20" type:"string"`
4786
4787	// Instance group IDs of the newly created instance groups.
4788	InstanceGroupIds []*string `type:"list"`
4789
4790	// The job flow ID in which the instance groups are added.
4791	JobFlowId *string `type:"string"`
4792}
4793
4794// String returns the string representation
4795func (s AddInstanceGroupsOutput) String() string {
4796	return awsutil.Prettify(s)
4797}
4798
4799// GoString returns the string representation
4800func (s AddInstanceGroupsOutput) GoString() string {
4801	return s.String()
4802}
4803
4804// SetClusterArn sets the ClusterArn field's value.
4805func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput {
4806	s.ClusterArn = &v
4807	return s
4808}
4809
4810// SetInstanceGroupIds sets the InstanceGroupIds field's value.
4811func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput {
4812	s.InstanceGroupIds = v
4813	return s
4814}
4815
4816// SetJobFlowId sets the JobFlowId field's value.
4817func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutput {
4818	s.JobFlowId = &v
4819	return s
4820}
4821
4822// The input argument to the AddJobFlowSteps operation.
4823type AddJobFlowStepsInput struct {
4824	_ struct{} `type:"structure"`
4825
4826	// A string that uniquely identifies the job flow. This identifier is returned
4827	// by RunJobFlow and can also be obtained from ListClusters.
4828	//
4829	// JobFlowId is a required field
4830	JobFlowId *string `type:"string" required:"true"`
4831
4832	// A list of StepConfig to be executed by the job flow.
4833	//
4834	// Steps is a required field
4835	Steps []*StepConfig `type:"list" required:"true"`
4836}
4837
4838// String returns the string representation
4839func (s AddJobFlowStepsInput) String() string {
4840	return awsutil.Prettify(s)
4841}
4842
4843// GoString returns the string representation
4844func (s AddJobFlowStepsInput) GoString() string {
4845	return s.String()
4846}
4847
4848// Validate inspects the fields of the type to determine if they are valid.
4849func (s *AddJobFlowStepsInput) Validate() error {
4850	invalidParams := request.ErrInvalidParams{Context: "AddJobFlowStepsInput"}
4851	if s.JobFlowId == nil {
4852		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
4853	}
4854	if s.Steps == nil {
4855		invalidParams.Add(request.NewErrParamRequired("Steps"))
4856	}
4857	if s.Steps != nil {
4858		for i, v := range s.Steps {
4859			if v == nil {
4860				continue
4861			}
4862			if err := v.Validate(); err != nil {
4863				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
4864			}
4865		}
4866	}
4867
4868	if invalidParams.Len() > 0 {
4869		return invalidParams
4870	}
4871	return nil
4872}
4873
4874// SetJobFlowId sets the JobFlowId field's value.
4875func (s *AddJobFlowStepsInput) SetJobFlowId(v string) *AddJobFlowStepsInput {
4876	s.JobFlowId = &v
4877	return s
4878}
4879
4880// SetSteps sets the Steps field's value.
4881func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput {
4882	s.Steps = v
4883	return s
4884}
4885
4886// The output for the AddJobFlowSteps operation.
4887type AddJobFlowStepsOutput struct {
4888	_ struct{} `type:"structure"`
4889
4890	// The identifiers of the list of steps added to the job flow.
4891	StepIds []*string `type:"list"`
4892}
4893
4894// String returns the string representation
4895func (s AddJobFlowStepsOutput) String() string {
4896	return awsutil.Prettify(s)
4897}
4898
4899// GoString returns the string representation
4900func (s AddJobFlowStepsOutput) GoString() string {
4901	return s.String()
4902}
4903
4904// SetStepIds sets the StepIds field's value.
4905func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput {
4906	s.StepIds = v
4907	return s
4908}
4909
4910// This input identifies a cluster and a list of tags to attach.
4911type AddTagsInput struct {
4912	_ struct{} `type:"structure"`
4913
4914	// The Amazon EMR resource identifier to which tags will be added. This value
4915	// must be a cluster identifier.
4916	//
4917	// ResourceId is a required field
4918	ResourceId *string `type:"string" required:"true"`
4919
4920	// A list of tags to associate with a cluster and propagate to EC2 instances.
4921	// Tags are user-defined key-value pairs that consist of a required key string
4922	// with a maximum of 128 characters, and an optional value string with a maximum
4923	// of 256 characters.
4924	//
4925	// Tags is a required field
4926	Tags []*Tag `type:"list" required:"true"`
4927}
4928
4929// String returns the string representation
4930func (s AddTagsInput) String() string {
4931	return awsutil.Prettify(s)
4932}
4933
4934// GoString returns the string representation
4935func (s AddTagsInput) GoString() string {
4936	return s.String()
4937}
4938
4939// Validate inspects the fields of the type to determine if they are valid.
4940func (s *AddTagsInput) Validate() error {
4941	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
4942	if s.ResourceId == nil {
4943		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4944	}
4945	if s.Tags == nil {
4946		invalidParams.Add(request.NewErrParamRequired("Tags"))
4947	}
4948
4949	if invalidParams.Len() > 0 {
4950		return invalidParams
4951	}
4952	return nil
4953}
4954
4955// SetResourceId sets the ResourceId field's value.
4956func (s *AddTagsInput) SetResourceId(v string) *AddTagsInput {
4957	s.ResourceId = &v
4958	return s
4959}
4960
4961// SetTags sets the Tags field's value.
4962func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
4963	s.Tags = v
4964	return s
4965}
4966
4967// This output indicates the result of adding tags to a resource.
4968type AddTagsOutput struct {
4969	_ struct{} `type:"structure"`
4970}
4971
4972// String returns the string representation
4973func (s AddTagsOutput) String() string {
4974	return awsutil.Prettify(s)
4975}
4976
4977// GoString returns the string representation
4978func (s AddTagsOutput) GoString() string {
4979	return s.String()
4980}
4981
4982// With Amazon EMR release version 4.0 and later, the only accepted parameter
4983// is the application name. To pass arguments to applications, you use configuration
4984// classifications specified using configuration JSON objects. For more information,
4985// see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
4986//
4987// With earlier Amazon EMR releases, the application is any Amazon or third-party
4988// software that you can add to the cluster. This structure contains a list
4989// of strings that indicates the software to use with the cluster and accepts
4990// a user argument list. Amazon EMR accepts and forwards the argument list to
4991// the corresponding installation script as bootstrap action argument.
4992type Application struct {
4993	_ struct{} `type:"structure"`
4994
4995	// This option is for advanced users only. This is meta information about third-party
4996	// applications that third-party vendors use for testing purposes.
4997	AdditionalInfo map[string]*string `type:"map"`
4998
4999	// Arguments for Amazon EMR to pass to the application.
5000	Args []*string `type:"list"`
5001
5002	// The name of the application.
5003	Name *string `type:"string"`
5004
5005	// The version of the application.
5006	Version *string `type:"string"`
5007}
5008
5009// String returns the string representation
5010func (s Application) String() string {
5011	return awsutil.Prettify(s)
5012}
5013
5014// GoString returns the string representation
5015func (s Application) GoString() string {
5016	return s.String()
5017}
5018
5019// SetAdditionalInfo sets the AdditionalInfo field's value.
5020func (s *Application) SetAdditionalInfo(v map[string]*string) *Application {
5021	s.AdditionalInfo = v
5022	return s
5023}
5024
5025// SetArgs sets the Args field's value.
5026func (s *Application) SetArgs(v []*string) *Application {
5027	s.Args = v
5028	return s
5029}
5030
5031// SetName sets the Name field's value.
5032func (s *Application) SetName(v string) *Application {
5033	s.Name = &v
5034	return s
5035}
5036
5037// SetVersion sets the Version field's value.
5038func (s *Application) SetVersion(v string) *Application {
5039	s.Version = &v
5040	return s
5041}
5042
5043// An automatic scaling policy for a core instance group or task instance group
5044// in an Amazon EMR cluster. An automatic scaling policy defines how an instance
5045// group dynamically adds and terminates EC2 instances in response to the value
5046// of a CloudWatch metric. See PutAutoScalingPolicy.
5047type AutoScalingPolicy struct {
5048	_ struct{} `type:"structure"`
5049
5050	// The upper and lower EC2 instance limits for an automatic scaling policy.
5051	// Automatic scaling activity will not cause an instance group to grow above
5052	// or below these limits.
5053	//
5054	// Constraints is a required field
5055	Constraints *ScalingConstraints `type:"structure" required:"true"`
5056
5057	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5058	//
5059	// Rules is a required field
5060	Rules []*ScalingRule `type:"list" required:"true"`
5061}
5062
5063// String returns the string representation
5064func (s AutoScalingPolicy) String() string {
5065	return awsutil.Prettify(s)
5066}
5067
5068// GoString returns the string representation
5069func (s AutoScalingPolicy) GoString() string {
5070	return s.String()
5071}
5072
5073// Validate inspects the fields of the type to determine if they are valid.
5074func (s *AutoScalingPolicy) Validate() error {
5075	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicy"}
5076	if s.Constraints == nil {
5077		invalidParams.Add(request.NewErrParamRequired("Constraints"))
5078	}
5079	if s.Rules == nil {
5080		invalidParams.Add(request.NewErrParamRequired("Rules"))
5081	}
5082	if s.Constraints != nil {
5083		if err := s.Constraints.Validate(); err != nil {
5084			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
5085		}
5086	}
5087	if s.Rules != nil {
5088		for i, v := range s.Rules {
5089			if v == nil {
5090				continue
5091			}
5092			if err := v.Validate(); err != nil {
5093				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
5094			}
5095		}
5096	}
5097
5098	if invalidParams.Len() > 0 {
5099		return invalidParams
5100	}
5101	return nil
5102}
5103
5104// SetConstraints sets the Constraints field's value.
5105func (s *AutoScalingPolicy) SetConstraints(v *ScalingConstraints) *AutoScalingPolicy {
5106	s.Constraints = v
5107	return s
5108}
5109
5110// SetRules sets the Rules field's value.
5111func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy {
5112	s.Rules = v
5113	return s
5114}
5115
5116// An automatic scaling policy for a core instance group or task instance group
5117// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
5118// group dynamically adds and terminates EC2 instances in response to the value
5119// of a CloudWatch metric. See PutAutoScalingPolicy.
5120type AutoScalingPolicyDescription struct {
5121	_ struct{} `type:"structure"`
5122
5123	// The upper and lower EC2 instance limits for an automatic scaling policy.
5124	// Automatic scaling activity will not cause an instance group to grow above
5125	// or below these limits.
5126	Constraints *ScalingConstraints `type:"structure"`
5127
5128	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5129	Rules []*ScalingRule `type:"list"`
5130
5131	// The status of an automatic scaling policy.
5132	Status *AutoScalingPolicyStatus `type:"structure"`
5133}
5134
5135// String returns the string representation
5136func (s AutoScalingPolicyDescription) String() string {
5137	return awsutil.Prettify(s)
5138}
5139
5140// GoString returns the string representation
5141func (s AutoScalingPolicyDescription) GoString() string {
5142	return s.String()
5143}
5144
5145// SetConstraints sets the Constraints field's value.
5146func (s *AutoScalingPolicyDescription) SetConstraints(v *ScalingConstraints) *AutoScalingPolicyDescription {
5147	s.Constraints = v
5148	return s
5149}
5150
5151// SetRules sets the Rules field's value.
5152func (s *AutoScalingPolicyDescription) SetRules(v []*ScalingRule) *AutoScalingPolicyDescription {
5153	s.Rules = v
5154	return s
5155}
5156
5157// SetStatus sets the Status field's value.
5158func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *AutoScalingPolicyDescription {
5159	s.Status = v
5160	return s
5161}
5162
5163// The reason for an AutoScalingPolicyStatus change.
5164type AutoScalingPolicyStateChangeReason struct {
5165	_ struct{} `type:"structure"`
5166
5167	// The code indicating the reason for the change in status.USER_REQUEST indicates
5168	// that the scaling policy status was changed by a user. PROVISION_FAILURE indicates
5169	// that the status change was because the policy failed to provision. CLEANUP_FAILURE
5170	// indicates an error.
5171	Code *string `type:"string" enum:"AutoScalingPolicyStateChangeReasonCode"`
5172
5173	// A friendly, more verbose message that accompanies an automatic scaling policy
5174	// state change.
5175	Message *string `type:"string"`
5176}
5177
5178// String returns the string representation
5179func (s AutoScalingPolicyStateChangeReason) String() string {
5180	return awsutil.Prettify(s)
5181}
5182
5183// GoString returns the string representation
5184func (s AutoScalingPolicyStateChangeReason) GoString() string {
5185	return s.String()
5186}
5187
5188// SetCode sets the Code field's value.
5189func (s *AutoScalingPolicyStateChangeReason) SetCode(v string) *AutoScalingPolicyStateChangeReason {
5190	s.Code = &v
5191	return s
5192}
5193
5194// SetMessage sets the Message field's value.
5195func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPolicyStateChangeReason {
5196	s.Message = &v
5197	return s
5198}
5199
5200// The status of an automatic scaling policy.
5201type AutoScalingPolicyStatus struct {
5202	_ struct{} `type:"structure"`
5203
5204	// Indicates the status of the automatic scaling policy.
5205	State *string `type:"string" enum:"AutoScalingPolicyState"`
5206
5207	// The reason for a change in status.
5208	StateChangeReason *AutoScalingPolicyStateChangeReason `type:"structure"`
5209}
5210
5211// String returns the string representation
5212func (s AutoScalingPolicyStatus) String() string {
5213	return awsutil.Prettify(s)
5214}
5215
5216// GoString returns the string representation
5217func (s AutoScalingPolicyStatus) GoString() string {
5218	return s.String()
5219}
5220
5221// SetState sets the State field's value.
5222func (s *AutoScalingPolicyStatus) SetState(v string) *AutoScalingPolicyStatus {
5223	s.State = &v
5224	return s
5225}
5226
5227// SetStateChangeReason sets the StateChangeReason field's value.
5228func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyStateChangeReason) *AutoScalingPolicyStatus {
5229	s.StateChangeReason = v
5230	return s
5231}
5232
5233// A configuration for Amazon EMR block public access. When BlockPublicSecurityGroupRules
5234// is set to true, Amazon EMR prevents cluster creation if one of the cluster's
5235// security groups has a rule that allows inbound traffic from 0.0.0.0/0 or
5236// ::/0 on a port, unless the port is specified as an exception using PermittedPublicSecurityGroupRuleRanges.
5237type BlockPublicAccessConfiguration struct {
5238	_ struct{} `type:"structure"`
5239
5240	// Indicates whether Amazon EMR block public access is enabled (true) or disabled
5241	// (false). By default, the value is false for accounts that have created EMR
5242	// clusters before July 2019. For accounts created after this, the default is
5243	// true.
5244	//
5245	// BlockPublicSecurityGroupRules is a required field
5246	BlockPublicSecurityGroupRules *bool `type:"boolean" required:"true"`
5247
5248	// Specifies ports and port ranges that are permitted to have security group
5249	// rules that allow inbound traffic from all public sources. For example, if
5250	// Port 23 (Telnet) is specified for PermittedPublicSecurityGroupRuleRanges,
5251	// Amazon EMR allows cluster creation if a security group associated with the
5252	// cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0
5253	// or IPv6 port ::/0 as the source.
5254	//
5255	// By default, Port 22, which is used for SSH access to the cluster EC2 instances,
5256	// is in the list of PermittedPublicSecurityGroupRuleRanges.
5257	PermittedPublicSecurityGroupRuleRanges []*PortRange `type:"list"`
5258}
5259
5260// String returns the string representation
5261func (s BlockPublicAccessConfiguration) String() string {
5262	return awsutil.Prettify(s)
5263}
5264
5265// GoString returns the string representation
5266func (s BlockPublicAccessConfiguration) GoString() string {
5267	return s.String()
5268}
5269
5270// Validate inspects the fields of the type to determine if they are valid.
5271func (s *BlockPublicAccessConfiguration) Validate() error {
5272	invalidParams := request.ErrInvalidParams{Context: "BlockPublicAccessConfiguration"}
5273	if s.BlockPublicSecurityGroupRules == nil {
5274		invalidParams.Add(request.NewErrParamRequired("BlockPublicSecurityGroupRules"))
5275	}
5276	if s.PermittedPublicSecurityGroupRuleRanges != nil {
5277		for i, v := range s.PermittedPublicSecurityGroupRuleRanges {
5278			if v == nil {
5279				continue
5280			}
5281			if err := v.Validate(); err != nil {
5282				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PermittedPublicSecurityGroupRuleRanges", i), err.(request.ErrInvalidParams))
5283			}
5284		}
5285	}
5286
5287	if invalidParams.Len() > 0 {
5288		return invalidParams
5289	}
5290	return nil
5291}
5292
5293// SetBlockPublicSecurityGroupRules sets the BlockPublicSecurityGroupRules field's value.
5294func (s *BlockPublicAccessConfiguration) SetBlockPublicSecurityGroupRules(v bool) *BlockPublicAccessConfiguration {
5295	s.BlockPublicSecurityGroupRules = &v
5296	return s
5297}
5298
5299// SetPermittedPublicSecurityGroupRuleRanges sets the PermittedPublicSecurityGroupRuleRanges field's value.
5300func (s *BlockPublicAccessConfiguration) SetPermittedPublicSecurityGroupRuleRanges(v []*PortRange) *BlockPublicAccessConfiguration {
5301	s.PermittedPublicSecurityGroupRuleRanges = v
5302	return s
5303}
5304
5305// Properties that describe the AWS principal that created the BlockPublicAccessConfiguration
5306// using the PutBlockPublicAccessConfiguration action as well as the date and
5307// time that the configuration was created. Each time a configuration for block
5308// public access is updated, Amazon EMR updates this metadata.
5309type BlockPublicAccessConfigurationMetadata struct {
5310	_ struct{} `type:"structure"`
5311
5312	// The Amazon Resource Name that created or last modified the configuration.
5313	//
5314	// CreatedByArn is a required field
5315	CreatedByArn *string `min:"20" type:"string" required:"true"`
5316
5317	// The date and time that the configuration was created.
5318	//
5319	// CreationDateTime is a required field
5320	CreationDateTime *time.Time `type:"timestamp" required:"true"`
5321}
5322
5323// String returns the string representation
5324func (s BlockPublicAccessConfigurationMetadata) String() string {
5325	return awsutil.Prettify(s)
5326}
5327
5328// GoString returns the string representation
5329func (s BlockPublicAccessConfigurationMetadata) GoString() string {
5330	return s.String()
5331}
5332
5333// SetCreatedByArn sets the CreatedByArn field's value.
5334func (s *BlockPublicAccessConfigurationMetadata) SetCreatedByArn(v string) *BlockPublicAccessConfigurationMetadata {
5335	s.CreatedByArn = &v
5336	return s
5337}
5338
5339// SetCreationDateTime sets the CreationDateTime field's value.
5340func (s *BlockPublicAccessConfigurationMetadata) SetCreationDateTime(v time.Time) *BlockPublicAccessConfigurationMetadata {
5341	s.CreationDateTime = &v
5342	return s
5343}
5344
5345// Configuration of a bootstrap action.
5346type BootstrapActionConfig struct {
5347	_ struct{} `type:"structure"`
5348
5349	// The name of the bootstrap action.
5350	//
5351	// Name is a required field
5352	Name *string `type:"string" required:"true"`
5353
5354	// The script run by the bootstrap action.
5355	//
5356	// ScriptBootstrapAction is a required field
5357	ScriptBootstrapAction *ScriptBootstrapActionConfig `type:"structure" required:"true"`
5358}
5359
5360// String returns the string representation
5361func (s BootstrapActionConfig) String() string {
5362	return awsutil.Prettify(s)
5363}
5364
5365// GoString returns the string representation
5366func (s BootstrapActionConfig) GoString() string {
5367	return s.String()
5368}
5369
5370// Validate inspects the fields of the type to determine if they are valid.
5371func (s *BootstrapActionConfig) Validate() error {
5372	invalidParams := request.ErrInvalidParams{Context: "BootstrapActionConfig"}
5373	if s.Name == nil {
5374		invalidParams.Add(request.NewErrParamRequired("Name"))
5375	}
5376	if s.ScriptBootstrapAction == nil {
5377		invalidParams.Add(request.NewErrParamRequired("ScriptBootstrapAction"))
5378	}
5379	if s.ScriptBootstrapAction != nil {
5380		if err := s.ScriptBootstrapAction.Validate(); err != nil {
5381			invalidParams.AddNested("ScriptBootstrapAction", err.(request.ErrInvalidParams))
5382		}
5383	}
5384
5385	if invalidParams.Len() > 0 {
5386		return invalidParams
5387	}
5388	return nil
5389}
5390
5391// SetName sets the Name field's value.
5392func (s *BootstrapActionConfig) SetName(v string) *BootstrapActionConfig {
5393	s.Name = &v
5394	return s
5395}
5396
5397// SetScriptBootstrapAction sets the ScriptBootstrapAction field's value.
5398func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActionConfig) *BootstrapActionConfig {
5399	s.ScriptBootstrapAction = v
5400	return s
5401}
5402
5403// Reports the configuration of a bootstrap action in a cluster (job flow).
5404type BootstrapActionDetail struct {
5405	_ struct{} `type:"structure"`
5406
5407	// A description of the bootstrap action.
5408	BootstrapActionConfig *BootstrapActionConfig `type:"structure"`
5409}
5410
5411// String returns the string representation
5412func (s BootstrapActionDetail) String() string {
5413	return awsutil.Prettify(s)
5414}
5415
5416// GoString returns the string representation
5417func (s BootstrapActionDetail) GoString() string {
5418	return s.String()
5419}
5420
5421// SetBootstrapActionConfig sets the BootstrapActionConfig field's value.
5422func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfig) *BootstrapActionDetail {
5423	s.BootstrapActionConfig = v
5424	return s
5425}
5426
5427// Specification of the status of a CancelSteps request. Available only in Amazon
5428// EMR version 4.8.0 and later, excluding version 5.0.0.
5429type CancelStepsInfo struct {
5430	_ struct{} `type:"structure"`
5431
5432	// The reason for the failure if the CancelSteps request fails.
5433	Reason *string `type:"string"`
5434
5435	// The status of a CancelSteps Request. The value may be SUBMITTED or FAILED.
5436	Status *string `type:"string" enum:"CancelStepsRequestStatus"`
5437
5438	// The encrypted StepId of a step.
5439	StepId *string `type:"string"`
5440}
5441
5442// String returns the string representation
5443func (s CancelStepsInfo) String() string {
5444	return awsutil.Prettify(s)
5445}
5446
5447// GoString returns the string representation
5448func (s CancelStepsInfo) GoString() string {
5449	return s.String()
5450}
5451
5452// SetReason sets the Reason field's value.
5453func (s *CancelStepsInfo) SetReason(v string) *CancelStepsInfo {
5454	s.Reason = &v
5455	return s
5456}
5457
5458// SetStatus sets the Status field's value.
5459func (s *CancelStepsInfo) SetStatus(v string) *CancelStepsInfo {
5460	s.Status = &v
5461	return s
5462}
5463
5464// SetStepId sets the StepId field's value.
5465func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo {
5466	s.StepId = &v
5467	return s
5468}
5469
5470// The input argument to the CancelSteps operation.
5471type CancelStepsInput struct {
5472	_ struct{} `type:"structure"`
5473
5474	// The ClusterID for the specified steps that will be canceled. Use RunJobFlow
5475	// and ListClusters to get ClusterIDs.
5476	//
5477	// ClusterId is a required field
5478	ClusterId *string `type:"string" required:"true"`
5479
5480	// The option to choose to cancel RUNNING steps. By default, the value is SEND_INTERRUPT.
5481	StepCancellationOption *string `type:"string" enum:"StepCancellationOption"`
5482
5483	// The list of StepIDs to cancel. Use ListSteps to get steps and their states
5484	// for the specified cluster.
5485	//
5486	// StepIds is a required field
5487	StepIds []*string `type:"list" required:"true"`
5488}
5489
5490// String returns the string representation
5491func (s CancelStepsInput) String() string {
5492	return awsutil.Prettify(s)
5493}
5494
5495// GoString returns the string representation
5496func (s CancelStepsInput) GoString() string {
5497	return s.String()
5498}
5499
5500// Validate inspects the fields of the type to determine if they are valid.
5501func (s *CancelStepsInput) Validate() error {
5502	invalidParams := request.ErrInvalidParams{Context: "CancelStepsInput"}
5503	if s.ClusterId == nil {
5504		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5505	}
5506	if s.StepIds == nil {
5507		invalidParams.Add(request.NewErrParamRequired("StepIds"))
5508	}
5509
5510	if invalidParams.Len() > 0 {
5511		return invalidParams
5512	}
5513	return nil
5514}
5515
5516// SetClusterId sets the ClusterId field's value.
5517func (s *CancelStepsInput) SetClusterId(v string) *CancelStepsInput {
5518	s.ClusterId = &v
5519	return s
5520}
5521
5522// SetStepCancellationOption sets the StepCancellationOption field's value.
5523func (s *CancelStepsInput) SetStepCancellationOption(v string) *CancelStepsInput {
5524	s.StepCancellationOption = &v
5525	return s
5526}
5527
5528// SetStepIds sets the StepIds field's value.
5529func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput {
5530	s.StepIds = v
5531	return s
5532}
5533
5534// The output for the CancelSteps operation.
5535type CancelStepsOutput struct {
5536	_ struct{} `type:"structure"`
5537
5538	// A list of CancelStepsInfo, which shows the status of specified cancel requests
5539	// for each StepID specified.
5540	CancelStepsInfoList []*CancelStepsInfo `type:"list"`
5541}
5542
5543// String returns the string representation
5544func (s CancelStepsOutput) String() string {
5545	return awsutil.Prettify(s)
5546}
5547
5548// GoString returns the string representation
5549func (s CancelStepsOutput) GoString() string {
5550	return s.String()
5551}
5552
5553// SetCancelStepsInfoList sets the CancelStepsInfoList field's value.
5554func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *CancelStepsOutput {
5555	s.CancelStepsInfoList = v
5556	return s
5557}
5558
5559// The definition of a CloudWatch metric alarm, which determines when an automatic
5560// scaling activity is triggered. When the defined alarm conditions are satisfied,
5561// scaling activity begins.
5562type CloudWatchAlarmDefinition struct {
5563	_ struct{} `type:"structure"`
5564
5565	// Determines how the metric specified by MetricName is compared to the value
5566	// specified by Threshold.
5567	//
5568	// ComparisonOperator is a required field
5569	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
5570
5571	// A CloudWatch metric dimension.
5572	Dimensions []*MetricDimension `type:"list"`
5573
5574	// The number of periods, in five-minute increments, during which the alarm
5575	// condition must exist before the alarm triggers automatic scaling activity.
5576	// The default value is 1.
5577	EvaluationPeriods *int64 `type:"integer"`
5578
5579	// The name of the CloudWatch metric that is watched to determine an alarm condition.
5580	//
5581	// MetricName is a required field
5582	MetricName *string `type:"string" required:"true"`
5583
5584	// The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
5585	Namespace *string `type:"string"`
5586
5587	// The period, in seconds, over which the statistic is applied. EMR CloudWatch
5588	// metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch
5589	// metric is specified, specify 300.
5590	//
5591	// Period is a required field
5592	Period *int64 `type:"integer" required:"true"`
5593
5594	// The statistic to apply to the metric associated with the alarm. The default
5595	// is AVERAGE.
5596	Statistic *string `type:"string" enum:"Statistic"`
5597
5598	// The value against which the specified statistic is compared.
5599	//
5600	// Threshold is a required field
5601	Threshold *float64 `type:"double" required:"true"`
5602
5603	// The unit of measure associated with the CloudWatch metric being watched.
5604	// The value specified for Unit must correspond to the units specified in the
5605	// CloudWatch metric.
5606	Unit *string `type:"string" enum:"Unit"`
5607}
5608
5609// String returns the string representation
5610func (s CloudWatchAlarmDefinition) String() string {
5611	return awsutil.Prettify(s)
5612}
5613
5614// GoString returns the string representation
5615func (s CloudWatchAlarmDefinition) GoString() string {
5616	return s.String()
5617}
5618
5619// Validate inspects the fields of the type to determine if they are valid.
5620func (s *CloudWatchAlarmDefinition) Validate() error {
5621	invalidParams := request.ErrInvalidParams{Context: "CloudWatchAlarmDefinition"}
5622	if s.ComparisonOperator == nil {
5623		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
5624	}
5625	if s.MetricName == nil {
5626		invalidParams.Add(request.NewErrParamRequired("MetricName"))
5627	}
5628	if s.Period == nil {
5629		invalidParams.Add(request.NewErrParamRequired("Period"))
5630	}
5631	if s.Threshold == nil {
5632		invalidParams.Add(request.NewErrParamRequired("Threshold"))
5633	}
5634
5635	if invalidParams.Len() > 0 {
5636		return invalidParams
5637	}
5638	return nil
5639}
5640
5641// SetComparisonOperator sets the ComparisonOperator field's value.
5642func (s *CloudWatchAlarmDefinition) SetComparisonOperator(v string) *CloudWatchAlarmDefinition {
5643	s.ComparisonOperator = &v
5644	return s
5645}
5646
5647// SetDimensions sets the Dimensions field's value.
5648func (s *CloudWatchAlarmDefinition) SetDimensions(v []*MetricDimension) *CloudWatchAlarmDefinition {
5649	s.Dimensions = v
5650	return s
5651}
5652
5653// SetEvaluationPeriods sets the EvaluationPeriods field's value.
5654func (s *CloudWatchAlarmDefinition) SetEvaluationPeriods(v int64) *CloudWatchAlarmDefinition {
5655	s.EvaluationPeriods = &v
5656	return s
5657}
5658
5659// SetMetricName sets the MetricName field's value.
5660func (s *CloudWatchAlarmDefinition) SetMetricName(v string) *CloudWatchAlarmDefinition {
5661	s.MetricName = &v
5662	return s
5663}
5664
5665// SetNamespace sets the Namespace field's value.
5666func (s *CloudWatchAlarmDefinition) SetNamespace(v string) *CloudWatchAlarmDefinition {
5667	s.Namespace = &v
5668	return s
5669}
5670
5671// SetPeriod sets the Period field's value.
5672func (s *CloudWatchAlarmDefinition) SetPeriod(v int64) *CloudWatchAlarmDefinition {
5673	s.Period = &v
5674	return s
5675}
5676
5677// SetStatistic sets the Statistic field's value.
5678func (s *CloudWatchAlarmDefinition) SetStatistic(v string) *CloudWatchAlarmDefinition {
5679	s.Statistic = &v
5680	return s
5681}
5682
5683// SetThreshold sets the Threshold field's value.
5684func (s *CloudWatchAlarmDefinition) SetThreshold(v float64) *CloudWatchAlarmDefinition {
5685	s.Threshold = &v
5686	return s
5687}
5688
5689// SetUnit sets the Unit field's value.
5690func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition {
5691	s.Unit = &v
5692	return s
5693}
5694
5695// The detailed description of the cluster.
5696type Cluster struct {
5697	_ struct{} `type:"structure"`
5698
5699	// The applications installed on this cluster.
5700	Applications []*Application `type:"list"`
5701
5702	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
5703	// The IAM role provides permissions that the automatic scaling feature requires
5704	// to launch and terminate EC2 instances in an instance group.
5705	AutoScalingRole *string `type:"string"`
5706
5707	// Specifies whether the cluster should terminate after completing all steps.
5708	AutoTerminate *bool `type:"boolean"`
5709
5710	// The Amazon Resource Name of the cluster.
5711	ClusterArn *string `min:"20" type:"string"`
5712
5713	// Applies only to Amazon EMR releases 4.x and later. The list of Configurations
5714	// supplied to the EMR cluster.
5715	Configurations []*Configuration `type:"list"`
5716
5717	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
5718	// Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
5719	CustomAmiId *string `type:"string"`
5720
5721	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
5722	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
5723	EbsRootVolumeSize *int64 `type:"integer"`
5724
5725	// Provides information about the EC2 instances in a cluster grouped by category.
5726	// For example, key name, subnet ID, IAM instance profile, and so on.
5727	Ec2InstanceAttributes *Ec2InstanceAttributes `type:"structure"`
5728
5729	// The unique identifier for the cluster.
5730	Id *string `type:"string"`
5731
5732	//
5733	// The instance fleet configuration is available only in Amazon EMR versions
5734	// 4.8.0 and later, excluding 5.0.x versions.
5735	//
5736	// The instance group configuration of the cluster. A value of INSTANCE_GROUP
5737	// indicates a uniform instance group configuration. A value of INSTANCE_FLEET
5738	// indicates an instance fleets configuration.
5739	InstanceCollectionType *string `type:"string" enum:"InstanceCollectionType"`
5740
5741	// Attributes for Kerberos configuration when Kerberos authentication is enabled
5742	// using a security configuration. For more information see Use Kerberos Authentication
5743	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
5744	// in the Amazon EMR Management Guide.
5745	KerberosAttributes *KerberosAttributes `type:"structure"`
5746
5747	// The AWS KMS customer master key (CMK) used for encrypting log files. This
5748	// attribute is only available with EMR version 5.30.0 and later, excluding
5749	// EMR 6.0.0.
5750	LogEncryptionKmsKeyId *string `type:"string"`
5751
5752	// The path to the Amazon S3 location where logs for this cluster are stored.
5753	LogUri *string `type:"string"`
5754
5755	// The DNS name of the master node. If the cluster is on a private subnet, this
5756	// is the private DNS name. On a public subnet, this is the public DNS name.
5757	MasterPublicDnsName *string `type:"string"`
5758
5759	// The name of the cluster.
5760	Name *string `type:"string"`
5761
5762	// An approximation of the cost of the cluster, represented in m1.small/hours.
5763	// This value is incremented one time for every hour an m1.small instance runs.
5764	// Larger instances are weighted more, so an EC2 instance that is roughly four
5765	// times more expensive would result in the normalized instance hours being
5766	// incremented by four. This result is only an approximation and does not reflect
5767	// the actual billing rate.
5768	NormalizedInstanceHours *int64 `type:"integer"`
5769
5770	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
5771	OutpostArn *string `type:"string"`
5772
5773	// Placement group configured for an Amazon EMR cluster.
5774	PlacementGroups []*PlacementGroupConfig `type:"list"`
5775
5776	// The Amazon EMR release label, which determines the version of open-source
5777	// application packages installed on the cluster. Release labels are in the
5778	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
5779	// For more information about Amazon EMR release versions and included application
5780	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
5781	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
5782	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
5783	// use AmiVersion.
5784	ReleaseLabel *string `type:"string"`
5785
5786	// Applies only when CustomAmiID is used. Specifies the type of updates that
5787	// are applied from the Amazon Linux AMI package repositories when an instance
5788	// boots using the AMI.
5789	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
5790
5791	// The AMI version requested for this cluster.
5792	RequestedAmiVersion *string `type:"string"`
5793
5794	// The AMI version running on this cluster.
5795	RunningAmiVersion *string `type:"string"`
5796
5797	// The way that individual Amazon EC2 instances terminate when an automatic
5798	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
5799	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
5800	// regardless of when the request to terminate the instance was submitted. This
5801	// option is only available with Amazon EMR 5.1.0 and later and is the default
5802	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
5803	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
5804	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
5805	// With either behavior, Amazon EMR removes the least active nodes first and
5806	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
5807	// is available only in Amazon EMR version 4.1.0 and later, and is the default
5808	// for versions of Amazon EMR earlier than 5.1.0.
5809	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
5810
5811	// The name of the security configuration applied to the cluster.
5812	SecurityConfiguration *string `type:"string"`
5813
5814	// The IAM role that will be assumed by the Amazon EMR service to access AWS
5815	// resources on your behalf.
5816	ServiceRole *string `type:"string"`
5817
5818	// The current status details about the cluster.
5819	Status *ClusterStatus `type:"structure"`
5820
5821	// Specifies the number of steps that can be executed concurrently.
5822	StepConcurrencyLevel *int64 `type:"integer"`
5823
5824	// A list of tags associated with a cluster.
5825	Tags []*Tag `type:"list"`
5826
5827	// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances
5828	// from being terminated by an API call or user intervention, or in the event
5829	// of a cluster error.
5830	TerminationProtected *bool `type:"boolean"`
5831
5832	// Indicates whether the cluster is visible to all IAM users of the AWS account
5833	// associated with the cluster. The default value, true, indicates that all
5834	// IAM users in the AWS account can perform cluster actions if they have the
5835	// proper IAM policy permissions. If this value is false, only the IAM user
5836	// that created the cluster can perform actions. This value can be changed on
5837	// a running cluster by using the SetVisibleToAllUsers action. You can override
5838	// the default value of true when you create a cluster by using the VisibleToAllUsers
5839	// parameter of the RunJobFlow action.
5840	VisibleToAllUsers *bool `type:"boolean"`
5841}
5842
5843// String returns the string representation
5844func (s Cluster) String() string {
5845	return awsutil.Prettify(s)
5846}
5847
5848// GoString returns the string representation
5849func (s Cluster) GoString() string {
5850	return s.String()
5851}
5852
5853// SetApplications sets the Applications field's value.
5854func (s *Cluster) SetApplications(v []*Application) *Cluster {
5855	s.Applications = v
5856	return s
5857}
5858
5859// SetAutoScalingRole sets the AutoScalingRole field's value.
5860func (s *Cluster) SetAutoScalingRole(v string) *Cluster {
5861	s.AutoScalingRole = &v
5862	return s
5863}
5864
5865// SetAutoTerminate sets the AutoTerminate field's value.
5866func (s *Cluster) SetAutoTerminate(v bool) *Cluster {
5867	s.AutoTerminate = &v
5868	return s
5869}
5870
5871// SetClusterArn sets the ClusterArn field's value.
5872func (s *Cluster) SetClusterArn(v string) *Cluster {
5873	s.ClusterArn = &v
5874	return s
5875}
5876
5877// SetConfigurations sets the Configurations field's value.
5878func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster {
5879	s.Configurations = v
5880	return s
5881}
5882
5883// SetCustomAmiId sets the CustomAmiId field's value.
5884func (s *Cluster) SetCustomAmiId(v string) *Cluster {
5885	s.CustomAmiId = &v
5886	return s
5887}
5888
5889// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
5890func (s *Cluster) SetEbsRootVolumeSize(v int64) *Cluster {
5891	s.EbsRootVolumeSize = &v
5892	return s
5893}
5894
5895// SetEc2InstanceAttributes sets the Ec2InstanceAttributes field's value.
5896func (s *Cluster) SetEc2InstanceAttributes(v *Ec2InstanceAttributes) *Cluster {
5897	s.Ec2InstanceAttributes = v
5898	return s
5899}
5900
5901// SetId sets the Id field's value.
5902func (s *Cluster) SetId(v string) *Cluster {
5903	s.Id = &v
5904	return s
5905}
5906
5907// SetInstanceCollectionType sets the InstanceCollectionType field's value.
5908func (s *Cluster) SetInstanceCollectionType(v string) *Cluster {
5909	s.InstanceCollectionType = &v
5910	return s
5911}
5912
5913// SetKerberosAttributes sets the KerberosAttributes field's value.
5914func (s *Cluster) SetKerberosAttributes(v *KerberosAttributes) *Cluster {
5915	s.KerberosAttributes = v
5916	return s
5917}
5918
5919// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
5920func (s *Cluster) SetLogEncryptionKmsKeyId(v string) *Cluster {
5921	s.LogEncryptionKmsKeyId = &v
5922	return s
5923}
5924
5925// SetLogUri sets the LogUri field's value.
5926func (s *Cluster) SetLogUri(v string) *Cluster {
5927	s.LogUri = &v
5928	return s
5929}
5930
5931// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
5932func (s *Cluster) SetMasterPublicDnsName(v string) *Cluster {
5933	s.MasterPublicDnsName = &v
5934	return s
5935}
5936
5937// SetName sets the Name field's value.
5938func (s *Cluster) SetName(v string) *Cluster {
5939	s.Name = &v
5940	return s
5941}
5942
5943// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
5944func (s *Cluster) SetNormalizedInstanceHours(v int64) *Cluster {
5945	s.NormalizedInstanceHours = &v
5946	return s
5947}
5948
5949// SetOutpostArn sets the OutpostArn field's value.
5950func (s *Cluster) SetOutpostArn(v string) *Cluster {
5951	s.OutpostArn = &v
5952	return s
5953}
5954
5955// SetPlacementGroups sets the PlacementGroups field's value.
5956func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster {
5957	s.PlacementGroups = v
5958	return s
5959}
5960
5961// SetReleaseLabel sets the ReleaseLabel field's value.
5962func (s *Cluster) SetReleaseLabel(v string) *Cluster {
5963	s.ReleaseLabel = &v
5964	return s
5965}
5966
5967// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
5968func (s *Cluster) SetRepoUpgradeOnBoot(v string) *Cluster {
5969	s.RepoUpgradeOnBoot = &v
5970	return s
5971}
5972
5973// SetRequestedAmiVersion sets the RequestedAmiVersion field's value.
5974func (s *Cluster) SetRequestedAmiVersion(v string) *Cluster {
5975	s.RequestedAmiVersion = &v
5976	return s
5977}
5978
5979// SetRunningAmiVersion sets the RunningAmiVersion field's value.
5980func (s *Cluster) SetRunningAmiVersion(v string) *Cluster {
5981	s.RunningAmiVersion = &v
5982	return s
5983}
5984
5985// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
5986func (s *Cluster) SetScaleDownBehavior(v string) *Cluster {
5987	s.ScaleDownBehavior = &v
5988	return s
5989}
5990
5991// SetSecurityConfiguration sets the SecurityConfiguration field's value.
5992func (s *Cluster) SetSecurityConfiguration(v string) *Cluster {
5993	s.SecurityConfiguration = &v
5994	return s
5995}
5996
5997// SetServiceRole sets the ServiceRole field's value.
5998func (s *Cluster) SetServiceRole(v string) *Cluster {
5999	s.ServiceRole = &v
6000	return s
6001}
6002
6003// SetStatus sets the Status field's value.
6004func (s *Cluster) SetStatus(v *ClusterStatus) *Cluster {
6005	s.Status = v
6006	return s
6007}
6008
6009// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
6010func (s *Cluster) SetStepConcurrencyLevel(v int64) *Cluster {
6011	s.StepConcurrencyLevel = &v
6012	return s
6013}
6014
6015// SetTags sets the Tags field's value.
6016func (s *Cluster) SetTags(v []*Tag) *Cluster {
6017	s.Tags = v
6018	return s
6019}
6020
6021// SetTerminationProtected sets the TerminationProtected field's value.
6022func (s *Cluster) SetTerminationProtected(v bool) *Cluster {
6023	s.TerminationProtected = &v
6024	return s
6025}
6026
6027// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
6028func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster {
6029	s.VisibleToAllUsers = &v
6030	return s
6031}
6032
6033// The reason that the cluster changed to its current state.
6034type ClusterStateChangeReason struct {
6035	_ struct{} `type:"structure"`
6036
6037	// The programmatic code for the state change reason.
6038	Code *string `type:"string" enum:"ClusterStateChangeReasonCode"`
6039
6040	// The descriptive message for the state change reason.
6041	Message *string `type:"string"`
6042}
6043
6044// String returns the string representation
6045func (s ClusterStateChangeReason) String() string {
6046	return awsutil.Prettify(s)
6047}
6048
6049// GoString returns the string representation
6050func (s ClusterStateChangeReason) GoString() string {
6051	return s.String()
6052}
6053
6054// SetCode sets the Code field's value.
6055func (s *ClusterStateChangeReason) SetCode(v string) *ClusterStateChangeReason {
6056	s.Code = &v
6057	return s
6058}
6059
6060// SetMessage sets the Message field's value.
6061func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReason {
6062	s.Message = &v
6063	return s
6064}
6065
6066// The detailed status of the cluster.
6067type ClusterStatus struct {
6068	_ struct{} `type:"structure"`
6069
6070	// The current state of the cluster.
6071	State *string `type:"string" enum:"ClusterState"`
6072
6073	// The reason for the cluster status change.
6074	StateChangeReason *ClusterStateChangeReason `type:"structure"`
6075
6076	// A timeline that represents the status of a cluster over the lifetime of the
6077	// cluster.
6078	Timeline *ClusterTimeline `type:"structure"`
6079}
6080
6081// String returns the string representation
6082func (s ClusterStatus) String() string {
6083	return awsutil.Prettify(s)
6084}
6085
6086// GoString returns the string representation
6087func (s ClusterStatus) GoString() string {
6088	return s.String()
6089}
6090
6091// SetState sets the State field's value.
6092func (s *ClusterStatus) SetState(v string) *ClusterStatus {
6093	s.State = &v
6094	return s
6095}
6096
6097// SetStateChangeReason sets the StateChangeReason field's value.
6098func (s *ClusterStatus) SetStateChangeReason(v *ClusterStateChangeReason) *ClusterStatus {
6099	s.StateChangeReason = v
6100	return s
6101}
6102
6103// SetTimeline sets the Timeline field's value.
6104func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus {
6105	s.Timeline = v
6106	return s
6107}
6108
6109// The summary description of the cluster.
6110type ClusterSummary struct {
6111	_ struct{} `type:"structure"`
6112
6113	// The Amazon Resource Name of the cluster.
6114	ClusterArn *string `min:"20" type:"string"`
6115
6116	// The unique identifier for the cluster.
6117	Id *string `type:"string"`
6118
6119	// The name of the cluster.
6120	Name *string `type:"string"`
6121
6122	// An approximation of the cost of the cluster, represented in m1.small/hours.
6123	// This value is incremented one time for every hour an m1.small instance runs.
6124	// Larger instances are weighted more, so an EC2 instance that is roughly four
6125	// times more expensive would result in the normalized instance hours being
6126	// incremented by four. This result is only an approximation and does not reflect
6127	// the actual billing rate.
6128	NormalizedInstanceHours *int64 `type:"integer"`
6129
6130	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
6131	OutpostArn *string `type:"string"`
6132
6133	// The details about the current status of the cluster.
6134	Status *ClusterStatus `type:"structure"`
6135}
6136
6137// String returns the string representation
6138func (s ClusterSummary) String() string {
6139	return awsutil.Prettify(s)
6140}
6141
6142// GoString returns the string representation
6143func (s ClusterSummary) GoString() string {
6144	return s.String()
6145}
6146
6147// SetClusterArn sets the ClusterArn field's value.
6148func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
6149	s.ClusterArn = &v
6150	return s
6151}
6152
6153// SetId sets the Id field's value.
6154func (s *ClusterSummary) SetId(v string) *ClusterSummary {
6155	s.Id = &v
6156	return s
6157}
6158
6159// SetName sets the Name field's value.
6160func (s *ClusterSummary) SetName(v string) *ClusterSummary {
6161	s.Name = &v
6162	return s
6163}
6164
6165// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
6166func (s *ClusterSummary) SetNormalizedInstanceHours(v int64) *ClusterSummary {
6167	s.NormalizedInstanceHours = &v
6168	return s
6169}
6170
6171// SetOutpostArn sets the OutpostArn field's value.
6172func (s *ClusterSummary) SetOutpostArn(v string) *ClusterSummary {
6173	s.OutpostArn = &v
6174	return s
6175}
6176
6177// SetStatus sets the Status field's value.
6178func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary {
6179	s.Status = v
6180	return s
6181}
6182
6183// Represents the timeline of the cluster's lifecycle.
6184type ClusterTimeline struct {
6185	_ struct{} `type:"structure"`
6186
6187	// The creation date and time of the cluster.
6188	CreationDateTime *time.Time `type:"timestamp"`
6189
6190	// The date and time when the cluster was terminated.
6191	EndDateTime *time.Time `type:"timestamp"`
6192
6193	// The date and time when the cluster was ready to run steps.
6194	ReadyDateTime *time.Time `type:"timestamp"`
6195}
6196
6197// String returns the string representation
6198func (s ClusterTimeline) String() string {
6199	return awsutil.Prettify(s)
6200}
6201
6202// GoString returns the string representation
6203func (s ClusterTimeline) GoString() string {
6204	return s.String()
6205}
6206
6207// SetCreationDateTime sets the CreationDateTime field's value.
6208func (s *ClusterTimeline) SetCreationDateTime(v time.Time) *ClusterTimeline {
6209	s.CreationDateTime = &v
6210	return s
6211}
6212
6213// SetEndDateTime sets the EndDateTime field's value.
6214func (s *ClusterTimeline) SetEndDateTime(v time.Time) *ClusterTimeline {
6215	s.EndDateTime = &v
6216	return s
6217}
6218
6219// SetReadyDateTime sets the ReadyDateTime field's value.
6220func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline {
6221	s.ReadyDateTime = &v
6222	return s
6223}
6224
6225// An entity describing an executable that runs on a cluster.
6226type Command struct {
6227	_ struct{} `type:"structure"`
6228
6229	// Arguments for Amazon EMR to pass to the command for execution.
6230	Args []*string `type:"list"`
6231
6232	// The name of the command.
6233	Name *string `type:"string"`
6234
6235	// The Amazon S3 location of the command script.
6236	ScriptPath *string `type:"string"`
6237}
6238
6239// String returns the string representation
6240func (s Command) String() string {
6241	return awsutil.Prettify(s)
6242}
6243
6244// GoString returns the string representation
6245func (s Command) GoString() string {
6246	return s.String()
6247}
6248
6249// SetArgs sets the Args field's value.
6250func (s *Command) SetArgs(v []*string) *Command {
6251	s.Args = v
6252	return s
6253}
6254
6255// SetName sets the Name field's value.
6256func (s *Command) SetName(v string) *Command {
6257	s.Name = &v
6258	return s
6259}
6260
6261// SetScriptPath sets the ScriptPath field's value.
6262func (s *Command) SetScriptPath(v string) *Command {
6263	s.ScriptPath = &v
6264	return s
6265}
6266
6267// The EC2 unit limits for a managed scaling policy. The managed scaling activity
6268// of a cluster can not be above or below these limits. The limit only applies
6269// to the core and task nodes. The master node cannot be scaled after initial
6270// configuration.
6271type ComputeLimits struct {
6272	_ struct{} `type:"structure"`
6273
6274	// The upper boundary of EC2 units. It is measured through vCPU cores or instances
6275	// for instance groups and measured through units for instance fleets. Managed
6276	// scaling activities are not allowed beyond this boundary. The limit only applies
6277	// to the core and task nodes. The master node cannot be scaled after initial
6278	// configuration.
6279	//
6280	// MaximumCapacityUnits is a required field
6281	MaximumCapacityUnits *int64 `type:"integer" required:"true"`
6282
6283	// The upper boundary of EC2 units for core node type in a cluster. It is measured
6284	// through vCPU cores or instances for instance groups and measured through
6285	// units for instance fleets. The core units are not allowed to scale beyond
6286	// this boundary. The parameter is used to split capacity allocation between
6287	// core and task nodes.
6288	MaximumCoreCapacityUnits *int64 `type:"integer"`
6289
6290	// The upper boundary of On-Demand EC2 units. It is measured through vCPU cores
6291	// or instances for instance groups and measured through units for instance
6292	// fleets. The On-Demand units are not allowed to scale beyond this boundary.
6293	// The parameter is used to split capacity allocation between On-Demand and
6294	// Spot Instances.
6295	MaximumOnDemandCapacityUnits *int64 `type:"integer"`
6296
6297	// The lower boundary of EC2 units. It is measured through vCPU cores or instances
6298	// for instance groups and measured through units for instance fleets. Managed
6299	// scaling activities are not allowed beyond this boundary. The limit only applies
6300	// to the core and task nodes. The master node cannot be scaled after initial
6301	// configuration.
6302	//
6303	// MinimumCapacityUnits is a required field
6304	MinimumCapacityUnits *int64 `type:"integer" required:"true"`
6305
6306	// The unit type used for specifying a managed scaling policy.
6307	//
6308	// UnitType is a required field
6309	UnitType *string `type:"string" required:"true" enum:"ComputeLimitsUnitType"`
6310}
6311
6312// String returns the string representation
6313func (s ComputeLimits) String() string {
6314	return awsutil.Prettify(s)
6315}
6316
6317// GoString returns the string representation
6318func (s ComputeLimits) GoString() string {
6319	return s.String()
6320}
6321
6322// Validate inspects the fields of the type to determine if they are valid.
6323func (s *ComputeLimits) Validate() error {
6324	invalidParams := request.ErrInvalidParams{Context: "ComputeLimits"}
6325	if s.MaximumCapacityUnits == nil {
6326		invalidParams.Add(request.NewErrParamRequired("MaximumCapacityUnits"))
6327	}
6328	if s.MinimumCapacityUnits == nil {
6329		invalidParams.Add(request.NewErrParamRequired("MinimumCapacityUnits"))
6330	}
6331	if s.UnitType == nil {
6332		invalidParams.Add(request.NewErrParamRequired("UnitType"))
6333	}
6334
6335	if invalidParams.Len() > 0 {
6336		return invalidParams
6337	}
6338	return nil
6339}
6340
6341// SetMaximumCapacityUnits sets the MaximumCapacityUnits field's value.
6342func (s *ComputeLimits) SetMaximumCapacityUnits(v int64) *ComputeLimits {
6343	s.MaximumCapacityUnits = &v
6344	return s
6345}
6346
6347// SetMaximumCoreCapacityUnits sets the MaximumCoreCapacityUnits field's value.
6348func (s *ComputeLimits) SetMaximumCoreCapacityUnits(v int64) *ComputeLimits {
6349	s.MaximumCoreCapacityUnits = &v
6350	return s
6351}
6352
6353// SetMaximumOnDemandCapacityUnits sets the MaximumOnDemandCapacityUnits field's value.
6354func (s *ComputeLimits) SetMaximumOnDemandCapacityUnits(v int64) *ComputeLimits {
6355	s.MaximumOnDemandCapacityUnits = &v
6356	return s
6357}
6358
6359// SetMinimumCapacityUnits sets the MinimumCapacityUnits field's value.
6360func (s *ComputeLimits) SetMinimumCapacityUnits(v int64) *ComputeLimits {
6361	s.MinimumCapacityUnits = &v
6362	return s
6363}
6364
6365// SetUnitType sets the UnitType field's value.
6366func (s *ComputeLimits) SetUnitType(v string) *ComputeLimits {
6367	s.UnitType = &v
6368	return s
6369}
6370
6371//
6372// Amazon EMR releases 4.x or later.
6373//
6374// An optional configuration specification to be used when provisioning cluster
6375// instances, which can include configurations for applications and software
6376// bundled with Amazon EMR. A configuration consists of a classification, properties,
6377// and optional nested configurations. A classification refers to an application-specific
6378// configuration file. Properties are the settings you want to change in that
6379// file. For more information, see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
6380type Configuration struct {
6381	_ struct{} `type:"structure"`
6382
6383	// The classification within a configuration.
6384	Classification *string `type:"string"`
6385
6386	// A list of additional configurations to apply within a configuration object.
6387	Configurations []*Configuration `type:"list"`
6388
6389	// A set of properties specified within a configuration classification.
6390	Properties map[string]*string `type:"map"`
6391}
6392
6393// String returns the string representation
6394func (s Configuration) String() string {
6395	return awsutil.Prettify(s)
6396}
6397
6398// GoString returns the string representation
6399func (s Configuration) GoString() string {
6400	return s.String()
6401}
6402
6403// SetClassification sets the Classification field's value.
6404func (s *Configuration) SetClassification(v string) *Configuration {
6405	s.Classification = &v
6406	return s
6407}
6408
6409// SetConfigurations sets the Configurations field's value.
6410func (s *Configuration) SetConfigurations(v []*Configuration) *Configuration {
6411	s.Configurations = v
6412	return s
6413}
6414
6415// SetProperties sets the Properties field's value.
6416func (s *Configuration) SetProperties(v map[string]*string) *Configuration {
6417	s.Properties = v
6418	return s
6419}
6420
6421type CreateSecurityConfigurationInput struct {
6422	_ struct{} `type:"structure"`
6423
6424	// The name of the security configuration.
6425	//
6426	// Name is a required field
6427	Name *string `type:"string" required:"true"`
6428
6429	// The security configuration details in JSON format. For JSON parameters and
6430	// examples, see Use Security Configurations to Set Up Cluster Security (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)
6431	// in the Amazon EMR Management Guide.
6432	//
6433	// SecurityConfiguration is a required field
6434	SecurityConfiguration *string `type:"string" required:"true"`
6435}
6436
6437// String returns the string representation
6438func (s CreateSecurityConfigurationInput) String() string {
6439	return awsutil.Prettify(s)
6440}
6441
6442// GoString returns the string representation
6443func (s CreateSecurityConfigurationInput) GoString() string {
6444	return s.String()
6445}
6446
6447// Validate inspects the fields of the type to determine if they are valid.
6448func (s *CreateSecurityConfigurationInput) Validate() error {
6449	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
6450	if s.Name == nil {
6451		invalidParams.Add(request.NewErrParamRequired("Name"))
6452	}
6453	if s.SecurityConfiguration == nil {
6454		invalidParams.Add(request.NewErrParamRequired("SecurityConfiguration"))
6455	}
6456
6457	if invalidParams.Len() > 0 {
6458		return invalidParams
6459	}
6460	return nil
6461}
6462
6463// SetName sets the Name field's value.
6464func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
6465	s.Name = &v
6466	return s
6467}
6468
6469// SetSecurityConfiguration sets the SecurityConfiguration field's value.
6470func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *CreateSecurityConfigurationInput {
6471	s.SecurityConfiguration = &v
6472	return s
6473}
6474
6475type CreateSecurityConfigurationOutput struct {
6476	_ struct{} `type:"structure"`
6477
6478	// The date and time the security configuration was created.
6479	//
6480	// CreationDateTime is a required field
6481	CreationDateTime *time.Time `type:"timestamp" required:"true"`
6482
6483	// The name of the security configuration.
6484	//
6485	// Name is a required field
6486	Name *string `type:"string" required:"true"`
6487}
6488
6489// String returns the string representation
6490func (s CreateSecurityConfigurationOutput) String() string {
6491	return awsutil.Prettify(s)
6492}
6493
6494// GoString returns the string representation
6495func (s CreateSecurityConfigurationOutput) GoString() string {
6496	return s.String()
6497}
6498
6499// SetCreationDateTime sets the CreationDateTime field's value.
6500func (s *CreateSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *CreateSecurityConfigurationOutput {
6501	s.CreationDateTime = &v
6502	return s
6503}
6504
6505// SetName sets the Name field's value.
6506func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
6507	s.Name = &v
6508	return s
6509}
6510
6511type CreateStudioInput struct {
6512	_ struct{} `type:"structure"`
6513
6514	// Specifies whether the Studio authenticates users using single sign-on (SSO)
6515	// or IAM. Amazon EMR Studio currently only supports SSO authentication.
6516	//
6517	// AuthMode is a required field
6518	AuthMode *string `type:"string" required:"true" enum:"AuthMode"`
6519
6520	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
6521	// files.
6522	//
6523	// DefaultS3Location is a required field
6524	DefaultS3Location *string `type:"string" required:"true"`
6525
6526	// A detailed description of the Amazon EMR Studio.
6527	Description *string `type:"string"`
6528
6529	// The ID of the Amazon EMR Studio Engine security group. The Engine security
6530	// group allows inbound network traffic from the Workspace security group, and
6531	// it must be in the same VPC specified by VpcId.
6532	//
6533	// EngineSecurityGroupId is a required field
6534	EngineSecurityGroupId *string `type:"string" required:"true"`
6535
6536	// A descriptive name for the Amazon EMR Studio.
6537	//
6538	// Name is a required field
6539	Name *string `type:"string" required:"true"`
6540
6541	// The IAM role that will be assumed by the Amazon EMR Studio. The service role
6542	// provides a way for Amazon EMR Studio to interoperate with other AWS services.
6543	//
6544	// ServiceRole is a required field
6545	ServiceRole *string `type:"string" required:"true"`
6546
6547	// A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can
6548	// have a maximum of 5 subnets. The subnets must belong to the VPC specified
6549	// by VpcId. Studio users can create a Workspace in any of the specified subnets.
6550	//
6551	// SubnetIds is a required field
6552	SubnetIds []*string `type:"list" required:"true"`
6553
6554	// A list of tags to associate with the Amazon EMR Studio. Tags are user-defined
6555	// key-value pairs that consist of a required key string with a maximum of 128
6556	// characters, and an optional value string with a maximum of 256 characters.
6557	Tags []*Tag `type:"list"`
6558
6559	// The IAM user role that will be assumed by users and groups logged in to an
6560	// Amazon EMR Studio. The permissions attached to this IAM role can be scoped
6561	// down for each user or group using session policies.
6562	//
6563	// UserRole is a required field
6564	UserRole *string `type:"string" required:"true"`
6565
6566	// The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with
6567	// the Studio.
6568	//
6569	// VpcId is a required field
6570	VpcId *string `type:"string" required:"true"`
6571
6572	// The ID of the Amazon EMR Studio Workspace security group. The Workspace security
6573	// group allows outbound network traffic to resources in the Engine security
6574	// group, and it must be in the same VPC specified by VpcId.
6575	//
6576	// WorkspaceSecurityGroupId is a required field
6577	WorkspaceSecurityGroupId *string `type:"string" required:"true"`
6578}
6579
6580// String returns the string representation
6581func (s CreateStudioInput) String() string {
6582	return awsutil.Prettify(s)
6583}
6584
6585// GoString returns the string representation
6586func (s CreateStudioInput) GoString() string {
6587	return s.String()
6588}
6589
6590// Validate inspects the fields of the type to determine if they are valid.
6591func (s *CreateStudioInput) Validate() error {
6592	invalidParams := request.ErrInvalidParams{Context: "CreateStudioInput"}
6593	if s.AuthMode == nil {
6594		invalidParams.Add(request.NewErrParamRequired("AuthMode"))
6595	}
6596	if s.DefaultS3Location == nil {
6597		invalidParams.Add(request.NewErrParamRequired("DefaultS3Location"))
6598	}
6599	if s.EngineSecurityGroupId == nil {
6600		invalidParams.Add(request.NewErrParamRequired("EngineSecurityGroupId"))
6601	}
6602	if s.Name == nil {
6603		invalidParams.Add(request.NewErrParamRequired("Name"))
6604	}
6605	if s.ServiceRole == nil {
6606		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
6607	}
6608	if s.SubnetIds == nil {
6609		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
6610	}
6611	if s.UserRole == nil {
6612		invalidParams.Add(request.NewErrParamRequired("UserRole"))
6613	}
6614	if s.VpcId == nil {
6615		invalidParams.Add(request.NewErrParamRequired("VpcId"))
6616	}
6617	if s.WorkspaceSecurityGroupId == nil {
6618		invalidParams.Add(request.NewErrParamRequired("WorkspaceSecurityGroupId"))
6619	}
6620
6621	if invalidParams.Len() > 0 {
6622		return invalidParams
6623	}
6624	return nil
6625}
6626
6627// SetAuthMode sets the AuthMode field's value.
6628func (s *CreateStudioInput) SetAuthMode(v string) *CreateStudioInput {
6629	s.AuthMode = &v
6630	return s
6631}
6632
6633// SetDefaultS3Location sets the DefaultS3Location field's value.
6634func (s *CreateStudioInput) SetDefaultS3Location(v string) *CreateStudioInput {
6635	s.DefaultS3Location = &v
6636	return s
6637}
6638
6639// SetDescription sets the Description field's value.
6640func (s *CreateStudioInput) SetDescription(v string) *CreateStudioInput {
6641	s.Description = &v
6642	return s
6643}
6644
6645// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
6646func (s *CreateStudioInput) SetEngineSecurityGroupId(v string) *CreateStudioInput {
6647	s.EngineSecurityGroupId = &v
6648	return s
6649}
6650
6651// SetName sets the Name field's value.
6652func (s *CreateStudioInput) SetName(v string) *CreateStudioInput {
6653	s.Name = &v
6654	return s
6655}
6656
6657// SetServiceRole sets the ServiceRole field's value.
6658func (s *CreateStudioInput) SetServiceRole(v string) *CreateStudioInput {
6659	s.ServiceRole = &v
6660	return s
6661}
6662
6663// SetSubnetIds sets the SubnetIds field's value.
6664func (s *CreateStudioInput) SetSubnetIds(v []*string) *CreateStudioInput {
6665	s.SubnetIds = v
6666	return s
6667}
6668
6669// SetTags sets the Tags field's value.
6670func (s *CreateStudioInput) SetTags(v []*Tag) *CreateStudioInput {
6671	s.Tags = v
6672	return s
6673}
6674
6675// SetUserRole sets the UserRole field's value.
6676func (s *CreateStudioInput) SetUserRole(v string) *CreateStudioInput {
6677	s.UserRole = &v
6678	return s
6679}
6680
6681// SetVpcId sets the VpcId field's value.
6682func (s *CreateStudioInput) SetVpcId(v string) *CreateStudioInput {
6683	s.VpcId = &v
6684	return s
6685}
6686
6687// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
6688func (s *CreateStudioInput) SetWorkspaceSecurityGroupId(v string) *CreateStudioInput {
6689	s.WorkspaceSecurityGroupId = &v
6690	return s
6691}
6692
6693type CreateStudioOutput struct {
6694	_ struct{} `type:"structure"`
6695
6696	// The ID of the Amazon EMR Studio.
6697	StudioId *string `type:"string"`
6698
6699	// The unique Studio access URL.
6700	Url *string `type:"string"`
6701}
6702
6703// String returns the string representation
6704func (s CreateStudioOutput) String() string {
6705	return awsutil.Prettify(s)
6706}
6707
6708// GoString returns the string representation
6709func (s CreateStudioOutput) GoString() string {
6710	return s.String()
6711}
6712
6713// SetStudioId sets the StudioId field's value.
6714func (s *CreateStudioOutput) SetStudioId(v string) *CreateStudioOutput {
6715	s.StudioId = &v
6716	return s
6717}
6718
6719// SetUrl sets the Url field's value.
6720func (s *CreateStudioOutput) SetUrl(v string) *CreateStudioOutput {
6721	s.Url = &v
6722	return s
6723}
6724
6725type CreateStudioSessionMappingInput struct {
6726	_ struct{} `type:"structure"`
6727
6728	// The globally unique identifier (GUID) of the user or group from the AWS SSO
6729	// Identity Store. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
6730	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
6731	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6732	// must be specified.
6733	IdentityId *string `type:"string"`
6734
6735	// 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)
6736	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
6737	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6738	// must be specified.
6739	IdentityName *string `type:"string"`
6740
6741	// Specifies whether the identity to map to the Amazon EMR Studio is a user
6742	// or a group.
6743	//
6744	// IdentityType is a required field
6745	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
6746
6747	// The Amazon Resource Name (ARN) for the session policy that will be applied
6748	// to the user or group. Session policies refine Studio user permissions without
6749	// the need to use multiple IAM user roles.
6750	//
6751	// SessionPolicyArn is a required field
6752	SessionPolicyArn *string `type:"string" required:"true"`
6753
6754	// The ID of the Amazon EMR Studio to which the user or group will be mapped.
6755	//
6756	// StudioId is a required field
6757	StudioId *string `type:"string" required:"true"`
6758}
6759
6760// String returns the string representation
6761func (s CreateStudioSessionMappingInput) String() string {
6762	return awsutil.Prettify(s)
6763}
6764
6765// GoString returns the string representation
6766func (s CreateStudioSessionMappingInput) GoString() string {
6767	return s.String()
6768}
6769
6770// Validate inspects the fields of the type to determine if they are valid.
6771func (s *CreateStudioSessionMappingInput) Validate() error {
6772	invalidParams := request.ErrInvalidParams{Context: "CreateStudioSessionMappingInput"}
6773	if s.IdentityType == nil {
6774		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
6775	}
6776	if s.SessionPolicyArn == nil {
6777		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
6778	}
6779	if s.StudioId == nil {
6780		invalidParams.Add(request.NewErrParamRequired("StudioId"))
6781	}
6782
6783	if invalidParams.Len() > 0 {
6784		return invalidParams
6785	}
6786	return nil
6787}
6788
6789// SetIdentityId sets the IdentityId field's value.
6790func (s *CreateStudioSessionMappingInput) SetIdentityId(v string) *CreateStudioSessionMappingInput {
6791	s.IdentityId = &v
6792	return s
6793}
6794
6795// SetIdentityName sets the IdentityName field's value.
6796func (s *CreateStudioSessionMappingInput) SetIdentityName(v string) *CreateStudioSessionMappingInput {
6797	s.IdentityName = &v
6798	return s
6799}
6800
6801// SetIdentityType sets the IdentityType field's value.
6802func (s *CreateStudioSessionMappingInput) SetIdentityType(v string) *CreateStudioSessionMappingInput {
6803	s.IdentityType = &v
6804	return s
6805}
6806
6807// SetSessionPolicyArn sets the SessionPolicyArn field's value.
6808func (s *CreateStudioSessionMappingInput) SetSessionPolicyArn(v string) *CreateStudioSessionMappingInput {
6809	s.SessionPolicyArn = &v
6810	return s
6811}
6812
6813// SetStudioId sets the StudioId field's value.
6814func (s *CreateStudioSessionMappingInput) SetStudioId(v string) *CreateStudioSessionMappingInput {
6815	s.StudioId = &v
6816	return s
6817}
6818
6819type CreateStudioSessionMappingOutput struct {
6820	_ struct{} `type:"structure"`
6821}
6822
6823// String returns the string representation
6824func (s CreateStudioSessionMappingOutput) String() string {
6825	return awsutil.Prettify(s)
6826}
6827
6828// GoString returns the string representation
6829func (s CreateStudioSessionMappingOutput) GoString() string {
6830	return s.String()
6831}
6832
6833type DeleteSecurityConfigurationInput struct {
6834	_ struct{} `type:"structure"`
6835
6836	// The name of the security configuration.
6837	//
6838	// Name is a required field
6839	Name *string `type:"string" required:"true"`
6840}
6841
6842// String returns the string representation
6843func (s DeleteSecurityConfigurationInput) String() string {
6844	return awsutil.Prettify(s)
6845}
6846
6847// GoString returns the string representation
6848func (s DeleteSecurityConfigurationInput) GoString() string {
6849	return s.String()
6850}
6851
6852// Validate inspects the fields of the type to determine if they are valid.
6853func (s *DeleteSecurityConfigurationInput) Validate() error {
6854	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
6855	if s.Name == nil {
6856		invalidParams.Add(request.NewErrParamRequired("Name"))
6857	}
6858
6859	if invalidParams.Len() > 0 {
6860		return invalidParams
6861	}
6862	return nil
6863}
6864
6865// SetName sets the Name field's value.
6866func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
6867	s.Name = &v
6868	return s
6869}
6870
6871type DeleteSecurityConfigurationOutput struct {
6872	_ struct{} `type:"structure"`
6873}
6874
6875// String returns the string representation
6876func (s DeleteSecurityConfigurationOutput) String() string {
6877	return awsutil.Prettify(s)
6878}
6879
6880// GoString returns the string representation
6881func (s DeleteSecurityConfigurationOutput) GoString() string {
6882	return s.String()
6883}
6884
6885type DeleteStudioInput struct {
6886	_ struct{} `type:"structure"`
6887
6888	// The ID of the Amazon EMR Studio.
6889	//
6890	// StudioId is a required field
6891	StudioId *string `type:"string" required:"true"`
6892}
6893
6894// String returns the string representation
6895func (s DeleteStudioInput) String() string {
6896	return awsutil.Prettify(s)
6897}
6898
6899// GoString returns the string representation
6900func (s DeleteStudioInput) GoString() string {
6901	return s.String()
6902}
6903
6904// Validate inspects the fields of the type to determine if they are valid.
6905func (s *DeleteStudioInput) Validate() error {
6906	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioInput"}
6907	if s.StudioId == nil {
6908		invalidParams.Add(request.NewErrParamRequired("StudioId"))
6909	}
6910
6911	if invalidParams.Len() > 0 {
6912		return invalidParams
6913	}
6914	return nil
6915}
6916
6917// SetStudioId sets the StudioId field's value.
6918func (s *DeleteStudioInput) SetStudioId(v string) *DeleteStudioInput {
6919	s.StudioId = &v
6920	return s
6921}
6922
6923type DeleteStudioOutput struct {
6924	_ struct{} `type:"structure"`
6925}
6926
6927// String returns the string representation
6928func (s DeleteStudioOutput) String() string {
6929	return awsutil.Prettify(s)
6930}
6931
6932// GoString returns the string representation
6933func (s DeleteStudioOutput) GoString() string {
6934	return s.String()
6935}
6936
6937type DeleteStudioSessionMappingInput struct {
6938	_ struct{} `type:"structure"`
6939
6940	// The globally unique identifier (GUID) of the user or group to remove from
6941	// the Amazon EMR Studio. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
6942	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
6943	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6944	// must be specified.
6945	IdentityId *string `type:"string"`
6946
6947	// The name of the user name or group to remove from the Amazon EMR Studio.
6948	// For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
6949	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
6950	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6951	// must be specified.
6952	IdentityName *string `type:"string"`
6953
6954	// Specifies whether the identity to delete from the Amazon EMR Studio is a
6955	// user or a group.
6956	//
6957	// IdentityType is a required field
6958	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
6959
6960	// The ID of the Amazon EMR Studio.
6961	//
6962	// StudioId is a required field
6963	StudioId *string `type:"string" required:"true"`
6964}
6965
6966// String returns the string representation
6967func (s DeleteStudioSessionMappingInput) String() string {
6968	return awsutil.Prettify(s)
6969}
6970
6971// GoString returns the string representation
6972func (s DeleteStudioSessionMappingInput) GoString() string {
6973	return s.String()
6974}
6975
6976// Validate inspects the fields of the type to determine if they are valid.
6977func (s *DeleteStudioSessionMappingInput) Validate() error {
6978	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioSessionMappingInput"}
6979	if s.IdentityType == nil {
6980		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
6981	}
6982	if s.StudioId == nil {
6983		invalidParams.Add(request.NewErrParamRequired("StudioId"))
6984	}
6985
6986	if invalidParams.Len() > 0 {
6987		return invalidParams
6988	}
6989	return nil
6990}
6991
6992// SetIdentityId sets the IdentityId field's value.
6993func (s *DeleteStudioSessionMappingInput) SetIdentityId(v string) *DeleteStudioSessionMappingInput {
6994	s.IdentityId = &v
6995	return s
6996}
6997
6998// SetIdentityName sets the IdentityName field's value.
6999func (s *DeleteStudioSessionMappingInput) SetIdentityName(v string) *DeleteStudioSessionMappingInput {
7000	s.IdentityName = &v
7001	return s
7002}
7003
7004// SetIdentityType sets the IdentityType field's value.
7005func (s *DeleteStudioSessionMappingInput) SetIdentityType(v string) *DeleteStudioSessionMappingInput {
7006	s.IdentityType = &v
7007	return s
7008}
7009
7010// SetStudioId sets the StudioId field's value.
7011func (s *DeleteStudioSessionMappingInput) SetStudioId(v string) *DeleteStudioSessionMappingInput {
7012	s.StudioId = &v
7013	return s
7014}
7015
7016type DeleteStudioSessionMappingOutput struct {
7017	_ struct{} `type:"structure"`
7018}
7019
7020// String returns the string representation
7021func (s DeleteStudioSessionMappingOutput) String() string {
7022	return awsutil.Prettify(s)
7023}
7024
7025// GoString returns the string representation
7026func (s DeleteStudioSessionMappingOutput) GoString() string {
7027	return s.String()
7028}
7029
7030// This input determines which cluster to describe.
7031type DescribeClusterInput struct {
7032	_ struct{} `type:"structure"`
7033
7034	// The identifier of the cluster to describe.
7035	//
7036	// ClusterId is a required field
7037	ClusterId *string `type:"string" required:"true"`
7038}
7039
7040// String returns the string representation
7041func (s DescribeClusterInput) String() string {
7042	return awsutil.Prettify(s)
7043}
7044
7045// GoString returns the string representation
7046func (s DescribeClusterInput) GoString() string {
7047	return s.String()
7048}
7049
7050// Validate inspects the fields of the type to determine if they are valid.
7051func (s *DescribeClusterInput) Validate() error {
7052	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
7053	if s.ClusterId == nil {
7054		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7055	}
7056
7057	if invalidParams.Len() > 0 {
7058		return invalidParams
7059	}
7060	return nil
7061}
7062
7063// SetClusterId sets the ClusterId field's value.
7064func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
7065	s.ClusterId = &v
7066	return s
7067}
7068
7069// This output contains the description of the cluster.
7070type DescribeClusterOutput struct {
7071	_ struct{} `type:"structure"`
7072
7073	// This output contains the details for the requested cluster.
7074	Cluster *Cluster `type:"structure"`
7075}
7076
7077// String returns the string representation
7078func (s DescribeClusterOutput) String() string {
7079	return awsutil.Prettify(s)
7080}
7081
7082// GoString returns the string representation
7083func (s DescribeClusterOutput) GoString() string {
7084	return s.String()
7085}
7086
7087// SetCluster sets the Cluster field's value.
7088func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
7089	s.Cluster = v
7090	return s
7091}
7092
7093// The input for the DescribeJobFlows operation.
7094type DescribeJobFlowsInput struct {
7095	_ struct{} `type:"structure"`
7096
7097	// Return only job flows created after this date and time.
7098	CreatedAfter *time.Time `type:"timestamp"`
7099
7100	// Return only job flows created before this date and time.
7101	CreatedBefore *time.Time `type:"timestamp"`
7102
7103	// Return only job flows whose job flow ID is contained in this list.
7104	JobFlowIds []*string `type:"list"`
7105
7106	// Return only job flows whose state is contained in this list.
7107	JobFlowStates []*string `type:"list"`
7108}
7109
7110// String returns the string representation
7111func (s DescribeJobFlowsInput) String() string {
7112	return awsutil.Prettify(s)
7113}
7114
7115// GoString returns the string representation
7116func (s DescribeJobFlowsInput) GoString() string {
7117	return s.String()
7118}
7119
7120// SetCreatedAfter sets the CreatedAfter field's value.
7121func (s *DescribeJobFlowsInput) SetCreatedAfter(v time.Time) *DescribeJobFlowsInput {
7122	s.CreatedAfter = &v
7123	return s
7124}
7125
7126// SetCreatedBefore sets the CreatedBefore field's value.
7127func (s *DescribeJobFlowsInput) SetCreatedBefore(v time.Time) *DescribeJobFlowsInput {
7128	s.CreatedBefore = &v
7129	return s
7130}
7131
7132// SetJobFlowIds sets the JobFlowIds field's value.
7133func (s *DescribeJobFlowsInput) SetJobFlowIds(v []*string) *DescribeJobFlowsInput {
7134	s.JobFlowIds = v
7135	return s
7136}
7137
7138// SetJobFlowStates sets the JobFlowStates field's value.
7139func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsInput {
7140	s.JobFlowStates = v
7141	return s
7142}
7143
7144// The output for the DescribeJobFlows operation.
7145type DescribeJobFlowsOutput struct {
7146	_ struct{} `type:"structure"`
7147
7148	// A list of job flows matching the parameters supplied.
7149	JobFlows []*JobFlowDetail `type:"list"`
7150}
7151
7152// String returns the string representation
7153func (s DescribeJobFlowsOutput) String() string {
7154	return awsutil.Prettify(s)
7155}
7156
7157// GoString returns the string representation
7158func (s DescribeJobFlowsOutput) GoString() string {
7159	return s.String()
7160}
7161
7162// SetJobFlows sets the JobFlows field's value.
7163func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlowsOutput {
7164	s.JobFlows = v
7165	return s
7166}
7167
7168type DescribeNotebookExecutionInput struct {
7169	_ struct{} `type:"structure"`
7170
7171	// The unique identifier of the notebook execution.
7172	//
7173	// NotebookExecutionId is a required field
7174	NotebookExecutionId *string `type:"string" required:"true"`
7175}
7176
7177// String returns the string representation
7178func (s DescribeNotebookExecutionInput) String() string {
7179	return awsutil.Prettify(s)
7180}
7181
7182// GoString returns the string representation
7183func (s DescribeNotebookExecutionInput) GoString() string {
7184	return s.String()
7185}
7186
7187// Validate inspects the fields of the type to determine if they are valid.
7188func (s *DescribeNotebookExecutionInput) Validate() error {
7189	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookExecutionInput"}
7190	if s.NotebookExecutionId == nil {
7191		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
7192	}
7193
7194	if invalidParams.Len() > 0 {
7195		return invalidParams
7196	}
7197	return nil
7198}
7199
7200// SetNotebookExecutionId sets the NotebookExecutionId field's value.
7201func (s *DescribeNotebookExecutionInput) SetNotebookExecutionId(v string) *DescribeNotebookExecutionInput {
7202	s.NotebookExecutionId = &v
7203	return s
7204}
7205
7206type DescribeNotebookExecutionOutput struct {
7207	_ struct{} `type:"structure"`
7208
7209	// Properties of the notebook execution.
7210	NotebookExecution *NotebookExecution `type:"structure"`
7211}
7212
7213// String returns the string representation
7214func (s DescribeNotebookExecutionOutput) String() string {
7215	return awsutil.Prettify(s)
7216}
7217
7218// GoString returns the string representation
7219func (s DescribeNotebookExecutionOutput) GoString() string {
7220	return s.String()
7221}
7222
7223// SetNotebookExecution sets the NotebookExecution field's value.
7224func (s *DescribeNotebookExecutionOutput) SetNotebookExecution(v *NotebookExecution) *DescribeNotebookExecutionOutput {
7225	s.NotebookExecution = v
7226	return s
7227}
7228
7229type DescribeSecurityConfigurationInput struct {
7230	_ struct{} `type:"structure"`
7231
7232	// The name of the security configuration.
7233	//
7234	// Name is a required field
7235	Name *string `type:"string" required:"true"`
7236}
7237
7238// String returns the string representation
7239func (s DescribeSecurityConfigurationInput) String() string {
7240	return awsutil.Prettify(s)
7241}
7242
7243// GoString returns the string representation
7244func (s DescribeSecurityConfigurationInput) GoString() string {
7245	return s.String()
7246}
7247
7248// Validate inspects the fields of the type to determine if they are valid.
7249func (s *DescribeSecurityConfigurationInput) Validate() error {
7250	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityConfigurationInput"}
7251	if s.Name == nil {
7252		invalidParams.Add(request.NewErrParamRequired("Name"))
7253	}
7254
7255	if invalidParams.Len() > 0 {
7256		return invalidParams
7257	}
7258	return nil
7259}
7260
7261// SetName sets the Name field's value.
7262func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurityConfigurationInput {
7263	s.Name = &v
7264	return s
7265}
7266
7267type DescribeSecurityConfigurationOutput struct {
7268	_ struct{} `type:"structure"`
7269
7270	// The date and time the security configuration was created
7271	CreationDateTime *time.Time `type:"timestamp"`
7272
7273	// The name of the security configuration.
7274	Name *string `type:"string"`
7275
7276	// The security configuration details in JSON format.
7277	SecurityConfiguration *string `type:"string"`
7278}
7279
7280// String returns the string representation
7281func (s DescribeSecurityConfigurationOutput) String() string {
7282	return awsutil.Prettify(s)
7283}
7284
7285// GoString returns the string representation
7286func (s DescribeSecurityConfigurationOutput) GoString() string {
7287	return s.String()
7288}
7289
7290// SetCreationDateTime sets the CreationDateTime field's value.
7291func (s *DescribeSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *DescribeSecurityConfigurationOutput {
7292	s.CreationDateTime = &v
7293	return s
7294}
7295
7296// SetName sets the Name field's value.
7297func (s *DescribeSecurityConfigurationOutput) SetName(v string) *DescribeSecurityConfigurationOutput {
7298	s.Name = &v
7299	return s
7300}
7301
7302// SetSecurityConfiguration sets the SecurityConfiguration field's value.
7303func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) *DescribeSecurityConfigurationOutput {
7304	s.SecurityConfiguration = &v
7305	return s
7306}
7307
7308// This input determines which step to describe.
7309type DescribeStepInput struct {
7310	_ struct{} `type:"structure"`
7311
7312	// The identifier of the cluster with steps to describe.
7313	//
7314	// ClusterId is a required field
7315	ClusterId *string `type:"string" required:"true"`
7316
7317	// The identifier of the step to describe.
7318	//
7319	// StepId is a required field
7320	StepId *string `type:"string" required:"true"`
7321}
7322
7323// String returns the string representation
7324func (s DescribeStepInput) String() string {
7325	return awsutil.Prettify(s)
7326}
7327
7328// GoString returns the string representation
7329func (s DescribeStepInput) GoString() string {
7330	return s.String()
7331}
7332
7333// Validate inspects the fields of the type to determine if they are valid.
7334func (s *DescribeStepInput) Validate() error {
7335	invalidParams := request.ErrInvalidParams{Context: "DescribeStepInput"}
7336	if s.ClusterId == nil {
7337		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7338	}
7339	if s.StepId == nil {
7340		invalidParams.Add(request.NewErrParamRequired("StepId"))
7341	}
7342
7343	if invalidParams.Len() > 0 {
7344		return invalidParams
7345	}
7346	return nil
7347}
7348
7349// SetClusterId sets the ClusterId field's value.
7350func (s *DescribeStepInput) SetClusterId(v string) *DescribeStepInput {
7351	s.ClusterId = &v
7352	return s
7353}
7354
7355// SetStepId sets the StepId field's value.
7356func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput {
7357	s.StepId = &v
7358	return s
7359}
7360
7361// This output contains the description of the cluster step.
7362type DescribeStepOutput struct {
7363	_ struct{} `type:"structure"`
7364
7365	// The step details for the requested step identifier.
7366	Step *Step `type:"structure"`
7367}
7368
7369// String returns the string representation
7370func (s DescribeStepOutput) String() string {
7371	return awsutil.Prettify(s)
7372}
7373
7374// GoString returns the string representation
7375func (s DescribeStepOutput) GoString() string {
7376	return s.String()
7377}
7378
7379// SetStep sets the Step field's value.
7380func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput {
7381	s.Step = v
7382	return s
7383}
7384
7385type DescribeStudioInput struct {
7386	_ struct{} `type:"structure"`
7387
7388	// The Amazon EMR Studio ID.
7389	//
7390	// StudioId is a required field
7391	StudioId *string `type:"string" required:"true"`
7392}
7393
7394// String returns the string representation
7395func (s DescribeStudioInput) String() string {
7396	return awsutil.Prettify(s)
7397}
7398
7399// GoString returns the string representation
7400func (s DescribeStudioInput) GoString() string {
7401	return s.String()
7402}
7403
7404// Validate inspects the fields of the type to determine if they are valid.
7405func (s *DescribeStudioInput) Validate() error {
7406	invalidParams := request.ErrInvalidParams{Context: "DescribeStudioInput"}
7407	if s.StudioId == nil {
7408		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7409	}
7410
7411	if invalidParams.Len() > 0 {
7412		return invalidParams
7413	}
7414	return nil
7415}
7416
7417// SetStudioId sets the StudioId field's value.
7418func (s *DescribeStudioInput) SetStudioId(v string) *DescribeStudioInput {
7419	s.StudioId = &v
7420	return s
7421}
7422
7423type DescribeStudioOutput struct {
7424	_ struct{} `type:"structure"`
7425
7426	// The Amazon EMR Studio details.
7427	Studio *Studio `type:"structure"`
7428}
7429
7430// String returns the string representation
7431func (s DescribeStudioOutput) String() string {
7432	return awsutil.Prettify(s)
7433}
7434
7435// GoString returns the string representation
7436func (s DescribeStudioOutput) GoString() string {
7437	return s.String()
7438}
7439
7440// SetStudio sets the Studio field's value.
7441func (s *DescribeStudioOutput) SetStudio(v *Studio) *DescribeStudioOutput {
7442	s.Studio = v
7443	return s
7444}
7445
7446// Configuration of requested EBS block device associated with the instance
7447// group.
7448type EbsBlockDevice struct {
7449	_ struct{} `type:"structure"`
7450
7451	// The device name that is exposed to the instance, such as /dev/sdh.
7452	Device *string `type:"string"`
7453
7454	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
7455	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
7456	VolumeSpecification *VolumeSpecification `type:"structure"`
7457}
7458
7459// String returns the string representation
7460func (s EbsBlockDevice) String() string {
7461	return awsutil.Prettify(s)
7462}
7463
7464// GoString returns the string representation
7465func (s EbsBlockDevice) GoString() string {
7466	return s.String()
7467}
7468
7469// SetDevice sets the Device field's value.
7470func (s *EbsBlockDevice) SetDevice(v string) *EbsBlockDevice {
7471	s.Device = &v
7472	return s
7473}
7474
7475// SetVolumeSpecification sets the VolumeSpecification field's value.
7476func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDevice {
7477	s.VolumeSpecification = v
7478	return s
7479}
7480
7481// Configuration of requested EBS block device associated with the instance
7482// group with count of volumes that will be associated to every instance.
7483type EbsBlockDeviceConfig struct {
7484	_ struct{} `type:"structure"`
7485
7486	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
7487	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
7488	//
7489	// VolumeSpecification is a required field
7490	VolumeSpecification *VolumeSpecification `type:"structure" required:"true"`
7491
7492	// Number of EBS volumes with a specific volume configuration that will be associated
7493	// with every instance in the instance group
7494	VolumesPerInstance *int64 `type:"integer"`
7495}
7496
7497// String returns the string representation
7498func (s EbsBlockDeviceConfig) String() string {
7499	return awsutil.Prettify(s)
7500}
7501
7502// GoString returns the string representation
7503func (s EbsBlockDeviceConfig) GoString() string {
7504	return s.String()
7505}
7506
7507// Validate inspects the fields of the type to determine if they are valid.
7508func (s *EbsBlockDeviceConfig) Validate() error {
7509	invalidParams := request.ErrInvalidParams{Context: "EbsBlockDeviceConfig"}
7510	if s.VolumeSpecification == nil {
7511		invalidParams.Add(request.NewErrParamRequired("VolumeSpecification"))
7512	}
7513	if s.VolumeSpecification != nil {
7514		if err := s.VolumeSpecification.Validate(); err != nil {
7515			invalidParams.AddNested("VolumeSpecification", err.(request.ErrInvalidParams))
7516		}
7517	}
7518
7519	if invalidParams.Len() > 0 {
7520		return invalidParams
7521	}
7522	return nil
7523}
7524
7525// SetVolumeSpecification sets the VolumeSpecification field's value.
7526func (s *EbsBlockDeviceConfig) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDeviceConfig {
7527	s.VolumeSpecification = v
7528	return s
7529}
7530
7531// SetVolumesPerInstance sets the VolumesPerInstance field's value.
7532func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceConfig {
7533	s.VolumesPerInstance = &v
7534	return s
7535}
7536
7537// The Amazon EBS configuration of a cluster instance.
7538type EbsConfiguration struct {
7539	_ struct{} `type:"structure"`
7540
7541	// An array of Amazon EBS volume specifications attached to a cluster instance.
7542	EbsBlockDeviceConfigs []*EbsBlockDeviceConfig `type:"list"`
7543
7544	// Indicates whether an Amazon EBS volume is EBS-optimized.
7545	EbsOptimized *bool `type:"boolean"`
7546}
7547
7548// String returns the string representation
7549func (s EbsConfiguration) String() string {
7550	return awsutil.Prettify(s)
7551}
7552
7553// GoString returns the string representation
7554func (s EbsConfiguration) GoString() string {
7555	return s.String()
7556}
7557
7558// Validate inspects the fields of the type to determine if they are valid.
7559func (s *EbsConfiguration) Validate() error {
7560	invalidParams := request.ErrInvalidParams{Context: "EbsConfiguration"}
7561	if s.EbsBlockDeviceConfigs != nil {
7562		for i, v := range s.EbsBlockDeviceConfigs {
7563			if v == nil {
7564				continue
7565			}
7566			if err := v.Validate(); err != nil {
7567				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EbsBlockDeviceConfigs", i), err.(request.ErrInvalidParams))
7568			}
7569		}
7570	}
7571
7572	if invalidParams.Len() > 0 {
7573		return invalidParams
7574	}
7575	return nil
7576}
7577
7578// SetEbsBlockDeviceConfigs sets the EbsBlockDeviceConfigs field's value.
7579func (s *EbsConfiguration) SetEbsBlockDeviceConfigs(v []*EbsBlockDeviceConfig) *EbsConfiguration {
7580	s.EbsBlockDeviceConfigs = v
7581	return s
7582}
7583
7584// SetEbsOptimized sets the EbsOptimized field's value.
7585func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration {
7586	s.EbsOptimized = &v
7587	return s
7588}
7589
7590// EBS block device that's attached to an EC2 instance.
7591type EbsVolume struct {
7592	_ struct{} `type:"structure"`
7593
7594	// The device name that is exposed to the instance, such as /dev/sdh.
7595	Device *string `type:"string"`
7596
7597	// The volume identifier of the EBS volume.
7598	VolumeId *string `type:"string"`
7599}
7600
7601// String returns the string representation
7602func (s EbsVolume) String() string {
7603	return awsutil.Prettify(s)
7604}
7605
7606// GoString returns the string representation
7607func (s EbsVolume) GoString() string {
7608	return s.String()
7609}
7610
7611// SetDevice sets the Device field's value.
7612func (s *EbsVolume) SetDevice(v string) *EbsVolume {
7613	s.Device = &v
7614	return s
7615}
7616
7617// SetVolumeId sets the VolumeId field's value.
7618func (s *EbsVolume) SetVolumeId(v string) *EbsVolume {
7619	s.VolumeId = &v
7620	return s
7621}
7622
7623// Provides information about the EC2 instances in a cluster grouped by category.
7624// For example, key name, subnet ID, IAM instance profile, and so on.
7625type Ec2InstanceAttributes struct {
7626	_ struct{} `type:"structure"`
7627
7628	// A list of additional Amazon EC2 security group IDs for the master node.
7629	AdditionalMasterSecurityGroups []*string `type:"list"`
7630
7631	// A list of additional Amazon EC2 security group IDs for the core and task
7632	// nodes.
7633	AdditionalSlaveSecurityGroups []*string `type:"list"`
7634
7635	// The Availability Zone in which the cluster will run.
7636	Ec2AvailabilityZone *string `type:"string"`
7637
7638	// The name of the Amazon EC2 key pair to use when connecting with SSH into
7639	// the master node as a user named "hadoop".
7640	Ec2KeyName *string `type:"string"`
7641
7642	// Set this parameter to the identifier of the Amazon VPC subnet where you want
7643	// the cluster to launch. If you do not specify this value, and your account
7644	// supports EC2-Classic, the cluster launches in EC2-Classic.
7645	Ec2SubnetId *string `type:"string"`
7646
7647	// The identifier of the Amazon EC2 security group for the master node.
7648	EmrManagedMasterSecurityGroup *string `type:"string"`
7649
7650	// The identifier of the Amazon EC2 security group for the core and task nodes.
7651	EmrManagedSlaveSecurityGroup *string `type:"string"`
7652
7653	// The IAM role that was specified when the cluster was launched. The EC2 instances
7654	// of the cluster assume this role.
7655	IamInstanceProfile *string `type:"string"`
7656
7657	// Applies to clusters configured with the instance fleets option. Specifies
7658	// one or more Availability Zones in which to launch EC2 cluster instances when
7659	// the EC2-Classic network configuration is supported. Amazon EMR chooses the
7660	// Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones,
7661	// and then launches all cluster instances within that Availability Zone. If
7662	// you do not specify this value, Amazon EMR chooses the Availability Zone for
7663	// you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified
7664	// together.
7665	RequestedEc2AvailabilityZones []*string `type:"list"`
7666
7667	// Applies to clusters configured with the instance fleets option. Specifies
7668	// the unique identifier of one or more Amazon EC2 subnets in which to launch
7669	// EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR
7670	// chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds,
7671	// and then launches all cluster instances within that Subnet. If this value
7672	// is not specified, and the account and Region support EC2-Classic networks,
7673	// the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones
7674	// instead of this setting. If EC2-Classic is not supported, and no Subnet is
7675	// specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and
7676	// RequestedEc2AvailabilityZones cannot be specified together.
7677	RequestedEc2SubnetIds []*string `type:"list"`
7678
7679	// The identifier of the Amazon EC2 security group for the Amazon EMR service
7680	// to access clusters in VPC private subnets.
7681	ServiceAccessSecurityGroup *string `type:"string"`
7682}
7683
7684// String returns the string representation
7685func (s Ec2InstanceAttributes) String() string {
7686	return awsutil.Prettify(s)
7687}
7688
7689// GoString returns the string representation
7690func (s Ec2InstanceAttributes) GoString() string {
7691	return s.String()
7692}
7693
7694// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
7695func (s *Ec2InstanceAttributes) SetAdditionalMasterSecurityGroups(v []*string) *Ec2InstanceAttributes {
7696	s.AdditionalMasterSecurityGroups = v
7697	return s
7698}
7699
7700// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
7701func (s *Ec2InstanceAttributes) SetAdditionalSlaveSecurityGroups(v []*string) *Ec2InstanceAttributes {
7702	s.AdditionalSlaveSecurityGroups = v
7703	return s
7704}
7705
7706// SetEc2AvailabilityZone sets the Ec2AvailabilityZone field's value.
7707func (s *Ec2InstanceAttributes) SetEc2AvailabilityZone(v string) *Ec2InstanceAttributes {
7708	s.Ec2AvailabilityZone = &v
7709	return s
7710}
7711
7712// SetEc2KeyName sets the Ec2KeyName field's value.
7713func (s *Ec2InstanceAttributes) SetEc2KeyName(v string) *Ec2InstanceAttributes {
7714	s.Ec2KeyName = &v
7715	return s
7716}
7717
7718// SetEc2SubnetId sets the Ec2SubnetId field's value.
7719func (s *Ec2InstanceAttributes) SetEc2SubnetId(v string) *Ec2InstanceAttributes {
7720	s.Ec2SubnetId = &v
7721	return s
7722}
7723
7724// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
7725func (s *Ec2InstanceAttributes) SetEmrManagedMasterSecurityGroup(v string) *Ec2InstanceAttributes {
7726	s.EmrManagedMasterSecurityGroup = &v
7727	return s
7728}
7729
7730// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
7731func (s *Ec2InstanceAttributes) SetEmrManagedSlaveSecurityGroup(v string) *Ec2InstanceAttributes {
7732	s.EmrManagedSlaveSecurityGroup = &v
7733	return s
7734}
7735
7736// SetIamInstanceProfile sets the IamInstanceProfile field's value.
7737func (s *Ec2InstanceAttributes) SetIamInstanceProfile(v string) *Ec2InstanceAttributes {
7738	s.IamInstanceProfile = &v
7739	return s
7740}
7741
7742// SetRequestedEc2AvailabilityZones sets the RequestedEc2AvailabilityZones field's value.
7743func (s *Ec2InstanceAttributes) SetRequestedEc2AvailabilityZones(v []*string) *Ec2InstanceAttributes {
7744	s.RequestedEc2AvailabilityZones = v
7745	return s
7746}
7747
7748// SetRequestedEc2SubnetIds sets the RequestedEc2SubnetIds field's value.
7749func (s *Ec2InstanceAttributes) SetRequestedEc2SubnetIds(v []*string) *Ec2InstanceAttributes {
7750	s.RequestedEc2SubnetIds = v
7751	return s
7752}
7753
7754// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
7755func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2InstanceAttributes {
7756	s.ServiceAccessSecurityGroup = &v
7757	return s
7758}
7759
7760// Specifies the execution engine (cluster) to run the notebook and perform
7761// the notebook execution, for example, an EMR cluster.
7762type ExecutionEngineConfig struct {
7763	_ struct{} `type:"structure"`
7764
7765	// The unique identifier of the execution engine. For an EMR cluster, this is
7766	// the cluster ID.
7767	//
7768	// Id is a required field
7769	Id *string `type:"string" required:"true"`
7770
7771	// An optional unique ID of an EC2 security group to associate with the master
7772	// instance of the EMR cluster for this notebook execution. For more information
7773	// see Specifying EC2 Security Groups for EMR Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
7774	// in the EMR Management Guide.
7775	MasterInstanceSecurityGroupId *string `type:"string"`
7776
7777	// The type of execution engine. A value of EMR specifies an EMR cluster.
7778	Type *string `type:"string" enum:"ExecutionEngineType"`
7779}
7780
7781// String returns the string representation
7782func (s ExecutionEngineConfig) String() string {
7783	return awsutil.Prettify(s)
7784}
7785
7786// GoString returns the string representation
7787func (s ExecutionEngineConfig) GoString() string {
7788	return s.String()
7789}
7790
7791// Validate inspects the fields of the type to determine if they are valid.
7792func (s *ExecutionEngineConfig) Validate() error {
7793	invalidParams := request.ErrInvalidParams{Context: "ExecutionEngineConfig"}
7794	if s.Id == nil {
7795		invalidParams.Add(request.NewErrParamRequired("Id"))
7796	}
7797
7798	if invalidParams.Len() > 0 {
7799		return invalidParams
7800	}
7801	return nil
7802}
7803
7804// SetId sets the Id field's value.
7805func (s *ExecutionEngineConfig) SetId(v string) *ExecutionEngineConfig {
7806	s.Id = &v
7807	return s
7808}
7809
7810// SetMasterInstanceSecurityGroupId sets the MasterInstanceSecurityGroupId field's value.
7811func (s *ExecutionEngineConfig) SetMasterInstanceSecurityGroupId(v string) *ExecutionEngineConfig {
7812	s.MasterInstanceSecurityGroupId = &v
7813	return s
7814}
7815
7816// SetType sets the Type field's value.
7817func (s *ExecutionEngineConfig) SetType(v string) *ExecutionEngineConfig {
7818	s.Type = &v
7819	return s
7820}
7821
7822// The details of the step failure. The service attempts to detect the root
7823// cause for many common failures.
7824type FailureDetails struct {
7825	_ struct{} `type:"structure"`
7826
7827	// The path to the log file where the step failure root cause was originally
7828	// recorded.
7829	LogFile *string `type:"string"`
7830
7831	// The descriptive message including the error the Amazon EMR service has identified
7832	// as the cause of step failure. This is text from an error log that describes
7833	// the root cause of the failure.
7834	Message *string `type:"string"`
7835
7836	// The reason for the step failure. In the case where the service cannot successfully
7837	// determine the root cause of the failure, it returns "Unknown Error" as a
7838	// reason.
7839	Reason *string `type:"string"`
7840}
7841
7842// String returns the string representation
7843func (s FailureDetails) String() string {
7844	return awsutil.Prettify(s)
7845}
7846
7847// GoString returns the string representation
7848func (s FailureDetails) GoString() string {
7849	return s.String()
7850}
7851
7852// SetLogFile sets the LogFile field's value.
7853func (s *FailureDetails) SetLogFile(v string) *FailureDetails {
7854	s.LogFile = &v
7855	return s
7856}
7857
7858// SetMessage sets the Message field's value.
7859func (s *FailureDetails) SetMessage(v string) *FailureDetails {
7860	s.Message = &v
7861	return s
7862}
7863
7864// SetReason sets the Reason field's value.
7865func (s *FailureDetails) SetReason(v string) *FailureDetails {
7866	s.Reason = &v
7867	return s
7868}
7869
7870type GetBlockPublicAccessConfigurationInput struct {
7871	_ struct{} `type:"structure"`
7872}
7873
7874// String returns the string representation
7875func (s GetBlockPublicAccessConfigurationInput) String() string {
7876	return awsutil.Prettify(s)
7877}
7878
7879// GoString returns the string representation
7880func (s GetBlockPublicAccessConfigurationInput) GoString() string {
7881	return s.String()
7882}
7883
7884type GetBlockPublicAccessConfigurationOutput struct {
7885	_ struct{} `type:"structure"`
7886
7887	// A configuration for Amazon EMR block public access. The configuration applies
7888	// to all clusters created in your account for the current Region. The configuration
7889	// specifies whether block public access is enabled. If block public access
7890	// is enabled, security groups associated with the cluster cannot have rules
7891	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
7892	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
7893	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
7894	// and public access is allowed on this port. You can change this by updating
7895	// the block public access configuration to remove the exception.
7896	//
7897	// For accounts that created clusters in a Region before November 25, 2019,
7898	// block public access is disabled by default in that Region. To use this feature,
7899	// you must manually enable and configure it. For accounts that did not create
7900	// an EMR cluster in a Region before this date, block public access is enabled
7901	// by default in that Region.
7902	//
7903	// BlockPublicAccessConfiguration is a required field
7904	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
7905
7906	// Properties that describe the AWS principal that created the BlockPublicAccessConfiguration
7907	// using the PutBlockPublicAccessConfiguration action as well as the date and
7908	// time that the configuration was created. Each time a configuration for block
7909	// public access is updated, Amazon EMR updates this metadata.
7910	//
7911	// BlockPublicAccessConfigurationMetadata is a required field
7912	BlockPublicAccessConfigurationMetadata *BlockPublicAccessConfigurationMetadata `type:"structure" required:"true"`
7913}
7914
7915// String returns the string representation
7916func (s GetBlockPublicAccessConfigurationOutput) String() string {
7917	return awsutil.Prettify(s)
7918}
7919
7920// GoString returns the string representation
7921func (s GetBlockPublicAccessConfigurationOutput) GoString() string {
7922	return s.String()
7923}
7924
7925// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
7926func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *GetBlockPublicAccessConfigurationOutput {
7927	s.BlockPublicAccessConfiguration = v
7928	return s
7929}
7930
7931// SetBlockPublicAccessConfigurationMetadata sets the BlockPublicAccessConfigurationMetadata field's value.
7932func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfigurationMetadata(v *BlockPublicAccessConfigurationMetadata) *GetBlockPublicAccessConfigurationOutput {
7933	s.BlockPublicAccessConfigurationMetadata = v
7934	return s
7935}
7936
7937type GetManagedScalingPolicyInput struct {
7938	_ struct{} `type:"structure"`
7939
7940	// Specifies the ID of the cluster for which the managed scaling policy will
7941	// be fetched.
7942	//
7943	// ClusterId is a required field
7944	ClusterId *string `type:"string" required:"true"`
7945}
7946
7947// String returns the string representation
7948func (s GetManagedScalingPolicyInput) String() string {
7949	return awsutil.Prettify(s)
7950}
7951
7952// GoString returns the string representation
7953func (s GetManagedScalingPolicyInput) GoString() string {
7954	return s.String()
7955}
7956
7957// Validate inspects the fields of the type to determine if they are valid.
7958func (s *GetManagedScalingPolicyInput) Validate() error {
7959	invalidParams := request.ErrInvalidParams{Context: "GetManagedScalingPolicyInput"}
7960	if s.ClusterId == nil {
7961		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7962	}
7963
7964	if invalidParams.Len() > 0 {
7965		return invalidParams
7966	}
7967	return nil
7968}
7969
7970// SetClusterId sets the ClusterId field's value.
7971func (s *GetManagedScalingPolicyInput) SetClusterId(v string) *GetManagedScalingPolicyInput {
7972	s.ClusterId = &v
7973	return s
7974}
7975
7976type GetManagedScalingPolicyOutput struct {
7977	_ struct{} `type:"structure"`
7978
7979	// Specifies the managed scaling policy that is attached to an Amazon EMR cluster.
7980	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
7981}
7982
7983// String returns the string representation
7984func (s GetManagedScalingPolicyOutput) String() string {
7985	return awsutil.Prettify(s)
7986}
7987
7988// GoString returns the string representation
7989func (s GetManagedScalingPolicyOutput) GoString() string {
7990	return s.String()
7991}
7992
7993// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
7994func (s *GetManagedScalingPolicyOutput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *GetManagedScalingPolicyOutput {
7995	s.ManagedScalingPolicy = v
7996	return s
7997}
7998
7999type GetStudioSessionMappingInput struct {
8000	_ struct{} `type:"structure"`
8001
8002	// The globally unique identifier (GUID) of the user or group. For more information,
8003	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
8004	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
8005	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
8006	// must be specified.
8007	IdentityId *string `type:"string"`
8008
8009	// The name of the user or group to fetch. For more information, see UserName
8010	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
8011	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
8012	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
8013	// must be specified.
8014	IdentityName *string `type:"string"`
8015
8016	// Specifies whether the identity to fetch is a user or a group.
8017	//
8018	// IdentityType is a required field
8019	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
8020
8021	// The ID of the Amazon EMR Studio.
8022	//
8023	// StudioId is a required field
8024	StudioId *string `type:"string" required:"true"`
8025}
8026
8027// String returns the string representation
8028func (s GetStudioSessionMappingInput) String() string {
8029	return awsutil.Prettify(s)
8030}
8031
8032// GoString returns the string representation
8033func (s GetStudioSessionMappingInput) GoString() string {
8034	return s.String()
8035}
8036
8037// Validate inspects the fields of the type to determine if they are valid.
8038func (s *GetStudioSessionMappingInput) Validate() error {
8039	invalidParams := request.ErrInvalidParams{Context: "GetStudioSessionMappingInput"}
8040	if s.IdentityType == nil {
8041		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
8042	}
8043	if s.StudioId == nil {
8044		invalidParams.Add(request.NewErrParamRequired("StudioId"))
8045	}
8046
8047	if invalidParams.Len() > 0 {
8048		return invalidParams
8049	}
8050	return nil
8051}
8052
8053// SetIdentityId sets the IdentityId field's value.
8054func (s *GetStudioSessionMappingInput) SetIdentityId(v string) *GetStudioSessionMappingInput {
8055	s.IdentityId = &v
8056	return s
8057}
8058
8059// SetIdentityName sets the IdentityName field's value.
8060func (s *GetStudioSessionMappingInput) SetIdentityName(v string) *GetStudioSessionMappingInput {
8061	s.IdentityName = &v
8062	return s
8063}
8064
8065// SetIdentityType sets the IdentityType field's value.
8066func (s *GetStudioSessionMappingInput) SetIdentityType(v string) *GetStudioSessionMappingInput {
8067	s.IdentityType = &v
8068	return s
8069}
8070
8071// SetStudioId sets the StudioId field's value.
8072func (s *GetStudioSessionMappingInput) SetStudioId(v string) *GetStudioSessionMappingInput {
8073	s.StudioId = &v
8074	return s
8075}
8076
8077type GetStudioSessionMappingOutput struct {
8078	_ struct{} `type:"structure"`
8079
8080	// The session mapping details for the specified Amazon EMR Studio and identity,
8081	// including session policy ARN and creation time.
8082	SessionMapping *SessionMappingDetail `type:"structure"`
8083}
8084
8085// String returns the string representation
8086func (s GetStudioSessionMappingOutput) String() string {
8087	return awsutil.Prettify(s)
8088}
8089
8090// GoString returns the string representation
8091func (s GetStudioSessionMappingOutput) GoString() string {
8092	return s.String()
8093}
8094
8095// SetSessionMapping sets the SessionMapping field's value.
8096func (s *GetStudioSessionMappingOutput) SetSessionMapping(v *SessionMappingDetail) *GetStudioSessionMappingOutput {
8097	s.SessionMapping = v
8098	return s
8099}
8100
8101// A job flow step consisting of a JAR file whose main function will be executed.
8102// The main function submits a job for Hadoop to execute and waits for the job
8103// to finish or fail.
8104type HadoopJarStepConfig struct {
8105	_ struct{} `type:"structure"`
8106
8107	// A list of command line arguments passed to the JAR file's main function when
8108	// executed.
8109	Args []*string `type:"list"`
8110
8111	// A path to a JAR file run during the step.
8112	//
8113	// Jar is a required field
8114	Jar *string `type:"string" required:"true"`
8115
8116	// The name of the main class in the specified Java file. If not specified,
8117	// the JAR file should specify a Main-Class in its manifest file.
8118	MainClass *string `type:"string"`
8119
8120	// A list of Java properties that are set when the step runs. You can use these
8121	// properties to pass key-value pairs to your main function.
8122	Properties []*KeyValue `type:"list"`
8123}
8124
8125// String returns the string representation
8126func (s HadoopJarStepConfig) String() string {
8127	return awsutil.Prettify(s)
8128}
8129
8130// GoString returns the string representation
8131func (s HadoopJarStepConfig) GoString() string {
8132	return s.String()
8133}
8134
8135// Validate inspects the fields of the type to determine if they are valid.
8136func (s *HadoopJarStepConfig) Validate() error {
8137	invalidParams := request.ErrInvalidParams{Context: "HadoopJarStepConfig"}
8138	if s.Jar == nil {
8139		invalidParams.Add(request.NewErrParamRequired("Jar"))
8140	}
8141
8142	if invalidParams.Len() > 0 {
8143		return invalidParams
8144	}
8145	return nil
8146}
8147
8148// SetArgs sets the Args field's value.
8149func (s *HadoopJarStepConfig) SetArgs(v []*string) *HadoopJarStepConfig {
8150	s.Args = v
8151	return s
8152}
8153
8154// SetJar sets the Jar field's value.
8155func (s *HadoopJarStepConfig) SetJar(v string) *HadoopJarStepConfig {
8156	s.Jar = &v
8157	return s
8158}
8159
8160// SetMainClass sets the MainClass field's value.
8161func (s *HadoopJarStepConfig) SetMainClass(v string) *HadoopJarStepConfig {
8162	s.MainClass = &v
8163	return s
8164}
8165
8166// SetProperties sets the Properties field's value.
8167func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig {
8168	s.Properties = v
8169	return s
8170}
8171
8172// A cluster step consisting of a JAR file whose main function will be executed.
8173// The main function submits a job for Hadoop to execute and waits for the job
8174// to finish or fail.
8175type HadoopStepConfig struct {
8176	_ struct{} `type:"structure"`
8177
8178	// The list of command line arguments to pass to the JAR file's main function
8179	// for execution.
8180	Args []*string `type:"list"`
8181
8182	// The path to the JAR file that runs during the step.
8183	Jar *string `type:"string"`
8184
8185	// The name of the main class in the specified Java file. If not specified,
8186	// the JAR file should specify a main class in its manifest file.
8187	MainClass *string `type:"string"`
8188
8189	// The list of Java properties that are set when the step runs. You can use
8190	// these properties to pass key-value pairs to your main function.
8191	Properties map[string]*string `type:"map"`
8192}
8193
8194// String returns the string representation
8195func (s HadoopStepConfig) String() string {
8196	return awsutil.Prettify(s)
8197}
8198
8199// GoString returns the string representation
8200func (s HadoopStepConfig) GoString() string {
8201	return s.String()
8202}
8203
8204// SetArgs sets the Args field's value.
8205func (s *HadoopStepConfig) SetArgs(v []*string) *HadoopStepConfig {
8206	s.Args = v
8207	return s
8208}
8209
8210// SetJar sets the Jar field's value.
8211func (s *HadoopStepConfig) SetJar(v string) *HadoopStepConfig {
8212	s.Jar = &v
8213	return s
8214}
8215
8216// SetMainClass sets the MainClass field's value.
8217func (s *HadoopStepConfig) SetMainClass(v string) *HadoopStepConfig {
8218	s.MainClass = &v
8219	return s
8220}
8221
8222// SetProperties sets the Properties field's value.
8223func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig {
8224	s.Properties = v
8225	return s
8226}
8227
8228// Represents an EC2 instance provisioned as part of cluster.
8229type Instance struct {
8230	_ struct{} `type:"structure"`
8231
8232	// The list of EBS volumes that are attached to this instance.
8233	EbsVolumes []*EbsVolume `type:"list"`
8234
8235	// The unique identifier of the instance in Amazon EC2.
8236	Ec2InstanceId *string `type:"string"`
8237
8238	// The unique identifier for the instance in Amazon EMR.
8239	Id *string `type:"string"`
8240
8241	// The unique identifier of the instance fleet to which an EC2 instance belongs.
8242	InstanceFleetId *string `type:"string"`
8243
8244	// The identifier of the instance group to which this instance belongs.
8245	InstanceGroupId *string `type:"string"`
8246
8247	// The EC2 instance type, for example m3.xlarge.
8248	InstanceType *string `min:"1" type:"string"`
8249
8250	// The instance purchasing option. Valid values are ON_DEMAND or SPOT.
8251	Market *string `type:"string" enum:"MarketType"`
8252
8253	// The private DNS name of the instance.
8254	PrivateDnsName *string `type:"string"`
8255
8256	// The private IP address of the instance.
8257	PrivateIpAddress *string `type:"string"`
8258
8259	// The public DNS name of the instance.
8260	PublicDnsName *string `type:"string"`
8261
8262	// The public IP address of the instance.
8263	PublicIpAddress *string `type:"string"`
8264
8265	// The current status of the instance.
8266	Status *InstanceStatus `type:"structure"`
8267}
8268
8269// String returns the string representation
8270func (s Instance) String() string {
8271	return awsutil.Prettify(s)
8272}
8273
8274// GoString returns the string representation
8275func (s Instance) GoString() string {
8276	return s.String()
8277}
8278
8279// SetEbsVolumes sets the EbsVolumes field's value.
8280func (s *Instance) SetEbsVolumes(v []*EbsVolume) *Instance {
8281	s.EbsVolumes = v
8282	return s
8283}
8284
8285// SetEc2InstanceId sets the Ec2InstanceId field's value.
8286func (s *Instance) SetEc2InstanceId(v string) *Instance {
8287	s.Ec2InstanceId = &v
8288	return s
8289}
8290
8291// SetId sets the Id field's value.
8292func (s *Instance) SetId(v string) *Instance {
8293	s.Id = &v
8294	return s
8295}
8296
8297// SetInstanceFleetId sets the InstanceFleetId field's value.
8298func (s *Instance) SetInstanceFleetId(v string) *Instance {
8299	s.InstanceFleetId = &v
8300	return s
8301}
8302
8303// SetInstanceGroupId sets the InstanceGroupId field's value.
8304func (s *Instance) SetInstanceGroupId(v string) *Instance {
8305	s.InstanceGroupId = &v
8306	return s
8307}
8308
8309// SetInstanceType sets the InstanceType field's value.
8310func (s *Instance) SetInstanceType(v string) *Instance {
8311	s.InstanceType = &v
8312	return s
8313}
8314
8315// SetMarket sets the Market field's value.
8316func (s *Instance) SetMarket(v string) *Instance {
8317	s.Market = &v
8318	return s
8319}
8320
8321// SetPrivateDnsName sets the PrivateDnsName field's value.
8322func (s *Instance) SetPrivateDnsName(v string) *Instance {
8323	s.PrivateDnsName = &v
8324	return s
8325}
8326
8327// SetPrivateIpAddress sets the PrivateIpAddress field's value.
8328func (s *Instance) SetPrivateIpAddress(v string) *Instance {
8329	s.PrivateIpAddress = &v
8330	return s
8331}
8332
8333// SetPublicDnsName sets the PublicDnsName field's value.
8334func (s *Instance) SetPublicDnsName(v string) *Instance {
8335	s.PublicDnsName = &v
8336	return s
8337}
8338
8339// SetPublicIpAddress sets the PublicIpAddress field's value.
8340func (s *Instance) SetPublicIpAddress(v string) *Instance {
8341	s.PublicIpAddress = &v
8342	return s
8343}
8344
8345// SetStatus sets the Status field's value.
8346func (s *Instance) SetStatus(v *InstanceStatus) *Instance {
8347	s.Status = v
8348	return s
8349}
8350
8351// Describes an instance fleet, which is a group of EC2 instances that host
8352// a particular node type (master, core, or task) in an Amazon EMR cluster.
8353// Instance fleets can consist of a mix of instance types and On-Demand and
8354// Spot Instances, which are provisioned to meet a defined target capacity.
8355//
8356// The instance fleet configuration is available only in Amazon EMR versions
8357// 4.8.0 and later, excluding 5.0.x versions.
8358type InstanceFleet struct {
8359	_ struct{} `type:"structure"`
8360
8361	// The unique identifier of the instance fleet.
8362	Id *string `type:"string"`
8363
8364	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
8365	// or TASK.
8366	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
8367
8368	// The specification for the instance types that comprise an instance fleet.
8369	// Up to five unique instance specifications may be defined for each instance
8370	// fleet.
8371	InstanceTypeSpecifications []*InstanceTypeSpecification `type:"list"`
8372
8373	// Describes the launch specification for an instance fleet.
8374	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
8375
8376	// A friendly name for the instance fleet.
8377	Name *string `type:"string"`
8378
8379	// The number of On-Demand units that have been provisioned for the instance
8380	// fleet to fulfill TargetOnDemandCapacity. This provisioned capacity might
8381	// be less than or greater than TargetOnDemandCapacity.
8382	ProvisionedOnDemandCapacity *int64 `type:"integer"`
8383
8384	// The number of Spot units that have been provisioned for this instance fleet
8385	// to fulfill TargetSpotCapacity. This provisioned capacity might be less than
8386	// or greater than TargetSpotCapacity.
8387	ProvisionedSpotCapacity *int64 `type:"integer"`
8388
8389	// The current status of the instance fleet.
8390	Status *InstanceFleetStatus `type:"structure"`
8391
8392	// The target capacity of On-Demand units for the instance fleet, which determines
8393	// how many On-Demand Instances to provision. When the instance fleet launches,
8394	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
8395	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
8396	// Instance is provisioned, the WeightedCapacity units count toward the target
8397	// capacity. Amazon EMR provisions instances until the target capacity is totally
8398	// fulfilled, even if this results in an overage. For example, if there are
8399	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8400	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8401	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedOnDemandCapacity
8402	// to determine the Spot capacity units that have been provisioned for the instance
8403	// fleet.
8404	//
8405	// If not specified or set to 0, only Spot Instances are provisioned for the
8406	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
8407	// and TargetOnDemandCapacity should be greater than 0. For a master instance
8408	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
8409	// and its value must be 1.
8410	TargetOnDemandCapacity *int64 `type:"integer"`
8411
8412	// The target capacity of Spot units for the instance fleet, which determines
8413	// how many Spot Instances to provision. When the instance fleet launches, Amazon
8414	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
8415	// Each instance configuration has a specified WeightedCapacity. When a Spot
8416	// instance is provisioned, the WeightedCapacity units count toward the target
8417	// capacity. Amazon EMR provisions instances until the target capacity is totally
8418	// fulfilled, even if this results in an overage. For example, if there are
8419	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8420	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8421	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedSpotCapacity
8422	// to determine the Spot capacity units that have been provisioned for the instance
8423	// fleet.
8424	//
8425	// If not specified or set to 0, only On-Demand Instances are provisioned for
8426	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
8427	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
8428	// and TargetOnDemandCapacity can be specified, and its value must be 1.
8429	TargetSpotCapacity *int64 `type:"integer"`
8430}
8431
8432// String returns the string representation
8433func (s InstanceFleet) String() string {
8434	return awsutil.Prettify(s)
8435}
8436
8437// GoString returns the string representation
8438func (s InstanceFleet) GoString() string {
8439	return s.String()
8440}
8441
8442// SetId sets the Id field's value.
8443func (s *InstanceFleet) SetId(v string) *InstanceFleet {
8444	s.Id = &v
8445	return s
8446}
8447
8448// SetInstanceFleetType sets the InstanceFleetType field's value.
8449func (s *InstanceFleet) SetInstanceFleetType(v string) *InstanceFleet {
8450	s.InstanceFleetType = &v
8451	return s
8452}
8453
8454// SetInstanceTypeSpecifications sets the InstanceTypeSpecifications field's value.
8455func (s *InstanceFleet) SetInstanceTypeSpecifications(v []*InstanceTypeSpecification) *InstanceFleet {
8456	s.InstanceTypeSpecifications = v
8457	return s
8458}
8459
8460// SetLaunchSpecifications sets the LaunchSpecifications field's value.
8461func (s *InstanceFleet) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleet {
8462	s.LaunchSpecifications = v
8463	return s
8464}
8465
8466// SetName sets the Name field's value.
8467func (s *InstanceFleet) SetName(v string) *InstanceFleet {
8468	s.Name = &v
8469	return s
8470}
8471
8472// SetProvisionedOnDemandCapacity sets the ProvisionedOnDemandCapacity field's value.
8473func (s *InstanceFleet) SetProvisionedOnDemandCapacity(v int64) *InstanceFleet {
8474	s.ProvisionedOnDemandCapacity = &v
8475	return s
8476}
8477
8478// SetProvisionedSpotCapacity sets the ProvisionedSpotCapacity field's value.
8479func (s *InstanceFleet) SetProvisionedSpotCapacity(v int64) *InstanceFleet {
8480	s.ProvisionedSpotCapacity = &v
8481	return s
8482}
8483
8484// SetStatus sets the Status field's value.
8485func (s *InstanceFleet) SetStatus(v *InstanceFleetStatus) *InstanceFleet {
8486	s.Status = v
8487	return s
8488}
8489
8490// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8491func (s *InstanceFleet) SetTargetOnDemandCapacity(v int64) *InstanceFleet {
8492	s.TargetOnDemandCapacity = &v
8493	return s
8494}
8495
8496// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8497func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet {
8498	s.TargetSpotCapacity = &v
8499	return s
8500}
8501
8502// The configuration that defines an instance fleet.
8503//
8504// The instance fleet configuration is available only in Amazon EMR versions
8505// 4.8.0 and later, excluding 5.0.x versions.
8506type InstanceFleetConfig struct {
8507	_ struct{} `type:"structure"`
8508
8509	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
8510	// and TASK.
8511	//
8512	// InstanceFleetType is a required field
8513	InstanceFleetType *string `type:"string" required:"true" enum:"InstanceFleetType"`
8514
8515	// The instance type configurations that define the EC2 instances in the instance
8516	// fleet.
8517	InstanceTypeConfigs []*InstanceTypeConfig `type:"list"`
8518
8519	// The launch specification for the instance fleet.
8520	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
8521
8522	// The friendly name of the instance fleet.
8523	Name *string `type:"string"`
8524
8525	// The target capacity of On-Demand units for the instance fleet, which determines
8526	// how many On-Demand Instances to provision. When the instance fleet launches,
8527	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
8528	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
8529	// Instance is provisioned, the WeightedCapacity units count toward the target
8530	// capacity. Amazon EMR provisions instances until the target capacity is totally
8531	// fulfilled, even if this results in an overage. For example, if there are
8532	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8533	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8534	// and the target capacity is exceeded by 3 units.
8535	//
8536	// If not specified or set to 0, only Spot Instances are provisioned for the
8537	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
8538	// and TargetOnDemandCapacity should be greater than 0. For a master instance
8539	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
8540	// and its value must be 1.
8541	TargetOnDemandCapacity *int64 `type:"integer"`
8542
8543	// The target capacity of Spot units for the instance fleet, which determines
8544	// how many Spot Instances to provision. When the instance fleet launches, Amazon
8545	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
8546	// Each instance configuration has a specified WeightedCapacity. When a Spot
8547	// Instance is provisioned, the WeightedCapacity units count toward the target
8548	// capacity. Amazon EMR provisions instances until the target capacity is totally
8549	// fulfilled, even if this results in an overage. For example, if there are
8550	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8551	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8552	// and the target capacity is exceeded by 3 units.
8553	//
8554	// If not specified or set to 0, only On-Demand Instances are provisioned for
8555	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
8556	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
8557	// and TargetOnDemandCapacity can be specified, and its value must be 1.
8558	TargetSpotCapacity *int64 `type:"integer"`
8559}
8560
8561// String returns the string representation
8562func (s InstanceFleetConfig) String() string {
8563	return awsutil.Prettify(s)
8564}
8565
8566// GoString returns the string representation
8567func (s InstanceFleetConfig) GoString() string {
8568	return s.String()
8569}
8570
8571// Validate inspects the fields of the type to determine if they are valid.
8572func (s *InstanceFleetConfig) Validate() error {
8573	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetConfig"}
8574	if s.InstanceFleetType == nil {
8575		invalidParams.Add(request.NewErrParamRequired("InstanceFleetType"))
8576	}
8577	if s.InstanceTypeConfigs != nil {
8578		for i, v := range s.InstanceTypeConfigs {
8579			if v == nil {
8580				continue
8581			}
8582			if err := v.Validate(); err != nil {
8583				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceTypeConfigs", i), err.(request.ErrInvalidParams))
8584			}
8585		}
8586	}
8587	if s.LaunchSpecifications != nil {
8588		if err := s.LaunchSpecifications.Validate(); err != nil {
8589			invalidParams.AddNested("LaunchSpecifications", err.(request.ErrInvalidParams))
8590		}
8591	}
8592
8593	if invalidParams.Len() > 0 {
8594		return invalidParams
8595	}
8596	return nil
8597}
8598
8599// SetInstanceFleetType sets the InstanceFleetType field's value.
8600func (s *InstanceFleetConfig) SetInstanceFleetType(v string) *InstanceFleetConfig {
8601	s.InstanceFleetType = &v
8602	return s
8603}
8604
8605// SetInstanceTypeConfigs sets the InstanceTypeConfigs field's value.
8606func (s *InstanceFleetConfig) SetInstanceTypeConfigs(v []*InstanceTypeConfig) *InstanceFleetConfig {
8607	s.InstanceTypeConfigs = v
8608	return s
8609}
8610
8611// SetLaunchSpecifications sets the LaunchSpecifications field's value.
8612func (s *InstanceFleetConfig) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleetConfig {
8613	s.LaunchSpecifications = v
8614	return s
8615}
8616
8617// SetName sets the Name field's value.
8618func (s *InstanceFleetConfig) SetName(v string) *InstanceFleetConfig {
8619	s.Name = &v
8620	return s
8621}
8622
8623// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8624func (s *InstanceFleetConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetConfig {
8625	s.TargetOnDemandCapacity = &v
8626	return s
8627}
8628
8629// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8630func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfig {
8631	s.TargetSpotCapacity = &v
8632	return s
8633}
8634
8635// Configuration parameters for an instance fleet modification request.
8636//
8637// The instance fleet configuration is available only in Amazon EMR versions
8638// 4.8.0 and later, excluding 5.0.x versions.
8639type InstanceFleetModifyConfig struct {
8640	_ struct{} `type:"structure"`
8641
8642	// A unique identifier for the instance fleet.
8643	//
8644	// InstanceFleetId is a required field
8645	InstanceFleetId *string `type:"string" required:"true"`
8646
8647	// The target capacity of On-Demand units for the instance fleet. For more information
8648	// see InstanceFleetConfig$TargetOnDemandCapacity.
8649	TargetOnDemandCapacity *int64 `type:"integer"`
8650
8651	// The target capacity of Spot units for the instance fleet. For more information,
8652	// see InstanceFleetConfig$TargetSpotCapacity.
8653	TargetSpotCapacity *int64 `type:"integer"`
8654}
8655
8656// String returns the string representation
8657func (s InstanceFleetModifyConfig) String() string {
8658	return awsutil.Prettify(s)
8659}
8660
8661// GoString returns the string representation
8662func (s InstanceFleetModifyConfig) GoString() string {
8663	return s.String()
8664}
8665
8666// Validate inspects the fields of the type to determine if they are valid.
8667func (s *InstanceFleetModifyConfig) Validate() error {
8668	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetModifyConfig"}
8669	if s.InstanceFleetId == nil {
8670		invalidParams.Add(request.NewErrParamRequired("InstanceFleetId"))
8671	}
8672
8673	if invalidParams.Len() > 0 {
8674		return invalidParams
8675	}
8676	return nil
8677}
8678
8679// SetInstanceFleetId sets the InstanceFleetId field's value.
8680func (s *InstanceFleetModifyConfig) SetInstanceFleetId(v string) *InstanceFleetModifyConfig {
8681	s.InstanceFleetId = &v
8682	return s
8683}
8684
8685// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8686func (s *InstanceFleetModifyConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetModifyConfig {
8687	s.TargetOnDemandCapacity = &v
8688	return s
8689}
8690
8691// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8692func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFleetModifyConfig {
8693	s.TargetSpotCapacity = &v
8694	return s
8695}
8696
8697// The launch specification for Spot Instances in the fleet, which determines
8698// the defined duration, provisioning timeout behavior, and allocation strategy.
8699//
8700// The instance fleet configuration is available only in Amazon EMR versions
8701// 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot Instance allocation
8702// strategies are available in Amazon EMR version 5.12.1 and later.
8703type InstanceFleetProvisioningSpecifications struct {
8704	_ struct{} `type:"structure"`
8705
8706	// The launch specification for On-Demand Instances in the instance fleet, which
8707	// determines the allocation strategy.
8708	//
8709	// The instance fleet configuration is available only in Amazon EMR versions
8710	// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
8711	// strategy is available in Amazon EMR version 5.12.1 and later.
8712	OnDemandSpecification *OnDemandProvisioningSpecification `type:"structure"`
8713
8714	// The launch specification for Spot Instances in the fleet, which determines
8715	// the defined duration, provisioning timeout behavior, and allocation strategy.
8716	SpotSpecification *SpotProvisioningSpecification `type:"structure"`
8717}
8718
8719// String returns the string representation
8720func (s InstanceFleetProvisioningSpecifications) String() string {
8721	return awsutil.Prettify(s)
8722}
8723
8724// GoString returns the string representation
8725func (s InstanceFleetProvisioningSpecifications) GoString() string {
8726	return s.String()
8727}
8728
8729// Validate inspects the fields of the type to determine if they are valid.
8730func (s *InstanceFleetProvisioningSpecifications) Validate() error {
8731	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetProvisioningSpecifications"}
8732	if s.OnDemandSpecification != nil {
8733		if err := s.OnDemandSpecification.Validate(); err != nil {
8734			invalidParams.AddNested("OnDemandSpecification", err.(request.ErrInvalidParams))
8735		}
8736	}
8737	if s.SpotSpecification != nil {
8738		if err := s.SpotSpecification.Validate(); err != nil {
8739			invalidParams.AddNested("SpotSpecification", err.(request.ErrInvalidParams))
8740		}
8741	}
8742
8743	if invalidParams.Len() > 0 {
8744		return invalidParams
8745	}
8746	return nil
8747}
8748
8749// SetOnDemandSpecification sets the OnDemandSpecification field's value.
8750func (s *InstanceFleetProvisioningSpecifications) SetOnDemandSpecification(v *OnDemandProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
8751	s.OnDemandSpecification = v
8752	return s
8753}
8754
8755// SetSpotSpecification sets the SpotSpecification field's value.
8756func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
8757	s.SpotSpecification = v
8758	return s
8759}
8760
8761// Provides status change reason details for the instance fleet.
8762//
8763// The instance fleet configuration is available only in Amazon EMR versions
8764// 4.8.0 and later, excluding 5.0.x versions.
8765type InstanceFleetStateChangeReason struct {
8766	_ struct{} `type:"structure"`
8767
8768	// A code corresponding to the reason the state change occurred.
8769	Code *string `type:"string" enum:"InstanceFleetStateChangeReasonCode"`
8770
8771	// An explanatory message.
8772	Message *string `type:"string"`
8773}
8774
8775// String returns the string representation
8776func (s InstanceFleetStateChangeReason) String() string {
8777	return awsutil.Prettify(s)
8778}
8779
8780// GoString returns the string representation
8781func (s InstanceFleetStateChangeReason) GoString() string {
8782	return s.String()
8783}
8784
8785// SetCode sets the Code field's value.
8786func (s *InstanceFleetStateChangeReason) SetCode(v string) *InstanceFleetStateChangeReason {
8787	s.Code = &v
8788	return s
8789}
8790
8791// SetMessage sets the Message field's value.
8792func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStateChangeReason {
8793	s.Message = &v
8794	return s
8795}
8796
8797// The status of the instance fleet.
8798//
8799// The instance fleet configuration is available only in Amazon EMR versions
8800// 4.8.0 and later, excluding 5.0.x versions.
8801type InstanceFleetStatus struct {
8802	_ struct{} `type:"structure"`
8803
8804	// A code representing the instance fleet status.
8805	//
8806	//    * PROVISIONING—The instance fleet is provisioning EC2 resources and
8807	//    is not yet ready to run jobs.
8808	//
8809	//    * BOOTSTRAPPING—EC2 instances and other resources have been provisioned
8810	//    and the bootstrap actions specified for the instances are underway.
8811	//
8812	//    * RUNNING—EC2 instances and other resources are running. They are either
8813	//    executing jobs or waiting to execute jobs.
8814	//
8815	//    * RESIZING—A resize operation is underway. EC2 instances are either
8816	//    being added or removed.
8817	//
8818	//    * SUSPENDED—A resize operation could not complete. Existing EC2 instances
8819	//    are running, but instances can't be added or removed.
8820	//
8821	//    * TERMINATING—The instance fleet is terminating EC2 instances.
8822	//
8823	//    * TERMINATED—The instance fleet is no longer active, and all EC2 instances
8824	//    have been terminated.
8825	State *string `type:"string" enum:"InstanceFleetState"`
8826
8827	// Provides status change reason details for the instance fleet.
8828	StateChangeReason *InstanceFleetStateChangeReason `type:"structure"`
8829
8830	// Provides historical timestamps for the instance fleet, including the time
8831	// of creation, the time it became ready to run jobs, and the time of termination.
8832	Timeline *InstanceFleetTimeline `type:"structure"`
8833}
8834
8835// String returns the string representation
8836func (s InstanceFleetStatus) String() string {
8837	return awsutil.Prettify(s)
8838}
8839
8840// GoString returns the string representation
8841func (s InstanceFleetStatus) GoString() string {
8842	return s.String()
8843}
8844
8845// SetState sets the State field's value.
8846func (s *InstanceFleetStatus) SetState(v string) *InstanceFleetStatus {
8847	s.State = &v
8848	return s
8849}
8850
8851// SetStateChangeReason sets the StateChangeReason field's value.
8852func (s *InstanceFleetStatus) SetStateChangeReason(v *InstanceFleetStateChangeReason) *InstanceFleetStatus {
8853	s.StateChangeReason = v
8854	return s
8855}
8856
8857// SetTimeline sets the Timeline field's value.
8858func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFleetStatus {
8859	s.Timeline = v
8860	return s
8861}
8862
8863// Provides historical timestamps for the instance fleet, including the time
8864// of creation, the time it became ready to run jobs, and the time of termination.
8865//
8866// The instance fleet configuration is available only in Amazon EMR versions
8867// 4.8.0 and later, excluding 5.0.x versions.
8868type InstanceFleetTimeline struct {
8869	_ struct{} `type:"structure"`
8870
8871	// The time and date the instance fleet was created.
8872	CreationDateTime *time.Time `type:"timestamp"`
8873
8874	// The time and date the instance fleet terminated.
8875	EndDateTime *time.Time `type:"timestamp"`
8876
8877	// The time and date the instance fleet was ready to run jobs.
8878	ReadyDateTime *time.Time `type:"timestamp"`
8879}
8880
8881// String returns the string representation
8882func (s InstanceFleetTimeline) String() string {
8883	return awsutil.Prettify(s)
8884}
8885
8886// GoString returns the string representation
8887func (s InstanceFleetTimeline) GoString() string {
8888	return s.String()
8889}
8890
8891// SetCreationDateTime sets the CreationDateTime field's value.
8892func (s *InstanceFleetTimeline) SetCreationDateTime(v time.Time) *InstanceFleetTimeline {
8893	s.CreationDateTime = &v
8894	return s
8895}
8896
8897// SetEndDateTime sets the EndDateTime field's value.
8898func (s *InstanceFleetTimeline) SetEndDateTime(v time.Time) *InstanceFleetTimeline {
8899	s.EndDateTime = &v
8900	return s
8901}
8902
8903// SetReadyDateTime sets the ReadyDateTime field's value.
8904func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTimeline {
8905	s.ReadyDateTime = &v
8906	return s
8907}
8908
8909// This entity represents an instance group, which is a group of instances that
8910// have common purpose. For example, CORE instance group is used for HDFS.
8911type InstanceGroup struct {
8912	_ struct{} `type:"structure"`
8913
8914	// An automatic scaling policy for a core instance group or task instance group
8915	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
8916	// group dynamically adds and terminates EC2 instances in response to the value
8917	// of a CloudWatch metric. See PutAutoScalingPolicy.
8918	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
8919
8920	// If specified, indicates that the instance group uses Spot Instances. This
8921	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
8922	// to set the amount equal to the On-Demand price, or specify an amount in USD.
8923	BidPrice *string `type:"string"`
8924
8925	//
8926	// Amazon EMR releases 4.x or later.
8927	//
8928	// The list of configurations supplied for an EMR cluster instance group. You
8929	// can specify a separate configuration for each instance group (master, core,
8930	// and task).
8931	Configurations []*Configuration `type:"list"`
8932
8933	// The version number of the requested configuration specification for this
8934	// instance group.
8935	ConfigurationsVersion *int64 `type:"long"`
8936
8937	// The EBS block devices that are mapped to this instance group.
8938	EbsBlockDevices []*EbsBlockDevice `type:"list"`
8939
8940	// If the instance group is EBS-optimized. An Amazon EBS-optimized instance
8941	// uses an optimized configuration stack and provides additional, dedicated
8942	// capacity for Amazon EBS I/O.
8943	EbsOptimized *bool `type:"boolean"`
8944
8945	// The identifier of the instance group.
8946	Id *string `type:"string"`
8947
8948	// The type of the instance group. Valid values are MASTER, CORE or TASK.
8949	InstanceGroupType *string `type:"string" enum:"InstanceGroupType"`
8950
8951	// The EC2 instance type for all instances in the instance group.
8952	InstanceType *string `min:"1" type:"string"`
8953
8954	// A list of configurations that were successfully applied for an instance group
8955	// last time.
8956	LastSuccessfullyAppliedConfigurations []*Configuration `type:"list"`
8957
8958	// The version number of a configuration specification that was successfully
8959	// applied for an instance group last time.
8960	LastSuccessfullyAppliedConfigurationsVersion *int64 `type:"long"`
8961
8962	// The marketplace to provision instances for this group. Valid values are ON_DEMAND
8963	// or SPOT.
8964	Market *string `type:"string" enum:"MarketType"`
8965
8966	// The name of the instance group.
8967	Name *string `type:"string"`
8968
8969	// The target number of instances for the instance group.
8970	RequestedInstanceCount *int64 `type:"integer"`
8971
8972	// The number of instances currently running in this instance group.
8973	RunningInstanceCount *int64 `type:"integer"`
8974
8975	// Policy for customizing shrink operations.
8976	ShrinkPolicy *ShrinkPolicy `type:"structure"`
8977
8978	// The current status of the instance group.
8979	Status *InstanceGroupStatus `type:"structure"`
8980}
8981
8982// String returns the string representation
8983func (s InstanceGroup) String() string {
8984	return awsutil.Prettify(s)
8985}
8986
8987// GoString returns the string representation
8988func (s InstanceGroup) GoString() string {
8989	return s.String()
8990}
8991
8992// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
8993func (s *InstanceGroup) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *InstanceGroup {
8994	s.AutoScalingPolicy = v
8995	return s
8996}
8997
8998// SetBidPrice sets the BidPrice field's value.
8999func (s *InstanceGroup) SetBidPrice(v string) *InstanceGroup {
9000	s.BidPrice = &v
9001	return s
9002}
9003
9004// SetConfigurations sets the Configurations field's value.
9005func (s *InstanceGroup) SetConfigurations(v []*Configuration) *InstanceGroup {
9006	s.Configurations = v
9007	return s
9008}
9009
9010// SetConfigurationsVersion sets the ConfigurationsVersion field's value.
9011func (s *InstanceGroup) SetConfigurationsVersion(v int64) *InstanceGroup {
9012	s.ConfigurationsVersion = &v
9013	return s
9014}
9015
9016// SetEbsBlockDevices sets the EbsBlockDevices field's value.
9017func (s *InstanceGroup) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceGroup {
9018	s.EbsBlockDevices = v
9019	return s
9020}
9021
9022// SetEbsOptimized sets the EbsOptimized field's value.
9023func (s *InstanceGroup) SetEbsOptimized(v bool) *InstanceGroup {
9024	s.EbsOptimized = &v
9025	return s
9026}
9027
9028// SetId sets the Id field's value.
9029func (s *InstanceGroup) SetId(v string) *InstanceGroup {
9030	s.Id = &v
9031	return s
9032}
9033
9034// SetInstanceGroupType sets the InstanceGroupType field's value.
9035func (s *InstanceGroup) SetInstanceGroupType(v string) *InstanceGroup {
9036	s.InstanceGroupType = &v
9037	return s
9038}
9039
9040// SetInstanceType sets the InstanceType field's value.
9041func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
9042	s.InstanceType = &v
9043	return s
9044}
9045
9046// SetLastSuccessfullyAppliedConfigurations sets the LastSuccessfullyAppliedConfigurations field's value.
9047func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurations(v []*Configuration) *InstanceGroup {
9048	s.LastSuccessfullyAppliedConfigurations = v
9049	return s
9050}
9051
9052// SetLastSuccessfullyAppliedConfigurationsVersion sets the LastSuccessfullyAppliedConfigurationsVersion field's value.
9053func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurationsVersion(v int64) *InstanceGroup {
9054	s.LastSuccessfullyAppliedConfigurationsVersion = &v
9055	return s
9056}
9057
9058// SetMarket sets the Market field's value.
9059func (s *InstanceGroup) SetMarket(v string) *InstanceGroup {
9060	s.Market = &v
9061	return s
9062}
9063
9064// SetName sets the Name field's value.
9065func (s *InstanceGroup) SetName(v string) *InstanceGroup {
9066	s.Name = &v
9067	return s
9068}
9069
9070// SetRequestedInstanceCount sets the RequestedInstanceCount field's value.
9071func (s *InstanceGroup) SetRequestedInstanceCount(v int64) *InstanceGroup {
9072	s.RequestedInstanceCount = &v
9073	return s
9074}
9075
9076// SetRunningInstanceCount sets the RunningInstanceCount field's value.
9077func (s *InstanceGroup) SetRunningInstanceCount(v int64) *InstanceGroup {
9078	s.RunningInstanceCount = &v
9079	return s
9080}
9081
9082// SetShrinkPolicy sets the ShrinkPolicy field's value.
9083func (s *InstanceGroup) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroup {
9084	s.ShrinkPolicy = v
9085	return s
9086}
9087
9088// SetStatus sets the Status field's value.
9089func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup {
9090	s.Status = v
9091	return s
9092}
9093
9094// Configuration defining a new instance group.
9095type InstanceGroupConfig struct {
9096	_ struct{} `type:"structure"`
9097
9098	// An automatic scaling policy for a core instance group or task instance group
9099	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
9100	// group dynamically adds and terminates EC2 instances in response to the value
9101	// of a CloudWatch metric. See PutAutoScalingPolicy.
9102	AutoScalingPolicy *AutoScalingPolicy `type:"structure"`
9103
9104	// If specified, indicates that the instance group uses Spot Instances. This
9105	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
9106	// to set the amount equal to the On-Demand price, or specify an amount in USD.
9107	BidPrice *string `type:"string"`
9108
9109	//
9110	// Amazon EMR releases 4.x or later.
9111	//
9112	// The list of configurations supplied for an EMR cluster instance group. You
9113	// can specify a separate configuration for each instance group (master, core,
9114	// and task).
9115	Configurations []*Configuration `type:"list"`
9116
9117	// EBS configurations that will be attached to each EC2 instance in the instance
9118	// group.
9119	EbsConfiguration *EbsConfiguration `type:"structure"`
9120
9121	// Target number of instances for the instance group.
9122	//
9123	// InstanceCount is a required field
9124	InstanceCount *int64 `type:"integer" required:"true"`
9125
9126	// The role of the instance group in the cluster.
9127	//
9128	// InstanceRole is a required field
9129	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
9130
9131	// The EC2 instance type for all instances in the instance group.
9132	//
9133	// InstanceType is a required field
9134	InstanceType *string `min:"1" type:"string" required:"true"`
9135
9136	// Market type of the EC2 instances used to create a cluster node.
9137	Market *string `type:"string" enum:"MarketType"`
9138
9139	// Friendly name given to the instance group.
9140	Name *string `type:"string"`
9141}
9142
9143// String returns the string representation
9144func (s InstanceGroupConfig) String() string {
9145	return awsutil.Prettify(s)
9146}
9147
9148// GoString returns the string representation
9149func (s InstanceGroupConfig) GoString() string {
9150	return s.String()
9151}
9152
9153// Validate inspects the fields of the type to determine if they are valid.
9154func (s *InstanceGroupConfig) Validate() error {
9155	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupConfig"}
9156	if s.InstanceCount == nil {
9157		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
9158	}
9159	if s.InstanceRole == nil {
9160		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
9161	}
9162	if s.InstanceType == nil {
9163		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
9164	}
9165	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
9166		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
9167	}
9168	if s.AutoScalingPolicy != nil {
9169		if err := s.AutoScalingPolicy.Validate(); err != nil {
9170			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
9171		}
9172	}
9173	if s.EbsConfiguration != nil {
9174		if err := s.EbsConfiguration.Validate(); err != nil {
9175			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
9176		}
9177	}
9178
9179	if invalidParams.Len() > 0 {
9180		return invalidParams
9181	}
9182	return nil
9183}
9184
9185// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
9186func (s *InstanceGroupConfig) SetAutoScalingPolicy(v *AutoScalingPolicy) *InstanceGroupConfig {
9187	s.AutoScalingPolicy = v
9188	return s
9189}
9190
9191// SetBidPrice sets the BidPrice field's value.
9192func (s *InstanceGroupConfig) SetBidPrice(v string) *InstanceGroupConfig {
9193	s.BidPrice = &v
9194	return s
9195}
9196
9197// SetConfigurations sets the Configurations field's value.
9198func (s *InstanceGroupConfig) SetConfigurations(v []*Configuration) *InstanceGroupConfig {
9199	s.Configurations = v
9200	return s
9201}
9202
9203// SetEbsConfiguration sets the EbsConfiguration field's value.
9204func (s *InstanceGroupConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceGroupConfig {
9205	s.EbsConfiguration = v
9206	return s
9207}
9208
9209// SetInstanceCount sets the InstanceCount field's value.
9210func (s *InstanceGroupConfig) SetInstanceCount(v int64) *InstanceGroupConfig {
9211	s.InstanceCount = &v
9212	return s
9213}
9214
9215// SetInstanceRole sets the InstanceRole field's value.
9216func (s *InstanceGroupConfig) SetInstanceRole(v string) *InstanceGroupConfig {
9217	s.InstanceRole = &v
9218	return s
9219}
9220
9221// SetInstanceType sets the InstanceType field's value.
9222func (s *InstanceGroupConfig) SetInstanceType(v string) *InstanceGroupConfig {
9223	s.InstanceType = &v
9224	return s
9225}
9226
9227// SetMarket sets the Market field's value.
9228func (s *InstanceGroupConfig) SetMarket(v string) *InstanceGroupConfig {
9229	s.Market = &v
9230	return s
9231}
9232
9233// SetName sets the Name field's value.
9234func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig {
9235	s.Name = &v
9236	return s
9237}
9238
9239// Detailed information about an instance group.
9240type InstanceGroupDetail struct {
9241	_ struct{} `type:"structure"`
9242
9243	// If specified, indicates that the instance group uses Spot Instances. This
9244	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
9245	// to set the amount equal to the On-Demand price, or specify an amount in USD.
9246	BidPrice *string `type:"string"`
9247
9248	// The date/time the instance group was created.
9249	//
9250	// CreationDateTime is a required field
9251	CreationDateTime *time.Time `type:"timestamp" required:"true"`
9252
9253	// The date/time the instance group was terminated.
9254	EndDateTime *time.Time `type:"timestamp"`
9255
9256	// Unique identifier for the instance group.
9257	InstanceGroupId *string `type:"string"`
9258
9259	// Target number of instances to run in the instance group.
9260	//
9261	// InstanceRequestCount is a required field
9262	InstanceRequestCount *int64 `type:"integer" required:"true"`
9263
9264	// Instance group role in the cluster
9265	//
9266	// InstanceRole is a required field
9267	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
9268
9269	// Actual count of running instances.
9270	//
9271	// InstanceRunningCount is a required field
9272	InstanceRunningCount *int64 `type:"integer" required:"true"`
9273
9274	// EC2 instance type.
9275	//
9276	// InstanceType is a required field
9277	InstanceType *string `min:"1" type:"string" required:"true"`
9278
9279	// Details regarding the state of the instance group.
9280	LastStateChangeReason *string `type:"string"`
9281
9282	// Market type of the EC2 instances used to create a cluster node.
9283	//
9284	// Market is a required field
9285	Market *string `type:"string" required:"true" enum:"MarketType"`
9286
9287	// Friendly name for the instance group.
9288	Name *string `type:"string"`
9289
9290	// The date/time the instance group was available to the cluster.
9291	ReadyDateTime *time.Time `type:"timestamp"`
9292
9293	// The date/time the instance group was started.
9294	StartDateTime *time.Time `type:"timestamp"`
9295
9296	// State of instance group. The following values are deprecated: STARTING, TERMINATED,
9297	// and FAILED.
9298	//
9299	// State is a required field
9300	State *string `type:"string" required:"true" enum:"InstanceGroupState"`
9301}
9302
9303// String returns the string representation
9304func (s InstanceGroupDetail) String() string {
9305	return awsutil.Prettify(s)
9306}
9307
9308// GoString returns the string representation
9309func (s InstanceGroupDetail) GoString() string {
9310	return s.String()
9311}
9312
9313// SetBidPrice sets the BidPrice field's value.
9314func (s *InstanceGroupDetail) SetBidPrice(v string) *InstanceGroupDetail {
9315	s.BidPrice = &v
9316	return s
9317}
9318
9319// SetCreationDateTime sets the CreationDateTime field's value.
9320func (s *InstanceGroupDetail) SetCreationDateTime(v time.Time) *InstanceGroupDetail {
9321	s.CreationDateTime = &v
9322	return s
9323}
9324
9325// SetEndDateTime sets the EndDateTime field's value.
9326func (s *InstanceGroupDetail) SetEndDateTime(v time.Time) *InstanceGroupDetail {
9327	s.EndDateTime = &v
9328	return s
9329}
9330
9331// SetInstanceGroupId sets the InstanceGroupId field's value.
9332func (s *InstanceGroupDetail) SetInstanceGroupId(v string) *InstanceGroupDetail {
9333	s.InstanceGroupId = &v
9334	return s
9335}
9336
9337// SetInstanceRequestCount sets the InstanceRequestCount field's value.
9338func (s *InstanceGroupDetail) SetInstanceRequestCount(v int64) *InstanceGroupDetail {
9339	s.InstanceRequestCount = &v
9340	return s
9341}
9342
9343// SetInstanceRole sets the InstanceRole field's value.
9344func (s *InstanceGroupDetail) SetInstanceRole(v string) *InstanceGroupDetail {
9345	s.InstanceRole = &v
9346	return s
9347}
9348
9349// SetInstanceRunningCount sets the InstanceRunningCount field's value.
9350func (s *InstanceGroupDetail) SetInstanceRunningCount(v int64) *InstanceGroupDetail {
9351	s.InstanceRunningCount = &v
9352	return s
9353}
9354
9355// SetInstanceType sets the InstanceType field's value.
9356func (s *InstanceGroupDetail) SetInstanceType(v string) *InstanceGroupDetail {
9357	s.InstanceType = &v
9358	return s
9359}
9360
9361// SetLastStateChangeReason sets the LastStateChangeReason field's value.
9362func (s *InstanceGroupDetail) SetLastStateChangeReason(v string) *InstanceGroupDetail {
9363	s.LastStateChangeReason = &v
9364	return s
9365}
9366
9367// SetMarket sets the Market field's value.
9368func (s *InstanceGroupDetail) SetMarket(v string) *InstanceGroupDetail {
9369	s.Market = &v
9370	return s
9371}
9372
9373// SetName sets the Name field's value.
9374func (s *InstanceGroupDetail) SetName(v string) *InstanceGroupDetail {
9375	s.Name = &v
9376	return s
9377}
9378
9379// SetReadyDateTime sets the ReadyDateTime field's value.
9380func (s *InstanceGroupDetail) SetReadyDateTime(v time.Time) *InstanceGroupDetail {
9381	s.ReadyDateTime = &v
9382	return s
9383}
9384
9385// SetStartDateTime sets the StartDateTime field's value.
9386func (s *InstanceGroupDetail) SetStartDateTime(v time.Time) *InstanceGroupDetail {
9387	s.StartDateTime = &v
9388	return s
9389}
9390
9391// SetState sets the State field's value.
9392func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail {
9393	s.State = &v
9394	return s
9395}
9396
9397// Modify the size or configurations of an instance group.
9398type InstanceGroupModifyConfig struct {
9399	_ struct{} `type:"structure"`
9400
9401	// A list of new or modified configurations to apply for an instance group.
9402	Configurations []*Configuration `type:"list"`
9403
9404	// The EC2 InstanceIds to terminate. After you terminate the instances, the
9405	// instance group will not return to its original requested size.
9406	EC2InstanceIdsToTerminate []*string `type:"list"`
9407
9408	// Target size for the instance group.
9409	InstanceCount *int64 `type:"integer"`
9410
9411	// Unique ID of the instance group to modify.
9412	//
9413	// InstanceGroupId is a required field
9414	InstanceGroupId *string `type:"string" required:"true"`
9415
9416	// Policy for customizing shrink operations.
9417	ShrinkPolicy *ShrinkPolicy `type:"structure"`
9418}
9419
9420// String returns the string representation
9421func (s InstanceGroupModifyConfig) String() string {
9422	return awsutil.Prettify(s)
9423}
9424
9425// GoString returns the string representation
9426func (s InstanceGroupModifyConfig) GoString() string {
9427	return s.String()
9428}
9429
9430// Validate inspects the fields of the type to determine if they are valid.
9431func (s *InstanceGroupModifyConfig) Validate() error {
9432	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupModifyConfig"}
9433	if s.InstanceGroupId == nil {
9434		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
9435	}
9436
9437	if invalidParams.Len() > 0 {
9438		return invalidParams
9439	}
9440	return nil
9441}
9442
9443// SetConfigurations sets the Configurations field's value.
9444func (s *InstanceGroupModifyConfig) SetConfigurations(v []*Configuration) *InstanceGroupModifyConfig {
9445	s.Configurations = v
9446	return s
9447}
9448
9449// SetEC2InstanceIdsToTerminate sets the EC2InstanceIdsToTerminate field's value.
9450func (s *InstanceGroupModifyConfig) SetEC2InstanceIdsToTerminate(v []*string) *InstanceGroupModifyConfig {
9451	s.EC2InstanceIdsToTerminate = v
9452	return s
9453}
9454
9455// SetInstanceCount sets the InstanceCount field's value.
9456func (s *InstanceGroupModifyConfig) SetInstanceCount(v int64) *InstanceGroupModifyConfig {
9457	s.InstanceCount = &v
9458	return s
9459}
9460
9461// SetInstanceGroupId sets the InstanceGroupId field's value.
9462func (s *InstanceGroupModifyConfig) SetInstanceGroupId(v string) *InstanceGroupModifyConfig {
9463	s.InstanceGroupId = &v
9464	return s
9465}
9466
9467// SetShrinkPolicy sets the ShrinkPolicy field's value.
9468func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroupModifyConfig {
9469	s.ShrinkPolicy = v
9470	return s
9471}
9472
9473// The status change reason details for the instance group.
9474type InstanceGroupStateChangeReason struct {
9475	_ struct{} `type:"structure"`
9476
9477	// The programmable code for the state change reason.
9478	Code *string `type:"string" enum:"InstanceGroupStateChangeReasonCode"`
9479
9480	// The status change reason description.
9481	Message *string `type:"string"`
9482}
9483
9484// String returns the string representation
9485func (s InstanceGroupStateChangeReason) String() string {
9486	return awsutil.Prettify(s)
9487}
9488
9489// GoString returns the string representation
9490func (s InstanceGroupStateChangeReason) GoString() string {
9491	return s.String()
9492}
9493
9494// SetCode sets the Code field's value.
9495func (s *InstanceGroupStateChangeReason) SetCode(v string) *InstanceGroupStateChangeReason {
9496	s.Code = &v
9497	return s
9498}
9499
9500// SetMessage sets the Message field's value.
9501func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStateChangeReason {
9502	s.Message = &v
9503	return s
9504}
9505
9506// The details of the instance group status.
9507type InstanceGroupStatus struct {
9508	_ struct{} `type:"structure"`
9509
9510	// The current state of the instance group.
9511	State *string `type:"string" enum:"InstanceGroupState"`
9512
9513	// The status change reason details for the instance group.
9514	StateChangeReason *InstanceGroupStateChangeReason `type:"structure"`
9515
9516	// The timeline of the instance group status over time.
9517	Timeline *InstanceGroupTimeline `type:"structure"`
9518}
9519
9520// String returns the string representation
9521func (s InstanceGroupStatus) String() string {
9522	return awsutil.Prettify(s)
9523}
9524
9525// GoString returns the string representation
9526func (s InstanceGroupStatus) GoString() string {
9527	return s.String()
9528}
9529
9530// SetState sets the State field's value.
9531func (s *InstanceGroupStatus) SetState(v string) *InstanceGroupStatus {
9532	s.State = &v
9533	return s
9534}
9535
9536// SetStateChangeReason sets the StateChangeReason field's value.
9537func (s *InstanceGroupStatus) SetStateChangeReason(v *InstanceGroupStateChangeReason) *InstanceGroupStatus {
9538	s.StateChangeReason = v
9539	return s
9540}
9541
9542// SetTimeline sets the Timeline field's value.
9543func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGroupStatus {
9544	s.Timeline = v
9545	return s
9546}
9547
9548// The timeline of the instance group lifecycle.
9549type InstanceGroupTimeline struct {
9550	_ struct{} `type:"structure"`
9551
9552	// The creation date and time of the instance group.
9553	CreationDateTime *time.Time `type:"timestamp"`
9554
9555	// The date and time when the instance group terminated.
9556	EndDateTime *time.Time `type:"timestamp"`
9557
9558	// The date and time when the instance group became ready to perform tasks.
9559	ReadyDateTime *time.Time `type:"timestamp"`
9560}
9561
9562// String returns the string representation
9563func (s InstanceGroupTimeline) String() string {
9564	return awsutil.Prettify(s)
9565}
9566
9567// GoString returns the string representation
9568func (s InstanceGroupTimeline) GoString() string {
9569	return s.String()
9570}
9571
9572// SetCreationDateTime sets the CreationDateTime field's value.
9573func (s *InstanceGroupTimeline) SetCreationDateTime(v time.Time) *InstanceGroupTimeline {
9574	s.CreationDateTime = &v
9575	return s
9576}
9577
9578// SetEndDateTime sets the EndDateTime field's value.
9579func (s *InstanceGroupTimeline) SetEndDateTime(v time.Time) *InstanceGroupTimeline {
9580	s.EndDateTime = &v
9581	return s
9582}
9583
9584// SetReadyDateTime sets the ReadyDateTime field's value.
9585func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTimeline {
9586	s.ReadyDateTime = &v
9587	return s
9588}
9589
9590// Custom policy for requesting termination protection or termination of specific
9591// instances when shrinking an instance group.
9592type InstanceResizePolicy struct {
9593	_ struct{} `type:"structure"`
9594
9595	// Decommissioning timeout override for the specific list of instances to be
9596	// terminated.
9597	InstanceTerminationTimeout *int64 `type:"integer"`
9598
9599	// Specific list of instances to be protected when shrinking an instance group.
9600	InstancesToProtect []*string `type:"list"`
9601
9602	// Specific list of instances to be terminated when shrinking an instance group.
9603	InstancesToTerminate []*string `type:"list"`
9604}
9605
9606// String returns the string representation
9607func (s InstanceResizePolicy) String() string {
9608	return awsutil.Prettify(s)
9609}
9610
9611// GoString returns the string representation
9612func (s InstanceResizePolicy) GoString() string {
9613	return s.String()
9614}
9615
9616// SetInstanceTerminationTimeout sets the InstanceTerminationTimeout field's value.
9617func (s *InstanceResizePolicy) SetInstanceTerminationTimeout(v int64) *InstanceResizePolicy {
9618	s.InstanceTerminationTimeout = &v
9619	return s
9620}
9621
9622// SetInstancesToProtect sets the InstancesToProtect field's value.
9623func (s *InstanceResizePolicy) SetInstancesToProtect(v []*string) *InstanceResizePolicy {
9624	s.InstancesToProtect = v
9625	return s
9626}
9627
9628// SetInstancesToTerminate sets the InstancesToTerminate field's value.
9629func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceResizePolicy {
9630	s.InstancesToTerminate = v
9631	return s
9632}
9633
9634// The details of the status change reason for the instance.
9635type InstanceStateChangeReason struct {
9636	_ struct{} `type:"structure"`
9637
9638	// The programmable code for the state change reason.
9639	Code *string `type:"string" enum:"InstanceStateChangeReasonCode"`
9640
9641	// The status change reason description.
9642	Message *string `type:"string"`
9643}
9644
9645// String returns the string representation
9646func (s InstanceStateChangeReason) String() string {
9647	return awsutil.Prettify(s)
9648}
9649
9650// GoString returns the string representation
9651func (s InstanceStateChangeReason) GoString() string {
9652	return s.String()
9653}
9654
9655// SetCode sets the Code field's value.
9656func (s *InstanceStateChangeReason) SetCode(v string) *InstanceStateChangeReason {
9657	s.Code = &v
9658	return s
9659}
9660
9661// SetMessage sets the Message field's value.
9662func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeReason {
9663	s.Message = &v
9664	return s
9665}
9666
9667// The instance status details.
9668type InstanceStatus struct {
9669	_ struct{} `type:"structure"`
9670
9671	// The current state of the instance.
9672	State *string `type:"string" enum:"InstanceState"`
9673
9674	// The details of the status change reason for the instance.
9675	StateChangeReason *InstanceStateChangeReason `type:"structure"`
9676
9677	// The timeline of the instance status over time.
9678	Timeline *InstanceTimeline `type:"structure"`
9679}
9680
9681// String returns the string representation
9682func (s InstanceStatus) String() string {
9683	return awsutil.Prettify(s)
9684}
9685
9686// GoString returns the string representation
9687func (s InstanceStatus) GoString() string {
9688	return s.String()
9689}
9690
9691// SetState sets the State field's value.
9692func (s *InstanceStatus) SetState(v string) *InstanceStatus {
9693	s.State = &v
9694	return s
9695}
9696
9697// SetStateChangeReason sets the StateChangeReason field's value.
9698func (s *InstanceStatus) SetStateChangeReason(v *InstanceStateChangeReason) *InstanceStatus {
9699	s.StateChangeReason = v
9700	return s
9701}
9702
9703// SetTimeline sets the Timeline field's value.
9704func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus {
9705	s.Timeline = v
9706	return s
9707}
9708
9709// The timeline of the instance lifecycle.
9710type InstanceTimeline struct {
9711	_ struct{} `type:"structure"`
9712
9713	// The creation date and time of the instance.
9714	CreationDateTime *time.Time `type:"timestamp"`
9715
9716	// The date and time when the instance was terminated.
9717	EndDateTime *time.Time `type:"timestamp"`
9718
9719	// The date and time when the instance was ready to perform tasks.
9720	ReadyDateTime *time.Time `type:"timestamp"`
9721}
9722
9723// String returns the string representation
9724func (s InstanceTimeline) String() string {
9725	return awsutil.Prettify(s)
9726}
9727
9728// GoString returns the string representation
9729func (s InstanceTimeline) GoString() string {
9730	return s.String()
9731}
9732
9733// SetCreationDateTime sets the CreationDateTime field's value.
9734func (s *InstanceTimeline) SetCreationDateTime(v time.Time) *InstanceTimeline {
9735	s.CreationDateTime = &v
9736	return s
9737}
9738
9739// SetEndDateTime sets the EndDateTime field's value.
9740func (s *InstanceTimeline) SetEndDateTime(v time.Time) *InstanceTimeline {
9741	s.EndDateTime = &v
9742	return s
9743}
9744
9745// SetReadyDateTime sets the ReadyDateTime field's value.
9746func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline {
9747	s.ReadyDateTime = &v
9748	return s
9749}
9750
9751// An instance type configuration for each instance type in an instance fleet,
9752// which determines the EC2 instances Amazon EMR attempts to provision to fulfill
9753// On-Demand and Spot target capacities. There can be a maximum of five instance
9754// type configurations in a fleet.
9755//
9756// The instance fleet configuration is available only in Amazon EMR versions
9757// 4.8.0 and later, excluding 5.0.x versions.
9758type InstanceTypeConfig struct {
9759	_ struct{} `type:"structure"`
9760
9761	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
9762	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
9763	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
9764	BidPrice *string `type:"string"`
9765
9766	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
9767	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
9768	// 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided,
9769	// BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
9770	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
9771
9772	// A configuration classification that applies when provisioning cluster instances,
9773	// which can include configurations for applications and software that run on
9774	// the cluster.
9775	Configurations []*Configuration `type:"list"`
9776
9777	// The configuration of Amazon Elastic Block Storage (Amazon EBS) attached to
9778	// each instance as defined by InstanceType.
9779	EbsConfiguration *EbsConfiguration `type:"structure"`
9780
9781	// An EC2 instance type, such as m3.xlarge.
9782	//
9783	// InstanceType is a required field
9784	InstanceType *string `min:"1" type:"string" required:"true"`
9785
9786	// The number of units that a provisioned instance of this type provides toward
9787	// fulfilling the target capacities defined in InstanceFleetConfig. This value
9788	// is 1 for a master instance fleet, and must be 1 or greater for core and task
9789	// instance fleets. Defaults to 1 if not specified.
9790	WeightedCapacity *int64 `type:"integer"`
9791}
9792
9793// String returns the string representation
9794func (s InstanceTypeConfig) String() string {
9795	return awsutil.Prettify(s)
9796}
9797
9798// GoString returns the string representation
9799func (s InstanceTypeConfig) GoString() string {
9800	return s.String()
9801}
9802
9803// Validate inspects the fields of the type to determine if they are valid.
9804func (s *InstanceTypeConfig) Validate() error {
9805	invalidParams := request.ErrInvalidParams{Context: "InstanceTypeConfig"}
9806	if s.InstanceType == nil {
9807		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
9808	}
9809	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
9810		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
9811	}
9812	if s.EbsConfiguration != nil {
9813		if err := s.EbsConfiguration.Validate(); err != nil {
9814			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
9815		}
9816	}
9817
9818	if invalidParams.Len() > 0 {
9819		return invalidParams
9820	}
9821	return nil
9822}
9823
9824// SetBidPrice sets the BidPrice field's value.
9825func (s *InstanceTypeConfig) SetBidPrice(v string) *InstanceTypeConfig {
9826	s.BidPrice = &v
9827	return s
9828}
9829
9830// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
9831func (s *InstanceTypeConfig) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeConfig {
9832	s.BidPriceAsPercentageOfOnDemandPrice = &v
9833	return s
9834}
9835
9836// SetConfigurations sets the Configurations field's value.
9837func (s *InstanceTypeConfig) SetConfigurations(v []*Configuration) *InstanceTypeConfig {
9838	s.Configurations = v
9839	return s
9840}
9841
9842// SetEbsConfiguration sets the EbsConfiguration field's value.
9843func (s *InstanceTypeConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceTypeConfig {
9844	s.EbsConfiguration = v
9845	return s
9846}
9847
9848// SetInstanceType sets the InstanceType field's value.
9849func (s *InstanceTypeConfig) SetInstanceType(v string) *InstanceTypeConfig {
9850	s.InstanceType = &v
9851	return s
9852}
9853
9854// SetWeightedCapacity sets the WeightedCapacity field's value.
9855func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig {
9856	s.WeightedCapacity = &v
9857	return s
9858}
9859
9860// The configuration specification for each instance type in an instance fleet.
9861//
9862// The instance fleet configuration is available only in Amazon EMR versions
9863// 4.8.0 and later, excluding 5.0.x versions.
9864type InstanceTypeSpecification struct {
9865	_ struct{} `type:"structure"`
9866
9867	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
9868	// Expressed in USD.
9869	BidPrice *string `type:"string"`
9870
9871	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
9872	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
9873	// 20%).
9874	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
9875
9876	// A configuration classification that applies when provisioning cluster instances,
9877	// which can include configurations for applications and software bundled with
9878	// Amazon EMR.
9879	Configurations []*Configuration `type:"list"`
9880
9881	// The configuration of Amazon Elastic Block Storage (Amazon EBS) attached to
9882	// each instance as defined by InstanceType.
9883	EbsBlockDevices []*EbsBlockDevice `type:"list"`
9884
9885	// Evaluates to TRUE when the specified InstanceType is EBS-optimized.
9886	EbsOptimized *bool `type:"boolean"`
9887
9888	// The EC2 instance type, for example m3.xlarge.
9889	InstanceType *string `min:"1" type:"string"`
9890
9891	// The number of units that a provisioned instance of this type provides toward
9892	// fulfilling the target capacities defined in InstanceFleetConfig. Capacity
9893	// values represent performance characteristics such as vCPUs, memory, or I/O.
9894	// If not specified, the default value is 1.
9895	WeightedCapacity *int64 `type:"integer"`
9896}
9897
9898// String returns the string representation
9899func (s InstanceTypeSpecification) String() string {
9900	return awsutil.Prettify(s)
9901}
9902
9903// GoString returns the string representation
9904func (s InstanceTypeSpecification) GoString() string {
9905	return s.String()
9906}
9907
9908// SetBidPrice sets the BidPrice field's value.
9909func (s *InstanceTypeSpecification) SetBidPrice(v string) *InstanceTypeSpecification {
9910	s.BidPrice = &v
9911	return s
9912}
9913
9914// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
9915func (s *InstanceTypeSpecification) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeSpecification {
9916	s.BidPriceAsPercentageOfOnDemandPrice = &v
9917	return s
9918}
9919
9920// SetConfigurations sets the Configurations field's value.
9921func (s *InstanceTypeSpecification) SetConfigurations(v []*Configuration) *InstanceTypeSpecification {
9922	s.Configurations = v
9923	return s
9924}
9925
9926// SetEbsBlockDevices sets the EbsBlockDevices field's value.
9927func (s *InstanceTypeSpecification) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceTypeSpecification {
9928	s.EbsBlockDevices = v
9929	return s
9930}
9931
9932// SetEbsOptimized sets the EbsOptimized field's value.
9933func (s *InstanceTypeSpecification) SetEbsOptimized(v bool) *InstanceTypeSpecification {
9934	s.EbsOptimized = &v
9935	return s
9936}
9937
9938// SetInstanceType sets the InstanceType field's value.
9939func (s *InstanceTypeSpecification) SetInstanceType(v string) *InstanceTypeSpecification {
9940	s.InstanceType = &v
9941	return s
9942}
9943
9944// SetWeightedCapacity sets the WeightedCapacity field's value.
9945func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSpecification {
9946	s.WeightedCapacity = &v
9947	return s
9948}
9949
9950// Indicates that an error occurred while processing the request and that the
9951// request was not completed.
9952type InternalServerError struct {
9953	_            struct{}                  `type:"structure"`
9954	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9955
9956	Message_ *string `locationName:"message" type:"string"`
9957}
9958
9959// String returns the string representation
9960func (s InternalServerError) String() string {
9961	return awsutil.Prettify(s)
9962}
9963
9964// GoString returns the string representation
9965func (s InternalServerError) GoString() string {
9966	return s.String()
9967}
9968
9969func newErrorInternalServerError(v protocol.ResponseMetadata) error {
9970	return &InternalServerError{
9971		RespMetadata: v,
9972	}
9973}
9974
9975// Code returns the exception type name.
9976func (s *InternalServerError) Code() string {
9977	return "InternalServerError"
9978}
9979
9980// Message returns the exception's message.
9981func (s *InternalServerError) Message() string {
9982	if s.Message_ != nil {
9983		return *s.Message_
9984	}
9985	return ""
9986}
9987
9988// OrigErr always returns nil, satisfies awserr.Error interface.
9989func (s *InternalServerError) OrigErr() error {
9990	return nil
9991}
9992
9993func (s *InternalServerError) Error() string {
9994	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9995}
9996
9997// Status code returns the HTTP status code for the request's response error.
9998func (s *InternalServerError) StatusCode() int {
9999	return s.RespMetadata.StatusCode
10000}
10001
10002// RequestID returns the service's response RequestID for request.
10003func (s *InternalServerError) RequestID() string {
10004	return s.RespMetadata.RequestID
10005}
10006
10007// This exception occurs when there is an internal failure in the Amazon EMR
10008// service.
10009type InternalServerException struct {
10010	_            struct{}                  `type:"structure"`
10011	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10012
10013	// The message associated with the exception.
10014	Message_ *string `locationName:"Message" type:"string"`
10015}
10016
10017// String returns the string representation
10018func (s InternalServerException) String() string {
10019	return awsutil.Prettify(s)
10020}
10021
10022// GoString returns the string representation
10023func (s InternalServerException) GoString() string {
10024	return s.String()
10025}
10026
10027func newErrorInternalServerException(v protocol.ResponseMetadata) error {
10028	return &InternalServerException{
10029		RespMetadata: v,
10030	}
10031}
10032
10033// Code returns the exception type name.
10034func (s *InternalServerException) Code() string {
10035	return "InternalServerException"
10036}
10037
10038// Message returns the exception's message.
10039func (s *InternalServerException) Message() string {
10040	if s.Message_ != nil {
10041		return *s.Message_
10042	}
10043	return ""
10044}
10045
10046// OrigErr always returns nil, satisfies awserr.Error interface.
10047func (s *InternalServerException) OrigErr() error {
10048	return nil
10049}
10050
10051func (s *InternalServerException) Error() string {
10052	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10053}
10054
10055// Status code returns the HTTP status code for the request's response error.
10056func (s *InternalServerException) StatusCode() int {
10057	return s.RespMetadata.StatusCode
10058}
10059
10060// RequestID returns the service's response RequestID for request.
10061func (s *InternalServerException) RequestID() string {
10062	return s.RespMetadata.RequestID
10063}
10064
10065// This exception occurs when there is something wrong with user input.
10066type InvalidRequestException struct {
10067	_            struct{}                  `type:"structure"`
10068	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10069
10070	// The error code associated with the exception.
10071	ErrorCode *string `min:"1" type:"string"`
10072
10073	// The message associated with the exception.
10074	Message_ *string `locationName:"Message" type:"string"`
10075}
10076
10077// String returns the string representation
10078func (s InvalidRequestException) String() string {
10079	return awsutil.Prettify(s)
10080}
10081
10082// GoString returns the string representation
10083func (s InvalidRequestException) GoString() string {
10084	return s.String()
10085}
10086
10087func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
10088	return &InvalidRequestException{
10089		RespMetadata: v,
10090	}
10091}
10092
10093// Code returns the exception type name.
10094func (s *InvalidRequestException) Code() string {
10095	return "InvalidRequestException"
10096}
10097
10098// Message returns the exception's message.
10099func (s *InvalidRequestException) Message() string {
10100	if s.Message_ != nil {
10101		return *s.Message_
10102	}
10103	return ""
10104}
10105
10106// OrigErr always returns nil, satisfies awserr.Error interface.
10107func (s *InvalidRequestException) OrigErr() error {
10108	return nil
10109}
10110
10111func (s *InvalidRequestException) Error() string {
10112	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10113}
10114
10115// Status code returns the HTTP status code for the request's response error.
10116func (s *InvalidRequestException) StatusCode() int {
10117	return s.RespMetadata.StatusCode
10118}
10119
10120// RequestID returns the service's response RequestID for request.
10121func (s *InvalidRequestException) RequestID() string {
10122	return s.RespMetadata.RequestID
10123}
10124
10125// A description of a cluster (job flow).
10126type JobFlowDetail struct {
10127	_ struct{} `type:"structure"`
10128
10129	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
10130	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
10131	AmiVersion *string `type:"string"`
10132
10133	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
10134	// The IAM role provides a way for the automatic scaling feature to get the
10135	// required permissions it needs to launch and terminate EC2 instances in an
10136	// instance group.
10137	AutoScalingRole *string `type:"string"`
10138
10139	// A list of the bootstrap actions run by the job flow.
10140	BootstrapActions []*BootstrapActionDetail `type:"list"`
10141
10142	// Describes the execution status of the job flow.
10143	//
10144	// ExecutionStatusDetail is a required field
10145	ExecutionStatusDetail *JobFlowExecutionStatusDetail `type:"structure" required:"true"`
10146
10147	// Describes the Amazon EC2 instances of the job flow.
10148	//
10149	// Instances is a required field
10150	Instances *JobFlowInstancesDetail `type:"structure" required:"true"`
10151
10152	// The job flow identifier.
10153	//
10154	// JobFlowId is a required field
10155	JobFlowId *string `type:"string" required:"true"`
10156
10157	// The IAM role that was specified when the job flow was launched. The EC2 instances
10158	// of the job flow assume this role.
10159	JobFlowRole *string `type:"string"`
10160
10161	// The AWS KMS customer master key (CMK) used for encrypting log files. This
10162	// attribute is only available with EMR version 5.30.0 and later, excluding
10163	// EMR 6.0.0.
10164	LogEncryptionKmsKeyId *string `type:"string"`
10165
10166	// The location in Amazon S3 where log files for the job are stored.
10167	LogUri *string `type:"string"`
10168
10169	// The name of the job flow.
10170	//
10171	// Name is a required field
10172	Name *string `type:"string" required:"true"`
10173
10174	// The way that individual Amazon EC2 instances terminate when an automatic
10175	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
10176	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
10177	// regardless of when the request to terminate the instance was submitted. This
10178	// option is only available with Amazon EMR 5.1.0 and later and is the default
10179	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
10180	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
10181	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
10182	// With either behavior, Amazon EMR removes the least active nodes first and
10183	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
10184	// available only in Amazon EMR version 4.1.0 and later, and is the default
10185	// for versions of Amazon EMR earlier than 5.1.0.
10186	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
10187
10188	// The IAM role that is assumed by the Amazon EMR service to access AWS resources
10189	// on your behalf.
10190	ServiceRole *string `type:"string"`
10191
10192	// A list of steps run by the job flow.
10193	Steps []*StepDetail `type:"list"`
10194
10195	// A list of strings set by third-party software when the job flow is launched.
10196	// If you are not using third-party software to manage the job flow, this value
10197	// is empty.
10198	SupportedProducts []*string `type:"list"`
10199
10200	// Indicates whether the cluster is visible to all IAM users of the AWS account
10201	// associated with the cluster. The default value, true, indicates that all
10202	// IAM users in the AWS account can perform cluster actions if they have the
10203	// proper IAM policy permissions. If this value is false, only the IAM user
10204	// that created the cluster can perform actions. This value can be changed on
10205	// a running cluster by using the SetVisibleToAllUsers action. You can override
10206	// the default value of true when you create a cluster by using the VisibleToAllUsers
10207	// parameter of the RunJobFlow action.
10208	VisibleToAllUsers *bool `type:"boolean"`
10209}
10210
10211// String returns the string representation
10212func (s JobFlowDetail) String() string {
10213	return awsutil.Prettify(s)
10214}
10215
10216// GoString returns the string representation
10217func (s JobFlowDetail) GoString() string {
10218	return s.String()
10219}
10220
10221// SetAmiVersion sets the AmiVersion field's value.
10222func (s *JobFlowDetail) SetAmiVersion(v string) *JobFlowDetail {
10223	s.AmiVersion = &v
10224	return s
10225}
10226
10227// SetAutoScalingRole sets the AutoScalingRole field's value.
10228func (s *JobFlowDetail) SetAutoScalingRole(v string) *JobFlowDetail {
10229	s.AutoScalingRole = &v
10230	return s
10231}
10232
10233// SetBootstrapActions sets the BootstrapActions field's value.
10234func (s *JobFlowDetail) SetBootstrapActions(v []*BootstrapActionDetail) *JobFlowDetail {
10235	s.BootstrapActions = v
10236	return s
10237}
10238
10239// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
10240func (s *JobFlowDetail) SetExecutionStatusDetail(v *JobFlowExecutionStatusDetail) *JobFlowDetail {
10241	s.ExecutionStatusDetail = v
10242	return s
10243}
10244
10245// SetInstances sets the Instances field's value.
10246func (s *JobFlowDetail) SetInstances(v *JobFlowInstancesDetail) *JobFlowDetail {
10247	s.Instances = v
10248	return s
10249}
10250
10251// SetJobFlowId sets the JobFlowId field's value.
10252func (s *JobFlowDetail) SetJobFlowId(v string) *JobFlowDetail {
10253	s.JobFlowId = &v
10254	return s
10255}
10256
10257// SetJobFlowRole sets the JobFlowRole field's value.
10258func (s *JobFlowDetail) SetJobFlowRole(v string) *JobFlowDetail {
10259	s.JobFlowRole = &v
10260	return s
10261}
10262
10263// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
10264func (s *JobFlowDetail) SetLogEncryptionKmsKeyId(v string) *JobFlowDetail {
10265	s.LogEncryptionKmsKeyId = &v
10266	return s
10267}
10268
10269// SetLogUri sets the LogUri field's value.
10270func (s *JobFlowDetail) SetLogUri(v string) *JobFlowDetail {
10271	s.LogUri = &v
10272	return s
10273}
10274
10275// SetName sets the Name field's value.
10276func (s *JobFlowDetail) SetName(v string) *JobFlowDetail {
10277	s.Name = &v
10278	return s
10279}
10280
10281// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
10282func (s *JobFlowDetail) SetScaleDownBehavior(v string) *JobFlowDetail {
10283	s.ScaleDownBehavior = &v
10284	return s
10285}
10286
10287// SetServiceRole sets the ServiceRole field's value.
10288func (s *JobFlowDetail) SetServiceRole(v string) *JobFlowDetail {
10289	s.ServiceRole = &v
10290	return s
10291}
10292
10293// SetSteps sets the Steps field's value.
10294func (s *JobFlowDetail) SetSteps(v []*StepDetail) *JobFlowDetail {
10295	s.Steps = v
10296	return s
10297}
10298
10299// SetSupportedProducts sets the SupportedProducts field's value.
10300func (s *JobFlowDetail) SetSupportedProducts(v []*string) *JobFlowDetail {
10301	s.SupportedProducts = v
10302	return s
10303}
10304
10305// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
10306func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail {
10307	s.VisibleToAllUsers = &v
10308	return s
10309}
10310
10311// Describes the status of the cluster (job flow).
10312type JobFlowExecutionStatusDetail struct {
10313	_ struct{} `type:"structure"`
10314
10315	// The creation date and time of the job flow.
10316	//
10317	// CreationDateTime is a required field
10318	CreationDateTime *time.Time `type:"timestamp" required:"true"`
10319
10320	// The completion date and time of the job flow.
10321	EndDateTime *time.Time `type:"timestamp"`
10322
10323	// Description of the job flow last changed state.
10324	LastStateChangeReason *string `type:"string"`
10325
10326	// The date and time when the job flow was ready to start running bootstrap
10327	// actions.
10328	ReadyDateTime *time.Time `type:"timestamp"`
10329
10330	// The start date and time of the job flow.
10331	StartDateTime *time.Time `type:"timestamp"`
10332
10333	// The state of the job flow.
10334	//
10335	// State is a required field
10336	State *string `type:"string" required:"true" enum:"JobFlowExecutionState"`
10337}
10338
10339// String returns the string representation
10340func (s JobFlowExecutionStatusDetail) String() string {
10341	return awsutil.Prettify(s)
10342}
10343
10344// GoString returns the string representation
10345func (s JobFlowExecutionStatusDetail) GoString() string {
10346	return s.String()
10347}
10348
10349// SetCreationDateTime sets the CreationDateTime field's value.
10350func (s *JobFlowExecutionStatusDetail) SetCreationDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10351	s.CreationDateTime = &v
10352	return s
10353}
10354
10355// SetEndDateTime sets the EndDateTime field's value.
10356func (s *JobFlowExecutionStatusDetail) SetEndDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10357	s.EndDateTime = &v
10358	return s
10359}
10360
10361// SetLastStateChangeReason sets the LastStateChangeReason field's value.
10362func (s *JobFlowExecutionStatusDetail) SetLastStateChangeReason(v string) *JobFlowExecutionStatusDetail {
10363	s.LastStateChangeReason = &v
10364	return s
10365}
10366
10367// SetReadyDateTime sets the ReadyDateTime field's value.
10368func (s *JobFlowExecutionStatusDetail) SetReadyDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10369	s.ReadyDateTime = &v
10370	return s
10371}
10372
10373// SetStartDateTime sets the StartDateTime field's value.
10374func (s *JobFlowExecutionStatusDetail) SetStartDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10375	s.StartDateTime = &v
10376	return s
10377}
10378
10379// SetState sets the State field's value.
10380func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatusDetail {
10381	s.State = &v
10382	return s
10383}
10384
10385// A description of the Amazon EC2 instance on which the cluster (job flow)
10386// runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or
10387// InstanceFleets. They cannot be used together. You may also have MasterInstanceType,
10388// SlaveInstanceType, and InstanceCount (all three must be present), but we
10389// don't recommend this configuration.
10390type JobFlowInstancesConfig struct {
10391	_ struct{} `type:"structure"`
10392
10393	// A list of additional Amazon EC2 security group IDs for the master node.
10394	AdditionalMasterSecurityGroups []*string `type:"list"`
10395
10396	// A list of additional Amazon EC2 security group IDs for the core and task
10397	// nodes.
10398	AdditionalSlaveSecurityGroups []*string `type:"list"`
10399
10400	// The name of the EC2 key pair that can be used to connect to the master node
10401	// using SSH as the user called "hadoop."
10402	Ec2KeyName *string `type:"string"`
10403
10404	// Applies to clusters that use the uniform instance group configuration. To
10405	// launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this
10406	// parameter to the identifier of the Amazon VPC subnet where you want the cluster
10407	// to launch. If you do not specify this value and your account supports EC2-Classic,
10408	// the cluster launches in EC2-Classic.
10409	Ec2SubnetId *string `type:"string"`
10410
10411	// Applies to clusters that use the instance fleet configuration. When multiple
10412	// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances
10413	// in the optimal subnet.
10414	//
10415	// The instance fleet configuration is available only in Amazon EMR versions
10416	// 4.8.0 and later, excluding 5.0.x versions.
10417	Ec2SubnetIds []*string `type:"list"`
10418
10419	// The identifier of the Amazon EC2 security group for the master node.
10420	EmrManagedMasterSecurityGroup *string `type:"string"`
10421
10422	// The identifier of the Amazon EC2 security group for the core and task nodes.
10423	EmrManagedSlaveSecurityGroup *string `type:"string"`
10424
10425	// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop
10426	// version for the cluster. Valid inputs are "0.18" (no longer maintained),
10427	// "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3",
10428	// "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is
10429	// used, unless the AmiVersion parameter is set in the RunJobFlow call, in which
10430	// case the default version of Hadoop for that AMI version is used.
10431	HadoopVersion *string `type:"string"`
10432
10433	// The number of EC2 instances in the cluster.
10434	InstanceCount *int64 `type:"integer"`
10435
10436	//
10437	// The instance fleet configuration is available only in Amazon EMR versions
10438	// 4.8.0 and later, excluding 5.0.x versions.
10439	//
10440	// Describes the EC2 instances and instance configurations for clusters that
10441	// use the instance fleet configuration.
10442	InstanceFleets []*InstanceFleetConfig `type:"list"`
10443
10444	// Configuration for the instance groups in a cluster.
10445	InstanceGroups []*InstanceGroupConfig `type:"list"`
10446
10447	// Specifies whether the cluster should remain available after completing all
10448	// steps.
10449	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
10450
10451	// The EC2 instance type of the master node.
10452	MasterInstanceType *string `min:"1" type:"string"`
10453
10454	// The Availability Zone in which the cluster runs.
10455	Placement *PlacementType `type:"structure"`
10456
10457	// The identifier of the Amazon EC2 security group for the Amazon EMR service
10458	// to access clusters in VPC private subnets.
10459	ServiceAccessSecurityGroup *string `type:"string"`
10460
10461	// The EC2 instance type of the core and task nodes.
10462	SlaveInstanceType *string `min:"1" type:"string"`
10463
10464	// Specifies whether to lock the cluster to prevent the Amazon EC2 instances
10465	// from being terminated by API call, user intervention, or in the event of
10466	// a job-flow error.
10467	TerminationProtected *bool `type:"boolean"`
10468}
10469
10470// String returns the string representation
10471func (s JobFlowInstancesConfig) String() string {
10472	return awsutil.Prettify(s)
10473}
10474
10475// GoString returns the string representation
10476func (s JobFlowInstancesConfig) GoString() string {
10477	return s.String()
10478}
10479
10480// Validate inspects the fields of the type to determine if they are valid.
10481func (s *JobFlowInstancesConfig) Validate() error {
10482	invalidParams := request.ErrInvalidParams{Context: "JobFlowInstancesConfig"}
10483	if s.MasterInstanceType != nil && len(*s.MasterInstanceType) < 1 {
10484		invalidParams.Add(request.NewErrParamMinLen("MasterInstanceType", 1))
10485	}
10486	if s.SlaveInstanceType != nil && len(*s.SlaveInstanceType) < 1 {
10487		invalidParams.Add(request.NewErrParamMinLen("SlaveInstanceType", 1))
10488	}
10489	if s.InstanceFleets != nil {
10490		for i, v := range s.InstanceFleets {
10491			if v == nil {
10492				continue
10493			}
10494			if err := v.Validate(); err != nil {
10495				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceFleets", i), err.(request.ErrInvalidParams))
10496			}
10497		}
10498	}
10499	if s.InstanceGroups != nil {
10500		for i, v := range s.InstanceGroups {
10501			if v == nil {
10502				continue
10503			}
10504			if err := v.Validate(); err != nil {
10505				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
10506			}
10507		}
10508	}
10509
10510	if invalidParams.Len() > 0 {
10511		return invalidParams
10512	}
10513	return nil
10514}
10515
10516// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
10517func (s *JobFlowInstancesConfig) SetAdditionalMasterSecurityGroups(v []*string) *JobFlowInstancesConfig {
10518	s.AdditionalMasterSecurityGroups = v
10519	return s
10520}
10521
10522// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
10523func (s *JobFlowInstancesConfig) SetAdditionalSlaveSecurityGroups(v []*string) *JobFlowInstancesConfig {
10524	s.AdditionalSlaveSecurityGroups = v
10525	return s
10526}
10527
10528// SetEc2KeyName sets the Ec2KeyName field's value.
10529func (s *JobFlowInstancesConfig) SetEc2KeyName(v string) *JobFlowInstancesConfig {
10530	s.Ec2KeyName = &v
10531	return s
10532}
10533
10534// SetEc2SubnetId sets the Ec2SubnetId field's value.
10535func (s *JobFlowInstancesConfig) SetEc2SubnetId(v string) *JobFlowInstancesConfig {
10536	s.Ec2SubnetId = &v
10537	return s
10538}
10539
10540// SetEc2SubnetIds sets the Ec2SubnetIds field's value.
10541func (s *JobFlowInstancesConfig) SetEc2SubnetIds(v []*string) *JobFlowInstancesConfig {
10542	s.Ec2SubnetIds = v
10543	return s
10544}
10545
10546// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
10547func (s *JobFlowInstancesConfig) SetEmrManagedMasterSecurityGroup(v string) *JobFlowInstancesConfig {
10548	s.EmrManagedMasterSecurityGroup = &v
10549	return s
10550}
10551
10552// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
10553func (s *JobFlowInstancesConfig) SetEmrManagedSlaveSecurityGroup(v string) *JobFlowInstancesConfig {
10554	s.EmrManagedSlaveSecurityGroup = &v
10555	return s
10556}
10557
10558// SetHadoopVersion sets the HadoopVersion field's value.
10559func (s *JobFlowInstancesConfig) SetHadoopVersion(v string) *JobFlowInstancesConfig {
10560	s.HadoopVersion = &v
10561	return s
10562}
10563
10564// SetInstanceCount sets the InstanceCount field's value.
10565func (s *JobFlowInstancesConfig) SetInstanceCount(v int64) *JobFlowInstancesConfig {
10566	s.InstanceCount = &v
10567	return s
10568}
10569
10570// SetInstanceFleets sets the InstanceFleets field's value.
10571func (s *JobFlowInstancesConfig) SetInstanceFleets(v []*InstanceFleetConfig) *JobFlowInstancesConfig {
10572	s.InstanceFleets = v
10573	return s
10574}
10575
10576// SetInstanceGroups sets the InstanceGroups field's value.
10577func (s *JobFlowInstancesConfig) SetInstanceGroups(v []*InstanceGroupConfig) *JobFlowInstancesConfig {
10578	s.InstanceGroups = v
10579	return s
10580}
10581
10582// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
10583func (s *JobFlowInstancesConfig) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesConfig {
10584	s.KeepJobFlowAliveWhenNoSteps = &v
10585	return s
10586}
10587
10588// SetMasterInstanceType sets the MasterInstanceType field's value.
10589func (s *JobFlowInstancesConfig) SetMasterInstanceType(v string) *JobFlowInstancesConfig {
10590	s.MasterInstanceType = &v
10591	return s
10592}
10593
10594// SetPlacement sets the Placement field's value.
10595func (s *JobFlowInstancesConfig) SetPlacement(v *PlacementType) *JobFlowInstancesConfig {
10596	s.Placement = v
10597	return s
10598}
10599
10600// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
10601func (s *JobFlowInstancesConfig) SetServiceAccessSecurityGroup(v string) *JobFlowInstancesConfig {
10602	s.ServiceAccessSecurityGroup = &v
10603	return s
10604}
10605
10606// SetSlaveInstanceType sets the SlaveInstanceType field's value.
10607func (s *JobFlowInstancesConfig) SetSlaveInstanceType(v string) *JobFlowInstancesConfig {
10608	s.SlaveInstanceType = &v
10609	return s
10610}
10611
10612// SetTerminationProtected sets the TerminationProtected field's value.
10613func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstancesConfig {
10614	s.TerminationProtected = &v
10615	return s
10616}
10617
10618// Specify the type of Amazon EC2 instances that the cluster (job flow) runs
10619// on.
10620type JobFlowInstancesDetail struct {
10621	_ struct{} `type:"structure"`
10622
10623	// The name of an Amazon EC2 key pair that can be used to connect to the master
10624	// node using SSH.
10625	Ec2KeyName *string `type:"string"`
10626
10627	// For clusters launched within Amazon Virtual Private Cloud, this is the identifier
10628	// of the subnet where the cluster was launched.
10629	Ec2SubnetId *string `type:"string"`
10630
10631	// The Hadoop version for the cluster.
10632	HadoopVersion *string `type:"string"`
10633
10634	// The number of Amazon EC2 instances in the cluster. If the value is 1, the
10635	// same instance serves as both the master and core and task node. If the value
10636	// is greater than 1, one instance is the master node and all others are core
10637	// and task nodes.
10638	//
10639	// InstanceCount is a required field
10640	InstanceCount *int64 `type:"integer" required:"true"`
10641
10642	// Details about the instance groups in a cluster.
10643	InstanceGroups []*InstanceGroupDetail `type:"list"`
10644
10645	// Specifies whether the cluster should remain available after completing all
10646	// steps.
10647	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
10648
10649	// The Amazon EC2 instance identifier of the master node.
10650	MasterInstanceId *string `type:"string"`
10651
10652	// The Amazon EC2 master node instance type.
10653	//
10654	// MasterInstanceType is a required field
10655	MasterInstanceType *string `min:"1" type:"string" required:"true"`
10656
10657	// The DNS name of the master node. If the cluster is on a private subnet, this
10658	// is the private DNS name. On a public subnet, this is the public DNS name.
10659	MasterPublicDnsName *string `type:"string"`
10660
10661	// An approximation of the cost of the cluster, represented in m1.small/hours.
10662	// This value is increased one time for every hour that an m1.small instance
10663	// runs. Larger instances are weighted more heavily, so an Amazon EC2 instance
10664	// that is roughly four times more expensive would result in the normalized
10665	// instance hours being increased incrementally four times. This result is only
10666	// an approximation and does not reflect the actual billing rate.
10667	NormalizedInstanceHours *int64 `type:"integer"`
10668
10669	// The Amazon EC2 Availability Zone for the cluster.
10670	Placement *PlacementType `type:"structure"`
10671
10672	// The Amazon EC2 core and task node instance type.
10673	//
10674	// SlaveInstanceType is a required field
10675	SlaveInstanceType *string `min:"1" type:"string" required:"true"`
10676
10677	// Specifies whether the Amazon EC2 instances in the cluster are protected from
10678	// termination by API calls, user intervention, or in the event of a job-flow
10679	// error.
10680	TerminationProtected *bool `type:"boolean"`
10681}
10682
10683// String returns the string representation
10684func (s JobFlowInstancesDetail) String() string {
10685	return awsutil.Prettify(s)
10686}
10687
10688// GoString returns the string representation
10689func (s JobFlowInstancesDetail) GoString() string {
10690	return s.String()
10691}
10692
10693// SetEc2KeyName sets the Ec2KeyName field's value.
10694func (s *JobFlowInstancesDetail) SetEc2KeyName(v string) *JobFlowInstancesDetail {
10695	s.Ec2KeyName = &v
10696	return s
10697}
10698
10699// SetEc2SubnetId sets the Ec2SubnetId field's value.
10700func (s *JobFlowInstancesDetail) SetEc2SubnetId(v string) *JobFlowInstancesDetail {
10701	s.Ec2SubnetId = &v
10702	return s
10703}
10704
10705// SetHadoopVersion sets the HadoopVersion field's value.
10706func (s *JobFlowInstancesDetail) SetHadoopVersion(v string) *JobFlowInstancesDetail {
10707	s.HadoopVersion = &v
10708	return s
10709}
10710
10711// SetInstanceCount sets the InstanceCount field's value.
10712func (s *JobFlowInstancesDetail) SetInstanceCount(v int64) *JobFlowInstancesDetail {
10713	s.InstanceCount = &v
10714	return s
10715}
10716
10717// SetInstanceGroups sets the InstanceGroups field's value.
10718func (s *JobFlowInstancesDetail) SetInstanceGroups(v []*InstanceGroupDetail) *JobFlowInstancesDetail {
10719	s.InstanceGroups = v
10720	return s
10721}
10722
10723// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
10724func (s *JobFlowInstancesDetail) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesDetail {
10725	s.KeepJobFlowAliveWhenNoSteps = &v
10726	return s
10727}
10728
10729// SetMasterInstanceId sets the MasterInstanceId field's value.
10730func (s *JobFlowInstancesDetail) SetMasterInstanceId(v string) *JobFlowInstancesDetail {
10731	s.MasterInstanceId = &v
10732	return s
10733}
10734
10735// SetMasterInstanceType sets the MasterInstanceType field's value.
10736func (s *JobFlowInstancesDetail) SetMasterInstanceType(v string) *JobFlowInstancesDetail {
10737	s.MasterInstanceType = &v
10738	return s
10739}
10740
10741// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
10742func (s *JobFlowInstancesDetail) SetMasterPublicDnsName(v string) *JobFlowInstancesDetail {
10743	s.MasterPublicDnsName = &v
10744	return s
10745}
10746
10747// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
10748func (s *JobFlowInstancesDetail) SetNormalizedInstanceHours(v int64) *JobFlowInstancesDetail {
10749	s.NormalizedInstanceHours = &v
10750	return s
10751}
10752
10753// SetPlacement sets the Placement field's value.
10754func (s *JobFlowInstancesDetail) SetPlacement(v *PlacementType) *JobFlowInstancesDetail {
10755	s.Placement = v
10756	return s
10757}
10758
10759// SetSlaveInstanceType sets the SlaveInstanceType field's value.
10760func (s *JobFlowInstancesDetail) SetSlaveInstanceType(v string) *JobFlowInstancesDetail {
10761	s.SlaveInstanceType = &v
10762	return s
10763}
10764
10765// SetTerminationProtected sets the TerminationProtected field's value.
10766func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstancesDetail {
10767	s.TerminationProtected = &v
10768	return s
10769}
10770
10771// Attributes for Kerberos configuration when Kerberos authentication is enabled
10772// using a security configuration. For more information see Use Kerberos Authentication
10773// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
10774// in the Amazon EMR Management Guide.
10775type KerberosAttributes struct {
10776	_ struct{} `type:"structure"`
10777
10778	// The Active Directory password for ADDomainJoinUser.
10779	ADDomainJoinPassword *string `type:"string"`
10780
10781	// Required only when establishing a cross-realm trust with an Active Directory
10782	// domain. A user with sufficient privileges to join resources to the domain.
10783	ADDomainJoinUser *string `type:"string"`
10784
10785	// Required only when establishing a cross-realm trust with a KDC in a different
10786	// realm. The cross-realm principal password, which must be identical across
10787	// realms.
10788	CrossRealmTrustPrincipalPassword *string `type:"string"`
10789
10790	// The password used within the cluster for the kadmin service on the cluster-dedicated
10791	// KDC, which maintains Kerberos principals, password policies, and keytabs
10792	// for the cluster.
10793	//
10794	// KdcAdminPassword is a required field
10795	KdcAdminPassword *string `type:"string" required:"true"`
10796
10797	// The name of the Kerberos realm to which all nodes in a cluster belong. For
10798	// example, EC2.INTERNAL.
10799	//
10800	// Realm is a required field
10801	Realm *string `type:"string" required:"true"`
10802}
10803
10804// String returns the string representation
10805func (s KerberosAttributes) String() string {
10806	return awsutil.Prettify(s)
10807}
10808
10809// GoString returns the string representation
10810func (s KerberosAttributes) GoString() string {
10811	return s.String()
10812}
10813
10814// Validate inspects the fields of the type to determine if they are valid.
10815func (s *KerberosAttributes) Validate() error {
10816	invalidParams := request.ErrInvalidParams{Context: "KerberosAttributes"}
10817	if s.KdcAdminPassword == nil {
10818		invalidParams.Add(request.NewErrParamRequired("KdcAdminPassword"))
10819	}
10820	if s.Realm == nil {
10821		invalidParams.Add(request.NewErrParamRequired("Realm"))
10822	}
10823
10824	if invalidParams.Len() > 0 {
10825		return invalidParams
10826	}
10827	return nil
10828}
10829
10830// SetADDomainJoinPassword sets the ADDomainJoinPassword field's value.
10831func (s *KerberosAttributes) SetADDomainJoinPassword(v string) *KerberosAttributes {
10832	s.ADDomainJoinPassword = &v
10833	return s
10834}
10835
10836// SetADDomainJoinUser sets the ADDomainJoinUser field's value.
10837func (s *KerberosAttributes) SetADDomainJoinUser(v string) *KerberosAttributes {
10838	s.ADDomainJoinUser = &v
10839	return s
10840}
10841
10842// SetCrossRealmTrustPrincipalPassword sets the CrossRealmTrustPrincipalPassword field's value.
10843func (s *KerberosAttributes) SetCrossRealmTrustPrincipalPassword(v string) *KerberosAttributes {
10844	s.CrossRealmTrustPrincipalPassword = &v
10845	return s
10846}
10847
10848// SetKdcAdminPassword sets the KdcAdminPassword field's value.
10849func (s *KerberosAttributes) SetKdcAdminPassword(v string) *KerberosAttributes {
10850	s.KdcAdminPassword = &v
10851	return s
10852}
10853
10854// SetRealm sets the Realm field's value.
10855func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes {
10856	s.Realm = &v
10857	return s
10858}
10859
10860// A key-value pair.
10861type KeyValue struct {
10862	_ struct{} `type:"structure"`
10863
10864	// The unique identifier of a key-value pair.
10865	Key *string `type:"string"`
10866
10867	// The value part of the identified key.
10868	Value *string `type:"string"`
10869}
10870
10871// String returns the string representation
10872func (s KeyValue) String() string {
10873	return awsutil.Prettify(s)
10874}
10875
10876// GoString returns the string representation
10877func (s KeyValue) GoString() string {
10878	return s.String()
10879}
10880
10881// SetKey sets the Key field's value.
10882func (s *KeyValue) SetKey(v string) *KeyValue {
10883	s.Key = &v
10884	return s
10885}
10886
10887// SetValue sets the Value field's value.
10888func (s *KeyValue) SetValue(v string) *KeyValue {
10889	s.Value = &v
10890	return s
10891}
10892
10893// This input determines which bootstrap actions to retrieve.
10894type ListBootstrapActionsInput struct {
10895	_ struct{} `type:"structure"`
10896
10897	// The cluster identifier for the bootstrap actions to list.
10898	//
10899	// ClusterId is a required field
10900	ClusterId *string `type:"string" required:"true"`
10901
10902	// The pagination token that indicates the next set of results to retrieve.
10903	Marker *string `type:"string"`
10904}
10905
10906// String returns the string representation
10907func (s ListBootstrapActionsInput) String() string {
10908	return awsutil.Prettify(s)
10909}
10910
10911// GoString returns the string representation
10912func (s ListBootstrapActionsInput) GoString() string {
10913	return s.String()
10914}
10915
10916// Validate inspects the fields of the type to determine if they are valid.
10917func (s *ListBootstrapActionsInput) Validate() error {
10918	invalidParams := request.ErrInvalidParams{Context: "ListBootstrapActionsInput"}
10919	if s.ClusterId == nil {
10920		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
10921	}
10922
10923	if invalidParams.Len() > 0 {
10924		return invalidParams
10925	}
10926	return nil
10927}
10928
10929// SetClusterId sets the ClusterId field's value.
10930func (s *ListBootstrapActionsInput) SetClusterId(v string) *ListBootstrapActionsInput {
10931	s.ClusterId = &v
10932	return s
10933}
10934
10935// SetMarker sets the Marker field's value.
10936func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInput {
10937	s.Marker = &v
10938	return s
10939}
10940
10941// This output contains the bootstrap actions detail.
10942type ListBootstrapActionsOutput struct {
10943	_ struct{} `type:"structure"`
10944
10945	// The bootstrap actions associated with the cluster.
10946	BootstrapActions []*Command `type:"list"`
10947
10948	// The pagination token that indicates the next set of results to retrieve.
10949	Marker *string `type:"string"`
10950}
10951
10952// String returns the string representation
10953func (s ListBootstrapActionsOutput) String() string {
10954	return awsutil.Prettify(s)
10955}
10956
10957// GoString returns the string representation
10958func (s ListBootstrapActionsOutput) GoString() string {
10959	return s.String()
10960}
10961
10962// SetBootstrapActions sets the BootstrapActions field's value.
10963func (s *ListBootstrapActionsOutput) SetBootstrapActions(v []*Command) *ListBootstrapActionsOutput {
10964	s.BootstrapActions = v
10965	return s
10966}
10967
10968// SetMarker sets the Marker field's value.
10969func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOutput {
10970	s.Marker = &v
10971	return s
10972}
10973
10974// This input determines how the ListClusters action filters the list of clusters
10975// that it returns.
10976type ListClustersInput struct {
10977	_ struct{} `type:"structure"`
10978
10979	// The cluster state filters to apply when listing clusters.
10980	ClusterStates []*string `type:"list"`
10981
10982	// The creation date and time beginning value filter for listing clusters.
10983	CreatedAfter *time.Time `type:"timestamp"`
10984
10985	// The creation date and time end value filter for listing clusters.
10986	CreatedBefore *time.Time `type:"timestamp"`
10987
10988	// The pagination token that indicates the next set of results to retrieve.
10989	Marker *string `type:"string"`
10990}
10991
10992// String returns the string representation
10993func (s ListClustersInput) String() string {
10994	return awsutil.Prettify(s)
10995}
10996
10997// GoString returns the string representation
10998func (s ListClustersInput) GoString() string {
10999	return s.String()
11000}
11001
11002// SetClusterStates sets the ClusterStates field's value.
11003func (s *ListClustersInput) SetClusterStates(v []*string) *ListClustersInput {
11004	s.ClusterStates = v
11005	return s
11006}
11007
11008// SetCreatedAfter sets the CreatedAfter field's value.
11009func (s *ListClustersInput) SetCreatedAfter(v time.Time) *ListClustersInput {
11010	s.CreatedAfter = &v
11011	return s
11012}
11013
11014// SetCreatedBefore sets the CreatedBefore field's value.
11015func (s *ListClustersInput) SetCreatedBefore(v time.Time) *ListClustersInput {
11016	s.CreatedBefore = &v
11017	return s
11018}
11019
11020// SetMarker sets the Marker field's value.
11021func (s *ListClustersInput) SetMarker(v string) *ListClustersInput {
11022	s.Marker = &v
11023	return s
11024}
11025
11026// This contains a ClusterSummaryList with the cluster details; for example,
11027// the cluster IDs, names, and status.
11028type ListClustersOutput struct {
11029	_ struct{} `type:"structure"`
11030
11031	// The list of clusters for the account based on the given filters.
11032	Clusters []*ClusterSummary `type:"list"`
11033
11034	// The pagination token that indicates the next set of results to retrieve.
11035	Marker *string `type:"string"`
11036}
11037
11038// String returns the string representation
11039func (s ListClustersOutput) String() string {
11040	return awsutil.Prettify(s)
11041}
11042
11043// GoString returns the string representation
11044func (s ListClustersOutput) GoString() string {
11045	return s.String()
11046}
11047
11048// SetClusters sets the Clusters field's value.
11049func (s *ListClustersOutput) SetClusters(v []*ClusterSummary) *ListClustersOutput {
11050	s.Clusters = v
11051	return s
11052}
11053
11054// SetMarker sets the Marker field's value.
11055func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput {
11056	s.Marker = &v
11057	return s
11058}
11059
11060type ListInstanceFleetsInput struct {
11061	_ struct{} `type:"structure"`
11062
11063	// The unique identifier of the cluster.
11064	//
11065	// ClusterId is a required field
11066	ClusterId *string `type:"string" required:"true"`
11067
11068	// The pagination token that indicates the next set of results to retrieve.
11069	Marker *string `type:"string"`
11070}
11071
11072// String returns the string representation
11073func (s ListInstanceFleetsInput) String() string {
11074	return awsutil.Prettify(s)
11075}
11076
11077// GoString returns the string representation
11078func (s ListInstanceFleetsInput) GoString() string {
11079	return s.String()
11080}
11081
11082// Validate inspects the fields of the type to determine if they are valid.
11083func (s *ListInstanceFleetsInput) Validate() error {
11084	invalidParams := request.ErrInvalidParams{Context: "ListInstanceFleetsInput"}
11085	if s.ClusterId == nil {
11086		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11087	}
11088
11089	if invalidParams.Len() > 0 {
11090		return invalidParams
11091	}
11092	return nil
11093}
11094
11095// SetClusterId sets the ClusterId field's value.
11096func (s *ListInstanceFleetsInput) SetClusterId(v string) *ListInstanceFleetsInput {
11097	s.ClusterId = &v
11098	return s
11099}
11100
11101// SetMarker sets the Marker field's value.
11102func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput {
11103	s.Marker = &v
11104	return s
11105}
11106
11107type ListInstanceFleetsOutput struct {
11108	_ struct{} `type:"structure"`
11109
11110	// The list of instance fleets for the cluster and given filters.
11111	InstanceFleets []*InstanceFleet `type:"list"`
11112
11113	// The pagination token that indicates the next set of results to retrieve.
11114	Marker *string `type:"string"`
11115}
11116
11117// String returns the string representation
11118func (s ListInstanceFleetsOutput) String() string {
11119	return awsutil.Prettify(s)
11120}
11121
11122// GoString returns the string representation
11123func (s ListInstanceFleetsOutput) GoString() string {
11124	return s.String()
11125}
11126
11127// SetInstanceFleets sets the InstanceFleets field's value.
11128func (s *ListInstanceFleetsOutput) SetInstanceFleets(v []*InstanceFleet) *ListInstanceFleetsOutput {
11129	s.InstanceFleets = v
11130	return s
11131}
11132
11133// SetMarker sets the Marker field's value.
11134func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput {
11135	s.Marker = &v
11136	return s
11137}
11138
11139// This input determines which instance groups to retrieve.
11140type ListInstanceGroupsInput struct {
11141	_ struct{} `type:"structure"`
11142
11143	// The identifier of the cluster for which to list the instance groups.
11144	//
11145	// ClusterId is a required field
11146	ClusterId *string `type:"string" required:"true"`
11147
11148	// The pagination token that indicates the next set of results to retrieve.
11149	Marker *string `type:"string"`
11150}
11151
11152// String returns the string representation
11153func (s ListInstanceGroupsInput) String() string {
11154	return awsutil.Prettify(s)
11155}
11156
11157// GoString returns the string representation
11158func (s ListInstanceGroupsInput) GoString() string {
11159	return s.String()
11160}
11161
11162// Validate inspects the fields of the type to determine if they are valid.
11163func (s *ListInstanceGroupsInput) Validate() error {
11164	invalidParams := request.ErrInvalidParams{Context: "ListInstanceGroupsInput"}
11165	if s.ClusterId == nil {
11166		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11167	}
11168
11169	if invalidParams.Len() > 0 {
11170		return invalidParams
11171	}
11172	return nil
11173}
11174
11175// SetClusterId sets the ClusterId field's value.
11176func (s *ListInstanceGroupsInput) SetClusterId(v string) *ListInstanceGroupsInput {
11177	s.ClusterId = &v
11178	return s
11179}
11180
11181// SetMarker sets the Marker field's value.
11182func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput {
11183	s.Marker = &v
11184	return s
11185}
11186
11187// This input determines which instance groups to retrieve.
11188type ListInstanceGroupsOutput struct {
11189	_ struct{} `type:"structure"`
11190
11191	// The list of instance groups for the cluster and given filters.
11192	InstanceGroups []*InstanceGroup `type:"list"`
11193
11194	// The pagination token that indicates the next set of results to retrieve.
11195	Marker *string `type:"string"`
11196}
11197
11198// String returns the string representation
11199func (s ListInstanceGroupsOutput) String() string {
11200	return awsutil.Prettify(s)
11201}
11202
11203// GoString returns the string representation
11204func (s ListInstanceGroupsOutput) GoString() string {
11205	return s.String()
11206}
11207
11208// SetInstanceGroups sets the InstanceGroups field's value.
11209func (s *ListInstanceGroupsOutput) SetInstanceGroups(v []*InstanceGroup) *ListInstanceGroupsOutput {
11210	s.InstanceGroups = v
11211	return s
11212}
11213
11214// SetMarker sets the Marker field's value.
11215func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput {
11216	s.Marker = &v
11217	return s
11218}
11219
11220// This input determines which instances to list.
11221type ListInstancesInput struct {
11222	_ struct{} `type:"structure"`
11223
11224	// The identifier of the cluster for which to list the instances.
11225	//
11226	// ClusterId is a required field
11227	ClusterId *string `type:"string" required:"true"`
11228
11229	// The unique identifier of the instance fleet.
11230	InstanceFleetId *string `type:"string"`
11231
11232	// The node type of the instance fleet. For example MASTER, CORE, or TASK.
11233	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
11234
11235	// The identifier of the instance group for which to list the instances.
11236	InstanceGroupId *string `type:"string"`
11237
11238	// The type of instance group for which to list the instances.
11239	InstanceGroupTypes []*string `type:"list"`
11240
11241	// A list of instance states that will filter the instances returned with this
11242	// request.
11243	InstanceStates []*string `type:"list"`
11244
11245	// The pagination token that indicates the next set of results to retrieve.
11246	Marker *string `type:"string"`
11247}
11248
11249// String returns the string representation
11250func (s ListInstancesInput) String() string {
11251	return awsutil.Prettify(s)
11252}
11253
11254// GoString returns the string representation
11255func (s ListInstancesInput) GoString() string {
11256	return s.String()
11257}
11258
11259// Validate inspects the fields of the type to determine if they are valid.
11260func (s *ListInstancesInput) Validate() error {
11261	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
11262	if s.ClusterId == nil {
11263		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11264	}
11265
11266	if invalidParams.Len() > 0 {
11267		return invalidParams
11268	}
11269	return nil
11270}
11271
11272// SetClusterId sets the ClusterId field's value.
11273func (s *ListInstancesInput) SetClusterId(v string) *ListInstancesInput {
11274	s.ClusterId = &v
11275	return s
11276}
11277
11278// SetInstanceFleetId sets the InstanceFleetId field's value.
11279func (s *ListInstancesInput) SetInstanceFleetId(v string) *ListInstancesInput {
11280	s.InstanceFleetId = &v
11281	return s
11282}
11283
11284// SetInstanceFleetType sets the InstanceFleetType field's value.
11285func (s *ListInstancesInput) SetInstanceFleetType(v string) *ListInstancesInput {
11286	s.InstanceFleetType = &v
11287	return s
11288}
11289
11290// SetInstanceGroupId sets the InstanceGroupId field's value.
11291func (s *ListInstancesInput) SetInstanceGroupId(v string) *ListInstancesInput {
11292	s.InstanceGroupId = &v
11293	return s
11294}
11295
11296// SetInstanceGroupTypes sets the InstanceGroupTypes field's value.
11297func (s *ListInstancesInput) SetInstanceGroupTypes(v []*string) *ListInstancesInput {
11298	s.InstanceGroupTypes = v
11299	return s
11300}
11301
11302// SetInstanceStates sets the InstanceStates field's value.
11303func (s *ListInstancesInput) SetInstanceStates(v []*string) *ListInstancesInput {
11304	s.InstanceStates = v
11305	return s
11306}
11307
11308// SetMarker sets the Marker field's value.
11309func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput {
11310	s.Marker = &v
11311	return s
11312}
11313
11314// This output contains the list of instances.
11315type ListInstancesOutput struct {
11316	_ struct{} `type:"structure"`
11317
11318	// The list of instances for the cluster and given filters.
11319	Instances []*Instance `type:"list"`
11320
11321	// The pagination token that indicates the next set of results to retrieve.
11322	Marker *string `type:"string"`
11323}
11324
11325// String returns the string representation
11326func (s ListInstancesOutput) String() string {
11327	return awsutil.Prettify(s)
11328}
11329
11330// GoString returns the string representation
11331func (s ListInstancesOutput) GoString() string {
11332	return s.String()
11333}
11334
11335// SetInstances sets the Instances field's value.
11336func (s *ListInstancesOutput) SetInstances(v []*Instance) *ListInstancesOutput {
11337	s.Instances = v
11338	return s
11339}
11340
11341// SetMarker sets the Marker field's value.
11342func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput {
11343	s.Marker = &v
11344	return s
11345}
11346
11347type ListNotebookExecutionsInput struct {
11348	_ struct{} `type:"structure"`
11349
11350	// The unique ID of the editor associated with the notebook execution.
11351	EditorId *string `type:"string"`
11352
11353	// The beginning of time range filter for listing notebook executions. The default
11354	// is the timestamp of 30 days ago.
11355	From *time.Time `type:"timestamp"`
11356
11357	// The pagination token, returned by a previous ListNotebookExecutions call,
11358	// that indicates the start of the list for this ListNotebookExecutions call.
11359	Marker *string `type:"string"`
11360
11361	// The status filter for listing notebook executions.
11362	//
11363	//    * START_PENDING indicates that the cluster has received the execution
11364	//    request but execution has not begun.
11365	//
11366	//    * STARTING indicates that the execution is starting on the cluster.
11367	//
11368	//    * RUNNING indicates that the execution is being processed by the cluster.
11369	//
11370	//    * FINISHING indicates that execution processing is in the final stages.
11371	//
11372	//    * FINISHED indicates that the execution has completed without error.
11373	//
11374	//    * FAILING indicates that the execution is failing and will not finish
11375	//    successfully.
11376	//
11377	//    * FAILED indicates that the execution failed.
11378	//
11379	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
11380	//    request and the stop is pending.
11381	//
11382	//    * STOPPING indicates that the cluster is in the process of stopping the
11383	//    execution as a result of a StopNotebookExecution request.
11384	//
11385	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
11386	//    request.
11387	Status *string `type:"string" enum:"NotebookExecutionStatus"`
11388
11389	// The end of time range filter for listing notebook executions. The default
11390	// is the current timestamp.
11391	To *time.Time `type:"timestamp"`
11392}
11393
11394// String returns the string representation
11395func (s ListNotebookExecutionsInput) String() string {
11396	return awsutil.Prettify(s)
11397}
11398
11399// GoString returns the string representation
11400func (s ListNotebookExecutionsInput) GoString() string {
11401	return s.String()
11402}
11403
11404// SetEditorId sets the EditorId field's value.
11405func (s *ListNotebookExecutionsInput) SetEditorId(v string) *ListNotebookExecutionsInput {
11406	s.EditorId = &v
11407	return s
11408}
11409
11410// SetFrom sets the From field's value.
11411func (s *ListNotebookExecutionsInput) SetFrom(v time.Time) *ListNotebookExecutionsInput {
11412	s.From = &v
11413	return s
11414}
11415
11416// SetMarker sets the Marker field's value.
11417func (s *ListNotebookExecutionsInput) SetMarker(v string) *ListNotebookExecutionsInput {
11418	s.Marker = &v
11419	return s
11420}
11421
11422// SetStatus sets the Status field's value.
11423func (s *ListNotebookExecutionsInput) SetStatus(v string) *ListNotebookExecutionsInput {
11424	s.Status = &v
11425	return s
11426}
11427
11428// SetTo sets the To field's value.
11429func (s *ListNotebookExecutionsInput) SetTo(v time.Time) *ListNotebookExecutionsInput {
11430	s.To = &v
11431	return s
11432}
11433
11434type ListNotebookExecutionsOutput struct {
11435	_ struct{} `type:"structure"`
11436
11437	// A pagination token that a subsequent ListNotebookExecutions can use to determine
11438	// the next set of results to retrieve.
11439	Marker *string `type:"string"`
11440
11441	// A list of notebook executions.
11442	NotebookExecutions []*NotebookExecutionSummary `type:"list"`
11443}
11444
11445// String returns the string representation
11446func (s ListNotebookExecutionsOutput) String() string {
11447	return awsutil.Prettify(s)
11448}
11449
11450// GoString returns the string representation
11451func (s ListNotebookExecutionsOutput) GoString() string {
11452	return s.String()
11453}
11454
11455// SetMarker sets the Marker field's value.
11456func (s *ListNotebookExecutionsOutput) SetMarker(v string) *ListNotebookExecutionsOutput {
11457	s.Marker = &v
11458	return s
11459}
11460
11461// SetNotebookExecutions sets the NotebookExecutions field's value.
11462func (s *ListNotebookExecutionsOutput) SetNotebookExecutions(v []*NotebookExecutionSummary) *ListNotebookExecutionsOutput {
11463	s.NotebookExecutions = v
11464	return s
11465}
11466
11467type ListSecurityConfigurationsInput struct {
11468	_ struct{} `type:"structure"`
11469
11470	// The pagination token that indicates the set of results to retrieve.
11471	Marker *string `type:"string"`
11472}
11473
11474// String returns the string representation
11475func (s ListSecurityConfigurationsInput) String() string {
11476	return awsutil.Prettify(s)
11477}
11478
11479// GoString returns the string representation
11480func (s ListSecurityConfigurationsInput) GoString() string {
11481	return s.String()
11482}
11483
11484// SetMarker sets the Marker field's value.
11485func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfigurationsInput {
11486	s.Marker = &v
11487	return s
11488}
11489
11490type ListSecurityConfigurationsOutput struct {
11491	_ struct{} `type:"structure"`
11492
11493	// A pagination token that indicates the next set of results to retrieve. Include
11494	// the marker in the next ListSecurityConfiguration call to retrieve the next
11495	// page of results, if required.
11496	Marker *string `type:"string"`
11497
11498	// The creation date and time, and name, of each security configuration.
11499	SecurityConfigurations []*SecurityConfigurationSummary `type:"list"`
11500}
11501
11502// String returns the string representation
11503func (s ListSecurityConfigurationsOutput) String() string {
11504	return awsutil.Prettify(s)
11505}
11506
11507// GoString returns the string representation
11508func (s ListSecurityConfigurationsOutput) GoString() string {
11509	return s.String()
11510}
11511
11512// SetMarker sets the Marker field's value.
11513func (s *ListSecurityConfigurationsOutput) SetMarker(v string) *ListSecurityConfigurationsOutput {
11514	s.Marker = &v
11515	return s
11516}
11517
11518// SetSecurityConfigurations sets the SecurityConfigurations field's value.
11519func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfigurationSummary) *ListSecurityConfigurationsOutput {
11520	s.SecurityConfigurations = v
11521	return s
11522}
11523
11524// This input determines which steps to list.
11525type ListStepsInput struct {
11526	_ struct{} `type:"structure"`
11527
11528	// The identifier of the cluster for which to list the steps.
11529	//
11530	// ClusterId is a required field
11531	ClusterId *string `type:"string" required:"true"`
11532
11533	// The pagination token that indicates the next set of results to retrieve.
11534	Marker *string `type:"string"`
11535
11536	// The filter to limit the step list based on the identifier of the steps. You
11537	// can specify a maximum of ten Step IDs. The character constraint applies to
11538	// the overall length of the array.
11539	StepIds []*string `type:"list"`
11540
11541	// The filter to limit the step list based on certain states.
11542	StepStates []*string `type:"list"`
11543}
11544
11545// String returns the string representation
11546func (s ListStepsInput) String() string {
11547	return awsutil.Prettify(s)
11548}
11549
11550// GoString returns the string representation
11551func (s ListStepsInput) GoString() string {
11552	return s.String()
11553}
11554
11555// Validate inspects the fields of the type to determine if they are valid.
11556func (s *ListStepsInput) Validate() error {
11557	invalidParams := request.ErrInvalidParams{Context: "ListStepsInput"}
11558	if s.ClusterId == nil {
11559		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11560	}
11561
11562	if invalidParams.Len() > 0 {
11563		return invalidParams
11564	}
11565	return nil
11566}
11567
11568// SetClusterId sets the ClusterId field's value.
11569func (s *ListStepsInput) SetClusterId(v string) *ListStepsInput {
11570	s.ClusterId = &v
11571	return s
11572}
11573
11574// SetMarker sets the Marker field's value.
11575func (s *ListStepsInput) SetMarker(v string) *ListStepsInput {
11576	s.Marker = &v
11577	return s
11578}
11579
11580// SetStepIds sets the StepIds field's value.
11581func (s *ListStepsInput) SetStepIds(v []*string) *ListStepsInput {
11582	s.StepIds = v
11583	return s
11584}
11585
11586// SetStepStates sets the StepStates field's value.
11587func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput {
11588	s.StepStates = v
11589	return s
11590}
11591
11592// This output contains the list of steps returned in reverse order. This means
11593// that the last step is the first element in the list.
11594type ListStepsOutput struct {
11595	_ struct{} `type:"structure"`
11596
11597	// The pagination token that indicates the next set of results to retrieve.
11598	Marker *string `type:"string"`
11599
11600	// The filtered list of steps for the cluster.
11601	Steps []*StepSummary `type:"list"`
11602}
11603
11604// String returns the string representation
11605func (s ListStepsOutput) String() string {
11606	return awsutil.Prettify(s)
11607}
11608
11609// GoString returns the string representation
11610func (s ListStepsOutput) GoString() string {
11611	return s.String()
11612}
11613
11614// SetMarker sets the Marker field's value.
11615func (s *ListStepsOutput) SetMarker(v string) *ListStepsOutput {
11616	s.Marker = &v
11617	return s
11618}
11619
11620// SetSteps sets the Steps field's value.
11621func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput {
11622	s.Steps = v
11623	return s
11624}
11625
11626type ListStudioSessionMappingsInput struct {
11627	_ struct{} `type:"structure"`
11628
11629	// Specifies whether to return session mappings for users or groups. If not
11630	// specified, the results include session mapping details for both users and
11631	// groups.
11632	IdentityType *string `type:"string" enum:"IdentityType"`
11633
11634	// The pagination token that indicates the set of results to retrieve.
11635	Marker *string `type:"string"`
11636
11637	// The ID of the Amazon EMR Studio.
11638	StudioId *string `type:"string"`
11639}
11640
11641// String returns the string representation
11642func (s ListStudioSessionMappingsInput) String() string {
11643	return awsutil.Prettify(s)
11644}
11645
11646// GoString returns the string representation
11647func (s ListStudioSessionMappingsInput) GoString() string {
11648	return s.String()
11649}
11650
11651// SetIdentityType sets the IdentityType field's value.
11652func (s *ListStudioSessionMappingsInput) SetIdentityType(v string) *ListStudioSessionMappingsInput {
11653	s.IdentityType = &v
11654	return s
11655}
11656
11657// SetMarker sets the Marker field's value.
11658func (s *ListStudioSessionMappingsInput) SetMarker(v string) *ListStudioSessionMappingsInput {
11659	s.Marker = &v
11660	return s
11661}
11662
11663// SetStudioId sets the StudioId field's value.
11664func (s *ListStudioSessionMappingsInput) SetStudioId(v string) *ListStudioSessionMappingsInput {
11665	s.StudioId = &v
11666	return s
11667}
11668
11669type ListStudioSessionMappingsOutput struct {
11670	_ struct{} `type:"structure"`
11671
11672	// The pagination token that indicates the next set of results to retrieve.
11673	Marker *string `type:"string"`
11674
11675	// A list of session mapping summary objects. Each object includes session mapping
11676	// details such as creation time, identity type (user or group), and Amazon
11677	// EMR Studio ID.
11678	SessionMappings []*SessionMappingSummary `type:"list"`
11679}
11680
11681// String returns the string representation
11682func (s ListStudioSessionMappingsOutput) String() string {
11683	return awsutil.Prettify(s)
11684}
11685
11686// GoString returns the string representation
11687func (s ListStudioSessionMappingsOutput) GoString() string {
11688	return s.String()
11689}
11690
11691// SetMarker sets the Marker field's value.
11692func (s *ListStudioSessionMappingsOutput) SetMarker(v string) *ListStudioSessionMappingsOutput {
11693	s.Marker = &v
11694	return s
11695}
11696
11697// SetSessionMappings sets the SessionMappings field's value.
11698func (s *ListStudioSessionMappingsOutput) SetSessionMappings(v []*SessionMappingSummary) *ListStudioSessionMappingsOutput {
11699	s.SessionMappings = v
11700	return s
11701}
11702
11703type ListStudiosInput struct {
11704	_ struct{} `type:"structure"`
11705
11706	// The pagination token that indicates the set of results to retrieve.
11707	Marker *string `type:"string"`
11708}
11709
11710// String returns the string representation
11711func (s ListStudiosInput) String() string {
11712	return awsutil.Prettify(s)
11713}
11714
11715// GoString returns the string representation
11716func (s ListStudiosInput) GoString() string {
11717	return s.String()
11718}
11719
11720// SetMarker sets the Marker field's value.
11721func (s *ListStudiosInput) SetMarker(v string) *ListStudiosInput {
11722	s.Marker = &v
11723	return s
11724}
11725
11726type ListStudiosOutput struct {
11727	_ struct{} `type:"structure"`
11728
11729	// The pagination token that indicates the next set of results to retrieve.
11730	Marker *string `type:"string"`
11731
11732	// The list of Studio summary objects.
11733	Studios []*StudioSummary `type:"list"`
11734}
11735
11736// String returns the string representation
11737func (s ListStudiosOutput) String() string {
11738	return awsutil.Prettify(s)
11739}
11740
11741// GoString returns the string representation
11742func (s ListStudiosOutput) GoString() string {
11743	return s.String()
11744}
11745
11746// SetMarker sets the Marker field's value.
11747func (s *ListStudiosOutput) SetMarker(v string) *ListStudiosOutput {
11748	s.Marker = &v
11749	return s
11750}
11751
11752// SetStudios sets the Studios field's value.
11753func (s *ListStudiosOutput) SetStudios(v []*StudioSummary) *ListStudiosOutput {
11754	s.Studios = v
11755	return s
11756}
11757
11758// Managed scaling policy for an Amazon EMR cluster. The policy specifies the
11759// limits for resources that can be added or terminated from a cluster. The
11760// policy only applies to the core and task nodes. The master node cannot be
11761// scaled after initial configuration.
11762type ManagedScalingPolicy struct {
11763	_ struct{} `type:"structure"`
11764
11765	// The EC2 unit limits for a managed scaling policy. The managed scaling activity
11766	// of a cluster is not allowed to go above or below these limits. The limit
11767	// only applies to the core and task nodes. The master node cannot be scaled
11768	// after initial configuration.
11769	ComputeLimits *ComputeLimits `type:"structure"`
11770}
11771
11772// String returns the string representation
11773func (s ManagedScalingPolicy) String() string {
11774	return awsutil.Prettify(s)
11775}
11776
11777// GoString returns the string representation
11778func (s ManagedScalingPolicy) GoString() string {
11779	return s.String()
11780}
11781
11782// Validate inspects the fields of the type to determine if they are valid.
11783func (s *ManagedScalingPolicy) Validate() error {
11784	invalidParams := request.ErrInvalidParams{Context: "ManagedScalingPolicy"}
11785	if s.ComputeLimits != nil {
11786		if err := s.ComputeLimits.Validate(); err != nil {
11787			invalidParams.AddNested("ComputeLimits", err.(request.ErrInvalidParams))
11788		}
11789	}
11790
11791	if invalidParams.Len() > 0 {
11792		return invalidParams
11793	}
11794	return nil
11795}
11796
11797// SetComputeLimits sets the ComputeLimits field's value.
11798func (s *ManagedScalingPolicy) SetComputeLimits(v *ComputeLimits) *ManagedScalingPolicy {
11799	s.ComputeLimits = v
11800	return s
11801}
11802
11803// A CloudWatch dimension, which is specified using a Key (known as a Name in
11804// CloudWatch), Value pair. By default, Amazon EMR uses one dimension whose
11805// Key is JobFlowID and Value is a variable representing the cluster ID, which
11806// is ${emr.clusterId}. This enables the rule to bootstrap when the cluster
11807// ID becomes available.
11808type MetricDimension struct {
11809	_ struct{} `type:"structure"`
11810
11811	// The dimension name.
11812	Key *string `type:"string"`
11813
11814	// The dimension value.
11815	Value *string `type:"string"`
11816}
11817
11818// String returns the string representation
11819func (s MetricDimension) String() string {
11820	return awsutil.Prettify(s)
11821}
11822
11823// GoString returns the string representation
11824func (s MetricDimension) GoString() string {
11825	return s.String()
11826}
11827
11828// SetKey sets the Key field's value.
11829func (s *MetricDimension) SetKey(v string) *MetricDimension {
11830	s.Key = &v
11831	return s
11832}
11833
11834// SetValue sets the Value field's value.
11835func (s *MetricDimension) SetValue(v string) *MetricDimension {
11836	s.Value = &v
11837	return s
11838}
11839
11840type ModifyClusterInput struct {
11841	_ struct{} `type:"structure"`
11842
11843	// The unique identifier of the cluster.
11844	//
11845	// ClusterId is a required field
11846	ClusterId *string `type:"string" required:"true"`
11847
11848	// The number of steps that can be executed concurrently. You can specify a
11849	// minimum of 1 step and a maximum of 256 steps.
11850	StepConcurrencyLevel *int64 `type:"integer"`
11851}
11852
11853// String returns the string representation
11854func (s ModifyClusterInput) String() string {
11855	return awsutil.Prettify(s)
11856}
11857
11858// GoString returns the string representation
11859func (s ModifyClusterInput) GoString() string {
11860	return s.String()
11861}
11862
11863// Validate inspects the fields of the type to determine if they are valid.
11864func (s *ModifyClusterInput) Validate() error {
11865	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
11866	if s.ClusterId == nil {
11867		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11868	}
11869
11870	if invalidParams.Len() > 0 {
11871		return invalidParams
11872	}
11873	return nil
11874}
11875
11876// SetClusterId sets the ClusterId field's value.
11877func (s *ModifyClusterInput) SetClusterId(v string) *ModifyClusterInput {
11878	s.ClusterId = &v
11879	return s
11880}
11881
11882// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
11883func (s *ModifyClusterInput) SetStepConcurrencyLevel(v int64) *ModifyClusterInput {
11884	s.StepConcurrencyLevel = &v
11885	return s
11886}
11887
11888type ModifyClusterOutput struct {
11889	_ struct{} `type:"structure"`
11890
11891	// The number of steps that can be executed concurrently.
11892	StepConcurrencyLevel *int64 `type:"integer"`
11893}
11894
11895// String returns the string representation
11896func (s ModifyClusterOutput) String() string {
11897	return awsutil.Prettify(s)
11898}
11899
11900// GoString returns the string representation
11901func (s ModifyClusterOutput) GoString() string {
11902	return s.String()
11903}
11904
11905// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
11906func (s *ModifyClusterOutput) SetStepConcurrencyLevel(v int64) *ModifyClusterOutput {
11907	s.StepConcurrencyLevel = &v
11908	return s
11909}
11910
11911type ModifyInstanceFleetInput struct {
11912	_ struct{} `type:"structure"`
11913
11914	// The unique identifier of the cluster.
11915	//
11916	// ClusterId is a required field
11917	ClusterId *string `type:"string" required:"true"`
11918
11919	// The unique identifier of the instance fleet.
11920	//
11921	// InstanceFleet is a required field
11922	InstanceFleet *InstanceFleetModifyConfig `type:"structure" required:"true"`
11923}
11924
11925// String returns the string representation
11926func (s ModifyInstanceFleetInput) String() string {
11927	return awsutil.Prettify(s)
11928}
11929
11930// GoString returns the string representation
11931func (s ModifyInstanceFleetInput) GoString() string {
11932	return s.String()
11933}
11934
11935// Validate inspects the fields of the type to determine if they are valid.
11936func (s *ModifyInstanceFleetInput) Validate() error {
11937	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceFleetInput"}
11938	if s.ClusterId == nil {
11939		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11940	}
11941	if s.InstanceFleet == nil {
11942		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
11943	}
11944	if s.InstanceFleet != nil {
11945		if err := s.InstanceFleet.Validate(); err != nil {
11946			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
11947		}
11948	}
11949
11950	if invalidParams.Len() > 0 {
11951		return invalidParams
11952	}
11953	return nil
11954}
11955
11956// SetClusterId sets the ClusterId field's value.
11957func (s *ModifyInstanceFleetInput) SetClusterId(v string) *ModifyInstanceFleetInput {
11958	s.ClusterId = &v
11959	return s
11960}
11961
11962// SetInstanceFleet sets the InstanceFleet field's value.
11963func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig) *ModifyInstanceFleetInput {
11964	s.InstanceFleet = v
11965	return s
11966}
11967
11968type ModifyInstanceFleetOutput struct {
11969	_ struct{} `type:"structure"`
11970}
11971
11972// String returns the string representation
11973func (s ModifyInstanceFleetOutput) String() string {
11974	return awsutil.Prettify(s)
11975}
11976
11977// GoString returns the string representation
11978func (s ModifyInstanceFleetOutput) GoString() string {
11979	return s.String()
11980}
11981
11982// Change the size of some instance groups.
11983type ModifyInstanceGroupsInput struct {
11984	_ struct{} `type:"structure"`
11985
11986	// The ID of the cluster to which the instance group belongs.
11987	ClusterId *string `type:"string"`
11988
11989	// Instance groups to change.
11990	InstanceGroups []*InstanceGroupModifyConfig `type:"list"`
11991}
11992
11993// String returns the string representation
11994func (s ModifyInstanceGroupsInput) String() string {
11995	return awsutil.Prettify(s)
11996}
11997
11998// GoString returns the string representation
11999func (s ModifyInstanceGroupsInput) GoString() string {
12000	return s.String()
12001}
12002
12003// Validate inspects the fields of the type to determine if they are valid.
12004func (s *ModifyInstanceGroupsInput) Validate() error {
12005	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceGroupsInput"}
12006	if s.InstanceGroups != nil {
12007		for i, v := range s.InstanceGroups {
12008			if v == nil {
12009				continue
12010			}
12011			if err := v.Validate(); err != nil {
12012				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
12013			}
12014		}
12015	}
12016
12017	if invalidParams.Len() > 0 {
12018		return invalidParams
12019	}
12020	return nil
12021}
12022
12023// SetClusterId sets the ClusterId field's value.
12024func (s *ModifyInstanceGroupsInput) SetClusterId(v string) *ModifyInstanceGroupsInput {
12025	s.ClusterId = &v
12026	return s
12027}
12028
12029// SetInstanceGroups sets the InstanceGroups field's value.
12030func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyConfig) *ModifyInstanceGroupsInput {
12031	s.InstanceGroups = v
12032	return s
12033}
12034
12035type ModifyInstanceGroupsOutput struct {
12036	_ struct{} `type:"structure"`
12037}
12038
12039// String returns the string representation
12040func (s ModifyInstanceGroupsOutput) String() string {
12041	return awsutil.Prettify(s)
12042}
12043
12044// GoString returns the string representation
12045func (s ModifyInstanceGroupsOutput) GoString() string {
12046	return s.String()
12047}
12048
12049// A notebook execution. An execution is a specific instance that an EMR Notebook
12050// is run using the StartNotebookExecution action.
12051type NotebookExecution struct {
12052	_ struct{} `type:"structure"`
12053
12054	// The Amazon Resource Name (ARN) of the notebook execution.
12055	Arn *string `type:"string"`
12056
12057	// The unique identifier of the EMR Notebook that is used for the notebook execution.
12058	EditorId *string `type:"string"`
12059
12060	// The timestamp when notebook execution ended.
12061	EndTime *time.Time `type:"timestamp"`
12062
12063	// The execution engine, such as an EMR cluster, used to run the EMR notebook
12064	// and perform the notebook execution.
12065	ExecutionEngine *ExecutionEngineConfig `type:"structure"`
12066
12067	// The reason for the latest status change of the notebook execution.
12068	LastStateChangeReason *string `type:"string"`
12069
12070	// The unique identifier of a notebook execution.
12071	NotebookExecutionId *string `type:"string"`
12072
12073	// A name for the notebook execution.
12074	NotebookExecutionName *string `type:"string"`
12075
12076	// The unique identifier of the EC2 security group associated with the EMR Notebook
12077	// instance. For more information see Specifying EC2 Security Groups for EMR
12078	// Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
12079	// in the EMR Management Guide.
12080	NotebookInstanceSecurityGroupId *string `type:"string"`
12081
12082	// Input parameters in JSON format passed to the EMR Notebook at runtime for
12083	// execution.
12084	NotebookParams *string `type:"string"`
12085
12086	// The location of the notebook execution's output file in Amazon S3.
12087	OutputNotebookURI *string `type:"string"`
12088
12089	// The timestamp when notebook execution started.
12090	StartTime *time.Time `type:"timestamp"`
12091
12092	// The status of the notebook execution.
12093	//
12094	//    * START_PENDING indicates that the cluster has received the execution
12095	//    request but execution has not begun.
12096	//
12097	//    * STARTING indicates that the execution is starting on the cluster.
12098	//
12099	//    * RUNNING indicates that the execution is being processed by the cluster.
12100	//
12101	//    * FINISHING indicates that execution processing is in the final stages.
12102	//
12103	//    * FINISHED indicates that the execution has completed without error.
12104	//
12105	//    * FAILING indicates that the execution is failing and will not finish
12106	//    successfully.
12107	//
12108	//    * FAILED indicates that the execution failed.
12109	//
12110	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
12111	//    request and the stop is pending.
12112	//
12113	//    * STOPPING indicates that the cluster is in the process of stopping the
12114	//    execution as a result of a StopNotebookExecution request.
12115	//
12116	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
12117	//    request.
12118	Status *string `type:"string" enum:"NotebookExecutionStatus"`
12119
12120	// A list of tags associated with a notebook execution. Tags are user-defined
12121	// key-value pairs that consist of a required key string with a maximum of 128
12122	// characters and an optional value string with a maximum of 256 characters.
12123	Tags []*Tag `type:"list"`
12124}
12125
12126// String returns the string representation
12127func (s NotebookExecution) String() string {
12128	return awsutil.Prettify(s)
12129}
12130
12131// GoString returns the string representation
12132func (s NotebookExecution) GoString() string {
12133	return s.String()
12134}
12135
12136// SetArn sets the Arn field's value.
12137func (s *NotebookExecution) SetArn(v string) *NotebookExecution {
12138	s.Arn = &v
12139	return s
12140}
12141
12142// SetEditorId sets the EditorId field's value.
12143func (s *NotebookExecution) SetEditorId(v string) *NotebookExecution {
12144	s.EditorId = &v
12145	return s
12146}
12147
12148// SetEndTime sets the EndTime field's value.
12149func (s *NotebookExecution) SetEndTime(v time.Time) *NotebookExecution {
12150	s.EndTime = &v
12151	return s
12152}
12153
12154// SetExecutionEngine sets the ExecutionEngine field's value.
12155func (s *NotebookExecution) SetExecutionEngine(v *ExecutionEngineConfig) *NotebookExecution {
12156	s.ExecutionEngine = v
12157	return s
12158}
12159
12160// SetLastStateChangeReason sets the LastStateChangeReason field's value.
12161func (s *NotebookExecution) SetLastStateChangeReason(v string) *NotebookExecution {
12162	s.LastStateChangeReason = &v
12163	return s
12164}
12165
12166// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12167func (s *NotebookExecution) SetNotebookExecutionId(v string) *NotebookExecution {
12168	s.NotebookExecutionId = &v
12169	return s
12170}
12171
12172// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12173func (s *NotebookExecution) SetNotebookExecutionName(v string) *NotebookExecution {
12174	s.NotebookExecutionName = &v
12175	return s
12176}
12177
12178// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
12179func (s *NotebookExecution) SetNotebookInstanceSecurityGroupId(v string) *NotebookExecution {
12180	s.NotebookInstanceSecurityGroupId = &v
12181	return s
12182}
12183
12184// SetNotebookParams sets the NotebookParams field's value.
12185func (s *NotebookExecution) SetNotebookParams(v string) *NotebookExecution {
12186	s.NotebookParams = &v
12187	return s
12188}
12189
12190// SetOutputNotebookURI sets the OutputNotebookURI field's value.
12191func (s *NotebookExecution) SetOutputNotebookURI(v string) *NotebookExecution {
12192	s.OutputNotebookURI = &v
12193	return s
12194}
12195
12196// SetStartTime sets the StartTime field's value.
12197func (s *NotebookExecution) SetStartTime(v time.Time) *NotebookExecution {
12198	s.StartTime = &v
12199	return s
12200}
12201
12202// SetStatus sets the Status field's value.
12203func (s *NotebookExecution) SetStatus(v string) *NotebookExecution {
12204	s.Status = &v
12205	return s
12206}
12207
12208// SetTags sets the Tags field's value.
12209func (s *NotebookExecution) SetTags(v []*Tag) *NotebookExecution {
12210	s.Tags = v
12211	return s
12212}
12213
12214type NotebookExecutionSummary struct {
12215	_ struct{} `type:"structure"`
12216
12217	// The unique identifier of the editor associated with the notebook execution.
12218	EditorId *string `type:"string"`
12219
12220	// The timestamp when notebook execution started.
12221	EndTime *time.Time `type:"timestamp"`
12222
12223	// The unique identifier of the notebook execution.
12224	NotebookExecutionId *string `type:"string"`
12225
12226	// The name of the notebook execution.
12227	NotebookExecutionName *string `type:"string"`
12228
12229	// The timestamp when notebook execution started.
12230	StartTime *time.Time `type:"timestamp"`
12231
12232	// The status of the notebook execution.
12233	//
12234	//    * START_PENDING indicates that the cluster has received the execution
12235	//    request but execution has not begun.
12236	//
12237	//    * STARTING indicates that the execution is starting on the cluster.
12238	//
12239	//    * RUNNING indicates that the execution is being processed by the cluster.
12240	//
12241	//    * FINISHING indicates that execution processing is in the final stages.
12242	//
12243	//    * FINISHED indicates that the execution has completed without error.
12244	//
12245	//    * FAILING indicates that the execution is failing and will not finish
12246	//    successfully.
12247	//
12248	//    * FAILED indicates that the execution failed.
12249	//
12250	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
12251	//    request and the stop is pending.
12252	//
12253	//    * STOPPING indicates that the cluster is in the process of stopping the
12254	//    execution as a result of a StopNotebookExecution request.
12255	//
12256	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
12257	//    request.
12258	Status *string `type:"string" enum:"NotebookExecutionStatus"`
12259}
12260
12261// String returns the string representation
12262func (s NotebookExecutionSummary) String() string {
12263	return awsutil.Prettify(s)
12264}
12265
12266// GoString returns the string representation
12267func (s NotebookExecutionSummary) GoString() string {
12268	return s.String()
12269}
12270
12271// SetEditorId sets the EditorId field's value.
12272func (s *NotebookExecutionSummary) SetEditorId(v string) *NotebookExecutionSummary {
12273	s.EditorId = &v
12274	return s
12275}
12276
12277// SetEndTime sets the EndTime field's value.
12278func (s *NotebookExecutionSummary) SetEndTime(v time.Time) *NotebookExecutionSummary {
12279	s.EndTime = &v
12280	return s
12281}
12282
12283// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12284func (s *NotebookExecutionSummary) SetNotebookExecutionId(v string) *NotebookExecutionSummary {
12285	s.NotebookExecutionId = &v
12286	return s
12287}
12288
12289// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12290func (s *NotebookExecutionSummary) SetNotebookExecutionName(v string) *NotebookExecutionSummary {
12291	s.NotebookExecutionName = &v
12292	return s
12293}
12294
12295// SetStartTime sets the StartTime field's value.
12296func (s *NotebookExecutionSummary) SetStartTime(v time.Time) *NotebookExecutionSummary {
12297	s.StartTime = &v
12298	return s
12299}
12300
12301// SetStatus sets the Status field's value.
12302func (s *NotebookExecutionSummary) SetStatus(v string) *NotebookExecutionSummary {
12303	s.Status = &v
12304	return s
12305}
12306
12307// Describes the strategy for using unused Capacity Reservations for fulfilling
12308// On-Demand capacity.
12309type OnDemandCapacityReservationOptions struct {
12310	_ struct{} `type:"structure"`
12311
12312	// Indicates the instance's Capacity Reservation preferences. Possible preferences
12313	// include:
12314	//
12315	//    * open - The instance can run in any open Capacity Reservation that has
12316	//    matching attributes (instance type, platform, Availability Zone).
12317	//
12318	//    * none - The instance avoids running in a Capacity Reservation even if
12319	//    one is available. The instance runs as an On-Demand Instance.
12320	CapacityReservationPreference *string `type:"string" enum:"OnDemandCapacityReservationPreference"`
12321
12322	// The ARN of the Capacity Reservation resource group in which to run the instance.
12323	CapacityReservationResourceGroupArn *string `type:"string"`
12324
12325	// Indicates whether to use unused Capacity Reservations for fulfilling On-Demand
12326	// capacity.
12327	//
12328	// If you specify use-capacity-reservations-first, the fleet uses unused Capacity
12329	// Reservations to fulfill On-Demand capacity up to the target On-Demand capacity.
12330	// If multiple instance pools have unused Capacity Reservations, the On-Demand
12331	// allocation strategy (lowest-price) is applied. If the number of unused Capacity
12332	// Reservations is less than the On-Demand target capacity, the remaining On-Demand
12333	// target capacity is launched according to the On-Demand allocation strategy
12334	// (lowest-price).
12335	//
12336	// If you do not specify a value, the fleet fulfils the On-Demand capacity according
12337	// to the chosen On-Demand allocation strategy.
12338	UsageStrategy *string `type:"string" enum:"OnDemandCapacityReservationUsageStrategy"`
12339}
12340
12341// String returns the string representation
12342func (s OnDemandCapacityReservationOptions) String() string {
12343	return awsutil.Prettify(s)
12344}
12345
12346// GoString returns the string representation
12347func (s OnDemandCapacityReservationOptions) GoString() string {
12348	return s.String()
12349}
12350
12351// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
12352func (s *OnDemandCapacityReservationOptions) SetCapacityReservationPreference(v string) *OnDemandCapacityReservationOptions {
12353	s.CapacityReservationPreference = &v
12354	return s
12355}
12356
12357// SetCapacityReservationResourceGroupArn sets the CapacityReservationResourceGroupArn field's value.
12358func (s *OnDemandCapacityReservationOptions) SetCapacityReservationResourceGroupArn(v string) *OnDemandCapacityReservationOptions {
12359	s.CapacityReservationResourceGroupArn = &v
12360	return s
12361}
12362
12363// SetUsageStrategy sets the UsageStrategy field's value.
12364func (s *OnDemandCapacityReservationOptions) SetUsageStrategy(v string) *OnDemandCapacityReservationOptions {
12365	s.UsageStrategy = &v
12366	return s
12367}
12368
12369// The launch specification for On-Demand Instances in the instance fleet, which
12370// determines the allocation strategy.
12371//
12372// The instance fleet configuration is available only in Amazon EMR versions
12373// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
12374// strategy is available in Amazon EMR version 5.12.1 and later.
12375type OnDemandProvisioningSpecification struct {
12376	_ struct{} `type:"structure"`
12377
12378	// Specifies the strategy to use in launching On-Demand instance fleets. Currently,
12379	// the only option is lowest-price (the default), which launches the lowest
12380	// price first.
12381	//
12382	// AllocationStrategy is a required field
12383	AllocationStrategy *string `type:"string" required:"true" enum:"OnDemandProvisioningAllocationStrategy"`
12384
12385	// The launch specification for On-Demand instances in the instance fleet, which
12386	// determines the allocation strategy.
12387	CapacityReservationOptions *OnDemandCapacityReservationOptions `type:"structure"`
12388}
12389
12390// String returns the string representation
12391func (s OnDemandProvisioningSpecification) String() string {
12392	return awsutil.Prettify(s)
12393}
12394
12395// GoString returns the string representation
12396func (s OnDemandProvisioningSpecification) GoString() string {
12397	return s.String()
12398}
12399
12400// Validate inspects the fields of the type to determine if they are valid.
12401func (s *OnDemandProvisioningSpecification) Validate() error {
12402	invalidParams := request.ErrInvalidParams{Context: "OnDemandProvisioningSpecification"}
12403	if s.AllocationStrategy == nil {
12404		invalidParams.Add(request.NewErrParamRequired("AllocationStrategy"))
12405	}
12406
12407	if invalidParams.Len() > 0 {
12408		return invalidParams
12409	}
12410	return nil
12411}
12412
12413// SetAllocationStrategy sets the AllocationStrategy field's value.
12414func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnDemandProvisioningSpecification {
12415	s.AllocationStrategy = &v
12416	return s
12417}
12418
12419// SetCapacityReservationOptions sets the CapacityReservationOptions field's value.
12420func (s *OnDemandProvisioningSpecification) SetCapacityReservationOptions(v *OnDemandCapacityReservationOptions) *OnDemandProvisioningSpecification {
12421	s.CapacityReservationOptions = v
12422	return s
12423}
12424
12425// Placement group configuration for an Amazon EMR cluster. The configuration
12426// specifies the placement strategy that can be applied to instance roles during
12427// cluster creation.
12428//
12429// To use this configuration, consider attaching managed policy AmazonElasticMapReducePlacementGroupPolicy
12430// to the EMR role.
12431type PlacementGroupConfig struct {
12432	_ struct{} `type:"structure"`
12433
12434	// Role of the instance in the cluster.
12435	//
12436	// Starting with Amazon EMR version 5.23.0, the only supported instance role
12437	// is MASTER.
12438	//
12439	// InstanceRole is a required field
12440	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
12441
12442	// EC2 Placement Group strategy associated with instance role.
12443	//
12444	// Starting with Amazon EMR version 5.23.0, the only supported placement strategy
12445	// is SPREAD for the MASTER instance role.
12446	PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"`
12447}
12448
12449// String returns the string representation
12450func (s PlacementGroupConfig) String() string {
12451	return awsutil.Prettify(s)
12452}
12453
12454// GoString returns the string representation
12455func (s PlacementGroupConfig) GoString() string {
12456	return s.String()
12457}
12458
12459// Validate inspects the fields of the type to determine if they are valid.
12460func (s *PlacementGroupConfig) Validate() error {
12461	invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"}
12462	if s.InstanceRole == nil {
12463		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
12464	}
12465
12466	if invalidParams.Len() > 0 {
12467		return invalidParams
12468	}
12469	return nil
12470}
12471
12472// SetInstanceRole sets the InstanceRole field's value.
12473func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig {
12474	s.InstanceRole = &v
12475	return s
12476}
12477
12478// SetPlacementStrategy sets the PlacementStrategy field's value.
12479func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig {
12480	s.PlacementStrategy = &v
12481	return s
12482}
12483
12484// The Amazon EC2 Availability Zone configuration of the cluster (job flow).
12485type PlacementType struct {
12486	_ struct{} `type:"structure"`
12487
12488	// The Amazon EC2 Availability Zone for the cluster. AvailabilityZone is used
12489	// for uniform instance groups, while AvailabilityZones (plural) is used for
12490	// instance fleets.
12491	AvailabilityZone *string `type:"string"`
12492
12493	// When multiple Availability Zones are specified, Amazon EMR evaluates them
12494	// and launches instances in the optimal Availability Zone. AvailabilityZones
12495	// is used for instance fleets, while AvailabilityZone (singular) is used for
12496	// uniform instance groups.
12497	//
12498	// The instance fleet configuration is available only in Amazon EMR versions
12499	// 4.8.0 and later, excluding 5.0.x versions.
12500	AvailabilityZones []*string `type:"list"`
12501}
12502
12503// String returns the string representation
12504func (s PlacementType) String() string {
12505	return awsutil.Prettify(s)
12506}
12507
12508// GoString returns the string representation
12509func (s PlacementType) GoString() string {
12510	return s.String()
12511}
12512
12513// SetAvailabilityZone sets the AvailabilityZone field's value.
12514func (s *PlacementType) SetAvailabilityZone(v string) *PlacementType {
12515	s.AvailabilityZone = &v
12516	return s
12517}
12518
12519// SetAvailabilityZones sets the AvailabilityZones field's value.
12520func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType {
12521	s.AvailabilityZones = v
12522	return s
12523}
12524
12525// A list of port ranges that are permitted to allow inbound traffic from all
12526// public IP addresses. To specify a single port, use the same value for MinRange
12527// and MaxRange.
12528type PortRange struct {
12529	_ struct{} `type:"structure"`
12530
12531	// The smallest port number in a specified range of port numbers.
12532	MaxRange *int64 `type:"integer"`
12533
12534	// The smallest port number in a specified range of port numbers.
12535	//
12536	// MinRange is a required field
12537	MinRange *int64 `type:"integer" required:"true"`
12538}
12539
12540// String returns the string representation
12541func (s PortRange) String() string {
12542	return awsutil.Prettify(s)
12543}
12544
12545// GoString returns the string representation
12546func (s PortRange) GoString() string {
12547	return s.String()
12548}
12549
12550// Validate inspects the fields of the type to determine if they are valid.
12551func (s *PortRange) Validate() error {
12552	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
12553	if s.MaxRange != nil && *s.MaxRange < -1 {
12554		invalidParams.Add(request.NewErrParamMinValue("MaxRange", -1))
12555	}
12556	if s.MinRange == nil {
12557		invalidParams.Add(request.NewErrParamRequired("MinRange"))
12558	}
12559	if s.MinRange != nil && *s.MinRange < -1 {
12560		invalidParams.Add(request.NewErrParamMinValue("MinRange", -1))
12561	}
12562
12563	if invalidParams.Len() > 0 {
12564		return invalidParams
12565	}
12566	return nil
12567}
12568
12569// SetMaxRange sets the MaxRange field's value.
12570func (s *PortRange) SetMaxRange(v int64) *PortRange {
12571	s.MaxRange = &v
12572	return s
12573}
12574
12575// SetMinRange sets the MinRange field's value.
12576func (s *PortRange) SetMinRange(v int64) *PortRange {
12577	s.MinRange = &v
12578	return s
12579}
12580
12581type PutAutoScalingPolicyInput struct {
12582	_ struct{} `type:"structure"`
12583
12584	// Specifies the definition of the automatic scaling policy.
12585	//
12586	// AutoScalingPolicy is a required field
12587	AutoScalingPolicy *AutoScalingPolicy `type:"structure" required:"true"`
12588
12589	// Specifies the ID of a cluster. The instance group to which the automatic
12590	// scaling policy is applied is within this cluster.
12591	//
12592	// ClusterId is a required field
12593	ClusterId *string `type:"string" required:"true"`
12594
12595	// Specifies the ID of the instance group to which the automatic scaling policy
12596	// is applied.
12597	//
12598	// InstanceGroupId is a required field
12599	InstanceGroupId *string `type:"string" required:"true"`
12600}
12601
12602// String returns the string representation
12603func (s PutAutoScalingPolicyInput) String() string {
12604	return awsutil.Prettify(s)
12605}
12606
12607// GoString returns the string representation
12608func (s PutAutoScalingPolicyInput) GoString() string {
12609	return s.String()
12610}
12611
12612// Validate inspects the fields of the type to determine if they are valid.
12613func (s *PutAutoScalingPolicyInput) Validate() error {
12614	invalidParams := request.ErrInvalidParams{Context: "PutAutoScalingPolicyInput"}
12615	if s.AutoScalingPolicy == nil {
12616		invalidParams.Add(request.NewErrParamRequired("AutoScalingPolicy"))
12617	}
12618	if s.ClusterId == nil {
12619		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12620	}
12621	if s.InstanceGroupId == nil {
12622		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
12623	}
12624	if s.AutoScalingPolicy != nil {
12625		if err := s.AutoScalingPolicy.Validate(); err != nil {
12626			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
12627		}
12628	}
12629
12630	if invalidParams.Len() > 0 {
12631		return invalidParams
12632	}
12633	return nil
12634}
12635
12636// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
12637func (s *PutAutoScalingPolicyInput) SetAutoScalingPolicy(v *AutoScalingPolicy) *PutAutoScalingPolicyInput {
12638	s.AutoScalingPolicy = v
12639	return s
12640}
12641
12642// SetClusterId sets the ClusterId field's value.
12643func (s *PutAutoScalingPolicyInput) SetClusterId(v string) *PutAutoScalingPolicyInput {
12644	s.ClusterId = &v
12645	return s
12646}
12647
12648// SetInstanceGroupId sets the InstanceGroupId field's value.
12649func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScalingPolicyInput {
12650	s.InstanceGroupId = &v
12651	return s
12652}
12653
12654type PutAutoScalingPolicyOutput struct {
12655	_ struct{} `type:"structure"`
12656
12657	// The automatic scaling policy definition.
12658	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
12659
12660	// The Amazon Resource Name (ARN) of the cluster.
12661	ClusterArn *string `min:"20" type:"string"`
12662
12663	// Specifies the ID of a cluster. The instance group to which the automatic
12664	// scaling policy is applied is within this cluster.
12665	ClusterId *string `type:"string"`
12666
12667	// Specifies the ID of the instance group to which the scaling policy is applied.
12668	InstanceGroupId *string `type:"string"`
12669}
12670
12671// String returns the string representation
12672func (s PutAutoScalingPolicyOutput) String() string {
12673	return awsutil.Prettify(s)
12674}
12675
12676// GoString returns the string representation
12677func (s PutAutoScalingPolicyOutput) GoString() string {
12678	return s.String()
12679}
12680
12681// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
12682func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *PutAutoScalingPolicyOutput {
12683	s.AutoScalingPolicy = v
12684	return s
12685}
12686
12687// SetClusterArn sets the ClusterArn field's value.
12688func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput {
12689	s.ClusterArn = &v
12690	return s
12691}
12692
12693// SetClusterId sets the ClusterId field's value.
12694func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput {
12695	s.ClusterId = &v
12696	return s
12697}
12698
12699// SetInstanceGroupId sets the InstanceGroupId field's value.
12700func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalingPolicyOutput {
12701	s.InstanceGroupId = &v
12702	return s
12703}
12704
12705type PutBlockPublicAccessConfigurationInput struct {
12706	_ struct{} `type:"structure"`
12707
12708	// A configuration for Amazon EMR block public access. The configuration applies
12709	// to all clusters created in your account for the current Region. The configuration
12710	// specifies whether block public access is enabled. If block public access
12711	// is enabled, security groups associated with the cluster cannot have rules
12712	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
12713	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
12714	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
12715	// and public access is allowed on this port. You can change this by updating
12716	// BlockPublicSecurityGroupRules to remove the exception.
12717	//
12718	// For accounts that created clusters in a Region before November 25, 2019,
12719	// block public access is disabled by default in that Region. To use this feature,
12720	// you must manually enable and configure it. For accounts that did not create
12721	// an EMR cluster in a Region before this date, block public access is enabled
12722	// by default in that Region.
12723	//
12724	// BlockPublicAccessConfiguration is a required field
12725	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
12726}
12727
12728// String returns the string representation
12729func (s PutBlockPublicAccessConfigurationInput) String() string {
12730	return awsutil.Prettify(s)
12731}
12732
12733// GoString returns the string representation
12734func (s PutBlockPublicAccessConfigurationInput) GoString() string {
12735	return s.String()
12736}
12737
12738// Validate inspects the fields of the type to determine if they are valid.
12739func (s *PutBlockPublicAccessConfigurationInput) Validate() error {
12740	invalidParams := request.ErrInvalidParams{Context: "PutBlockPublicAccessConfigurationInput"}
12741	if s.BlockPublicAccessConfiguration == nil {
12742		invalidParams.Add(request.NewErrParamRequired("BlockPublicAccessConfiguration"))
12743	}
12744	if s.BlockPublicAccessConfiguration != nil {
12745		if err := s.BlockPublicAccessConfiguration.Validate(); err != nil {
12746			invalidParams.AddNested("BlockPublicAccessConfiguration", err.(request.ErrInvalidParams))
12747		}
12748	}
12749
12750	if invalidParams.Len() > 0 {
12751		return invalidParams
12752	}
12753	return nil
12754}
12755
12756// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
12757func (s *PutBlockPublicAccessConfigurationInput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *PutBlockPublicAccessConfigurationInput {
12758	s.BlockPublicAccessConfiguration = v
12759	return s
12760}
12761
12762type PutBlockPublicAccessConfigurationOutput struct {
12763	_ struct{} `type:"structure"`
12764}
12765
12766// String returns the string representation
12767func (s PutBlockPublicAccessConfigurationOutput) String() string {
12768	return awsutil.Prettify(s)
12769}
12770
12771// GoString returns the string representation
12772func (s PutBlockPublicAccessConfigurationOutput) GoString() string {
12773	return s.String()
12774}
12775
12776type PutManagedScalingPolicyInput struct {
12777	_ struct{} `type:"structure"`
12778
12779	// Specifies the ID of an EMR cluster where the managed scaling policy is attached.
12780	//
12781	// ClusterId is a required field
12782	ClusterId *string `type:"string" required:"true"`
12783
12784	// Specifies the constraints for the managed scaling policy.
12785	//
12786	// ManagedScalingPolicy is a required field
12787	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure" required:"true"`
12788}
12789
12790// String returns the string representation
12791func (s PutManagedScalingPolicyInput) String() string {
12792	return awsutil.Prettify(s)
12793}
12794
12795// GoString returns the string representation
12796func (s PutManagedScalingPolicyInput) GoString() string {
12797	return s.String()
12798}
12799
12800// Validate inspects the fields of the type to determine if they are valid.
12801func (s *PutManagedScalingPolicyInput) Validate() error {
12802	invalidParams := request.ErrInvalidParams{Context: "PutManagedScalingPolicyInput"}
12803	if s.ClusterId == nil {
12804		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12805	}
12806	if s.ManagedScalingPolicy == nil {
12807		invalidParams.Add(request.NewErrParamRequired("ManagedScalingPolicy"))
12808	}
12809	if s.ManagedScalingPolicy != nil {
12810		if err := s.ManagedScalingPolicy.Validate(); err != nil {
12811			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
12812		}
12813	}
12814
12815	if invalidParams.Len() > 0 {
12816		return invalidParams
12817	}
12818	return nil
12819}
12820
12821// SetClusterId sets the ClusterId field's value.
12822func (s *PutManagedScalingPolicyInput) SetClusterId(v string) *PutManagedScalingPolicyInput {
12823	s.ClusterId = &v
12824	return s
12825}
12826
12827// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
12828func (s *PutManagedScalingPolicyInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *PutManagedScalingPolicyInput {
12829	s.ManagedScalingPolicy = v
12830	return s
12831}
12832
12833type PutManagedScalingPolicyOutput struct {
12834	_ struct{} `type:"structure"`
12835}
12836
12837// String returns the string representation
12838func (s PutManagedScalingPolicyOutput) String() string {
12839	return awsutil.Prettify(s)
12840}
12841
12842// GoString returns the string representation
12843func (s PutManagedScalingPolicyOutput) GoString() string {
12844	return s.String()
12845}
12846
12847type RemoveAutoScalingPolicyInput struct {
12848	_ struct{} `type:"structure"`
12849
12850	// Specifies the ID of a cluster. The instance group to which the automatic
12851	// scaling policy is applied is within this cluster.
12852	//
12853	// ClusterId is a required field
12854	ClusterId *string `type:"string" required:"true"`
12855
12856	// Specifies the ID of the instance group to which the scaling policy is applied.
12857	//
12858	// InstanceGroupId is a required field
12859	InstanceGroupId *string `type:"string" required:"true"`
12860}
12861
12862// String returns the string representation
12863func (s RemoveAutoScalingPolicyInput) String() string {
12864	return awsutil.Prettify(s)
12865}
12866
12867// GoString returns the string representation
12868func (s RemoveAutoScalingPolicyInput) GoString() string {
12869	return s.String()
12870}
12871
12872// Validate inspects the fields of the type to determine if they are valid.
12873func (s *RemoveAutoScalingPolicyInput) Validate() error {
12874	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoScalingPolicyInput"}
12875	if s.ClusterId == nil {
12876		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12877	}
12878	if s.InstanceGroupId == nil {
12879		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
12880	}
12881
12882	if invalidParams.Len() > 0 {
12883		return invalidParams
12884	}
12885	return nil
12886}
12887
12888// SetClusterId sets the ClusterId field's value.
12889func (s *RemoveAutoScalingPolicyInput) SetClusterId(v string) *RemoveAutoScalingPolicyInput {
12890	s.ClusterId = &v
12891	return s
12892}
12893
12894// SetInstanceGroupId sets the InstanceGroupId field's value.
12895func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoScalingPolicyInput {
12896	s.InstanceGroupId = &v
12897	return s
12898}
12899
12900type RemoveAutoScalingPolicyOutput struct {
12901	_ struct{} `type:"structure"`
12902}
12903
12904// String returns the string representation
12905func (s RemoveAutoScalingPolicyOutput) String() string {
12906	return awsutil.Prettify(s)
12907}
12908
12909// GoString returns the string representation
12910func (s RemoveAutoScalingPolicyOutput) GoString() string {
12911	return s.String()
12912}
12913
12914type RemoveManagedScalingPolicyInput struct {
12915	_ struct{} `type:"structure"`
12916
12917	// Specifies the ID of the cluster from which the managed scaling policy will
12918	// be removed.
12919	//
12920	// ClusterId is a required field
12921	ClusterId *string `type:"string" required:"true"`
12922}
12923
12924// String returns the string representation
12925func (s RemoveManagedScalingPolicyInput) String() string {
12926	return awsutil.Prettify(s)
12927}
12928
12929// GoString returns the string representation
12930func (s RemoveManagedScalingPolicyInput) GoString() string {
12931	return s.String()
12932}
12933
12934// Validate inspects the fields of the type to determine if they are valid.
12935func (s *RemoveManagedScalingPolicyInput) Validate() error {
12936	invalidParams := request.ErrInvalidParams{Context: "RemoveManagedScalingPolicyInput"}
12937	if s.ClusterId == nil {
12938		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12939	}
12940
12941	if invalidParams.Len() > 0 {
12942		return invalidParams
12943	}
12944	return nil
12945}
12946
12947// SetClusterId sets the ClusterId field's value.
12948func (s *RemoveManagedScalingPolicyInput) SetClusterId(v string) *RemoveManagedScalingPolicyInput {
12949	s.ClusterId = &v
12950	return s
12951}
12952
12953type RemoveManagedScalingPolicyOutput struct {
12954	_ struct{} `type:"structure"`
12955}
12956
12957// String returns the string representation
12958func (s RemoveManagedScalingPolicyOutput) String() string {
12959	return awsutil.Prettify(s)
12960}
12961
12962// GoString returns the string representation
12963func (s RemoveManagedScalingPolicyOutput) GoString() string {
12964	return s.String()
12965}
12966
12967// This input identifies a cluster and a list of tags to remove.
12968type RemoveTagsInput struct {
12969	_ struct{} `type:"structure"`
12970
12971	// The Amazon EMR resource identifier from which tags will be removed. This
12972	// value must be a cluster identifier.
12973	//
12974	// ResourceId is a required field
12975	ResourceId *string `type:"string" required:"true"`
12976
12977	// A list of tag keys to remove from a resource.
12978	//
12979	// TagKeys is a required field
12980	TagKeys []*string `type:"list" required:"true"`
12981}
12982
12983// String returns the string representation
12984func (s RemoveTagsInput) String() string {
12985	return awsutil.Prettify(s)
12986}
12987
12988// GoString returns the string representation
12989func (s RemoveTagsInput) GoString() string {
12990	return s.String()
12991}
12992
12993// Validate inspects the fields of the type to determine if they are valid.
12994func (s *RemoveTagsInput) Validate() error {
12995	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
12996	if s.ResourceId == nil {
12997		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
12998	}
12999	if s.TagKeys == nil {
13000		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
13001	}
13002
13003	if invalidParams.Len() > 0 {
13004		return invalidParams
13005	}
13006	return nil
13007}
13008
13009// SetResourceId sets the ResourceId field's value.
13010func (s *RemoveTagsInput) SetResourceId(v string) *RemoveTagsInput {
13011	s.ResourceId = &v
13012	return s
13013}
13014
13015// SetTagKeys sets the TagKeys field's value.
13016func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
13017	s.TagKeys = v
13018	return s
13019}
13020
13021// This output indicates the result of removing tags from a resource.
13022type RemoveTagsOutput struct {
13023	_ struct{} `type:"structure"`
13024}
13025
13026// String returns the string representation
13027func (s RemoveTagsOutput) String() string {
13028	return awsutil.Prettify(s)
13029}
13030
13031// GoString returns the string representation
13032func (s RemoveTagsOutput) GoString() string {
13033	return s.String()
13034}
13035
13036// Input to the RunJobFlow operation.
13037type RunJobFlowInput struct {
13038	_ struct{} `type:"structure"`
13039
13040	// A JSON string for selecting additional features.
13041	AdditionalInfo *string `type:"string"`
13042
13043	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
13044	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
13045	AmiVersion *string `type:"string"`
13046
13047	// Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
13048	// applications for Amazon EMR to install and configure when launching the cluster.
13049	// For a list of applications available for each Amazon EMR release version,
13050	// see the Amazon EMR Release Guide (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
13051	Applications []*Application `type:"list"`
13052
13053	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
13054	// The IAM role provides permissions that the automatic scaling feature requires
13055	// to launch and terminate EC2 instances in an instance group.
13056	AutoScalingRole *string `type:"string"`
13057
13058	// A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
13059	BootstrapActions []*BootstrapActionConfig `type:"list"`
13060
13061	// For Amazon EMR releases 4.0 and later. The list of configurations supplied
13062	// for the EMR cluster you are creating.
13063	Configurations []*Configuration `type:"list"`
13064
13065	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
13066	// Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when
13067	// it launches cluster EC2 instances. For more information about custom AMIs
13068	// in Amazon EMR, see Using a Custom AMI (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)
13069	// in the Amazon EMR Management Guide. If omitted, the cluster uses the base
13070	// Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and
13071	// 3.x, use AmiVersion instead.
13072	//
13073	// For information about creating a custom AMI, see Creating an Amazon EBS-Backed
13074	// Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
13075	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information
13076	// about finding an AMI ID, see Finding a Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
13077	CustomAmiId *string `type:"string"`
13078
13079	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
13080	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
13081	EbsRootVolumeSize *int64 `type:"integer"`
13082
13083	// A specification of the number and type of Amazon EC2 instances.
13084	//
13085	// Instances is a required field
13086	Instances *JobFlowInstancesConfig `type:"structure" required:"true"`
13087
13088	// Also called instance profile and EC2 role. An IAM role for an EMR cluster.
13089	// The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole.
13090	// In order to use the default role, you must have already created it using
13091	// the CLI or console.
13092	JobFlowRole *string `type:"string"`
13093
13094	// Attributes for Kerberos configuration when Kerberos authentication is enabled
13095	// using a security configuration. For more information see Use Kerberos Authentication
13096	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
13097	// in the Amazon EMR Management Guide.
13098	KerberosAttributes *KerberosAttributes `type:"structure"`
13099
13100	// The AWS KMS customer master key (CMK) used for encrypting log files. If a
13101	// value is not provided, the logs remain encrypted by AES-256. This attribute
13102	// is only available with Amazon EMR version 5.30.0 and later, excluding Amazon
13103	// EMR 6.0.0.
13104	LogEncryptionKmsKeyId *string `type:"string"`
13105
13106	// The location in Amazon S3 to write the log files of the job flow. If a value
13107	// is not provided, logs are not created.
13108	LogUri *string `type:"string"`
13109
13110	// The specified managed scaling policy for an Amazon EMR cluster.
13111	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
13112
13113	// The name of the job flow.
13114	//
13115	// Name is a required field
13116	Name *string `type:"string" required:"true"`
13117
13118	//
13119	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
13120	// use Applications.
13121	//
13122	// A list of strings that indicates third-party software to use with the job
13123	// flow that accepts a user argument list. EMR accepts and forwards the argument
13124	// list to the corresponding installation script as bootstrap action arguments.
13125	// For more information, see "Launch a Job Flow on the MapR Distribution for
13126	// Hadoop" in the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
13127	// Supported values are:
13128	//
13129	//    * "mapr-m3" - launch the cluster using MapR M3 Edition.
13130	//
13131	//    * "mapr-m5" - launch the cluster using MapR M5 Edition.
13132	//
13133	//    * "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5"
13134	//    - launch the job flow using MapR M3 or M5 Edition respectively.
13135	//
13136	//    * "mapr-m7" - launch the cluster using MapR M7 Edition.
13137	//
13138	//    * "hunk" - launch the cluster with the Hunk Big Data Analytics Platform.
13139	//
13140	//    * "hue"- launch the cluster with Hue installed.
13141	//
13142	//    * "spark" - launch the cluster with Apache Spark installed.
13143	//
13144	//    * "ganglia" - launch the cluster with the Ganglia Monitoring System installed.
13145	NewSupportedProducts []*SupportedProductConfig `type:"list"`
13146
13147	// The specified placement group configuration for an Amazon EMR cluster.
13148	PlacementGroupConfigs []*PlacementGroupConfig `type:"list"`
13149
13150	// The Amazon EMR release label, which determines the version of open-source
13151	// application packages installed on the cluster. Release labels are in the
13152	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
13153	// For more information about Amazon EMR release versions and included application
13154	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
13155	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
13156	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
13157	// use AmiVersion.
13158	ReleaseLabel *string `type:"string"`
13159
13160	// Applies only when CustomAmiID is used. Specifies which updates from the Amazon
13161	// Linux AMI package repositories to apply automatically when the instance boots
13162	// using the AMI. If omitted, the default is SECURITY, which indicates that
13163	// only security updates are applied. If NONE is specified, no updates are applied,
13164	// and all updates must be applied manually.
13165	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
13166
13167	// Specifies the way that individual Amazon EC2 instances terminate when an
13168	// automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
13169	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
13170	// regardless of when the request to terminate the instance was submitted. This
13171	// option is only available with Amazon EMR 5.1.0 and later and is the default
13172	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
13173	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
13174	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
13175	// With either behavior, Amazon EMR removes the least active nodes first and
13176	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
13177	// available only in Amazon EMR version 4.1.0 and later, and is the default
13178	// for versions of Amazon EMR earlier than 5.1.0.
13179	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
13180
13181	// The name of a security configuration to apply to the cluster.
13182	SecurityConfiguration *string `type:"string"`
13183
13184	// The IAM role that will be assumed by the Amazon EMR service to access AWS
13185	// resources on your behalf.
13186	ServiceRole *string `type:"string"`
13187
13188	// Specifies the number of steps that can be executed concurrently. The default
13189	// value is 1. The maximum value is 256.
13190	StepConcurrencyLevel *int64 `type:"integer"`
13191
13192	// A list of steps to run.
13193	Steps []*StepConfig `type:"list"`
13194
13195	//
13196	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
13197	// use Applications.
13198	//
13199	// A list of strings that indicates third-party software to use. For more information,
13200	// see the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
13201	// Currently supported values are:
13202	//
13203	//    * "mapr-m3" - launch the job flow using MapR M3 Edition.
13204	//
13205	//    * "mapr-m5" - launch the job flow using MapR M5 Edition.
13206	SupportedProducts []*string `type:"list"`
13207
13208	// A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
13209	Tags []*Tag `type:"list"`
13210
13211	// A value of true indicates that all IAM users in the AWS account can perform
13212	// cluster actions if they have the proper IAM policy permissions. This is the
13213	// default. A value of false indicates that only the IAM user who created the
13214	// cluster can perform actions.
13215	VisibleToAllUsers *bool `type:"boolean"`
13216}
13217
13218// String returns the string representation
13219func (s RunJobFlowInput) String() string {
13220	return awsutil.Prettify(s)
13221}
13222
13223// GoString returns the string representation
13224func (s RunJobFlowInput) GoString() string {
13225	return s.String()
13226}
13227
13228// Validate inspects the fields of the type to determine if they are valid.
13229func (s *RunJobFlowInput) Validate() error {
13230	invalidParams := request.ErrInvalidParams{Context: "RunJobFlowInput"}
13231	if s.Instances == nil {
13232		invalidParams.Add(request.NewErrParamRequired("Instances"))
13233	}
13234	if s.Name == nil {
13235		invalidParams.Add(request.NewErrParamRequired("Name"))
13236	}
13237	if s.BootstrapActions != nil {
13238		for i, v := range s.BootstrapActions {
13239			if v == nil {
13240				continue
13241			}
13242			if err := v.Validate(); err != nil {
13243				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BootstrapActions", i), err.(request.ErrInvalidParams))
13244			}
13245		}
13246	}
13247	if s.Instances != nil {
13248		if err := s.Instances.Validate(); err != nil {
13249			invalidParams.AddNested("Instances", err.(request.ErrInvalidParams))
13250		}
13251	}
13252	if s.KerberosAttributes != nil {
13253		if err := s.KerberosAttributes.Validate(); err != nil {
13254			invalidParams.AddNested("KerberosAttributes", err.(request.ErrInvalidParams))
13255		}
13256	}
13257	if s.ManagedScalingPolicy != nil {
13258		if err := s.ManagedScalingPolicy.Validate(); err != nil {
13259			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
13260		}
13261	}
13262	if s.PlacementGroupConfigs != nil {
13263		for i, v := range s.PlacementGroupConfigs {
13264			if v == nil {
13265				continue
13266			}
13267			if err := v.Validate(); err != nil {
13268				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams))
13269			}
13270		}
13271	}
13272	if s.Steps != nil {
13273		for i, v := range s.Steps {
13274			if v == nil {
13275				continue
13276			}
13277			if err := v.Validate(); err != nil {
13278				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
13279			}
13280		}
13281	}
13282
13283	if invalidParams.Len() > 0 {
13284		return invalidParams
13285	}
13286	return nil
13287}
13288
13289// SetAdditionalInfo sets the AdditionalInfo field's value.
13290func (s *RunJobFlowInput) SetAdditionalInfo(v string) *RunJobFlowInput {
13291	s.AdditionalInfo = &v
13292	return s
13293}
13294
13295// SetAmiVersion sets the AmiVersion field's value.
13296func (s *RunJobFlowInput) SetAmiVersion(v string) *RunJobFlowInput {
13297	s.AmiVersion = &v
13298	return s
13299}
13300
13301// SetApplications sets the Applications field's value.
13302func (s *RunJobFlowInput) SetApplications(v []*Application) *RunJobFlowInput {
13303	s.Applications = v
13304	return s
13305}
13306
13307// SetAutoScalingRole sets the AutoScalingRole field's value.
13308func (s *RunJobFlowInput) SetAutoScalingRole(v string) *RunJobFlowInput {
13309	s.AutoScalingRole = &v
13310	return s
13311}
13312
13313// SetBootstrapActions sets the BootstrapActions field's value.
13314func (s *RunJobFlowInput) SetBootstrapActions(v []*BootstrapActionConfig) *RunJobFlowInput {
13315	s.BootstrapActions = v
13316	return s
13317}
13318
13319// SetConfigurations sets the Configurations field's value.
13320func (s *RunJobFlowInput) SetConfigurations(v []*Configuration) *RunJobFlowInput {
13321	s.Configurations = v
13322	return s
13323}
13324
13325// SetCustomAmiId sets the CustomAmiId field's value.
13326func (s *RunJobFlowInput) SetCustomAmiId(v string) *RunJobFlowInput {
13327	s.CustomAmiId = &v
13328	return s
13329}
13330
13331// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
13332func (s *RunJobFlowInput) SetEbsRootVolumeSize(v int64) *RunJobFlowInput {
13333	s.EbsRootVolumeSize = &v
13334	return s
13335}
13336
13337// SetInstances sets the Instances field's value.
13338func (s *RunJobFlowInput) SetInstances(v *JobFlowInstancesConfig) *RunJobFlowInput {
13339	s.Instances = v
13340	return s
13341}
13342
13343// SetJobFlowRole sets the JobFlowRole field's value.
13344func (s *RunJobFlowInput) SetJobFlowRole(v string) *RunJobFlowInput {
13345	s.JobFlowRole = &v
13346	return s
13347}
13348
13349// SetKerberosAttributes sets the KerberosAttributes field's value.
13350func (s *RunJobFlowInput) SetKerberosAttributes(v *KerberosAttributes) *RunJobFlowInput {
13351	s.KerberosAttributes = v
13352	return s
13353}
13354
13355// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
13356func (s *RunJobFlowInput) SetLogEncryptionKmsKeyId(v string) *RunJobFlowInput {
13357	s.LogEncryptionKmsKeyId = &v
13358	return s
13359}
13360
13361// SetLogUri sets the LogUri field's value.
13362func (s *RunJobFlowInput) SetLogUri(v string) *RunJobFlowInput {
13363	s.LogUri = &v
13364	return s
13365}
13366
13367// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
13368func (s *RunJobFlowInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *RunJobFlowInput {
13369	s.ManagedScalingPolicy = v
13370	return s
13371}
13372
13373// SetName sets the Name field's value.
13374func (s *RunJobFlowInput) SetName(v string) *RunJobFlowInput {
13375	s.Name = &v
13376	return s
13377}
13378
13379// SetNewSupportedProducts sets the NewSupportedProducts field's value.
13380func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) *RunJobFlowInput {
13381	s.NewSupportedProducts = v
13382	return s
13383}
13384
13385// SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value.
13386func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput {
13387	s.PlacementGroupConfigs = v
13388	return s
13389}
13390
13391// SetReleaseLabel sets the ReleaseLabel field's value.
13392func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput {
13393	s.ReleaseLabel = &v
13394	return s
13395}
13396
13397// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
13398func (s *RunJobFlowInput) SetRepoUpgradeOnBoot(v string) *RunJobFlowInput {
13399	s.RepoUpgradeOnBoot = &v
13400	return s
13401}
13402
13403// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
13404func (s *RunJobFlowInput) SetScaleDownBehavior(v string) *RunJobFlowInput {
13405	s.ScaleDownBehavior = &v
13406	return s
13407}
13408
13409// SetSecurityConfiguration sets the SecurityConfiguration field's value.
13410func (s *RunJobFlowInput) SetSecurityConfiguration(v string) *RunJobFlowInput {
13411	s.SecurityConfiguration = &v
13412	return s
13413}
13414
13415// SetServiceRole sets the ServiceRole field's value.
13416func (s *RunJobFlowInput) SetServiceRole(v string) *RunJobFlowInput {
13417	s.ServiceRole = &v
13418	return s
13419}
13420
13421// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
13422func (s *RunJobFlowInput) SetStepConcurrencyLevel(v int64) *RunJobFlowInput {
13423	s.StepConcurrencyLevel = &v
13424	return s
13425}
13426
13427// SetSteps sets the Steps field's value.
13428func (s *RunJobFlowInput) SetSteps(v []*StepConfig) *RunJobFlowInput {
13429	s.Steps = v
13430	return s
13431}
13432
13433// SetSupportedProducts sets the SupportedProducts field's value.
13434func (s *RunJobFlowInput) SetSupportedProducts(v []*string) *RunJobFlowInput {
13435	s.SupportedProducts = v
13436	return s
13437}
13438
13439// SetTags sets the Tags field's value.
13440func (s *RunJobFlowInput) SetTags(v []*Tag) *RunJobFlowInput {
13441	s.Tags = v
13442	return s
13443}
13444
13445// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
13446func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput {
13447	s.VisibleToAllUsers = &v
13448	return s
13449}
13450
13451// The result of the RunJobFlow operation.
13452type RunJobFlowOutput struct {
13453	_ struct{} `type:"structure"`
13454
13455	// The Amazon Resource Name (ARN) of the cluster.
13456	ClusterArn *string `min:"20" type:"string"`
13457
13458	// A unique identifier for the job flow.
13459	JobFlowId *string `type:"string"`
13460}
13461
13462// String returns the string representation
13463func (s RunJobFlowOutput) String() string {
13464	return awsutil.Prettify(s)
13465}
13466
13467// GoString returns the string representation
13468func (s RunJobFlowOutput) GoString() string {
13469	return s.String()
13470}
13471
13472// SetClusterArn sets the ClusterArn field's value.
13473func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput {
13474	s.ClusterArn = &v
13475	return s
13476}
13477
13478// SetJobFlowId sets the JobFlowId field's value.
13479func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput {
13480	s.JobFlowId = &v
13481	return s
13482}
13483
13484// The type of adjustment the automatic scaling activity makes when triggered,
13485// and the periodicity of the adjustment.
13486type ScalingAction struct {
13487	_ struct{} `type:"structure"`
13488
13489	// Not available for instance groups. Instance groups use the market type specified
13490	// for the group.
13491	Market *string `type:"string" enum:"MarketType"`
13492
13493	// The type of adjustment the automatic scaling activity makes when triggered,
13494	// and the periodicity of the adjustment.
13495	//
13496	// SimpleScalingPolicyConfiguration is a required field
13497	SimpleScalingPolicyConfiguration *SimpleScalingPolicyConfiguration `type:"structure" required:"true"`
13498}
13499
13500// String returns the string representation
13501func (s ScalingAction) String() string {
13502	return awsutil.Prettify(s)
13503}
13504
13505// GoString returns the string representation
13506func (s ScalingAction) GoString() string {
13507	return s.String()
13508}
13509
13510// Validate inspects the fields of the type to determine if they are valid.
13511func (s *ScalingAction) Validate() error {
13512	invalidParams := request.ErrInvalidParams{Context: "ScalingAction"}
13513	if s.SimpleScalingPolicyConfiguration == nil {
13514		invalidParams.Add(request.NewErrParamRequired("SimpleScalingPolicyConfiguration"))
13515	}
13516	if s.SimpleScalingPolicyConfiguration != nil {
13517		if err := s.SimpleScalingPolicyConfiguration.Validate(); err != nil {
13518			invalidParams.AddNested("SimpleScalingPolicyConfiguration", err.(request.ErrInvalidParams))
13519		}
13520	}
13521
13522	if invalidParams.Len() > 0 {
13523		return invalidParams
13524	}
13525	return nil
13526}
13527
13528// SetMarket sets the Market field's value.
13529func (s *ScalingAction) SetMarket(v string) *ScalingAction {
13530	s.Market = &v
13531	return s
13532}
13533
13534// SetSimpleScalingPolicyConfiguration sets the SimpleScalingPolicyConfiguration field's value.
13535func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPolicyConfiguration) *ScalingAction {
13536	s.SimpleScalingPolicyConfiguration = v
13537	return s
13538}
13539
13540// The upper and lower EC2 instance limits for an automatic scaling policy.
13541// Automatic scaling activities triggered by automatic scaling rules will not
13542// cause an instance group to grow above or below these limits.
13543type ScalingConstraints struct {
13544	_ struct{} `type:"structure"`
13545
13546	// The upper boundary of EC2 instances in an instance group beyond which scaling
13547	// activities are not allowed to grow. Scale-out activities will not add instances
13548	// beyond this boundary.
13549	//
13550	// MaxCapacity is a required field
13551	MaxCapacity *int64 `type:"integer" required:"true"`
13552
13553	// The lower boundary of EC2 instances in an instance group below which scaling
13554	// activities are not allowed to shrink. Scale-in activities will not terminate
13555	// instances below this boundary.
13556	//
13557	// MinCapacity is a required field
13558	MinCapacity *int64 `type:"integer" required:"true"`
13559}
13560
13561// String returns the string representation
13562func (s ScalingConstraints) String() string {
13563	return awsutil.Prettify(s)
13564}
13565
13566// GoString returns the string representation
13567func (s ScalingConstraints) GoString() string {
13568	return s.String()
13569}
13570
13571// Validate inspects the fields of the type to determine if they are valid.
13572func (s *ScalingConstraints) Validate() error {
13573	invalidParams := request.ErrInvalidParams{Context: "ScalingConstraints"}
13574	if s.MaxCapacity == nil {
13575		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
13576	}
13577	if s.MinCapacity == nil {
13578		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
13579	}
13580
13581	if invalidParams.Len() > 0 {
13582		return invalidParams
13583	}
13584	return nil
13585}
13586
13587// SetMaxCapacity sets the MaxCapacity field's value.
13588func (s *ScalingConstraints) SetMaxCapacity(v int64) *ScalingConstraints {
13589	s.MaxCapacity = &v
13590	return s
13591}
13592
13593// SetMinCapacity sets the MinCapacity field's value.
13594func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints {
13595	s.MinCapacity = &v
13596	return s
13597}
13598
13599// A scale-in or scale-out rule that defines scaling activity, including the
13600// CloudWatch metric alarm that triggers activity, how EC2 instances are added
13601// or removed, and the periodicity of adjustments. The automatic scaling policy
13602// for an instance group can comprise one or more automatic scaling rules.
13603type ScalingRule struct {
13604	_ struct{} `type:"structure"`
13605
13606	// The conditions that trigger an automatic scaling activity.
13607	//
13608	// Action is a required field
13609	Action *ScalingAction `type:"structure" required:"true"`
13610
13611	// A friendly, more verbose description of the automatic scaling rule.
13612	Description *string `type:"string"`
13613
13614	// The name used to identify an automatic scaling rule. Rule names must be unique
13615	// within a scaling policy.
13616	//
13617	// Name is a required field
13618	Name *string `type:"string" required:"true"`
13619
13620	// The CloudWatch alarm definition that determines when automatic scaling activity
13621	// is triggered.
13622	//
13623	// Trigger is a required field
13624	Trigger *ScalingTrigger `type:"structure" required:"true"`
13625}
13626
13627// String returns the string representation
13628func (s ScalingRule) String() string {
13629	return awsutil.Prettify(s)
13630}
13631
13632// GoString returns the string representation
13633func (s ScalingRule) GoString() string {
13634	return s.String()
13635}
13636
13637// Validate inspects the fields of the type to determine if they are valid.
13638func (s *ScalingRule) Validate() error {
13639	invalidParams := request.ErrInvalidParams{Context: "ScalingRule"}
13640	if s.Action == nil {
13641		invalidParams.Add(request.NewErrParamRequired("Action"))
13642	}
13643	if s.Name == nil {
13644		invalidParams.Add(request.NewErrParamRequired("Name"))
13645	}
13646	if s.Trigger == nil {
13647		invalidParams.Add(request.NewErrParamRequired("Trigger"))
13648	}
13649	if s.Action != nil {
13650		if err := s.Action.Validate(); err != nil {
13651			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
13652		}
13653	}
13654	if s.Trigger != nil {
13655		if err := s.Trigger.Validate(); err != nil {
13656			invalidParams.AddNested("Trigger", err.(request.ErrInvalidParams))
13657		}
13658	}
13659
13660	if invalidParams.Len() > 0 {
13661		return invalidParams
13662	}
13663	return nil
13664}
13665
13666// SetAction sets the Action field's value.
13667func (s *ScalingRule) SetAction(v *ScalingAction) *ScalingRule {
13668	s.Action = v
13669	return s
13670}
13671
13672// SetDescription sets the Description field's value.
13673func (s *ScalingRule) SetDescription(v string) *ScalingRule {
13674	s.Description = &v
13675	return s
13676}
13677
13678// SetName sets the Name field's value.
13679func (s *ScalingRule) SetName(v string) *ScalingRule {
13680	s.Name = &v
13681	return s
13682}
13683
13684// SetTrigger sets the Trigger field's value.
13685func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule {
13686	s.Trigger = v
13687	return s
13688}
13689
13690// The conditions that trigger an automatic scaling activity.
13691type ScalingTrigger struct {
13692	_ struct{} `type:"structure"`
13693
13694	// The definition of a CloudWatch metric alarm. When the defined alarm conditions
13695	// are met along with other trigger parameters, scaling activity begins.
13696	//
13697	// CloudWatchAlarmDefinition is a required field
13698	CloudWatchAlarmDefinition *CloudWatchAlarmDefinition `type:"structure" required:"true"`
13699}
13700
13701// String returns the string representation
13702func (s ScalingTrigger) String() string {
13703	return awsutil.Prettify(s)
13704}
13705
13706// GoString returns the string representation
13707func (s ScalingTrigger) GoString() string {
13708	return s.String()
13709}
13710
13711// Validate inspects the fields of the type to determine if they are valid.
13712func (s *ScalingTrigger) Validate() error {
13713	invalidParams := request.ErrInvalidParams{Context: "ScalingTrigger"}
13714	if s.CloudWatchAlarmDefinition == nil {
13715		invalidParams.Add(request.NewErrParamRequired("CloudWatchAlarmDefinition"))
13716	}
13717	if s.CloudWatchAlarmDefinition != nil {
13718		if err := s.CloudWatchAlarmDefinition.Validate(); err != nil {
13719			invalidParams.AddNested("CloudWatchAlarmDefinition", err.(request.ErrInvalidParams))
13720		}
13721	}
13722
13723	if invalidParams.Len() > 0 {
13724		return invalidParams
13725	}
13726	return nil
13727}
13728
13729// SetCloudWatchAlarmDefinition sets the CloudWatchAlarmDefinition field's value.
13730func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefinition) *ScalingTrigger {
13731	s.CloudWatchAlarmDefinition = v
13732	return s
13733}
13734
13735// Configuration of the script to run during a bootstrap action.
13736type ScriptBootstrapActionConfig struct {
13737	_ struct{} `type:"structure"`
13738
13739	// A list of command line arguments to pass to the bootstrap action script.
13740	Args []*string `type:"list"`
13741
13742	// Location of the script to run during a bootstrap action. Can be either a
13743	// location in Amazon S3 or on a local file system.
13744	//
13745	// Path is a required field
13746	Path *string `type:"string" required:"true"`
13747}
13748
13749// String returns the string representation
13750func (s ScriptBootstrapActionConfig) String() string {
13751	return awsutil.Prettify(s)
13752}
13753
13754// GoString returns the string representation
13755func (s ScriptBootstrapActionConfig) GoString() string {
13756	return s.String()
13757}
13758
13759// Validate inspects the fields of the type to determine if they are valid.
13760func (s *ScriptBootstrapActionConfig) Validate() error {
13761	invalidParams := request.ErrInvalidParams{Context: "ScriptBootstrapActionConfig"}
13762	if s.Path == nil {
13763		invalidParams.Add(request.NewErrParamRequired("Path"))
13764	}
13765
13766	if invalidParams.Len() > 0 {
13767		return invalidParams
13768	}
13769	return nil
13770}
13771
13772// SetArgs sets the Args field's value.
13773func (s *ScriptBootstrapActionConfig) SetArgs(v []*string) *ScriptBootstrapActionConfig {
13774	s.Args = v
13775	return s
13776}
13777
13778// SetPath sets the Path field's value.
13779func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionConfig {
13780	s.Path = &v
13781	return s
13782}
13783
13784// The creation date and time, and name, of a security configuration.
13785type SecurityConfigurationSummary struct {
13786	_ struct{} `type:"structure"`
13787
13788	// The date and time the security configuration was created.
13789	CreationDateTime *time.Time `type:"timestamp"`
13790
13791	// The name of the security configuration.
13792	Name *string `type:"string"`
13793}
13794
13795// String returns the string representation
13796func (s SecurityConfigurationSummary) String() string {
13797	return awsutil.Prettify(s)
13798}
13799
13800// GoString returns the string representation
13801func (s SecurityConfigurationSummary) GoString() string {
13802	return s.String()
13803}
13804
13805// SetCreationDateTime sets the CreationDateTime field's value.
13806func (s *SecurityConfigurationSummary) SetCreationDateTime(v time.Time) *SecurityConfigurationSummary {
13807	s.CreationDateTime = &v
13808	return s
13809}
13810
13811// SetName sets the Name field's value.
13812func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationSummary {
13813	s.Name = &v
13814	return s
13815}
13816
13817// Details for an Amazon EMR Studio session mapping including creation time,
13818// user or group ID, Studio ID, and so on.
13819type SessionMappingDetail struct {
13820	_ struct{} `type:"structure"`
13821
13822	// The time the session mapping was created.
13823	CreationTime *time.Time `type:"timestamp"`
13824
13825	// The globally unique identifier (GUID) of the user or group.
13826	IdentityId *string `type:"string"`
13827
13828	// 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)
13829	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
13830	// in the AWS SSO Identity Store API Reference.
13831	IdentityName *string `type:"string"`
13832
13833	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
13834	// or a group.
13835	IdentityType *string `type:"string" enum:"IdentityType"`
13836
13837	// The time the session mapping was last modified.
13838	LastModifiedTime *time.Time `type:"timestamp"`
13839
13840	// The Amazon Resource Name (ARN) of the session policy associated with the
13841	// user or group.
13842	SessionPolicyArn *string `type:"string"`
13843
13844	// The ID of the Amazon EMR Studio.
13845	StudioId *string `type:"string"`
13846}
13847
13848// String returns the string representation
13849func (s SessionMappingDetail) String() string {
13850	return awsutil.Prettify(s)
13851}
13852
13853// GoString returns the string representation
13854func (s SessionMappingDetail) GoString() string {
13855	return s.String()
13856}
13857
13858// SetCreationTime sets the CreationTime field's value.
13859func (s *SessionMappingDetail) SetCreationTime(v time.Time) *SessionMappingDetail {
13860	s.CreationTime = &v
13861	return s
13862}
13863
13864// SetIdentityId sets the IdentityId field's value.
13865func (s *SessionMappingDetail) SetIdentityId(v string) *SessionMappingDetail {
13866	s.IdentityId = &v
13867	return s
13868}
13869
13870// SetIdentityName sets the IdentityName field's value.
13871func (s *SessionMappingDetail) SetIdentityName(v string) *SessionMappingDetail {
13872	s.IdentityName = &v
13873	return s
13874}
13875
13876// SetIdentityType sets the IdentityType field's value.
13877func (s *SessionMappingDetail) SetIdentityType(v string) *SessionMappingDetail {
13878	s.IdentityType = &v
13879	return s
13880}
13881
13882// SetLastModifiedTime sets the LastModifiedTime field's value.
13883func (s *SessionMappingDetail) SetLastModifiedTime(v time.Time) *SessionMappingDetail {
13884	s.LastModifiedTime = &v
13885	return s
13886}
13887
13888// SetSessionPolicyArn sets the SessionPolicyArn field's value.
13889func (s *SessionMappingDetail) SetSessionPolicyArn(v string) *SessionMappingDetail {
13890	s.SessionPolicyArn = &v
13891	return s
13892}
13893
13894// SetStudioId sets the StudioId field's value.
13895func (s *SessionMappingDetail) SetStudioId(v string) *SessionMappingDetail {
13896	s.StudioId = &v
13897	return s
13898}
13899
13900// Details for an Amazon EMR Studio session mapping. The details do not include
13901// the time the session mapping was last modified.
13902type SessionMappingSummary struct {
13903	_ struct{} `type:"structure"`
13904
13905	// The time the session mapping was created.
13906	CreationTime *time.Time `type:"timestamp"`
13907
13908	// The globally unique identifier (GUID) of the user or group from the AWS SSO
13909	// Identity Store.
13910	IdentityId *string `type:"string"`
13911
13912	// 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)
13913	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
13914	// in the AWS SSO Identity Store API Reference.
13915	IdentityName *string `type:"string"`
13916
13917	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
13918	// or a group.
13919	IdentityType *string `type:"string" enum:"IdentityType"`
13920
13921	// The Amazon Resource Name (ARN) of the session policy associated with the
13922	// user or group.
13923	SessionPolicyArn *string `type:"string"`
13924
13925	// The ID of the Amazon EMR Studio.
13926	StudioId *string `type:"string"`
13927}
13928
13929// String returns the string representation
13930func (s SessionMappingSummary) String() string {
13931	return awsutil.Prettify(s)
13932}
13933
13934// GoString returns the string representation
13935func (s SessionMappingSummary) GoString() string {
13936	return s.String()
13937}
13938
13939// SetCreationTime sets the CreationTime field's value.
13940func (s *SessionMappingSummary) SetCreationTime(v time.Time) *SessionMappingSummary {
13941	s.CreationTime = &v
13942	return s
13943}
13944
13945// SetIdentityId sets the IdentityId field's value.
13946func (s *SessionMappingSummary) SetIdentityId(v string) *SessionMappingSummary {
13947	s.IdentityId = &v
13948	return s
13949}
13950
13951// SetIdentityName sets the IdentityName field's value.
13952func (s *SessionMappingSummary) SetIdentityName(v string) *SessionMappingSummary {
13953	s.IdentityName = &v
13954	return s
13955}
13956
13957// SetIdentityType sets the IdentityType field's value.
13958func (s *SessionMappingSummary) SetIdentityType(v string) *SessionMappingSummary {
13959	s.IdentityType = &v
13960	return s
13961}
13962
13963// SetSessionPolicyArn sets the SessionPolicyArn field's value.
13964func (s *SessionMappingSummary) SetSessionPolicyArn(v string) *SessionMappingSummary {
13965	s.SessionPolicyArn = &v
13966	return s
13967}
13968
13969// SetStudioId sets the StudioId field's value.
13970func (s *SessionMappingSummary) SetStudioId(v string) *SessionMappingSummary {
13971	s.StudioId = &v
13972	return s
13973}
13974
13975// The input argument to the TerminationProtection operation.
13976type SetTerminationProtectionInput struct {
13977	_ struct{} `type:"structure"`
13978
13979	// A list of strings that uniquely identify the clusters to protect. This identifier
13980	// is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
13981	//
13982	// JobFlowIds is a required field
13983	JobFlowIds []*string `type:"list" required:"true"`
13984
13985	// A Boolean that indicates whether to protect the cluster and prevent the Amazon
13986	// EC2 instances in the cluster from shutting down due to API calls, user intervention,
13987	// or job-flow error.
13988	//
13989	// TerminationProtected is a required field
13990	TerminationProtected *bool `type:"boolean" required:"true"`
13991}
13992
13993// String returns the string representation
13994func (s SetTerminationProtectionInput) String() string {
13995	return awsutil.Prettify(s)
13996}
13997
13998// GoString returns the string representation
13999func (s SetTerminationProtectionInput) GoString() string {
14000	return s.String()
14001}
14002
14003// Validate inspects the fields of the type to determine if they are valid.
14004func (s *SetTerminationProtectionInput) Validate() error {
14005	invalidParams := request.ErrInvalidParams{Context: "SetTerminationProtectionInput"}
14006	if s.JobFlowIds == nil {
14007		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
14008	}
14009	if s.TerminationProtected == nil {
14010		invalidParams.Add(request.NewErrParamRequired("TerminationProtected"))
14011	}
14012
14013	if invalidParams.Len() > 0 {
14014		return invalidParams
14015	}
14016	return nil
14017}
14018
14019// SetJobFlowIds sets the JobFlowIds field's value.
14020func (s *SetTerminationProtectionInput) SetJobFlowIds(v []*string) *SetTerminationProtectionInput {
14021	s.JobFlowIds = v
14022	return s
14023}
14024
14025// SetTerminationProtected sets the TerminationProtected field's value.
14026func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerminationProtectionInput {
14027	s.TerminationProtected = &v
14028	return s
14029}
14030
14031type SetTerminationProtectionOutput struct {
14032	_ struct{} `type:"structure"`
14033}
14034
14035// String returns the string representation
14036func (s SetTerminationProtectionOutput) String() string {
14037	return awsutil.Prettify(s)
14038}
14039
14040// GoString returns the string representation
14041func (s SetTerminationProtectionOutput) GoString() string {
14042	return s.String()
14043}
14044
14045// The input to the SetVisibleToAllUsers action.
14046type SetVisibleToAllUsersInput struct {
14047	_ struct{} `type:"structure"`
14048
14049	// The unique identifier of the job flow (cluster).
14050	//
14051	// JobFlowIds is a required field
14052	JobFlowIds []*string `type:"list" required:"true"`
14053
14054	// A value of true indicates that all IAM users in the AWS account can perform
14055	// cluster actions if they have the proper IAM policy permissions. This is the
14056	// default. A value of false indicates that only the IAM user who created the
14057	// cluster can perform actions.
14058	//
14059	// VisibleToAllUsers is a required field
14060	VisibleToAllUsers *bool `type:"boolean" required:"true"`
14061}
14062
14063// String returns the string representation
14064func (s SetVisibleToAllUsersInput) String() string {
14065	return awsutil.Prettify(s)
14066}
14067
14068// GoString returns the string representation
14069func (s SetVisibleToAllUsersInput) GoString() string {
14070	return s.String()
14071}
14072
14073// Validate inspects the fields of the type to determine if they are valid.
14074func (s *SetVisibleToAllUsersInput) Validate() error {
14075	invalidParams := request.ErrInvalidParams{Context: "SetVisibleToAllUsersInput"}
14076	if s.JobFlowIds == nil {
14077		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
14078	}
14079	if s.VisibleToAllUsers == nil {
14080		invalidParams.Add(request.NewErrParamRequired("VisibleToAllUsers"))
14081	}
14082
14083	if invalidParams.Len() > 0 {
14084		return invalidParams
14085	}
14086	return nil
14087}
14088
14089// SetJobFlowIds sets the JobFlowIds field's value.
14090func (s *SetVisibleToAllUsersInput) SetJobFlowIds(v []*string) *SetVisibleToAllUsersInput {
14091	s.JobFlowIds = v
14092	return s
14093}
14094
14095// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
14096func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAllUsersInput {
14097	s.VisibleToAllUsers = &v
14098	return s
14099}
14100
14101type SetVisibleToAllUsersOutput struct {
14102	_ struct{} `type:"structure"`
14103}
14104
14105// String returns the string representation
14106func (s SetVisibleToAllUsersOutput) String() string {
14107	return awsutil.Prettify(s)
14108}
14109
14110// GoString returns the string representation
14111func (s SetVisibleToAllUsersOutput) GoString() string {
14112	return s.String()
14113}
14114
14115// Policy for customizing shrink operations. Allows configuration of decommissioning
14116// timeout and targeted instance shrinking.
14117type ShrinkPolicy struct {
14118	_ struct{} `type:"structure"`
14119
14120	// The desired timeout for decommissioning an instance. Overrides the default
14121	// YARN decommissioning timeout.
14122	DecommissionTimeout *int64 `type:"integer"`
14123
14124	// Custom policy for requesting termination protection or termination of specific
14125	// instances when shrinking an instance group.
14126	InstanceResizePolicy *InstanceResizePolicy `type:"structure"`
14127}
14128
14129// String returns the string representation
14130func (s ShrinkPolicy) String() string {
14131	return awsutil.Prettify(s)
14132}
14133
14134// GoString returns the string representation
14135func (s ShrinkPolicy) GoString() string {
14136	return s.String()
14137}
14138
14139// SetDecommissionTimeout sets the DecommissionTimeout field's value.
14140func (s *ShrinkPolicy) SetDecommissionTimeout(v int64) *ShrinkPolicy {
14141	s.DecommissionTimeout = &v
14142	return s
14143}
14144
14145// SetInstanceResizePolicy sets the InstanceResizePolicy field's value.
14146func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkPolicy {
14147	s.InstanceResizePolicy = v
14148	return s
14149}
14150
14151// An automatic scaling configuration, which describes how the policy adds or
14152// removes instances, the cooldown period, and the number of EC2 instances that
14153// will be added each time the CloudWatch metric alarm condition is satisfied.
14154type SimpleScalingPolicyConfiguration struct {
14155	_ struct{} `type:"structure"`
14156
14157	// The way in which EC2 instances are added (if ScalingAdjustment is a positive
14158	// number) or terminated (if ScalingAdjustment is a negative number) each time
14159	// the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY
14160	// indicates that the EC2 instance count increments or decrements by ScalingAdjustment,
14161	// which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates
14162	// the instance count increments or decrements by the percentage specified by
14163	// ScalingAdjustment, which should be expressed as an integer. For example,
14164	// 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY
14165	// indicates the scaling activity results in an instance group with the number
14166	// of EC2 instances specified by ScalingAdjustment, which should be expressed
14167	// as a positive integer.
14168	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
14169
14170	// The amount of time, in seconds, after a scaling activity completes before
14171	// any further trigger-related scaling activities can start. The default value
14172	// is 0.
14173	CoolDown *int64 `type:"integer"`
14174
14175	// The amount by which to scale in or scale out, based on the specified AdjustmentType.
14176	// A positive value adds to the instance group's EC2 instance count while a
14177	// negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY,
14178	// the number should only be a positive integer. If AdjustmentType is set to
14179	// PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an
14180	// integer. For example, -20 indicates a decrease in 20% increments of cluster
14181	// capacity.
14182	//
14183	// ScalingAdjustment is a required field
14184	ScalingAdjustment *int64 `type:"integer" required:"true"`
14185}
14186
14187// String returns the string representation
14188func (s SimpleScalingPolicyConfiguration) String() string {
14189	return awsutil.Prettify(s)
14190}
14191
14192// GoString returns the string representation
14193func (s SimpleScalingPolicyConfiguration) GoString() string {
14194	return s.String()
14195}
14196
14197// Validate inspects the fields of the type to determine if they are valid.
14198func (s *SimpleScalingPolicyConfiguration) Validate() error {
14199	invalidParams := request.ErrInvalidParams{Context: "SimpleScalingPolicyConfiguration"}
14200	if s.ScalingAdjustment == nil {
14201		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
14202	}
14203
14204	if invalidParams.Len() > 0 {
14205		return invalidParams
14206	}
14207	return nil
14208}
14209
14210// SetAdjustmentType sets the AdjustmentType field's value.
14211func (s *SimpleScalingPolicyConfiguration) SetAdjustmentType(v string) *SimpleScalingPolicyConfiguration {
14212	s.AdjustmentType = &v
14213	return s
14214}
14215
14216// SetCoolDown sets the CoolDown field's value.
14217func (s *SimpleScalingPolicyConfiguration) SetCoolDown(v int64) *SimpleScalingPolicyConfiguration {
14218	s.CoolDown = &v
14219	return s
14220}
14221
14222// SetScalingAdjustment sets the ScalingAdjustment field's value.
14223func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *SimpleScalingPolicyConfiguration {
14224	s.ScalingAdjustment = &v
14225	return s
14226}
14227
14228// The launch specification for Spot Instances in the instance fleet, which
14229// determines the defined duration, provisioning timeout behavior, and allocation
14230// strategy.
14231//
14232// The instance fleet configuration is available only in Amazon EMR versions
14233// 4.8.0 and later, excluding 5.0.x versions. Spot Instance allocation strategy
14234// is available in Amazon EMR version 5.12.1 and later.
14235type SpotProvisioningSpecification struct {
14236	_ struct{} `type:"structure"`
14237
14238	// Specifies the strategy to use in launching Spot Instance fleets. Currently,
14239	// the only option is capacity-optimized (the default), which launches instances
14240	// from Spot Instance pools with optimal capacity for the number of instances
14241	// that are launching.
14242	AllocationStrategy *string `type:"string" enum:"SpotProvisioningAllocationStrategy"`
14243
14244	// The defined duration for Spot Instances (also known as Spot blocks) in minutes.
14245	// When specified, the Spot Instance does not terminate before the defined duration
14246	// expires, and defined duration pricing for Spot Instances applies. Valid values
14247	// are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as
14248	// a Spot Instance receives its instance ID. At the end of the duration, Amazon
14249	// EC2 marks the Spot Instance for termination and provides a Spot Instance
14250	// termination notice, which gives the instance a two-minute warning before
14251	// it terminates.
14252	BlockDurationMinutes *int64 `type:"integer"`
14253
14254	// The action to take when TargetSpotCapacity has not been fulfilled when the
14255	// TimeoutDurationMinutes has expired; that is, when all Spot Instances could
14256	// not be provisioned within the Spot provisioning timeout. Valid values are
14257	// TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies
14258	// that if no Spot Instances are available, On-Demand Instances should be provisioned
14259	// to fulfill any remaining Spot capacity.
14260	//
14261	// TimeoutAction is a required field
14262	TimeoutAction *string `type:"string" required:"true" enum:"SpotProvisioningTimeoutAction"`
14263
14264	// The spot provisioning timeout period in minutes. If Spot Instances are not
14265	// provisioned within this time period, the TimeOutAction is taken. Minimum
14266	// value is 5 and maximum value is 1440. The timeout applies only during initial
14267	// provisioning, when the cluster is first created.
14268	//
14269	// TimeoutDurationMinutes is a required field
14270	TimeoutDurationMinutes *int64 `type:"integer" required:"true"`
14271}
14272
14273// String returns the string representation
14274func (s SpotProvisioningSpecification) String() string {
14275	return awsutil.Prettify(s)
14276}
14277
14278// GoString returns the string representation
14279func (s SpotProvisioningSpecification) GoString() string {
14280	return s.String()
14281}
14282
14283// Validate inspects the fields of the type to determine if they are valid.
14284func (s *SpotProvisioningSpecification) Validate() error {
14285	invalidParams := request.ErrInvalidParams{Context: "SpotProvisioningSpecification"}
14286	if s.TimeoutAction == nil {
14287		invalidParams.Add(request.NewErrParamRequired("TimeoutAction"))
14288	}
14289	if s.TimeoutDurationMinutes == nil {
14290		invalidParams.Add(request.NewErrParamRequired("TimeoutDurationMinutes"))
14291	}
14292
14293	if invalidParams.Len() > 0 {
14294		return invalidParams
14295	}
14296	return nil
14297}
14298
14299// SetAllocationStrategy sets the AllocationStrategy field's value.
14300func (s *SpotProvisioningSpecification) SetAllocationStrategy(v string) *SpotProvisioningSpecification {
14301	s.AllocationStrategy = &v
14302	return s
14303}
14304
14305// SetBlockDurationMinutes sets the BlockDurationMinutes field's value.
14306func (s *SpotProvisioningSpecification) SetBlockDurationMinutes(v int64) *SpotProvisioningSpecification {
14307	s.BlockDurationMinutes = &v
14308	return s
14309}
14310
14311// SetTimeoutAction sets the TimeoutAction field's value.
14312func (s *SpotProvisioningSpecification) SetTimeoutAction(v string) *SpotProvisioningSpecification {
14313	s.TimeoutAction = &v
14314	return s
14315}
14316
14317// SetTimeoutDurationMinutes sets the TimeoutDurationMinutes field's value.
14318func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *SpotProvisioningSpecification {
14319	s.TimeoutDurationMinutes = &v
14320	return s
14321}
14322
14323type StartNotebookExecutionInput struct {
14324	_ struct{} `type:"structure"`
14325
14326	// The unique identifier of the EMR Notebook to use for notebook execution.
14327	//
14328	// EditorId is a required field
14329	EditorId *string `type:"string" required:"true"`
14330
14331	// Specifies the execution engine (cluster) that runs the notebook execution.
14332	//
14333	// ExecutionEngine is a required field
14334	ExecutionEngine *ExecutionEngineConfig `type:"structure" required:"true"`
14335
14336	// An optional name for the notebook execution.
14337	NotebookExecutionName *string `type:"string"`
14338
14339	// The unique identifier of the Amazon EC2 security group to associate with
14340	// the EMR Notebook for this notebook execution.
14341	NotebookInstanceSecurityGroupId *string `type:"string"`
14342
14343	// Input parameters in JSON format passed to the EMR Notebook at runtime for
14344	// execution.
14345	NotebookParams *string `type:"string"`
14346
14347	// The path and file name of the notebook file for this execution, relative
14348	// to the path specified for the EMR Notebook. For example, if you specify a
14349	// path of s3://MyBucket/MyNotebooks when you create an EMR Notebook for a notebook
14350	// with an ID of e-ABCDEFGHIJK1234567890ABCD (the EditorID of this request),
14351	// and you specify a RelativePath of my_notebook_executions/notebook_execution.ipynb,
14352	// the location of the file for the notebook execution is s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb.
14353	//
14354	// RelativePath is a required field
14355	RelativePath *string `type:"string" required:"true"`
14356
14357	// The name or ARN of the IAM role that is used as the service role for Amazon
14358	// EMR (the EMR role) for the notebook execution.
14359	//
14360	// ServiceRole is a required field
14361	ServiceRole *string `type:"string" required:"true"`
14362
14363	// A list of tags associated with a notebook execution. Tags are user-defined
14364	// key-value pairs that consist of a required key string with a maximum of 128
14365	// characters and an optional value string with a maximum of 256 characters.
14366	Tags []*Tag `type:"list"`
14367}
14368
14369// String returns the string representation
14370func (s StartNotebookExecutionInput) String() string {
14371	return awsutil.Prettify(s)
14372}
14373
14374// GoString returns the string representation
14375func (s StartNotebookExecutionInput) GoString() string {
14376	return s.String()
14377}
14378
14379// Validate inspects the fields of the type to determine if they are valid.
14380func (s *StartNotebookExecutionInput) Validate() error {
14381	invalidParams := request.ErrInvalidParams{Context: "StartNotebookExecutionInput"}
14382	if s.EditorId == nil {
14383		invalidParams.Add(request.NewErrParamRequired("EditorId"))
14384	}
14385	if s.ExecutionEngine == nil {
14386		invalidParams.Add(request.NewErrParamRequired("ExecutionEngine"))
14387	}
14388	if s.RelativePath == nil {
14389		invalidParams.Add(request.NewErrParamRequired("RelativePath"))
14390	}
14391	if s.ServiceRole == nil {
14392		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
14393	}
14394	if s.ExecutionEngine != nil {
14395		if err := s.ExecutionEngine.Validate(); err != nil {
14396			invalidParams.AddNested("ExecutionEngine", err.(request.ErrInvalidParams))
14397		}
14398	}
14399
14400	if invalidParams.Len() > 0 {
14401		return invalidParams
14402	}
14403	return nil
14404}
14405
14406// SetEditorId sets the EditorId field's value.
14407func (s *StartNotebookExecutionInput) SetEditorId(v string) *StartNotebookExecutionInput {
14408	s.EditorId = &v
14409	return s
14410}
14411
14412// SetExecutionEngine sets the ExecutionEngine field's value.
14413func (s *StartNotebookExecutionInput) SetExecutionEngine(v *ExecutionEngineConfig) *StartNotebookExecutionInput {
14414	s.ExecutionEngine = v
14415	return s
14416}
14417
14418// SetNotebookExecutionName sets the NotebookExecutionName field's value.
14419func (s *StartNotebookExecutionInput) SetNotebookExecutionName(v string) *StartNotebookExecutionInput {
14420	s.NotebookExecutionName = &v
14421	return s
14422}
14423
14424// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
14425func (s *StartNotebookExecutionInput) SetNotebookInstanceSecurityGroupId(v string) *StartNotebookExecutionInput {
14426	s.NotebookInstanceSecurityGroupId = &v
14427	return s
14428}
14429
14430// SetNotebookParams sets the NotebookParams field's value.
14431func (s *StartNotebookExecutionInput) SetNotebookParams(v string) *StartNotebookExecutionInput {
14432	s.NotebookParams = &v
14433	return s
14434}
14435
14436// SetRelativePath sets the RelativePath field's value.
14437func (s *StartNotebookExecutionInput) SetRelativePath(v string) *StartNotebookExecutionInput {
14438	s.RelativePath = &v
14439	return s
14440}
14441
14442// SetServiceRole sets the ServiceRole field's value.
14443func (s *StartNotebookExecutionInput) SetServiceRole(v string) *StartNotebookExecutionInput {
14444	s.ServiceRole = &v
14445	return s
14446}
14447
14448// SetTags sets the Tags field's value.
14449func (s *StartNotebookExecutionInput) SetTags(v []*Tag) *StartNotebookExecutionInput {
14450	s.Tags = v
14451	return s
14452}
14453
14454type StartNotebookExecutionOutput struct {
14455	_ struct{} `type:"structure"`
14456
14457	// The unique identifier of the notebook execution.
14458	NotebookExecutionId *string `type:"string"`
14459}
14460
14461// String returns the string representation
14462func (s StartNotebookExecutionOutput) String() string {
14463	return awsutil.Prettify(s)
14464}
14465
14466// GoString returns the string representation
14467func (s StartNotebookExecutionOutput) GoString() string {
14468	return s.String()
14469}
14470
14471// SetNotebookExecutionId sets the NotebookExecutionId field's value.
14472func (s *StartNotebookExecutionOutput) SetNotebookExecutionId(v string) *StartNotebookExecutionOutput {
14473	s.NotebookExecutionId = &v
14474	return s
14475}
14476
14477// This represents a step in a cluster.
14478type Step struct {
14479	_ struct{} `type:"structure"`
14480
14481	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
14482	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
14483	// compatibility. We recommend using TERMINATE_CLUSTER instead.
14484	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
14485
14486	// The Hadoop job configuration of the cluster step.
14487	Config *HadoopStepConfig `type:"structure"`
14488
14489	// The identifier of the cluster step.
14490	Id *string `type:"string"`
14491
14492	// The name of the cluster step.
14493	Name *string `type:"string"`
14494
14495	// The current execution status details of the cluster step.
14496	Status *StepStatus `type:"structure"`
14497}
14498
14499// String returns the string representation
14500func (s Step) String() string {
14501	return awsutil.Prettify(s)
14502}
14503
14504// GoString returns the string representation
14505func (s Step) GoString() string {
14506	return s.String()
14507}
14508
14509// SetActionOnFailure sets the ActionOnFailure field's value.
14510func (s *Step) SetActionOnFailure(v string) *Step {
14511	s.ActionOnFailure = &v
14512	return s
14513}
14514
14515// SetConfig sets the Config field's value.
14516func (s *Step) SetConfig(v *HadoopStepConfig) *Step {
14517	s.Config = v
14518	return s
14519}
14520
14521// SetId sets the Id field's value.
14522func (s *Step) SetId(v string) *Step {
14523	s.Id = &v
14524	return s
14525}
14526
14527// SetName sets the Name field's value.
14528func (s *Step) SetName(v string) *Step {
14529	s.Name = &v
14530	return s
14531}
14532
14533// SetStatus sets the Status field's value.
14534func (s *Step) SetStatus(v *StepStatus) *Step {
14535	s.Status = v
14536	return s
14537}
14538
14539// Specification of a cluster (job flow) step.
14540type StepConfig struct {
14541	_ struct{} `type:"structure"`
14542
14543	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
14544	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
14545	// compatibility. We recommend using TERMINATE_CLUSTER instead.
14546	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
14547
14548	// The JAR file used for the step.
14549	//
14550	// HadoopJarStep is a required field
14551	HadoopJarStep *HadoopJarStepConfig `type:"structure" required:"true"`
14552
14553	// The name of the step.
14554	//
14555	// Name is a required field
14556	Name *string `type:"string" required:"true"`
14557}
14558
14559// String returns the string representation
14560func (s StepConfig) String() string {
14561	return awsutil.Prettify(s)
14562}
14563
14564// GoString returns the string representation
14565func (s StepConfig) GoString() string {
14566	return s.String()
14567}
14568
14569// Validate inspects the fields of the type to determine if they are valid.
14570func (s *StepConfig) Validate() error {
14571	invalidParams := request.ErrInvalidParams{Context: "StepConfig"}
14572	if s.HadoopJarStep == nil {
14573		invalidParams.Add(request.NewErrParamRequired("HadoopJarStep"))
14574	}
14575	if s.Name == nil {
14576		invalidParams.Add(request.NewErrParamRequired("Name"))
14577	}
14578	if s.HadoopJarStep != nil {
14579		if err := s.HadoopJarStep.Validate(); err != nil {
14580			invalidParams.AddNested("HadoopJarStep", err.(request.ErrInvalidParams))
14581		}
14582	}
14583
14584	if invalidParams.Len() > 0 {
14585		return invalidParams
14586	}
14587	return nil
14588}
14589
14590// SetActionOnFailure sets the ActionOnFailure field's value.
14591func (s *StepConfig) SetActionOnFailure(v string) *StepConfig {
14592	s.ActionOnFailure = &v
14593	return s
14594}
14595
14596// SetHadoopJarStep sets the HadoopJarStep field's value.
14597func (s *StepConfig) SetHadoopJarStep(v *HadoopJarStepConfig) *StepConfig {
14598	s.HadoopJarStep = v
14599	return s
14600}
14601
14602// SetName sets the Name field's value.
14603func (s *StepConfig) SetName(v string) *StepConfig {
14604	s.Name = &v
14605	return s
14606}
14607
14608// Combines the execution state and configuration of a step.
14609type StepDetail struct {
14610	_ struct{} `type:"structure"`
14611
14612	// The description of the step status.
14613	//
14614	// ExecutionStatusDetail is a required field
14615	ExecutionStatusDetail *StepExecutionStatusDetail `type:"structure" required:"true"`
14616
14617	// The step configuration.
14618	//
14619	// StepConfig is a required field
14620	StepConfig *StepConfig `type:"structure" required:"true"`
14621}
14622
14623// String returns the string representation
14624func (s StepDetail) String() string {
14625	return awsutil.Prettify(s)
14626}
14627
14628// GoString returns the string representation
14629func (s StepDetail) GoString() string {
14630	return s.String()
14631}
14632
14633// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
14634func (s *StepDetail) SetExecutionStatusDetail(v *StepExecutionStatusDetail) *StepDetail {
14635	s.ExecutionStatusDetail = v
14636	return s
14637}
14638
14639// SetStepConfig sets the StepConfig field's value.
14640func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail {
14641	s.StepConfig = v
14642	return s
14643}
14644
14645// The execution state of a step.
14646type StepExecutionStatusDetail struct {
14647	_ struct{} `type:"structure"`
14648
14649	// The creation date and time of the step.
14650	//
14651	// CreationDateTime is a required field
14652	CreationDateTime *time.Time `type:"timestamp" required:"true"`
14653
14654	// The completion date and time of the step.
14655	EndDateTime *time.Time `type:"timestamp"`
14656
14657	// A description of the step's current state.
14658	LastStateChangeReason *string `type:"string"`
14659
14660	// The start date and time of the step.
14661	StartDateTime *time.Time `type:"timestamp"`
14662
14663	// The state of the step.
14664	//
14665	// State is a required field
14666	State *string `type:"string" required:"true" enum:"StepExecutionState"`
14667}
14668
14669// String returns the string representation
14670func (s StepExecutionStatusDetail) String() string {
14671	return awsutil.Prettify(s)
14672}
14673
14674// GoString returns the string representation
14675func (s StepExecutionStatusDetail) GoString() string {
14676	return s.String()
14677}
14678
14679// SetCreationDateTime sets the CreationDateTime field's value.
14680func (s *StepExecutionStatusDetail) SetCreationDateTime(v time.Time) *StepExecutionStatusDetail {
14681	s.CreationDateTime = &v
14682	return s
14683}
14684
14685// SetEndDateTime sets the EndDateTime field's value.
14686func (s *StepExecutionStatusDetail) SetEndDateTime(v time.Time) *StepExecutionStatusDetail {
14687	s.EndDateTime = &v
14688	return s
14689}
14690
14691// SetLastStateChangeReason sets the LastStateChangeReason field's value.
14692func (s *StepExecutionStatusDetail) SetLastStateChangeReason(v string) *StepExecutionStatusDetail {
14693	s.LastStateChangeReason = &v
14694	return s
14695}
14696
14697// SetStartDateTime sets the StartDateTime field's value.
14698func (s *StepExecutionStatusDetail) SetStartDateTime(v time.Time) *StepExecutionStatusDetail {
14699	s.StartDateTime = &v
14700	return s
14701}
14702
14703// SetState sets the State field's value.
14704func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetail {
14705	s.State = &v
14706	return s
14707}
14708
14709// The details of the step state change reason.
14710type StepStateChangeReason struct {
14711	_ struct{} `type:"structure"`
14712
14713	// The programmable code for the state change reason. Note: Currently, the service
14714	// provides no code for the state change.
14715	Code *string `type:"string" enum:"StepStateChangeReasonCode"`
14716
14717	// The descriptive message for the state change reason.
14718	Message *string `type:"string"`
14719}
14720
14721// String returns the string representation
14722func (s StepStateChangeReason) String() string {
14723	return awsutil.Prettify(s)
14724}
14725
14726// GoString returns the string representation
14727func (s StepStateChangeReason) GoString() string {
14728	return s.String()
14729}
14730
14731// SetCode sets the Code field's value.
14732func (s *StepStateChangeReason) SetCode(v string) *StepStateChangeReason {
14733	s.Code = &v
14734	return s
14735}
14736
14737// SetMessage sets the Message field's value.
14738func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason {
14739	s.Message = &v
14740	return s
14741}
14742
14743// The execution status details of the cluster step.
14744type StepStatus struct {
14745	_ struct{} `type:"structure"`
14746
14747	// The details for the step failure including reason, message, and log file
14748	// path where the root cause was identified.
14749	FailureDetails *FailureDetails `type:"structure"`
14750
14751	// The execution state of the cluster step.
14752	State *string `type:"string" enum:"StepState"`
14753
14754	// The reason for the step execution status change.
14755	StateChangeReason *StepStateChangeReason `type:"structure"`
14756
14757	// The timeline of the cluster step status over time.
14758	Timeline *StepTimeline `type:"structure"`
14759}
14760
14761// String returns the string representation
14762func (s StepStatus) String() string {
14763	return awsutil.Prettify(s)
14764}
14765
14766// GoString returns the string representation
14767func (s StepStatus) GoString() string {
14768	return s.String()
14769}
14770
14771// SetFailureDetails sets the FailureDetails field's value.
14772func (s *StepStatus) SetFailureDetails(v *FailureDetails) *StepStatus {
14773	s.FailureDetails = v
14774	return s
14775}
14776
14777// SetState sets the State field's value.
14778func (s *StepStatus) SetState(v string) *StepStatus {
14779	s.State = &v
14780	return s
14781}
14782
14783// SetStateChangeReason sets the StateChangeReason field's value.
14784func (s *StepStatus) SetStateChangeReason(v *StepStateChangeReason) *StepStatus {
14785	s.StateChangeReason = v
14786	return s
14787}
14788
14789// SetTimeline sets the Timeline field's value.
14790func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus {
14791	s.Timeline = v
14792	return s
14793}
14794
14795// The summary of the cluster step.
14796type StepSummary struct {
14797	_ struct{} `type:"structure"`
14798
14799	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
14800	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is available for backward
14801	// compatibility. We recommend using TERMINATE_CLUSTER instead.
14802	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
14803
14804	// The Hadoop job configuration of the cluster step.
14805	Config *HadoopStepConfig `type:"structure"`
14806
14807	// The identifier of the cluster step.
14808	Id *string `type:"string"`
14809
14810	// The name of the cluster step.
14811	Name *string `type:"string"`
14812
14813	// The current execution status details of the cluster step.
14814	Status *StepStatus `type:"structure"`
14815}
14816
14817// String returns the string representation
14818func (s StepSummary) String() string {
14819	return awsutil.Prettify(s)
14820}
14821
14822// GoString returns the string representation
14823func (s StepSummary) GoString() string {
14824	return s.String()
14825}
14826
14827// SetActionOnFailure sets the ActionOnFailure field's value.
14828func (s *StepSummary) SetActionOnFailure(v string) *StepSummary {
14829	s.ActionOnFailure = &v
14830	return s
14831}
14832
14833// SetConfig sets the Config field's value.
14834func (s *StepSummary) SetConfig(v *HadoopStepConfig) *StepSummary {
14835	s.Config = v
14836	return s
14837}
14838
14839// SetId sets the Id field's value.
14840func (s *StepSummary) SetId(v string) *StepSummary {
14841	s.Id = &v
14842	return s
14843}
14844
14845// SetName sets the Name field's value.
14846func (s *StepSummary) SetName(v string) *StepSummary {
14847	s.Name = &v
14848	return s
14849}
14850
14851// SetStatus sets the Status field's value.
14852func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary {
14853	s.Status = v
14854	return s
14855}
14856
14857// The timeline of the cluster step lifecycle.
14858type StepTimeline struct {
14859	_ struct{} `type:"structure"`
14860
14861	// The date and time when the cluster step was created.
14862	CreationDateTime *time.Time `type:"timestamp"`
14863
14864	// The date and time when the cluster step execution completed or failed.
14865	EndDateTime *time.Time `type:"timestamp"`
14866
14867	// The date and time when the cluster step execution started.
14868	StartDateTime *time.Time `type:"timestamp"`
14869}
14870
14871// String returns the string representation
14872func (s StepTimeline) String() string {
14873	return awsutil.Prettify(s)
14874}
14875
14876// GoString returns the string representation
14877func (s StepTimeline) GoString() string {
14878	return s.String()
14879}
14880
14881// SetCreationDateTime sets the CreationDateTime field's value.
14882func (s *StepTimeline) SetCreationDateTime(v time.Time) *StepTimeline {
14883	s.CreationDateTime = &v
14884	return s
14885}
14886
14887// SetEndDateTime sets the EndDateTime field's value.
14888func (s *StepTimeline) SetEndDateTime(v time.Time) *StepTimeline {
14889	s.EndDateTime = &v
14890	return s
14891}
14892
14893// SetStartDateTime sets the StartDateTime field's value.
14894func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline {
14895	s.StartDateTime = &v
14896	return s
14897}
14898
14899type StopNotebookExecutionInput struct {
14900	_ struct{} `type:"structure"`
14901
14902	// The unique identifier of the notebook execution.
14903	//
14904	// NotebookExecutionId is a required field
14905	NotebookExecutionId *string `type:"string" required:"true"`
14906}
14907
14908// String returns the string representation
14909func (s StopNotebookExecutionInput) String() string {
14910	return awsutil.Prettify(s)
14911}
14912
14913// GoString returns the string representation
14914func (s StopNotebookExecutionInput) GoString() string {
14915	return s.String()
14916}
14917
14918// Validate inspects the fields of the type to determine if they are valid.
14919func (s *StopNotebookExecutionInput) Validate() error {
14920	invalidParams := request.ErrInvalidParams{Context: "StopNotebookExecutionInput"}
14921	if s.NotebookExecutionId == nil {
14922		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
14923	}
14924
14925	if invalidParams.Len() > 0 {
14926		return invalidParams
14927	}
14928	return nil
14929}
14930
14931// SetNotebookExecutionId sets the NotebookExecutionId field's value.
14932func (s *StopNotebookExecutionInput) SetNotebookExecutionId(v string) *StopNotebookExecutionInput {
14933	s.NotebookExecutionId = &v
14934	return s
14935}
14936
14937type StopNotebookExecutionOutput struct {
14938	_ struct{} `type:"structure"`
14939}
14940
14941// String returns the string representation
14942func (s StopNotebookExecutionOutput) String() string {
14943	return awsutil.Prettify(s)
14944}
14945
14946// GoString returns the string representation
14947func (s StopNotebookExecutionOutput) GoString() string {
14948	return s.String()
14949}
14950
14951// Details for an Amazon EMR Studio including ID, creation time, name, and so
14952// on.
14953type Studio struct {
14954	_ struct{} `type:"structure"`
14955
14956	// Specifies whether the Amazon EMR Studio authenticates users using single
14957	// sign-on (SSO) or IAM.
14958	AuthMode *string `type:"string" enum:"AuthMode"`
14959
14960	// The time the Amazon EMR Studio was created.
14961	CreationTime *time.Time `type:"timestamp"`
14962
14963	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
14964	// files.
14965	DefaultS3Location *string `type:"string"`
14966
14967	// The detailed description of the Amazon EMR Studio.
14968	Description *string `type:"string"`
14969
14970	// The ID of the Engine security group associated with the Amazon EMR Studio.
14971	// The Engine security group allows inbound network traffic from resources in
14972	// the Workspace security group.
14973	EngineSecurityGroupId *string `type:"string"`
14974
14975	// The name of the Amazon EMR Studio.
14976	Name *string `type:"string"`
14977
14978	// The name of the IAM role assumed by the Amazon EMR Studio.
14979	ServiceRole *string `type:"string"`
14980
14981	// The Amazon Resource Name (ARN) of the Amazon EMR Studio.
14982	StudioArn *string `type:"string"`
14983
14984	// The ID of the Amazon EMR Studio.
14985	StudioId *string `type:"string"`
14986
14987	// The list of IDs of the subnets associated with the Amazon EMR Studio.
14988	SubnetIds []*string `type:"list"`
14989
14990	// A list of tags associated with the Amazon EMR Studio.
14991	Tags []*Tag `type:"list"`
14992
14993	// The unique access URL of the Amazon EMR Studio.
14994	Url *string `type:"string"`
14995
14996	// The name of the IAM role assumed by users logged in to the Amazon EMR Studio.
14997	UserRole *string `type:"string"`
14998
14999	// The ID of the VPC associated with the Amazon EMR Studio.
15000	VpcId *string `type:"string"`
15001
15002	// The ID of the Workspace security group associated with the Amazon EMR Studio.
15003	// The Workspace security group allows outbound network traffic to resources
15004	// in the Engine security group and to the internet.
15005	WorkspaceSecurityGroupId *string `type:"string"`
15006}
15007
15008// String returns the string representation
15009func (s Studio) String() string {
15010	return awsutil.Prettify(s)
15011}
15012
15013// GoString returns the string representation
15014func (s Studio) GoString() string {
15015	return s.String()
15016}
15017
15018// SetAuthMode sets the AuthMode field's value.
15019func (s *Studio) SetAuthMode(v string) *Studio {
15020	s.AuthMode = &v
15021	return s
15022}
15023
15024// SetCreationTime sets the CreationTime field's value.
15025func (s *Studio) SetCreationTime(v time.Time) *Studio {
15026	s.CreationTime = &v
15027	return s
15028}
15029
15030// SetDefaultS3Location sets the DefaultS3Location field's value.
15031func (s *Studio) SetDefaultS3Location(v string) *Studio {
15032	s.DefaultS3Location = &v
15033	return s
15034}
15035
15036// SetDescription sets the Description field's value.
15037func (s *Studio) SetDescription(v string) *Studio {
15038	s.Description = &v
15039	return s
15040}
15041
15042// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
15043func (s *Studio) SetEngineSecurityGroupId(v string) *Studio {
15044	s.EngineSecurityGroupId = &v
15045	return s
15046}
15047
15048// SetName sets the Name field's value.
15049func (s *Studio) SetName(v string) *Studio {
15050	s.Name = &v
15051	return s
15052}
15053
15054// SetServiceRole sets the ServiceRole field's value.
15055func (s *Studio) SetServiceRole(v string) *Studio {
15056	s.ServiceRole = &v
15057	return s
15058}
15059
15060// SetStudioArn sets the StudioArn field's value.
15061func (s *Studio) SetStudioArn(v string) *Studio {
15062	s.StudioArn = &v
15063	return s
15064}
15065
15066// SetStudioId sets the StudioId field's value.
15067func (s *Studio) SetStudioId(v string) *Studio {
15068	s.StudioId = &v
15069	return s
15070}
15071
15072// SetSubnetIds sets the SubnetIds field's value.
15073func (s *Studio) SetSubnetIds(v []*string) *Studio {
15074	s.SubnetIds = v
15075	return s
15076}
15077
15078// SetTags sets the Tags field's value.
15079func (s *Studio) SetTags(v []*Tag) *Studio {
15080	s.Tags = v
15081	return s
15082}
15083
15084// SetUrl sets the Url field's value.
15085func (s *Studio) SetUrl(v string) *Studio {
15086	s.Url = &v
15087	return s
15088}
15089
15090// SetUserRole sets the UserRole field's value.
15091func (s *Studio) SetUserRole(v string) *Studio {
15092	s.UserRole = &v
15093	return s
15094}
15095
15096// SetVpcId sets the VpcId field's value.
15097func (s *Studio) SetVpcId(v string) *Studio {
15098	s.VpcId = &v
15099	return s
15100}
15101
15102// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
15103func (s *Studio) SetWorkspaceSecurityGroupId(v string) *Studio {
15104	s.WorkspaceSecurityGroupId = &v
15105	return s
15106}
15107
15108// Details for an Amazon EMR Studio, including ID, Name, VPC, and Description.
15109// The details do not include subnets, IAM roles, security groups, or tags associated
15110// with the Studio.
15111type StudioSummary struct {
15112	_ struct{} `type:"structure"`
15113
15114	// The time when the Amazon EMR Studio was created.
15115	CreationTime *time.Time `type:"timestamp"`
15116
15117	// The detailed description of the Amazon EMR Studio.
15118	Description *string `type:"string"`
15119
15120	// The name of the Amazon EMR Studio.
15121	Name *string `type:"string"`
15122
15123	// The ID of the Amazon EMR Studio.
15124	StudioId *string `type:"string"`
15125
15126	// The unique access URL of the Amazon EMR Studio.
15127	Url *string `type:"string"`
15128
15129	// The ID of the Virtual Private Cloud (Amazon VPC) associated with the Amazon
15130	// EMR Studio.
15131	VpcId *string `type:"string"`
15132}
15133
15134// String returns the string representation
15135func (s StudioSummary) String() string {
15136	return awsutil.Prettify(s)
15137}
15138
15139// GoString returns the string representation
15140func (s StudioSummary) GoString() string {
15141	return s.String()
15142}
15143
15144// SetCreationTime sets the CreationTime field's value.
15145func (s *StudioSummary) SetCreationTime(v time.Time) *StudioSummary {
15146	s.CreationTime = &v
15147	return s
15148}
15149
15150// SetDescription sets the Description field's value.
15151func (s *StudioSummary) SetDescription(v string) *StudioSummary {
15152	s.Description = &v
15153	return s
15154}
15155
15156// SetName sets the Name field's value.
15157func (s *StudioSummary) SetName(v string) *StudioSummary {
15158	s.Name = &v
15159	return s
15160}
15161
15162// SetStudioId sets the StudioId field's value.
15163func (s *StudioSummary) SetStudioId(v string) *StudioSummary {
15164	s.StudioId = &v
15165	return s
15166}
15167
15168// SetUrl sets the Url field's value.
15169func (s *StudioSummary) SetUrl(v string) *StudioSummary {
15170	s.Url = &v
15171	return s
15172}
15173
15174// SetVpcId sets the VpcId field's value.
15175func (s *StudioSummary) SetVpcId(v string) *StudioSummary {
15176	s.VpcId = &v
15177	return s
15178}
15179
15180// The list of supported product configurations that allow user-supplied arguments.
15181// EMR accepts these arguments and forwards them to the corresponding installation
15182// script as bootstrap action arguments.
15183type SupportedProductConfig struct {
15184	_ struct{} `type:"structure"`
15185
15186	// The list of user-supplied arguments.
15187	Args []*string `type:"list"`
15188
15189	// The name of the product configuration.
15190	Name *string `type:"string"`
15191}
15192
15193// String returns the string representation
15194func (s SupportedProductConfig) String() string {
15195	return awsutil.Prettify(s)
15196}
15197
15198// GoString returns the string representation
15199func (s SupportedProductConfig) GoString() string {
15200	return s.String()
15201}
15202
15203// SetArgs sets the Args field's value.
15204func (s *SupportedProductConfig) SetArgs(v []*string) *SupportedProductConfig {
15205	s.Args = v
15206	return s
15207}
15208
15209// SetName sets the Name field's value.
15210func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig {
15211	s.Name = &v
15212	return s
15213}
15214
15215// A key-value pair containing user-defined metadata that you can associate
15216// with an Amazon EMR resource. Tags make it easier to associate clusters in
15217// various ways, such as grouping clusters to track your Amazon EMR resource
15218// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15219type Tag struct {
15220	_ struct{} `type:"structure"`
15221
15222	// A user-defined key, which is the minimum required information for a valid
15223	// tag. For more information, see Tag (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15224	Key *string `type:"string"`
15225
15226	// A user-defined value, which is optional in a tag. For more information, see
15227	// Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15228	Value *string `type:"string"`
15229}
15230
15231// String returns the string representation
15232func (s Tag) String() string {
15233	return awsutil.Prettify(s)
15234}
15235
15236// GoString returns the string representation
15237func (s Tag) GoString() string {
15238	return s.String()
15239}
15240
15241// SetKey sets the Key field's value.
15242func (s *Tag) SetKey(v string) *Tag {
15243	s.Key = &v
15244	return s
15245}
15246
15247// SetValue sets the Value field's value.
15248func (s *Tag) SetValue(v string) *Tag {
15249	s.Value = &v
15250	return s
15251}
15252
15253// Input to the TerminateJobFlows operation.
15254type TerminateJobFlowsInput struct {
15255	_ struct{} `type:"structure"`
15256
15257	// A list of job flows to be shut down.
15258	//
15259	// JobFlowIds is a required field
15260	JobFlowIds []*string `type:"list" required:"true"`
15261}
15262
15263// String returns the string representation
15264func (s TerminateJobFlowsInput) String() string {
15265	return awsutil.Prettify(s)
15266}
15267
15268// GoString returns the string representation
15269func (s TerminateJobFlowsInput) GoString() string {
15270	return s.String()
15271}
15272
15273// Validate inspects the fields of the type to determine if they are valid.
15274func (s *TerminateJobFlowsInput) Validate() error {
15275	invalidParams := request.ErrInvalidParams{Context: "TerminateJobFlowsInput"}
15276	if s.JobFlowIds == nil {
15277		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
15278	}
15279
15280	if invalidParams.Len() > 0 {
15281		return invalidParams
15282	}
15283	return nil
15284}
15285
15286// SetJobFlowIds sets the JobFlowIds field's value.
15287func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsInput {
15288	s.JobFlowIds = v
15289	return s
15290}
15291
15292type TerminateJobFlowsOutput struct {
15293	_ struct{} `type:"structure"`
15294}
15295
15296// String returns the string representation
15297func (s TerminateJobFlowsOutput) String() string {
15298	return awsutil.Prettify(s)
15299}
15300
15301// GoString returns the string representation
15302func (s TerminateJobFlowsOutput) GoString() string {
15303	return s.String()
15304}
15305
15306type UpdateStudioInput struct {
15307	_ struct{} `type:"structure"`
15308
15309	// The Amazon S3 location to back up Workspaces and notebook files for the Amazon
15310	// EMR Studio.
15311	DefaultS3Location *string `type:"string"`
15312
15313	// A detailed description to assign to the Amazon EMR Studio.
15314	Description *string `type:"string"`
15315
15316	// A descriptive name for the Amazon EMR Studio.
15317	Name *string `type:"string"`
15318
15319	// The ID of the Amazon EMR Studio to update.
15320	//
15321	// StudioId is a required field
15322	StudioId *string `type:"string" required:"true"`
15323
15324	// A list of subnet IDs to associate with the Amazon EMR Studio. The list can
15325	// include new subnet IDs, but must also include all of the subnet IDs previously
15326	// associated with the Studio. The list order does not matter. A Studio can
15327	// have a maximum of 5 subnets. The subnets must belong to the same VPC as the
15328	// Studio.
15329	SubnetIds []*string `type:"list"`
15330}
15331
15332// String returns the string representation
15333func (s UpdateStudioInput) String() string {
15334	return awsutil.Prettify(s)
15335}
15336
15337// GoString returns the string representation
15338func (s UpdateStudioInput) GoString() string {
15339	return s.String()
15340}
15341
15342// Validate inspects the fields of the type to determine if they are valid.
15343func (s *UpdateStudioInput) Validate() error {
15344	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioInput"}
15345	if s.StudioId == nil {
15346		invalidParams.Add(request.NewErrParamRequired("StudioId"))
15347	}
15348
15349	if invalidParams.Len() > 0 {
15350		return invalidParams
15351	}
15352	return nil
15353}
15354
15355// SetDefaultS3Location sets the DefaultS3Location field's value.
15356func (s *UpdateStudioInput) SetDefaultS3Location(v string) *UpdateStudioInput {
15357	s.DefaultS3Location = &v
15358	return s
15359}
15360
15361// SetDescription sets the Description field's value.
15362func (s *UpdateStudioInput) SetDescription(v string) *UpdateStudioInput {
15363	s.Description = &v
15364	return s
15365}
15366
15367// SetName sets the Name field's value.
15368func (s *UpdateStudioInput) SetName(v string) *UpdateStudioInput {
15369	s.Name = &v
15370	return s
15371}
15372
15373// SetStudioId sets the StudioId field's value.
15374func (s *UpdateStudioInput) SetStudioId(v string) *UpdateStudioInput {
15375	s.StudioId = &v
15376	return s
15377}
15378
15379// SetSubnetIds sets the SubnetIds field's value.
15380func (s *UpdateStudioInput) SetSubnetIds(v []*string) *UpdateStudioInput {
15381	s.SubnetIds = v
15382	return s
15383}
15384
15385type UpdateStudioOutput struct {
15386	_ struct{} `type:"structure"`
15387}
15388
15389// String returns the string representation
15390func (s UpdateStudioOutput) String() string {
15391	return awsutil.Prettify(s)
15392}
15393
15394// GoString returns the string representation
15395func (s UpdateStudioOutput) GoString() string {
15396	return s.String()
15397}
15398
15399type UpdateStudioSessionMappingInput struct {
15400	_ struct{} `type:"structure"`
15401
15402	// The globally unique identifier (GUID) of the user or group. For more information,
15403	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
15404	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
15405	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
15406	// must be specified.
15407	IdentityId *string `type:"string"`
15408
15409	// The name of the user or group to update. For more information, see UserName
15410	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
15411	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
15412	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
15413	// must be specified.
15414	IdentityName *string `type:"string"`
15415
15416	// Specifies whether the identity to update is a user or a group.
15417	//
15418	// IdentityType is a required field
15419	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
15420
15421	// The Amazon Resource Name (ARN) of the session policy to associate with the
15422	// specified user or group.
15423	//
15424	// SessionPolicyArn is a required field
15425	SessionPolicyArn *string `type:"string" required:"true"`
15426
15427	// The ID of the Amazon EMR Studio.
15428	//
15429	// StudioId is a required field
15430	StudioId *string `type:"string" required:"true"`
15431}
15432
15433// String returns the string representation
15434func (s UpdateStudioSessionMappingInput) String() string {
15435	return awsutil.Prettify(s)
15436}
15437
15438// GoString returns the string representation
15439func (s UpdateStudioSessionMappingInput) GoString() string {
15440	return s.String()
15441}
15442
15443// Validate inspects the fields of the type to determine if they are valid.
15444func (s *UpdateStudioSessionMappingInput) Validate() error {
15445	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioSessionMappingInput"}
15446	if s.IdentityType == nil {
15447		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
15448	}
15449	if s.SessionPolicyArn == nil {
15450		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
15451	}
15452	if s.StudioId == nil {
15453		invalidParams.Add(request.NewErrParamRequired("StudioId"))
15454	}
15455
15456	if invalidParams.Len() > 0 {
15457		return invalidParams
15458	}
15459	return nil
15460}
15461
15462// SetIdentityId sets the IdentityId field's value.
15463func (s *UpdateStudioSessionMappingInput) SetIdentityId(v string) *UpdateStudioSessionMappingInput {
15464	s.IdentityId = &v
15465	return s
15466}
15467
15468// SetIdentityName sets the IdentityName field's value.
15469func (s *UpdateStudioSessionMappingInput) SetIdentityName(v string) *UpdateStudioSessionMappingInput {
15470	s.IdentityName = &v
15471	return s
15472}
15473
15474// SetIdentityType sets the IdentityType field's value.
15475func (s *UpdateStudioSessionMappingInput) SetIdentityType(v string) *UpdateStudioSessionMappingInput {
15476	s.IdentityType = &v
15477	return s
15478}
15479
15480// SetSessionPolicyArn sets the SessionPolicyArn field's value.
15481func (s *UpdateStudioSessionMappingInput) SetSessionPolicyArn(v string) *UpdateStudioSessionMappingInput {
15482	s.SessionPolicyArn = &v
15483	return s
15484}
15485
15486// SetStudioId sets the StudioId field's value.
15487func (s *UpdateStudioSessionMappingInput) SetStudioId(v string) *UpdateStudioSessionMappingInput {
15488	s.StudioId = &v
15489	return s
15490}
15491
15492type UpdateStudioSessionMappingOutput struct {
15493	_ struct{} `type:"structure"`
15494}
15495
15496// String returns the string representation
15497func (s UpdateStudioSessionMappingOutput) String() string {
15498	return awsutil.Prettify(s)
15499}
15500
15501// GoString returns the string representation
15502func (s UpdateStudioSessionMappingOutput) GoString() string {
15503	return s.String()
15504}
15505
15506// EBS volume specifications such as volume type, IOPS, and size (GiB) that
15507// will be requested for the EBS volume attached to an EC2 instance in the cluster.
15508type VolumeSpecification struct {
15509	_ struct{} `type:"structure"`
15510
15511	// The number of I/O operations per second (IOPS) that the volume supports.
15512	Iops *int64 `type:"integer"`
15513
15514	// The volume size, in gibibytes (GiB). This can be a number from 1 - 1024.
15515	// If the volume type is EBS-optimized, the minimum value is 10.
15516	//
15517	// SizeInGB is a required field
15518	SizeInGB *int64 `type:"integer" required:"true"`
15519
15520	// The volume type. Volume types supported are gp2, io1, standard.
15521	//
15522	// VolumeType is a required field
15523	VolumeType *string `type:"string" required:"true"`
15524}
15525
15526// String returns the string representation
15527func (s VolumeSpecification) String() string {
15528	return awsutil.Prettify(s)
15529}
15530
15531// GoString returns the string representation
15532func (s VolumeSpecification) GoString() string {
15533	return s.String()
15534}
15535
15536// Validate inspects the fields of the type to determine if they are valid.
15537func (s *VolumeSpecification) Validate() error {
15538	invalidParams := request.ErrInvalidParams{Context: "VolumeSpecification"}
15539	if s.SizeInGB == nil {
15540		invalidParams.Add(request.NewErrParamRequired("SizeInGB"))
15541	}
15542	if s.VolumeType == nil {
15543		invalidParams.Add(request.NewErrParamRequired("VolumeType"))
15544	}
15545
15546	if invalidParams.Len() > 0 {
15547		return invalidParams
15548	}
15549	return nil
15550}
15551
15552// SetIops sets the Iops field's value.
15553func (s *VolumeSpecification) SetIops(v int64) *VolumeSpecification {
15554	s.Iops = &v
15555	return s
15556}
15557
15558// SetSizeInGB sets the SizeInGB field's value.
15559func (s *VolumeSpecification) SetSizeInGB(v int64) *VolumeSpecification {
15560	s.SizeInGB = &v
15561	return s
15562}
15563
15564// SetVolumeType sets the VolumeType field's value.
15565func (s *VolumeSpecification) SetVolumeType(v string) *VolumeSpecification {
15566	s.VolumeType = &v
15567	return s
15568}
15569
15570const (
15571	// ActionOnFailureTerminateJobFlow is a ActionOnFailure enum value
15572	ActionOnFailureTerminateJobFlow = "TERMINATE_JOB_FLOW"
15573
15574	// ActionOnFailureTerminateCluster is a ActionOnFailure enum value
15575	ActionOnFailureTerminateCluster = "TERMINATE_CLUSTER"
15576
15577	// ActionOnFailureCancelAndWait is a ActionOnFailure enum value
15578	ActionOnFailureCancelAndWait = "CANCEL_AND_WAIT"
15579
15580	// ActionOnFailureContinue is a ActionOnFailure enum value
15581	ActionOnFailureContinue = "CONTINUE"
15582)
15583
15584// ActionOnFailure_Values returns all elements of the ActionOnFailure enum
15585func ActionOnFailure_Values() []string {
15586	return []string{
15587		ActionOnFailureTerminateJobFlow,
15588		ActionOnFailureTerminateCluster,
15589		ActionOnFailureCancelAndWait,
15590		ActionOnFailureContinue,
15591	}
15592}
15593
15594const (
15595	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
15596	AdjustmentTypeChangeInCapacity = "CHANGE_IN_CAPACITY"
15597
15598	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
15599	AdjustmentTypePercentChangeInCapacity = "PERCENT_CHANGE_IN_CAPACITY"
15600
15601	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
15602	AdjustmentTypeExactCapacity = "EXACT_CAPACITY"
15603)
15604
15605// AdjustmentType_Values returns all elements of the AdjustmentType enum
15606func AdjustmentType_Values() []string {
15607	return []string{
15608		AdjustmentTypeChangeInCapacity,
15609		AdjustmentTypePercentChangeInCapacity,
15610		AdjustmentTypeExactCapacity,
15611	}
15612}
15613
15614const (
15615	// AuthModeSso is a AuthMode enum value
15616	AuthModeSso = "SSO"
15617
15618	// AuthModeIam is a AuthMode enum value
15619	AuthModeIam = "IAM"
15620)
15621
15622// AuthMode_Values returns all elements of the AuthMode enum
15623func AuthMode_Values() []string {
15624	return []string{
15625		AuthModeSso,
15626		AuthModeIam,
15627	}
15628}
15629
15630const (
15631	// AutoScalingPolicyStatePending is a AutoScalingPolicyState enum value
15632	AutoScalingPolicyStatePending = "PENDING"
15633
15634	// AutoScalingPolicyStateAttaching is a AutoScalingPolicyState enum value
15635	AutoScalingPolicyStateAttaching = "ATTACHING"
15636
15637	// AutoScalingPolicyStateAttached is a AutoScalingPolicyState enum value
15638	AutoScalingPolicyStateAttached = "ATTACHED"
15639
15640	// AutoScalingPolicyStateDetaching is a AutoScalingPolicyState enum value
15641	AutoScalingPolicyStateDetaching = "DETACHING"
15642
15643	// AutoScalingPolicyStateDetached is a AutoScalingPolicyState enum value
15644	AutoScalingPolicyStateDetached = "DETACHED"
15645
15646	// AutoScalingPolicyStateFailed is a AutoScalingPolicyState enum value
15647	AutoScalingPolicyStateFailed = "FAILED"
15648)
15649
15650// AutoScalingPolicyState_Values returns all elements of the AutoScalingPolicyState enum
15651func AutoScalingPolicyState_Values() []string {
15652	return []string{
15653		AutoScalingPolicyStatePending,
15654		AutoScalingPolicyStateAttaching,
15655		AutoScalingPolicyStateAttached,
15656		AutoScalingPolicyStateDetaching,
15657		AutoScalingPolicyStateDetached,
15658		AutoScalingPolicyStateFailed,
15659	}
15660}
15661
15662const (
15663	// AutoScalingPolicyStateChangeReasonCodeUserRequest is a AutoScalingPolicyStateChangeReasonCode enum value
15664	AutoScalingPolicyStateChangeReasonCodeUserRequest = "USER_REQUEST"
15665
15666	// AutoScalingPolicyStateChangeReasonCodeProvisionFailure is a AutoScalingPolicyStateChangeReasonCode enum value
15667	AutoScalingPolicyStateChangeReasonCodeProvisionFailure = "PROVISION_FAILURE"
15668
15669	// AutoScalingPolicyStateChangeReasonCodeCleanupFailure is a AutoScalingPolicyStateChangeReasonCode enum value
15670	AutoScalingPolicyStateChangeReasonCodeCleanupFailure = "CLEANUP_FAILURE"
15671)
15672
15673// AutoScalingPolicyStateChangeReasonCode_Values returns all elements of the AutoScalingPolicyStateChangeReasonCode enum
15674func AutoScalingPolicyStateChangeReasonCode_Values() []string {
15675	return []string{
15676		AutoScalingPolicyStateChangeReasonCodeUserRequest,
15677		AutoScalingPolicyStateChangeReasonCodeProvisionFailure,
15678		AutoScalingPolicyStateChangeReasonCodeCleanupFailure,
15679	}
15680}
15681
15682const (
15683	// CancelStepsRequestStatusSubmitted is a CancelStepsRequestStatus enum value
15684	CancelStepsRequestStatusSubmitted = "SUBMITTED"
15685
15686	// CancelStepsRequestStatusFailed is a CancelStepsRequestStatus enum value
15687	CancelStepsRequestStatusFailed = "FAILED"
15688)
15689
15690// CancelStepsRequestStatus_Values returns all elements of the CancelStepsRequestStatus enum
15691func CancelStepsRequestStatus_Values() []string {
15692	return []string{
15693		CancelStepsRequestStatusSubmitted,
15694		CancelStepsRequestStatusFailed,
15695	}
15696}
15697
15698const (
15699	// ClusterStateStarting is a ClusterState enum value
15700	ClusterStateStarting = "STARTING"
15701
15702	// ClusterStateBootstrapping is a ClusterState enum value
15703	ClusterStateBootstrapping = "BOOTSTRAPPING"
15704
15705	// ClusterStateRunning is a ClusterState enum value
15706	ClusterStateRunning = "RUNNING"
15707
15708	// ClusterStateWaiting is a ClusterState enum value
15709	ClusterStateWaiting = "WAITING"
15710
15711	// ClusterStateTerminating is a ClusterState enum value
15712	ClusterStateTerminating = "TERMINATING"
15713
15714	// ClusterStateTerminated is a ClusterState enum value
15715	ClusterStateTerminated = "TERMINATED"
15716
15717	// ClusterStateTerminatedWithErrors is a ClusterState enum value
15718	ClusterStateTerminatedWithErrors = "TERMINATED_WITH_ERRORS"
15719)
15720
15721// ClusterState_Values returns all elements of the ClusterState enum
15722func ClusterState_Values() []string {
15723	return []string{
15724		ClusterStateStarting,
15725		ClusterStateBootstrapping,
15726		ClusterStateRunning,
15727		ClusterStateWaiting,
15728		ClusterStateTerminating,
15729		ClusterStateTerminated,
15730		ClusterStateTerminatedWithErrors,
15731	}
15732}
15733
15734const (
15735	// ClusterStateChangeReasonCodeInternalError is a ClusterStateChangeReasonCode enum value
15736	ClusterStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15737
15738	// ClusterStateChangeReasonCodeValidationError is a ClusterStateChangeReasonCode enum value
15739	ClusterStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
15740
15741	// ClusterStateChangeReasonCodeInstanceFailure is a ClusterStateChangeReasonCode enum value
15742	ClusterStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
15743
15744	// ClusterStateChangeReasonCodeInstanceFleetTimeout is a ClusterStateChangeReasonCode enum value
15745	ClusterStateChangeReasonCodeInstanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT"
15746
15747	// ClusterStateChangeReasonCodeBootstrapFailure is a ClusterStateChangeReasonCode enum value
15748	ClusterStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
15749
15750	// ClusterStateChangeReasonCodeUserRequest is a ClusterStateChangeReasonCode enum value
15751	ClusterStateChangeReasonCodeUserRequest = "USER_REQUEST"
15752
15753	// ClusterStateChangeReasonCodeStepFailure is a ClusterStateChangeReasonCode enum value
15754	ClusterStateChangeReasonCodeStepFailure = "STEP_FAILURE"
15755
15756	// ClusterStateChangeReasonCodeAllStepsCompleted is a ClusterStateChangeReasonCode enum value
15757	ClusterStateChangeReasonCodeAllStepsCompleted = "ALL_STEPS_COMPLETED"
15758)
15759
15760// ClusterStateChangeReasonCode_Values returns all elements of the ClusterStateChangeReasonCode enum
15761func ClusterStateChangeReasonCode_Values() []string {
15762	return []string{
15763		ClusterStateChangeReasonCodeInternalError,
15764		ClusterStateChangeReasonCodeValidationError,
15765		ClusterStateChangeReasonCodeInstanceFailure,
15766		ClusterStateChangeReasonCodeInstanceFleetTimeout,
15767		ClusterStateChangeReasonCodeBootstrapFailure,
15768		ClusterStateChangeReasonCodeUserRequest,
15769		ClusterStateChangeReasonCodeStepFailure,
15770		ClusterStateChangeReasonCodeAllStepsCompleted,
15771	}
15772}
15773
15774const (
15775	// ComparisonOperatorGreaterThanOrEqual is a ComparisonOperator enum value
15776	ComparisonOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
15777
15778	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
15779	ComparisonOperatorGreaterThan = "GREATER_THAN"
15780
15781	// ComparisonOperatorLessThan is a ComparisonOperator enum value
15782	ComparisonOperatorLessThan = "LESS_THAN"
15783
15784	// ComparisonOperatorLessThanOrEqual is a ComparisonOperator enum value
15785	ComparisonOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL"
15786)
15787
15788// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
15789func ComparisonOperator_Values() []string {
15790	return []string{
15791		ComparisonOperatorGreaterThanOrEqual,
15792		ComparisonOperatorGreaterThan,
15793		ComparisonOperatorLessThan,
15794		ComparisonOperatorLessThanOrEqual,
15795	}
15796}
15797
15798const (
15799	// ComputeLimitsUnitTypeInstanceFleetUnits is a ComputeLimitsUnitType enum value
15800	ComputeLimitsUnitTypeInstanceFleetUnits = "InstanceFleetUnits"
15801
15802	// ComputeLimitsUnitTypeInstances is a ComputeLimitsUnitType enum value
15803	ComputeLimitsUnitTypeInstances = "Instances"
15804
15805	// ComputeLimitsUnitTypeVcpu is a ComputeLimitsUnitType enum value
15806	ComputeLimitsUnitTypeVcpu = "VCPU"
15807)
15808
15809// ComputeLimitsUnitType_Values returns all elements of the ComputeLimitsUnitType enum
15810func ComputeLimitsUnitType_Values() []string {
15811	return []string{
15812		ComputeLimitsUnitTypeInstanceFleetUnits,
15813		ComputeLimitsUnitTypeInstances,
15814		ComputeLimitsUnitTypeVcpu,
15815	}
15816}
15817
15818const (
15819	// ExecutionEngineTypeEmr is a ExecutionEngineType enum value
15820	ExecutionEngineTypeEmr = "EMR"
15821)
15822
15823// ExecutionEngineType_Values returns all elements of the ExecutionEngineType enum
15824func ExecutionEngineType_Values() []string {
15825	return []string{
15826		ExecutionEngineTypeEmr,
15827	}
15828}
15829
15830const (
15831	// IdentityTypeUser is a IdentityType enum value
15832	IdentityTypeUser = "USER"
15833
15834	// IdentityTypeGroup is a IdentityType enum value
15835	IdentityTypeGroup = "GROUP"
15836)
15837
15838// IdentityType_Values returns all elements of the IdentityType enum
15839func IdentityType_Values() []string {
15840	return []string{
15841		IdentityTypeUser,
15842		IdentityTypeGroup,
15843	}
15844}
15845
15846const (
15847	// InstanceCollectionTypeInstanceFleet is a InstanceCollectionType enum value
15848	InstanceCollectionTypeInstanceFleet = "INSTANCE_FLEET"
15849
15850	// InstanceCollectionTypeInstanceGroup is a InstanceCollectionType enum value
15851	InstanceCollectionTypeInstanceGroup = "INSTANCE_GROUP"
15852)
15853
15854// InstanceCollectionType_Values returns all elements of the InstanceCollectionType enum
15855func InstanceCollectionType_Values() []string {
15856	return []string{
15857		InstanceCollectionTypeInstanceFleet,
15858		InstanceCollectionTypeInstanceGroup,
15859	}
15860}
15861
15862const (
15863	// InstanceFleetStateProvisioning is a InstanceFleetState enum value
15864	InstanceFleetStateProvisioning = "PROVISIONING"
15865
15866	// InstanceFleetStateBootstrapping is a InstanceFleetState enum value
15867	InstanceFleetStateBootstrapping = "BOOTSTRAPPING"
15868
15869	// InstanceFleetStateRunning is a InstanceFleetState enum value
15870	InstanceFleetStateRunning = "RUNNING"
15871
15872	// InstanceFleetStateResizing is a InstanceFleetState enum value
15873	InstanceFleetStateResizing = "RESIZING"
15874
15875	// InstanceFleetStateSuspended is a InstanceFleetState enum value
15876	InstanceFleetStateSuspended = "SUSPENDED"
15877
15878	// InstanceFleetStateTerminating is a InstanceFleetState enum value
15879	InstanceFleetStateTerminating = "TERMINATING"
15880
15881	// InstanceFleetStateTerminated is a InstanceFleetState enum value
15882	InstanceFleetStateTerminated = "TERMINATED"
15883)
15884
15885// InstanceFleetState_Values returns all elements of the InstanceFleetState enum
15886func InstanceFleetState_Values() []string {
15887	return []string{
15888		InstanceFleetStateProvisioning,
15889		InstanceFleetStateBootstrapping,
15890		InstanceFleetStateRunning,
15891		InstanceFleetStateResizing,
15892		InstanceFleetStateSuspended,
15893		InstanceFleetStateTerminating,
15894		InstanceFleetStateTerminated,
15895	}
15896}
15897
15898const (
15899	// InstanceFleetStateChangeReasonCodeInternalError is a InstanceFleetStateChangeReasonCode enum value
15900	InstanceFleetStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15901
15902	// InstanceFleetStateChangeReasonCodeValidationError is a InstanceFleetStateChangeReasonCode enum value
15903	InstanceFleetStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
15904
15905	// InstanceFleetStateChangeReasonCodeInstanceFailure is a InstanceFleetStateChangeReasonCode enum value
15906	InstanceFleetStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
15907
15908	// InstanceFleetStateChangeReasonCodeClusterTerminated is a InstanceFleetStateChangeReasonCode enum value
15909	InstanceFleetStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
15910)
15911
15912// InstanceFleetStateChangeReasonCode_Values returns all elements of the InstanceFleetStateChangeReasonCode enum
15913func InstanceFleetStateChangeReasonCode_Values() []string {
15914	return []string{
15915		InstanceFleetStateChangeReasonCodeInternalError,
15916		InstanceFleetStateChangeReasonCodeValidationError,
15917		InstanceFleetStateChangeReasonCodeInstanceFailure,
15918		InstanceFleetStateChangeReasonCodeClusterTerminated,
15919	}
15920}
15921
15922const (
15923	// InstanceFleetTypeMaster is a InstanceFleetType enum value
15924	InstanceFleetTypeMaster = "MASTER"
15925
15926	// InstanceFleetTypeCore is a InstanceFleetType enum value
15927	InstanceFleetTypeCore = "CORE"
15928
15929	// InstanceFleetTypeTask is a InstanceFleetType enum value
15930	InstanceFleetTypeTask = "TASK"
15931)
15932
15933// InstanceFleetType_Values returns all elements of the InstanceFleetType enum
15934func InstanceFleetType_Values() []string {
15935	return []string{
15936		InstanceFleetTypeMaster,
15937		InstanceFleetTypeCore,
15938		InstanceFleetTypeTask,
15939	}
15940}
15941
15942const (
15943	// InstanceGroupStateProvisioning is a InstanceGroupState enum value
15944	InstanceGroupStateProvisioning = "PROVISIONING"
15945
15946	// InstanceGroupStateBootstrapping is a InstanceGroupState enum value
15947	InstanceGroupStateBootstrapping = "BOOTSTRAPPING"
15948
15949	// InstanceGroupStateRunning is a InstanceGroupState enum value
15950	InstanceGroupStateRunning = "RUNNING"
15951
15952	// InstanceGroupStateReconfiguring is a InstanceGroupState enum value
15953	InstanceGroupStateReconfiguring = "RECONFIGURING"
15954
15955	// InstanceGroupStateResizing is a InstanceGroupState enum value
15956	InstanceGroupStateResizing = "RESIZING"
15957
15958	// InstanceGroupStateSuspended is a InstanceGroupState enum value
15959	InstanceGroupStateSuspended = "SUSPENDED"
15960
15961	// InstanceGroupStateTerminating is a InstanceGroupState enum value
15962	InstanceGroupStateTerminating = "TERMINATING"
15963
15964	// InstanceGroupStateTerminated is a InstanceGroupState enum value
15965	InstanceGroupStateTerminated = "TERMINATED"
15966
15967	// InstanceGroupStateArrested is a InstanceGroupState enum value
15968	InstanceGroupStateArrested = "ARRESTED"
15969
15970	// InstanceGroupStateShuttingDown is a InstanceGroupState enum value
15971	InstanceGroupStateShuttingDown = "SHUTTING_DOWN"
15972
15973	// InstanceGroupStateEnded is a InstanceGroupState enum value
15974	InstanceGroupStateEnded = "ENDED"
15975)
15976
15977// InstanceGroupState_Values returns all elements of the InstanceGroupState enum
15978func InstanceGroupState_Values() []string {
15979	return []string{
15980		InstanceGroupStateProvisioning,
15981		InstanceGroupStateBootstrapping,
15982		InstanceGroupStateRunning,
15983		InstanceGroupStateReconfiguring,
15984		InstanceGroupStateResizing,
15985		InstanceGroupStateSuspended,
15986		InstanceGroupStateTerminating,
15987		InstanceGroupStateTerminated,
15988		InstanceGroupStateArrested,
15989		InstanceGroupStateShuttingDown,
15990		InstanceGroupStateEnded,
15991	}
15992}
15993
15994const (
15995	// InstanceGroupStateChangeReasonCodeInternalError is a InstanceGroupStateChangeReasonCode enum value
15996	InstanceGroupStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15997
15998	// InstanceGroupStateChangeReasonCodeValidationError is a InstanceGroupStateChangeReasonCode enum value
15999	InstanceGroupStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
16000
16001	// InstanceGroupStateChangeReasonCodeInstanceFailure is a InstanceGroupStateChangeReasonCode enum value
16002	InstanceGroupStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
16003
16004	// InstanceGroupStateChangeReasonCodeClusterTerminated is a InstanceGroupStateChangeReasonCode enum value
16005	InstanceGroupStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
16006)
16007
16008// InstanceGroupStateChangeReasonCode_Values returns all elements of the InstanceGroupStateChangeReasonCode enum
16009func InstanceGroupStateChangeReasonCode_Values() []string {
16010	return []string{
16011		InstanceGroupStateChangeReasonCodeInternalError,
16012		InstanceGroupStateChangeReasonCodeValidationError,
16013		InstanceGroupStateChangeReasonCodeInstanceFailure,
16014		InstanceGroupStateChangeReasonCodeClusterTerminated,
16015	}
16016}
16017
16018const (
16019	// InstanceGroupTypeMaster is a InstanceGroupType enum value
16020	InstanceGroupTypeMaster = "MASTER"
16021
16022	// InstanceGroupTypeCore is a InstanceGroupType enum value
16023	InstanceGroupTypeCore = "CORE"
16024
16025	// InstanceGroupTypeTask is a InstanceGroupType enum value
16026	InstanceGroupTypeTask = "TASK"
16027)
16028
16029// InstanceGroupType_Values returns all elements of the InstanceGroupType enum
16030func InstanceGroupType_Values() []string {
16031	return []string{
16032		InstanceGroupTypeMaster,
16033		InstanceGroupTypeCore,
16034		InstanceGroupTypeTask,
16035	}
16036}
16037
16038const (
16039	// InstanceRoleTypeMaster is a InstanceRoleType enum value
16040	InstanceRoleTypeMaster = "MASTER"
16041
16042	// InstanceRoleTypeCore is a InstanceRoleType enum value
16043	InstanceRoleTypeCore = "CORE"
16044
16045	// InstanceRoleTypeTask is a InstanceRoleType enum value
16046	InstanceRoleTypeTask = "TASK"
16047)
16048
16049// InstanceRoleType_Values returns all elements of the InstanceRoleType enum
16050func InstanceRoleType_Values() []string {
16051	return []string{
16052		InstanceRoleTypeMaster,
16053		InstanceRoleTypeCore,
16054		InstanceRoleTypeTask,
16055	}
16056}
16057
16058const (
16059	// InstanceStateAwaitingFulfillment is a InstanceState enum value
16060	InstanceStateAwaitingFulfillment = "AWAITING_FULFILLMENT"
16061
16062	// InstanceStateProvisioning is a InstanceState enum value
16063	InstanceStateProvisioning = "PROVISIONING"
16064
16065	// InstanceStateBootstrapping is a InstanceState enum value
16066	InstanceStateBootstrapping = "BOOTSTRAPPING"
16067
16068	// InstanceStateRunning is a InstanceState enum value
16069	InstanceStateRunning = "RUNNING"
16070
16071	// InstanceStateTerminated is a InstanceState enum value
16072	InstanceStateTerminated = "TERMINATED"
16073)
16074
16075// InstanceState_Values returns all elements of the InstanceState enum
16076func InstanceState_Values() []string {
16077	return []string{
16078		InstanceStateAwaitingFulfillment,
16079		InstanceStateProvisioning,
16080		InstanceStateBootstrapping,
16081		InstanceStateRunning,
16082		InstanceStateTerminated,
16083	}
16084}
16085
16086const (
16087	// InstanceStateChangeReasonCodeInternalError is a InstanceStateChangeReasonCode enum value
16088	InstanceStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
16089
16090	// InstanceStateChangeReasonCodeValidationError is a InstanceStateChangeReasonCode enum value
16091	InstanceStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
16092
16093	// InstanceStateChangeReasonCodeInstanceFailure is a InstanceStateChangeReasonCode enum value
16094	InstanceStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
16095
16096	// InstanceStateChangeReasonCodeBootstrapFailure is a InstanceStateChangeReasonCode enum value
16097	InstanceStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
16098
16099	// InstanceStateChangeReasonCodeClusterTerminated is a InstanceStateChangeReasonCode enum value
16100	InstanceStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
16101)
16102
16103// InstanceStateChangeReasonCode_Values returns all elements of the InstanceStateChangeReasonCode enum
16104func InstanceStateChangeReasonCode_Values() []string {
16105	return []string{
16106		InstanceStateChangeReasonCodeInternalError,
16107		InstanceStateChangeReasonCodeValidationError,
16108		InstanceStateChangeReasonCodeInstanceFailure,
16109		InstanceStateChangeReasonCodeBootstrapFailure,
16110		InstanceStateChangeReasonCodeClusterTerminated,
16111	}
16112}
16113
16114// The type of instance.
16115const (
16116	// JobFlowExecutionStateStarting is a JobFlowExecutionState enum value
16117	JobFlowExecutionStateStarting = "STARTING"
16118
16119	// JobFlowExecutionStateBootstrapping is a JobFlowExecutionState enum value
16120	JobFlowExecutionStateBootstrapping = "BOOTSTRAPPING"
16121
16122	// JobFlowExecutionStateRunning is a JobFlowExecutionState enum value
16123	JobFlowExecutionStateRunning = "RUNNING"
16124
16125	// JobFlowExecutionStateWaiting is a JobFlowExecutionState enum value
16126	JobFlowExecutionStateWaiting = "WAITING"
16127
16128	// JobFlowExecutionStateShuttingDown is a JobFlowExecutionState enum value
16129	JobFlowExecutionStateShuttingDown = "SHUTTING_DOWN"
16130
16131	// JobFlowExecutionStateTerminated is a JobFlowExecutionState enum value
16132	JobFlowExecutionStateTerminated = "TERMINATED"
16133
16134	// JobFlowExecutionStateCompleted is a JobFlowExecutionState enum value
16135	JobFlowExecutionStateCompleted = "COMPLETED"
16136
16137	// JobFlowExecutionStateFailed is a JobFlowExecutionState enum value
16138	JobFlowExecutionStateFailed = "FAILED"
16139)
16140
16141// JobFlowExecutionState_Values returns all elements of the JobFlowExecutionState enum
16142func JobFlowExecutionState_Values() []string {
16143	return []string{
16144		JobFlowExecutionStateStarting,
16145		JobFlowExecutionStateBootstrapping,
16146		JobFlowExecutionStateRunning,
16147		JobFlowExecutionStateWaiting,
16148		JobFlowExecutionStateShuttingDown,
16149		JobFlowExecutionStateTerminated,
16150		JobFlowExecutionStateCompleted,
16151		JobFlowExecutionStateFailed,
16152	}
16153}
16154
16155const (
16156	// MarketTypeOnDemand is a MarketType enum value
16157	MarketTypeOnDemand = "ON_DEMAND"
16158
16159	// MarketTypeSpot is a MarketType enum value
16160	MarketTypeSpot = "SPOT"
16161)
16162
16163// MarketType_Values returns all elements of the MarketType enum
16164func MarketType_Values() []string {
16165	return []string{
16166		MarketTypeOnDemand,
16167		MarketTypeSpot,
16168	}
16169}
16170
16171const (
16172	// NotebookExecutionStatusStartPending is a NotebookExecutionStatus enum value
16173	NotebookExecutionStatusStartPending = "START_PENDING"
16174
16175	// NotebookExecutionStatusStarting is a NotebookExecutionStatus enum value
16176	NotebookExecutionStatusStarting = "STARTING"
16177
16178	// NotebookExecutionStatusRunning is a NotebookExecutionStatus enum value
16179	NotebookExecutionStatusRunning = "RUNNING"
16180
16181	// NotebookExecutionStatusFinishing is a NotebookExecutionStatus enum value
16182	NotebookExecutionStatusFinishing = "FINISHING"
16183
16184	// NotebookExecutionStatusFinished is a NotebookExecutionStatus enum value
16185	NotebookExecutionStatusFinished = "FINISHED"
16186
16187	// NotebookExecutionStatusFailing is a NotebookExecutionStatus enum value
16188	NotebookExecutionStatusFailing = "FAILING"
16189
16190	// NotebookExecutionStatusFailed is a NotebookExecutionStatus enum value
16191	NotebookExecutionStatusFailed = "FAILED"
16192
16193	// NotebookExecutionStatusStopPending is a NotebookExecutionStatus enum value
16194	NotebookExecutionStatusStopPending = "STOP_PENDING"
16195
16196	// NotebookExecutionStatusStopping is a NotebookExecutionStatus enum value
16197	NotebookExecutionStatusStopping = "STOPPING"
16198
16199	// NotebookExecutionStatusStopped is a NotebookExecutionStatus enum value
16200	NotebookExecutionStatusStopped = "STOPPED"
16201)
16202
16203// NotebookExecutionStatus_Values returns all elements of the NotebookExecutionStatus enum
16204func NotebookExecutionStatus_Values() []string {
16205	return []string{
16206		NotebookExecutionStatusStartPending,
16207		NotebookExecutionStatusStarting,
16208		NotebookExecutionStatusRunning,
16209		NotebookExecutionStatusFinishing,
16210		NotebookExecutionStatusFinished,
16211		NotebookExecutionStatusFailing,
16212		NotebookExecutionStatusFailed,
16213		NotebookExecutionStatusStopPending,
16214		NotebookExecutionStatusStopping,
16215		NotebookExecutionStatusStopped,
16216	}
16217}
16218
16219const (
16220	// OnDemandCapacityReservationPreferenceOpen is a OnDemandCapacityReservationPreference enum value
16221	OnDemandCapacityReservationPreferenceOpen = "open"
16222
16223	// OnDemandCapacityReservationPreferenceNone is a OnDemandCapacityReservationPreference enum value
16224	OnDemandCapacityReservationPreferenceNone = "none"
16225)
16226
16227// OnDemandCapacityReservationPreference_Values returns all elements of the OnDemandCapacityReservationPreference enum
16228func OnDemandCapacityReservationPreference_Values() []string {
16229	return []string{
16230		OnDemandCapacityReservationPreferenceOpen,
16231		OnDemandCapacityReservationPreferenceNone,
16232	}
16233}
16234
16235const (
16236	// OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst is a OnDemandCapacityReservationUsageStrategy enum value
16237	OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst = "use-capacity-reservations-first"
16238)
16239
16240// OnDemandCapacityReservationUsageStrategy_Values returns all elements of the OnDemandCapacityReservationUsageStrategy enum
16241func OnDemandCapacityReservationUsageStrategy_Values() []string {
16242	return []string{
16243		OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst,
16244	}
16245}
16246
16247const (
16248	// OnDemandProvisioningAllocationStrategyLowestPrice is a OnDemandProvisioningAllocationStrategy enum value
16249	OnDemandProvisioningAllocationStrategyLowestPrice = "lowest-price"
16250)
16251
16252// OnDemandProvisioningAllocationStrategy_Values returns all elements of the OnDemandProvisioningAllocationStrategy enum
16253func OnDemandProvisioningAllocationStrategy_Values() []string {
16254	return []string{
16255		OnDemandProvisioningAllocationStrategyLowestPrice,
16256	}
16257}
16258
16259const (
16260	// PlacementGroupStrategySpread is a PlacementGroupStrategy enum value
16261	PlacementGroupStrategySpread = "SPREAD"
16262
16263	// PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value
16264	PlacementGroupStrategyPartition = "PARTITION"
16265
16266	// PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value
16267	PlacementGroupStrategyCluster = "CLUSTER"
16268
16269	// PlacementGroupStrategyNone is a PlacementGroupStrategy enum value
16270	PlacementGroupStrategyNone = "NONE"
16271)
16272
16273// PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum
16274func PlacementGroupStrategy_Values() []string {
16275	return []string{
16276		PlacementGroupStrategySpread,
16277		PlacementGroupStrategyPartition,
16278		PlacementGroupStrategyCluster,
16279		PlacementGroupStrategyNone,
16280	}
16281}
16282
16283const (
16284	// RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value
16285	RepoUpgradeOnBootSecurity = "SECURITY"
16286
16287	// RepoUpgradeOnBootNone is a RepoUpgradeOnBoot enum value
16288	RepoUpgradeOnBootNone = "NONE"
16289)
16290
16291// RepoUpgradeOnBoot_Values returns all elements of the RepoUpgradeOnBoot enum
16292func RepoUpgradeOnBoot_Values() []string {
16293	return []string{
16294		RepoUpgradeOnBootSecurity,
16295		RepoUpgradeOnBootNone,
16296	}
16297}
16298
16299const (
16300	// ScaleDownBehaviorTerminateAtInstanceHour is a ScaleDownBehavior enum value
16301	ScaleDownBehaviorTerminateAtInstanceHour = "TERMINATE_AT_INSTANCE_HOUR"
16302
16303	// ScaleDownBehaviorTerminateAtTaskCompletion is a ScaleDownBehavior enum value
16304	ScaleDownBehaviorTerminateAtTaskCompletion = "TERMINATE_AT_TASK_COMPLETION"
16305)
16306
16307// ScaleDownBehavior_Values returns all elements of the ScaleDownBehavior enum
16308func ScaleDownBehavior_Values() []string {
16309	return []string{
16310		ScaleDownBehaviorTerminateAtInstanceHour,
16311		ScaleDownBehaviorTerminateAtTaskCompletion,
16312	}
16313}
16314
16315const (
16316	// SpotProvisioningAllocationStrategyCapacityOptimized is a SpotProvisioningAllocationStrategy enum value
16317	SpotProvisioningAllocationStrategyCapacityOptimized = "capacity-optimized"
16318)
16319
16320// SpotProvisioningAllocationStrategy_Values returns all elements of the SpotProvisioningAllocationStrategy enum
16321func SpotProvisioningAllocationStrategy_Values() []string {
16322	return []string{
16323		SpotProvisioningAllocationStrategyCapacityOptimized,
16324	}
16325}
16326
16327const (
16328	// SpotProvisioningTimeoutActionSwitchToOnDemand is a SpotProvisioningTimeoutAction enum value
16329	SpotProvisioningTimeoutActionSwitchToOnDemand = "SWITCH_TO_ON_DEMAND"
16330
16331	// SpotProvisioningTimeoutActionTerminateCluster is a SpotProvisioningTimeoutAction enum value
16332	SpotProvisioningTimeoutActionTerminateCluster = "TERMINATE_CLUSTER"
16333)
16334
16335// SpotProvisioningTimeoutAction_Values returns all elements of the SpotProvisioningTimeoutAction enum
16336func SpotProvisioningTimeoutAction_Values() []string {
16337	return []string{
16338		SpotProvisioningTimeoutActionSwitchToOnDemand,
16339		SpotProvisioningTimeoutActionTerminateCluster,
16340	}
16341}
16342
16343const (
16344	// StatisticSampleCount is a Statistic enum value
16345	StatisticSampleCount = "SAMPLE_COUNT"
16346
16347	// StatisticAverage is a Statistic enum value
16348	StatisticAverage = "AVERAGE"
16349
16350	// StatisticSum is a Statistic enum value
16351	StatisticSum = "SUM"
16352
16353	// StatisticMinimum is a Statistic enum value
16354	StatisticMinimum = "MINIMUM"
16355
16356	// StatisticMaximum is a Statistic enum value
16357	StatisticMaximum = "MAXIMUM"
16358)
16359
16360// Statistic_Values returns all elements of the Statistic enum
16361func Statistic_Values() []string {
16362	return []string{
16363		StatisticSampleCount,
16364		StatisticAverage,
16365		StatisticSum,
16366		StatisticMinimum,
16367		StatisticMaximum,
16368	}
16369}
16370
16371const (
16372	// StepCancellationOptionSendInterrupt is a StepCancellationOption enum value
16373	StepCancellationOptionSendInterrupt = "SEND_INTERRUPT"
16374
16375	// StepCancellationOptionTerminateProcess is a StepCancellationOption enum value
16376	StepCancellationOptionTerminateProcess = "TERMINATE_PROCESS"
16377)
16378
16379// StepCancellationOption_Values returns all elements of the StepCancellationOption enum
16380func StepCancellationOption_Values() []string {
16381	return []string{
16382		StepCancellationOptionSendInterrupt,
16383		StepCancellationOptionTerminateProcess,
16384	}
16385}
16386
16387const (
16388	// StepExecutionStatePending is a StepExecutionState enum value
16389	StepExecutionStatePending = "PENDING"
16390
16391	// StepExecutionStateRunning is a StepExecutionState enum value
16392	StepExecutionStateRunning = "RUNNING"
16393
16394	// StepExecutionStateContinue is a StepExecutionState enum value
16395	StepExecutionStateContinue = "CONTINUE"
16396
16397	// StepExecutionStateCompleted is a StepExecutionState enum value
16398	StepExecutionStateCompleted = "COMPLETED"
16399
16400	// StepExecutionStateCancelled is a StepExecutionState enum value
16401	StepExecutionStateCancelled = "CANCELLED"
16402
16403	// StepExecutionStateFailed is a StepExecutionState enum value
16404	StepExecutionStateFailed = "FAILED"
16405
16406	// StepExecutionStateInterrupted is a StepExecutionState enum value
16407	StepExecutionStateInterrupted = "INTERRUPTED"
16408)
16409
16410// StepExecutionState_Values returns all elements of the StepExecutionState enum
16411func StepExecutionState_Values() []string {
16412	return []string{
16413		StepExecutionStatePending,
16414		StepExecutionStateRunning,
16415		StepExecutionStateContinue,
16416		StepExecutionStateCompleted,
16417		StepExecutionStateCancelled,
16418		StepExecutionStateFailed,
16419		StepExecutionStateInterrupted,
16420	}
16421}
16422
16423const (
16424	// StepStatePending is a StepState enum value
16425	StepStatePending = "PENDING"
16426
16427	// StepStateCancelPending is a StepState enum value
16428	StepStateCancelPending = "CANCEL_PENDING"
16429
16430	// StepStateRunning is a StepState enum value
16431	StepStateRunning = "RUNNING"
16432
16433	// StepStateCompleted is a StepState enum value
16434	StepStateCompleted = "COMPLETED"
16435
16436	// StepStateCancelled is a StepState enum value
16437	StepStateCancelled = "CANCELLED"
16438
16439	// StepStateFailed is a StepState enum value
16440	StepStateFailed = "FAILED"
16441
16442	// StepStateInterrupted is a StepState enum value
16443	StepStateInterrupted = "INTERRUPTED"
16444)
16445
16446// StepState_Values returns all elements of the StepState enum
16447func StepState_Values() []string {
16448	return []string{
16449		StepStatePending,
16450		StepStateCancelPending,
16451		StepStateRunning,
16452		StepStateCompleted,
16453		StepStateCancelled,
16454		StepStateFailed,
16455		StepStateInterrupted,
16456	}
16457}
16458
16459const (
16460	// StepStateChangeReasonCodeNone is a StepStateChangeReasonCode enum value
16461	StepStateChangeReasonCodeNone = "NONE"
16462)
16463
16464// StepStateChangeReasonCode_Values returns all elements of the StepStateChangeReasonCode enum
16465func StepStateChangeReasonCode_Values() []string {
16466	return []string{
16467		StepStateChangeReasonCodeNone,
16468	}
16469}
16470
16471const (
16472	// UnitNone is a Unit enum value
16473	UnitNone = "NONE"
16474
16475	// UnitSeconds is a Unit enum value
16476	UnitSeconds = "SECONDS"
16477
16478	// UnitMicroSeconds is a Unit enum value
16479	UnitMicroSeconds = "MICRO_SECONDS"
16480
16481	// UnitMilliSeconds is a Unit enum value
16482	UnitMilliSeconds = "MILLI_SECONDS"
16483
16484	// UnitBytes is a Unit enum value
16485	UnitBytes = "BYTES"
16486
16487	// UnitKiloBytes is a Unit enum value
16488	UnitKiloBytes = "KILO_BYTES"
16489
16490	// UnitMegaBytes is a Unit enum value
16491	UnitMegaBytes = "MEGA_BYTES"
16492
16493	// UnitGigaBytes is a Unit enum value
16494	UnitGigaBytes = "GIGA_BYTES"
16495
16496	// UnitTeraBytes is a Unit enum value
16497	UnitTeraBytes = "TERA_BYTES"
16498
16499	// UnitBits is a Unit enum value
16500	UnitBits = "BITS"
16501
16502	// UnitKiloBits is a Unit enum value
16503	UnitKiloBits = "KILO_BITS"
16504
16505	// UnitMegaBits is a Unit enum value
16506	UnitMegaBits = "MEGA_BITS"
16507
16508	// UnitGigaBits is a Unit enum value
16509	UnitGigaBits = "GIGA_BITS"
16510
16511	// UnitTeraBits is a Unit enum value
16512	UnitTeraBits = "TERA_BITS"
16513
16514	// UnitPercent is a Unit enum value
16515	UnitPercent = "PERCENT"
16516
16517	// UnitCount is a Unit enum value
16518	UnitCount = "COUNT"
16519
16520	// UnitBytesPerSecond is a Unit enum value
16521	UnitBytesPerSecond = "BYTES_PER_SECOND"
16522
16523	// UnitKiloBytesPerSecond is a Unit enum value
16524	UnitKiloBytesPerSecond = "KILO_BYTES_PER_SECOND"
16525
16526	// UnitMegaBytesPerSecond is a Unit enum value
16527	UnitMegaBytesPerSecond = "MEGA_BYTES_PER_SECOND"
16528
16529	// UnitGigaBytesPerSecond is a Unit enum value
16530	UnitGigaBytesPerSecond = "GIGA_BYTES_PER_SECOND"
16531
16532	// UnitTeraBytesPerSecond is a Unit enum value
16533	UnitTeraBytesPerSecond = "TERA_BYTES_PER_SECOND"
16534
16535	// UnitBitsPerSecond is a Unit enum value
16536	UnitBitsPerSecond = "BITS_PER_SECOND"
16537
16538	// UnitKiloBitsPerSecond is a Unit enum value
16539	UnitKiloBitsPerSecond = "KILO_BITS_PER_SECOND"
16540
16541	// UnitMegaBitsPerSecond is a Unit enum value
16542	UnitMegaBitsPerSecond = "MEGA_BITS_PER_SECOND"
16543
16544	// UnitGigaBitsPerSecond is a Unit enum value
16545	UnitGigaBitsPerSecond = "GIGA_BITS_PER_SECOND"
16546
16547	// UnitTeraBitsPerSecond is a Unit enum value
16548	UnitTeraBitsPerSecond = "TERA_BITS_PER_SECOND"
16549
16550	// UnitCountPerSecond is a Unit enum value
16551	UnitCountPerSecond = "COUNT_PER_SECOND"
16552)
16553
16554// Unit_Values returns all elements of the Unit enum
16555func Unit_Values() []string {
16556	return []string{
16557		UnitNone,
16558		UnitSeconds,
16559		UnitMicroSeconds,
16560		UnitMilliSeconds,
16561		UnitBytes,
16562		UnitKiloBytes,
16563		UnitMegaBytes,
16564		UnitGigaBytes,
16565		UnitTeraBytes,
16566		UnitBits,
16567		UnitKiloBits,
16568		UnitMegaBits,
16569		UnitGigaBits,
16570		UnitTeraBits,
16571		UnitPercent,
16572		UnitCount,
16573		UnitBytesPerSecond,
16574		UnitKiloBytesPerSecond,
16575		UnitMegaBytesPerSecond,
16576		UnitGigaBytesPerSecond,
16577		UnitTeraBytesPerSecond,
16578		UnitBitsPerSecond,
16579		UnitKiloBitsPerSecond,
16580		UnitMegaBitsPerSecond,
16581		UnitGigaBitsPerSecond,
16582		UnitTeraBitsPerSecond,
16583		UnitCountPerSecond,
16584	}
16585}
16586