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 EMR service.
75//
76//   * InvalidRequestException
77//   This exception occurs when there is something wrong with user input.
78//
79// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleet
80func (c *EMR) AddInstanceFleet(input *AddInstanceFleetInput) (*AddInstanceFleetOutput, error) {
81	req, out := c.AddInstanceFleetRequest(input)
82	return out, req.Send()
83}
84
85// AddInstanceFleetWithContext is the same as AddInstanceFleet with the addition of
86// the ability to pass a context and additional request options.
87//
88// See AddInstanceFleet for details on how to use this API operation.
89//
90// The context must be non-nil and will be used for request cancellation. If
91// the context is nil a panic will occur. In the future the SDK may create
92// sub-contexts for http.Requests. See https://golang.org/pkg/context/
93// for more information on using Contexts.
94func (c *EMR) AddInstanceFleetWithContext(ctx aws.Context, input *AddInstanceFleetInput, opts ...request.Option) (*AddInstanceFleetOutput, error) {
95	req, out := c.AddInstanceFleetRequest(input)
96	req.SetContext(ctx)
97	req.ApplyOptions(opts...)
98	return out, req.Send()
99}
100
101const opAddInstanceGroups = "AddInstanceGroups"
102
103// AddInstanceGroupsRequest generates a "aws/request.Request" representing the
104// client's request for the AddInstanceGroups operation. The "output" return
105// value will be populated with the request's response once the request completes
106// successfully.
107//
108// Use "Send" method on the returned Request to send the API call to the service.
109// the "output" return value is not valid until after Send returns without error.
110//
111// See AddInstanceGroups for more information on using the AddInstanceGroups
112// API call, and error handling.
113//
114// This method is useful when you want to inject custom logic or configuration
115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
116//
117//
118//    // Example sending a request using the AddInstanceGroupsRequest method.
119//    req, resp := client.AddInstanceGroupsRequest(params)
120//
121//    err := req.Send()
122//    if err == nil { // resp is now filled
123//        fmt.Println(resp)
124//    }
125//
126// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
127func (c *EMR) AddInstanceGroupsRequest(input *AddInstanceGroupsInput) (req *request.Request, output *AddInstanceGroupsOutput) {
128	op := &request.Operation{
129		Name:       opAddInstanceGroups,
130		HTTPMethod: "POST",
131		HTTPPath:   "/",
132	}
133
134	if input == nil {
135		input = &AddInstanceGroupsInput{}
136	}
137
138	output = &AddInstanceGroupsOutput{}
139	req = c.newRequest(op, input, output)
140	return
141}
142
143// AddInstanceGroups API operation for Amazon Elastic MapReduce.
144//
145// Adds one or more instance groups to a running cluster.
146//
147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
148// with awserr.Error's Code and Message methods to get detailed information about
149// the error.
150//
151// See the AWS API reference guide for Amazon Elastic MapReduce's
152// API operation AddInstanceGroups for usage and error information.
153//
154// Returned Error Types:
155//   * InternalServerError
156//   Indicates that an error occurred while processing the request and that the
157//   request was not completed.
158//
159// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroups
160func (c *EMR) AddInstanceGroups(input *AddInstanceGroupsInput) (*AddInstanceGroupsOutput, error) {
161	req, out := c.AddInstanceGroupsRequest(input)
162	return out, req.Send()
163}
164
165// AddInstanceGroupsWithContext is the same as AddInstanceGroups with the addition of
166// the ability to pass a context and additional request options.
167//
168// See AddInstanceGroups for details on how to use this API operation.
169//
170// The context must be non-nil and will be used for request cancellation. If
171// the context is nil a panic will occur. In the future the SDK may create
172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
173// for more information on using Contexts.
174func (c *EMR) AddInstanceGroupsWithContext(ctx aws.Context, input *AddInstanceGroupsInput, opts ...request.Option) (*AddInstanceGroupsOutput, error) {
175	req, out := c.AddInstanceGroupsRequest(input)
176	req.SetContext(ctx)
177	req.ApplyOptions(opts...)
178	return out, req.Send()
179}
180
181const opAddJobFlowSteps = "AddJobFlowSteps"
182
183// AddJobFlowStepsRequest generates a "aws/request.Request" representing the
184// client's request for the AddJobFlowSteps operation. The "output" return
185// value will be populated with the request's response once the request completes
186// successfully.
187//
188// Use "Send" method on the returned Request to send the API call to the service.
189// the "output" return value is not valid until after Send returns without error.
190//
191// See AddJobFlowSteps for more information on using the AddJobFlowSteps
192// API call, and error handling.
193//
194// This method is useful when you want to inject custom logic or configuration
195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
196//
197//
198//    // Example sending a request using the AddJobFlowStepsRequest method.
199//    req, resp := client.AddJobFlowStepsRequest(params)
200//
201//    err := req.Send()
202//    if err == nil { // resp is now filled
203//        fmt.Println(resp)
204//    }
205//
206// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
207func (c *EMR) AddJobFlowStepsRequest(input *AddJobFlowStepsInput) (req *request.Request, output *AddJobFlowStepsOutput) {
208	op := &request.Operation{
209		Name:       opAddJobFlowSteps,
210		HTTPMethod: "POST",
211		HTTPPath:   "/",
212	}
213
214	if input == nil {
215		input = &AddJobFlowStepsInput{}
216	}
217
218	output = &AddJobFlowStepsOutput{}
219	req = c.newRequest(op, input, output)
220	return
221}
222
223// AddJobFlowSteps API operation for Amazon Elastic MapReduce.
224//
225// AddJobFlowSteps adds new steps to a running cluster. A maximum of 256 steps
226// are allowed in each job flow.
227//
228// If your cluster is long-running (such as a Hive data warehouse) or complex,
229// you may require more than 256 steps to process your data. You can bypass
230// the 256-step limitation in various ways, including using SSH to connect to
231// the master node and submitting queries directly to the software running on
232// the master node, such as Hive and Hadoop. For more information on how to
233// do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
234// in the Amazon EMR Management Guide.
235//
236// A step specifies the location of a JAR file stored either on the master node
237// of the cluster or in Amazon S3. Each step is performed by the main function
238// of the main class of the JAR file. The main class can be specified either
239// in the manifest of the JAR or by using the MainFunction parameter of the
240// step.
241//
242// Amazon EMR executes each step in the order listed. For a step to be considered
243// complete, the main function must exit with a zero exit code and all Hadoop
244// jobs started while the step was running must have completed and run successfully.
245//
246// You can only add steps to a cluster that is in one of the following states:
247// STARTING, BOOTSTRAPPING, RUNNING, or WAITING.
248//
249// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
250// with awserr.Error's Code and Message methods to get detailed information about
251// the error.
252//
253// See the AWS API reference guide for Amazon Elastic MapReduce's
254// API operation AddJobFlowSteps for usage and error information.
255//
256// Returned Error Types:
257//   * InternalServerError
258//   Indicates that an error occurred while processing the request and that the
259//   request was not completed.
260//
261// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowSteps
262func (c *EMR) AddJobFlowSteps(input *AddJobFlowStepsInput) (*AddJobFlowStepsOutput, error) {
263	req, out := c.AddJobFlowStepsRequest(input)
264	return out, req.Send()
265}
266
267// AddJobFlowStepsWithContext is the same as AddJobFlowSteps with the addition of
268// the ability to pass a context and additional request options.
269//
270// See AddJobFlowSteps for details on how to use this API operation.
271//
272// The context must be non-nil and will be used for request cancellation. If
273// the context is nil a panic will occur. In the future the SDK may create
274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
275// for more information on using Contexts.
276func (c *EMR) AddJobFlowStepsWithContext(ctx aws.Context, input *AddJobFlowStepsInput, opts ...request.Option) (*AddJobFlowStepsOutput, error) {
277	req, out := c.AddJobFlowStepsRequest(input)
278	req.SetContext(ctx)
279	req.ApplyOptions(opts...)
280	return out, req.Send()
281}
282
283const opAddTags = "AddTags"
284
285// AddTagsRequest generates a "aws/request.Request" representing the
286// client's request for the AddTags operation. The "output" return
287// value will be populated with the request's response once the request completes
288// successfully.
289//
290// Use "Send" method on the returned Request to send the API call to the service.
291// the "output" return value is not valid until after Send returns without error.
292//
293// See AddTags for more information on using the AddTags
294// API call, and error handling.
295//
296// This method is useful when you want to inject custom logic or configuration
297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
298//
299//
300//    // Example sending a request using the AddTagsRequest method.
301//    req, resp := client.AddTagsRequest(params)
302//
303//    err := req.Send()
304//    if err == nil { // resp is now filled
305//        fmt.Println(resp)
306//    }
307//
308// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
309func (c *EMR) AddTagsRequest(input *AddTagsInput) (req *request.Request, output *AddTagsOutput) {
310	op := &request.Operation{
311		Name:       opAddTags,
312		HTTPMethod: "POST",
313		HTTPPath:   "/",
314	}
315
316	if input == nil {
317		input = &AddTagsInput{}
318	}
319
320	output = &AddTagsOutput{}
321	req = c.newRequest(op, input, output)
322	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
323	return
324}
325
326// AddTags API operation for Amazon Elastic MapReduce.
327//
328// Adds tags to an Amazon EMR resource. Tags make it easier to associate clusters
329// in various ways, such as grouping clusters to track your Amazon EMR resource
330// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
331//
332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
333// with awserr.Error's Code and Message methods to get detailed information about
334// the error.
335//
336// See the AWS API reference guide for Amazon Elastic MapReduce's
337// API operation AddTags for usage and error information.
338//
339// Returned Error Types:
340//   * InternalServerException
341//   This exception occurs when there is an internal failure in the EMR service.
342//
343//   * InvalidRequestException
344//   This exception occurs when there is something wrong with user input.
345//
346// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
347func (c *EMR) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
348	req, out := c.AddTagsRequest(input)
349	return out, req.Send()
350}
351
352// AddTagsWithContext is the same as AddTags with the addition of
353// the ability to pass a context and additional request options.
354//
355// See AddTags for details on how to use this API operation.
356//
357// The context must be non-nil and will be used for request cancellation. If
358// the context is nil a panic will occur. In the future the SDK may create
359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
360// for more information on using Contexts.
361func (c *EMR) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
362	req, out := c.AddTagsRequest(input)
363	req.SetContext(ctx)
364	req.ApplyOptions(opts...)
365	return out, req.Send()
366}
367
368const opCancelSteps = "CancelSteps"
369
370// CancelStepsRequest generates a "aws/request.Request" representing the
371// client's request for the CancelSteps operation. The "output" return
372// value will be populated with the request's response once the request completes
373// successfully.
374//
375// Use "Send" method on the returned Request to send the API call to the service.
376// the "output" return value is not valid until after Send returns without error.
377//
378// See CancelSteps for more information on using the CancelSteps
379// API call, and error handling.
380//
381// This method is useful when you want to inject custom logic or configuration
382// into the SDK's request lifecycle. Such as custom headers, or retry logic.
383//
384//
385//    // Example sending a request using the CancelStepsRequest method.
386//    req, resp := client.CancelStepsRequest(params)
387//
388//    err := req.Send()
389//    if err == nil { // resp is now filled
390//        fmt.Println(resp)
391//    }
392//
393// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
394func (c *EMR) CancelStepsRequest(input *CancelStepsInput) (req *request.Request, output *CancelStepsOutput) {
395	op := &request.Operation{
396		Name:       opCancelSteps,
397		HTTPMethod: "POST",
398		HTTPPath:   "/",
399	}
400
401	if input == nil {
402		input = &CancelStepsInput{}
403	}
404
405	output = &CancelStepsOutput{}
406	req = c.newRequest(op, input, output)
407	return
408}
409
410// CancelSteps API operation for Amazon Elastic MapReduce.
411//
412// Cancels a pending step or steps in a running cluster. Available only in Amazon
413// EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps
414// are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous;
415// it does not guarantee that a step will be canceled, even if the request is
416// successfully submitted. You can only cancel steps that are in a PENDING state.
417//
418// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
419// with awserr.Error's Code and Message methods to get detailed information about
420// the error.
421//
422// See the AWS API reference guide for Amazon Elastic MapReduce's
423// API operation CancelSteps for usage and error information.
424//
425// Returned Error Types:
426//   * InternalServerError
427//   Indicates that an error occurred while processing the request and that the
428//   request was not completed.
429//
430//   * InvalidRequestException
431//   This exception occurs when there is something wrong with user input.
432//
433// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
434func (c *EMR) CancelSteps(input *CancelStepsInput) (*CancelStepsOutput, error) {
435	req, out := c.CancelStepsRequest(input)
436	return out, req.Send()
437}
438
439// CancelStepsWithContext is the same as CancelSteps with the addition of
440// the ability to pass a context and additional request options.
441//
442// See CancelSteps for details on how to use this API operation.
443//
444// The context must be non-nil and will be used for request cancellation. If
445// the context is nil a panic will occur. In the future the SDK may create
446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
447// for more information on using Contexts.
448func (c *EMR) CancelStepsWithContext(ctx aws.Context, input *CancelStepsInput, opts ...request.Option) (*CancelStepsOutput, error) {
449	req, out := c.CancelStepsRequest(input)
450	req.SetContext(ctx)
451	req.ApplyOptions(opts...)
452	return out, req.Send()
453}
454
455const opCreateSecurityConfiguration = "CreateSecurityConfiguration"
456
457// CreateSecurityConfigurationRequest generates a "aws/request.Request" representing the
458// client's request for the CreateSecurityConfiguration operation. The "output" return
459// value will be populated with the request's response once the request completes
460// successfully.
461//
462// Use "Send" method on the returned Request to send the API call to the service.
463// the "output" return value is not valid until after Send returns without error.
464//
465// See CreateSecurityConfiguration for more information on using the CreateSecurityConfiguration
466// API call, and error handling.
467//
468// This method is useful when you want to inject custom logic or configuration
469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
470//
471//
472//    // Example sending a request using the CreateSecurityConfigurationRequest method.
473//    req, resp := client.CreateSecurityConfigurationRequest(params)
474//
475//    err := req.Send()
476//    if err == nil { // resp is now filled
477//        fmt.Println(resp)
478//    }
479//
480// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
481func (c *EMR) CreateSecurityConfigurationRequest(input *CreateSecurityConfigurationInput) (req *request.Request, output *CreateSecurityConfigurationOutput) {
482	op := &request.Operation{
483		Name:       opCreateSecurityConfiguration,
484		HTTPMethod: "POST",
485		HTTPPath:   "/",
486	}
487
488	if input == nil {
489		input = &CreateSecurityConfigurationInput{}
490	}
491
492	output = &CreateSecurityConfigurationOutput{}
493	req = c.newRequest(op, input, output)
494	return
495}
496
497// CreateSecurityConfiguration API operation for Amazon Elastic MapReduce.
498//
499// Creates a security configuration, which is stored in the service and can
500// be specified when a cluster is created.
501//
502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
503// with awserr.Error's Code and Message methods to get detailed information about
504// the error.
505//
506// See the AWS API reference guide for Amazon Elastic MapReduce's
507// API operation CreateSecurityConfiguration for usage and error information.
508//
509// Returned Error Types:
510//   * InternalServerException
511//   This exception occurs when there is an internal failure in the EMR service.
512//
513//   * InvalidRequestException
514//   This exception occurs when there is something wrong with user input.
515//
516// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
517func (c *EMR) CreateSecurityConfiguration(input *CreateSecurityConfigurationInput) (*CreateSecurityConfigurationOutput, error) {
518	req, out := c.CreateSecurityConfigurationRequest(input)
519	return out, req.Send()
520}
521
522// CreateSecurityConfigurationWithContext is the same as CreateSecurityConfiguration with the addition of
523// the ability to pass a context and additional request options.
524//
525// See CreateSecurityConfiguration for details on how to use this API operation.
526//
527// The context must be non-nil and will be used for request cancellation. If
528// the context is nil a panic will occur. In the future the SDK may create
529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
530// for more information on using Contexts.
531func (c *EMR) CreateSecurityConfigurationWithContext(ctx aws.Context, input *CreateSecurityConfigurationInput, opts ...request.Option) (*CreateSecurityConfigurationOutput, error) {
532	req, out := c.CreateSecurityConfigurationRequest(input)
533	req.SetContext(ctx)
534	req.ApplyOptions(opts...)
535	return out, req.Send()
536}
537
538const opCreateStudio = "CreateStudio"
539
540// CreateStudioRequest generates a "aws/request.Request" representing the
541// client's request for the CreateStudio operation. The "output" return
542// value will be populated with the request's response once the request completes
543// successfully.
544//
545// Use "Send" method on the returned Request to send the API call to the service.
546// the "output" return value is not valid until after Send returns without error.
547//
548// See CreateStudio for more information on using the CreateStudio
549// API call, and error handling.
550//
551// This method is useful when you want to inject custom logic or configuration
552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
553//
554//
555//    // Example sending a request using the CreateStudioRequest method.
556//    req, resp := client.CreateStudioRequest(params)
557//
558//    err := req.Send()
559//    if err == nil { // resp is now filled
560//        fmt.Println(resp)
561//    }
562//
563// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
564func (c *EMR) CreateStudioRequest(input *CreateStudioInput) (req *request.Request, output *CreateStudioOutput) {
565	op := &request.Operation{
566		Name:       opCreateStudio,
567		HTTPMethod: "POST",
568		HTTPPath:   "/",
569	}
570
571	if input == nil {
572		input = &CreateStudioInput{}
573	}
574
575	output = &CreateStudioOutput{}
576	req = c.newRequest(op, input, output)
577	return
578}
579
580// CreateStudio API operation for Amazon Elastic MapReduce.
581//
582//
583// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
584// subject to change.
585//
586// Creates a new Amazon EMR Studio.
587//
588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
589// with awserr.Error's Code and Message methods to get detailed information about
590// the error.
591//
592// See the AWS API reference guide for Amazon Elastic MapReduce's
593// API operation CreateStudio for usage and error information.
594//
595// Returned Error Types:
596//   * InternalServerException
597//   This exception occurs when there is an internal failure in the EMR 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//
670// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
671// subject to change.
672//
673// Maps a user or group to the Amazon EMR Studio specified by StudioId, and
674// applies a session policy to refine Studio permissions for that user or group.
675//
676// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
677// with awserr.Error's Code and Message methods to get detailed information about
678// the error.
679//
680// See the AWS API reference guide for Amazon Elastic MapReduce's
681// API operation CreateStudioSessionMapping for usage and error information.
682//
683// Returned Error Types:
684//   * InternalServerError
685//   Indicates that an error occurred while processing the request and that the
686//   request was not completed.
687//
688//   * InvalidRequestException
689//   This exception occurs when there is something wrong with user input.
690//
691// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
692func (c *EMR) CreateStudioSessionMapping(input *CreateStudioSessionMappingInput) (*CreateStudioSessionMappingOutput, error) {
693	req, out := c.CreateStudioSessionMappingRequest(input)
694	return out, req.Send()
695}
696
697// CreateStudioSessionMappingWithContext is the same as CreateStudioSessionMapping with the addition of
698// the ability to pass a context and additional request options.
699//
700// See CreateStudioSessionMapping for details on how to use this API operation.
701//
702// The context must be non-nil and will be used for request cancellation. If
703// the context is nil a panic will occur. In the future the SDK may create
704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
705// for more information on using Contexts.
706func (c *EMR) CreateStudioSessionMappingWithContext(ctx aws.Context, input *CreateStudioSessionMappingInput, opts ...request.Option) (*CreateStudioSessionMappingOutput, error) {
707	req, out := c.CreateStudioSessionMappingRequest(input)
708	req.SetContext(ctx)
709	req.ApplyOptions(opts...)
710	return out, req.Send()
711}
712
713const opDeleteSecurityConfiguration = "DeleteSecurityConfiguration"
714
715// DeleteSecurityConfigurationRequest generates a "aws/request.Request" representing the
716// client's request for the DeleteSecurityConfiguration operation. The "output" return
717// value will be populated with the request's response once the request completes
718// successfully.
719//
720// Use "Send" method on the returned Request to send the API call to the service.
721// the "output" return value is not valid until after Send returns without error.
722//
723// See DeleteSecurityConfiguration for more information on using the DeleteSecurityConfiguration
724// API call, and error handling.
725//
726// This method is useful when you want to inject custom logic or configuration
727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
728//
729//
730//    // Example sending a request using the DeleteSecurityConfigurationRequest method.
731//    req, resp := client.DeleteSecurityConfigurationRequest(params)
732//
733//    err := req.Send()
734//    if err == nil { // resp is now filled
735//        fmt.Println(resp)
736//    }
737//
738// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
739func (c *EMR) DeleteSecurityConfigurationRequest(input *DeleteSecurityConfigurationInput) (req *request.Request, output *DeleteSecurityConfigurationOutput) {
740	op := &request.Operation{
741		Name:       opDeleteSecurityConfiguration,
742		HTTPMethod: "POST",
743		HTTPPath:   "/",
744	}
745
746	if input == nil {
747		input = &DeleteSecurityConfigurationInput{}
748	}
749
750	output = &DeleteSecurityConfigurationOutput{}
751	req = c.newRequest(op, input, output)
752	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
753	return
754}
755
756// DeleteSecurityConfiguration API operation for Amazon Elastic MapReduce.
757//
758// Deletes a security configuration.
759//
760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
761// with awserr.Error's Code and Message methods to get detailed information about
762// the error.
763//
764// See the AWS API reference guide for Amazon Elastic MapReduce's
765// API operation DeleteSecurityConfiguration for usage and error information.
766//
767// Returned Error Types:
768//   * InternalServerException
769//   This exception occurs when there is an internal failure in the EMR service.
770//
771//   * InvalidRequestException
772//   This exception occurs when there is something wrong with user input.
773//
774// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
775func (c *EMR) DeleteSecurityConfiguration(input *DeleteSecurityConfigurationInput) (*DeleteSecurityConfigurationOutput, error) {
776	req, out := c.DeleteSecurityConfigurationRequest(input)
777	return out, req.Send()
778}
779
780// DeleteSecurityConfigurationWithContext is the same as DeleteSecurityConfiguration with the addition of
781// the ability to pass a context and additional request options.
782//
783// See DeleteSecurityConfiguration for details on how to use this API operation.
784//
785// The context must be non-nil and will be used for request cancellation. If
786// the context is nil a panic will occur. In the future the SDK may create
787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
788// for more information on using Contexts.
789func (c *EMR) DeleteSecurityConfigurationWithContext(ctx aws.Context, input *DeleteSecurityConfigurationInput, opts ...request.Option) (*DeleteSecurityConfigurationOutput, error) {
790	req, out := c.DeleteSecurityConfigurationRequest(input)
791	req.SetContext(ctx)
792	req.ApplyOptions(opts...)
793	return out, req.Send()
794}
795
796const opDeleteStudio = "DeleteStudio"
797
798// DeleteStudioRequest generates a "aws/request.Request" representing the
799// client's request for the DeleteStudio operation. The "output" return
800// value will be populated with the request's response once the request completes
801// successfully.
802//
803// Use "Send" method on the returned Request to send the API call to the service.
804// the "output" return value is not valid until after Send returns without error.
805//
806// See DeleteStudio for more information on using the DeleteStudio
807// API call, and error handling.
808//
809// This method is useful when you want to inject custom logic or configuration
810// into the SDK's request lifecycle. Such as custom headers, or retry logic.
811//
812//
813//    // Example sending a request using the DeleteStudioRequest method.
814//    req, resp := client.DeleteStudioRequest(params)
815//
816//    err := req.Send()
817//    if err == nil { // resp is now filled
818//        fmt.Println(resp)
819//    }
820//
821// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
822func (c *EMR) DeleteStudioRequest(input *DeleteStudioInput) (req *request.Request, output *DeleteStudioOutput) {
823	op := &request.Operation{
824		Name:       opDeleteStudio,
825		HTTPMethod: "POST",
826		HTTPPath:   "/",
827	}
828
829	if input == nil {
830		input = &DeleteStudioInput{}
831	}
832
833	output = &DeleteStudioOutput{}
834	req = c.newRequest(op, input, output)
835	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
836	return
837}
838
839// DeleteStudio API operation for Amazon Elastic MapReduce.
840//
841//
842// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
843// subject to change.
844//
845// Removes an Amazon EMR Studio from the Studio metadata store.
846//
847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
848// with awserr.Error's Code and Message methods to get detailed information about
849// the error.
850//
851// See the AWS API reference guide for Amazon Elastic MapReduce's
852// API operation DeleteStudio for usage and error information.
853//
854// Returned Error Types:
855//   * InternalServerException
856//   This exception occurs when there is an internal failure in the EMR service.
857//
858//   * InvalidRequestException
859//   This exception occurs when there is something wrong with user input.
860//
861// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
862func (c *EMR) DeleteStudio(input *DeleteStudioInput) (*DeleteStudioOutput, error) {
863	req, out := c.DeleteStudioRequest(input)
864	return out, req.Send()
865}
866
867// DeleteStudioWithContext is the same as DeleteStudio with the addition of
868// the ability to pass a context and additional request options.
869//
870// See DeleteStudio for details on how to use this API operation.
871//
872// The context must be non-nil and will be used for request cancellation. If
873// the context is nil a panic will occur. In the future the SDK may create
874// sub-contexts for http.Requests. See https://golang.org/pkg/context/
875// for more information on using Contexts.
876func (c *EMR) DeleteStudioWithContext(ctx aws.Context, input *DeleteStudioInput, opts ...request.Option) (*DeleteStudioOutput, error) {
877	req, out := c.DeleteStudioRequest(input)
878	req.SetContext(ctx)
879	req.ApplyOptions(opts...)
880	return out, req.Send()
881}
882
883const opDeleteStudioSessionMapping = "DeleteStudioSessionMapping"
884
885// DeleteStudioSessionMappingRequest generates a "aws/request.Request" representing the
886// client's request for the DeleteStudioSessionMapping operation. The "output" return
887// value will be populated with the request's response once the request completes
888// successfully.
889//
890// Use "Send" method on the returned Request to send the API call to the service.
891// the "output" return value is not valid until after Send returns without error.
892//
893// See DeleteStudioSessionMapping for more information on using the DeleteStudioSessionMapping
894// API call, and error handling.
895//
896// This method is useful when you want to inject custom logic or configuration
897// into the SDK's request lifecycle. Such as custom headers, or retry logic.
898//
899//
900//    // Example sending a request using the DeleteStudioSessionMappingRequest method.
901//    req, resp := client.DeleteStudioSessionMappingRequest(params)
902//
903//    err := req.Send()
904//    if err == nil { // resp is now filled
905//        fmt.Println(resp)
906//    }
907//
908// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
909func (c *EMR) DeleteStudioSessionMappingRequest(input *DeleteStudioSessionMappingInput) (req *request.Request, output *DeleteStudioSessionMappingOutput) {
910	op := &request.Operation{
911		Name:       opDeleteStudioSessionMapping,
912		HTTPMethod: "POST",
913		HTTPPath:   "/",
914	}
915
916	if input == nil {
917		input = &DeleteStudioSessionMappingInput{}
918	}
919
920	output = &DeleteStudioSessionMappingOutput{}
921	req = c.newRequest(op, input, output)
922	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
923	return
924}
925
926// DeleteStudioSessionMapping API operation for Amazon Elastic MapReduce.
927//
928//
929// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
930// subject to change.
931//
932// Removes a user or group from an Amazon EMR Studio.
933//
934// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
935// with awserr.Error's Code and Message methods to get detailed information about
936// the error.
937//
938// See the AWS API reference guide for Amazon Elastic MapReduce's
939// API operation DeleteStudioSessionMapping for usage and error information.
940//
941// Returned Error Types:
942//   * InternalServerError
943//   Indicates that an error occurred while processing the request and that the
944//   request was not completed.
945//
946//   * InvalidRequestException
947//   This exception occurs when there is something wrong with user input.
948//
949// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
950func (c *EMR) DeleteStudioSessionMapping(input *DeleteStudioSessionMappingInput) (*DeleteStudioSessionMappingOutput, error) {
951	req, out := c.DeleteStudioSessionMappingRequest(input)
952	return out, req.Send()
953}
954
955// DeleteStudioSessionMappingWithContext is the same as DeleteStudioSessionMapping with the addition of
956// the ability to pass a context and additional request options.
957//
958// See DeleteStudioSessionMapping for details on how to use this API operation.
959//
960// The context must be non-nil and will be used for request cancellation. If
961// the context is nil a panic will occur. In the future the SDK may create
962// sub-contexts for http.Requests. See https://golang.org/pkg/context/
963// for more information on using Contexts.
964func (c *EMR) DeleteStudioSessionMappingWithContext(ctx aws.Context, input *DeleteStudioSessionMappingInput, opts ...request.Option) (*DeleteStudioSessionMappingOutput, error) {
965	req, out := c.DeleteStudioSessionMappingRequest(input)
966	req.SetContext(ctx)
967	req.ApplyOptions(opts...)
968	return out, req.Send()
969}
970
971const opDescribeCluster = "DescribeCluster"
972
973// DescribeClusterRequest generates a "aws/request.Request" representing the
974// client's request for the DescribeCluster operation. The "output" return
975// value will be populated with the request's response once the request completes
976// successfully.
977//
978// Use "Send" method on the returned Request to send the API call to the service.
979// the "output" return value is not valid until after Send returns without error.
980//
981// See DescribeCluster for more information on using the DescribeCluster
982// API call, and error handling.
983//
984// This method is useful when you want to inject custom logic or configuration
985// into the SDK's request lifecycle. Such as custom headers, or retry logic.
986//
987//
988//    // Example sending a request using the DescribeClusterRequest method.
989//    req, resp := client.DescribeClusterRequest(params)
990//
991//    err := req.Send()
992//    if err == nil { // resp is now filled
993//        fmt.Println(resp)
994//    }
995//
996// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
997func (c *EMR) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
998	op := &request.Operation{
999		Name:       opDescribeCluster,
1000		HTTPMethod: "POST",
1001		HTTPPath:   "/",
1002	}
1003
1004	if input == nil {
1005		input = &DescribeClusterInput{}
1006	}
1007
1008	output = &DescribeClusterOutput{}
1009	req = c.newRequest(op, input, output)
1010	return
1011}
1012
1013// DescribeCluster API operation for Amazon Elastic MapReduce.
1014//
1015// Provides cluster-level details including status, hardware and software configuration,
1016// VPC settings, and so on.
1017//
1018// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1019// with awserr.Error's Code and Message methods to get detailed information about
1020// the error.
1021//
1022// See the AWS API reference guide for Amazon Elastic MapReduce's
1023// API operation DescribeCluster for usage and error information.
1024//
1025// Returned Error Types:
1026//   * InternalServerException
1027//   This exception occurs when there is an internal failure in the EMR service.
1028//
1029//   * InvalidRequestException
1030//   This exception occurs when there is something wrong with user input.
1031//
1032// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
1033func (c *EMR) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
1034	req, out := c.DescribeClusterRequest(input)
1035	return out, req.Send()
1036}
1037
1038// DescribeClusterWithContext is the same as DescribeCluster with the addition of
1039// the ability to pass a context and additional request options.
1040//
1041// See DescribeCluster for details on how to use this API operation.
1042//
1043// The context must be non-nil and will be used for request cancellation. If
1044// the context is nil a panic will occur. In the future the SDK may create
1045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1046// for more information on using Contexts.
1047func (c *EMR) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
1048	req, out := c.DescribeClusterRequest(input)
1049	req.SetContext(ctx)
1050	req.ApplyOptions(opts...)
1051	return out, req.Send()
1052}
1053
1054const opDescribeJobFlows = "DescribeJobFlows"
1055
1056// DescribeJobFlowsRequest generates a "aws/request.Request" representing the
1057// client's request for the DescribeJobFlows operation. The "output" return
1058// value will be populated with the request's response once the request completes
1059// successfully.
1060//
1061// Use "Send" method on the returned Request to send the API call to the service.
1062// the "output" return value is not valid until after Send returns without error.
1063//
1064// See DescribeJobFlows for more information on using the DescribeJobFlows
1065// API call, and error handling.
1066//
1067// This method is useful when you want to inject custom logic or configuration
1068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1069//
1070//
1071//    // Example sending a request using the DescribeJobFlowsRequest method.
1072//    req, resp := client.DescribeJobFlowsRequest(params)
1073//
1074//    err := req.Send()
1075//    if err == nil { // resp is now filled
1076//        fmt.Println(resp)
1077//    }
1078//
1079// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1080//
1081// Deprecated: DescribeJobFlows has been deprecated
1082func (c *EMR) DescribeJobFlowsRequest(input *DescribeJobFlowsInput) (req *request.Request, output *DescribeJobFlowsOutput) {
1083	if c.Client.Config.Logger != nil {
1084		c.Client.Config.Logger.Log("This operation, DescribeJobFlows, has been deprecated")
1085	}
1086	op := &request.Operation{
1087		Name:       opDescribeJobFlows,
1088		HTTPMethod: "POST",
1089		HTTPPath:   "/",
1090	}
1091
1092	if input == nil {
1093		input = &DescribeJobFlowsInput{}
1094	}
1095
1096	output = &DescribeJobFlowsOutput{}
1097	req = c.newRequest(op, input, output)
1098	return
1099}
1100
1101// DescribeJobFlows API operation for Amazon Elastic MapReduce.
1102//
1103// This API is no longer supported and will eventually be removed. We recommend
1104// you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and
1105// ListBootstrapActions instead.
1106//
1107// DescribeJobFlows returns a list of job flows that match all of the supplied
1108// parameters. The parameters can include a list of job flow IDs, job flow states,
1109// and restrictions on job flow creation date and time.
1110//
1111// Regardless of supplied parameters, only job flows created within the last
1112// two months are returned.
1113//
1114// If no parameters are supplied, then job flows matching either of the following
1115// criteria are returned:
1116//
1117//    * Job flows created and completed in the last two weeks
1118//
1119//    * Job flows created within the last two months that are in one of the
1120//    following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING
1121//
1122// Amazon EMR can return a maximum of 512 job flow descriptions.
1123//
1124// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1125// with awserr.Error's Code and Message methods to get detailed information about
1126// the error.
1127//
1128// See the AWS API reference guide for Amazon Elastic MapReduce's
1129// API operation DescribeJobFlows for usage and error information.
1130//
1131// Returned Error Types:
1132//   * InternalServerError
1133//   Indicates that an error occurred while processing the request and that the
1134//   request was not completed.
1135//
1136// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1137//
1138// Deprecated: DescribeJobFlows has been deprecated
1139func (c *EMR) DescribeJobFlows(input *DescribeJobFlowsInput) (*DescribeJobFlowsOutput, error) {
1140	req, out := c.DescribeJobFlowsRequest(input)
1141	return out, req.Send()
1142}
1143
1144// DescribeJobFlowsWithContext is the same as DescribeJobFlows with the addition of
1145// the ability to pass a context and additional request options.
1146//
1147// See DescribeJobFlows for details on how to use this API operation.
1148//
1149// The context must be non-nil and will be used for request cancellation. If
1150// the context is nil a panic will occur. In the future the SDK may create
1151// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1152// for more information on using Contexts.
1153//
1154// Deprecated: DescribeJobFlowsWithContext has been deprecated
1155func (c *EMR) DescribeJobFlowsWithContext(ctx aws.Context, input *DescribeJobFlowsInput, opts ...request.Option) (*DescribeJobFlowsOutput, error) {
1156	req, out := c.DescribeJobFlowsRequest(input)
1157	req.SetContext(ctx)
1158	req.ApplyOptions(opts...)
1159	return out, req.Send()
1160}
1161
1162const opDescribeNotebookExecution = "DescribeNotebookExecution"
1163
1164// DescribeNotebookExecutionRequest generates a "aws/request.Request" representing the
1165// client's request for the DescribeNotebookExecution operation. The "output" return
1166// value will be populated with the request's response once the request completes
1167// successfully.
1168//
1169// Use "Send" method on the returned Request to send the API call to the service.
1170// the "output" return value is not valid until after Send returns without error.
1171//
1172// See DescribeNotebookExecution for more information on using the DescribeNotebookExecution
1173// API call, and error handling.
1174//
1175// This method is useful when you want to inject custom logic or configuration
1176// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1177//
1178//
1179//    // Example sending a request using the DescribeNotebookExecutionRequest method.
1180//    req, resp := client.DescribeNotebookExecutionRequest(params)
1181//
1182//    err := req.Send()
1183//    if err == nil { // resp is now filled
1184//        fmt.Println(resp)
1185//    }
1186//
1187// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1188func (c *EMR) DescribeNotebookExecutionRequest(input *DescribeNotebookExecutionInput) (req *request.Request, output *DescribeNotebookExecutionOutput) {
1189	op := &request.Operation{
1190		Name:       opDescribeNotebookExecution,
1191		HTTPMethod: "POST",
1192		HTTPPath:   "/",
1193	}
1194
1195	if input == nil {
1196		input = &DescribeNotebookExecutionInput{}
1197	}
1198
1199	output = &DescribeNotebookExecutionOutput{}
1200	req = c.newRequest(op, input, output)
1201	return
1202}
1203
1204// DescribeNotebookExecution API operation for Amazon Elastic MapReduce.
1205//
1206// Provides details of a notebook execution.
1207//
1208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1209// with awserr.Error's Code and Message methods to get detailed information about
1210// the error.
1211//
1212// See the AWS API reference guide for Amazon Elastic MapReduce's
1213// API operation DescribeNotebookExecution for usage and error information.
1214//
1215// Returned Error Types:
1216//   * InternalServerError
1217//   Indicates that an error occurred while processing the request and that the
1218//   request was not completed.
1219//
1220//   * InvalidRequestException
1221//   This exception occurs when there is something wrong with user input.
1222//
1223// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1224func (c *EMR) DescribeNotebookExecution(input *DescribeNotebookExecutionInput) (*DescribeNotebookExecutionOutput, error) {
1225	req, out := c.DescribeNotebookExecutionRequest(input)
1226	return out, req.Send()
1227}
1228
1229// DescribeNotebookExecutionWithContext is the same as DescribeNotebookExecution with the addition of
1230// the ability to pass a context and additional request options.
1231//
1232// See DescribeNotebookExecution for details on how to use this API operation.
1233//
1234// The context must be non-nil and will be used for request cancellation. If
1235// the context is nil a panic will occur. In the future the SDK may create
1236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1237// for more information on using Contexts.
1238func (c *EMR) DescribeNotebookExecutionWithContext(ctx aws.Context, input *DescribeNotebookExecutionInput, opts ...request.Option) (*DescribeNotebookExecutionOutput, error) {
1239	req, out := c.DescribeNotebookExecutionRequest(input)
1240	req.SetContext(ctx)
1241	req.ApplyOptions(opts...)
1242	return out, req.Send()
1243}
1244
1245const opDescribeSecurityConfiguration = "DescribeSecurityConfiguration"
1246
1247// DescribeSecurityConfigurationRequest generates a "aws/request.Request" representing the
1248// client's request for the DescribeSecurityConfiguration operation. The "output" return
1249// value will be populated with the request's response once the request completes
1250// successfully.
1251//
1252// Use "Send" method on the returned Request to send the API call to the service.
1253// the "output" return value is not valid until after Send returns without error.
1254//
1255// See DescribeSecurityConfiguration for more information on using the DescribeSecurityConfiguration
1256// API call, and error handling.
1257//
1258// This method is useful when you want to inject custom logic or configuration
1259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1260//
1261//
1262//    // Example sending a request using the DescribeSecurityConfigurationRequest method.
1263//    req, resp := client.DescribeSecurityConfigurationRequest(params)
1264//
1265//    err := req.Send()
1266//    if err == nil { // resp is now filled
1267//        fmt.Println(resp)
1268//    }
1269//
1270// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1271func (c *EMR) DescribeSecurityConfigurationRequest(input *DescribeSecurityConfigurationInput) (req *request.Request, output *DescribeSecurityConfigurationOutput) {
1272	op := &request.Operation{
1273		Name:       opDescribeSecurityConfiguration,
1274		HTTPMethod: "POST",
1275		HTTPPath:   "/",
1276	}
1277
1278	if input == nil {
1279		input = &DescribeSecurityConfigurationInput{}
1280	}
1281
1282	output = &DescribeSecurityConfigurationOutput{}
1283	req = c.newRequest(op, input, output)
1284	return
1285}
1286
1287// DescribeSecurityConfiguration API operation for Amazon Elastic MapReduce.
1288//
1289// Provides the details of a security configuration by returning the configuration
1290// JSON.
1291//
1292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1293// with awserr.Error's Code and Message methods to get detailed information about
1294// the error.
1295//
1296// See the AWS API reference guide for Amazon Elastic MapReduce's
1297// API operation DescribeSecurityConfiguration for usage and error information.
1298//
1299// Returned Error Types:
1300//   * InternalServerException
1301//   This exception occurs when there is an internal failure in the EMR service.
1302//
1303//   * InvalidRequestException
1304//   This exception occurs when there is something wrong with user input.
1305//
1306// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1307func (c *EMR) DescribeSecurityConfiguration(input *DescribeSecurityConfigurationInput) (*DescribeSecurityConfigurationOutput, error) {
1308	req, out := c.DescribeSecurityConfigurationRequest(input)
1309	return out, req.Send()
1310}
1311
1312// DescribeSecurityConfigurationWithContext is the same as DescribeSecurityConfiguration with the addition of
1313// the ability to pass a context and additional request options.
1314//
1315// See DescribeSecurityConfiguration for details on how to use this API operation.
1316//
1317// The context must be non-nil and will be used for request cancellation. If
1318// the context is nil a panic will occur. In the future the SDK may create
1319// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1320// for more information on using Contexts.
1321func (c *EMR) DescribeSecurityConfigurationWithContext(ctx aws.Context, input *DescribeSecurityConfigurationInput, opts ...request.Option) (*DescribeSecurityConfigurationOutput, error) {
1322	req, out := c.DescribeSecurityConfigurationRequest(input)
1323	req.SetContext(ctx)
1324	req.ApplyOptions(opts...)
1325	return out, req.Send()
1326}
1327
1328const opDescribeStep = "DescribeStep"
1329
1330// DescribeStepRequest generates a "aws/request.Request" representing the
1331// client's request for the DescribeStep operation. The "output" return
1332// value will be populated with the request's response once the request completes
1333// successfully.
1334//
1335// Use "Send" method on the returned Request to send the API call to the service.
1336// the "output" return value is not valid until after Send returns without error.
1337//
1338// See DescribeStep for more information on using the DescribeStep
1339// API call, and error handling.
1340//
1341// This method is useful when you want to inject custom logic or configuration
1342// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1343//
1344//
1345//    // Example sending a request using the DescribeStepRequest method.
1346//    req, resp := client.DescribeStepRequest(params)
1347//
1348//    err := req.Send()
1349//    if err == nil { // resp is now filled
1350//        fmt.Println(resp)
1351//    }
1352//
1353// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1354func (c *EMR) DescribeStepRequest(input *DescribeStepInput) (req *request.Request, output *DescribeStepOutput) {
1355	op := &request.Operation{
1356		Name:       opDescribeStep,
1357		HTTPMethod: "POST",
1358		HTTPPath:   "/",
1359	}
1360
1361	if input == nil {
1362		input = &DescribeStepInput{}
1363	}
1364
1365	output = &DescribeStepOutput{}
1366	req = c.newRequest(op, input, output)
1367	return
1368}
1369
1370// DescribeStep API operation for Amazon Elastic MapReduce.
1371//
1372// Provides more detail about the cluster step.
1373//
1374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1375// with awserr.Error's Code and Message methods to get detailed information about
1376// the error.
1377//
1378// See the AWS API reference guide for Amazon Elastic MapReduce's
1379// API operation DescribeStep for usage and error information.
1380//
1381// Returned Error Types:
1382//   * InternalServerException
1383//   This exception occurs when there is an internal failure in the EMR service.
1384//
1385//   * InvalidRequestException
1386//   This exception occurs when there is something wrong with user input.
1387//
1388// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1389func (c *EMR) DescribeStep(input *DescribeStepInput) (*DescribeStepOutput, error) {
1390	req, out := c.DescribeStepRequest(input)
1391	return out, req.Send()
1392}
1393
1394// DescribeStepWithContext is the same as DescribeStep with the addition of
1395// the ability to pass a context and additional request options.
1396//
1397// See DescribeStep for details on how to use this API operation.
1398//
1399// The context must be non-nil and will be used for request cancellation. If
1400// the context is nil a panic will occur. In the future the SDK may create
1401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1402// for more information on using Contexts.
1403func (c *EMR) DescribeStepWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.Option) (*DescribeStepOutput, error) {
1404	req, out := c.DescribeStepRequest(input)
1405	req.SetContext(ctx)
1406	req.ApplyOptions(opts...)
1407	return out, req.Send()
1408}
1409
1410const opDescribeStudio = "DescribeStudio"
1411
1412// DescribeStudioRequest generates a "aws/request.Request" representing the
1413// client's request for the DescribeStudio operation. The "output" return
1414// value will be populated with the request's response once the request completes
1415// successfully.
1416//
1417// Use "Send" method on the returned Request to send the API call to the service.
1418// the "output" return value is not valid until after Send returns without error.
1419//
1420// See DescribeStudio for more information on using the DescribeStudio
1421// API call, and error handling.
1422//
1423// This method is useful when you want to inject custom logic or configuration
1424// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1425//
1426//
1427//    // Example sending a request using the DescribeStudioRequest method.
1428//    req, resp := client.DescribeStudioRequest(params)
1429//
1430//    err := req.Send()
1431//    if err == nil { // resp is now filled
1432//        fmt.Println(resp)
1433//    }
1434//
1435// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1436func (c *EMR) DescribeStudioRequest(input *DescribeStudioInput) (req *request.Request, output *DescribeStudioOutput) {
1437	op := &request.Operation{
1438		Name:       opDescribeStudio,
1439		HTTPMethod: "POST",
1440		HTTPPath:   "/",
1441	}
1442
1443	if input == nil {
1444		input = &DescribeStudioInput{}
1445	}
1446
1447	output = &DescribeStudioOutput{}
1448	req = c.newRequest(op, input, output)
1449	return
1450}
1451
1452// DescribeStudio API operation for Amazon Elastic MapReduce.
1453//
1454//
1455// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
1456// subject to change.
1457//
1458// Returns details for the specified Amazon EMR Studio including ID, Name, VPC,
1459// Studio access URL, and so on.
1460//
1461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1462// with awserr.Error's Code and Message methods to get detailed information about
1463// the error.
1464//
1465// See the AWS API reference guide for Amazon Elastic MapReduce's
1466// API operation DescribeStudio for usage and error information.
1467//
1468// Returned Error Types:
1469//   * InternalServerException
1470//   This exception occurs when there is an internal failure in the EMR service.
1471//
1472//   * InvalidRequestException
1473//   This exception occurs when there is something wrong with user input.
1474//
1475// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1476func (c *EMR) DescribeStudio(input *DescribeStudioInput) (*DescribeStudioOutput, error) {
1477	req, out := c.DescribeStudioRequest(input)
1478	return out, req.Send()
1479}
1480
1481// DescribeStudioWithContext is the same as DescribeStudio with the addition of
1482// the ability to pass a context and additional request options.
1483//
1484// See DescribeStudio for details on how to use this API operation.
1485//
1486// The context must be non-nil and will be used for request cancellation. If
1487// the context is nil a panic will occur. In the future the SDK may create
1488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1489// for more information on using Contexts.
1490func (c *EMR) DescribeStudioWithContext(ctx aws.Context, input *DescribeStudioInput, opts ...request.Option) (*DescribeStudioOutput, error) {
1491	req, out := c.DescribeStudioRequest(input)
1492	req.SetContext(ctx)
1493	req.ApplyOptions(opts...)
1494	return out, req.Send()
1495}
1496
1497const opGetBlockPublicAccessConfiguration = "GetBlockPublicAccessConfiguration"
1498
1499// GetBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
1500// client's request for the GetBlockPublicAccessConfiguration operation. The "output" return
1501// value will be populated with the request's response once the request completes
1502// successfully.
1503//
1504// Use "Send" method on the returned Request to send the API call to the service.
1505// the "output" return value is not valid until after Send returns without error.
1506//
1507// See GetBlockPublicAccessConfiguration for more information on using the GetBlockPublicAccessConfiguration
1508// API call, and error handling.
1509//
1510// This method is useful when you want to inject custom logic or configuration
1511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1512//
1513//
1514//    // Example sending a request using the GetBlockPublicAccessConfigurationRequest method.
1515//    req, resp := client.GetBlockPublicAccessConfigurationRequest(params)
1516//
1517//    err := req.Send()
1518//    if err == nil { // resp is now filled
1519//        fmt.Println(resp)
1520//    }
1521//
1522// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1523func (c *EMR) GetBlockPublicAccessConfigurationRequest(input *GetBlockPublicAccessConfigurationInput) (req *request.Request, output *GetBlockPublicAccessConfigurationOutput) {
1524	op := &request.Operation{
1525		Name:       opGetBlockPublicAccessConfiguration,
1526		HTTPMethod: "POST",
1527		HTTPPath:   "/",
1528	}
1529
1530	if input == nil {
1531		input = &GetBlockPublicAccessConfigurationInput{}
1532	}
1533
1534	output = &GetBlockPublicAccessConfigurationOutput{}
1535	req = c.newRequest(op, input, output)
1536	return
1537}
1538
1539// GetBlockPublicAccessConfiguration API operation for Amazon Elastic MapReduce.
1540//
1541// Returns the Amazon EMR block public access configuration for your AWS account
1542// in the current Region. For more information see Configure Block Public Access
1543// for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
1544// in the Amazon EMR Management Guide.
1545//
1546// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1547// with awserr.Error's Code and Message methods to get detailed information about
1548// the error.
1549//
1550// See the AWS API reference guide for Amazon Elastic MapReduce's
1551// API operation GetBlockPublicAccessConfiguration for usage and error information.
1552//
1553// Returned Error Types:
1554//   * InternalServerException
1555//   This exception occurs when there is an internal failure in the EMR service.
1556//
1557//   * InvalidRequestException
1558//   This exception occurs when there is something wrong with user input.
1559//
1560// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1561func (c *EMR) GetBlockPublicAccessConfiguration(input *GetBlockPublicAccessConfigurationInput) (*GetBlockPublicAccessConfigurationOutput, error) {
1562	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1563	return out, req.Send()
1564}
1565
1566// GetBlockPublicAccessConfigurationWithContext is the same as GetBlockPublicAccessConfiguration with the addition of
1567// the ability to pass a context and additional request options.
1568//
1569// See GetBlockPublicAccessConfiguration for details on how to use this API operation.
1570//
1571// The context must be non-nil and will be used for request cancellation. If
1572// the context is nil a panic will occur. In the future the SDK may create
1573// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1574// for more information on using Contexts.
1575func (c *EMR) GetBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *GetBlockPublicAccessConfigurationInput, opts ...request.Option) (*GetBlockPublicAccessConfigurationOutput, error) {
1576	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1577	req.SetContext(ctx)
1578	req.ApplyOptions(opts...)
1579	return out, req.Send()
1580}
1581
1582const opGetManagedScalingPolicy = "GetManagedScalingPolicy"
1583
1584// GetManagedScalingPolicyRequest generates a "aws/request.Request" representing the
1585// client's request for the GetManagedScalingPolicy operation. The "output" return
1586// value will be populated with the request's response once the request completes
1587// successfully.
1588//
1589// Use "Send" method on the returned Request to send the API call to the service.
1590// the "output" return value is not valid until after Send returns without error.
1591//
1592// See GetManagedScalingPolicy for more information on using the GetManagedScalingPolicy
1593// API call, and error handling.
1594//
1595// This method is useful when you want to inject custom logic or configuration
1596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1597//
1598//
1599//    // Example sending a request using the GetManagedScalingPolicyRequest method.
1600//    req, resp := client.GetManagedScalingPolicyRequest(params)
1601//
1602//    err := req.Send()
1603//    if err == nil { // resp is now filled
1604//        fmt.Println(resp)
1605//    }
1606//
1607// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1608func (c *EMR) GetManagedScalingPolicyRequest(input *GetManagedScalingPolicyInput) (req *request.Request, output *GetManagedScalingPolicyOutput) {
1609	op := &request.Operation{
1610		Name:       opGetManagedScalingPolicy,
1611		HTTPMethod: "POST",
1612		HTTPPath:   "/",
1613	}
1614
1615	if input == nil {
1616		input = &GetManagedScalingPolicyInput{}
1617	}
1618
1619	output = &GetManagedScalingPolicyOutput{}
1620	req = c.newRequest(op, input, output)
1621	return
1622}
1623
1624// GetManagedScalingPolicy API operation for Amazon Elastic MapReduce.
1625//
1626// Fetches the attached managed scaling policy for an Amazon EMR cluster.
1627//
1628// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1629// with awserr.Error's Code and Message methods to get detailed information about
1630// the error.
1631//
1632// See the AWS API reference guide for Amazon Elastic MapReduce's
1633// API operation GetManagedScalingPolicy for usage and error information.
1634// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1635func (c *EMR) GetManagedScalingPolicy(input *GetManagedScalingPolicyInput) (*GetManagedScalingPolicyOutput, error) {
1636	req, out := c.GetManagedScalingPolicyRequest(input)
1637	return out, req.Send()
1638}
1639
1640// GetManagedScalingPolicyWithContext is the same as GetManagedScalingPolicy with the addition of
1641// the ability to pass a context and additional request options.
1642//
1643// See GetManagedScalingPolicy for details on how to use this API operation.
1644//
1645// The context must be non-nil and will be used for request cancellation. If
1646// the context is nil a panic will occur. In the future the SDK may create
1647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1648// for more information on using Contexts.
1649func (c *EMR) GetManagedScalingPolicyWithContext(ctx aws.Context, input *GetManagedScalingPolicyInput, opts ...request.Option) (*GetManagedScalingPolicyOutput, error) {
1650	req, out := c.GetManagedScalingPolicyRequest(input)
1651	req.SetContext(ctx)
1652	req.ApplyOptions(opts...)
1653	return out, req.Send()
1654}
1655
1656const opGetStudioSessionMapping = "GetStudioSessionMapping"
1657
1658// GetStudioSessionMappingRequest generates a "aws/request.Request" representing the
1659// client's request for the GetStudioSessionMapping operation. The "output" return
1660// value will be populated with the request's response once the request completes
1661// successfully.
1662//
1663// Use "Send" method on the returned Request to send the API call to the service.
1664// the "output" return value is not valid until after Send returns without error.
1665//
1666// See GetStudioSessionMapping for more information on using the GetStudioSessionMapping
1667// API call, and error handling.
1668//
1669// This method is useful when you want to inject custom logic or configuration
1670// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1671//
1672//
1673//    // Example sending a request using the GetStudioSessionMappingRequest method.
1674//    req, resp := client.GetStudioSessionMappingRequest(params)
1675//
1676//    err := req.Send()
1677//    if err == nil { // resp is now filled
1678//        fmt.Println(resp)
1679//    }
1680//
1681// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1682func (c *EMR) GetStudioSessionMappingRequest(input *GetStudioSessionMappingInput) (req *request.Request, output *GetStudioSessionMappingOutput) {
1683	op := &request.Operation{
1684		Name:       opGetStudioSessionMapping,
1685		HTTPMethod: "POST",
1686		HTTPPath:   "/",
1687	}
1688
1689	if input == nil {
1690		input = &GetStudioSessionMappingInput{}
1691	}
1692
1693	output = &GetStudioSessionMappingOutput{}
1694	req = c.newRequest(op, input, output)
1695	return
1696}
1697
1698// GetStudioSessionMapping API operation for Amazon Elastic MapReduce.
1699//
1700//
1701// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
1702// subject to change.
1703//
1704// Fetches mapping details for the specified Amazon EMR Studio and identity
1705// (user or group).
1706//
1707// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1708// with awserr.Error's Code and Message methods to get detailed information about
1709// the error.
1710//
1711// See the AWS API reference guide for Amazon Elastic MapReduce's
1712// API operation GetStudioSessionMapping for usage and error information.
1713//
1714// Returned Error Types:
1715//   * InternalServerError
1716//   Indicates that an error occurred while processing the request and that the
1717//   request was not completed.
1718//
1719//   * InvalidRequestException
1720//   This exception occurs when there is something wrong with user input.
1721//
1722// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1723func (c *EMR) GetStudioSessionMapping(input *GetStudioSessionMappingInput) (*GetStudioSessionMappingOutput, error) {
1724	req, out := c.GetStudioSessionMappingRequest(input)
1725	return out, req.Send()
1726}
1727
1728// GetStudioSessionMappingWithContext is the same as GetStudioSessionMapping with the addition of
1729// the ability to pass a context and additional request options.
1730//
1731// See GetStudioSessionMapping for details on how to use this API operation.
1732//
1733// The context must be non-nil and will be used for request cancellation. If
1734// the context is nil a panic will occur. In the future the SDK may create
1735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1736// for more information on using Contexts.
1737func (c *EMR) GetStudioSessionMappingWithContext(ctx aws.Context, input *GetStudioSessionMappingInput, opts ...request.Option) (*GetStudioSessionMappingOutput, error) {
1738	req, out := c.GetStudioSessionMappingRequest(input)
1739	req.SetContext(ctx)
1740	req.ApplyOptions(opts...)
1741	return out, req.Send()
1742}
1743
1744const opListBootstrapActions = "ListBootstrapActions"
1745
1746// ListBootstrapActionsRequest generates a "aws/request.Request" representing the
1747// client's request for the ListBootstrapActions operation. The "output" return
1748// value will be populated with the request's response once the request completes
1749// successfully.
1750//
1751// Use "Send" method on the returned Request to send the API call to the service.
1752// the "output" return value is not valid until after Send returns without error.
1753//
1754// See ListBootstrapActions for more information on using the ListBootstrapActions
1755// API call, and error handling.
1756//
1757// This method is useful when you want to inject custom logic or configuration
1758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1759//
1760//
1761//    // Example sending a request using the ListBootstrapActionsRequest method.
1762//    req, resp := client.ListBootstrapActionsRequest(params)
1763//
1764//    err := req.Send()
1765//    if err == nil { // resp is now filled
1766//        fmt.Println(resp)
1767//    }
1768//
1769// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1770func (c *EMR) ListBootstrapActionsRequest(input *ListBootstrapActionsInput) (req *request.Request, output *ListBootstrapActionsOutput) {
1771	op := &request.Operation{
1772		Name:       opListBootstrapActions,
1773		HTTPMethod: "POST",
1774		HTTPPath:   "/",
1775		Paginator: &request.Paginator{
1776			InputTokens:     []string{"Marker"},
1777			OutputTokens:    []string{"Marker"},
1778			LimitToken:      "",
1779			TruncationToken: "",
1780		},
1781	}
1782
1783	if input == nil {
1784		input = &ListBootstrapActionsInput{}
1785	}
1786
1787	output = &ListBootstrapActionsOutput{}
1788	req = c.newRequest(op, input, output)
1789	return
1790}
1791
1792// ListBootstrapActions API operation for Amazon Elastic MapReduce.
1793//
1794// Provides information about the bootstrap actions associated with a cluster.
1795//
1796// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1797// with awserr.Error's Code and Message methods to get detailed information about
1798// the error.
1799//
1800// See the AWS API reference guide for Amazon Elastic MapReduce's
1801// API operation ListBootstrapActions for usage and error information.
1802//
1803// Returned Error Types:
1804//   * InternalServerException
1805//   This exception occurs when there is an internal failure in the EMR service.
1806//
1807//   * InvalidRequestException
1808//   This exception occurs when there is something wrong with user input.
1809//
1810// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1811func (c *EMR) ListBootstrapActions(input *ListBootstrapActionsInput) (*ListBootstrapActionsOutput, error) {
1812	req, out := c.ListBootstrapActionsRequest(input)
1813	return out, req.Send()
1814}
1815
1816// ListBootstrapActionsWithContext is the same as ListBootstrapActions with the addition of
1817// the ability to pass a context and additional request options.
1818//
1819// See ListBootstrapActions for details on how to use this API operation.
1820//
1821// The context must be non-nil and will be used for request cancellation. If
1822// the context is nil a panic will occur. In the future the SDK may create
1823// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1824// for more information on using Contexts.
1825func (c *EMR) ListBootstrapActionsWithContext(ctx aws.Context, input *ListBootstrapActionsInput, opts ...request.Option) (*ListBootstrapActionsOutput, error) {
1826	req, out := c.ListBootstrapActionsRequest(input)
1827	req.SetContext(ctx)
1828	req.ApplyOptions(opts...)
1829	return out, req.Send()
1830}
1831
1832// ListBootstrapActionsPages iterates over the pages of a ListBootstrapActions operation,
1833// calling the "fn" function with the response data for each page. To stop
1834// iterating, return false from the fn function.
1835//
1836// See ListBootstrapActions method for more information on how to use this operation.
1837//
1838// Note: This operation can generate multiple requests to a service.
1839//
1840//    // Example iterating over at most 3 pages of a ListBootstrapActions operation.
1841//    pageNum := 0
1842//    err := client.ListBootstrapActionsPages(params,
1843//        func(page *emr.ListBootstrapActionsOutput, lastPage bool) bool {
1844//            pageNum++
1845//            fmt.Println(page)
1846//            return pageNum <= 3
1847//        })
1848//
1849func (c *EMR) ListBootstrapActionsPages(input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool) error {
1850	return c.ListBootstrapActionsPagesWithContext(aws.BackgroundContext(), input, fn)
1851}
1852
1853// ListBootstrapActionsPagesWithContext same as ListBootstrapActionsPages except
1854// it takes a Context and allows setting request options on the pages.
1855//
1856// The context must be non-nil and will be used for request cancellation. If
1857// the context is nil a panic will occur. In the future the SDK may create
1858// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1859// for more information on using Contexts.
1860func (c *EMR) ListBootstrapActionsPagesWithContext(ctx aws.Context, input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool, opts ...request.Option) error {
1861	p := request.Pagination{
1862		NewRequest: func() (*request.Request, error) {
1863			var inCpy *ListBootstrapActionsInput
1864			if input != nil {
1865				tmp := *input
1866				inCpy = &tmp
1867			}
1868			req, _ := c.ListBootstrapActionsRequest(inCpy)
1869			req.SetContext(ctx)
1870			req.ApplyOptions(opts...)
1871			return req, nil
1872		},
1873	}
1874
1875	for p.Next() {
1876		if !fn(p.Page().(*ListBootstrapActionsOutput), !p.HasNextPage()) {
1877			break
1878		}
1879	}
1880
1881	return p.Err()
1882}
1883
1884const opListClusters = "ListClusters"
1885
1886// ListClustersRequest generates a "aws/request.Request" representing the
1887// client's request for the ListClusters operation. The "output" return
1888// value will be populated with the request's response once the request completes
1889// successfully.
1890//
1891// Use "Send" method on the returned Request to send the API call to the service.
1892// the "output" return value is not valid until after Send returns without error.
1893//
1894// See ListClusters for more information on using the ListClusters
1895// API call, and error handling.
1896//
1897// This method is useful when you want to inject custom logic or configuration
1898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1899//
1900//
1901//    // Example sending a request using the ListClustersRequest method.
1902//    req, resp := client.ListClustersRequest(params)
1903//
1904//    err := req.Send()
1905//    if err == nil { // resp is now filled
1906//        fmt.Println(resp)
1907//    }
1908//
1909// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1910func (c *EMR) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1911	op := &request.Operation{
1912		Name:       opListClusters,
1913		HTTPMethod: "POST",
1914		HTTPPath:   "/",
1915		Paginator: &request.Paginator{
1916			InputTokens:     []string{"Marker"},
1917			OutputTokens:    []string{"Marker"},
1918			LimitToken:      "",
1919			TruncationToken: "",
1920		},
1921	}
1922
1923	if input == nil {
1924		input = &ListClustersInput{}
1925	}
1926
1927	output = &ListClustersOutput{}
1928	req = c.newRequest(op, input, output)
1929	return
1930}
1931
1932// ListClusters API operation for Amazon Elastic MapReduce.
1933//
1934// Provides the status of all clusters visible to this AWS account. Allows you
1935// to filter the list of clusters based on certain criteria; for example, filtering
1936// by cluster creation date and time or by status. This call returns a maximum
1937// of 50 clusters per call, but returns a marker to track the paging of the
1938// cluster list across multiple ListClusters calls.
1939//
1940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1941// with awserr.Error's Code and Message methods to get detailed information about
1942// the error.
1943//
1944// See the AWS API reference guide for Amazon Elastic MapReduce's
1945// API operation ListClusters for usage and error information.
1946//
1947// Returned Error Types:
1948//   * InternalServerException
1949//   This exception occurs when there is an internal failure in the EMR service.
1950//
1951//   * InvalidRequestException
1952//   This exception occurs when there is something wrong with user input.
1953//
1954// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
1955func (c *EMR) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
1956	req, out := c.ListClustersRequest(input)
1957	return out, req.Send()
1958}
1959
1960// ListClustersWithContext is the same as ListClusters with the addition of
1961// the ability to pass a context and additional request options.
1962//
1963// See ListClusters for details on how to use this API operation.
1964//
1965// The context must be non-nil and will be used for request cancellation. If
1966// the context is nil a panic will occur. In the future the SDK may create
1967// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1968// for more information on using Contexts.
1969func (c *EMR) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
1970	req, out := c.ListClustersRequest(input)
1971	req.SetContext(ctx)
1972	req.ApplyOptions(opts...)
1973	return out, req.Send()
1974}
1975
1976// ListClustersPages iterates over the pages of a ListClusters operation,
1977// calling the "fn" function with the response data for each page. To stop
1978// iterating, return false from the fn function.
1979//
1980// See ListClusters method for more information on how to use this operation.
1981//
1982// Note: This operation can generate multiple requests to a service.
1983//
1984//    // Example iterating over at most 3 pages of a ListClusters operation.
1985//    pageNum := 0
1986//    err := client.ListClustersPages(params,
1987//        func(page *emr.ListClustersOutput, lastPage bool) bool {
1988//            pageNum++
1989//            fmt.Println(page)
1990//            return pageNum <= 3
1991//        })
1992//
1993func (c *EMR) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
1994	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
1995}
1996
1997// ListClustersPagesWithContext same as ListClustersPages except
1998// it takes a Context and allows setting request options on the pages.
1999//
2000// The context must be non-nil and will be used for request cancellation. If
2001// the context is nil a panic will occur. In the future the SDK may create
2002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2003// for more information on using Contexts.
2004func (c *EMR) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2005	p := request.Pagination{
2006		NewRequest: func() (*request.Request, error) {
2007			var inCpy *ListClustersInput
2008			if input != nil {
2009				tmp := *input
2010				inCpy = &tmp
2011			}
2012			req, _ := c.ListClustersRequest(inCpy)
2013			req.SetContext(ctx)
2014			req.ApplyOptions(opts...)
2015			return req, nil
2016		},
2017	}
2018
2019	for p.Next() {
2020		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2021			break
2022		}
2023	}
2024
2025	return p.Err()
2026}
2027
2028const opListInstanceFleets = "ListInstanceFleets"
2029
2030// ListInstanceFleetsRequest generates a "aws/request.Request" representing the
2031// client's request for the ListInstanceFleets operation. The "output" return
2032// value will be populated with the request's response once the request completes
2033// successfully.
2034//
2035// Use "Send" method on the returned Request to send the API call to the service.
2036// the "output" return value is not valid until after Send returns without error.
2037//
2038// See ListInstanceFleets for more information on using the ListInstanceFleets
2039// API call, and error handling.
2040//
2041// This method is useful when you want to inject custom logic or configuration
2042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2043//
2044//
2045//    // Example sending a request using the ListInstanceFleetsRequest method.
2046//    req, resp := client.ListInstanceFleetsRequest(params)
2047//
2048//    err := req.Send()
2049//    if err == nil { // resp is now filled
2050//        fmt.Println(resp)
2051//    }
2052//
2053// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2054func (c *EMR) ListInstanceFleetsRequest(input *ListInstanceFleetsInput) (req *request.Request, output *ListInstanceFleetsOutput) {
2055	op := &request.Operation{
2056		Name:       opListInstanceFleets,
2057		HTTPMethod: "POST",
2058		HTTPPath:   "/",
2059		Paginator: &request.Paginator{
2060			InputTokens:     []string{"Marker"},
2061			OutputTokens:    []string{"Marker"},
2062			LimitToken:      "",
2063			TruncationToken: "",
2064		},
2065	}
2066
2067	if input == nil {
2068		input = &ListInstanceFleetsInput{}
2069	}
2070
2071	output = &ListInstanceFleetsOutput{}
2072	req = c.newRequest(op, input, output)
2073	return
2074}
2075
2076// ListInstanceFleets API operation for Amazon Elastic MapReduce.
2077//
2078// Lists all available details about the instance fleets in a cluster.
2079//
2080// The instance fleet configuration is available only in Amazon EMR versions
2081// 4.8.0 and later, excluding 5.0.x versions.
2082//
2083// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2084// with awserr.Error's Code and Message methods to get detailed information about
2085// the error.
2086//
2087// See the AWS API reference guide for Amazon Elastic MapReduce's
2088// API operation ListInstanceFleets for usage and error information.
2089//
2090// Returned Error Types:
2091//   * InternalServerException
2092//   This exception occurs when there is an internal failure in the EMR service.
2093//
2094//   * InvalidRequestException
2095//   This exception occurs when there is something wrong with user input.
2096//
2097// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2098func (c *EMR) ListInstanceFleets(input *ListInstanceFleetsInput) (*ListInstanceFleetsOutput, error) {
2099	req, out := c.ListInstanceFleetsRequest(input)
2100	return out, req.Send()
2101}
2102
2103// ListInstanceFleetsWithContext is the same as ListInstanceFleets with the addition of
2104// the ability to pass a context and additional request options.
2105//
2106// See ListInstanceFleets for details on how to use this API operation.
2107//
2108// The context must be non-nil and will be used for request cancellation. If
2109// the context is nil a panic will occur. In the future the SDK may create
2110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2111// for more information on using Contexts.
2112func (c *EMR) ListInstanceFleetsWithContext(ctx aws.Context, input *ListInstanceFleetsInput, opts ...request.Option) (*ListInstanceFleetsOutput, error) {
2113	req, out := c.ListInstanceFleetsRequest(input)
2114	req.SetContext(ctx)
2115	req.ApplyOptions(opts...)
2116	return out, req.Send()
2117}
2118
2119// ListInstanceFleetsPages iterates over the pages of a ListInstanceFleets operation,
2120// calling the "fn" function with the response data for each page. To stop
2121// iterating, return false from the fn function.
2122//
2123// See ListInstanceFleets method for more information on how to use this operation.
2124//
2125// Note: This operation can generate multiple requests to a service.
2126//
2127//    // Example iterating over at most 3 pages of a ListInstanceFleets operation.
2128//    pageNum := 0
2129//    err := client.ListInstanceFleetsPages(params,
2130//        func(page *emr.ListInstanceFleetsOutput, lastPage bool) bool {
2131//            pageNum++
2132//            fmt.Println(page)
2133//            return pageNum <= 3
2134//        })
2135//
2136func (c *EMR) ListInstanceFleetsPages(input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool) error {
2137	return c.ListInstanceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
2138}
2139
2140// ListInstanceFleetsPagesWithContext same as ListInstanceFleetsPages except
2141// it takes a Context and allows setting request options on the pages.
2142//
2143// The context must be non-nil and will be used for request cancellation. If
2144// the context is nil a panic will occur. In the future the SDK may create
2145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2146// for more information on using Contexts.
2147func (c *EMR) ListInstanceFleetsPagesWithContext(ctx aws.Context, input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool, opts ...request.Option) error {
2148	p := request.Pagination{
2149		NewRequest: func() (*request.Request, error) {
2150			var inCpy *ListInstanceFleetsInput
2151			if input != nil {
2152				tmp := *input
2153				inCpy = &tmp
2154			}
2155			req, _ := c.ListInstanceFleetsRequest(inCpy)
2156			req.SetContext(ctx)
2157			req.ApplyOptions(opts...)
2158			return req, nil
2159		},
2160	}
2161
2162	for p.Next() {
2163		if !fn(p.Page().(*ListInstanceFleetsOutput), !p.HasNextPage()) {
2164			break
2165		}
2166	}
2167
2168	return p.Err()
2169}
2170
2171const opListInstanceGroups = "ListInstanceGroups"
2172
2173// ListInstanceGroupsRequest generates a "aws/request.Request" representing the
2174// client's request for the ListInstanceGroups operation. The "output" return
2175// value will be populated with the request's response once the request completes
2176// successfully.
2177//
2178// Use "Send" method on the returned Request to send the API call to the service.
2179// the "output" return value is not valid until after Send returns without error.
2180//
2181// See ListInstanceGroups for more information on using the ListInstanceGroups
2182// API call, and error handling.
2183//
2184// This method is useful when you want to inject custom logic or configuration
2185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2186//
2187//
2188//    // Example sending a request using the ListInstanceGroupsRequest method.
2189//    req, resp := client.ListInstanceGroupsRequest(params)
2190//
2191//    err := req.Send()
2192//    if err == nil { // resp is now filled
2193//        fmt.Println(resp)
2194//    }
2195//
2196// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2197func (c *EMR) ListInstanceGroupsRequest(input *ListInstanceGroupsInput) (req *request.Request, output *ListInstanceGroupsOutput) {
2198	op := &request.Operation{
2199		Name:       opListInstanceGroups,
2200		HTTPMethod: "POST",
2201		HTTPPath:   "/",
2202		Paginator: &request.Paginator{
2203			InputTokens:     []string{"Marker"},
2204			OutputTokens:    []string{"Marker"},
2205			LimitToken:      "",
2206			TruncationToken: "",
2207		},
2208	}
2209
2210	if input == nil {
2211		input = &ListInstanceGroupsInput{}
2212	}
2213
2214	output = &ListInstanceGroupsOutput{}
2215	req = c.newRequest(op, input, output)
2216	return
2217}
2218
2219// ListInstanceGroups API operation for Amazon Elastic MapReduce.
2220//
2221// Provides all available details about the instance groups in a cluster.
2222//
2223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2224// with awserr.Error's Code and Message methods to get detailed information about
2225// the error.
2226//
2227// See the AWS API reference guide for Amazon Elastic MapReduce's
2228// API operation ListInstanceGroups for usage and error information.
2229//
2230// Returned Error Types:
2231//   * InternalServerException
2232//   This exception occurs when there is an internal failure in the EMR service.
2233//
2234//   * InvalidRequestException
2235//   This exception occurs when there is something wrong with user input.
2236//
2237// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2238func (c *EMR) ListInstanceGroups(input *ListInstanceGroupsInput) (*ListInstanceGroupsOutput, error) {
2239	req, out := c.ListInstanceGroupsRequest(input)
2240	return out, req.Send()
2241}
2242
2243// ListInstanceGroupsWithContext is the same as ListInstanceGroups with the addition of
2244// the ability to pass a context and additional request options.
2245//
2246// See ListInstanceGroups for details on how to use this API operation.
2247//
2248// The context must be non-nil and will be used for request cancellation. If
2249// the context is nil a panic will occur. In the future the SDK may create
2250// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2251// for more information on using Contexts.
2252func (c *EMR) ListInstanceGroupsWithContext(ctx aws.Context, input *ListInstanceGroupsInput, opts ...request.Option) (*ListInstanceGroupsOutput, error) {
2253	req, out := c.ListInstanceGroupsRequest(input)
2254	req.SetContext(ctx)
2255	req.ApplyOptions(opts...)
2256	return out, req.Send()
2257}
2258
2259// ListInstanceGroupsPages iterates over the pages of a ListInstanceGroups operation,
2260// calling the "fn" function with the response data for each page. To stop
2261// iterating, return false from the fn function.
2262//
2263// See ListInstanceGroups method for more information on how to use this operation.
2264//
2265// Note: This operation can generate multiple requests to a service.
2266//
2267//    // Example iterating over at most 3 pages of a ListInstanceGroups operation.
2268//    pageNum := 0
2269//    err := client.ListInstanceGroupsPages(params,
2270//        func(page *emr.ListInstanceGroupsOutput, lastPage bool) bool {
2271//            pageNum++
2272//            fmt.Println(page)
2273//            return pageNum <= 3
2274//        })
2275//
2276func (c *EMR) ListInstanceGroupsPages(input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool) error {
2277	return c.ListInstanceGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2278}
2279
2280// ListInstanceGroupsPagesWithContext same as ListInstanceGroupsPages except
2281// it takes a Context and allows setting request options on the pages.
2282//
2283// The context must be non-nil and will be used for request cancellation. If
2284// the context is nil a panic will occur. In the future the SDK may create
2285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2286// for more information on using Contexts.
2287func (c *EMR) ListInstanceGroupsPagesWithContext(ctx aws.Context, input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool, opts ...request.Option) error {
2288	p := request.Pagination{
2289		NewRequest: func() (*request.Request, error) {
2290			var inCpy *ListInstanceGroupsInput
2291			if input != nil {
2292				tmp := *input
2293				inCpy = &tmp
2294			}
2295			req, _ := c.ListInstanceGroupsRequest(inCpy)
2296			req.SetContext(ctx)
2297			req.ApplyOptions(opts...)
2298			return req, nil
2299		},
2300	}
2301
2302	for p.Next() {
2303		if !fn(p.Page().(*ListInstanceGroupsOutput), !p.HasNextPage()) {
2304			break
2305		}
2306	}
2307
2308	return p.Err()
2309}
2310
2311const opListInstances = "ListInstances"
2312
2313// ListInstancesRequest generates a "aws/request.Request" representing the
2314// client's request for the ListInstances operation. The "output" return
2315// value will be populated with the request's response once the request completes
2316// successfully.
2317//
2318// Use "Send" method on the returned Request to send the API call to the service.
2319// the "output" return value is not valid until after Send returns without error.
2320//
2321// See ListInstances for more information on using the ListInstances
2322// API call, and error handling.
2323//
2324// This method is useful when you want to inject custom logic or configuration
2325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2326//
2327//
2328//    // Example sending a request using the ListInstancesRequest method.
2329//    req, resp := client.ListInstancesRequest(params)
2330//
2331//    err := req.Send()
2332//    if err == nil { // resp is now filled
2333//        fmt.Println(resp)
2334//    }
2335//
2336// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2337func (c *EMR) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
2338	op := &request.Operation{
2339		Name:       opListInstances,
2340		HTTPMethod: "POST",
2341		HTTPPath:   "/",
2342		Paginator: &request.Paginator{
2343			InputTokens:     []string{"Marker"},
2344			OutputTokens:    []string{"Marker"},
2345			LimitToken:      "",
2346			TruncationToken: "",
2347		},
2348	}
2349
2350	if input == nil {
2351		input = &ListInstancesInput{}
2352	}
2353
2354	output = &ListInstancesOutput{}
2355	req = c.newRequest(op, input, output)
2356	return
2357}
2358
2359// ListInstances API operation for Amazon Elastic MapReduce.
2360//
2361// Provides information for all active EC2 instances and EC2 instances terminated
2362// in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the
2363// following states are considered active: AWAITING_FULFILLMENT, PROVISIONING,
2364// BOOTSTRAPPING, RUNNING.
2365//
2366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2367// with awserr.Error's Code and Message methods to get detailed information about
2368// the error.
2369//
2370// See the AWS API reference guide for Amazon Elastic MapReduce's
2371// API operation ListInstances for usage and error information.
2372//
2373// Returned Error Types:
2374//   * InternalServerException
2375//   This exception occurs when there is an internal failure in the EMR service.
2376//
2377//   * InvalidRequestException
2378//   This exception occurs when there is something wrong with user input.
2379//
2380// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2381func (c *EMR) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
2382	req, out := c.ListInstancesRequest(input)
2383	return out, req.Send()
2384}
2385
2386// ListInstancesWithContext is the same as ListInstances with the addition of
2387// the ability to pass a context and additional request options.
2388//
2389// See ListInstances for details on how to use this API operation.
2390//
2391// The context must be non-nil and will be used for request cancellation. If
2392// the context is nil a panic will occur. In the future the SDK may create
2393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2394// for more information on using Contexts.
2395func (c *EMR) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
2396	req, out := c.ListInstancesRequest(input)
2397	req.SetContext(ctx)
2398	req.ApplyOptions(opts...)
2399	return out, req.Send()
2400}
2401
2402// ListInstancesPages iterates over the pages of a ListInstances operation,
2403// calling the "fn" function with the response data for each page. To stop
2404// iterating, return false from the fn function.
2405//
2406// See ListInstances method for more information on how to use this operation.
2407//
2408// Note: This operation can generate multiple requests to a service.
2409//
2410//    // Example iterating over at most 3 pages of a ListInstances operation.
2411//    pageNum := 0
2412//    err := client.ListInstancesPages(params,
2413//        func(page *emr.ListInstancesOutput, lastPage bool) bool {
2414//            pageNum++
2415//            fmt.Println(page)
2416//            return pageNum <= 3
2417//        })
2418//
2419func (c *EMR) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
2420	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2421}
2422
2423// ListInstancesPagesWithContext same as ListInstancesPages except
2424// it takes a Context and allows setting request options on the pages.
2425//
2426// The context must be non-nil and will be used for request cancellation. If
2427// the context is nil a panic will occur. In the future the SDK may create
2428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2429// for more information on using Contexts.
2430func (c *EMR) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
2431	p := request.Pagination{
2432		NewRequest: func() (*request.Request, error) {
2433			var inCpy *ListInstancesInput
2434			if input != nil {
2435				tmp := *input
2436				inCpy = &tmp
2437			}
2438			req, _ := c.ListInstancesRequest(inCpy)
2439			req.SetContext(ctx)
2440			req.ApplyOptions(opts...)
2441			return req, nil
2442		},
2443	}
2444
2445	for p.Next() {
2446		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
2447			break
2448		}
2449	}
2450
2451	return p.Err()
2452}
2453
2454const opListNotebookExecutions = "ListNotebookExecutions"
2455
2456// ListNotebookExecutionsRequest generates a "aws/request.Request" representing the
2457// client's request for the ListNotebookExecutions operation. The "output" return
2458// value will be populated with the request's response once the request completes
2459// successfully.
2460//
2461// Use "Send" method on the returned Request to send the API call to the service.
2462// the "output" return value is not valid until after Send returns without error.
2463//
2464// See ListNotebookExecutions for more information on using the ListNotebookExecutions
2465// API call, and error handling.
2466//
2467// This method is useful when you want to inject custom logic or configuration
2468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2469//
2470//
2471//    // Example sending a request using the ListNotebookExecutionsRequest method.
2472//    req, resp := client.ListNotebookExecutionsRequest(params)
2473//
2474//    err := req.Send()
2475//    if err == nil { // resp is now filled
2476//        fmt.Println(resp)
2477//    }
2478//
2479// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2480func (c *EMR) ListNotebookExecutionsRequest(input *ListNotebookExecutionsInput) (req *request.Request, output *ListNotebookExecutionsOutput) {
2481	op := &request.Operation{
2482		Name:       opListNotebookExecutions,
2483		HTTPMethod: "POST",
2484		HTTPPath:   "/",
2485		Paginator: &request.Paginator{
2486			InputTokens:     []string{"Marker"},
2487			OutputTokens:    []string{"Marker"},
2488			LimitToken:      "",
2489			TruncationToken: "",
2490		},
2491	}
2492
2493	if input == nil {
2494		input = &ListNotebookExecutionsInput{}
2495	}
2496
2497	output = &ListNotebookExecutionsOutput{}
2498	req = c.newRequest(op, input, output)
2499	return
2500}
2501
2502// ListNotebookExecutions API operation for Amazon Elastic MapReduce.
2503//
2504// Provides summaries of all notebook executions. You can filter the list based
2505// on multiple criteria such as status, time range, and editor id. Returns a
2506// maximum of 50 notebook executions and a marker to track the paging of a longer
2507// notebook execution list across multiple ListNotebookExecution calls.
2508//
2509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2510// with awserr.Error's Code and Message methods to get detailed information about
2511// the error.
2512//
2513// See the AWS API reference guide for Amazon Elastic MapReduce's
2514// API operation ListNotebookExecutions for usage and error information.
2515//
2516// Returned Error Types:
2517//   * InternalServerError
2518//   Indicates that an error occurred while processing the request and that the
2519//   request was not completed.
2520//
2521//   * InvalidRequestException
2522//   This exception occurs when there is something wrong with user input.
2523//
2524// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2525func (c *EMR) ListNotebookExecutions(input *ListNotebookExecutionsInput) (*ListNotebookExecutionsOutput, error) {
2526	req, out := c.ListNotebookExecutionsRequest(input)
2527	return out, req.Send()
2528}
2529
2530// ListNotebookExecutionsWithContext is the same as ListNotebookExecutions with the addition of
2531// the ability to pass a context and additional request options.
2532//
2533// See ListNotebookExecutions for details on how to use this API operation.
2534//
2535// The context must be non-nil and will be used for request cancellation. If
2536// the context is nil a panic will occur. In the future the SDK may create
2537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2538// for more information on using Contexts.
2539func (c *EMR) ListNotebookExecutionsWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, opts ...request.Option) (*ListNotebookExecutionsOutput, error) {
2540	req, out := c.ListNotebookExecutionsRequest(input)
2541	req.SetContext(ctx)
2542	req.ApplyOptions(opts...)
2543	return out, req.Send()
2544}
2545
2546// ListNotebookExecutionsPages iterates over the pages of a ListNotebookExecutions operation,
2547// calling the "fn" function with the response data for each page. To stop
2548// iterating, return false from the fn function.
2549//
2550// See ListNotebookExecutions method for more information on how to use this operation.
2551//
2552// Note: This operation can generate multiple requests to a service.
2553//
2554//    // Example iterating over at most 3 pages of a ListNotebookExecutions operation.
2555//    pageNum := 0
2556//    err := client.ListNotebookExecutionsPages(params,
2557//        func(page *emr.ListNotebookExecutionsOutput, lastPage bool) bool {
2558//            pageNum++
2559//            fmt.Println(page)
2560//            return pageNum <= 3
2561//        })
2562//
2563func (c *EMR) ListNotebookExecutionsPages(input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool) error {
2564	return c.ListNotebookExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2565}
2566
2567// ListNotebookExecutionsPagesWithContext same as ListNotebookExecutionsPages except
2568// it takes a Context and allows setting request options on the pages.
2569//
2570// The context must be non-nil and will be used for request cancellation. If
2571// the context is nil a panic will occur. In the future the SDK may create
2572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2573// for more information on using Contexts.
2574func (c *EMR) ListNotebookExecutionsPagesWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool, opts ...request.Option) error {
2575	p := request.Pagination{
2576		NewRequest: func() (*request.Request, error) {
2577			var inCpy *ListNotebookExecutionsInput
2578			if input != nil {
2579				tmp := *input
2580				inCpy = &tmp
2581			}
2582			req, _ := c.ListNotebookExecutionsRequest(inCpy)
2583			req.SetContext(ctx)
2584			req.ApplyOptions(opts...)
2585			return req, nil
2586		},
2587	}
2588
2589	for p.Next() {
2590		if !fn(p.Page().(*ListNotebookExecutionsOutput), !p.HasNextPage()) {
2591			break
2592		}
2593	}
2594
2595	return p.Err()
2596}
2597
2598const opListSecurityConfigurations = "ListSecurityConfigurations"
2599
2600// ListSecurityConfigurationsRequest generates a "aws/request.Request" representing the
2601// client's request for the ListSecurityConfigurations operation. The "output" return
2602// value will be populated with the request's response once the request completes
2603// successfully.
2604//
2605// Use "Send" method on the returned Request to send the API call to the service.
2606// the "output" return value is not valid until after Send returns without error.
2607//
2608// See ListSecurityConfigurations for more information on using the ListSecurityConfigurations
2609// API call, and error handling.
2610//
2611// This method is useful when you want to inject custom logic or configuration
2612// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2613//
2614//
2615//    // Example sending a request using the ListSecurityConfigurationsRequest method.
2616//    req, resp := client.ListSecurityConfigurationsRequest(params)
2617//
2618//    err := req.Send()
2619//    if err == nil { // resp is now filled
2620//        fmt.Println(resp)
2621//    }
2622//
2623// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2624func (c *EMR) ListSecurityConfigurationsRequest(input *ListSecurityConfigurationsInput) (req *request.Request, output *ListSecurityConfigurationsOutput) {
2625	op := &request.Operation{
2626		Name:       opListSecurityConfigurations,
2627		HTTPMethod: "POST",
2628		HTTPPath:   "/",
2629		Paginator: &request.Paginator{
2630			InputTokens:     []string{"Marker"},
2631			OutputTokens:    []string{"Marker"},
2632			LimitToken:      "",
2633			TruncationToken: "",
2634		},
2635	}
2636
2637	if input == nil {
2638		input = &ListSecurityConfigurationsInput{}
2639	}
2640
2641	output = &ListSecurityConfigurationsOutput{}
2642	req = c.newRequest(op, input, output)
2643	return
2644}
2645
2646// ListSecurityConfigurations API operation for Amazon Elastic MapReduce.
2647//
2648// Lists all the security configurations visible to this account, providing
2649// their creation dates and times, and their names. This call returns a maximum
2650// of 50 clusters per call, but returns a marker to track the paging of the
2651// cluster list across multiple ListSecurityConfigurations calls.
2652//
2653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2654// with awserr.Error's Code and Message methods to get detailed information about
2655// the error.
2656//
2657// See the AWS API reference guide for Amazon Elastic MapReduce's
2658// API operation ListSecurityConfigurations for usage and error information.
2659//
2660// Returned Error Types:
2661//   * InternalServerException
2662//   This exception occurs when there is an internal failure in the EMR service.
2663//
2664//   * InvalidRequestException
2665//   This exception occurs when there is something wrong with user input.
2666//
2667// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2668func (c *EMR) ListSecurityConfigurations(input *ListSecurityConfigurationsInput) (*ListSecurityConfigurationsOutput, error) {
2669	req, out := c.ListSecurityConfigurationsRequest(input)
2670	return out, req.Send()
2671}
2672
2673// ListSecurityConfigurationsWithContext is the same as ListSecurityConfigurations with the addition of
2674// the ability to pass a context and additional request options.
2675//
2676// See ListSecurityConfigurations for details on how to use this API operation.
2677//
2678// The context must be non-nil and will be used for request cancellation. If
2679// the context is nil a panic will occur. In the future the SDK may create
2680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2681// for more information on using Contexts.
2682func (c *EMR) ListSecurityConfigurationsWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, opts ...request.Option) (*ListSecurityConfigurationsOutput, error) {
2683	req, out := c.ListSecurityConfigurationsRequest(input)
2684	req.SetContext(ctx)
2685	req.ApplyOptions(opts...)
2686	return out, req.Send()
2687}
2688
2689// ListSecurityConfigurationsPages iterates over the pages of a ListSecurityConfigurations operation,
2690// calling the "fn" function with the response data for each page. To stop
2691// iterating, return false from the fn function.
2692//
2693// See ListSecurityConfigurations method for more information on how to use this operation.
2694//
2695// Note: This operation can generate multiple requests to a service.
2696//
2697//    // Example iterating over at most 3 pages of a ListSecurityConfigurations operation.
2698//    pageNum := 0
2699//    err := client.ListSecurityConfigurationsPages(params,
2700//        func(page *emr.ListSecurityConfigurationsOutput, lastPage bool) bool {
2701//            pageNum++
2702//            fmt.Println(page)
2703//            return pageNum <= 3
2704//        })
2705//
2706func (c *EMR) ListSecurityConfigurationsPages(input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool) error {
2707	return c.ListSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
2708}
2709
2710// ListSecurityConfigurationsPagesWithContext same as ListSecurityConfigurationsPages except
2711// it takes a Context and allows setting request options on the pages.
2712//
2713// The context must be non-nil and will be used for request cancellation. If
2714// the context is nil a panic will occur. In the future the SDK may create
2715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2716// for more information on using Contexts.
2717func (c *EMR) ListSecurityConfigurationsPagesWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
2718	p := request.Pagination{
2719		NewRequest: func() (*request.Request, error) {
2720			var inCpy *ListSecurityConfigurationsInput
2721			if input != nil {
2722				tmp := *input
2723				inCpy = &tmp
2724			}
2725			req, _ := c.ListSecurityConfigurationsRequest(inCpy)
2726			req.SetContext(ctx)
2727			req.ApplyOptions(opts...)
2728			return req, nil
2729		},
2730	}
2731
2732	for p.Next() {
2733		if !fn(p.Page().(*ListSecurityConfigurationsOutput), !p.HasNextPage()) {
2734			break
2735		}
2736	}
2737
2738	return p.Err()
2739}
2740
2741const opListSteps = "ListSteps"
2742
2743// ListStepsRequest generates a "aws/request.Request" representing the
2744// client's request for the ListSteps operation. The "output" return
2745// value will be populated with the request's response once the request completes
2746// successfully.
2747//
2748// Use "Send" method on the returned Request to send the API call to the service.
2749// the "output" return value is not valid until after Send returns without error.
2750//
2751// See ListSteps for more information on using the ListSteps
2752// API call, and error handling.
2753//
2754// This method is useful when you want to inject custom logic or configuration
2755// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2756//
2757//
2758//    // Example sending a request using the ListStepsRequest method.
2759//    req, resp := client.ListStepsRequest(params)
2760//
2761//    err := req.Send()
2762//    if err == nil { // resp is now filled
2763//        fmt.Println(resp)
2764//    }
2765//
2766// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2767func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, output *ListStepsOutput) {
2768	op := &request.Operation{
2769		Name:       opListSteps,
2770		HTTPMethod: "POST",
2771		HTTPPath:   "/",
2772		Paginator: &request.Paginator{
2773			InputTokens:     []string{"Marker"},
2774			OutputTokens:    []string{"Marker"},
2775			LimitToken:      "",
2776			TruncationToken: "",
2777		},
2778	}
2779
2780	if input == nil {
2781		input = &ListStepsInput{}
2782	}
2783
2784	output = &ListStepsOutput{}
2785	req = c.newRequest(op, input, output)
2786	return
2787}
2788
2789// ListSteps API operation for Amazon Elastic MapReduce.
2790//
2791// Provides a list of steps for the cluster in reverse order unless you specify
2792// stepIds with the request of filter by StepStates. You can specify a maximum
2793// of ten stepIDs.
2794//
2795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2796// with awserr.Error's Code and Message methods to get detailed information about
2797// the error.
2798//
2799// See the AWS API reference guide for Amazon Elastic MapReduce's
2800// API operation ListSteps for usage and error information.
2801//
2802// Returned Error Types:
2803//   * InternalServerException
2804//   This exception occurs when there is an internal failure in the EMR service.
2805//
2806//   * InvalidRequestException
2807//   This exception occurs when there is something wrong with user input.
2808//
2809// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
2810func (c *EMR) ListSteps(input *ListStepsInput) (*ListStepsOutput, error) {
2811	req, out := c.ListStepsRequest(input)
2812	return out, req.Send()
2813}
2814
2815// ListStepsWithContext is the same as ListSteps with the addition of
2816// the ability to pass a context and additional request options.
2817//
2818// See ListSteps for details on how to use this API operation.
2819//
2820// The context must be non-nil and will be used for request cancellation. If
2821// the context is nil a panic will occur. In the future the SDK may create
2822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2823// for more information on using Contexts.
2824func (c *EMR) ListStepsWithContext(ctx aws.Context, input *ListStepsInput, opts ...request.Option) (*ListStepsOutput, error) {
2825	req, out := c.ListStepsRequest(input)
2826	req.SetContext(ctx)
2827	req.ApplyOptions(opts...)
2828	return out, req.Send()
2829}
2830
2831// ListStepsPages iterates over the pages of a ListSteps operation,
2832// calling the "fn" function with the response data for each page. To stop
2833// iterating, return false from the fn function.
2834//
2835// See ListSteps method for more information on how to use this operation.
2836//
2837// Note: This operation can generate multiple requests to a service.
2838//
2839//    // Example iterating over at most 3 pages of a ListSteps operation.
2840//    pageNum := 0
2841//    err := client.ListStepsPages(params,
2842//        func(page *emr.ListStepsOutput, lastPage bool) bool {
2843//            pageNum++
2844//            fmt.Println(page)
2845//            return pageNum <= 3
2846//        })
2847//
2848func (c *EMR) ListStepsPages(input *ListStepsInput, fn func(*ListStepsOutput, bool) bool) error {
2849	return c.ListStepsPagesWithContext(aws.BackgroundContext(), input, fn)
2850}
2851
2852// ListStepsPagesWithContext same as ListStepsPages except
2853// it takes a Context and allows setting request options on the pages.
2854//
2855// The context must be non-nil and will be used for request cancellation. If
2856// the context is nil a panic will occur. In the future the SDK may create
2857// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2858// for more information on using Contexts.
2859func (c *EMR) ListStepsPagesWithContext(ctx aws.Context, input *ListStepsInput, fn func(*ListStepsOutput, bool) bool, opts ...request.Option) error {
2860	p := request.Pagination{
2861		NewRequest: func() (*request.Request, error) {
2862			var inCpy *ListStepsInput
2863			if input != nil {
2864				tmp := *input
2865				inCpy = &tmp
2866			}
2867			req, _ := c.ListStepsRequest(inCpy)
2868			req.SetContext(ctx)
2869			req.ApplyOptions(opts...)
2870			return req, nil
2871		},
2872	}
2873
2874	for p.Next() {
2875		if !fn(p.Page().(*ListStepsOutput), !p.HasNextPage()) {
2876			break
2877		}
2878	}
2879
2880	return p.Err()
2881}
2882
2883const opListStudioSessionMappings = "ListStudioSessionMappings"
2884
2885// ListStudioSessionMappingsRequest generates a "aws/request.Request" representing the
2886// client's request for the ListStudioSessionMappings operation. The "output" return
2887// value will be populated with the request's response once the request completes
2888// successfully.
2889//
2890// Use "Send" method on the returned Request to send the API call to the service.
2891// the "output" return value is not valid until after Send returns without error.
2892//
2893// See ListStudioSessionMappings for more information on using the ListStudioSessionMappings
2894// API call, and error handling.
2895//
2896// This method is useful when you want to inject custom logic or configuration
2897// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2898//
2899//
2900//    // Example sending a request using the ListStudioSessionMappingsRequest method.
2901//    req, resp := client.ListStudioSessionMappingsRequest(params)
2902//
2903//    err := req.Send()
2904//    if err == nil { // resp is now filled
2905//        fmt.Println(resp)
2906//    }
2907//
2908// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
2909func (c *EMR) ListStudioSessionMappingsRequest(input *ListStudioSessionMappingsInput) (req *request.Request, output *ListStudioSessionMappingsOutput) {
2910	op := &request.Operation{
2911		Name:       opListStudioSessionMappings,
2912		HTTPMethod: "POST",
2913		HTTPPath:   "/",
2914		Paginator: &request.Paginator{
2915			InputTokens:     []string{"Marker"},
2916			OutputTokens:    []string{"Marker"},
2917			LimitToken:      "",
2918			TruncationToken: "",
2919		},
2920	}
2921
2922	if input == nil {
2923		input = &ListStudioSessionMappingsInput{}
2924	}
2925
2926	output = &ListStudioSessionMappingsOutput{}
2927	req = c.newRequest(op, input, output)
2928	return
2929}
2930
2931// ListStudioSessionMappings API operation for Amazon Elastic MapReduce.
2932//
2933//
2934// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
2935// subject to change.
2936//
2937// Returns a list of all user or group session mappings for the EMR Studio specified
2938// by StudioId.
2939//
2940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2941// with awserr.Error's Code and Message methods to get detailed information about
2942// the error.
2943//
2944// See the AWS API reference guide for Amazon Elastic MapReduce's
2945// API operation ListStudioSessionMappings for usage and error information.
2946//
2947// Returned Error Types:
2948//   * InternalServerError
2949//   Indicates that an error occurred while processing the request and that the
2950//   request was not completed.
2951//
2952//   * InvalidRequestException
2953//   This exception occurs when there is something wrong with user input.
2954//
2955// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
2956func (c *EMR) ListStudioSessionMappings(input *ListStudioSessionMappingsInput) (*ListStudioSessionMappingsOutput, error) {
2957	req, out := c.ListStudioSessionMappingsRequest(input)
2958	return out, req.Send()
2959}
2960
2961// ListStudioSessionMappingsWithContext is the same as ListStudioSessionMappings with the addition of
2962// the ability to pass a context and additional request options.
2963//
2964// See ListStudioSessionMappings for details on how to use this API operation.
2965//
2966// The context must be non-nil and will be used for request cancellation. If
2967// the context is nil a panic will occur. In the future the SDK may create
2968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2969// for more information on using Contexts.
2970func (c *EMR) ListStudioSessionMappingsWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, opts ...request.Option) (*ListStudioSessionMappingsOutput, error) {
2971	req, out := c.ListStudioSessionMappingsRequest(input)
2972	req.SetContext(ctx)
2973	req.ApplyOptions(opts...)
2974	return out, req.Send()
2975}
2976
2977// ListStudioSessionMappingsPages iterates over the pages of a ListStudioSessionMappings operation,
2978// calling the "fn" function with the response data for each page. To stop
2979// iterating, return false from the fn function.
2980//
2981// See ListStudioSessionMappings method for more information on how to use this operation.
2982//
2983// Note: This operation can generate multiple requests to a service.
2984//
2985//    // Example iterating over at most 3 pages of a ListStudioSessionMappings operation.
2986//    pageNum := 0
2987//    err := client.ListStudioSessionMappingsPages(params,
2988//        func(page *emr.ListStudioSessionMappingsOutput, lastPage bool) bool {
2989//            pageNum++
2990//            fmt.Println(page)
2991//            return pageNum <= 3
2992//        })
2993//
2994func (c *EMR) ListStudioSessionMappingsPages(input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool) error {
2995	return c.ListStudioSessionMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
2996}
2997
2998// ListStudioSessionMappingsPagesWithContext same as ListStudioSessionMappingsPages except
2999// it takes a Context and allows setting request options on the pages.
3000//
3001// The context must be non-nil and will be used for request cancellation. If
3002// the context is nil a panic will occur. In the future the SDK may create
3003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3004// for more information on using Contexts.
3005func (c *EMR) ListStudioSessionMappingsPagesWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool, opts ...request.Option) error {
3006	p := request.Pagination{
3007		NewRequest: func() (*request.Request, error) {
3008			var inCpy *ListStudioSessionMappingsInput
3009			if input != nil {
3010				tmp := *input
3011				inCpy = &tmp
3012			}
3013			req, _ := c.ListStudioSessionMappingsRequest(inCpy)
3014			req.SetContext(ctx)
3015			req.ApplyOptions(opts...)
3016			return req, nil
3017		},
3018	}
3019
3020	for p.Next() {
3021		if !fn(p.Page().(*ListStudioSessionMappingsOutput), !p.HasNextPage()) {
3022			break
3023		}
3024	}
3025
3026	return p.Err()
3027}
3028
3029const opListStudios = "ListStudios"
3030
3031// ListStudiosRequest generates a "aws/request.Request" representing the
3032// client's request for the ListStudios operation. The "output" return
3033// value will be populated with the request's response once the request completes
3034// successfully.
3035//
3036// Use "Send" method on the returned Request to send the API call to the service.
3037// the "output" return value is not valid until after Send returns without error.
3038//
3039// See ListStudios for more information on using the ListStudios
3040// API call, and error handling.
3041//
3042// This method is useful when you want to inject custom logic or configuration
3043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3044//
3045//
3046//    // Example sending a request using the ListStudiosRequest method.
3047//    req, resp := client.ListStudiosRequest(params)
3048//
3049//    err := req.Send()
3050//    if err == nil { // resp is now filled
3051//        fmt.Println(resp)
3052//    }
3053//
3054// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3055func (c *EMR) ListStudiosRequest(input *ListStudiosInput) (req *request.Request, output *ListStudiosOutput) {
3056	op := &request.Operation{
3057		Name:       opListStudios,
3058		HTTPMethod: "POST",
3059		HTTPPath:   "/",
3060		Paginator: &request.Paginator{
3061			InputTokens:     []string{"Marker"},
3062			OutputTokens:    []string{"Marker"},
3063			LimitToken:      "",
3064			TruncationToken: "",
3065		},
3066	}
3067
3068	if input == nil {
3069		input = &ListStudiosInput{}
3070	}
3071
3072	output = &ListStudiosOutput{}
3073	req = c.newRequest(op, input, output)
3074	return
3075}
3076
3077// ListStudios API operation for Amazon Elastic MapReduce.
3078//
3079//
3080// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
3081// subject to change.
3082//
3083// Returns a list of all Amazon EMR Studios associated with the AWS account.
3084// The list includes details such as ID, Studio Access URL, and creation time
3085// for each Studio.
3086//
3087// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3088// with awserr.Error's Code and Message methods to get detailed information about
3089// the error.
3090//
3091// See the AWS API reference guide for Amazon Elastic MapReduce's
3092// API operation ListStudios for usage and error information.
3093//
3094// Returned Error Types:
3095//   * InternalServerException
3096//   This exception occurs when there is an internal failure in the EMR service.
3097//
3098//   * InvalidRequestException
3099//   This exception occurs when there is something wrong with user input.
3100//
3101// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3102func (c *EMR) ListStudios(input *ListStudiosInput) (*ListStudiosOutput, error) {
3103	req, out := c.ListStudiosRequest(input)
3104	return out, req.Send()
3105}
3106
3107// ListStudiosWithContext is the same as ListStudios with the addition of
3108// the ability to pass a context and additional request options.
3109//
3110// See ListStudios for details on how to use this API operation.
3111//
3112// The context must be non-nil and will be used for request cancellation. If
3113// the context is nil a panic will occur. In the future the SDK may create
3114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3115// for more information on using Contexts.
3116func (c *EMR) ListStudiosWithContext(ctx aws.Context, input *ListStudiosInput, opts ...request.Option) (*ListStudiosOutput, error) {
3117	req, out := c.ListStudiosRequest(input)
3118	req.SetContext(ctx)
3119	req.ApplyOptions(opts...)
3120	return out, req.Send()
3121}
3122
3123// ListStudiosPages iterates over the pages of a ListStudios operation,
3124// calling the "fn" function with the response data for each page. To stop
3125// iterating, return false from the fn function.
3126//
3127// See ListStudios method for more information on how to use this operation.
3128//
3129// Note: This operation can generate multiple requests to a service.
3130//
3131//    // Example iterating over at most 3 pages of a ListStudios operation.
3132//    pageNum := 0
3133//    err := client.ListStudiosPages(params,
3134//        func(page *emr.ListStudiosOutput, lastPage bool) bool {
3135//            pageNum++
3136//            fmt.Println(page)
3137//            return pageNum <= 3
3138//        })
3139//
3140func (c *EMR) ListStudiosPages(input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool) error {
3141	return c.ListStudiosPagesWithContext(aws.BackgroundContext(), input, fn)
3142}
3143
3144// ListStudiosPagesWithContext same as ListStudiosPages except
3145// it takes a Context and allows setting request options on the pages.
3146//
3147// The context must be non-nil and will be used for request cancellation. If
3148// the context is nil a panic will occur. In the future the SDK may create
3149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3150// for more information on using Contexts.
3151func (c *EMR) ListStudiosPagesWithContext(ctx aws.Context, input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool, opts ...request.Option) error {
3152	p := request.Pagination{
3153		NewRequest: func() (*request.Request, error) {
3154			var inCpy *ListStudiosInput
3155			if input != nil {
3156				tmp := *input
3157				inCpy = &tmp
3158			}
3159			req, _ := c.ListStudiosRequest(inCpy)
3160			req.SetContext(ctx)
3161			req.ApplyOptions(opts...)
3162			return req, nil
3163		},
3164	}
3165
3166	for p.Next() {
3167		if !fn(p.Page().(*ListStudiosOutput), !p.HasNextPage()) {
3168			break
3169		}
3170	}
3171
3172	return p.Err()
3173}
3174
3175const opModifyCluster = "ModifyCluster"
3176
3177// ModifyClusterRequest generates a "aws/request.Request" representing the
3178// client's request for the ModifyCluster operation. The "output" return
3179// value will be populated with the request's response once the request completes
3180// successfully.
3181//
3182// Use "Send" method on the returned Request to send the API call to the service.
3183// the "output" return value is not valid until after Send returns without error.
3184//
3185// See ModifyCluster for more information on using the ModifyCluster
3186// API call, and error handling.
3187//
3188// This method is useful when you want to inject custom logic or configuration
3189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3190//
3191//
3192//    // Example sending a request using the ModifyClusterRequest method.
3193//    req, resp := client.ModifyClusterRequest(params)
3194//
3195//    err := req.Send()
3196//    if err == nil { // resp is now filled
3197//        fmt.Println(resp)
3198//    }
3199//
3200// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3201func (c *EMR) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
3202	op := &request.Operation{
3203		Name:       opModifyCluster,
3204		HTTPMethod: "POST",
3205		HTTPPath:   "/",
3206	}
3207
3208	if input == nil {
3209		input = &ModifyClusterInput{}
3210	}
3211
3212	output = &ModifyClusterOutput{}
3213	req = c.newRequest(op, input, output)
3214	return
3215}
3216
3217// ModifyCluster API operation for Amazon Elastic MapReduce.
3218//
3219// Modifies the number of steps that can be executed concurrently for the cluster
3220// specified using ClusterID.
3221//
3222// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3223// with awserr.Error's Code and Message methods to get detailed information about
3224// the error.
3225//
3226// See the AWS API reference guide for Amazon Elastic MapReduce's
3227// API operation ModifyCluster for usage and error information.
3228//
3229// Returned Error Types:
3230//   * InternalServerError
3231//   Indicates that an error occurred while processing the request and that the
3232//   request was not completed.
3233//
3234//   * InvalidRequestException
3235//   This exception occurs when there is something wrong with user input.
3236//
3237// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3238func (c *EMR) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
3239	req, out := c.ModifyClusterRequest(input)
3240	return out, req.Send()
3241}
3242
3243// ModifyClusterWithContext is the same as ModifyCluster with the addition of
3244// the ability to pass a context and additional request options.
3245//
3246// See ModifyCluster for details on how to use this API operation.
3247//
3248// The context must be non-nil and will be used for request cancellation. If
3249// the context is nil a panic will occur. In the future the SDK may create
3250// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3251// for more information on using Contexts.
3252func (c *EMR) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
3253	req, out := c.ModifyClusterRequest(input)
3254	req.SetContext(ctx)
3255	req.ApplyOptions(opts...)
3256	return out, req.Send()
3257}
3258
3259const opModifyInstanceFleet = "ModifyInstanceFleet"
3260
3261// ModifyInstanceFleetRequest generates a "aws/request.Request" representing the
3262// client's request for the ModifyInstanceFleet operation. The "output" return
3263// value will be populated with the request's response once the request completes
3264// successfully.
3265//
3266// Use "Send" method on the returned Request to send the API call to the service.
3267// the "output" return value is not valid until after Send returns without error.
3268//
3269// See ModifyInstanceFleet for more information on using the ModifyInstanceFleet
3270// API call, and error handling.
3271//
3272// This method is useful when you want to inject custom logic or configuration
3273// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3274//
3275//
3276//    // Example sending a request using the ModifyInstanceFleetRequest method.
3277//    req, resp := client.ModifyInstanceFleetRequest(params)
3278//
3279//    err := req.Send()
3280//    if err == nil { // resp is now filled
3281//        fmt.Println(resp)
3282//    }
3283//
3284// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3285func (c *EMR) ModifyInstanceFleetRequest(input *ModifyInstanceFleetInput) (req *request.Request, output *ModifyInstanceFleetOutput) {
3286	op := &request.Operation{
3287		Name:       opModifyInstanceFleet,
3288		HTTPMethod: "POST",
3289		HTTPPath:   "/",
3290	}
3291
3292	if input == nil {
3293		input = &ModifyInstanceFleetInput{}
3294	}
3295
3296	output = &ModifyInstanceFleetOutput{}
3297	req = c.newRequest(op, input, output)
3298	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3299	return
3300}
3301
3302// ModifyInstanceFleet API operation for Amazon Elastic MapReduce.
3303//
3304// Modifies the target On-Demand and target Spot capacities for the instance
3305// fleet with the specified InstanceFleetID within the cluster specified using
3306// ClusterID. The call either succeeds or fails atomically.
3307//
3308// The instance fleet configuration is available only in Amazon EMR versions
3309// 4.8.0 and later, excluding 5.0.x versions.
3310//
3311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3312// with awserr.Error's Code and Message methods to get detailed information about
3313// the error.
3314//
3315// See the AWS API reference guide for Amazon Elastic MapReduce's
3316// API operation ModifyInstanceFleet for usage and error information.
3317//
3318// Returned Error Types:
3319//   * InternalServerException
3320//   This exception occurs when there is an internal failure in the EMR service.
3321//
3322//   * InvalidRequestException
3323//   This exception occurs when there is something wrong with user input.
3324//
3325// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3326func (c *EMR) ModifyInstanceFleet(input *ModifyInstanceFleetInput) (*ModifyInstanceFleetOutput, error) {
3327	req, out := c.ModifyInstanceFleetRequest(input)
3328	return out, req.Send()
3329}
3330
3331// ModifyInstanceFleetWithContext is the same as ModifyInstanceFleet with the addition of
3332// the ability to pass a context and additional request options.
3333//
3334// See ModifyInstanceFleet for details on how to use this API operation.
3335//
3336// The context must be non-nil and will be used for request cancellation. If
3337// the context is nil a panic will occur. In the future the SDK may create
3338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3339// for more information on using Contexts.
3340func (c *EMR) ModifyInstanceFleetWithContext(ctx aws.Context, input *ModifyInstanceFleetInput, opts ...request.Option) (*ModifyInstanceFleetOutput, error) {
3341	req, out := c.ModifyInstanceFleetRequest(input)
3342	req.SetContext(ctx)
3343	req.ApplyOptions(opts...)
3344	return out, req.Send()
3345}
3346
3347const opModifyInstanceGroups = "ModifyInstanceGroups"
3348
3349// ModifyInstanceGroupsRequest generates a "aws/request.Request" representing the
3350// client's request for the ModifyInstanceGroups operation. The "output" return
3351// value will be populated with the request's response once the request completes
3352// successfully.
3353//
3354// Use "Send" method on the returned Request to send the API call to the service.
3355// the "output" return value is not valid until after Send returns without error.
3356//
3357// See ModifyInstanceGroups for more information on using the ModifyInstanceGroups
3358// API call, and error handling.
3359//
3360// This method is useful when you want to inject custom logic or configuration
3361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3362//
3363//
3364//    // Example sending a request using the ModifyInstanceGroupsRequest method.
3365//    req, resp := client.ModifyInstanceGroupsRequest(params)
3366//
3367//    err := req.Send()
3368//    if err == nil { // resp is now filled
3369//        fmt.Println(resp)
3370//    }
3371//
3372// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3373func (c *EMR) ModifyInstanceGroupsRequest(input *ModifyInstanceGroupsInput) (req *request.Request, output *ModifyInstanceGroupsOutput) {
3374	op := &request.Operation{
3375		Name:       opModifyInstanceGroups,
3376		HTTPMethod: "POST",
3377		HTTPPath:   "/",
3378	}
3379
3380	if input == nil {
3381		input = &ModifyInstanceGroupsInput{}
3382	}
3383
3384	output = &ModifyInstanceGroupsOutput{}
3385	req = c.newRequest(op, input, output)
3386	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3387	return
3388}
3389
3390// ModifyInstanceGroups API operation for Amazon Elastic MapReduce.
3391//
3392// ModifyInstanceGroups modifies the number of nodes and configuration settings
3393// of an instance group. The input parameters include the new target instance
3394// count for the group and the instance group ID. The call will either succeed
3395// or fail atomically.
3396//
3397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3398// with awserr.Error's Code and Message methods to get detailed information about
3399// the error.
3400//
3401// See the AWS API reference guide for Amazon Elastic MapReduce's
3402// API operation ModifyInstanceGroups for usage and error information.
3403//
3404// Returned Error Types:
3405//   * InternalServerError
3406//   Indicates that an error occurred while processing the request and that the
3407//   request was not completed.
3408//
3409// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3410func (c *EMR) ModifyInstanceGroups(input *ModifyInstanceGroupsInput) (*ModifyInstanceGroupsOutput, error) {
3411	req, out := c.ModifyInstanceGroupsRequest(input)
3412	return out, req.Send()
3413}
3414
3415// ModifyInstanceGroupsWithContext is the same as ModifyInstanceGroups with the addition of
3416// the ability to pass a context and additional request options.
3417//
3418// See ModifyInstanceGroups for details on how to use this API operation.
3419//
3420// The context must be non-nil and will be used for request cancellation. If
3421// the context is nil a panic will occur. In the future the SDK may create
3422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3423// for more information on using Contexts.
3424func (c *EMR) ModifyInstanceGroupsWithContext(ctx aws.Context, input *ModifyInstanceGroupsInput, opts ...request.Option) (*ModifyInstanceGroupsOutput, error) {
3425	req, out := c.ModifyInstanceGroupsRequest(input)
3426	req.SetContext(ctx)
3427	req.ApplyOptions(opts...)
3428	return out, req.Send()
3429}
3430
3431const opPutAutoScalingPolicy = "PutAutoScalingPolicy"
3432
3433// PutAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3434// client's request for the PutAutoScalingPolicy operation. The "output" return
3435// value will be populated with the request's response once the request completes
3436// successfully.
3437//
3438// Use "Send" method on the returned Request to send the API call to the service.
3439// the "output" return value is not valid until after Send returns without error.
3440//
3441// See PutAutoScalingPolicy for more information on using the PutAutoScalingPolicy
3442// API call, and error handling.
3443//
3444// This method is useful when you want to inject custom logic or configuration
3445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3446//
3447//
3448//    // Example sending a request using the PutAutoScalingPolicyRequest method.
3449//    req, resp := client.PutAutoScalingPolicyRequest(params)
3450//
3451//    err := req.Send()
3452//    if err == nil { // resp is now filled
3453//        fmt.Println(resp)
3454//    }
3455//
3456// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3457func (c *EMR) PutAutoScalingPolicyRequest(input *PutAutoScalingPolicyInput) (req *request.Request, output *PutAutoScalingPolicyOutput) {
3458	op := &request.Operation{
3459		Name:       opPutAutoScalingPolicy,
3460		HTTPMethod: "POST",
3461		HTTPPath:   "/",
3462	}
3463
3464	if input == nil {
3465		input = &PutAutoScalingPolicyInput{}
3466	}
3467
3468	output = &PutAutoScalingPolicyOutput{}
3469	req = c.newRequest(op, input, output)
3470	return
3471}
3472
3473// PutAutoScalingPolicy API operation for Amazon Elastic MapReduce.
3474//
3475// Creates or updates an automatic scaling policy for a core instance group
3476// or task instance group in an Amazon EMR cluster. The automatic scaling policy
3477// defines how an instance group dynamically adds and terminates EC2 instances
3478// in response to the value of a CloudWatch metric.
3479//
3480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3481// with awserr.Error's Code and Message methods to get detailed information about
3482// the error.
3483//
3484// See the AWS API reference guide for Amazon Elastic MapReduce's
3485// API operation PutAutoScalingPolicy for usage and error information.
3486// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3487func (c *EMR) PutAutoScalingPolicy(input *PutAutoScalingPolicyInput) (*PutAutoScalingPolicyOutput, error) {
3488	req, out := c.PutAutoScalingPolicyRequest(input)
3489	return out, req.Send()
3490}
3491
3492// PutAutoScalingPolicyWithContext is the same as PutAutoScalingPolicy with the addition of
3493// the ability to pass a context and additional request options.
3494//
3495// See PutAutoScalingPolicy for details on how to use this API operation.
3496//
3497// The context must be non-nil and will be used for request cancellation. If
3498// the context is nil a panic will occur. In the future the SDK may create
3499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3500// for more information on using Contexts.
3501func (c *EMR) PutAutoScalingPolicyWithContext(ctx aws.Context, input *PutAutoScalingPolicyInput, opts ...request.Option) (*PutAutoScalingPolicyOutput, error) {
3502	req, out := c.PutAutoScalingPolicyRequest(input)
3503	req.SetContext(ctx)
3504	req.ApplyOptions(opts...)
3505	return out, req.Send()
3506}
3507
3508const opPutBlockPublicAccessConfiguration = "PutBlockPublicAccessConfiguration"
3509
3510// PutBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
3511// client's request for the PutBlockPublicAccessConfiguration operation. The "output" return
3512// value will be populated with the request's response once the request completes
3513// successfully.
3514//
3515// Use "Send" method on the returned Request to send the API call to the service.
3516// the "output" return value is not valid until after Send returns without error.
3517//
3518// See PutBlockPublicAccessConfiguration for more information on using the PutBlockPublicAccessConfiguration
3519// API call, and error handling.
3520//
3521// This method is useful when you want to inject custom logic or configuration
3522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3523//
3524//
3525//    // Example sending a request using the PutBlockPublicAccessConfigurationRequest method.
3526//    req, resp := client.PutBlockPublicAccessConfigurationRequest(params)
3527//
3528//    err := req.Send()
3529//    if err == nil { // resp is now filled
3530//        fmt.Println(resp)
3531//    }
3532//
3533// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3534func (c *EMR) PutBlockPublicAccessConfigurationRequest(input *PutBlockPublicAccessConfigurationInput) (req *request.Request, output *PutBlockPublicAccessConfigurationOutput) {
3535	op := &request.Operation{
3536		Name:       opPutBlockPublicAccessConfiguration,
3537		HTTPMethod: "POST",
3538		HTTPPath:   "/",
3539	}
3540
3541	if input == nil {
3542		input = &PutBlockPublicAccessConfigurationInput{}
3543	}
3544
3545	output = &PutBlockPublicAccessConfigurationOutput{}
3546	req = c.newRequest(op, input, output)
3547	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3548	return
3549}
3550
3551// PutBlockPublicAccessConfiguration API operation for Amazon Elastic MapReduce.
3552//
3553// Creates or updates an Amazon EMR block public access configuration for your
3554// AWS account in the current Region. For more information see Configure Block
3555// Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
3556// in the Amazon EMR Management Guide.
3557//
3558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3559// with awserr.Error's Code and Message methods to get detailed information about
3560// the error.
3561//
3562// See the AWS API reference guide for Amazon Elastic MapReduce's
3563// API operation PutBlockPublicAccessConfiguration for usage and error information.
3564//
3565// Returned Error Types:
3566//   * InternalServerException
3567//   This exception occurs when there is an internal failure in the EMR service.
3568//
3569//   * InvalidRequestException
3570//   This exception occurs when there is something wrong with user input.
3571//
3572// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3573func (c *EMR) PutBlockPublicAccessConfiguration(input *PutBlockPublicAccessConfigurationInput) (*PutBlockPublicAccessConfigurationOutput, error) {
3574	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3575	return out, req.Send()
3576}
3577
3578// PutBlockPublicAccessConfigurationWithContext is the same as PutBlockPublicAccessConfiguration with the addition of
3579// the ability to pass a context and additional request options.
3580//
3581// See PutBlockPublicAccessConfiguration for details on how to use this API operation.
3582//
3583// The context must be non-nil and will be used for request cancellation. If
3584// the context is nil a panic will occur. In the future the SDK may create
3585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3586// for more information on using Contexts.
3587func (c *EMR) PutBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *PutBlockPublicAccessConfigurationInput, opts ...request.Option) (*PutBlockPublicAccessConfigurationOutput, error) {
3588	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3589	req.SetContext(ctx)
3590	req.ApplyOptions(opts...)
3591	return out, req.Send()
3592}
3593
3594const opPutManagedScalingPolicy = "PutManagedScalingPolicy"
3595
3596// PutManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3597// client's request for the PutManagedScalingPolicy operation. The "output" return
3598// value will be populated with the request's response once the request completes
3599// successfully.
3600//
3601// Use "Send" method on the returned Request to send the API call to the service.
3602// the "output" return value is not valid until after Send returns without error.
3603//
3604// See PutManagedScalingPolicy for more information on using the PutManagedScalingPolicy
3605// API call, and error handling.
3606//
3607// This method is useful when you want to inject custom logic or configuration
3608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3609//
3610//
3611//    // Example sending a request using the PutManagedScalingPolicyRequest method.
3612//    req, resp := client.PutManagedScalingPolicyRequest(params)
3613//
3614//    err := req.Send()
3615//    if err == nil { // resp is now filled
3616//        fmt.Println(resp)
3617//    }
3618//
3619// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3620func (c *EMR) PutManagedScalingPolicyRequest(input *PutManagedScalingPolicyInput) (req *request.Request, output *PutManagedScalingPolicyOutput) {
3621	op := &request.Operation{
3622		Name:       opPutManagedScalingPolicy,
3623		HTTPMethod: "POST",
3624		HTTPPath:   "/",
3625	}
3626
3627	if input == nil {
3628		input = &PutManagedScalingPolicyInput{}
3629	}
3630
3631	output = &PutManagedScalingPolicyOutput{}
3632	req = c.newRequest(op, input, output)
3633	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3634	return
3635}
3636
3637// PutManagedScalingPolicy API operation for Amazon Elastic MapReduce.
3638//
3639// Creates or updates a managed scaling policy for an Amazon EMR cluster. The
3640// managed scaling policy defines the limits for resources, such as EC2 instances
3641// that can be added or terminated from a cluster. The policy only applies to
3642// the core and task nodes. The master node cannot be scaled after initial configuration.
3643//
3644// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3645// with awserr.Error's Code and Message methods to get detailed information about
3646// the error.
3647//
3648// See the AWS API reference guide for Amazon Elastic MapReduce's
3649// API operation PutManagedScalingPolicy for usage and error information.
3650// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3651func (c *EMR) PutManagedScalingPolicy(input *PutManagedScalingPolicyInput) (*PutManagedScalingPolicyOutput, error) {
3652	req, out := c.PutManagedScalingPolicyRequest(input)
3653	return out, req.Send()
3654}
3655
3656// PutManagedScalingPolicyWithContext is the same as PutManagedScalingPolicy with the addition of
3657// the ability to pass a context and additional request options.
3658//
3659// See PutManagedScalingPolicy for details on how to use this API operation.
3660//
3661// The context must be non-nil and will be used for request cancellation. If
3662// the context is nil a panic will occur. In the future the SDK may create
3663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3664// for more information on using Contexts.
3665func (c *EMR) PutManagedScalingPolicyWithContext(ctx aws.Context, input *PutManagedScalingPolicyInput, opts ...request.Option) (*PutManagedScalingPolicyOutput, error) {
3666	req, out := c.PutManagedScalingPolicyRequest(input)
3667	req.SetContext(ctx)
3668	req.ApplyOptions(opts...)
3669	return out, req.Send()
3670}
3671
3672const opRemoveAutoScalingPolicy = "RemoveAutoScalingPolicy"
3673
3674// RemoveAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3675// client's request for the RemoveAutoScalingPolicy operation. The "output" return
3676// value will be populated with the request's response once the request completes
3677// successfully.
3678//
3679// Use "Send" method on the returned Request to send the API call to the service.
3680// the "output" return value is not valid until after Send returns without error.
3681//
3682// See RemoveAutoScalingPolicy for more information on using the RemoveAutoScalingPolicy
3683// API call, and error handling.
3684//
3685// This method is useful when you want to inject custom logic or configuration
3686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3687//
3688//
3689//    // Example sending a request using the RemoveAutoScalingPolicyRequest method.
3690//    req, resp := client.RemoveAutoScalingPolicyRequest(params)
3691//
3692//    err := req.Send()
3693//    if err == nil { // resp is now filled
3694//        fmt.Println(resp)
3695//    }
3696//
3697// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
3698func (c *EMR) RemoveAutoScalingPolicyRequest(input *RemoveAutoScalingPolicyInput) (req *request.Request, output *RemoveAutoScalingPolicyOutput) {
3699	op := &request.Operation{
3700		Name:       opRemoveAutoScalingPolicy,
3701		HTTPMethod: "POST",
3702		HTTPPath:   "/",
3703	}
3704
3705	if input == nil {
3706		input = &RemoveAutoScalingPolicyInput{}
3707	}
3708
3709	output = &RemoveAutoScalingPolicyOutput{}
3710	req = c.newRequest(op, input, output)
3711	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3712	return
3713}
3714
3715// RemoveAutoScalingPolicy API operation for Amazon Elastic MapReduce.
3716//
3717// Removes an automatic scaling policy from a specified instance group within
3718// an EMR cluster.
3719//
3720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3721// with awserr.Error's Code and Message methods to get detailed information about
3722// the error.
3723//
3724// See the AWS API reference guide for Amazon Elastic MapReduce's
3725// API operation RemoveAutoScalingPolicy for usage and error information.
3726// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
3727func (c *EMR) RemoveAutoScalingPolicy(input *RemoveAutoScalingPolicyInput) (*RemoveAutoScalingPolicyOutput, error) {
3728	req, out := c.RemoveAutoScalingPolicyRequest(input)
3729	return out, req.Send()
3730}
3731
3732// RemoveAutoScalingPolicyWithContext is the same as RemoveAutoScalingPolicy with the addition of
3733// the ability to pass a context and additional request options.
3734//
3735// See RemoveAutoScalingPolicy for details on how to use this API operation.
3736//
3737// The context must be non-nil and will be used for request cancellation. If
3738// the context is nil a panic will occur. In the future the SDK may create
3739// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3740// for more information on using Contexts.
3741func (c *EMR) RemoveAutoScalingPolicyWithContext(ctx aws.Context, input *RemoveAutoScalingPolicyInput, opts ...request.Option) (*RemoveAutoScalingPolicyOutput, error) {
3742	req, out := c.RemoveAutoScalingPolicyRequest(input)
3743	req.SetContext(ctx)
3744	req.ApplyOptions(opts...)
3745	return out, req.Send()
3746}
3747
3748const opRemoveManagedScalingPolicy = "RemoveManagedScalingPolicy"
3749
3750// RemoveManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3751// client's request for the RemoveManagedScalingPolicy operation. The "output" return
3752// value will be populated with the request's response once the request completes
3753// successfully.
3754//
3755// Use "Send" method on the returned Request to send the API call to the service.
3756// the "output" return value is not valid until after Send returns without error.
3757//
3758// See RemoveManagedScalingPolicy for more information on using the RemoveManagedScalingPolicy
3759// API call, and error handling.
3760//
3761// This method is useful when you want to inject custom logic or configuration
3762// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3763//
3764//
3765//    // Example sending a request using the RemoveManagedScalingPolicyRequest method.
3766//    req, resp := client.RemoveManagedScalingPolicyRequest(params)
3767//
3768//    err := req.Send()
3769//    if err == nil { // resp is now filled
3770//        fmt.Println(resp)
3771//    }
3772//
3773// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
3774func (c *EMR) RemoveManagedScalingPolicyRequest(input *RemoveManagedScalingPolicyInput) (req *request.Request, output *RemoveManagedScalingPolicyOutput) {
3775	op := &request.Operation{
3776		Name:       opRemoveManagedScalingPolicy,
3777		HTTPMethod: "POST",
3778		HTTPPath:   "/",
3779	}
3780
3781	if input == nil {
3782		input = &RemoveManagedScalingPolicyInput{}
3783	}
3784
3785	output = &RemoveManagedScalingPolicyOutput{}
3786	req = c.newRequest(op, input, output)
3787	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3788	return
3789}
3790
3791// RemoveManagedScalingPolicy API operation for Amazon Elastic MapReduce.
3792//
3793// Removes a managed scaling policy from a specified EMR cluster.
3794//
3795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3796// with awserr.Error's Code and Message methods to get detailed information about
3797// the error.
3798//
3799// See the AWS API reference guide for Amazon Elastic MapReduce's
3800// API operation RemoveManagedScalingPolicy for usage and error information.
3801// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
3802func (c *EMR) RemoveManagedScalingPolicy(input *RemoveManagedScalingPolicyInput) (*RemoveManagedScalingPolicyOutput, error) {
3803	req, out := c.RemoveManagedScalingPolicyRequest(input)
3804	return out, req.Send()
3805}
3806
3807// RemoveManagedScalingPolicyWithContext is the same as RemoveManagedScalingPolicy with the addition of
3808// the ability to pass a context and additional request options.
3809//
3810// See RemoveManagedScalingPolicy for details on how to use this API operation.
3811//
3812// The context must be non-nil and will be used for request cancellation. If
3813// the context is nil a panic will occur. In the future the SDK may create
3814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3815// for more information on using Contexts.
3816func (c *EMR) RemoveManagedScalingPolicyWithContext(ctx aws.Context, input *RemoveManagedScalingPolicyInput, opts ...request.Option) (*RemoveManagedScalingPolicyOutput, error) {
3817	req, out := c.RemoveManagedScalingPolicyRequest(input)
3818	req.SetContext(ctx)
3819	req.ApplyOptions(opts...)
3820	return out, req.Send()
3821}
3822
3823const opRemoveTags = "RemoveTags"
3824
3825// RemoveTagsRequest generates a "aws/request.Request" representing the
3826// client's request for the RemoveTags operation. The "output" return
3827// value will be populated with the request's response once the request completes
3828// successfully.
3829//
3830// Use "Send" method on the returned Request to send the API call to the service.
3831// the "output" return value is not valid until after Send returns without error.
3832//
3833// See RemoveTags for more information on using the RemoveTags
3834// API call, and error handling.
3835//
3836// This method is useful when you want to inject custom logic or configuration
3837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3838//
3839//
3840//    // Example sending a request using the RemoveTagsRequest method.
3841//    req, resp := client.RemoveTagsRequest(params)
3842//
3843//    err := req.Send()
3844//    if err == nil { // resp is now filled
3845//        fmt.Println(resp)
3846//    }
3847//
3848// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
3849func (c *EMR) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
3850	op := &request.Operation{
3851		Name:       opRemoveTags,
3852		HTTPMethod: "POST",
3853		HTTPPath:   "/",
3854	}
3855
3856	if input == nil {
3857		input = &RemoveTagsInput{}
3858	}
3859
3860	output = &RemoveTagsOutput{}
3861	req = c.newRequest(op, input, output)
3862	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3863	return
3864}
3865
3866// RemoveTags API operation for Amazon Elastic MapReduce.
3867//
3868// Removes tags from an Amazon EMR resource. Tags make it easier to associate
3869// clusters in various ways, such as grouping clusters to track your Amazon
3870// EMR resource allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
3871//
3872// The following example removes the stack tag with value Prod from a cluster:
3873//
3874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3875// with awserr.Error's Code and Message methods to get detailed information about
3876// the error.
3877//
3878// See the AWS API reference guide for Amazon Elastic MapReduce's
3879// API operation RemoveTags for usage and error information.
3880//
3881// Returned Error Types:
3882//   * InternalServerException
3883//   This exception occurs when there is an internal failure in the EMR service.
3884//
3885//   * InvalidRequestException
3886//   This exception occurs when there is something wrong with user input.
3887//
3888// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
3889func (c *EMR) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
3890	req, out := c.RemoveTagsRequest(input)
3891	return out, req.Send()
3892}
3893
3894// RemoveTagsWithContext is the same as RemoveTags with the addition of
3895// the ability to pass a context and additional request options.
3896//
3897// See RemoveTags for details on how to use this API operation.
3898//
3899// The context must be non-nil and will be used for request cancellation. If
3900// the context is nil a panic will occur. In the future the SDK may create
3901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3902// for more information on using Contexts.
3903func (c *EMR) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
3904	req, out := c.RemoveTagsRequest(input)
3905	req.SetContext(ctx)
3906	req.ApplyOptions(opts...)
3907	return out, req.Send()
3908}
3909
3910const opRunJobFlow = "RunJobFlow"
3911
3912// RunJobFlowRequest generates a "aws/request.Request" representing the
3913// client's request for the RunJobFlow operation. The "output" return
3914// value will be populated with the request's response once the request completes
3915// successfully.
3916//
3917// Use "Send" method on the returned Request to send the API call to the service.
3918// the "output" return value is not valid until after Send returns without error.
3919//
3920// See RunJobFlow for more information on using the RunJobFlow
3921// API call, and error handling.
3922//
3923// This method is useful when you want to inject custom logic or configuration
3924// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3925//
3926//
3927//    // Example sending a request using the RunJobFlowRequest method.
3928//    req, resp := client.RunJobFlowRequest(params)
3929//
3930//    err := req.Send()
3931//    if err == nil { // resp is now filled
3932//        fmt.Println(resp)
3933//    }
3934//
3935// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
3936func (c *EMR) RunJobFlowRequest(input *RunJobFlowInput) (req *request.Request, output *RunJobFlowOutput) {
3937	op := &request.Operation{
3938		Name:       opRunJobFlow,
3939		HTTPMethod: "POST",
3940		HTTPPath:   "/",
3941	}
3942
3943	if input == nil {
3944		input = &RunJobFlowInput{}
3945	}
3946
3947	output = &RunJobFlowOutput{}
3948	req = c.newRequest(op, input, output)
3949	return
3950}
3951
3952// RunJobFlow API operation for Amazon Elastic MapReduce.
3953//
3954// RunJobFlow creates and starts running a new cluster (job flow). The cluster
3955// runs the steps specified. After the steps complete, the cluster stops and
3956// the HDFS partition is lost. To prevent loss of data, configure the last step
3957// of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig
3958// KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions
3959// to the WAITING state rather than shutting down after the steps have completed.
3960//
3961// For additional protection, you can set the JobFlowInstancesConfig TerminationProtected
3962// parameter to TRUE to lock the cluster and prevent it from being terminated
3963// by API call, user intervention, or in the event of a job flow error.
3964//
3965// A maximum of 256 steps are allowed in each job flow.
3966//
3967// If your cluster is long-running (such as a Hive data warehouse) or complex,
3968// you may require more than 256 steps to process your data. You can bypass
3969// the 256-step limitation in various ways, including using the SSH shell to
3970// connect to the master node and submitting queries directly to the software
3971// running on the master node, such as Hive and Hadoop. For more information
3972// on how to do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
3973// in the Amazon EMR Management Guide.
3974//
3975// For long running clusters, we recommend that you periodically store your
3976// results.
3977//
3978// The instance fleets configuration is available only in Amazon EMR versions
3979// 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain
3980// InstanceFleets parameters or InstanceGroups parameters, but not both.
3981//
3982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3983// with awserr.Error's Code and Message methods to get detailed information about
3984// the error.
3985//
3986// See the AWS API reference guide for Amazon Elastic MapReduce's
3987// API operation RunJobFlow for usage and error information.
3988//
3989// Returned Error Types:
3990//   * InternalServerError
3991//   Indicates that an error occurred while processing the request and that the
3992//   request was not completed.
3993//
3994// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
3995func (c *EMR) RunJobFlow(input *RunJobFlowInput) (*RunJobFlowOutput, error) {
3996	req, out := c.RunJobFlowRequest(input)
3997	return out, req.Send()
3998}
3999
4000// RunJobFlowWithContext is the same as RunJobFlow with the addition of
4001// the ability to pass a context and additional request options.
4002//
4003// See RunJobFlow for details on how to use this API operation.
4004//
4005// The context must be non-nil and will be used for request cancellation. If
4006// the context is nil a panic will occur. In the future the SDK may create
4007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4008// for more information on using Contexts.
4009func (c *EMR) RunJobFlowWithContext(ctx aws.Context, input *RunJobFlowInput, opts ...request.Option) (*RunJobFlowOutput, error) {
4010	req, out := c.RunJobFlowRequest(input)
4011	req.SetContext(ctx)
4012	req.ApplyOptions(opts...)
4013	return out, req.Send()
4014}
4015
4016const opSetTerminationProtection = "SetTerminationProtection"
4017
4018// SetTerminationProtectionRequest generates a "aws/request.Request" representing the
4019// client's request for the SetTerminationProtection operation. The "output" return
4020// value will be populated with the request's response once the request completes
4021// successfully.
4022//
4023// Use "Send" method on the returned Request to send the API call to the service.
4024// the "output" return value is not valid until after Send returns without error.
4025//
4026// See SetTerminationProtection for more information on using the SetTerminationProtection
4027// API call, and error handling.
4028//
4029// This method is useful when you want to inject custom logic or configuration
4030// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4031//
4032//
4033//    // Example sending a request using the SetTerminationProtectionRequest method.
4034//    req, resp := client.SetTerminationProtectionRequest(params)
4035//
4036//    err := req.Send()
4037//    if err == nil { // resp is now filled
4038//        fmt.Println(resp)
4039//    }
4040//
4041// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4042func (c *EMR) SetTerminationProtectionRequest(input *SetTerminationProtectionInput) (req *request.Request, output *SetTerminationProtectionOutput) {
4043	op := &request.Operation{
4044		Name:       opSetTerminationProtection,
4045		HTTPMethod: "POST",
4046		HTTPPath:   "/",
4047	}
4048
4049	if input == nil {
4050		input = &SetTerminationProtectionInput{}
4051	}
4052
4053	output = &SetTerminationProtectionOutput{}
4054	req = c.newRequest(op, input, output)
4055	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4056	return
4057}
4058
4059// SetTerminationProtection API operation for Amazon Elastic MapReduce.
4060//
4061// SetTerminationProtection locks a cluster (job flow) so the EC2 instances
4062// in the cluster cannot be terminated by user intervention, an API call, or
4063// in the event of a job-flow error. The cluster still terminates upon successful
4064// completion of the job flow. Calling SetTerminationProtection on a cluster
4065// is similar to calling the Amazon EC2 DisableAPITermination API on all EC2
4066// instances in a cluster.
4067//
4068// SetTerminationProtection is used to prevent accidental termination of a cluster
4069// and to ensure that in the event of an error, the instances persist so that
4070// you can recover any data stored in their ephemeral instance storage.
4071//
4072// To terminate a cluster that has been locked by setting SetTerminationProtection
4073// to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection
4074// in which you set the value to false.
4075//
4076// For more information, seeManaging Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)
4077// in the Amazon EMR Management Guide.
4078//
4079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4080// with awserr.Error's Code and Message methods to get detailed information about
4081// the error.
4082//
4083// See the AWS API reference guide for Amazon Elastic MapReduce's
4084// API operation SetTerminationProtection for usage and error information.
4085//
4086// Returned Error Types:
4087//   * InternalServerError
4088//   Indicates that an error occurred while processing the request and that the
4089//   request was not completed.
4090//
4091// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4092func (c *EMR) SetTerminationProtection(input *SetTerminationProtectionInput) (*SetTerminationProtectionOutput, error) {
4093	req, out := c.SetTerminationProtectionRequest(input)
4094	return out, req.Send()
4095}
4096
4097// SetTerminationProtectionWithContext is the same as SetTerminationProtection with the addition of
4098// the ability to pass a context and additional request options.
4099//
4100// See SetTerminationProtection for details on how to use this API operation.
4101//
4102// The context must be non-nil and will be used for request cancellation. If
4103// the context is nil a panic will occur. In the future the SDK may create
4104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4105// for more information on using Contexts.
4106func (c *EMR) SetTerminationProtectionWithContext(ctx aws.Context, input *SetTerminationProtectionInput, opts ...request.Option) (*SetTerminationProtectionOutput, error) {
4107	req, out := c.SetTerminationProtectionRequest(input)
4108	req.SetContext(ctx)
4109	req.ApplyOptions(opts...)
4110	return out, req.Send()
4111}
4112
4113const opSetVisibleToAllUsers = "SetVisibleToAllUsers"
4114
4115// SetVisibleToAllUsersRequest generates a "aws/request.Request" representing the
4116// client's request for the SetVisibleToAllUsers operation. The "output" return
4117// value will be populated with the request's response once the request completes
4118// successfully.
4119//
4120// Use "Send" method on the returned Request to send the API call to the service.
4121// the "output" return value is not valid until after Send returns without error.
4122//
4123// See SetVisibleToAllUsers for more information on using the SetVisibleToAllUsers
4124// API call, and error handling.
4125//
4126// This method is useful when you want to inject custom logic or configuration
4127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4128//
4129//
4130//    // Example sending a request using the SetVisibleToAllUsersRequest method.
4131//    req, resp := client.SetVisibleToAllUsersRequest(params)
4132//
4133//    err := req.Send()
4134//    if err == nil { // resp is now filled
4135//        fmt.Println(resp)
4136//    }
4137//
4138// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4139func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req *request.Request, output *SetVisibleToAllUsersOutput) {
4140	op := &request.Operation{
4141		Name:       opSetVisibleToAllUsers,
4142		HTTPMethod: "POST",
4143		HTTPPath:   "/",
4144	}
4145
4146	if input == nil {
4147		input = &SetVisibleToAllUsersInput{}
4148	}
4149
4150	output = &SetVisibleToAllUsersOutput{}
4151	req = c.newRequest(op, input, output)
4152	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4153	return
4154}
4155
4156// SetVisibleToAllUsers API operation for Amazon Elastic MapReduce.
4157//
4158// Sets the Cluster$VisibleToAllUsers value, which determines whether the cluster
4159// is visible to all IAM users of the AWS account associated with the cluster.
4160// Only the IAM user who created the cluster or the AWS account root user can
4161// call this action. The default value, true, indicates that all IAM users in
4162// the AWS account can perform cluster actions if they have the proper IAM policy
4163// permissions. If set to false, only the IAM user that created the cluster
4164// can perform actions. This action works on running clusters. You can override
4165// the default true setting when you create a cluster by using the VisibleToAllUsers
4166// parameter with RunJobFlow.
4167//
4168// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4169// with awserr.Error's Code and Message methods to get detailed information about
4170// the error.
4171//
4172// See the AWS API reference guide for Amazon Elastic MapReduce's
4173// API operation SetVisibleToAllUsers for usage and error information.
4174//
4175// Returned Error Types:
4176//   * InternalServerError
4177//   Indicates that an error occurred while processing the request and that the
4178//   request was not completed.
4179//
4180// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4181func (c *EMR) SetVisibleToAllUsers(input *SetVisibleToAllUsersInput) (*SetVisibleToAllUsersOutput, error) {
4182	req, out := c.SetVisibleToAllUsersRequest(input)
4183	return out, req.Send()
4184}
4185
4186// SetVisibleToAllUsersWithContext is the same as SetVisibleToAllUsers with the addition of
4187// the ability to pass a context and additional request options.
4188//
4189// See SetVisibleToAllUsers for details on how to use this API operation.
4190//
4191// The context must be non-nil and will be used for request cancellation. If
4192// the context is nil a panic will occur. In the future the SDK may create
4193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4194// for more information on using Contexts.
4195func (c *EMR) SetVisibleToAllUsersWithContext(ctx aws.Context, input *SetVisibleToAllUsersInput, opts ...request.Option) (*SetVisibleToAllUsersOutput, error) {
4196	req, out := c.SetVisibleToAllUsersRequest(input)
4197	req.SetContext(ctx)
4198	req.ApplyOptions(opts...)
4199	return out, req.Send()
4200}
4201
4202const opStartNotebookExecution = "StartNotebookExecution"
4203
4204// StartNotebookExecutionRequest generates a "aws/request.Request" representing the
4205// client's request for the StartNotebookExecution operation. The "output" return
4206// value will be populated with the request's response once the request completes
4207// successfully.
4208//
4209// Use "Send" method on the returned Request to send the API call to the service.
4210// the "output" return value is not valid until after Send returns without error.
4211//
4212// See StartNotebookExecution for more information on using the StartNotebookExecution
4213// API call, and error handling.
4214//
4215// This method is useful when you want to inject custom logic or configuration
4216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4217//
4218//
4219//    // Example sending a request using the StartNotebookExecutionRequest method.
4220//    req, resp := client.StartNotebookExecutionRequest(params)
4221//
4222//    err := req.Send()
4223//    if err == nil { // resp is now filled
4224//        fmt.Println(resp)
4225//    }
4226//
4227// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4228func (c *EMR) StartNotebookExecutionRequest(input *StartNotebookExecutionInput) (req *request.Request, output *StartNotebookExecutionOutput) {
4229	op := &request.Operation{
4230		Name:       opStartNotebookExecution,
4231		HTTPMethod: "POST",
4232		HTTPPath:   "/",
4233	}
4234
4235	if input == nil {
4236		input = &StartNotebookExecutionInput{}
4237	}
4238
4239	output = &StartNotebookExecutionOutput{}
4240	req = c.newRequest(op, input, output)
4241	return
4242}
4243
4244// StartNotebookExecution API operation for Amazon Elastic MapReduce.
4245//
4246// Starts a notebook execution.
4247//
4248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4249// with awserr.Error's Code and Message methods to get detailed information about
4250// the error.
4251//
4252// See the AWS API reference guide for Amazon Elastic MapReduce's
4253// API operation StartNotebookExecution for usage and error information.
4254//
4255// Returned Error Types:
4256//   * InternalServerException
4257//   This exception occurs when there is an internal failure in the EMR service.
4258//
4259//   * InvalidRequestException
4260//   This exception occurs when there is something wrong with user input.
4261//
4262// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4263func (c *EMR) StartNotebookExecution(input *StartNotebookExecutionInput) (*StartNotebookExecutionOutput, error) {
4264	req, out := c.StartNotebookExecutionRequest(input)
4265	return out, req.Send()
4266}
4267
4268// StartNotebookExecutionWithContext is the same as StartNotebookExecution with the addition of
4269// the ability to pass a context and additional request options.
4270//
4271// See StartNotebookExecution for details on how to use this API operation.
4272//
4273// The context must be non-nil and will be used for request cancellation. If
4274// the context is nil a panic will occur. In the future the SDK may create
4275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4276// for more information on using Contexts.
4277func (c *EMR) StartNotebookExecutionWithContext(ctx aws.Context, input *StartNotebookExecutionInput, opts ...request.Option) (*StartNotebookExecutionOutput, error) {
4278	req, out := c.StartNotebookExecutionRequest(input)
4279	req.SetContext(ctx)
4280	req.ApplyOptions(opts...)
4281	return out, req.Send()
4282}
4283
4284const opStopNotebookExecution = "StopNotebookExecution"
4285
4286// StopNotebookExecutionRequest generates a "aws/request.Request" representing the
4287// client's request for the StopNotebookExecution operation. The "output" return
4288// value will be populated with the request's response once the request completes
4289// successfully.
4290//
4291// Use "Send" method on the returned Request to send the API call to the service.
4292// the "output" return value is not valid until after Send returns without error.
4293//
4294// See StopNotebookExecution for more information on using the StopNotebookExecution
4295// API call, and error handling.
4296//
4297// This method is useful when you want to inject custom logic or configuration
4298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4299//
4300//
4301//    // Example sending a request using the StopNotebookExecutionRequest method.
4302//    req, resp := client.StopNotebookExecutionRequest(params)
4303//
4304//    err := req.Send()
4305//    if err == nil { // resp is now filled
4306//        fmt.Println(resp)
4307//    }
4308//
4309// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4310func (c *EMR) StopNotebookExecutionRequest(input *StopNotebookExecutionInput) (req *request.Request, output *StopNotebookExecutionOutput) {
4311	op := &request.Operation{
4312		Name:       opStopNotebookExecution,
4313		HTTPMethod: "POST",
4314		HTTPPath:   "/",
4315	}
4316
4317	if input == nil {
4318		input = &StopNotebookExecutionInput{}
4319	}
4320
4321	output = &StopNotebookExecutionOutput{}
4322	req = c.newRequest(op, input, output)
4323	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4324	return
4325}
4326
4327// StopNotebookExecution API operation for Amazon Elastic MapReduce.
4328//
4329// Stops a notebook execution.
4330//
4331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4332// with awserr.Error's Code and Message methods to get detailed information about
4333// the error.
4334//
4335// See the AWS API reference guide for Amazon Elastic MapReduce's
4336// API operation StopNotebookExecution for usage and error information.
4337//
4338// Returned Error Types:
4339//   * InternalServerError
4340//   Indicates that an error occurred while processing the request and that the
4341//   request was not completed.
4342//
4343//   * InvalidRequestException
4344//   This exception occurs when there is something wrong with user input.
4345//
4346// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4347func (c *EMR) StopNotebookExecution(input *StopNotebookExecutionInput) (*StopNotebookExecutionOutput, error) {
4348	req, out := c.StopNotebookExecutionRequest(input)
4349	return out, req.Send()
4350}
4351
4352// StopNotebookExecutionWithContext is the same as StopNotebookExecution with the addition of
4353// the ability to pass a context and additional request options.
4354//
4355// See StopNotebookExecution for details on how to use this API operation.
4356//
4357// The context must be non-nil and will be used for request cancellation. If
4358// the context is nil a panic will occur. In the future the SDK may create
4359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4360// for more information on using Contexts.
4361func (c *EMR) StopNotebookExecutionWithContext(ctx aws.Context, input *StopNotebookExecutionInput, opts ...request.Option) (*StopNotebookExecutionOutput, error) {
4362	req, out := c.StopNotebookExecutionRequest(input)
4363	req.SetContext(ctx)
4364	req.ApplyOptions(opts...)
4365	return out, req.Send()
4366}
4367
4368const opTerminateJobFlows = "TerminateJobFlows"
4369
4370// TerminateJobFlowsRequest generates a "aws/request.Request" representing the
4371// client's request for the TerminateJobFlows operation. The "output" return
4372// value will be populated with the request's response once the request completes
4373// successfully.
4374//
4375// Use "Send" method on the returned Request to send the API call to the service.
4376// the "output" return value is not valid until after Send returns without error.
4377//
4378// See TerminateJobFlows for more information on using the TerminateJobFlows
4379// API call, and error handling.
4380//
4381// This method is useful when you want to inject custom logic or configuration
4382// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4383//
4384//
4385//    // Example sending a request using the TerminateJobFlowsRequest method.
4386//    req, resp := client.TerminateJobFlowsRequest(params)
4387//
4388//    err := req.Send()
4389//    if err == nil { // resp is now filled
4390//        fmt.Println(resp)
4391//    }
4392//
4393// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4394func (c *EMR) TerminateJobFlowsRequest(input *TerminateJobFlowsInput) (req *request.Request, output *TerminateJobFlowsOutput) {
4395	op := &request.Operation{
4396		Name:       opTerminateJobFlows,
4397		HTTPMethod: "POST",
4398		HTTPPath:   "/",
4399	}
4400
4401	if input == nil {
4402		input = &TerminateJobFlowsInput{}
4403	}
4404
4405	output = &TerminateJobFlowsOutput{}
4406	req = c.newRequest(op, input, output)
4407	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4408	return
4409}
4410
4411// TerminateJobFlows API operation for Amazon Elastic MapReduce.
4412//
4413// TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow
4414// is shut down, any step not yet completed is canceled and the EC2 instances
4415// on which the cluster is running are stopped. Any log files not already saved
4416// are uploaded to Amazon S3 if a LogUri was specified when the cluster was
4417// created.
4418//
4419// The maximum number of clusters allowed is 10. The call to TerminateJobFlows
4420// is asynchronous. Depending on the configuration of the cluster, it may take
4421// up to 1-5 minutes for the cluster to completely terminate and release allocated
4422// resources, such as Amazon EC2 instances.
4423//
4424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4425// with awserr.Error's Code and Message methods to get detailed information about
4426// the error.
4427//
4428// See the AWS API reference guide for Amazon Elastic MapReduce's
4429// API operation TerminateJobFlows for usage and error information.
4430//
4431// Returned Error Types:
4432//   * InternalServerError
4433//   Indicates that an error occurred while processing the request and that the
4434//   request was not completed.
4435//
4436// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4437func (c *EMR) TerminateJobFlows(input *TerminateJobFlowsInput) (*TerminateJobFlowsOutput, error) {
4438	req, out := c.TerminateJobFlowsRequest(input)
4439	return out, req.Send()
4440}
4441
4442// TerminateJobFlowsWithContext is the same as TerminateJobFlows with the addition of
4443// the ability to pass a context and additional request options.
4444//
4445// See TerminateJobFlows for details on how to use this API operation.
4446//
4447// The context must be non-nil and will be used for request cancellation. If
4448// the context is nil a panic will occur. In the future the SDK may create
4449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4450// for more information on using Contexts.
4451func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobFlowsInput, opts ...request.Option) (*TerminateJobFlowsOutput, error) {
4452	req, out := c.TerminateJobFlowsRequest(input)
4453	req.SetContext(ctx)
4454	req.ApplyOptions(opts...)
4455	return out, req.Send()
4456}
4457
4458const opUpdateStudioSessionMapping = "UpdateStudioSessionMapping"
4459
4460// UpdateStudioSessionMappingRequest generates a "aws/request.Request" representing the
4461// client's request for the UpdateStudioSessionMapping operation. The "output" return
4462// value will be populated with the request's response once the request completes
4463// successfully.
4464//
4465// Use "Send" method on the returned Request to send the API call to the service.
4466// the "output" return value is not valid until after Send returns without error.
4467//
4468// See UpdateStudioSessionMapping for more information on using the UpdateStudioSessionMapping
4469// API call, and error handling.
4470//
4471// This method is useful when you want to inject custom logic or configuration
4472// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4473//
4474//
4475//    // Example sending a request using the UpdateStudioSessionMappingRequest method.
4476//    req, resp := client.UpdateStudioSessionMappingRequest(params)
4477//
4478//    err := req.Send()
4479//    if err == nil { // resp is now filled
4480//        fmt.Println(resp)
4481//    }
4482//
4483// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
4484func (c *EMR) UpdateStudioSessionMappingRequest(input *UpdateStudioSessionMappingInput) (req *request.Request, output *UpdateStudioSessionMappingOutput) {
4485	op := &request.Operation{
4486		Name:       opUpdateStudioSessionMapping,
4487		HTTPMethod: "POST",
4488		HTTPPath:   "/",
4489	}
4490
4491	if input == nil {
4492		input = &UpdateStudioSessionMappingInput{}
4493	}
4494
4495	output = &UpdateStudioSessionMappingOutput{}
4496	req = c.newRequest(op, input, output)
4497	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4498	return
4499}
4500
4501// UpdateStudioSessionMapping API operation for Amazon Elastic MapReduce.
4502//
4503//
4504// The Amazon EMR Studio APIs are in preview release for Amazon EMR and are
4505// subject to change.
4506//
4507// Updates the session policy attached to the user or group for the specified
4508// Amazon EMR Studio.
4509//
4510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4511// with awserr.Error's Code and Message methods to get detailed information about
4512// the error.
4513//
4514// See the AWS API reference guide for Amazon Elastic MapReduce's
4515// API operation UpdateStudioSessionMapping for usage and error information.
4516//
4517// Returned Error Types:
4518//   * InternalServerError
4519//   Indicates that an error occurred while processing the request and that the
4520//   request was not completed.
4521//
4522//   * InvalidRequestException
4523//   This exception occurs when there is something wrong with user input.
4524//
4525// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
4526func (c *EMR) UpdateStudioSessionMapping(input *UpdateStudioSessionMappingInput) (*UpdateStudioSessionMappingOutput, error) {
4527	req, out := c.UpdateStudioSessionMappingRequest(input)
4528	return out, req.Send()
4529}
4530
4531// UpdateStudioSessionMappingWithContext is the same as UpdateStudioSessionMapping with the addition of
4532// the ability to pass a context and additional request options.
4533//
4534// See UpdateStudioSessionMapping for details on how to use this API operation.
4535//
4536// The context must be non-nil and will be used for request cancellation. If
4537// the context is nil a panic will occur. In the future the SDK may create
4538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4539// for more information on using Contexts.
4540func (c *EMR) UpdateStudioSessionMappingWithContext(ctx aws.Context, input *UpdateStudioSessionMappingInput, opts ...request.Option) (*UpdateStudioSessionMappingOutput, error) {
4541	req, out := c.UpdateStudioSessionMappingRequest(input)
4542	req.SetContext(ctx)
4543	req.ApplyOptions(opts...)
4544	return out, req.Send()
4545}
4546
4547type AddInstanceFleetInput struct {
4548	_ struct{} `type:"structure"`
4549
4550	// The unique identifier of the cluster.
4551	//
4552	// ClusterId is a required field
4553	ClusterId *string `type:"string" required:"true"`
4554
4555	// Specifies the configuration of the instance fleet.
4556	//
4557	// InstanceFleet is a required field
4558	InstanceFleet *InstanceFleetConfig `type:"structure" required:"true"`
4559}
4560
4561// String returns the string representation
4562func (s AddInstanceFleetInput) String() string {
4563	return awsutil.Prettify(s)
4564}
4565
4566// GoString returns the string representation
4567func (s AddInstanceFleetInput) GoString() string {
4568	return s.String()
4569}
4570
4571// Validate inspects the fields of the type to determine if they are valid.
4572func (s *AddInstanceFleetInput) Validate() error {
4573	invalidParams := request.ErrInvalidParams{Context: "AddInstanceFleetInput"}
4574	if s.ClusterId == nil {
4575		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
4576	}
4577	if s.InstanceFleet == nil {
4578		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
4579	}
4580	if s.InstanceFleet != nil {
4581		if err := s.InstanceFleet.Validate(); err != nil {
4582			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
4583		}
4584	}
4585
4586	if invalidParams.Len() > 0 {
4587		return invalidParams
4588	}
4589	return nil
4590}
4591
4592// SetClusterId sets the ClusterId field's value.
4593func (s *AddInstanceFleetInput) SetClusterId(v string) *AddInstanceFleetInput {
4594	s.ClusterId = &v
4595	return s
4596}
4597
4598// SetInstanceFleet sets the InstanceFleet field's value.
4599func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddInstanceFleetInput {
4600	s.InstanceFleet = v
4601	return s
4602}
4603
4604type AddInstanceFleetOutput struct {
4605	_ struct{} `type:"structure"`
4606
4607	// The Amazon Resource Name of the cluster.
4608	ClusterArn *string `min:"20" type:"string"`
4609
4610	// The unique identifier of the cluster.
4611	ClusterId *string `type:"string"`
4612
4613	// The unique identifier of the instance fleet.
4614	InstanceFleetId *string `type:"string"`
4615}
4616
4617// String returns the string representation
4618func (s AddInstanceFleetOutput) String() string {
4619	return awsutil.Prettify(s)
4620}
4621
4622// GoString returns the string representation
4623func (s AddInstanceFleetOutput) GoString() string {
4624	return s.String()
4625}
4626
4627// SetClusterArn sets the ClusterArn field's value.
4628func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput {
4629	s.ClusterArn = &v
4630	return s
4631}
4632
4633// SetClusterId sets the ClusterId field's value.
4634func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput {
4635	s.ClusterId = &v
4636	return s
4637}
4638
4639// SetInstanceFleetId sets the InstanceFleetId field's value.
4640func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetOutput {
4641	s.InstanceFleetId = &v
4642	return s
4643}
4644
4645// Input to an AddInstanceGroups call.
4646type AddInstanceGroupsInput struct {
4647	_ struct{} `type:"structure"`
4648
4649	// Instance groups to add.
4650	//
4651	// InstanceGroups is a required field
4652	InstanceGroups []*InstanceGroupConfig `type:"list" required:"true"`
4653
4654	// Job flow in which to add the instance groups.
4655	//
4656	// JobFlowId is a required field
4657	JobFlowId *string `type:"string" required:"true"`
4658}
4659
4660// String returns the string representation
4661func (s AddInstanceGroupsInput) String() string {
4662	return awsutil.Prettify(s)
4663}
4664
4665// GoString returns the string representation
4666func (s AddInstanceGroupsInput) GoString() string {
4667	return s.String()
4668}
4669
4670// Validate inspects the fields of the type to determine if they are valid.
4671func (s *AddInstanceGroupsInput) Validate() error {
4672	invalidParams := request.ErrInvalidParams{Context: "AddInstanceGroupsInput"}
4673	if s.InstanceGroups == nil {
4674		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
4675	}
4676	if s.JobFlowId == nil {
4677		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
4678	}
4679	if s.InstanceGroups != nil {
4680		for i, v := range s.InstanceGroups {
4681			if v == nil {
4682				continue
4683			}
4684			if err := v.Validate(); err != nil {
4685				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
4686			}
4687		}
4688	}
4689
4690	if invalidParams.Len() > 0 {
4691		return invalidParams
4692	}
4693	return nil
4694}
4695
4696// SetInstanceGroups sets the InstanceGroups field's value.
4697func (s *AddInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupConfig) *AddInstanceGroupsInput {
4698	s.InstanceGroups = v
4699	return s
4700}
4701
4702// SetJobFlowId sets the JobFlowId field's value.
4703func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput {
4704	s.JobFlowId = &v
4705	return s
4706}
4707
4708// Output from an AddInstanceGroups call.
4709type AddInstanceGroupsOutput struct {
4710	_ struct{} `type:"structure"`
4711
4712	// The Amazon Resource Name of the cluster.
4713	ClusterArn *string `min:"20" type:"string"`
4714
4715	// Instance group IDs of the newly created instance groups.
4716	InstanceGroupIds []*string `type:"list"`
4717
4718	// The job flow ID in which the instance groups are added.
4719	JobFlowId *string `type:"string"`
4720}
4721
4722// String returns the string representation
4723func (s AddInstanceGroupsOutput) String() string {
4724	return awsutil.Prettify(s)
4725}
4726
4727// GoString returns the string representation
4728func (s AddInstanceGroupsOutput) GoString() string {
4729	return s.String()
4730}
4731
4732// SetClusterArn sets the ClusterArn field's value.
4733func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput {
4734	s.ClusterArn = &v
4735	return s
4736}
4737
4738// SetInstanceGroupIds sets the InstanceGroupIds field's value.
4739func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput {
4740	s.InstanceGroupIds = v
4741	return s
4742}
4743
4744// SetJobFlowId sets the JobFlowId field's value.
4745func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutput {
4746	s.JobFlowId = &v
4747	return s
4748}
4749
4750// The input argument to the AddJobFlowSteps operation.
4751type AddJobFlowStepsInput struct {
4752	_ struct{} `type:"structure"`
4753
4754	// A string that uniquely identifies the job flow. This identifier is returned
4755	// by RunJobFlow and can also be obtained from ListClusters.
4756	//
4757	// JobFlowId is a required field
4758	JobFlowId *string `type:"string" required:"true"`
4759
4760	// A list of StepConfig to be executed by the job flow.
4761	//
4762	// Steps is a required field
4763	Steps []*StepConfig `type:"list" required:"true"`
4764}
4765
4766// String returns the string representation
4767func (s AddJobFlowStepsInput) String() string {
4768	return awsutil.Prettify(s)
4769}
4770
4771// GoString returns the string representation
4772func (s AddJobFlowStepsInput) GoString() string {
4773	return s.String()
4774}
4775
4776// Validate inspects the fields of the type to determine if they are valid.
4777func (s *AddJobFlowStepsInput) Validate() error {
4778	invalidParams := request.ErrInvalidParams{Context: "AddJobFlowStepsInput"}
4779	if s.JobFlowId == nil {
4780		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
4781	}
4782	if s.Steps == nil {
4783		invalidParams.Add(request.NewErrParamRequired("Steps"))
4784	}
4785	if s.Steps != nil {
4786		for i, v := range s.Steps {
4787			if v == nil {
4788				continue
4789			}
4790			if err := v.Validate(); err != nil {
4791				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
4792			}
4793		}
4794	}
4795
4796	if invalidParams.Len() > 0 {
4797		return invalidParams
4798	}
4799	return nil
4800}
4801
4802// SetJobFlowId sets the JobFlowId field's value.
4803func (s *AddJobFlowStepsInput) SetJobFlowId(v string) *AddJobFlowStepsInput {
4804	s.JobFlowId = &v
4805	return s
4806}
4807
4808// SetSteps sets the Steps field's value.
4809func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput {
4810	s.Steps = v
4811	return s
4812}
4813
4814// The output for the AddJobFlowSteps operation.
4815type AddJobFlowStepsOutput struct {
4816	_ struct{} `type:"structure"`
4817
4818	// The identifiers of the list of steps added to the job flow.
4819	StepIds []*string `type:"list"`
4820}
4821
4822// String returns the string representation
4823func (s AddJobFlowStepsOutput) String() string {
4824	return awsutil.Prettify(s)
4825}
4826
4827// GoString returns the string representation
4828func (s AddJobFlowStepsOutput) GoString() string {
4829	return s.String()
4830}
4831
4832// SetStepIds sets the StepIds field's value.
4833func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput {
4834	s.StepIds = v
4835	return s
4836}
4837
4838// This input identifies a cluster and a list of tags to attach.
4839type AddTagsInput struct {
4840	_ struct{} `type:"structure"`
4841
4842	// The Amazon EMR resource identifier to which tags will be added. This value
4843	// must be a cluster identifier.
4844	//
4845	// ResourceId is a required field
4846	ResourceId *string `type:"string" required:"true"`
4847
4848	// A list of tags to associate with a cluster and propagate to EC2 instances.
4849	// Tags are user-defined key-value pairs that consist of a required key string
4850	// with a maximum of 128 characters, and an optional value string with a maximum
4851	// of 256 characters.
4852	//
4853	// Tags is a required field
4854	Tags []*Tag `type:"list" required:"true"`
4855}
4856
4857// String returns the string representation
4858func (s AddTagsInput) String() string {
4859	return awsutil.Prettify(s)
4860}
4861
4862// GoString returns the string representation
4863func (s AddTagsInput) GoString() string {
4864	return s.String()
4865}
4866
4867// Validate inspects the fields of the type to determine if they are valid.
4868func (s *AddTagsInput) Validate() error {
4869	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
4870	if s.ResourceId == nil {
4871		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4872	}
4873	if s.Tags == nil {
4874		invalidParams.Add(request.NewErrParamRequired("Tags"))
4875	}
4876
4877	if invalidParams.Len() > 0 {
4878		return invalidParams
4879	}
4880	return nil
4881}
4882
4883// SetResourceId sets the ResourceId field's value.
4884func (s *AddTagsInput) SetResourceId(v string) *AddTagsInput {
4885	s.ResourceId = &v
4886	return s
4887}
4888
4889// SetTags sets the Tags field's value.
4890func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
4891	s.Tags = v
4892	return s
4893}
4894
4895// This output indicates the result of adding tags to a resource.
4896type AddTagsOutput struct {
4897	_ struct{} `type:"structure"`
4898}
4899
4900// String returns the string representation
4901func (s AddTagsOutput) String() string {
4902	return awsutil.Prettify(s)
4903}
4904
4905// GoString returns the string representation
4906func (s AddTagsOutput) GoString() string {
4907	return s.String()
4908}
4909
4910// With Amazon EMR release version 4.0 and later, the only accepted parameter
4911// is the application name. To pass arguments to applications, you use configuration
4912// classifications specified using configuration JSON objects. For more information,
4913// see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
4914//
4915// With earlier Amazon EMR releases, the application is any Amazon or third-party
4916// software that you can add to the cluster. This structure contains a list
4917// of strings that indicates the software to use with the cluster and accepts
4918// a user argument list. Amazon EMR accepts and forwards the argument list to
4919// the corresponding installation script as bootstrap action argument.
4920type Application struct {
4921	_ struct{} `type:"structure"`
4922
4923	// This option is for advanced users only. This is meta information about third-party
4924	// applications that third-party vendors use for testing purposes.
4925	AdditionalInfo map[string]*string `type:"map"`
4926
4927	// Arguments for Amazon EMR to pass to the application.
4928	Args []*string `type:"list"`
4929
4930	// The name of the application.
4931	Name *string `type:"string"`
4932
4933	// The version of the application.
4934	Version *string `type:"string"`
4935}
4936
4937// String returns the string representation
4938func (s Application) String() string {
4939	return awsutil.Prettify(s)
4940}
4941
4942// GoString returns the string representation
4943func (s Application) GoString() string {
4944	return s.String()
4945}
4946
4947// SetAdditionalInfo sets the AdditionalInfo field's value.
4948func (s *Application) SetAdditionalInfo(v map[string]*string) *Application {
4949	s.AdditionalInfo = v
4950	return s
4951}
4952
4953// SetArgs sets the Args field's value.
4954func (s *Application) SetArgs(v []*string) *Application {
4955	s.Args = v
4956	return s
4957}
4958
4959// SetName sets the Name field's value.
4960func (s *Application) SetName(v string) *Application {
4961	s.Name = &v
4962	return s
4963}
4964
4965// SetVersion sets the Version field's value.
4966func (s *Application) SetVersion(v string) *Application {
4967	s.Version = &v
4968	return s
4969}
4970
4971// An automatic scaling policy for a core instance group or task instance group
4972// in an Amazon EMR cluster. An automatic scaling policy defines how an instance
4973// group dynamically adds and terminates EC2 instances in response to the value
4974// of a CloudWatch metric. See PutAutoScalingPolicy.
4975type AutoScalingPolicy struct {
4976	_ struct{} `type:"structure"`
4977
4978	// The upper and lower EC2 instance limits for an automatic scaling policy.
4979	// Automatic scaling activity will not cause an instance group to grow above
4980	// or below these limits.
4981	//
4982	// Constraints is a required field
4983	Constraints *ScalingConstraints `type:"structure" required:"true"`
4984
4985	// The scale-in and scale-out rules that comprise the automatic scaling policy.
4986	//
4987	// Rules is a required field
4988	Rules []*ScalingRule `type:"list" required:"true"`
4989}
4990
4991// String returns the string representation
4992func (s AutoScalingPolicy) String() string {
4993	return awsutil.Prettify(s)
4994}
4995
4996// GoString returns the string representation
4997func (s AutoScalingPolicy) GoString() string {
4998	return s.String()
4999}
5000
5001// Validate inspects the fields of the type to determine if they are valid.
5002func (s *AutoScalingPolicy) Validate() error {
5003	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicy"}
5004	if s.Constraints == nil {
5005		invalidParams.Add(request.NewErrParamRequired("Constraints"))
5006	}
5007	if s.Rules == nil {
5008		invalidParams.Add(request.NewErrParamRequired("Rules"))
5009	}
5010	if s.Constraints != nil {
5011		if err := s.Constraints.Validate(); err != nil {
5012			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
5013		}
5014	}
5015	if s.Rules != nil {
5016		for i, v := range s.Rules {
5017			if v == nil {
5018				continue
5019			}
5020			if err := v.Validate(); err != nil {
5021				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
5022			}
5023		}
5024	}
5025
5026	if invalidParams.Len() > 0 {
5027		return invalidParams
5028	}
5029	return nil
5030}
5031
5032// SetConstraints sets the Constraints field's value.
5033func (s *AutoScalingPolicy) SetConstraints(v *ScalingConstraints) *AutoScalingPolicy {
5034	s.Constraints = v
5035	return s
5036}
5037
5038// SetRules sets the Rules field's value.
5039func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy {
5040	s.Rules = v
5041	return s
5042}
5043
5044// An automatic scaling policy for a core instance group or task instance group
5045// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
5046// group dynamically adds and terminates EC2 instances in response to the value
5047// of a CloudWatch metric. See PutAutoScalingPolicy.
5048type AutoScalingPolicyDescription struct {
5049	_ struct{} `type:"structure"`
5050
5051	// The upper and lower EC2 instance limits for an automatic scaling policy.
5052	// Automatic scaling activity will not cause an instance group to grow above
5053	// or below these limits.
5054	Constraints *ScalingConstraints `type:"structure"`
5055
5056	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5057	Rules []*ScalingRule `type:"list"`
5058
5059	// The status of an automatic scaling policy.
5060	Status *AutoScalingPolicyStatus `type:"structure"`
5061}
5062
5063// String returns the string representation
5064func (s AutoScalingPolicyDescription) String() string {
5065	return awsutil.Prettify(s)
5066}
5067
5068// GoString returns the string representation
5069func (s AutoScalingPolicyDescription) GoString() string {
5070	return s.String()
5071}
5072
5073// SetConstraints sets the Constraints field's value.
5074func (s *AutoScalingPolicyDescription) SetConstraints(v *ScalingConstraints) *AutoScalingPolicyDescription {
5075	s.Constraints = v
5076	return s
5077}
5078
5079// SetRules sets the Rules field's value.
5080func (s *AutoScalingPolicyDescription) SetRules(v []*ScalingRule) *AutoScalingPolicyDescription {
5081	s.Rules = v
5082	return s
5083}
5084
5085// SetStatus sets the Status field's value.
5086func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *AutoScalingPolicyDescription {
5087	s.Status = v
5088	return s
5089}
5090
5091// The reason for an AutoScalingPolicyStatus change.
5092type AutoScalingPolicyStateChangeReason struct {
5093	_ struct{} `type:"structure"`
5094
5095	// The code indicating the reason for the change in status.USER_REQUEST indicates
5096	// that the scaling policy status was changed by a user. PROVISION_FAILURE indicates
5097	// that the status change was because the policy failed to provision. CLEANUP_FAILURE
5098	// indicates an error.
5099	Code *string `type:"string" enum:"AutoScalingPolicyStateChangeReasonCode"`
5100
5101	// A friendly, more verbose message that accompanies an automatic scaling policy
5102	// state change.
5103	Message *string `type:"string"`
5104}
5105
5106// String returns the string representation
5107func (s AutoScalingPolicyStateChangeReason) String() string {
5108	return awsutil.Prettify(s)
5109}
5110
5111// GoString returns the string representation
5112func (s AutoScalingPolicyStateChangeReason) GoString() string {
5113	return s.String()
5114}
5115
5116// SetCode sets the Code field's value.
5117func (s *AutoScalingPolicyStateChangeReason) SetCode(v string) *AutoScalingPolicyStateChangeReason {
5118	s.Code = &v
5119	return s
5120}
5121
5122// SetMessage sets the Message field's value.
5123func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPolicyStateChangeReason {
5124	s.Message = &v
5125	return s
5126}
5127
5128// The status of an automatic scaling policy.
5129type AutoScalingPolicyStatus struct {
5130	_ struct{} `type:"structure"`
5131
5132	// Indicates the status of the automatic scaling policy.
5133	State *string `type:"string" enum:"AutoScalingPolicyState"`
5134
5135	// The reason for a change in status.
5136	StateChangeReason *AutoScalingPolicyStateChangeReason `type:"structure"`
5137}
5138
5139// String returns the string representation
5140func (s AutoScalingPolicyStatus) String() string {
5141	return awsutil.Prettify(s)
5142}
5143
5144// GoString returns the string representation
5145func (s AutoScalingPolicyStatus) GoString() string {
5146	return s.String()
5147}
5148
5149// SetState sets the State field's value.
5150func (s *AutoScalingPolicyStatus) SetState(v string) *AutoScalingPolicyStatus {
5151	s.State = &v
5152	return s
5153}
5154
5155// SetStateChangeReason sets the StateChangeReason field's value.
5156func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyStateChangeReason) *AutoScalingPolicyStatus {
5157	s.StateChangeReason = v
5158	return s
5159}
5160
5161// A configuration for Amazon EMR block public access. When BlockPublicSecurityGroupRules
5162// is set to true, Amazon EMR prevents cluster creation if one of the cluster's
5163// security groups has a rule that allows inbound traffic from 0.0.0.0/0 or
5164// ::/0 on a port, unless the port is specified as an exception using PermittedPublicSecurityGroupRuleRanges.
5165type BlockPublicAccessConfiguration struct {
5166	_ struct{} `type:"structure"`
5167
5168	// Indicates whether Amazon EMR block public access is enabled (true) or disabled
5169	// (false). By default, the value is false for accounts that have created EMR
5170	// clusters before July 2019. For accounts created after this, the default is
5171	// true.
5172	//
5173	// BlockPublicSecurityGroupRules is a required field
5174	BlockPublicSecurityGroupRules *bool `type:"boolean" required:"true"`
5175
5176	// Specifies ports and port ranges that are permitted to have security group
5177	// rules that allow inbound traffic from all public sources. For example, if
5178	// Port 23 (Telnet) is specified for PermittedPublicSecurityGroupRuleRanges,
5179	// Amazon EMR allows cluster creation if a security group associated with the
5180	// cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0
5181	// or IPv6 port ::/0 as the source.
5182	//
5183	// By default, Port 22, which is used for SSH access to the cluster EC2 instances,
5184	// is in the list of PermittedPublicSecurityGroupRuleRanges.
5185	PermittedPublicSecurityGroupRuleRanges []*PortRange `type:"list"`
5186}
5187
5188// String returns the string representation
5189func (s BlockPublicAccessConfiguration) String() string {
5190	return awsutil.Prettify(s)
5191}
5192
5193// GoString returns the string representation
5194func (s BlockPublicAccessConfiguration) GoString() string {
5195	return s.String()
5196}
5197
5198// Validate inspects the fields of the type to determine if they are valid.
5199func (s *BlockPublicAccessConfiguration) Validate() error {
5200	invalidParams := request.ErrInvalidParams{Context: "BlockPublicAccessConfiguration"}
5201	if s.BlockPublicSecurityGroupRules == nil {
5202		invalidParams.Add(request.NewErrParamRequired("BlockPublicSecurityGroupRules"))
5203	}
5204	if s.PermittedPublicSecurityGroupRuleRanges != nil {
5205		for i, v := range s.PermittedPublicSecurityGroupRuleRanges {
5206			if v == nil {
5207				continue
5208			}
5209			if err := v.Validate(); err != nil {
5210				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PermittedPublicSecurityGroupRuleRanges", i), err.(request.ErrInvalidParams))
5211			}
5212		}
5213	}
5214
5215	if invalidParams.Len() > 0 {
5216		return invalidParams
5217	}
5218	return nil
5219}
5220
5221// SetBlockPublicSecurityGroupRules sets the BlockPublicSecurityGroupRules field's value.
5222func (s *BlockPublicAccessConfiguration) SetBlockPublicSecurityGroupRules(v bool) *BlockPublicAccessConfiguration {
5223	s.BlockPublicSecurityGroupRules = &v
5224	return s
5225}
5226
5227// SetPermittedPublicSecurityGroupRuleRanges sets the PermittedPublicSecurityGroupRuleRanges field's value.
5228func (s *BlockPublicAccessConfiguration) SetPermittedPublicSecurityGroupRuleRanges(v []*PortRange) *BlockPublicAccessConfiguration {
5229	s.PermittedPublicSecurityGroupRuleRanges = v
5230	return s
5231}
5232
5233// Properties that describe the AWS principal that created the BlockPublicAccessConfiguration
5234// using the PutBlockPublicAccessConfiguration action as well as the date and
5235// time that the configuration was created. Each time a configuration for block
5236// public access is updated, Amazon EMR updates this metadata.
5237type BlockPublicAccessConfigurationMetadata struct {
5238	_ struct{} `type:"structure"`
5239
5240	// The Amazon Resource Name that created or last modified the configuration.
5241	//
5242	// CreatedByArn is a required field
5243	CreatedByArn *string `min:"20" type:"string" required:"true"`
5244
5245	// The date and time that the configuration was created.
5246	//
5247	// CreationDateTime is a required field
5248	CreationDateTime *time.Time `type:"timestamp" required:"true"`
5249}
5250
5251// String returns the string representation
5252func (s BlockPublicAccessConfigurationMetadata) String() string {
5253	return awsutil.Prettify(s)
5254}
5255
5256// GoString returns the string representation
5257func (s BlockPublicAccessConfigurationMetadata) GoString() string {
5258	return s.String()
5259}
5260
5261// SetCreatedByArn sets the CreatedByArn field's value.
5262func (s *BlockPublicAccessConfigurationMetadata) SetCreatedByArn(v string) *BlockPublicAccessConfigurationMetadata {
5263	s.CreatedByArn = &v
5264	return s
5265}
5266
5267// SetCreationDateTime sets the CreationDateTime field's value.
5268func (s *BlockPublicAccessConfigurationMetadata) SetCreationDateTime(v time.Time) *BlockPublicAccessConfigurationMetadata {
5269	s.CreationDateTime = &v
5270	return s
5271}
5272
5273// Configuration of a bootstrap action.
5274type BootstrapActionConfig struct {
5275	_ struct{} `type:"structure"`
5276
5277	// The name of the bootstrap action.
5278	//
5279	// Name is a required field
5280	Name *string `type:"string" required:"true"`
5281
5282	// The script run by the bootstrap action.
5283	//
5284	// ScriptBootstrapAction is a required field
5285	ScriptBootstrapAction *ScriptBootstrapActionConfig `type:"structure" required:"true"`
5286}
5287
5288// String returns the string representation
5289func (s BootstrapActionConfig) String() string {
5290	return awsutil.Prettify(s)
5291}
5292
5293// GoString returns the string representation
5294func (s BootstrapActionConfig) GoString() string {
5295	return s.String()
5296}
5297
5298// Validate inspects the fields of the type to determine if they are valid.
5299func (s *BootstrapActionConfig) Validate() error {
5300	invalidParams := request.ErrInvalidParams{Context: "BootstrapActionConfig"}
5301	if s.Name == nil {
5302		invalidParams.Add(request.NewErrParamRequired("Name"))
5303	}
5304	if s.ScriptBootstrapAction == nil {
5305		invalidParams.Add(request.NewErrParamRequired("ScriptBootstrapAction"))
5306	}
5307	if s.ScriptBootstrapAction != nil {
5308		if err := s.ScriptBootstrapAction.Validate(); err != nil {
5309			invalidParams.AddNested("ScriptBootstrapAction", err.(request.ErrInvalidParams))
5310		}
5311	}
5312
5313	if invalidParams.Len() > 0 {
5314		return invalidParams
5315	}
5316	return nil
5317}
5318
5319// SetName sets the Name field's value.
5320func (s *BootstrapActionConfig) SetName(v string) *BootstrapActionConfig {
5321	s.Name = &v
5322	return s
5323}
5324
5325// SetScriptBootstrapAction sets the ScriptBootstrapAction field's value.
5326func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActionConfig) *BootstrapActionConfig {
5327	s.ScriptBootstrapAction = v
5328	return s
5329}
5330
5331// Reports the configuration of a bootstrap action in a cluster (job flow).
5332type BootstrapActionDetail struct {
5333	_ struct{} `type:"structure"`
5334
5335	// A description of the bootstrap action.
5336	BootstrapActionConfig *BootstrapActionConfig `type:"structure"`
5337}
5338
5339// String returns the string representation
5340func (s BootstrapActionDetail) String() string {
5341	return awsutil.Prettify(s)
5342}
5343
5344// GoString returns the string representation
5345func (s BootstrapActionDetail) GoString() string {
5346	return s.String()
5347}
5348
5349// SetBootstrapActionConfig sets the BootstrapActionConfig field's value.
5350func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfig) *BootstrapActionDetail {
5351	s.BootstrapActionConfig = v
5352	return s
5353}
5354
5355// Specification of the status of a CancelSteps request. Available only in Amazon
5356// EMR version 4.8.0 and later, excluding version 5.0.0.
5357type CancelStepsInfo struct {
5358	_ struct{} `type:"structure"`
5359
5360	// The reason for the failure if the CancelSteps request fails.
5361	Reason *string `type:"string"`
5362
5363	// The status of a CancelSteps Request. The value may be SUBMITTED or FAILED.
5364	Status *string `type:"string" enum:"CancelStepsRequestStatus"`
5365
5366	// The encrypted StepId of a step.
5367	StepId *string `type:"string"`
5368}
5369
5370// String returns the string representation
5371func (s CancelStepsInfo) String() string {
5372	return awsutil.Prettify(s)
5373}
5374
5375// GoString returns the string representation
5376func (s CancelStepsInfo) GoString() string {
5377	return s.String()
5378}
5379
5380// SetReason sets the Reason field's value.
5381func (s *CancelStepsInfo) SetReason(v string) *CancelStepsInfo {
5382	s.Reason = &v
5383	return s
5384}
5385
5386// SetStatus sets the Status field's value.
5387func (s *CancelStepsInfo) SetStatus(v string) *CancelStepsInfo {
5388	s.Status = &v
5389	return s
5390}
5391
5392// SetStepId sets the StepId field's value.
5393func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo {
5394	s.StepId = &v
5395	return s
5396}
5397
5398// The input argument to the CancelSteps operation.
5399type CancelStepsInput struct {
5400	_ struct{} `type:"structure"`
5401
5402	// The ClusterID for the specified steps that will be canceled. Use RunJobFlow
5403	// and ListClusters to get ClusterIDs.
5404	//
5405	// ClusterId is a required field
5406	ClusterId *string `type:"string" required:"true"`
5407
5408	// The option to choose to cancel RUNNING steps. By default, the value is SEND_INTERRUPT.
5409	StepCancellationOption *string `type:"string" enum:"StepCancellationOption"`
5410
5411	// The list of StepIDs to cancel. Use ListSteps to get steps and their states
5412	// for the specified cluster.
5413	//
5414	// StepIds is a required field
5415	StepIds []*string `type:"list" required:"true"`
5416}
5417
5418// String returns the string representation
5419func (s CancelStepsInput) String() string {
5420	return awsutil.Prettify(s)
5421}
5422
5423// GoString returns the string representation
5424func (s CancelStepsInput) GoString() string {
5425	return s.String()
5426}
5427
5428// Validate inspects the fields of the type to determine if they are valid.
5429func (s *CancelStepsInput) Validate() error {
5430	invalidParams := request.ErrInvalidParams{Context: "CancelStepsInput"}
5431	if s.ClusterId == nil {
5432		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5433	}
5434	if s.StepIds == nil {
5435		invalidParams.Add(request.NewErrParamRequired("StepIds"))
5436	}
5437
5438	if invalidParams.Len() > 0 {
5439		return invalidParams
5440	}
5441	return nil
5442}
5443
5444// SetClusterId sets the ClusterId field's value.
5445func (s *CancelStepsInput) SetClusterId(v string) *CancelStepsInput {
5446	s.ClusterId = &v
5447	return s
5448}
5449
5450// SetStepCancellationOption sets the StepCancellationOption field's value.
5451func (s *CancelStepsInput) SetStepCancellationOption(v string) *CancelStepsInput {
5452	s.StepCancellationOption = &v
5453	return s
5454}
5455
5456// SetStepIds sets the StepIds field's value.
5457func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput {
5458	s.StepIds = v
5459	return s
5460}
5461
5462// The output for the CancelSteps operation.
5463type CancelStepsOutput struct {
5464	_ struct{} `type:"structure"`
5465
5466	// A list of CancelStepsInfo, which shows the status of specified cancel requests
5467	// for each StepID specified.
5468	CancelStepsInfoList []*CancelStepsInfo `type:"list"`
5469}
5470
5471// String returns the string representation
5472func (s CancelStepsOutput) String() string {
5473	return awsutil.Prettify(s)
5474}
5475
5476// GoString returns the string representation
5477func (s CancelStepsOutput) GoString() string {
5478	return s.String()
5479}
5480
5481// SetCancelStepsInfoList sets the CancelStepsInfoList field's value.
5482func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *CancelStepsOutput {
5483	s.CancelStepsInfoList = v
5484	return s
5485}
5486
5487// The definition of a CloudWatch metric alarm, which determines when an automatic
5488// scaling activity is triggered. When the defined alarm conditions are satisfied,
5489// scaling activity begins.
5490type CloudWatchAlarmDefinition struct {
5491	_ struct{} `type:"structure"`
5492
5493	// Determines how the metric specified by MetricName is compared to the value
5494	// specified by Threshold.
5495	//
5496	// ComparisonOperator is a required field
5497	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
5498
5499	// A CloudWatch metric dimension.
5500	Dimensions []*MetricDimension `type:"list"`
5501
5502	// The number of periods, in five-minute increments, during which the alarm
5503	// condition must exist before the alarm triggers automatic scaling activity.
5504	// The default value is 1.
5505	EvaluationPeriods *int64 `type:"integer"`
5506
5507	// The name of the CloudWatch metric that is watched to determine an alarm condition.
5508	//
5509	// MetricName is a required field
5510	MetricName *string `type:"string" required:"true"`
5511
5512	// The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
5513	Namespace *string `type:"string"`
5514
5515	// The period, in seconds, over which the statistic is applied. EMR CloudWatch
5516	// metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch
5517	// metric is specified, specify 300.
5518	//
5519	// Period is a required field
5520	Period *int64 `type:"integer" required:"true"`
5521
5522	// The statistic to apply to the metric associated with the alarm. The default
5523	// is AVERAGE.
5524	Statistic *string `type:"string" enum:"Statistic"`
5525
5526	// The value against which the specified statistic is compared.
5527	//
5528	// Threshold is a required field
5529	Threshold *float64 `type:"double" required:"true"`
5530
5531	// The unit of measure associated with the CloudWatch metric being watched.
5532	// The value specified for Unit must correspond to the units specified in the
5533	// CloudWatch metric.
5534	Unit *string `type:"string" enum:"Unit"`
5535}
5536
5537// String returns the string representation
5538func (s CloudWatchAlarmDefinition) String() string {
5539	return awsutil.Prettify(s)
5540}
5541
5542// GoString returns the string representation
5543func (s CloudWatchAlarmDefinition) GoString() string {
5544	return s.String()
5545}
5546
5547// Validate inspects the fields of the type to determine if they are valid.
5548func (s *CloudWatchAlarmDefinition) Validate() error {
5549	invalidParams := request.ErrInvalidParams{Context: "CloudWatchAlarmDefinition"}
5550	if s.ComparisonOperator == nil {
5551		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
5552	}
5553	if s.MetricName == nil {
5554		invalidParams.Add(request.NewErrParamRequired("MetricName"))
5555	}
5556	if s.Period == nil {
5557		invalidParams.Add(request.NewErrParamRequired("Period"))
5558	}
5559	if s.Threshold == nil {
5560		invalidParams.Add(request.NewErrParamRequired("Threshold"))
5561	}
5562
5563	if invalidParams.Len() > 0 {
5564		return invalidParams
5565	}
5566	return nil
5567}
5568
5569// SetComparisonOperator sets the ComparisonOperator field's value.
5570func (s *CloudWatchAlarmDefinition) SetComparisonOperator(v string) *CloudWatchAlarmDefinition {
5571	s.ComparisonOperator = &v
5572	return s
5573}
5574
5575// SetDimensions sets the Dimensions field's value.
5576func (s *CloudWatchAlarmDefinition) SetDimensions(v []*MetricDimension) *CloudWatchAlarmDefinition {
5577	s.Dimensions = v
5578	return s
5579}
5580
5581// SetEvaluationPeriods sets the EvaluationPeriods field's value.
5582func (s *CloudWatchAlarmDefinition) SetEvaluationPeriods(v int64) *CloudWatchAlarmDefinition {
5583	s.EvaluationPeriods = &v
5584	return s
5585}
5586
5587// SetMetricName sets the MetricName field's value.
5588func (s *CloudWatchAlarmDefinition) SetMetricName(v string) *CloudWatchAlarmDefinition {
5589	s.MetricName = &v
5590	return s
5591}
5592
5593// SetNamespace sets the Namespace field's value.
5594func (s *CloudWatchAlarmDefinition) SetNamespace(v string) *CloudWatchAlarmDefinition {
5595	s.Namespace = &v
5596	return s
5597}
5598
5599// SetPeriod sets the Period field's value.
5600func (s *CloudWatchAlarmDefinition) SetPeriod(v int64) *CloudWatchAlarmDefinition {
5601	s.Period = &v
5602	return s
5603}
5604
5605// SetStatistic sets the Statistic field's value.
5606func (s *CloudWatchAlarmDefinition) SetStatistic(v string) *CloudWatchAlarmDefinition {
5607	s.Statistic = &v
5608	return s
5609}
5610
5611// SetThreshold sets the Threshold field's value.
5612func (s *CloudWatchAlarmDefinition) SetThreshold(v float64) *CloudWatchAlarmDefinition {
5613	s.Threshold = &v
5614	return s
5615}
5616
5617// SetUnit sets the Unit field's value.
5618func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition {
5619	s.Unit = &v
5620	return s
5621}
5622
5623// The detailed description of the cluster.
5624type Cluster struct {
5625	_ struct{} `type:"structure"`
5626
5627	// The applications installed on this cluster.
5628	Applications []*Application `type:"list"`
5629
5630	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
5631	// The IAM role provides permissions that the automatic scaling feature requires
5632	// to launch and terminate EC2 instances in an instance group.
5633	AutoScalingRole *string `type:"string"`
5634
5635	// Specifies whether the cluster should terminate after completing all steps.
5636	AutoTerminate *bool `type:"boolean"`
5637
5638	// The Amazon Resource Name of the cluster.
5639	ClusterArn *string `min:"20" type:"string"`
5640
5641	// Applies only to Amazon EMR releases 4.x and later. The list of Configurations
5642	// supplied to the EMR cluster.
5643	Configurations []*Configuration `type:"list"`
5644
5645	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
5646	// Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
5647	CustomAmiId *string `type:"string"`
5648
5649	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
5650	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
5651	EbsRootVolumeSize *int64 `type:"integer"`
5652
5653	// Provides information about the EC2 instances in a cluster grouped by category.
5654	// For example, key name, subnet ID, IAM instance profile, and so on.
5655	Ec2InstanceAttributes *Ec2InstanceAttributes `type:"structure"`
5656
5657	// The unique identifier for the cluster.
5658	Id *string `type:"string"`
5659
5660	//
5661	// The instance fleet configuration is available only in Amazon EMR versions
5662	// 4.8.0 and later, excluding 5.0.x versions.
5663	//
5664	// The instance group configuration of the cluster. A value of INSTANCE_GROUP
5665	// indicates a uniform instance group configuration. A value of INSTANCE_FLEET
5666	// indicates an instance fleets configuration.
5667	InstanceCollectionType *string `type:"string" enum:"InstanceCollectionType"`
5668
5669	// Attributes for Kerberos configuration when Kerberos authentication is enabled
5670	// using a security configuration. For more information see Use Kerberos Authentication
5671	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
5672	// in the Amazon EMR Management Guide.
5673	KerberosAttributes *KerberosAttributes `type:"structure"`
5674
5675	// The AWS KMS customer master key (CMK) used for encrypting log files. This
5676	// attribute is only available with EMR version 5.30.0 and later, excluding
5677	// EMR 6.0.0.
5678	LogEncryptionKmsKeyId *string `type:"string"`
5679
5680	// The path to the Amazon S3 location where logs for this cluster are stored.
5681	LogUri *string `type:"string"`
5682
5683	// The DNS name of the master node. If the cluster is on a private subnet, this
5684	// is the private DNS name. On a public subnet, this is the public DNS name.
5685	MasterPublicDnsName *string `type:"string"`
5686
5687	// The name of the cluster.
5688	Name *string `type:"string"`
5689
5690	// An approximation of the cost of the cluster, represented in m1.small/hours.
5691	// This value is incremented one time for every hour an m1.small instance runs.
5692	// Larger instances are weighted more, so an EC2 instance that is roughly four
5693	// times more expensive would result in the normalized instance hours being
5694	// incremented by four. This result is only an approximation and does not reflect
5695	// the actual billing rate.
5696	NormalizedInstanceHours *int64 `type:"integer"`
5697
5698	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
5699	OutpostArn *string `type:"string"`
5700
5701	// Placement group configured for an Amazon EMR cluster.
5702	PlacementGroups []*PlacementGroupConfig `type:"list"`
5703
5704	// The Amazon EMR release label, which determines the version of open-source
5705	// application packages installed on the cluster. Release labels are in the
5706	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
5707	// For more information about Amazon EMR release versions and included application
5708	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
5709	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
5710	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
5711	// use AmiVersion.
5712	ReleaseLabel *string `type:"string"`
5713
5714	// Applies only when CustomAmiID is used. Specifies the type of updates that
5715	// are applied from the Amazon Linux AMI package repositories when an instance
5716	// boots using the AMI.
5717	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
5718
5719	// The AMI version requested for this cluster.
5720	RequestedAmiVersion *string `type:"string"`
5721
5722	// The AMI version running on this cluster.
5723	RunningAmiVersion *string `type:"string"`
5724
5725	// The way that individual Amazon EC2 instances terminate when an automatic
5726	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
5727	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
5728	// regardless of when the request to terminate the instance was submitted. This
5729	// option is only available with Amazon EMR 5.1.0 and later and is the default
5730	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
5731	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
5732	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
5733	// With either behavior, Amazon EMR removes the least active nodes first and
5734	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
5735	// is available only in Amazon EMR version 4.1.0 and later, and is the default
5736	// for versions of Amazon EMR earlier than 5.1.0.
5737	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
5738
5739	// The name of the security configuration applied to the cluster.
5740	SecurityConfiguration *string `type:"string"`
5741
5742	// The IAM role that will be assumed by the Amazon EMR service to access AWS
5743	// resources on your behalf.
5744	ServiceRole *string `type:"string"`
5745
5746	// The current status details about the cluster.
5747	Status *ClusterStatus `type:"structure"`
5748
5749	// Specifies the number of steps that can be executed concurrently.
5750	StepConcurrencyLevel *int64 `type:"integer"`
5751
5752	// A list of tags associated with a cluster.
5753	Tags []*Tag `type:"list"`
5754
5755	// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances
5756	// from being terminated by an API call or user intervention, or in the event
5757	// of a cluster error.
5758	TerminationProtected *bool `type:"boolean"`
5759
5760	// Indicates whether the cluster is visible to all IAM users of the AWS account
5761	// associated with the cluster. The default value, true, indicates that all
5762	// IAM users in the AWS account can perform cluster actions if they have the
5763	// proper IAM policy permissions. If this value is false, only the IAM user
5764	// that created the cluster can perform actions. This value can be changed on
5765	// a running cluster by using the SetVisibleToAllUsers action. You can override
5766	// the default value of true when you create a cluster by using the VisibleToAllUsers
5767	// parameter of the RunJobFlow action.
5768	VisibleToAllUsers *bool `type:"boolean"`
5769}
5770
5771// String returns the string representation
5772func (s Cluster) String() string {
5773	return awsutil.Prettify(s)
5774}
5775
5776// GoString returns the string representation
5777func (s Cluster) GoString() string {
5778	return s.String()
5779}
5780
5781// SetApplications sets the Applications field's value.
5782func (s *Cluster) SetApplications(v []*Application) *Cluster {
5783	s.Applications = v
5784	return s
5785}
5786
5787// SetAutoScalingRole sets the AutoScalingRole field's value.
5788func (s *Cluster) SetAutoScalingRole(v string) *Cluster {
5789	s.AutoScalingRole = &v
5790	return s
5791}
5792
5793// SetAutoTerminate sets the AutoTerminate field's value.
5794func (s *Cluster) SetAutoTerminate(v bool) *Cluster {
5795	s.AutoTerminate = &v
5796	return s
5797}
5798
5799// SetClusterArn sets the ClusterArn field's value.
5800func (s *Cluster) SetClusterArn(v string) *Cluster {
5801	s.ClusterArn = &v
5802	return s
5803}
5804
5805// SetConfigurations sets the Configurations field's value.
5806func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster {
5807	s.Configurations = v
5808	return s
5809}
5810
5811// SetCustomAmiId sets the CustomAmiId field's value.
5812func (s *Cluster) SetCustomAmiId(v string) *Cluster {
5813	s.CustomAmiId = &v
5814	return s
5815}
5816
5817// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
5818func (s *Cluster) SetEbsRootVolumeSize(v int64) *Cluster {
5819	s.EbsRootVolumeSize = &v
5820	return s
5821}
5822
5823// SetEc2InstanceAttributes sets the Ec2InstanceAttributes field's value.
5824func (s *Cluster) SetEc2InstanceAttributes(v *Ec2InstanceAttributes) *Cluster {
5825	s.Ec2InstanceAttributes = v
5826	return s
5827}
5828
5829// SetId sets the Id field's value.
5830func (s *Cluster) SetId(v string) *Cluster {
5831	s.Id = &v
5832	return s
5833}
5834
5835// SetInstanceCollectionType sets the InstanceCollectionType field's value.
5836func (s *Cluster) SetInstanceCollectionType(v string) *Cluster {
5837	s.InstanceCollectionType = &v
5838	return s
5839}
5840
5841// SetKerberosAttributes sets the KerberosAttributes field's value.
5842func (s *Cluster) SetKerberosAttributes(v *KerberosAttributes) *Cluster {
5843	s.KerberosAttributes = v
5844	return s
5845}
5846
5847// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
5848func (s *Cluster) SetLogEncryptionKmsKeyId(v string) *Cluster {
5849	s.LogEncryptionKmsKeyId = &v
5850	return s
5851}
5852
5853// SetLogUri sets the LogUri field's value.
5854func (s *Cluster) SetLogUri(v string) *Cluster {
5855	s.LogUri = &v
5856	return s
5857}
5858
5859// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
5860func (s *Cluster) SetMasterPublicDnsName(v string) *Cluster {
5861	s.MasterPublicDnsName = &v
5862	return s
5863}
5864
5865// SetName sets the Name field's value.
5866func (s *Cluster) SetName(v string) *Cluster {
5867	s.Name = &v
5868	return s
5869}
5870
5871// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
5872func (s *Cluster) SetNormalizedInstanceHours(v int64) *Cluster {
5873	s.NormalizedInstanceHours = &v
5874	return s
5875}
5876
5877// SetOutpostArn sets the OutpostArn field's value.
5878func (s *Cluster) SetOutpostArn(v string) *Cluster {
5879	s.OutpostArn = &v
5880	return s
5881}
5882
5883// SetPlacementGroups sets the PlacementGroups field's value.
5884func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster {
5885	s.PlacementGroups = v
5886	return s
5887}
5888
5889// SetReleaseLabel sets the ReleaseLabel field's value.
5890func (s *Cluster) SetReleaseLabel(v string) *Cluster {
5891	s.ReleaseLabel = &v
5892	return s
5893}
5894
5895// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
5896func (s *Cluster) SetRepoUpgradeOnBoot(v string) *Cluster {
5897	s.RepoUpgradeOnBoot = &v
5898	return s
5899}
5900
5901// SetRequestedAmiVersion sets the RequestedAmiVersion field's value.
5902func (s *Cluster) SetRequestedAmiVersion(v string) *Cluster {
5903	s.RequestedAmiVersion = &v
5904	return s
5905}
5906
5907// SetRunningAmiVersion sets the RunningAmiVersion field's value.
5908func (s *Cluster) SetRunningAmiVersion(v string) *Cluster {
5909	s.RunningAmiVersion = &v
5910	return s
5911}
5912
5913// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
5914func (s *Cluster) SetScaleDownBehavior(v string) *Cluster {
5915	s.ScaleDownBehavior = &v
5916	return s
5917}
5918
5919// SetSecurityConfiguration sets the SecurityConfiguration field's value.
5920func (s *Cluster) SetSecurityConfiguration(v string) *Cluster {
5921	s.SecurityConfiguration = &v
5922	return s
5923}
5924
5925// SetServiceRole sets the ServiceRole field's value.
5926func (s *Cluster) SetServiceRole(v string) *Cluster {
5927	s.ServiceRole = &v
5928	return s
5929}
5930
5931// SetStatus sets the Status field's value.
5932func (s *Cluster) SetStatus(v *ClusterStatus) *Cluster {
5933	s.Status = v
5934	return s
5935}
5936
5937// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
5938func (s *Cluster) SetStepConcurrencyLevel(v int64) *Cluster {
5939	s.StepConcurrencyLevel = &v
5940	return s
5941}
5942
5943// SetTags sets the Tags field's value.
5944func (s *Cluster) SetTags(v []*Tag) *Cluster {
5945	s.Tags = v
5946	return s
5947}
5948
5949// SetTerminationProtected sets the TerminationProtected field's value.
5950func (s *Cluster) SetTerminationProtected(v bool) *Cluster {
5951	s.TerminationProtected = &v
5952	return s
5953}
5954
5955// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
5956func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster {
5957	s.VisibleToAllUsers = &v
5958	return s
5959}
5960
5961// The reason that the cluster changed to its current state.
5962type ClusterStateChangeReason struct {
5963	_ struct{} `type:"structure"`
5964
5965	// The programmatic code for the state change reason.
5966	Code *string `type:"string" enum:"ClusterStateChangeReasonCode"`
5967
5968	// The descriptive message for the state change reason.
5969	Message *string `type:"string"`
5970}
5971
5972// String returns the string representation
5973func (s ClusterStateChangeReason) String() string {
5974	return awsutil.Prettify(s)
5975}
5976
5977// GoString returns the string representation
5978func (s ClusterStateChangeReason) GoString() string {
5979	return s.String()
5980}
5981
5982// SetCode sets the Code field's value.
5983func (s *ClusterStateChangeReason) SetCode(v string) *ClusterStateChangeReason {
5984	s.Code = &v
5985	return s
5986}
5987
5988// SetMessage sets the Message field's value.
5989func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReason {
5990	s.Message = &v
5991	return s
5992}
5993
5994// The detailed status of the cluster.
5995type ClusterStatus struct {
5996	_ struct{} `type:"structure"`
5997
5998	// The current state of the cluster.
5999	State *string `type:"string" enum:"ClusterState"`
6000
6001	// The reason for the cluster status change.
6002	StateChangeReason *ClusterStateChangeReason `type:"structure"`
6003
6004	// A timeline that represents the status of a cluster over the lifetime of the
6005	// cluster.
6006	Timeline *ClusterTimeline `type:"structure"`
6007}
6008
6009// String returns the string representation
6010func (s ClusterStatus) String() string {
6011	return awsutil.Prettify(s)
6012}
6013
6014// GoString returns the string representation
6015func (s ClusterStatus) GoString() string {
6016	return s.String()
6017}
6018
6019// SetState sets the State field's value.
6020func (s *ClusterStatus) SetState(v string) *ClusterStatus {
6021	s.State = &v
6022	return s
6023}
6024
6025// SetStateChangeReason sets the StateChangeReason field's value.
6026func (s *ClusterStatus) SetStateChangeReason(v *ClusterStateChangeReason) *ClusterStatus {
6027	s.StateChangeReason = v
6028	return s
6029}
6030
6031// SetTimeline sets the Timeline field's value.
6032func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus {
6033	s.Timeline = v
6034	return s
6035}
6036
6037// The summary description of the cluster.
6038type ClusterSummary struct {
6039	_ struct{} `type:"structure"`
6040
6041	// The Amazon Resource Name of the cluster.
6042	ClusterArn *string `min:"20" type:"string"`
6043
6044	// The unique identifier for the cluster.
6045	Id *string `type:"string"`
6046
6047	// The name of the cluster.
6048	Name *string `type:"string"`
6049
6050	// An approximation of the cost of the cluster, represented in m1.small/hours.
6051	// This value is incremented one time for every hour an m1.small instance runs.
6052	// Larger instances are weighted more, so an EC2 instance that is roughly four
6053	// times more expensive would result in the normalized instance hours being
6054	// incremented by four. This result is only an approximation and does not reflect
6055	// the actual billing rate.
6056	NormalizedInstanceHours *int64 `type:"integer"`
6057
6058	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
6059	OutpostArn *string `type:"string"`
6060
6061	// The details about the current status of the cluster.
6062	Status *ClusterStatus `type:"structure"`
6063}
6064
6065// String returns the string representation
6066func (s ClusterSummary) String() string {
6067	return awsutil.Prettify(s)
6068}
6069
6070// GoString returns the string representation
6071func (s ClusterSummary) GoString() string {
6072	return s.String()
6073}
6074
6075// SetClusterArn sets the ClusterArn field's value.
6076func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
6077	s.ClusterArn = &v
6078	return s
6079}
6080
6081// SetId sets the Id field's value.
6082func (s *ClusterSummary) SetId(v string) *ClusterSummary {
6083	s.Id = &v
6084	return s
6085}
6086
6087// SetName sets the Name field's value.
6088func (s *ClusterSummary) SetName(v string) *ClusterSummary {
6089	s.Name = &v
6090	return s
6091}
6092
6093// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
6094func (s *ClusterSummary) SetNormalizedInstanceHours(v int64) *ClusterSummary {
6095	s.NormalizedInstanceHours = &v
6096	return s
6097}
6098
6099// SetOutpostArn sets the OutpostArn field's value.
6100func (s *ClusterSummary) SetOutpostArn(v string) *ClusterSummary {
6101	s.OutpostArn = &v
6102	return s
6103}
6104
6105// SetStatus sets the Status field's value.
6106func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary {
6107	s.Status = v
6108	return s
6109}
6110
6111// Represents the timeline of the cluster's lifecycle.
6112type ClusterTimeline struct {
6113	_ struct{} `type:"structure"`
6114
6115	// The creation date and time of the cluster.
6116	CreationDateTime *time.Time `type:"timestamp"`
6117
6118	// The date and time when the cluster was terminated.
6119	EndDateTime *time.Time `type:"timestamp"`
6120
6121	// The date and time when the cluster was ready to run steps.
6122	ReadyDateTime *time.Time `type:"timestamp"`
6123}
6124
6125// String returns the string representation
6126func (s ClusterTimeline) String() string {
6127	return awsutil.Prettify(s)
6128}
6129
6130// GoString returns the string representation
6131func (s ClusterTimeline) GoString() string {
6132	return s.String()
6133}
6134
6135// SetCreationDateTime sets the CreationDateTime field's value.
6136func (s *ClusterTimeline) SetCreationDateTime(v time.Time) *ClusterTimeline {
6137	s.CreationDateTime = &v
6138	return s
6139}
6140
6141// SetEndDateTime sets the EndDateTime field's value.
6142func (s *ClusterTimeline) SetEndDateTime(v time.Time) *ClusterTimeline {
6143	s.EndDateTime = &v
6144	return s
6145}
6146
6147// SetReadyDateTime sets the ReadyDateTime field's value.
6148func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline {
6149	s.ReadyDateTime = &v
6150	return s
6151}
6152
6153// An entity describing an executable that runs on a cluster.
6154type Command struct {
6155	_ struct{} `type:"structure"`
6156
6157	// Arguments for Amazon EMR to pass to the command for execution.
6158	Args []*string `type:"list"`
6159
6160	// The name of the command.
6161	Name *string `type:"string"`
6162
6163	// The Amazon S3 location of the command script.
6164	ScriptPath *string `type:"string"`
6165}
6166
6167// String returns the string representation
6168func (s Command) String() string {
6169	return awsutil.Prettify(s)
6170}
6171
6172// GoString returns the string representation
6173func (s Command) GoString() string {
6174	return s.String()
6175}
6176
6177// SetArgs sets the Args field's value.
6178func (s *Command) SetArgs(v []*string) *Command {
6179	s.Args = v
6180	return s
6181}
6182
6183// SetName sets the Name field's value.
6184func (s *Command) SetName(v string) *Command {
6185	s.Name = &v
6186	return s
6187}
6188
6189// SetScriptPath sets the ScriptPath field's value.
6190func (s *Command) SetScriptPath(v string) *Command {
6191	s.ScriptPath = &v
6192	return s
6193}
6194
6195// The EC2 unit limits for a managed scaling policy. The managed scaling activity
6196// of a cluster can not be above or below these limits. The limit only applies
6197// to the core and task nodes. The master node cannot be scaled after initial
6198// configuration.
6199type ComputeLimits struct {
6200	_ struct{} `type:"structure"`
6201
6202	// The upper boundary of EC2 units. It is measured through vCPU cores or instances
6203	// for instance groups and measured through units for instance fleets. Managed
6204	// scaling activities are not allowed beyond this boundary. The limit only applies
6205	// to the core and task nodes. The master node cannot be scaled after initial
6206	// configuration.
6207	//
6208	// MaximumCapacityUnits is a required field
6209	MaximumCapacityUnits *int64 `type:"integer" required:"true"`
6210
6211	// The upper boundary of EC2 units for core node type in a cluster. It is measured
6212	// through vCPU cores or instances for instance groups and measured through
6213	// units for instance fleets. The core units are not allowed to scale beyond
6214	// this boundary. The parameter is used to split capacity allocation between
6215	// core and task nodes.
6216	MaximumCoreCapacityUnits *int64 `type:"integer"`
6217
6218	// The upper boundary of On-Demand EC2 units. It is measured through vCPU cores
6219	// or instances for instance groups and measured through units for instance
6220	// fleets. The On-Demand units are not allowed to scale beyond this boundary.
6221	// The parameter is used to split capacity allocation between On-Demand and
6222	// Spot Instances.
6223	MaximumOnDemandCapacityUnits *int64 `type:"integer"`
6224
6225	// The lower boundary of EC2 units. It is measured through vCPU cores or instances
6226	// for instance groups and measured through units for instance fleets. Managed
6227	// scaling activities are not allowed beyond this boundary. The limit only applies
6228	// to the core and task nodes. The master node cannot be scaled after initial
6229	// configuration.
6230	//
6231	// MinimumCapacityUnits is a required field
6232	MinimumCapacityUnits *int64 `type:"integer" required:"true"`
6233
6234	// The unit type used for specifying a managed scaling policy.
6235	//
6236	// UnitType is a required field
6237	UnitType *string `type:"string" required:"true" enum:"ComputeLimitsUnitType"`
6238}
6239
6240// String returns the string representation
6241func (s ComputeLimits) String() string {
6242	return awsutil.Prettify(s)
6243}
6244
6245// GoString returns the string representation
6246func (s ComputeLimits) GoString() string {
6247	return s.String()
6248}
6249
6250// Validate inspects the fields of the type to determine if they are valid.
6251func (s *ComputeLimits) Validate() error {
6252	invalidParams := request.ErrInvalidParams{Context: "ComputeLimits"}
6253	if s.MaximumCapacityUnits == nil {
6254		invalidParams.Add(request.NewErrParamRequired("MaximumCapacityUnits"))
6255	}
6256	if s.MinimumCapacityUnits == nil {
6257		invalidParams.Add(request.NewErrParamRequired("MinimumCapacityUnits"))
6258	}
6259	if s.UnitType == nil {
6260		invalidParams.Add(request.NewErrParamRequired("UnitType"))
6261	}
6262
6263	if invalidParams.Len() > 0 {
6264		return invalidParams
6265	}
6266	return nil
6267}
6268
6269// SetMaximumCapacityUnits sets the MaximumCapacityUnits field's value.
6270func (s *ComputeLimits) SetMaximumCapacityUnits(v int64) *ComputeLimits {
6271	s.MaximumCapacityUnits = &v
6272	return s
6273}
6274
6275// SetMaximumCoreCapacityUnits sets the MaximumCoreCapacityUnits field's value.
6276func (s *ComputeLimits) SetMaximumCoreCapacityUnits(v int64) *ComputeLimits {
6277	s.MaximumCoreCapacityUnits = &v
6278	return s
6279}
6280
6281// SetMaximumOnDemandCapacityUnits sets the MaximumOnDemandCapacityUnits field's value.
6282func (s *ComputeLimits) SetMaximumOnDemandCapacityUnits(v int64) *ComputeLimits {
6283	s.MaximumOnDemandCapacityUnits = &v
6284	return s
6285}
6286
6287// SetMinimumCapacityUnits sets the MinimumCapacityUnits field's value.
6288func (s *ComputeLimits) SetMinimumCapacityUnits(v int64) *ComputeLimits {
6289	s.MinimumCapacityUnits = &v
6290	return s
6291}
6292
6293// SetUnitType sets the UnitType field's value.
6294func (s *ComputeLimits) SetUnitType(v string) *ComputeLimits {
6295	s.UnitType = &v
6296	return s
6297}
6298
6299//
6300// Amazon EMR releases 4.x or later.
6301//
6302// An optional configuration specification to be used when provisioning cluster
6303// instances, which can include configurations for applications and software
6304// bundled with Amazon EMR. A configuration consists of a classification, properties,
6305// and optional nested configurations. A classification refers to an application-specific
6306// configuration file. Properties are the settings you want to change in that
6307// file. For more information, see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
6308type Configuration struct {
6309	_ struct{} `type:"structure"`
6310
6311	// The classification within a configuration.
6312	Classification *string `type:"string"`
6313
6314	// A list of additional configurations to apply within a configuration object.
6315	Configurations []*Configuration `type:"list"`
6316
6317	// A set of properties specified within a configuration classification.
6318	Properties map[string]*string `type:"map"`
6319}
6320
6321// String returns the string representation
6322func (s Configuration) String() string {
6323	return awsutil.Prettify(s)
6324}
6325
6326// GoString returns the string representation
6327func (s Configuration) GoString() string {
6328	return s.String()
6329}
6330
6331// SetClassification sets the Classification field's value.
6332func (s *Configuration) SetClassification(v string) *Configuration {
6333	s.Classification = &v
6334	return s
6335}
6336
6337// SetConfigurations sets the Configurations field's value.
6338func (s *Configuration) SetConfigurations(v []*Configuration) *Configuration {
6339	s.Configurations = v
6340	return s
6341}
6342
6343// SetProperties sets the Properties field's value.
6344func (s *Configuration) SetProperties(v map[string]*string) *Configuration {
6345	s.Properties = v
6346	return s
6347}
6348
6349type CreateSecurityConfigurationInput struct {
6350	_ struct{} `type:"structure"`
6351
6352	// The name of the security configuration.
6353	//
6354	// Name is a required field
6355	Name *string `type:"string" required:"true"`
6356
6357	// The security configuration details in JSON format. For JSON parameters and
6358	// examples, see Use Security Configurations to Set Up Cluster Security (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)
6359	// in the Amazon EMR Management Guide.
6360	//
6361	// SecurityConfiguration is a required field
6362	SecurityConfiguration *string `type:"string" required:"true"`
6363}
6364
6365// String returns the string representation
6366func (s CreateSecurityConfigurationInput) String() string {
6367	return awsutil.Prettify(s)
6368}
6369
6370// GoString returns the string representation
6371func (s CreateSecurityConfigurationInput) GoString() string {
6372	return s.String()
6373}
6374
6375// Validate inspects the fields of the type to determine if they are valid.
6376func (s *CreateSecurityConfigurationInput) Validate() error {
6377	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
6378	if s.Name == nil {
6379		invalidParams.Add(request.NewErrParamRequired("Name"))
6380	}
6381	if s.SecurityConfiguration == nil {
6382		invalidParams.Add(request.NewErrParamRequired("SecurityConfiguration"))
6383	}
6384
6385	if invalidParams.Len() > 0 {
6386		return invalidParams
6387	}
6388	return nil
6389}
6390
6391// SetName sets the Name field's value.
6392func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
6393	s.Name = &v
6394	return s
6395}
6396
6397// SetSecurityConfiguration sets the SecurityConfiguration field's value.
6398func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *CreateSecurityConfigurationInput {
6399	s.SecurityConfiguration = &v
6400	return s
6401}
6402
6403type CreateSecurityConfigurationOutput struct {
6404	_ struct{} `type:"structure"`
6405
6406	// The date and time the security configuration was created.
6407	//
6408	// CreationDateTime is a required field
6409	CreationDateTime *time.Time `type:"timestamp" required:"true"`
6410
6411	// The name of the security configuration.
6412	//
6413	// Name is a required field
6414	Name *string `type:"string" required:"true"`
6415}
6416
6417// String returns the string representation
6418func (s CreateSecurityConfigurationOutput) String() string {
6419	return awsutil.Prettify(s)
6420}
6421
6422// GoString returns the string representation
6423func (s CreateSecurityConfigurationOutput) GoString() string {
6424	return s.String()
6425}
6426
6427// SetCreationDateTime sets the CreationDateTime field's value.
6428func (s *CreateSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *CreateSecurityConfigurationOutput {
6429	s.CreationDateTime = &v
6430	return s
6431}
6432
6433// SetName sets the Name field's value.
6434func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
6435	s.Name = &v
6436	return s
6437}
6438
6439type CreateStudioInput struct {
6440	_ struct{} `type:"structure"`
6441
6442	// Specifies whether the Studio authenticates users using single sign-on (SSO)
6443	// or IAM. Amazon EMR Studio currently only supports SSO authentication.
6444	//
6445	// AuthMode is a required field
6446	AuthMode *string `type:"string" required:"true" enum:"AuthMode"`
6447
6448	// The default Amazon S3 location to back up EMR Studio Workspaces and notebook
6449	// files. A Studio user can select an alternative Amazon S3 location when creating
6450	// a Workspace.
6451	DefaultS3Location *string `type:"string"`
6452
6453	// A detailed description of the Studio.
6454	Description *string `type:"string"`
6455
6456	// The ID of the Amazon EMR Studio Engine security group. The Engine security
6457	// group allows inbound network traffic from the Workspace security group, and
6458	// it must be in the same VPC specified by VpcId.
6459	//
6460	// EngineSecurityGroupId is a required field
6461	EngineSecurityGroupId *string `type:"string" required:"true"`
6462
6463	// A descriptive name for the Amazon EMR Studio.
6464	//
6465	// Name is a required field
6466	Name *string `type:"string" required:"true"`
6467
6468	// The IAM role that will be assumed by the Amazon EMR Studio. The service role
6469	// provides a way for Amazon EMR Studio to interoperate with other AWS services.
6470	//
6471	// ServiceRole is a required field
6472	ServiceRole *string `type:"string" required:"true"`
6473
6474	// A list of subnet IDs to associate with the Studio. The subnets must belong
6475	// to the VPC specified by VpcId. Studio users can create a Workspace in any
6476	// of the specified subnets.
6477	//
6478	// SubnetIds is a required field
6479	SubnetIds []*string `type:"list" required:"true"`
6480
6481	// A list of tags to associate with the Studio. Tags are user-defined key-value
6482	// pairs that consist of a required key string with a maximum of 128 characters,
6483	// and an optional value string with a maximum of 256 characters.
6484	Tags []*Tag `type:"list"`
6485
6486	// The IAM user role that will be assumed by users and groups logged in to a
6487	// Studio. The permissions attached to this IAM role can be scoped down for
6488	// each user or group using session policies.
6489	//
6490	// UserRole is a required field
6491	UserRole *string `type:"string" required:"true"`
6492
6493	// The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with
6494	// the Studio.
6495	//
6496	// VpcId is a required field
6497	VpcId *string `type:"string" required:"true"`
6498
6499	// The ID of the Amazon EMR Studio Workspace security group. The Workspace security
6500	// group allows outbound network traffic to resources in the Engine security
6501	// group, and it must be in the same VPC specified by VpcId.
6502	//
6503	// WorkspaceSecurityGroupId is a required field
6504	WorkspaceSecurityGroupId *string `type:"string" required:"true"`
6505}
6506
6507// String returns the string representation
6508func (s CreateStudioInput) String() string {
6509	return awsutil.Prettify(s)
6510}
6511
6512// GoString returns the string representation
6513func (s CreateStudioInput) GoString() string {
6514	return s.String()
6515}
6516
6517// Validate inspects the fields of the type to determine if they are valid.
6518func (s *CreateStudioInput) Validate() error {
6519	invalidParams := request.ErrInvalidParams{Context: "CreateStudioInput"}
6520	if s.AuthMode == nil {
6521		invalidParams.Add(request.NewErrParamRequired("AuthMode"))
6522	}
6523	if s.EngineSecurityGroupId == nil {
6524		invalidParams.Add(request.NewErrParamRequired("EngineSecurityGroupId"))
6525	}
6526	if s.Name == nil {
6527		invalidParams.Add(request.NewErrParamRequired("Name"))
6528	}
6529	if s.ServiceRole == nil {
6530		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
6531	}
6532	if s.SubnetIds == nil {
6533		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
6534	}
6535	if s.UserRole == nil {
6536		invalidParams.Add(request.NewErrParamRequired("UserRole"))
6537	}
6538	if s.VpcId == nil {
6539		invalidParams.Add(request.NewErrParamRequired("VpcId"))
6540	}
6541	if s.WorkspaceSecurityGroupId == nil {
6542		invalidParams.Add(request.NewErrParamRequired("WorkspaceSecurityGroupId"))
6543	}
6544
6545	if invalidParams.Len() > 0 {
6546		return invalidParams
6547	}
6548	return nil
6549}
6550
6551// SetAuthMode sets the AuthMode field's value.
6552func (s *CreateStudioInput) SetAuthMode(v string) *CreateStudioInput {
6553	s.AuthMode = &v
6554	return s
6555}
6556
6557// SetDefaultS3Location sets the DefaultS3Location field's value.
6558func (s *CreateStudioInput) SetDefaultS3Location(v string) *CreateStudioInput {
6559	s.DefaultS3Location = &v
6560	return s
6561}
6562
6563// SetDescription sets the Description field's value.
6564func (s *CreateStudioInput) SetDescription(v string) *CreateStudioInput {
6565	s.Description = &v
6566	return s
6567}
6568
6569// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
6570func (s *CreateStudioInput) SetEngineSecurityGroupId(v string) *CreateStudioInput {
6571	s.EngineSecurityGroupId = &v
6572	return s
6573}
6574
6575// SetName sets the Name field's value.
6576func (s *CreateStudioInput) SetName(v string) *CreateStudioInput {
6577	s.Name = &v
6578	return s
6579}
6580
6581// SetServiceRole sets the ServiceRole field's value.
6582func (s *CreateStudioInput) SetServiceRole(v string) *CreateStudioInput {
6583	s.ServiceRole = &v
6584	return s
6585}
6586
6587// SetSubnetIds sets the SubnetIds field's value.
6588func (s *CreateStudioInput) SetSubnetIds(v []*string) *CreateStudioInput {
6589	s.SubnetIds = v
6590	return s
6591}
6592
6593// SetTags sets the Tags field's value.
6594func (s *CreateStudioInput) SetTags(v []*Tag) *CreateStudioInput {
6595	s.Tags = v
6596	return s
6597}
6598
6599// SetUserRole sets the UserRole field's value.
6600func (s *CreateStudioInput) SetUserRole(v string) *CreateStudioInput {
6601	s.UserRole = &v
6602	return s
6603}
6604
6605// SetVpcId sets the VpcId field's value.
6606func (s *CreateStudioInput) SetVpcId(v string) *CreateStudioInput {
6607	s.VpcId = &v
6608	return s
6609}
6610
6611// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
6612func (s *CreateStudioInput) SetWorkspaceSecurityGroupId(v string) *CreateStudioInput {
6613	s.WorkspaceSecurityGroupId = &v
6614	return s
6615}
6616
6617type CreateStudioOutput struct {
6618	_ struct{} `type:"structure"`
6619
6620	// The ID of the Amazon EMR Studio.
6621	StudioId *string `type:"string"`
6622
6623	// The unique Studio access URL.
6624	Url *string `type:"string"`
6625}
6626
6627// String returns the string representation
6628func (s CreateStudioOutput) String() string {
6629	return awsutil.Prettify(s)
6630}
6631
6632// GoString returns the string representation
6633func (s CreateStudioOutput) GoString() string {
6634	return s.String()
6635}
6636
6637// SetStudioId sets the StudioId field's value.
6638func (s *CreateStudioOutput) SetStudioId(v string) *CreateStudioOutput {
6639	s.StudioId = &v
6640	return s
6641}
6642
6643// SetUrl sets the Url field's value.
6644func (s *CreateStudioOutput) SetUrl(v string) *CreateStudioOutput {
6645	s.Url = &v
6646	return s
6647}
6648
6649type CreateStudioSessionMappingInput struct {
6650	_ struct{} `type:"structure"`
6651
6652	// The globally unique identifier (GUID) of the user or group from the AWS SSO
6653	// Identity Store. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
6654	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
6655	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6656	// must be specified.
6657	IdentityId *string `type:"string"`
6658
6659	// 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-UserId)
6660	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
6661	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6662	// must be specified.
6663	IdentityName *string `type:"string"`
6664
6665	// Specifies whether the identity to map to the Studio is a user or a group.
6666	//
6667	// IdentityType is a required field
6668	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
6669
6670	// The Amazon Resource Name (ARN) for the session policy that will be applied
6671	// to the user or group. Session policies refine Studio user permissions without
6672	// the need to use multiple IAM user roles.
6673	//
6674	// SessionPolicyArn is a required field
6675	SessionPolicyArn *string `type:"string" required:"true"`
6676
6677	// The ID of the Amazon EMR Studio to which the user or group will be mapped.
6678	//
6679	// StudioId is a required field
6680	StudioId *string `type:"string" required:"true"`
6681}
6682
6683// String returns the string representation
6684func (s CreateStudioSessionMappingInput) String() string {
6685	return awsutil.Prettify(s)
6686}
6687
6688// GoString returns the string representation
6689func (s CreateStudioSessionMappingInput) GoString() string {
6690	return s.String()
6691}
6692
6693// Validate inspects the fields of the type to determine if they are valid.
6694func (s *CreateStudioSessionMappingInput) Validate() error {
6695	invalidParams := request.ErrInvalidParams{Context: "CreateStudioSessionMappingInput"}
6696	if s.IdentityType == nil {
6697		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
6698	}
6699	if s.SessionPolicyArn == nil {
6700		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
6701	}
6702	if s.StudioId == nil {
6703		invalidParams.Add(request.NewErrParamRequired("StudioId"))
6704	}
6705
6706	if invalidParams.Len() > 0 {
6707		return invalidParams
6708	}
6709	return nil
6710}
6711
6712// SetIdentityId sets the IdentityId field's value.
6713func (s *CreateStudioSessionMappingInput) SetIdentityId(v string) *CreateStudioSessionMappingInput {
6714	s.IdentityId = &v
6715	return s
6716}
6717
6718// SetIdentityName sets the IdentityName field's value.
6719func (s *CreateStudioSessionMappingInput) SetIdentityName(v string) *CreateStudioSessionMappingInput {
6720	s.IdentityName = &v
6721	return s
6722}
6723
6724// SetIdentityType sets the IdentityType field's value.
6725func (s *CreateStudioSessionMappingInput) SetIdentityType(v string) *CreateStudioSessionMappingInput {
6726	s.IdentityType = &v
6727	return s
6728}
6729
6730// SetSessionPolicyArn sets the SessionPolicyArn field's value.
6731func (s *CreateStudioSessionMappingInput) SetSessionPolicyArn(v string) *CreateStudioSessionMappingInput {
6732	s.SessionPolicyArn = &v
6733	return s
6734}
6735
6736// SetStudioId sets the StudioId field's value.
6737func (s *CreateStudioSessionMappingInput) SetStudioId(v string) *CreateStudioSessionMappingInput {
6738	s.StudioId = &v
6739	return s
6740}
6741
6742type CreateStudioSessionMappingOutput struct {
6743	_ struct{} `type:"structure"`
6744}
6745
6746// String returns the string representation
6747func (s CreateStudioSessionMappingOutput) String() string {
6748	return awsutil.Prettify(s)
6749}
6750
6751// GoString returns the string representation
6752func (s CreateStudioSessionMappingOutput) GoString() string {
6753	return s.String()
6754}
6755
6756type DeleteSecurityConfigurationInput struct {
6757	_ struct{} `type:"structure"`
6758
6759	// The name of the security configuration.
6760	//
6761	// Name is a required field
6762	Name *string `type:"string" required:"true"`
6763}
6764
6765// String returns the string representation
6766func (s DeleteSecurityConfigurationInput) String() string {
6767	return awsutil.Prettify(s)
6768}
6769
6770// GoString returns the string representation
6771func (s DeleteSecurityConfigurationInput) GoString() string {
6772	return s.String()
6773}
6774
6775// Validate inspects the fields of the type to determine if they are valid.
6776func (s *DeleteSecurityConfigurationInput) Validate() error {
6777	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
6778	if s.Name == nil {
6779		invalidParams.Add(request.NewErrParamRequired("Name"))
6780	}
6781
6782	if invalidParams.Len() > 0 {
6783		return invalidParams
6784	}
6785	return nil
6786}
6787
6788// SetName sets the Name field's value.
6789func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
6790	s.Name = &v
6791	return s
6792}
6793
6794type DeleteSecurityConfigurationOutput struct {
6795	_ struct{} `type:"structure"`
6796}
6797
6798// String returns the string representation
6799func (s DeleteSecurityConfigurationOutput) String() string {
6800	return awsutil.Prettify(s)
6801}
6802
6803// GoString returns the string representation
6804func (s DeleteSecurityConfigurationOutput) GoString() string {
6805	return s.String()
6806}
6807
6808type DeleteStudioInput struct {
6809	_ struct{} `type:"structure"`
6810
6811	// The ID of the Amazon EMR Studio.
6812	//
6813	// StudioId is a required field
6814	StudioId *string `type:"string" required:"true"`
6815}
6816
6817// String returns the string representation
6818func (s DeleteStudioInput) String() string {
6819	return awsutil.Prettify(s)
6820}
6821
6822// GoString returns the string representation
6823func (s DeleteStudioInput) GoString() string {
6824	return s.String()
6825}
6826
6827// Validate inspects the fields of the type to determine if they are valid.
6828func (s *DeleteStudioInput) Validate() error {
6829	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioInput"}
6830	if s.StudioId == nil {
6831		invalidParams.Add(request.NewErrParamRequired("StudioId"))
6832	}
6833
6834	if invalidParams.Len() > 0 {
6835		return invalidParams
6836	}
6837	return nil
6838}
6839
6840// SetStudioId sets the StudioId field's value.
6841func (s *DeleteStudioInput) SetStudioId(v string) *DeleteStudioInput {
6842	s.StudioId = &v
6843	return s
6844}
6845
6846type DeleteStudioOutput struct {
6847	_ struct{} `type:"structure"`
6848}
6849
6850// String returns the string representation
6851func (s DeleteStudioOutput) String() string {
6852	return awsutil.Prettify(s)
6853}
6854
6855// GoString returns the string representation
6856func (s DeleteStudioOutput) GoString() string {
6857	return s.String()
6858}
6859
6860type DeleteStudioSessionMappingInput struct {
6861	_ struct{} `type:"structure"`
6862
6863	// The globally unique identifier (GUID) of the user or group to remove from
6864	// the Amazon EMR Studio. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
6865	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
6866	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6867	// must be specified.
6868	IdentityId *string `type:"string"`
6869
6870	// The name of the user name or group to remove from the Studio. For more information,
6871	// see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
6872	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
6873	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
6874	// must be specified.
6875	IdentityName *string `type:"string"`
6876
6877	// Specifies whether the identity to delete from the Studio is a user or a group.
6878	//
6879	// IdentityType is a required field
6880	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
6881
6882	// The ID of the Amazon EMR Studio.
6883	//
6884	// StudioId is a required field
6885	StudioId *string `type:"string" required:"true"`
6886}
6887
6888// String returns the string representation
6889func (s DeleteStudioSessionMappingInput) String() string {
6890	return awsutil.Prettify(s)
6891}
6892
6893// GoString returns the string representation
6894func (s DeleteStudioSessionMappingInput) GoString() string {
6895	return s.String()
6896}
6897
6898// Validate inspects the fields of the type to determine if they are valid.
6899func (s *DeleteStudioSessionMappingInput) Validate() error {
6900	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioSessionMappingInput"}
6901	if s.IdentityType == nil {
6902		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
6903	}
6904	if s.StudioId == nil {
6905		invalidParams.Add(request.NewErrParamRequired("StudioId"))
6906	}
6907
6908	if invalidParams.Len() > 0 {
6909		return invalidParams
6910	}
6911	return nil
6912}
6913
6914// SetIdentityId sets the IdentityId field's value.
6915func (s *DeleteStudioSessionMappingInput) SetIdentityId(v string) *DeleteStudioSessionMappingInput {
6916	s.IdentityId = &v
6917	return s
6918}
6919
6920// SetIdentityName sets the IdentityName field's value.
6921func (s *DeleteStudioSessionMappingInput) SetIdentityName(v string) *DeleteStudioSessionMappingInput {
6922	s.IdentityName = &v
6923	return s
6924}
6925
6926// SetIdentityType sets the IdentityType field's value.
6927func (s *DeleteStudioSessionMappingInput) SetIdentityType(v string) *DeleteStudioSessionMappingInput {
6928	s.IdentityType = &v
6929	return s
6930}
6931
6932// SetStudioId sets the StudioId field's value.
6933func (s *DeleteStudioSessionMappingInput) SetStudioId(v string) *DeleteStudioSessionMappingInput {
6934	s.StudioId = &v
6935	return s
6936}
6937
6938type DeleteStudioSessionMappingOutput struct {
6939	_ struct{} `type:"structure"`
6940}
6941
6942// String returns the string representation
6943func (s DeleteStudioSessionMappingOutput) String() string {
6944	return awsutil.Prettify(s)
6945}
6946
6947// GoString returns the string representation
6948func (s DeleteStudioSessionMappingOutput) GoString() string {
6949	return s.String()
6950}
6951
6952// This input determines which cluster to describe.
6953type DescribeClusterInput struct {
6954	_ struct{} `type:"structure"`
6955
6956	// The identifier of the cluster to describe.
6957	//
6958	// ClusterId is a required field
6959	ClusterId *string `type:"string" required:"true"`
6960}
6961
6962// String returns the string representation
6963func (s DescribeClusterInput) String() string {
6964	return awsutil.Prettify(s)
6965}
6966
6967// GoString returns the string representation
6968func (s DescribeClusterInput) GoString() string {
6969	return s.String()
6970}
6971
6972// Validate inspects the fields of the type to determine if they are valid.
6973func (s *DescribeClusterInput) Validate() error {
6974	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
6975	if s.ClusterId == nil {
6976		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
6977	}
6978
6979	if invalidParams.Len() > 0 {
6980		return invalidParams
6981	}
6982	return nil
6983}
6984
6985// SetClusterId sets the ClusterId field's value.
6986func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
6987	s.ClusterId = &v
6988	return s
6989}
6990
6991// This output contains the description of the cluster.
6992type DescribeClusterOutput struct {
6993	_ struct{} `type:"structure"`
6994
6995	// This output contains the details for the requested cluster.
6996	Cluster *Cluster `type:"structure"`
6997}
6998
6999// String returns the string representation
7000func (s DescribeClusterOutput) String() string {
7001	return awsutil.Prettify(s)
7002}
7003
7004// GoString returns the string representation
7005func (s DescribeClusterOutput) GoString() string {
7006	return s.String()
7007}
7008
7009// SetCluster sets the Cluster field's value.
7010func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
7011	s.Cluster = v
7012	return s
7013}
7014
7015// The input for the DescribeJobFlows operation.
7016type DescribeJobFlowsInput struct {
7017	_ struct{} `type:"structure"`
7018
7019	// Return only job flows created after this date and time.
7020	CreatedAfter *time.Time `type:"timestamp"`
7021
7022	// Return only job flows created before this date and time.
7023	CreatedBefore *time.Time `type:"timestamp"`
7024
7025	// Return only job flows whose job flow ID is contained in this list.
7026	JobFlowIds []*string `type:"list"`
7027
7028	// Return only job flows whose state is contained in this list.
7029	JobFlowStates []*string `type:"list"`
7030}
7031
7032// String returns the string representation
7033func (s DescribeJobFlowsInput) String() string {
7034	return awsutil.Prettify(s)
7035}
7036
7037// GoString returns the string representation
7038func (s DescribeJobFlowsInput) GoString() string {
7039	return s.String()
7040}
7041
7042// SetCreatedAfter sets the CreatedAfter field's value.
7043func (s *DescribeJobFlowsInput) SetCreatedAfter(v time.Time) *DescribeJobFlowsInput {
7044	s.CreatedAfter = &v
7045	return s
7046}
7047
7048// SetCreatedBefore sets the CreatedBefore field's value.
7049func (s *DescribeJobFlowsInput) SetCreatedBefore(v time.Time) *DescribeJobFlowsInput {
7050	s.CreatedBefore = &v
7051	return s
7052}
7053
7054// SetJobFlowIds sets the JobFlowIds field's value.
7055func (s *DescribeJobFlowsInput) SetJobFlowIds(v []*string) *DescribeJobFlowsInput {
7056	s.JobFlowIds = v
7057	return s
7058}
7059
7060// SetJobFlowStates sets the JobFlowStates field's value.
7061func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsInput {
7062	s.JobFlowStates = v
7063	return s
7064}
7065
7066// The output for the DescribeJobFlows operation.
7067type DescribeJobFlowsOutput struct {
7068	_ struct{} `type:"structure"`
7069
7070	// A list of job flows matching the parameters supplied.
7071	JobFlows []*JobFlowDetail `type:"list"`
7072}
7073
7074// String returns the string representation
7075func (s DescribeJobFlowsOutput) String() string {
7076	return awsutil.Prettify(s)
7077}
7078
7079// GoString returns the string representation
7080func (s DescribeJobFlowsOutput) GoString() string {
7081	return s.String()
7082}
7083
7084// SetJobFlows sets the JobFlows field's value.
7085func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlowsOutput {
7086	s.JobFlows = v
7087	return s
7088}
7089
7090type DescribeNotebookExecutionInput struct {
7091	_ struct{} `type:"structure"`
7092
7093	// The unique identifier of the notebook execution.
7094	//
7095	// NotebookExecutionId is a required field
7096	NotebookExecutionId *string `type:"string" required:"true"`
7097}
7098
7099// String returns the string representation
7100func (s DescribeNotebookExecutionInput) String() string {
7101	return awsutil.Prettify(s)
7102}
7103
7104// GoString returns the string representation
7105func (s DescribeNotebookExecutionInput) GoString() string {
7106	return s.String()
7107}
7108
7109// Validate inspects the fields of the type to determine if they are valid.
7110func (s *DescribeNotebookExecutionInput) Validate() error {
7111	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookExecutionInput"}
7112	if s.NotebookExecutionId == nil {
7113		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
7114	}
7115
7116	if invalidParams.Len() > 0 {
7117		return invalidParams
7118	}
7119	return nil
7120}
7121
7122// SetNotebookExecutionId sets the NotebookExecutionId field's value.
7123func (s *DescribeNotebookExecutionInput) SetNotebookExecutionId(v string) *DescribeNotebookExecutionInput {
7124	s.NotebookExecutionId = &v
7125	return s
7126}
7127
7128type DescribeNotebookExecutionOutput struct {
7129	_ struct{} `type:"structure"`
7130
7131	// Properties of the notebook execution.
7132	NotebookExecution *NotebookExecution `type:"structure"`
7133}
7134
7135// String returns the string representation
7136func (s DescribeNotebookExecutionOutput) String() string {
7137	return awsutil.Prettify(s)
7138}
7139
7140// GoString returns the string representation
7141func (s DescribeNotebookExecutionOutput) GoString() string {
7142	return s.String()
7143}
7144
7145// SetNotebookExecution sets the NotebookExecution field's value.
7146func (s *DescribeNotebookExecutionOutput) SetNotebookExecution(v *NotebookExecution) *DescribeNotebookExecutionOutput {
7147	s.NotebookExecution = v
7148	return s
7149}
7150
7151type DescribeSecurityConfigurationInput struct {
7152	_ struct{} `type:"structure"`
7153
7154	// The name of the security configuration.
7155	//
7156	// Name is a required field
7157	Name *string `type:"string" required:"true"`
7158}
7159
7160// String returns the string representation
7161func (s DescribeSecurityConfigurationInput) String() string {
7162	return awsutil.Prettify(s)
7163}
7164
7165// GoString returns the string representation
7166func (s DescribeSecurityConfigurationInput) GoString() string {
7167	return s.String()
7168}
7169
7170// Validate inspects the fields of the type to determine if they are valid.
7171func (s *DescribeSecurityConfigurationInput) Validate() error {
7172	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityConfigurationInput"}
7173	if s.Name == nil {
7174		invalidParams.Add(request.NewErrParamRequired("Name"))
7175	}
7176
7177	if invalidParams.Len() > 0 {
7178		return invalidParams
7179	}
7180	return nil
7181}
7182
7183// SetName sets the Name field's value.
7184func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurityConfigurationInput {
7185	s.Name = &v
7186	return s
7187}
7188
7189type DescribeSecurityConfigurationOutput struct {
7190	_ struct{} `type:"structure"`
7191
7192	// The date and time the security configuration was created
7193	CreationDateTime *time.Time `type:"timestamp"`
7194
7195	// The name of the security configuration.
7196	Name *string `type:"string"`
7197
7198	// The security configuration details in JSON format.
7199	SecurityConfiguration *string `type:"string"`
7200}
7201
7202// String returns the string representation
7203func (s DescribeSecurityConfigurationOutput) String() string {
7204	return awsutil.Prettify(s)
7205}
7206
7207// GoString returns the string representation
7208func (s DescribeSecurityConfigurationOutput) GoString() string {
7209	return s.String()
7210}
7211
7212// SetCreationDateTime sets the CreationDateTime field's value.
7213func (s *DescribeSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *DescribeSecurityConfigurationOutput {
7214	s.CreationDateTime = &v
7215	return s
7216}
7217
7218// SetName sets the Name field's value.
7219func (s *DescribeSecurityConfigurationOutput) SetName(v string) *DescribeSecurityConfigurationOutput {
7220	s.Name = &v
7221	return s
7222}
7223
7224// SetSecurityConfiguration sets the SecurityConfiguration field's value.
7225func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) *DescribeSecurityConfigurationOutput {
7226	s.SecurityConfiguration = &v
7227	return s
7228}
7229
7230// This input determines which step to describe.
7231type DescribeStepInput struct {
7232	_ struct{} `type:"structure"`
7233
7234	// The identifier of the cluster with steps to describe.
7235	//
7236	// ClusterId is a required field
7237	ClusterId *string `type:"string" required:"true"`
7238
7239	// The identifier of the step to describe.
7240	//
7241	// StepId is a required field
7242	StepId *string `type:"string" required:"true"`
7243}
7244
7245// String returns the string representation
7246func (s DescribeStepInput) String() string {
7247	return awsutil.Prettify(s)
7248}
7249
7250// GoString returns the string representation
7251func (s DescribeStepInput) GoString() string {
7252	return s.String()
7253}
7254
7255// Validate inspects the fields of the type to determine if they are valid.
7256func (s *DescribeStepInput) Validate() error {
7257	invalidParams := request.ErrInvalidParams{Context: "DescribeStepInput"}
7258	if s.ClusterId == nil {
7259		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7260	}
7261	if s.StepId == nil {
7262		invalidParams.Add(request.NewErrParamRequired("StepId"))
7263	}
7264
7265	if invalidParams.Len() > 0 {
7266		return invalidParams
7267	}
7268	return nil
7269}
7270
7271// SetClusterId sets the ClusterId field's value.
7272func (s *DescribeStepInput) SetClusterId(v string) *DescribeStepInput {
7273	s.ClusterId = &v
7274	return s
7275}
7276
7277// SetStepId sets the StepId field's value.
7278func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput {
7279	s.StepId = &v
7280	return s
7281}
7282
7283// This output contains the description of the cluster step.
7284type DescribeStepOutput struct {
7285	_ struct{} `type:"structure"`
7286
7287	// The step details for the requested step identifier.
7288	Step *Step `type:"structure"`
7289}
7290
7291// String returns the string representation
7292func (s DescribeStepOutput) String() string {
7293	return awsutil.Prettify(s)
7294}
7295
7296// GoString returns the string representation
7297func (s DescribeStepOutput) GoString() string {
7298	return s.String()
7299}
7300
7301// SetStep sets the Step field's value.
7302func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput {
7303	s.Step = v
7304	return s
7305}
7306
7307type DescribeStudioInput struct {
7308	_ struct{} `type:"structure"`
7309
7310	// The Amazon EMR Studio ID.
7311	//
7312	// StudioId is a required field
7313	StudioId *string `type:"string" required:"true"`
7314}
7315
7316// String returns the string representation
7317func (s DescribeStudioInput) String() string {
7318	return awsutil.Prettify(s)
7319}
7320
7321// GoString returns the string representation
7322func (s DescribeStudioInput) GoString() string {
7323	return s.String()
7324}
7325
7326// Validate inspects the fields of the type to determine if they are valid.
7327func (s *DescribeStudioInput) Validate() error {
7328	invalidParams := request.ErrInvalidParams{Context: "DescribeStudioInput"}
7329	if s.StudioId == nil {
7330		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7331	}
7332
7333	if invalidParams.Len() > 0 {
7334		return invalidParams
7335	}
7336	return nil
7337}
7338
7339// SetStudioId sets the StudioId field's value.
7340func (s *DescribeStudioInput) SetStudioId(v string) *DescribeStudioInput {
7341	s.StudioId = &v
7342	return s
7343}
7344
7345type DescribeStudioOutput struct {
7346	_ struct{} `type:"structure"`
7347
7348	// The Amazon EMR Studio details.
7349	Studio *Studio `type:"structure"`
7350}
7351
7352// String returns the string representation
7353func (s DescribeStudioOutput) String() string {
7354	return awsutil.Prettify(s)
7355}
7356
7357// GoString returns the string representation
7358func (s DescribeStudioOutput) GoString() string {
7359	return s.String()
7360}
7361
7362// SetStudio sets the Studio field's value.
7363func (s *DescribeStudioOutput) SetStudio(v *Studio) *DescribeStudioOutput {
7364	s.Studio = v
7365	return s
7366}
7367
7368// Configuration of requested EBS block device associated with the instance
7369// group.
7370type EbsBlockDevice struct {
7371	_ struct{} `type:"structure"`
7372
7373	// The device name that is exposed to the instance, such as /dev/sdh.
7374	Device *string `type:"string"`
7375
7376	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
7377	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
7378	VolumeSpecification *VolumeSpecification `type:"structure"`
7379}
7380
7381// String returns the string representation
7382func (s EbsBlockDevice) String() string {
7383	return awsutil.Prettify(s)
7384}
7385
7386// GoString returns the string representation
7387func (s EbsBlockDevice) GoString() string {
7388	return s.String()
7389}
7390
7391// SetDevice sets the Device field's value.
7392func (s *EbsBlockDevice) SetDevice(v string) *EbsBlockDevice {
7393	s.Device = &v
7394	return s
7395}
7396
7397// SetVolumeSpecification sets the VolumeSpecification field's value.
7398func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDevice {
7399	s.VolumeSpecification = v
7400	return s
7401}
7402
7403// Configuration of requested EBS block device associated with the instance
7404// group with count of volumes that will be associated to every instance.
7405type EbsBlockDeviceConfig struct {
7406	_ struct{} `type:"structure"`
7407
7408	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
7409	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
7410	//
7411	// VolumeSpecification is a required field
7412	VolumeSpecification *VolumeSpecification `type:"structure" required:"true"`
7413
7414	// Number of EBS volumes with a specific volume configuration that will be associated
7415	// with every instance in the instance group
7416	VolumesPerInstance *int64 `type:"integer"`
7417}
7418
7419// String returns the string representation
7420func (s EbsBlockDeviceConfig) String() string {
7421	return awsutil.Prettify(s)
7422}
7423
7424// GoString returns the string representation
7425func (s EbsBlockDeviceConfig) GoString() string {
7426	return s.String()
7427}
7428
7429// Validate inspects the fields of the type to determine if they are valid.
7430func (s *EbsBlockDeviceConfig) Validate() error {
7431	invalidParams := request.ErrInvalidParams{Context: "EbsBlockDeviceConfig"}
7432	if s.VolumeSpecification == nil {
7433		invalidParams.Add(request.NewErrParamRequired("VolumeSpecification"))
7434	}
7435	if s.VolumeSpecification != nil {
7436		if err := s.VolumeSpecification.Validate(); err != nil {
7437			invalidParams.AddNested("VolumeSpecification", err.(request.ErrInvalidParams))
7438		}
7439	}
7440
7441	if invalidParams.Len() > 0 {
7442		return invalidParams
7443	}
7444	return nil
7445}
7446
7447// SetVolumeSpecification sets the VolumeSpecification field's value.
7448func (s *EbsBlockDeviceConfig) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDeviceConfig {
7449	s.VolumeSpecification = v
7450	return s
7451}
7452
7453// SetVolumesPerInstance sets the VolumesPerInstance field's value.
7454func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceConfig {
7455	s.VolumesPerInstance = &v
7456	return s
7457}
7458
7459// The Amazon EBS configuration of a cluster instance.
7460type EbsConfiguration struct {
7461	_ struct{} `type:"structure"`
7462
7463	// An array of Amazon EBS volume specifications attached to a cluster instance.
7464	EbsBlockDeviceConfigs []*EbsBlockDeviceConfig `type:"list"`
7465
7466	// Indicates whether an Amazon EBS volume is EBS-optimized.
7467	EbsOptimized *bool `type:"boolean"`
7468}
7469
7470// String returns the string representation
7471func (s EbsConfiguration) String() string {
7472	return awsutil.Prettify(s)
7473}
7474
7475// GoString returns the string representation
7476func (s EbsConfiguration) GoString() string {
7477	return s.String()
7478}
7479
7480// Validate inspects the fields of the type to determine if they are valid.
7481func (s *EbsConfiguration) Validate() error {
7482	invalidParams := request.ErrInvalidParams{Context: "EbsConfiguration"}
7483	if s.EbsBlockDeviceConfigs != nil {
7484		for i, v := range s.EbsBlockDeviceConfigs {
7485			if v == nil {
7486				continue
7487			}
7488			if err := v.Validate(); err != nil {
7489				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EbsBlockDeviceConfigs", i), err.(request.ErrInvalidParams))
7490			}
7491		}
7492	}
7493
7494	if invalidParams.Len() > 0 {
7495		return invalidParams
7496	}
7497	return nil
7498}
7499
7500// SetEbsBlockDeviceConfigs sets the EbsBlockDeviceConfigs field's value.
7501func (s *EbsConfiguration) SetEbsBlockDeviceConfigs(v []*EbsBlockDeviceConfig) *EbsConfiguration {
7502	s.EbsBlockDeviceConfigs = v
7503	return s
7504}
7505
7506// SetEbsOptimized sets the EbsOptimized field's value.
7507func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration {
7508	s.EbsOptimized = &v
7509	return s
7510}
7511
7512// EBS block device that's attached to an EC2 instance.
7513type EbsVolume struct {
7514	_ struct{} `type:"structure"`
7515
7516	// The device name that is exposed to the instance, such as /dev/sdh.
7517	Device *string `type:"string"`
7518
7519	// The volume identifier of the EBS volume.
7520	VolumeId *string `type:"string"`
7521}
7522
7523// String returns the string representation
7524func (s EbsVolume) String() string {
7525	return awsutil.Prettify(s)
7526}
7527
7528// GoString returns the string representation
7529func (s EbsVolume) GoString() string {
7530	return s.String()
7531}
7532
7533// SetDevice sets the Device field's value.
7534func (s *EbsVolume) SetDevice(v string) *EbsVolume {
7535	s.Device = &v
7536	return s
7537}
7538
7539// SetVolumeId sets the VolumeId field's value.
7540func (s *EbsVolume) SetVolumeId(v string) *EbsVolume {
7541	s.VolumeId = &v
7542	return s
7543}
7544
7545// Provides information about the EC2 instances in a cluster grouped by category.
7546// For example, key name, subnet ID, IAM instance profile, and so on.
7547type Ec2InstanceAttributes struct {
7548	_ struct{} `type:"structure"`
7549
7550	// A list of additional Amazon EC2 security group IDs for the master node.
7551	AdditionalMasterSecurityGroups []*string `type:"list"`
7552
7553	// A list of additional Amazon EC2 security group IDs for the core and task
7554	// nodes.
7555	AdditionalSlaveSecurityGroups []*string `type:"list"`
7556
7557	// The Availability Zone in which the cluster will run.
7558	Ec2AvailabilityZone *string `type:"string"`
7559
7560	// The name of the Amazon EC2 key pair to use when connecting with SSH into
7561	// the master node as a user named "hadoop".
7562	Ec2KeyName *string `type:"string"`
7563
7564	// Set this parameter to the identifier of the Amazon VPC subnet where you want
7565	// the cluster to launch. If you do not specify this value, and your account
7566	// supports EC2-Classic, the cluster launches in EC2-Classic.
7567	Ec2SubnetId *string `type:"string"`
7568
7569	// The identifier of the Amazon EC2 security group for the master node.
7570	EmrManagedMasterSecurityGroup *string `type:"string"`
7571
7572	// The identifier of the Amazon EC2 security group for the core and task nodes.
7573	EmrManagedSlaveSecurityGroup *string `type:"string"`
7574
7575	// The IAM role that was specified when the cluster was launched. The EC2 instances
7576	// of the cluster assume this role.
7577	IamInstanceProfile *string `type:"string"`
7578
7579	// Applies to clusters configured with the instance fleets option. Specifies
7580	// one or more Availability Zones in which to launch EC2 cluster instances when
7581	// the EC2-Classic network configuration is supported. Amazon EMR chooses the
7582	// Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones,
7583	// and then launches all cluster instances within that Availability Zone. If
7584	// you do not specify this value, Amazon EMR chooses the Availability Zone for
7585	// you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified
7586	// together.
7587	RequestedEc2AvailabilityZones []*string `type:"list"`
7588
7589	// Applies to clusters configured with the instance fleets option. Specifies
7590	// the unique identifier of one or more Amazon EC2 subnets in which to launch
7591	// EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR
7592	// chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds,
7593	// and then launches all cluster instances within that Subnet. If this value
7594	// is not specified, and the account and Region support EC2-Classic networks,
7595	// the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones
7596	// instead of this setting. If EC2-Classic is not supported, and no Subnet is
7597	// specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and
7598	// RequestedEc2AvailabilityZones cannot be specified together.
7599	RequestedEc2SubnetIds []*string `type:"list"`
7600
7601	// The identifier of the Amazon EC2 security group for the Amazon EMR service
7602	// to access clusters in VPC private subnets.
7603	ServiceAccessSecurityGroup *string `type:"string"`
7604}
7605
7606// String returns the string representation
7607func (s Ec2InstanceAttributes) String() string {
7608	return awsutil.Prettify(s)
7609}
7610
7611// GoString returns the string representation
7612func (s Ec2InstanceAttributes) GoString() string {
7613	return s.String()
7614}
7615
7616// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
7617func (s *Ec2InstanceAttributes) SetAdditionalMasterSecurityGroups(v []*string) *Ec2InstanceAttributes {
7618	s.AdditionalMasterSecurityGroups = v
7619	return s
7620}
7621
7622// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
7623func (s *Ec2InstanceAttributes) SetAdditionalSlaveSecurityGroups(v []*string) *Ec2InstanceAttributes {
7624	s.AdditionalSlaveSecurityGroups = v
7625	return s
7626}
7627
7628// SetEc2AvailabilityZone sets the Ec2AvailabilityZone field's value.
7629func (s *Ec2InstanceAttributes) SetEc2AvailabilityZone(v string) *Ec2InstanceAttributes {
7630	s.Ec2AvailabilityZone = &v
7631	return s
7632}
7633
7634// SetEc2KeyName sets the Ec2KeyName field's value.
7635func (s *Ec2InstanceAttributes) SetEc2KeyName(v string) *Ec2InstanceAttributes {
7636	s.Ec2KeyName = &v
7637	return s
7638}
7639
7640// SetEc2SubnetId sets the Ec2SubnetId field's value.
7641func (s *Ec2InstanceAttributes) SetEc2SubnetId(v string) *Ec2InstanceAttributes {
7642	s.Ec2SubnetId = &v
7643	return s
7644}
7645
7646// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
7647func (s *Ec2InstanceAttributes) SetEmrManagedMasterSecurityGroup(v string) *Ec2InstanceAttributes {
7648	s.EmrManagedMasterSecurityGroup = &v
7649	return s
7650}
7651
7652// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
7653func (s *Ec2InstanceAttributes) SetEmrManagedSlaveSecurityGroup(v string) *Ec2InstanceAttributes {
7654	s.EmrManagedSlaveSecurityGroup = &v
7655	return s
7656}
7657
7658// SetIamInstanceProfile sets the IamInstanceProfile field's value.
7659func (s *Ec2InstanceAttributes) SetIamInstanceProfile(v string) *Ec2InstanceAttributes {
7660	s.IamInstanceProfile = &v
7661	return s
7662}
7663
7664// SetRequestedEc2AvailabilityZones sets the RequestedEc2AvailabilityZones field's value.
7665func (s *Ec2InstanceAttributes) SetRequestedEc2AvailabilityZones(v []*string) *Ec2InstanceAttributes {
7666	s.RequestedEc2AvailabilityZones = v
7667	return s
7668}
7669
7670// SetRequestedEc2SubnetIds sets the RequestedEc2SubnetIds field's value.
7671func (s *Ec2InstanceAttributes) SetRequestedEc2SubnetIds(v []*string) *Ec2InstanceAttributes {
7672	s.RequestedEc2SubnetIds = v
7673	return s
7674}
7675
7676// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
7677func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2InstanceAttributes {
7678	s.ServiceAccessSecurityGroup = &v
7679	return s
7680}
7681
7682// Specifies the execution engine (cluster) to run the notebook and perform
7683// the notebook execution, for example, an EMR cluster.
7684type ExecutionEngineConfig struct {
7685	_ struct{} `type:"structure"`
7686
7687	// The unique identifier of the execution engine. For an EMR cluster, this is
7688	// the cluster ID.
7689	//
7690	// Id is a required field
7691	Id *string `type:"string" required:"true"`
7692
7693	// An optional unique ID of an EC2 security group to associate with the master
7694	// instance of the EMR cluster for this notebook execution. For more information
7695	// see Specifying EC2 Security Groups for EMR Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
7696	// in the EMR Management Guide.
7697	MasterInstanceSecurityGroupId *string `type:"string"`
7698
7699	// The type of execution engine. A value of EMR specifies an EMR cluster.
7700	Type *string `type:"string" enum:"ExecutionEngineType"`
7701}
7702
7703// String returns the string representation
7704func (s ExecutionEngineConfig) String() string {
7705	return awsutil.Prettify(s)
7706}
7707
7708// GoString returns the string representation
7709func (s ExecutionEngineConfig) GoString() string {
7710	return s.String()
7711}
7712
7713// Validate inspects the fields of the type to determine if they are valid.
7714func (s *ExecutionEngineConfig) Validate() error {
7715	invalidParams := request.ErrInvalidParams{Context: "ExecutionEngineConfig"}
7716	if s.Id == nil {
7717		invalidParams.Add(request.NewErrParamRequired("Id"))
7718	}
7719
7720	if invalidParams.Len() > 0 {
7721		return invalidParams
7722	}
7723	return nil
7724}
7725
7726// SetId sets the Id field's value.
7727func (s *ExecutionEngineConfig) SetId(v string) *ExecutionEngineConfig {
7728	s.Id = &v
7729	return s
7730}
7731
7732// SetMasterInstanceSecurityGroupId sets the MasterInstanceSecurityGroupId field's value.
7733func (s *ExecutionEngineConfig) SetMasterInstanceSecurityGroupId(v string) *ExecutionEngineConfig {
7734	s.MasterInstanceSecurityGroupId = &v
7735	return s
7736}
7737
7738// SetType sets the Type field's value.
7739func (s *ExecutionEngineConfig) SetType(v string) *ExecutionEngineConfig {
7740	s.Type = &v
7741	return s
7742}
7743
7744// The details of the step failure. The service attempts to detect the root
7745// cause for many common failures.
7746type FailureDetails struct {
7747	_ struct{} `type:"structure"`
7748
7749	// The path to the log file where the step failure root cause was originally
7750	// recorded.
7751	LogFile *string `type:"string"`
7752
7753	// The descriptive message including the error the Amazon EMR service has identified
7754	// as the cause of step failure. This is text from an error log that describes
7755	// the root cause of the failure.
7756	Message *string `type:"string"`
7757
7758	// The reason for the step failure. In the case where the service cannot successfully
7759	// determine the root cause of the failure, it returns "Unknown Error" as a
7760	// reason.
7761	Reason *string `type:"string"`
7762}
7763
7764// String returns the string representation
7765func (s FailureDetails) String() string {
7766	return awsutil.Prettify(s)
7767}
7768
7769// GoString returns the string representation
7770func (s FailureDetails) GoString() string {
7771	return s.String()
7772}
7773
7774// SetLogFile sets the LogFile field's value.
7775func (s *FailureDetails) SetLogFile(v string) *FailureDetails {
7776	s.LogFile = &v
7777	return s
7778}
7779
7780// SetMessage sets the Message field's value.
7781func (s *FailureDetails) SetMessage(v string) *FailureDetails {
7782	s.Message = &v
7783	return s
7784}
7785
7786// SetReason sets the Reason field's value.
7787func (s *FailureDetails) SetReason(v string) *FailureDetails {
7788	s.Reason = &v
7789	return s
7790}
7791
7792type GetBlockPublicAccessConfigurationInput struct {
7793	_ struct{} `type:"structure"`
7794}
7795
7796// String returns the string representation
7797func (s GetBlockPublicAccessConfigurationInput) String() string {
7798	return awsutil.Prettify(s)
7799}
7800
7801// GoString returns the string representation
7802func (s GetBlockPublicAccessConfigurationInput) GoString() string {
7803	return s.String()
7804}
7805
7806type GetBlockPublicAccessConfigurationOutput struct {
7807	_ struct{} `type:"structure"`
7808
7809	// A configuration for Amazon EMR block public access. The configuration applies
7810	// to all clusters created in your account for the current Region. The configuration
7811	// specifies whether block public access is enabled. If block public access
7812	// is enabled, security groups associated with the cluster cannot have rules
7813	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
7814	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
7815	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
7816	// and public access is allowed on this port. You can change this by updating
7817	// the block public access configuration to remove the exception.
7818	//
7819	// For accounts that created clusters in a Region before November 25, 2019,
7820	// block public access is disabled by default in that Region. To use this feature,
7821	// you must manually enable and configure it. For accounts that did not create
7822	// an EMR cluster in a Region before this date, block public access is enabled
7823	// by default in that Region.
7824	//
7825	// BlockPublicAccessConfiguration is a required field
7826	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
7827
7828	// Properties that describe the AWS principal that created the BlockPublicAccessConfiguration
7829	// using the PutBlockPublicAccessConfiguration action as well as the date and
7830	// time that the configuration was created. Each time a configuration for block
7831	// public access is updated, Amazon EMR updates this metadata.
7832	//
7833	// BlockPublicAccessConfigurationMetadata is a required field
7834	BlockPublicAccessConfigurationMetadata *BlockPublicAccessConfigurationMetadata `type:"structure" required:"true"`
7835}
7836
7837// String returns the string representation
7838func (s GetBlockPublicAccessConfigurationOutput) String() string {
7839	return awsutil.Prettify(s)
7840}
7841
7842// GoString returns the string representation
7843func (s GetBlockPublicAccessConfigurationOutput) GoString() string {
7844	return s.String()
7845}
7846
7847// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
7848func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *GetBlockPublicAccessConfigurationOutput {
7849	s.BlockPublicAccessConfiguration = v
7850	return s
7851}
7852
7853// SetBlockPublicAccessConfigurationMetadata sets the BlockPublicAccessConfigurationMetadata field's value.
7854func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfigurationMetadata(v *BlockPublicAccessConfigurationMetadata) *GetBlockPublicAccessConfigurationOutput {
7855	s.BlockPublicAccessConfigurationMetadata = v
7856	return s
7857}
7858
7859type GetManagedScalingPolicyInput struct {
7860	_ struct{} `type:"structure"`
7861
7862	// Specifies the ID of the cluster for which the managed scaling policy will
7863	// be fetched.
7864	//
7865	// ClusterId is a required field
7866	ClusterId *string `type:"string" required:"true"`
7867}
7868
7869// String returns the string representation
7870func (s GetManagedScalingPolicyInput) String() string {
7871	return awsutil.Prettify(s)
7872}
7873
7874// GoString returns the string representation
7875func (s GetManagedScalingPolicyInput) GoString() string {
7876	return s.String()
7877}
7878
7879// Validate inspects the fields of the type to determine if they are valid.
7880func (s *GetManagedScalingPolicyInput) Validate() error {
7881	invalidParams := request.ErrInvalidParams{Context: "GetManagedScalingPolicyInput"}
7882	if s.ClusterId == nil {
7883		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7884	}
7885
7886	if invalidParams.Len() > 0 {
7887		return invalidParams
7888	}
7889	return nil
7890}
7891
7892// SetClusterId sets the ClusterId field's value.
7893func (s *GetManagedScalingPolicyInput) SetClusterId(v string) *GetManagedScalingPolicyInput {
7894	s.ClusterId = &v
7895	return s
7896}
7897
7898type GetManagedScalingPolicyOutput struct {
7899	_ struct{} `type:"structure"`
7900
7901	// Specifies the managed scaling policy that is attached to an Amazon EMR cluster.
7902	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
7903}
7904
7905// String returns the string representation
7906func (s GetManagedScalingPolicyOutput) String() string {
7907	return awsutil.Prettify(s)
7908}
7909
7910// GoString returns the string representation
7911func (s GetManagedScalingPolicyOutput) GoString() string {
7912	return s.String()
7913}
7914
7915// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
7916func (s *GetManagedScalingPolicyOutput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *GetManagedScalingPolicyOutput {
7917	s.ManagedScalingPolicy = v
7918	return s
7919}
7920
7921type GetStudioSessionMappingInput struct {
7922	_ struct{} `type:"structure"`
7923
7924	// The globally unique identifier (GUID) of the user or group. For more information,
7925	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
7926	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
7927	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
7928	// must be specified.
7929	IdentityId *string `type:"string"`
7930
7931	// The name of the user or group to fetch. For more information, see UserName
7932	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
7933	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
7934	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
7935	// must be specified.
7936	IdentityName *string `type:"string"`
7937
7938	// Specifies whether the identity to fetch is a user or a group.
7939	//
7940	// IdentityType is a required field
7941	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
7942
7943	// The ID of the Amazon EMR Studio.
7944	//
7945	// StudioId is a required field
7946	StudioId *string `type:"string" required:"true"`
7947}
7948
7949// String returns the string representation
7950func (s GetStudioSessionMappingInput) String() string {
7951	return awsutil.Prettify(s)
7952}
7953
7954// GoString returns the string representation
7955func (s GetStudioSessionMappingInput) GoString() string {
7956	return s.String()
7957}
7958
7959// Validate inspects the fields of the type to determine if they are valid.
7960func (s *GetStudioSessionMappingInput) Validate() error {
7961	invalidParams := request.ErrInvalidParams{Context: "GetStudioSessionMappingInput"}
7962	if s.IdentityType == nil {
7963		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
7964	}
7965	if s.StudioId == nil {
7966		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7967	}
7968
7969	if invalidParams.Len() > 0 {
7970		return invalidParams
7971	}
7972	return nil
7973}
7974
7975// SetIdentityId sets the IdentityId field's value.
7976func (s *GetStudioSessionMappingInput) SetIdentityId(v string) *GetStudioSessionMappingInput {
7977	s.IdentityId = &v
7978	return s
7979}
7980
7981// SetIdentityName sets the IdentityName field's value.
7982func (s *GetStudioSessionMappingInput) SetIdentityName(v string) *GetStudioSessionMappingInput {
7983	s.IdentityName = &v
7984	return s
7985}
7986
7987// SetIdentityType sets the IdentityType field's value.
7988func (s *GetStudioSessionMappingInput) SetIdentityType(v string) *GetStudioSessionMappingInput {
7989	s.IdentityType = &v
7990	return s
7991}
7992
7993// SetStudioId sets the StudioId field's value.
7994func (s *GetStudioSessionMappingInput) SetStudioId(v string) *GetStudioSessionMappingInput {
7995	s.StudioId = &v
7996	return s
7997}
7998
7999type GetStudioSessionMappingOutput struct {
8000	_ struct{} `type:"structure"`
8001
8002	// The session mapping details for the specified Amazon EMR Studio and identity,
8003	// including session policy ARN and creation time.
8004	SessionMapping *SessionMappingDetail `type:"structure"`
8005}
8006
8007// String returns the string representation
8008func (s GetStudioSessionMappingOutput) String() string {
8009	return awsutil.Prettify(s)
8010}
8011
8012// GoString returns the string representation
8013func (s GetStudioSessionMappingOutput) GoString() string {
8014	return s.String()
8015}
8016
8017// SetSessionMapping sets the SessionMapping field's value.
8018func (s *GetStudioSessionMappingOutput) SetSessionMapping(v *SessionMappingDetail) *GetStudioSessionMappingOutput {
8019	s.SessionMapping = v
8020	return s
8021}
8022
8023// A job flow step consisting of a JAR file whose main function will be executed.
8024// The main function submits a job for Hadoop to execute and waits for the job
8025// to finish or fail.
8026type HadoopJarStepConfig struct {
8027	_ struct{} `type:"structure"`
8028
8029	// A list of command line arguments passed to the JAR file's main function when
8030	// executed.
8031	Args []*string `type:"list"`
8032
8033	// A path to a JAR file run during the step.
8034	//
8035	// Jar is a required field
8036	Jar *string `type:"string" required:"true"`
8037
8038	// The name of the main class in the specified Java file. If not specified,
8039	// the JAR file should specify a Main-Class in its manifest file.
8040	MainClass *string `type:"string"`
8041
8042	// A list of Java properties that are set when the step runs. You can use these
8043	// properties to pass key value pairs to your main function.
8044	Properties []*KeyValue `type:"list"`
8045}
8046
8047// String returns the string representation
8048func (s HadoopJarStepConfig) String() string {
8049	return awsutil.Prettify(s)
8050}
8051
8052// GoString returns the string representation
8053func (s HadoopJarStepConfig) GoString() string {
8054	return s.String()
8055}
8056
8057// Validate inspects the fields of the type to determine if they are valid.
8058func (s *HadoopJarStepConfig) Validate() error {
8059	invalidParams := request.ErrInvalidParams{Context: "HadoopJarStepConfig"}
8060	if s.Jar == nil {
8061		invalidParams.Add(request.NewErrParamRequired("Jar"))
8062	}
8063
8064	if invalidParams.Len() > 0 {
8065		return invalidParams
8066	}
8067	return nil
8068}
8069
8070// SetArgs sets the Args field's value.
8071func (s *HadoopJarStepConfig) SetArgs(v []*string) *HadoopJarStepConfig {
8072	s.Args = v
8073	return s
8074}
8075
8076// SetJar sets the Jar field's value.
8077func (s *HadoopJarStepConfig) SetJar(v string) *HadoopJarStepConfig {
8078	s.Jar = &v
8079	return s
8080}
8081
8082// SetMainClass sets the MainClass field's value.
8083func (s *HadoopJarStepConfig) SetMainClass(v string) *HadoopJarStepConfig {
8084	s.MainClass = &v
8085	return s
8086}
8087
8088// SetProperties sets the Properties field's value.
8089func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig {
8090	s.Properties = v
8091	return s
8092}
8093
8094// A cluster step consisting of a JAR file whose main function will be executed.
8095// The main function submits a job for Hadoop to execute and waits for the job
8096// to finish or fail.
8097type HadoopStepConfig struct {
8098	_ struct{} `type:"structure"`
8099
8100	// The list of command line arguments to pass to the JAR file's main function
8101	// for execution.
8102	Args []*string `type:"list"`
8103
8104	// The path to the JAR file that runs during the step.
8105	Jar *string `type:"string"`
8106
8107	// The name of the main class in the specified Java file. If not specified,
8108	// the JAR file should specify a main class in its manifest file.
8109	MainClass *string `type:"string"`
8110
8111	// The list of Java properties that are set when the step runs. You can use
8112	// these properties to pass key-value pairs to your main function.
8113	Properties map[string]*string `type:"map"`
8114}
8115
8116// String returns the string representation
8117func (s HadoopStepConfig) String() string {
8118	return awsutil.Prettify(s)
8119}
8120
8121// GoString returns the string representation
8122func (s HadoopStepConfig) GoString() string {
8123	return s.String()
8124}
8125
8126// SetArgs sets the Args field's value.
8127func (s *HadoopStepConfig) SetArgs(v []*string) *HadoopStepConfig {
8128	s.Args = v
8129	return s
8130}
8131
8132// SetJar sets the Jar field's value.
8133func (s *HadoopStepConfig) SetJar(v string) *HadoopStepConfig {
8134	s.Jar = &v
8135	return s
8136}
8137
8138// SetMainClass sets the MainClass field's value.
8139func (s *HadoopStepConfig) SetMainClass(v string) *HadoopStepConfig {
8140	s.MainClass = &v
8141	return s
8142}
8143
8144// SetProperties sets the Properties field's value.
8145func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig {
8146	s.Properties = v
8147	return s
8148}
8149
8150// Represents an EC2 instance provisioned as part of cluster.
8151type Instance struct {
8152	_ struct{} `type:"structure"`
8153
8154	// The list of EBS volumes that are attached to this instance.
8155	EbsVolumes []*EbsVolume `type:"list"`
8156
8157	// The unique identifier of the instance in Amazon EC2.
8158	Ec2InstanceId *string `type:"string"`
8159
8160	// The unique identifier for the instance in Amazon EMR.
8161	Id *string `type:"string"`
8162
8163	// The unique identifier of the instance fleet to which an EC2 instance belongs.
8164	InstanceFleetId *string `type:"string"`
8165
8166	// The identifier of the instance group to which this instance belongs.
8167	InstanceGroupId *string `type:"string"`
8168
8169	// The EC2 instance type, for example m3.xlarge.
8170	InstanceType *string `min:"1" type:"string"`
8171
8172	// The instance purchasing option. Valid values are ON_DEMAND or SPOT.
8173	Market *string `type:"string" enum:"MarketType"`
8174
8175	// The private DNS name of the instance.
8176	PrivateDnsName *string `type:"string"`
8177
8178	// The private IP address of the instance.
8179	PrivateIpAddress *string `type:"string"`
8180
8181	// The public DNS name of the instance.
8182	PublicDnsName *string `type:"string"`
8183
8184	// The public IP address of the instance.
8185	PublicIpAddress *string `type:"string"`
8186
8187	// The current status of the instance.
8188	Status *InstanceStatus `type:"structure"`
8189}
8190
8191// String returns the string representation
8192func (s Instance) String() string {
8193	return awsutil.Prettify(s)
8194}
8195
8196// GoString returns the string representation
8197func (s Instance) GoString() string {
8198	return s.String()
8199}
8200
8201// SetEbsVolumes sets the EbsVolumes field's value.
8202func (s *Instance) SetEbsVolumes(v []*EbsVolume) *Instance {
8203	s.EbsVolumes = v
8204	return s
8205}
8206
8207// SetEc2InstanceId sets the Ec2InstanceId field's value.
8208func (s *Instance) SetEc2InstanceId(v string) *Instance {
8209	s.Ec2InstanceId = &v
8210	return s
8211}
8212
8213// SetId sets the Id field's value.
8214func (s *Instance) SetId(v string) *Instance {
8215	s.Id = &v
8216	return s
8217}
8218
8219// SetInstanceFleetId sets the InstanceFleetId field's value.
8220func (s *Instance) SetInstanceFleetId(v string) *Instance {
8221	s.InstanceFleetId = &v
8222	return s
8223}
8224
8225// SetInstanceGroupId sets the InstanceGroupId field's value.
8226func (s *Instance) SetInstanceGroupId(v string) *Instance {
8227	s.InstanceGroupId = &v
8228	return s
8229}
8230
8231// SetInstanceType sets the InstanceType field's value.
8232func (s *Instance) SetInstanceType(v string) *Instance {
8233	s.InstanceType = &v
8234	return s
8235}
8236
8237// SetMarket sets the Market field's value.
8238func (s *Instance) SetMarket(v string) *Instance {
8239	s.Market = &v
8240	return s
8241}
8242
8243// SetPrivateDnsName sets the PrivateDnsName field's value.
8244func (s *Instance) SetPrivateDnsName(v string) *Instance {
8245	s.PrivateDnsName = &v
8246	return s
8247}
8248
8249// SetPrivateIpAddress sets the PrivateIpAddress field's value.
8250func (s *Instance) SetPrivateIpAddress(v string) *Instance {
8251	s.PrivateIpAddress = &v
8252	return s
8253}
8254
8255// SetPublicDnsName sets the PublicDnsName field's value.
8256func (s *Instance) SetPublicDnsName(v string) *Instance {
8257	s.PublicDnsName = &v
8258	return s
8259}
8260
8261// SetPublicIpAddress sets the PublicIpAddress field's value.
8262func (s *Instance) SetPublicIpAddress(v string) *Instance {
8263	s.PublicIpAddress = &v
8264	return s
8265}
8266
8267// SetStatus sets the Status field's value.
8268func (s *Instance) SetStatus(v *InstanceStatus) *Instance {
8269	s.Status = v
8270	return s
8271}
8272
8273// Describes an instance fleet, which is a group of EC2 instances that host
8274// a particular node type (master, core, or task) in an Amazon EMR cluster.
8275// Instance fleets can consist of a mix of instance types and On-Demand and
8276// Spot Instances, which are provisioned to meet a defined target capacity.
8277//
8278// The instance fleet configuration is available only in Amazon EMR versions
8279// 4.8.0 and later, excluding 5.0.x versions.
8280type InstanceFleet struct {
8281	_ struct{} `type:"structure"`
8282
8283	// The unique identifier of the instance fleet.
8284	Id *string `type:"string"`
8285
8286	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
8287	// or TASK.
8288	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
8289
8290	// The specification for the instance types that comprise an instance fleet.
8291	// Up to five unique instance specifications may be defined for each instance
8292	// fleet.
8293	InstanceTypeSpecifications []*InstanceTypeSpecification `type:"list"`
8294
8295	// Describes the launch specification for an instance fleet.
8296	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
8297
8298	// A friendly name for the instance fleet.
8299	Name *string `type:"string"`
8300
8301	// The number of On-Demand units that have been provisioned for the instance
8302	// fleet to fulfill TargetOnDemandCapacity. This provisioned capacity might
8303	// be less than or greater than TargetOnDemandCapacity.
8304	ProvisionedOnDemandCapacity *int64 `type:"integer"`
8305
8306	// The number of Spot units that have been provisioned for this instance fleet
8307	// to fulfill TargetSpotCapacity. This provisioned capacity might be less than
8308	// or greater than TargetSpotCapacity.
8309	ProvisionedSpotCapacity *int64 `type:"integer"`
8310
8311	// The current status of the instance fleet.
8312	Status *InstanceFleetStatus `type:"structure"`
8313
8314	// The target capacity of On-Demand units for the instance fleet, which determines
8315	// how many On-Demand Instances to provision. When the instance fleet launches,
8316	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
8317	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
8318	// Instance is provisioned, the WeightedCapacity units count toward the target
8319	// capacity. Amazon EMR provisions instances until the target capacity is totally
8320	// fulfilled, even if this results in an overage. For example, if there are
8321	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8322	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8323	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedOnDemandCapacity
8324	// to determine the Spot capacity units that have been provisioned for the instance
8325	// fleet.
8326	//
8327	// If not specified or set to 0, only Spot Instances are provisioned for the
8328	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
8329	// and TargetOnDemandCapacity should be greater than 0. For a master instance
8330	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
8331	// and its value must be 1.
8332	TargetOnDemandCapacity *int64 `type:"integer"`
8333
8334	// The target capacity of Spot units for the instance fleet, which determines
8335	// how many Spot instances to provision. When the instance fleet launches, Amazon
8336	// EMR tries to provision Spot instances as specified by InstanceTypeConfig.
8337	// Each instance configuration has a specified WeightedCapacity. When a Spot
8338	// instance is provisioned, the WeightedCapacity units count toward the target
8339	// capacity. Amazon EMR provisions instances until the target capacity is totally
8340	// fulfilled, even if this results in an overage. For example, if there are
8341	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8342	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8343	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedSpotCapacity
8344	// to determine the Spot capacity units that have been provisioned for the instance
8345	// fleet.
8346	//
8347	// If not specified or set to 0, only On-Demand instances are provisioned for
8348	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
8349	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
8350	// and TargetOnDemandCapacity can be specified, and its value must be 1.
8351	TargetSpotCapacity *int64 `type:"integer"`
8352}
8353
8354// String returns the string representation
8355func (s InstanceFleet) String() string {
8356	return awsutil.Prettify(s)
8357}
8358
8359// GoString returns the string representation
8360func (s InstanceFleet) GoString() string {
8361	return s.String()
8362}
8363
8364// SetId sets the Id field's value.
8365func (s *InstanceFleet) SetId(v string) *InstanceFleet {
8366	s.Id = &v
8367	return s
8368}
8369
8370// SetInstanceFleetType sets the InstanceFleetType field's value.
8371func (s *InstanceFleet) SetInstanceFleetType(v string) *InstanceFleet {
8372	s.InstanceFleetType = &v
8373	return s
8374}
8375
8376// SetInstanceTypeSpecifications sets the InstanceTypeSpecifications field's value.
8377func (s *InstanceFleet) SetInstanceTypeSpecifications(v []*InstanceTypeSpecification) *InstanceFleet {
8378	s.InstanceTypeSpecifications = v
8379	return s
8380}
8381
8382// SetLaunchSpecifications sets the LaunchSpecifications field's value.
8383func (s *InstanceFleet) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleet {
8384	s.LaunchSpecifications = v
8385	return s
8386}
8387
8388// SetName sets the Name field's value.
8389func (s *InstanceFleet) SetName(v string) *InstanceFleet {
8390	s.Name = &v
8391	return s
8392}
8393
8394// SetProvisionedOnDemandCapacity sets the ProvisionedOnDemandCapacity field's value.
8395func (s *InstanceFleet) SetProvisionedOnDemandCapacity(v int64) *InstanceFleet {
8396	s.ProvisionedOnDemandCapacity = &v
8397	return s
8398}
8399
8400// SetProvisionedSpotCapacity sets the ProvisionedSpotCapacity field's value.
8401func (s *InstanceFleet) SetProvisionedSpotCapacity(v int64) *InstanceFleet {
8402	s.ProvisionedSpotCapacity = &v
8403	return s
8404}
8405
8406// SetStatus sets the Status field's value.
8407func (s *InstanceFleet) SetStatus(v *InstanceFleetStatus) *InstanceFleet {
8408	s.Status = v
8409	return s
8410}
8411
8412// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8413func (s *InstanceFleet) SetTargetOnDemandCapacity(v int64) *InstanceFleet {
8414	s.TargetOnDemandCapacity = &v
8415	return s
8416}
8417
8418// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8419func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet {
8420	s.TargetSpotCapacity = &v
8421	return s
8422}
8423
8424// The configuration that defines an instance fleet.
8425//
8426// The instance fleet configuration is available only in Amazon EMR versions
8427// 4.8.0 and later, excluding 5.0.x versions.
8428type InstanceFleetConfig struct {
8429	_ struct{} `type:"structure"`
8430
8431	// The node type that the instance fleet hosts. Valid values are MASTER,CORE,and
8432	// TASK.
8433	//
8434	// InstanceFleetType is a required field
8435	InstanceFleetType *string `type:"string" required:"true" enum:"InstanceFleetType"`
8436
8437	// The instance type configurations that define the EC2 instances in the instance
8438	// fleet.
8439	InstanceTypeConfigs []*InstanceTypeConfig `type:"list"`
8440
8441	// The launch specification for the instance fleet.
8442	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
8443
8444	// The friendly name of the instance fleet.
8445	Name *string `type:"string"`
8446
8447	// The target capacity of On-Demand units for the instance fleet, which determines
8448	// how many On-Demand Instances to provision. When the instance fleet launches,
8449	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
8450	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
8451	// Instance is provisioned, the WeightedCapacity units count toward the target
8452	// capacity. Amazon EMR provisions instances until the target capacity is totally
8453	// fulfilled, even if this results in an overage. For example, if there are
8454	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8455	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8456	// and the target capacity is exceeded by 3 units.
8457	//
8458	// If not specified or set to 0, only Spot Instances are provisioned for the
8459	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
8460	// and TargetOnDemandCapacity should be greater than 0. For a master instance
8461	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
8462	// and its value must be 1.
8463	TargetOnDemandCapacity *int64 `type:"integer"`
8464
8465	// The target capacity of Spot units for the instance fleet, which determines
8466	// how many Spot Instances to provision. When the instance fleet launches, Amazon
8467	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
8468	// Each instance configuration has a specified WeightedCapacity. When a Spot
8469	// Instance is provisioned, the WeightedCapacity units count toward the target
8470	// capacity. Amazon EMR provisions instances until the target capacity is totally
8471	// fulfilled, even if this results in an overage. For example, if there are
8472	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
8473	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
8474	// and the target capacity is exceeded by 3 units.
8475	//
8476	// If not specified or set to 0, only On-Demand Instances are provisioned for
8477	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
8478	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
8479	// and TargetOnDemandCapacity can be specified, and its value must be 1.
8480	TargetSpotCapacity *int64 `type:"integer"`
8481}
8482
8483// String returns the string representation
8484func (s InstanceFleetConfig) String() string {
8485	return awsutil.Prettify(s)
8486}
8487
8488// GoString returns the string representation
8489func (s InstanceFleetConfig) GoString() string {
8490	return s.String()
8491}
8492
8493// Validate inspects the fields of the type to determine if they are valid.
8494func (s *InstanceFleetConfig) Validate() error {
8495	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetConfig"}
8496	if s.InstanceFleetType == nil {
8497		invalidParams.Add(request.NewErrParamRequired("InstanceFleetType"))
8498	}
8499	if s.InstanceTypeConfigs != nil {
8500		for i, v := range s.InstanceTypeConfigs {
8501			if v == nil {
8502				continue
8503			}
8504			if err := v.Validate(); err != nil {
8505				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceTypeConfigs", i), err.(request.ErrInvalidParams))
8506			}
8507		}
8508	}
8509	if s.LaunchSpecifications != nil {
8510		if err := s.LaunchSpecifications.Validate(); err != nil {
8511			invalidParams.AddNested("LaunchSpecifications", err.(request.ErrInvalidParams))
8512		}
8513	}
8514
8515	if invalidParams.Len() > 0 {
8516		return invalidParams
8517	}
8518	return nil
8519}
8520
8521// SetInstanceFleetType sets the InstanceFleetType field's value.
8522func (s *InstanceFleetConfig) SetInstanceFleetType(v string) *InstanceFleetConfig {
8523	s.InstanceFleetType = &v
8524	return s
8525}
8526
8527// SetInstanceTypeConfigs sets the InstanceTypeConfigs field's value.
8528func (s *InstanceFleetConfig) SetInstanceTypeConfigs(v []*InstanceTypeConfig) *InstanceFleetConfig {
8529	s.InstanceTypeConfigs = v
8530	return s
8531}
8532
8533// SetLaunchSpecifications sets the LaunchSpecifications field's value.
8534func (s *InstanceFleetConfig) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleetConfig {
8535	s.LaunchSpecifications = v
8536	return s
8537}
8538
8539// SetName sets the Name field's value.
8540func (s *InstanceFleetConfig) SetName(v string) *InstanceFleetConfig {
8541	s.Name = &v
8542	return s
8543}
8544
8545// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8546func (s *InstanceFleetConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetConfig {
8547	s.TargetOnDemandCapacity = &v
8548	return s
8549}
8550
8551// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8552func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfig {
8553	s.TargetSpotCapacity = &v
8554	return s
8555}
8556
8557// Configuration parameters for an instance fleet modification request.
8558//
8559// The instance fleet configuration is available only in Amazon EMR versions
8560// 4.8.0 and later, excluding 5.0.x versions.
8561type InstanceFleetModifyConfig struct {
8562	_ struct{} `type:"structure"`
8563
8564	// A unique identifier for the instance fleet.
8565	//
8566	// InstanceFleetId is a required field
8567	InstanceFleetId *string `type:"string" required:"true"`
8568
8569	// The target capacity of On-Demand units for the instance fleet. For more information
8570	// see InstanceFleetConfig$TargetOnDemandCapacity.
8571	TargetOnDemandCapacity *int64 `type:"integer"`
8572
8573	// The target capacity of Spot units for the instance fleet. For more information,
8574	// see InstanceFleetConfig$TargetSpotCapacity.
8575	TargetSpotCapacity *int64 `type:"integer"`
8576}
8577
8578// String returns the string representation
8579func (s InstanceFleetModifyConfig) String() string {
8580	return awsutil.Prettify(s)
8581}
8582
8583// GoString returns the string representation
8584func (s InstanceFleetModifyConfig) GoString() string {
8585	return s.String()
8586}
8587
8588// Validate inspects the fields of the type to determine if they are valid.
8589func (s *InstanceFleetModifyConfig) Validate() error {
8590	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetModifyConfig"}
8591	if s.InstanceFleetId == nil {
8592		invalidParams.Add(request.NewErrParamRequired("InstanceFleetId"))
8593	}
8594
8595	if invalidParams.Len() > 0 {
8596		return invalidParams
8597	}
8598	return nil
8599}
8600
8601// SetInstanceFleetId sets the InstanceFleetId field's value.
8602func (s *InstanceFleetModifyConfig) SetInstanceFleetId(v string) *InstanceFleetModifyConfig {
8603	s.InstanceFleetId = &v
8604	return s
8605}
8606
8607// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
8608func (s *InstanceFleetModifyConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetModifyConfig {
8609	s.TargetOnDemandCapacity = &v
8610	return s
8611}
8612
8613// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
8614func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFleetModifyConfig {
8615	s.TargetSpotCapacity = &v
8616	return s
8617}
8618
8619// The launch specification for Spot Instances in the fleet, which determines
8620// the defined duration, provisioning timeout behavior, and allocation strategy.
8621//
8622// The instance fleet configuration is available only in Amazon EMR versions
8623// 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot Instance allocation
8624// strategies are available in Amazon EMR version 5.12.1 and later.
8625type InstanceFleetProvisioningSpecifications struct {
8626	_ struct{} `type:"structure"`
8627
8628	// The launch specification for On-Demand Instances in the instance fleet, which
8629	// determines the allocation strategy.
8630	//
8631	// The instance fleet configuration is available only in Amazon EMR versions
8632	// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
8633	// strategy is available in Amazon EMR version 5.12.1 and later.
8634	OnDemandSpecification *OnDemandProvisioningSpecification `type:"structure"`
8635
8636	// The launch specification for Spot Instances in the fleet, which determines
8637	// the defined duration, provisioning timeout behavior, and allocation strategy.
8638	SpotSpecification *SpotProvisioningSpecification `type:"structure"`
8639}
8640
8641// String returns the string representation
8642func (s InstanceFleetProvisioningSpecifications) String() string {
8643	return awsutil.Prettify(s)
8644}
8645
8646// GoString returns the string representation
8647func (s InstanceFleetProvisioningSpecifications) GoString() string {
8648	return s.String()
8649}
8650
8651// Validate inspects the fields of the type to determine if they are valid.
8652func (s *InstanceFleetProvisioningSpecifications) Validate() error {
8653	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetProvisioningSpecifications"}
8654	if s.OnDemandSpecification != nil {
8655		if err := s.OnDemandSpecification.Validate(); err != nil {
8656			invalidParams.AddNested("OnDemandSpecification", err.(request.ErrInvalidParams))
8657		}
8658	}
8659	if s.SpotSpecification != nil {
8660		if err := s.SpotSpecification.Validate(); err != nil {
8661			invalidParams.AddNested("SpotSpecification", err.(request.ErrInvalidParams))
8662		}
8663	}
8664
8665	if invalidParams.Len() > 0 {
8666		return invalidParams
8667	}
8668	return nil
8669}
8670
8671// SetOnDemandSpecification sets the OnDemandSpecification field's value.
8672func (s *InstanceFleetProvisioningSpecifications) SetOnDemandSpecification(v *OnDemandProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
8673	s.OnDemandSpecification = v
8674	return s
8675}
8676
8677// SetSpotSpecification sets the SpotSpecification field's value.
8678func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
8679	s.SpotSpecification = v
8680	return s
8681}
8682
8683// Provides status change reason details for the instance fleet.
8684//
8685// The instance fleet configuration is available only in Amazon EMR versions
8686// 4.8.0 and later, excluding 5.0.x versions.
8687type InstanceFleetStateChangeReason struct {
8688	_ struct{} `type:"structure"`
8689
8690	// A code corresponding to the reason the state change occurred.
8691	Code *string `type:"string" enum:"InstanceFleetStateChangeReasonCode"`
8692
8693	// An explanatory message.
8694	Message *string `type:"string"`
8695}
8696
8697// String returns the string representation
8698func (s InstanceFleetStateChangeReason) String() string {
8699	return awsutil.Prettify(s)
8700}
8701
8702// GoString returns the string representation
8703func (s InstanceFleetStateChangeReason) GoString() string {
8704	return s.String()
8705}
8706
8707// SetCode sets the Code field's value.
8708func (s *InstanceFleetStateChangeReason) SetCode(v string) *InstanceFleetStateChangeReason {
8709	s.Code = &v
8710	return s
8711}
8712
8713// SetMessage sets the Message field's value.
8714func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStateChangeReason {
8715	s.Message = &v
8716	return s
8717}
8718
8719// The status of the instance fleet.
8720//
8721// The instance fleet configuration is available only in Amazon EMR versions
8722// 4.8.0 and later, excluding 5.0.x versions.
8723type InstanceFleetStatus struct {
8724	_ struct{} `type:"structure"`
8725
8726	// A code representing the instance fleet status.
8727	//
8728	//    * PROVISIONING—The instance fleet is provisioning EC2 resources and
8729	//    is not yet ready to run jobs.
8730	//
8731	//    * BOOTSTRAPPING—EC2 instances and other resources have been provisioned
8732	//    and the bootstrap actions specified for the instances are underway.
8733	//
8734	//    * RUNNING—EC2 instances and other resources are running. They are either
8735	//    executing jobs or waiting to execute jobs.
8736	//
8737	//    * RESIZING—A resize operation is underway. EC2 instances are either
8738	//    being added or removed.
8739	//
8740	//    * SUSPENDED—A resize operation could not complete. Existing EC2 instances
8741	//    are running, but instances can't be added or removed.
8742	//
8743	//    * TERMINATING—The instance fleet is terminating EC2 instances.
8744	//
8745	//    * TERMINATED—The instance fleet is no longer active, and all EC2 instances
8746	//    have been terminated.
8747	State *string `type:"string" enum:"InstanceFleetState"`
8748
8749	// Provides status change reason details for the instance fleet.
8750	StateChangeReason *InstanceFleetStateChangeReason `type:"structure"`
8751
8752	// Provides historical timestamps for the instance fleet, including the time
8753	// of creation, the time it became ready to run jobs, and the time of termination.
8754	Timeline *InstanceFleetTimeline `type:"structure"`
8755}
8756
8757// String returns the string representation
8758func (s InstanceFleetStatus) String() string {
8759	return awsutil.Prettify(s)
8760}
8761
8762// GoString returns the string representation
8763func (s InstanceFleetStatus) GoString() string {
8764	return s.String()
8765}
8766
8767// SetState sets the State field's value.
8768func (s *InstanceFleetStatus) SetState(v string) *InstanceFleetStatus {
8769	s.State = &v
8770	return s
8771}
8772
8773// SetStateChangeReason sets the StateChangeReason field's value.
8774func (s *InstanceFleetStatus) SetStateChangeReason(v *InstanceFleetStateChangeReason) *InstanceFleetStatus {
8775	s.StateChangeReason = v
8776	return s
8777}
8778
8779// SetTimeline sets the Timeline field's value.
8780func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFleetStatus {
8781	s.Timeline = v
8782	return s
8783}
8784
8785// Provides historical timestamps for the instance fleet, including the time
8786// of creation, the time it became ready to run jobs, and the time of termination.
8787//
8788// The instance fleet configuration is available only in Amazon EMR versions
8789// 4.8.0 and later, excluding 5.0.x versions.
8790type InstanceFleetTimeline struct {
8791	_ struct{} `type:"structure"`
8792
8793	// The time and date the instance fleet was created.
8794	CreationDateTime *time.Time `type:"timestamp"`
8795
8796	// The time and date the instance fleet terminated.
8797	EndDateTime *time.Time `type:"timestamp"`
8798
8799	// The time and date the instance fleet was ready to run jobs.
8800	ReadyDateTime *time.Time `type:"timestamp"`
8801}
8802
8803// String returns the string representation
8804func (s InstanceFleetTimeline) String() string {
8805	return awsutil.Prettify(s)
8806}
8807
8808// GoString returns the string representation
8809func (s InstanceFleetTimeline) GoString() string {
8810	return s.String()
8811}
8812
8813// SetCreationDateTime sets the CreationDateTime field's value.
8814func (s *InstanceFleetTimeline) SetCreationDateTime(v time.Time) *InstanceFleetTimeline {
8815	s.CreationDateTime = &v
8816	return s
8817}
8818
8819// SetEndDateTime sets the EndDateTime field's value.
8820func (s *InstanceFleetTimeline) SetEndDateTime(v time.Time) *InstanceFleetTimeline {
8821	s.EndDateTime = &v
8822	return s
8823}
8824
8825// SetReadyDateTime sets the ReadyDateTime field's value.
8826func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTimeline {
8827	s.ReadyDateTime = &v
8828	return s
8829}
8830
8831// This entity represents an instance group, which is a group of instances that
8832// have common purpose. For example, CORE instance group is used for HDFS.
8833type InstanceGroup struct {
8834	_ struct{} `type:"structure"`
8835
8836	// An automatic scaling policy for a core instance group or task instance group
8837	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
8838	// group dynamically adds and terminates EC2 instances in response to the value
8839	// of a CloudWatch metric. See PutAutoScalingPolicy.
8840	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
8841
8842	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
8843	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
8844	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
8845	BidPrice *string `type:"string"`
8846
8847	//
8848	// Amazon EMR releases 4.x or later.
8849	//
8850	// The list of configurations supplied for an EMR cluster instance group. You
8851	// can specify a separate configuration for each instance group (master, core,
8852	// and task).
8853	Configurations []*Configuration `type:"list"`
8854
8855	// The version number of the requested configuration specification for this
8856	// instance group.
8857	ConfigurationsVersion *int64 `type:"long"`
8858
8859	// The EBS block devices that are mapped to this instance group.
8860	EbsBlockDevices []*EbsBlockDevice `type:"list"`
8861
8862	// If the instance group is EBS-optimized. An Amazon EBS-optimized instance
8863	// uses an optimized configuration stack and provides additional, dedicated
8864	// capacity for Amazon EBS I/O.
8865	EbsOptimized *bool `type:"boolean"`
8866
8867	// The identifier of the instance group.
8868	Id *string `type:"string"`
8869
8870	// The type of the instance group. Valid values are MASTER, CORE or TASK.
8871	InstanceGroupType *string `type:"string" enum:"InstanceGroupType"`
8872
8873	// The EC2 instance type for all instances in the instance group.
8874	InstanceType *string `min:"1" type:"string"`
8875
8876	// A list of configurations that were successfully applied for an instance group
8877	// last time.
8878	LastSuccessfullyAppliedConfigurations []*Configuration `type:"list"`
8879
8880	// The version number of a configuration specification that was successfully
8881	// applied for an instance group last time.
8882	LastSuccessfullyAppliedConfigurationsVersion *int64 `type:"long"`
8883
8884	// The marketplace to provision instances for this group. Valid values are ON_DEMAND
8885	// or SPOT.
8886	Market *string `type:"string" enum:"MarketType"`
8887
8888	// The name of the instance group.
8889	Name *string `type:"string"`
8890
8891	// The target number of instances for the instance group.
8892	RequestedInstanceCount *int64 `type:"integer"`
8893
8894	// The number of instances currently running in this instance group.
8895	RunningInstanceCount *int64 `type:"integer"`
8896
8897	// Policy for customizing shrink operations.
8898	ShrinkPolicy *ShrinkPolicy `type:"structure"`
8899
8900	// The current status of the instance group.
8901	Status *InstanceGroupStatus `type:"structure"`
8902}
8903
8904// String returns the string representation
8905func (s InstanceGroup) String() string {
8906	return awsutil.Prettify(s)
8907}
8908
8909// GoString returns the string representation
8910func (s InstanceGroup) GoString() string {
8911	return s.String()
8912}
8913
8914// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
8915func (s *InstanceGroup) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *InstanceGroup {
8916	s.AutoScalingPolicy = v
8917	return s
8918}
8919
8920// SetBidPrice sets the BidPrice field's value.
8921func (s *InstanceGroup) SetBidPrice(v string) *InstanceGroup {
8922	s.BidPrice = &v
8923	return s
8924}
8925
8926// SetConfigurations sets the Configurations field's value.
8927func (s *InstanceGroup) SetConfigurations(v []*Configuration) *InstanceGroup {
8928	s.Configurations = v
8929	return s
8930}
8931
8932// SetConfigurationsVersion sets the ConfigurationsVersion field's value.
8933func (s *InstanceGroup) SetConfigurationsVersion(v int64) *InstanceGroup {
8934	s.ConfigurationsVersion = &v
8935	return s
8936}
8937
8938// SetEbsBlockDevices sets the EbsBlockDevices field's value.
8939func (s *InstanceGroup) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceGroup {
8940	s.EbsBlockDevices = v
8941	return s
8942}
8943
8944// SetEbsOptimized sets the EbsOptimized field's value.
8945func (s *InstanceGroup) SetEbsOptimized(v bool) *InstanceGroup {
8946	s.EbsOptimized = &v
8947	return s
8948}
8949
8950// SetId sets the Id field's value.
8951func (s *InstanceGroup) SetId(v string) *InstanceGroup {
8952	s.Id = &v
8953	return s
8954}
8955
8956// SetInstanceGroupType sets the InstanceGroupType field's value.
8957func (s *InstanceGroup) SetInstanceGroupType(v string) *InstanceGroup {
8958	s.InstanceGroupType = &v
8959	return s
8960}
8961
8962// SetInstanceType sets the InstanceType field's value.
8963func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
8964	s.InstanceType = &v
8965	return s
8966}
8967
8968// SetLastSuccessfullyAppliedConfigurations sets the LastSuccessfullyAppliedConfigurations field's value.
8969func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurations(v []*Configuration) *InstanceGroup {
8970	s.LastSuccessfullyAppliedConfigurations = v
8971	return s
8972}
8973
8974// SetLastSuccessfullyAppliedConfigurationsVersion sets the LastSuccessfullyAppliedConfigurationsVersion field's value.
8975func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurationsVersion(v int64) *InstanceGroup {
8976	s.LastSuccessfullyAppliedConfigurationsVersion = &v
8977	return s
8978}
8979
8980// SetMarket sets the Market field's value.
8981func (s *InstanceGroup) SetMarket(v string) *InstanceGroup {
8982	s.Market = &v
8983	return s
8984}
8985
8986// SetName sets the Name field's value.
8987func (s *InstanceGroup) SetName(v string) *InstanceGroup {
8988	s.Name = &v
8989	return s
8990}
8991
8992// SetRequestedInstanceCount sets the RequestedInstanceCount field's value.
8993func (s *InstanceGroup) SetRequestedInstanceCount(v int64) *InstanceGroup {
8994	s.RequestedInstanceCount = &v
8995	return s
8996}
8997
8998// SetRunningInstanceCount sets the RunningInstanceCount field's value.
8999func (s *InstanceGroup) SetRunningInstanceCount(v int64) *InstanceGroup {
9000	s.RunningInstanceCount = &v
9001	return s
9002}
9003
9004// SetShrinkPolicy sets the ShrinkPolicy field's value.
9005func (s *InstanceGroup) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroup {
9006	s.ShrinkPolicy = v
9007	return s
9008}
9009
9010// SetStatus sets the Status field's value.
9011func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup {
9012	s.Status = v
9013	return s
9014}
9015
9016// Configuration defining a new instance group.
9017type InstanceGroupConfig struct {
9018	_ struct{} `type:"structure"`
9019
9020	// An automatic scaling policy for a core instance group or task instance group
9021	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
9022	// group dynamically adds and terminates EC2 instances in response to the value
9023	// of a CloudWatch metric. See PutAutoScalingPolicy.
9024	AutoScalingPolicy *AutoScalingPolicy `type:"structure"`
9025
9026	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
9027	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
9028	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
9029	BidPrice *string `type:"string"`
9030
9031	//
9032	// Amazon EMR releases 4.x or later.
9033	//
9034	// The list of configurations supplied for an EMR cluster instance group. You
9035	// can specify a separate configuration for each instance group (master, core,
9036	// and task).
9037	Configurations []*Configuration `type:"list"`
9038
9039	// EBS configurations that will be attached to each EC2 instance in the instance
9040	// group.
9041	EbsConfiguration *EbsConfiguration `type:"structure"`
9042
9043	// Target number of instances for the instance group.
9044	//
9045	// InstanceCount is a required field
9046	InstanceCount *int64 `type:"integer" required:"true"`
9047
9048	// The role of the instance group in the cluster.
9049	//
9050	// InstanceRole is a required field
9051	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
9052
9053	// The EC2 instance type for all instances in the instance group.
9054	//
9055	// InstanceType is a required field
9056	InstanceType *string `min:"1" type:"string" required:"true"`
9057
9058	// Market type of the EC2 instances used to create a cluster node.
9059	Market *string `type:"string" enum:"MarketType"`
9060
9061	// Friendly name given to the instance group.
9062	Name *string `type:"string"`
9063}
9064
9065// String returns the string representation
9066func (s InstanceGroupConfig) String() string {
9067	return awsutil.Prettify(s)
9068}
9069
9070// GoString returns the string representation
9071func (s InstanceGroupConfig) GoString() string {
9072	return s.String()
9073}
9074
9075// Validate inspects the fields of the type to determine if they are valid.
9076func (s *InstanceGroupConfig) Validate() error {
9077	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupConfig"}
9078	if s.InstanceCount == nil {
9079		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
9080	}
9081	if s.InstanceRole == nil {
9082		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
9083	}
9084	if s.InstanceType == nil {
9085		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
9086	}
9087	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
9088		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
9089	}
9090	if s.AutoScalingPolicy != nil {
9091		if err := s.AutoScalingPolicy.Validate(); err != nil {
9092			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
9093		}
9094	}
9095	if s.EbsConfiguration != nil {
9096		if err := s.EbsConfiguration.Validate(); err != nil {
9097			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
9098		}
9099	}
9100
9101	if invalidParams.Len() > 0 {
9102		return invalidParams
9103	}
9104	return nil
9105}
9106
9107// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
9108func (s *InstanceGroupConfig) SetAutoScalingPolicy(v *AutoScalingPolicy) *InstanceGroupConfig {
9109	s.AutoScalingPolicy = v
9110	return s
9111}
9112
9113// SetBidPrice sets the BidPrice field's value.
9114func (s *InstanceGroupConfig) SetBidPrice(v string) *InstanceGroupConfig {
9115	s.BidPrice = &v
9116	return s
9117}
9118
9119// SetConfigurations sets the Configurations field's value.
9120func (s *InstanceGroupConfig) SetConfigurations(v []*Configuration) *InstanceGroupConfig {
9121	s.Configurations = v
9122	return s
9123}
9124
9125// SetEbsConfiguration sets the EbsConfiguration field's value.
9126func (s *InstanceGroupConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceGroupConfig {
9127	s.EbsConfiguration = v
9128	return s
9129}
9130
9131// SetInstanceCount sets the InstanceCount field's value.
9132func (s *InstanceGroupConfig) SetInstanceCount(v int64) *InstanceGroupConfig {
9133	s.InstanceCount = &v
9134	return s
9135}
9136
9137// SetInstanceRole sets the InstanceRole field's value.
9138func (s *InstanceGroupConfig) SetInstanceRole(v string) *InstanceGroupConfig {
9139	s.InstanceRole = &v
9140	return s
9141}
9142
9143// SetInstanceType sets the InstanceType field's value.
9144func (s *InstanceGroupConfig) SetInstanceType(v string) *InstanceGroupConfig {
9145	s.InstanceType = &v
9146	return s
9147}
9148
9149// SetMarket sets the Market field's value.
9150func (s *InstanceGroupConfig) SetMarket(v string) *InstanceGroupConfig {
9151	s.Market = &v
9152	return s
9153}
9154
9155// SetName sets the Name field's value.
9156func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig {
9157	s.Name = &v
9158	return s
9159}
9160
9161// Detailed information about an instance group.
9162type InstanceGroupDetail struct {
9163	_ struct{} `type:"structure"`
9164
9165	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
9166	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
9167	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
9168	BidPrice *string `type:"string"`
9169
9170	// The date/time the instance group was created.
9171	//
9172	// CreationDateTime is a required field
9173	CreationDateTime *time.Time `type:"timestamp" required:"true"`
9174
9175	// The date/time the instance group was terminated.
9176	EndDateTime *time.Time `type:"timestamp"`
9177
9178	// Unique identifier for the instance group.
9179	InstanceGroupId *string `type:"string"`
9180
9181	// Target number of instances to run in the instance group.
9182	//
9183	// InstanceRequestCount is a required field
9184	InstanceRequestCount *int64 `type:"integer" required:"true"`
9185
9186	// Instance group role in the cluster
9187	//
9188	// InstanceRole is a required field
9189	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
9190
9191	// Actual count of running instances.
9192	//
9193	// InstanceRunningCount is a required field
9194	InstanceRunningCount *int64 `type:"integer" required:"true"`
9195
9196	// EC2 instance type.
9197	//
9198	// InstanceType is a required field
9199	InstanceType *string `min:"1" type:"string" required:"true"`
9200
9201	// Details regarding the state of the instance group.
9202	LastStateChangeReason *string `type:"string"`
9203
9204	// Market type of the EC2 instances used to create a cluster node.
9205	//
9206	// Market is a required field
9207	Market *string `type:"string" required:"true" enum:"MarketType"`
9208
9209	// Friendly name for the instance group.
9210	Name *string `type:"string"`
9211
9212	// The date/time the instance group was available to the cluster.
9213	ReadyDateTime *time.Time `type:"timestamp"`
9214
9215	// The date/time the instance group was started.
9216	StartDateTime *time.Time `type:"timestamp"`
9217
9218	// State of instance group. The following values are deprecated: STARTING, TERMINATED,
9219	// and FAILED.
9220	//
9221	// State is a required field
9222	State *string `type:"string" required:"true" enum:"InstanceGroupState"`
9223}
9224
9225// String returns the string representation
9226func (s InstanceGroupDetail) String() string {
9227	return awsutil.Prettify(s)
9228}
9229
9230// GoString returns the string representation
9231func (s InstanceGroupDetail) GoString() string {
9232	return s.String()
9233}
9234
9235// SetBidPrice sets the BidPrice field's value.
9236func (s *InstanceGroupDetail) SetBidPrice(v string) *InstanceGroupDetail {
9237	s.BidPrice = &v
9238	return s
9239}
9240
9241// SetCreationDateTime sets the CreationDateTime field's value.
9242func (s *InstanceGroupDetail) SetCreationDateTime(v time.Time) *InstanceGroupDetail {
9243	s.CreationDateTime = &v
9244	return s
9245}
9246
9247// SetEndDateTime sets the EndDateTime field's value.
9248func (s *InstanceGroupDetail) SetEndDateTime(v time.Time) *InstanceGroupDetail {
9249	s.EndDateTime = &v
9250	return s
9251}
9252
9253// SetInstanceGroupId sets the InstanceGroupId field's value.
9254func (s *InstanceGroupDetail) SetInstanceGroupId(v string) *InstanceGroupDetail {
9255	s.InstanceGroupId = &v
9256	return s
9257}
9258
9259// SetInstanceRequestCount sets the InstanceRequestCount field's value.
9260func (s *InstanceGroupDetail) SetInstanceRequestCount(v int64) *InstanceGroupDetail {
9261	s.InstanceRequestCount = &v
9262	return s
9263}
9264
9265// SetInstanceRole sets the InstanceRole field's value.
9266func (s *InstanceGroupDetail) SetInstanceRole(v string) *InstanceGroupDetail {
9267	s.InstanceRole = &v
9268	return s
9269}
9270
9271// SetInstanceRunningCount sets the InstanceRunningCount field's value.
9272func (s *InstanceGroupDetail) SetInstanceRunningCount(v int64) *InstanceGroupDetail {
9273	s.InstanceRunningCount = &v
9274	return s
9275}
9276
9277// SetInstanceType sets the InstanceType field's value.
9278func (s *InstanceGroupDetail) SetInstanceType(v string) *InstanceGroupDetail {
9279	s.InstanceType = &v
9280	return s
9281}
9282
9283// SetLastStateChangeReason sets the LastStateChangeReason field's value.
9284func (s *InstanceGroupDetail) SetLastStateChangeReason(v string) *InstanceGroupDetail {
9285	s.LastStateChangeReason = &v
9286	return s
9287}
9288
9289// SetMarket sets the Market field's value.
9290func (s *InstanceGroupDetail) SetMarket(v string) *InstanceGroupDetail {
9291	s.Market = &v
9292	return s
9293}
9294
9295// SetName sets the Name field's value.
9296func (s *InstanceGroupDetail) SetName(v string) *InstanceGroupDetail {
9297	s.Name = &v
9298	return s
9299}
9300
9301// SetReadyDateTime sets the ReadyDateTime field's value.
9302func (s *InstanceGroupDetail) SetReadyDateTime(v time.Time) *InstanceGroupDetail {
9303	s.ReadyDateTime = &v
9304	return s
9305}
9306
9307// SetStartDateTime sets the StartDateTime field's value.
9308func (s *InstanceGroupDetail) SetStartDateTime(v time.Time) *InstanceGroupDetail {
9309	s.StartDateTime = &v
9310	return s
9311}
9312
9313// SetState sets the State field's value.
9314func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail {
9315	s.State = &v
9316	return s
9317}
9318
9319// Modify the size or configurations of an instance group.
9320type InstanceGroupModifyConfig struct {
9321	_ struct{} `type:"structure"`
9322
9323	// A list of new or modified configurations to apply for an instance group.
9324	Configurations []*Configuration `type:"list"`
9325
9326	// The EC2 InstanceIds to terminate. After you terminate the instances, the
9327	// instance group will not return to its original requested size.
9328	EC2InstanceIdsToTerminate []*string `type:"list"`
9329
9330	// Target size for the instance group.
9331	InstanceCount *int64 `type:"integer"`
9332
9333	// Unique ID of the instance group to modify.
9334	//
9335	// InstanceGroupId is a required field
9336	InstanceGroupId *string `type:"string" required:"true"`
9337
9338	// Policy for customizing shrink operations.
9339	ShrinkPolicy *ShrinkPolicy `type:"structure"`
9340}
9341
9342// String returns the string representation
9343func (s InstanceGroupModifyConfig) String() string {
9344	return awsutil.Prettify(s)
9345}
9346
9347// GoString returns the string representation
9348func (s InstanceGroupModifyConfig) GoString() string {
9349	return s.String()
9350}
9351
9352// Validate inspects the fields of the type to determine if they are valid.
9353func (s *InstanceGroupModifyConfig) Validate() error {
9354	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupModifyConfig"}
9355	if s.InstanceGroupId == nil {
9356		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
9357	}
9358
9359	if invalidParams.Len() > 0 {
9360		return invalidParams
9361	}
9362	return nil
9363}
9364
9365// SetConfigurations sets the Configurations field's value.
9366func (s *InstanceGroupModifyConfig) SetConfigurations(v []*Configuration) *InstanceGroupModifyConfig {
9367	s.Configurations = v
9368	return s
9369}
9370
9371// SetEC2InstanceIdsToTerminate sets the EC2InstanceIdsToTerminate field's value.
9372func (s *InstanceGroupModifyConfig) SetEC2InstanceIdsToTerminate(v []*string) *InstanceGroupModifyConfig {
9373	s.EC2InstanceIdsToTerminate = v
9374	return s
9375}
9376
9377// SetInstanceCount sets the InstanceCount field's value.
9378func (s *InstanceGroupModifyConfig) SetInstanceCount(v int64) *InstanceGroupModifyConfig {
9379	s.InstanceCount = &v
9380	return s
9381}
9382
9383// SetInstanceGroupId sets the InstanceGroupId field's value.
9384func (s *InstanceGroupModifyConfig) SetInstanceGroupId(v string) *InstanceGroupModifyConfig {
9385	s.InstanceGroupId = &v
9386	return s
9387}
9388
9389// SetShrinkPolicy sets the ShrinkPolicy field's value.
9390func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroupModifyConfig {
9391	s.ShrinkPolicy = v
9392	return s
9393}
9394
9395// The status change reason details for the instance group.
9396type InstanceGroupStateChangeReason struct {
9397	_ struct{} `type:"structure"`
9398
9399	// The programmable code for the state change reason.
9400	Code *string `type:"string" enum:"InstanceGroupStateChangeReasonCode"`
9401
9402	// The status change reason description.
9403	Message *string `type:"string"`
9404}
9405
9406// String returns the string representation
9407func (s InstanceGroupStateChangeReason) String() string {
9408	return awsutil.Prettify(s)
9409}
9410
9411// GoString returns the string representation
9412func (s InstanceGroupStateChangeReason) GoString() string {
9413	return s.String()
9414}
9415
9416// SetCode sets the Code field's value.
9417func (s *InstanceGroupStateChangeReason) SetCode(v string) *InstanceGroupStateChangeReason {
9418	s.Code = &v
9419	return s
9420}
9421
9422// SetMessage sets the Message field's value.
9423func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStateChangeReason {
9424	s.Message = &v
9425	return s
9426}
9427
9428// The details of the instance group status.
9429type InstanceGroupStatus struct {
9430	_ struct{} `type:"structure"`
9431
9432	// The current state of the instance group.
9433	State *string `type:"string" enum:"InstanceGroupState"`
9434
9435	// The status change reason details for the instance group.
9436	StateChangeReason *InstanceGroupStateChangeReason `type:"structure"`
9437
9438	// The timeline of the instance group status over time.
9439	Timeline *InstanceGroupTimeline `type:"structure"`
9440}
9441
9442// String returns the string representation
9443func (s InstanceGroupStatus) String() string {
9444	return awsutil.Prettify(s)
9445}
9446
9447// GoString returns the string representation
9448func (s InstanceGroupStatus) GoString() string {
9449	return s.String()
9450}
9451
9452// SetState sets the State field's value.
9453func (s *InstanceGroupStatus) SetState(v string) *InstanceGroupStatus {
9454	s.State = &v
9455	return s
9456}
9457
9458// SetStateChangeReason sets the StateChangeReason field's value.
9459func (s *InstanceGroupStatus) SetStateChangeReason(v *InstanceGroupStateChangeReason) *InstanceGroupStatus {
9460	s.StateChangeReason = v
9461	return s
9462}
9463
9464// SetTimeline sets the Timeline field's value.
9465func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGroupStatus {
9466	s.Timeline = v
9467	return s
9468}
9469
9470// The timeline of the instance group lifecycle.
9471type InstanceGroupTimeline struct {
9472	_ struct{} `type:"structure"`
9473
9474	// The creation date and time of the instance group.
9475	CreationDateTime *time.Time `type:"timestamp"`
9476
9477	// The date and time when the instance group terminated.
9478	EndDateTime *time.Time `type:"timestamp"`
9479
9480	// The date and time when the instance group became ready to perform tasks.
9481	ReadyDateTime *time.Time `type:"timestamp"`
9482}
9483
9484// String returns the string representation
9485func (s InstanceGroupTimeline) String() string {
9486	return awsutil.Prettify(s)
9487}
9488
9489// GoString returns the string representation
9490func (s InstanceGroupTimeline) GoString() string {
9491	return s.String()
9492}
9493
9494// SetCreationDateTime sets the CreationDateTime field's value.
9495func (s *InstanceGroupTimeline) SetCreationDateTime(v time.Time) *InstanceGroupTimeline {
9496	s.CreationDateTime = &v
9497	return s
9498}
9499
9500// SetEndDateTime sets the EndDateTime field's value.
9501func (s *InstanceGroupTimeline) SetEndDateTime(v time.Time) *InstanceGroupTimeline {
9502	s.EndDateTime = &v
9503	return s
9504}
9505
9506// SetReadyDateTime sets the ReadyDateTime field's value.
9507func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTimeline {
9508	s.ReadyDateTime = &v
9509	return s
9510}
9511
9512// Custom policy for requesting termination protection or termination of specific
9513// instances when shrinking an instance group.
9514type InstanceResizePolicy struct {
9515	_ struct{} `type:"structure"`
9516
9517	// Decommissioning timeout override for the specific list of instances to be
9518	// terminated.
9519	InstanceTerminationTimeout *int64 `type:"integer"`
9520
9521	// Specific list of instances to be protected when shrinking an instance group.
9522	InstancesToProtect []*string `type:"list"`
9523
9524	// Specific list of instances to be terminated when shrinking an instance group.
9525	InstancesToTerminate []*string `type:"list"`
9526}
9527
9528// String returns the string representation
9529func (s InstanceResizePolicy) String() string {
9530	return awsutil.Prettify(s)
9531}
9532
9533// GoString returns the string representation
9534func (s InstanceResizePolicy) GoString() string {
9535	return s.String()
9536}
9537
9538// SetInstanceTerminationTimeout sets the InstanceTerminationTimeout field's value.
9539func (s *InstanceResizePolicy) SetInstanceTerminationTimeout(v int64) *InstanceResizePolicy {
9540	s.InstanceTerminationTimeout = &v
9541	return s
9542}
9543
9544// SetInstancesToProtect sets the InstancesToProtect field's value.
9545func (s *InstanceResizePolicy) SetInstancesToProtect(v []*string) *InstanceResizePolicy {
9546	s.InstancesToProtect = v
9547	return s
9548}
9549
9550// SetInstancesToTerminate sets the InstancesToTerminate field's value.
9551func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceResizePolicy {
9552	s.InstancesToTerminate = v
9553	return s
9554}
9555
9556// The details of the status change reason for the instance.
9557type InstanceStateChangeReason struct {
9558	_ struct{} `type:"structure"`
9559
9560	// The programmable code for the state change reason.
9561	Code *string `type:"string" enum:"InstanceStateChangeReasonCode"`
9562
9563	// The status change reason description.
9564	Message *string `type:"string"`
9565}
9566
9567// String returns the string representation
9568func (s InstanceStateChangeReason) String() string {
9569	return awsutil.Prettify(s)
9570}
9571
9572// GoString returns the string representation
9573func (s InstanceStateChangeReason) GoString() string {
9574	return s.String()
9575}
9576
9577// SetCode sets the Code field's value.
9578func (s *InstanceStateChangeReason) SetCode(v string) *InstanceStateChangeReason {
9579	s.Code = &v
9580	return s
9581}
9582
9583// SetMessage sets the Message field's value.
9584func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeReason {
9585	s.Message = &v
9586	return s
9587}
9588
9589// The instance status details.
9590type InstanceStatus struct {
9591	_ struct{} `type:"structure"`
9592
9593	// The current state of the instance.
9594	State *string `type:"string" enum:"InstanceState"`
9595
9596	// The details of the status change reason for the instance.
9597	StateChangeReason *InstanceStateChangeReason `type:"structure"`
9598
9599	// The timeline of the instance status over time.
9600	Timeline *InstanceTimeline `type:"structure"`
9601}
9602
9603// String returns the string representation
9604func (s InstanceStatus) String() string {
9605	return awsutil.Prettify(s)
9606}
9607
9608// GoString returns the string representation
9609func (s InstanceStatus) GoString() string {
9610	return s.String()
9611}
9612
9613// SetState sets the State field's value.
9614func (s *InstanceStatus) SetState(v string) *InstanceStatus {
9615	s.State = &v
9616	return s
9617}
9618
9619// SetStateChangeReason sets the StateChangeReason field's value.
9620func (s *InstanceStatus) SetStateChangeReason(v *InstanceStateChangeReason) *InstanceStatus {
9621	s.StateChangeReason = v
9622	return s
9623}
9624
9625// SetTimeline sets the Timeline field's value.
9626func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus {
9627	s.Timeline = v
9628	return s
9629}
9630
9631// The timeline of the instance lifecycle.
9632type InstanceTimeline struct {
9633	_ struct{} `type:"structure"`
9634
9635	// The creation date and time of the instance.
9636	CreationDateTime *time.Time `type:"timestamp"`
9637
9638	// The date and time when the instance was terminated.
9639	EndDateTime *time.Time `type:"timestamp"`
9640
9641	// The date and time when the instance was ready to perform tasks.
9642	ReadyDateTime *time.Time `type:"timestamp"`
9643}
9644
9645// String returns the string representation
9646func (s InstanceTimeline) String() string {
9647	return awsutil.Prettify(s)
9648}
9649
9650// GoString returns the string representation
9651func (s InstanceTimeline) GoString() string {
9652	return s.String()
9653}
9654
9655// SetCreationDateTime sets the CreationDateTime field's value.
9656func (s *InstanceTimeline) SetCreationDateTime(v time.Time) *InstanceTimeline {
9657	s.CreationDateTime = &v
9658	return s
9659}
9660
9661// SetEndDateTime sets the EndDateTime field's value.
9662func (s *InstanceTimeline) SetEndDateTime(v time.Time) *InstanceTimeline {
9663	s.EndDateTime = &v
9664	return s
9665}
9666
9667// SetReadyDateTime sets the ReadyDateTime field's value.
9668func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline {
9669	s.ReadyDateTime = &v
9670	return s
9671}
9672
9673// An instance type configuration for each instance type in an instance fleet,
9674// which determines the EC2 instances Amazon EMR attempts to provision to fulfill
9675// On-Demand and Spot target capacities. There can be a maximum of five instance
9676// type configurations in a fleet.
9677//
9678// The instance fleet configuration is available only in Amazon EMR versions
9679// 4.8.0 and later, excluding 5.0.x versions.
9680type InstanceTypeConfig struct {
9681	_ struct{} `type:"structure"`
9682
9683	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
9684	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
9685	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
9686	BidPrice *string `type:"string"`
9687
9688	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
9689	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
9690	// 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided,
9691	// BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
9692	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
9693
9694	// A configuration classification that applies when provisioning cluster instances,
9695	// which can include configurations for applications and software that run on
9696	// the cluster.
9697	Configurations []*Configuration `type:"list"`
9698
9699	// The configuration of Amazon Elastic Block Storage (Amazon EBS) attached to
9700	// each instance as defined by InstanceType.
9701	EbsConfiguration *EbsConfiguration `type:"structure"`
9702
9703	// An EC2 instance type, such as m3.xlarge.
9704	//
9705	// InstanceType is a required field
9706	InstanceType *string `min:"1" type:"string" required:"true"`
9707
9708	// The number of units that a provisioned instance of this type provides toward
9709	// fulfilling the target capacities defined in InstanceFleetConfig. This value
9710	// is 1 for a master instance fleet, and must be 1 or greater for core and task
9711	// instance fleets. Defaults to 1 if not specified.
9712	WeightedCapacity *int64 `type:"integer"`
9713}
9714
9715// String returns the string representation
9716func (s InstanceTypeConfig) String() string {
9717	return awsutil.Prettify(s)
9718}
9719
9720// GoString returns the string representation
9721func (s InstanceTypeConfig) GoString() string {
9722	return s.String()
9723}
9724
9725// Validate inspects the fields of the type to determine if they are valid.
9726func (s *InstanceTypeConfig) Validate() error {
9727	invalidParams := request.ErrInvalidParams{Context: "InstanceTypeConfig"}
9728	if s.InstanceType == nil {
9729		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
9730	}
9731	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
9732		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
9733	}
9734	if s.EbsConfiguration != nil {
9735		if err := s.EbsConfiguration.Validate(); err != nil {
9736			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
9737		}
9738	}
9739
9740	if invalidParams.Len() > 0 {
9741		return invalidParams
9742	}
9743	return nil
9744}
9745
9746// SetBidPrice sets the BidPrice field's value.
9747func (s *InstanceTypeConfig) SetBidPrice(v string) *InstanceTypeConfig {
9748	s.BidPrice = &v
9749	return s
9750}
9751
9752// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
9753func (s *InstanceTypeConfig) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeConfig {
9754	s.BidPriceAsPercentageOfOnDemandPrice = &v
9755	return s
9756}
9757
9758// SetConfigurations sets the Configurations field's value.
9759func (s *InstanceTypeConfig) SetConfigurations(v []*Configuration) *InstanceTypeConfig {
9760	s.Configurations = v
9761	return s
9762}
9763
9764// SetEbsConfiguration sets the EbsConfiguration field's value.
9765func (s *InstanceTypeConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceTypeConfig {
9766	s.EbsConfiguration = v
9767	return s
9768}
9769
9770// SetInstanceType sets the InstanceType field's value.
9771func (s *InstanceTypeConfig) SetInstanceType(v string) *InstanceTypeConfig {
9772	s.InstanceType = &v
9773	return s
9774}
9775
9776// SetWeightedCapacity sets the WeightedCapacity field's value.
9777func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig {
9778	s.WeightedCapacity = &v
9779	return s
9780}
9781
9782// The configuration specification for each instance type in an instance fleet.
9783//
9784// The instance fleet configuration is available only in Amazon EMR versions
9785// 4.8.0 and later, excluding 5.0.x versions.
9786type InstanceTypeSpecification struct {
9787	_ struct{} `type:"structure"`
9788
9789	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
9790	// Expressed in USD.
9791	BidPrice *string `type:"string"`
9792
9793	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
9794	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
9795	// 20%).
9796	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
9797
9798	// A configuration classification that applies when provisioning cluster instances,
9799	// which can include configurations for applications and software bundled with
9800	// Amazon EMR.
9801	Configurations []*Configuration `type:"list"`
9802
9803	// The configuration of Amazon Elastic Block Storage (Amazon EBS) attached to
9804	// each instance as defined by InstanceType.
9805	EbsBlockDevices []*EbsBlockDevice `type:"list"`
9806
9807	// Evaluates to TRUE when the specified InstanceType is EBS-optimized.
9808	EbsOptimized *bool `type:"boolean"`
9809
9810	// The EC2 instance type, for example m3.xlarge.
9811	InstanceType *string `min:"1" type:"string"`
9812
9813	// The number of units that a provisioned instance of this type provides toward
9814	// fulfilling the target capacities defined in InstanceFleetConfig. Capacity
9815	// values represent performance characteristics such as vCPUs, memory, or I/O.
9816	// If not specified, the default value is 1.
9817	WeightedCapacity *int64 `type:"integer"`
9818}
9819
9820// String returns the string representation
9821func (s InstanceTypeSpecification) String() string {
9822	return awsutil.Prettify(s)
9823}
9824
9825// GoString returns the string representation
9826func (s InstanceTypeSpecification) GoString() string {
9827	return s.String()
9828}
9829
9830// SetBidPrice sets the BidPrice field's value.
9831func (s *InstanceTypeSpecification) SetBidPrice(v string) *InstanceTypeSpecification {
9832	s.BidPrice = &v
9833	return s
9834}
9835
9836// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
9837func (s *InstanceTypeSpecification) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeSpecification {
9838	s.BidPriceAsPercentageOfOnDemandPrice = &v
9839	return s
9840}
9841
9842// SetConfigurations sets the Configurations field's value.
9843func (s *InstanceTypeSpecification) SetConfigurations(v []*Configuration) *InstanceTypeSpecification {
9844	s.Configurations = v
9845	return s
9846}
9847
9848// SetEbsBlockDevices sets the EbsBlockDevices field's value.
9849func (s *InstanceTypeSpecification) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceTypeSpecification {
9850	s.EbsBlockDevices = v
9851	return s
9852}
9853
9854// SetEbsOptimized sets the EbsOptimized field's value.
9855func (s *InstanceTypeSpecification) SetEbsOptimized(v bool) *InstanceTypeSpecification {
9856	s.EbsOptimized = &v
9857	return s
9858}
9859
9860// SetInstanceType sets the InstanceType field's value.
9861func (s *InstanceTypeSpecification) SetInstanceType(v string) *InstanceTypeSpecification {
9862	s.InstanceType = &v
9863	return s
9864}
9865
9866// SetWeightedCapacity sets the WeightedCapacity field's value.
9867func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSpecification {
9868	s.WeightedCapacity = &v
9869	return s
9870}
9871
9872// Indicates that an error occurred while processing the request and that the
9873// request was not completed.
9874type InternalServerError struct {
9875	_            struct{}                  `type:"structure"`
9876	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9877
9878	Message_ *string `locationName:"message" type:"string"`
9879}
9880
9881// String returns the string representation
9882func (s InternalServerError) String() string {
9883	return awsutil.Prettify(s)
9884}
9885
9886// GoString returns the string representation
9887func (s InternalServerError) GoString() string {
9888	return s.String()
9889}
9890
9891func newErrorInternalServerError(v protocol.ResponseMetadata) error {
9892	return &InternalServerError{
9893		RespMetadata: v,
9894	}
9895}
9896
9897// Code returns the exception type name.
9898func (s *InternalServerError) Code() string {
9899	return "InternalServerError"
9900}
9901
9902// Message returns the exception's message.
9903func (s *InternalServerError) Message() string {
9904	if s.Message_ != nil {
9905		return *s.Message_
9906	}
9907	return ""
9908}
9909
9910// OrigErr always returns nil, satisfies awserr.Error interface.
9911func (s *InternalServerError) OrigErr() error {
9912	return nil
9913}
9914
9915func (s *InternalServerError) Error() string {
9916	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9917}
9918
9919// Status code returns the HTTP status code for the request's response error.
9920func (s *InternalServerError) StatusCode() int {
9921	return s.RespMetadata.StatusCode
9922}
9923
9924// RequestID returns the service's response RequestID for request.
9925func (s *InternalServerError) RequestID() string {
9926	return s.RespMetadata.RequestID
9927}
9928
9929// This exception occurs when there is an internal failure in the EMR service.
9930type InternalServerException struct {
9931	_            struct{}                  `type:"structure"`
9932	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9933
9934	// The message associated with the exception.
9935	Message_ *string `locationName:"Message" type:"string"`
9936}
9937
9938// String returns the string representation
9939func (s InternalServerException) String() string {
9940	return awsutil.Prettify(s)
9941}
9942
9943// GoString returns the string representation
9944func (s InternalServerException) GoString() string {
9945	return s.String()
9946}
9947
9948func newErrorInternalServerException(v protocol.ResponseMetadata) error {
9949	return &InternalServerException{
9950		RespMetadata: v,
9951	}
9952}
9953
9954// Code returns the exception type name.
9955func (s *InternalServerException) Code() string {
9956	return "InternalServerException"
9957}
9958
9959// Message returns the exception's message.
9960func (s *InternalServerException) Message() string {
9961	if s.Message_ != nil {
9962		return *s.Message_
9963	}
9964	return ""
9965}
9966
9967// OrigErr always returns nil, satisfies awserr.Error interface.
9968func (s *InternalServerException) OrigErr() error {
9969	return nil
9970}
9971
9972func (s *InternalServerException) Error() string {
9973	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9974}
9975
9976// Status code returns the HTTP status code for the request's response error.
9977func (s *InternalServerException) StatusCode() int {
9978	return s.RespMetadata.StatusCode
9979}
9980
9981// RequestID returns the service's response RequestID for request.
9982func (s *InternalServerException) RequestID() string {
9983	return s.RespMetadata.RequestID
9984}
9985
9986// This exception occurs when there is something wrong with user input.
9987type InvalidRequestException struct {
9988	_            struct{}                  `type:"structure"`
9989	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9990
9991	// The error code associated with the exception.
9992	ErrorCode *string `min:"1" type:"string"`
9993
9994	// The message associated with the exception.
9995	Message_ *string `locationName:"Message" type:"string"`
9996}
9997
9998// String returns the string representation
9999func (s InvalidRequestException) String() string {
10000	return awsutil.Prettify(s)
10001}
10002
10003// GoString returns the string representation
10004func (s InvalidRequestException) GoString() string {
10005	return s.String()
10006}
10007
10008func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
10009	return &InvalidRequestException{
10010		RespMetadata: v,
10011	}
10012}
10013
10014// Code returns the exception type name.
10015func (s *InvalidRequestException) Code() string {
10016	return "InvalidRequestException"
10017}
10018
10019// Message returns the exception's message.
10020func (s *InvalidRequestException) Message() string {
10021	if s.Message_ != nil {
10022		return *s.Message_
10023	}
10024	return ""
10025}
10026
10027// OrigErr always returns nil, satisfies awserr.Error interface.
10028func (s *InvalidRequestException) OrigErr() error {
10029	return nil
10030}
10031
10032func (s *InvalidRequestException) Error() string {
10033	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10034}
10035
10036// Status code returns the HTTP status code for the request's response error.
10037func (s *InvalidRequestException) StatusCode() int {
10038	return s.RespMetadata.StatusCode
10039}
10040
10041// RequestID returns the service's response RequestID for request.
10042func (s *InvalidRequestException) RequestID() string {
10043	return s.RespMetadata.RequestID
10044}
10045
10046// A description of a cluster (job flow).
10047type JobFlowDetail struct {
10048	_ struct{} `type:"structure"`
10049
10050	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
10051	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
10052	AmiVersion *string `type:"string"`
10053
10054	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
10055	// The IAM role provides a way for the automatic scaling feature to get the
10056	// required permissions it needs to launch and terminate EC2 instances in an
10057	// instance group.
10058	AutoScalingRole *string `type:"string"`
10059
10060	// A list of the bootstrap actions run by the job flow.
10061	BootstrapActions []*BootstrapActionDetail `type:"list"`
10062
10063	// Describes the execution status of the job flow.
10064	//
10065	// ExecutionStatusDetail is a required field
10066	ExecutionStatusDetail *JobFlowExecutionStatusDetail `type:"structure" required:"true"`
10067
10068	// Describes the Amazon EC2 instances of the job flow.
10069	//
10070	// Instances is a required field
10071	Instances *JobFlowInstancesDetail `type:"structure" required:"true"`
10072
10073	// The job flow identifier.
10074	//
10075	// JobFlowId is a required field
10076	JobFlowId *string `type:"string" required:"true"`
10077
10078	// The IAM role that was specified when the job flow was launched. The EC2 instances
10079	// of the job flow assume this role.
10080	JobFlowRole *string `type:"string"`
10081
10082	// The AWS KMS customer master key (CMK) used for encrypting log files. This
10083	// attribute is only available with EMR version 5.30.0 and later, excluding
10084	// EMR 6.0.0.
10085	LogEncryptionKmsKeyId *string `type:"string"`
10086
10087	// The location in Amazon S3 where log files for the job are stored.
10088	LogUri *string `type:"string"`
10089
10090	// The name of the job flow.
10091	//
10092	// Name is a required field
10093	Name *string `type:"string" required:"true"`
10094
10095	// The way that individual Amazon EC2 instances terminate when an automatic
10096	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
10097	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
10098	// regardless of when the request to terminate the instance was submitted. This
10099	// option is only available with Amazon EMR 5.1.0 and later and is the default
10100	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
10101	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
10102	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
10103	// With either behavior, Amazon EMR removes the least active nodes first and
10104	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
10105	// available only in Amazon EMR version 4.1.0 and later, and is the default
10106	// for versions of Amazon EMR earlier than 5.1.0.
10107	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
10108
10109	// The IAM role that is assumed by the Amazon EMR service to access AWS resources
10110	// on your behalf.
10111	ServiceRole *string `type:"string"`
10112
10113	// A list of steps run by the job flow.
10114	Steps []*StepDetail `type:"list"`
10115
10116	// A list of strings set by third-party software when the job flow is launched.
10117	// If you are not using third-party software to manage the job flow, this value
10118	// is empty.
10119	SupportedProducts []*string `type:"list"`
10120
10121	// Indicates whether the cluster is visible to all IAM users of the AWS account
10122	// associated with the cluster. The default value, true, indicates that all
10123	// IAM users in the AWS account can perform cluster actions if they have the
10124	// proper IAM policy permissions. If this value is false, only the IAM user
10125	// that created the cluster can perform actions. This value can be changed on
10126	// a running cluster by using the SetVisibleToAllUsers action. You can override
10127	// the default value of true when you create a cluster by using the VisibleToAllUsers
10128	// parameter of the RunJobFlow action.
10129	VisibleToAllUsers *bool `type:"boolean"`
10130}
10131
10132// String returns the string representation
10133func (s JobFlowDetail) String() string {
10134	return awsutil.Prettify(s)
10135}
10136
10137// GoString returns the string representation
10138func (s JobFlowDetail) GoString() string {
10139	return s.String()
10140}
10141
10142// SetAmiVersion sets the AmiVersion field's value.
10143func (s *JobFlowDetail) SetAmiVersion(v string) *JobFlowDetail {
10144	s.AmiVersion = &v
10145	return s
10146}
10147
10148// SetAutoScalingRole sets the AutoScalingRole field's value.
10149func (s *JobFlowDetail) SetAutoScalingRole(v string) *JobFlowDetail {
10150	s.AutoScalingRole = &v
10151	return s
10152}
10153
10154// SetBootstrapActions sets the BootstrapActions field's value.
10155func (s *JobFlowDetail) SetBootstrapActions(v []*BootstrapActionDetail) *JobFlowDetail {
10156	s.BootstrapActions = v
10157	return s
10158}
10159
10160// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
10161func (s *JobFlowDetail) SetExecutionStatusDetail(v *JobFlowExecutionStatusDetail) *JobFlowDetail {
10162	s.ExecutionStatusDetail = v
10163	return s
10164}
10165
10166// SetInstances sets the Instances field's value.
10167func (s *JobFlowDetail) SetInstances(v *JobFlowInstancesDetail) *JobFlowDetail {
10168	s.Instances = v
10169	return s
10170}
10171
10172// SetJobFlowId sets the JobFlowId field's value.
10173func (s *JobFlowDetail) SetJobFlowId(v string) *JobFlowDetail {
10174	s.JobFlowId = &v
10175	return s
10176}
10177
10178// SetJobFlowRole sets the JobFlowRole field's value.
10179func (s *JobFlowDetail) SetJobFlowRole(v string) *JobFlowDetail {
10180	s.JobFlowRole = &v
10181	return s
10182}
10183
10184// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
10185func (s *JobFlowDetail) SetLogEncryptionKmsKeyId(v string) *JobFlowDetail {
10186	s.LogEncryptionKmsKeyId = &v
10187	return s
10188}
10189
10190// SetLogUri sets the LogUri field's value.
10191func (s *JobFlowDetail) SetLogUri(v string) *JobFlowDetail {
10192	s.LogUri = &v
10193	return s
10194}
10195
10196// SetName sets the Name field's value.
10197func (s *JobFlowDetail) SetName(v string) *JobFlowDetail {
10198	s.Name = &v
10199	return s
10200}
10201
10202// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
10203func (s *JobFlowDetail) SetScaleDownBehavior(v string) *JobFlowDetail {
10204	s.ScaleDownBehavior = &v
10205	return s
10206}
10207
10208// SetServiceRole sets the ServiceRole field's value.
10209func (s *JobFlowDetail) SetServiceRole(v string) *JobFlowDetail {
10210	s.ServiceRole = &v
10211	return s
10212}
10213
10214// SetSteps sets the Steps field's value.
10215func (s *JobFlowDetail) SetSteps(v []*StepDetail) *JobFlowDetail {
10216	s.Steps = v
10217	return s
10218}
10219
10220// SetSupportedProducts sets the SupportedProducts field's value.
10221func (s *JobFlowDetail) SetSupportedProducts(v []*string) *JobFlowDetail {
10222	s.SupportedProducts = v
10223	return s
10224}
10225
10226// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
10227func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail {
10228	s.VisibleToAllUsers = &v
10229	return s
10230}
10231
10232// Describes the status of the cluster (job flow).
10233type JobFlowExecutionStatusDetail struct {
10234	_ struct{} `type:"structure"`
10235
10236	// The creation date and time of the job flow.
10237	//
10238	// CreationDateTime is a required field
10239	CreationDateTime *time.Time `type:"timestamp" required:"true"`
10240
10241	// The completion date and time of the job flow.
10242	EndDateTime *time.Time `type:"timestamp"`
10243
10244	// Description of the job flow last changed state.
10245	LastStateChangeReason *string `type:"string"`
10246
10247	// The date and time when the job flow was ready to start running bootstrap
10248	// actions.
10249	ReadyDateTime *time.Time `type:"timestamp"`
10250
10251	// The start date and time of the job flow.
10252	StartDateTime *time.Time `type:"timestamp"`
10253
10254	// The state of the job flow.
10255	//
10256	// State is a required field
10257	State *string `type:"string" required:"true" enum:"JobFlowExecutionState"`
10258}
10259
10260// String returns the string representation
10261func (s JobFlowExecutionStatusDetail) String() string {
10262	return awsutil.Prettify(s)
10263}
10264
10265// GoString returns the string representation
10266func (s JobFlowExecutionStatusDetail) GoString() string {
10267	return s.String()
10268}
10269
10270// SetCreationDateTime sets the CreationDateTime field's value.
10271func (s *JobFlowExecutionStatusDetail) SetCreationDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10272	s.CreationDateTime = &v
10273	return s
10274}
10275
10276// SetEndDateTime sets the EndDateTime field's value.
10277func (s *JobFlowExecutionStatusDetail) SetEndDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10278	s.EndDateTime = &v
10279	return s
10280}
10281
10282// SetLastStateChangeReason sets the LastStateChangeReason field's value.
10283func (s *JobFlowExecutionStatusDetail) SetLastStateChangeReason(v string) *JobFlowExecutionStatusDetail {
10284	s.LastStateChangeReason = &v
10285	return s
10286}
10287
10288// SetReadyDateTime sets the ReadyDateTime field's value.
10289func (s *JobFlowExecutionStatusDetail) SetReadyDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10290	s.ReadyDateTime = &v
10291	return s
10292}
10293
10294// SetStartDateTime sets the StartDateTime field's value.
10295func (s *JobFlowExecutionStatusDetail) SetStartDateTime(v time.Time) *JobFlowExecutionStatusDetail {
10296	s.StartDateTime = &v
10297	return s
10298}
10299
10300// SetState sets the State field's value.
10301func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatusDetail {
10302	s.State = &v
10303	return s
10304}
10305
10306// A description of the Amazon EC2 instance on which the cluster (job flow)
10307// runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or
10308// InstanceFleets. They cannot be used together. You may also have MasterInstanceType,
10309// SlaveInstanceType, and InstanceCount (all three must be present), but we
10310// don't recommend this configuration.
10311type JobFlowInstancesConfig struct {
10312	_ struct{} `type:"structure"`
10313
10314	// A list of additional Amazon EC2 security group IDs for the master node.
10315	AdditionalMasterSecurityGroups []*string `type:"list"`
10316
10317	// A list of additional Amazon EC2 security group IDs for the core and task
10318	// nodes.
10319	AdditionalSlaveSecurityGroups []*string `type:"list"`
10320
10321	// The name of the EC2 key pair that can be used to connect to the master node
10322	// using SSH as the user called "hadoop."
10323	Ec2KeyName *string `type:"string"`
10324
10325	// Applies to clusters that use the uniform instance group configuration. To
10326	// launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this
10327	// parameter to the identifier of the Amazon VPC subnet where you want the cluster
10328	// to launch. If you do not specify this value and your account supports EC2-Classic,
10329	// the cluster launches in EC2-Classic.
10330	Ec2SubnetId *string `type:"string"`
10331
10332	// Applies to clusters that use the instance fleet configuration. When multiple
10333	// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances
10334	// in the optimal subnet.
10335	//
10336	// The instance fleet configuration is available only in Amazon EMR versions
10337	// 4.8.0 and later, excluding 5.0.x versions.
10338	Ec2SubnetIds []*string `type:"list"`
10339
10340	// The identifier of the Amazon EC2 security group for the master node.
10341	EmrManagedMasterSecurityGroup *string `type:"string"`
10342
10343	// The identifier of the Amazon EC2 security group for the core and task nodes.
10344	EmrManagedSlaveSecurityGroup *string `type:"string"`
10345
10346	// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop
10347	// version for the cluster. Valid inputs are "0.18" (no longer maintained),
10348	// "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3",
10349	// "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is
10350	// used, unless the AmiVersion parameter is set in the RunJobFlow call, in which
10351	// case the default version of Hadoop for that AMI version is used.
10352	HadoopVersion *string `type:"string"`
10353
10354	// The number of EC2 instances in the cluster.
10355	InstanceCount *int64 `type:"integer"`
10356
10357	//
10358	// The instance fleet configuration is available only in Amazon EMR versions
10359	// 4.8.0 and later, excluding 5.0.x versions.
10360	//
10361	// Describes the EC2 instances and instance configurations for clusters that
10362	// use the instance fleet configuration.
10363	InstanceFleets []*InstanceFleetConfig `type:"list"`
10364
10365	// Configuration for the instance groups in a cluster.
10366	InstanceGroups []*InstanceGroupConfig `type:"list"`
10367
10368	// Specifies whether the cluster should remain available after completing all
10369	// steps.
10370	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
10371
10372	// The EC2 instance type of the master node.
10373	MasterInstanceType *string `min:"1" type:"string"`
10374
10375	// The Availability Zone in which the cluster runs.
10376	Placement *PlacementType `type:"structure"`
10377
10378	// The identifier of the Amazon EC2 security group for the Amazon EMR service
10379	// to access clusters in VPC private subnets.
10380	ServiceAccessSecurityGroup *string `type:"string"`
10381
10382	// The EC2 instance type of the core and task nodes.
10383	SlaveInstanceType *string `min:"1" type:"string"`
10384
10385	// Specifies whether to lock the cluster to prevent the Amazon EC2 instances
10386	// from being terminated by API call, user intervention, or in the event of
10387	// a job-flow error.
10388	TerminationProtected *bool `type:"boolean"`
10389}
10390
10391// String returns the string representation
10392func (s JobFlowInstancesConfig) String() string {
10393	return awsutil.Prettify(s)
10394}
10395
10396// GoString returns the string representation
10397func (s JobFlowInstancesConfig) GoString() string {
10398	return s.String()
10399}
10400
10401// Validate inspects the fields of the type to determine if they are valid.
10402func (s *JobFlowInstancesConfig) Validate() error {
10403	invalidParams := request.ErrInvalidParams{Context: "JobFlowInstancesConfig"}
10404	if s.MasterInstanceType != nil && len(*s.MasterInstanceType) < 1 {
10405		invalidParams.Add(request.NewErrParamMinLen("MasterInstanceType", 1))
10406	}
10407	if s.SlaveInstanceType != nil && len(*s.SlaveInstanceType) < 1 {
10408		invalidParams.Add(request.NewErrParamMinLen("SlaveInstanceType", 1))
10409	}
10410	if s.InstanceFleets != nil {
10411		for i, v := range s.InstanceFleets {
10412			if v == nil {
10413				continue
10414			}
10415			if err := v.Validate(); err != nil {
10416				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceFleets", i), err.(request.ErrInvalidParams))
10417			}
10418		}
10419	}
10420	if s.InstanceGroups != nil {
10421		for i, v := range s.InstanceGroups {
10422			if v == nil {
10423				continue
10424			}
10425			if err := v.Validate(); err != nil {
10426				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
10427			}
10428		}
10429	}
10430
10431	if invalidParams.Len() > 0 {
10432		return invalidParams
10433	}
10434	return nil
10435}
10436
10437// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
10438func (s *JobFlowInstancesConfig) SetAdditionalMasterSecurityGroups(v []*string) *JobFlowInstancesConfig {
10439	s.AdditionalMasterSecurityGroups = v
10440	return s
10441}
10442
10443// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
10444func (s *JobFlowInstancesConfig) SetAdditionalSlaveSecurityGroups(v []*string) *JobFlowInstancesConfig {
10445	s.AdditionalSlaveSecurityGroups = v
10446	return s
10447}
10448
10449// SetEc2KeyName sets the Ec2KeyName field's value.
10450func (s *JobFlowInstancesConfig) SetEc2KeyName(v string) *JobFlowInstancesConfig {
10451	s.Ec2KeyName = &v
10452	return s
10453}
10454
10455// SetEc2SubnetId sets the Ec2SubnetId field's value.
10456func (s *JobFlowInstancesConfig) SetEc2SubnetId(v string) *JobFlowInstancesConfig {
10457	s.Ec2SubnetId = &v
10458	return s
10459}
10460
10461// SetEc2SubnetIds sets the Ec2SubnetIds field's value.
10462func (s *JobFlowInstancesConfig) SetEc2SubnetIds(v []*string) *JobFlowInstancesConfig {
10463	s.Ec2SubnetIds = v
10464	return s
10465}
10466
10467// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
10468func (s *JobFlowInstancesConfig) SetEmrManagedMasterSecurityGroup(v string) *JobFlowInstancesConfig {
10469	s.EmrManagedMasterSecurityGroup = &v
10470	return s
10471}
10472
10473// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
10474func (s *JobFlowInstancesConfig) SetEmrManagedSlaveSecurityGroup(v string) *JobFlowInstancesConfig {
10475	s.EmrManagedSlaveSecurityGroup = &v
10476	return s
10477}
10478
10479// SetHadoopVersion sets the HadoopVersion field's value.
10480func (s *JobFlowInstancesConfig) SetHadoopVersion(v string) *JobFlowInstancesConfig {
10481	s.HadoopVersion = &v
10482	return s
10483}
10484
10485// SetInstanceCount sets the InstanceCount field's value.
10486func (s *JobFlowInstancesConfig) SetInstanceCount(v int64) *JobFlowInstancesConfig {
10487	s.InstanceCount = &v
10488	return s
10489}
10490
10491// SetInstanceFleets sets the InstanceFleets field's value.
10492func (s *JobFlowInstancesConfig) SetInstanceFleets(v []*InstanceFleetConfig) *JobFlowInstancesConfig {
10493	s.InstanceFleets = v
10494	return s
10495}
10496
10497// SetInstanceGroups sets the InstanceGroups field's value.
10498func (s *JobFlowInstancesConfig) SetInstanceGroups(v []*InstanceGroupConfig) *JobFlowInstancesConfig {
10499	s.InstanceGroups = v
10500	return s
10501}
10502
10503// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
10504func (s *JobFlowInstancesConfig) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesConfig {
10505	s.KeepJobFlowAliveWhenNoSteps = &v
10506	return s
10507}
10508
10509// SetMasterInstanceType sets the MasterInstanceType field's value.
10510func (s *JobFlowInstancesConfig) SetMasterInstanceType(v string) *JobFlowInstancesConfig {
10511	s.MasterInstanceType = &v
10512	return s
10513}
10514
10515// SetPlacement sets the Placement field's value.
10516func (s *JobFlowInstancesConfig) SetPlacement(v *PlacementType) *JobFlowInstancesConfig {
10517	s.Placement = v
10518	return s
10519}
10520
10521// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
10522func (s *JobFlowInstancesConfig) SetServiceAccessSecurityGroup(v string) *JobFlowInstancesConfig {
10523	s.ServiceAccessSecurityGroup = &v
10524	return s
10525}
10526
10527// SetSlaveInstanceType sets the SlaveInstanceType field's value.
10528func (s *JobFlowInstancesConfig) SetSlaveInstanceType(v string) *JobFlowInstancesConfig {
10529	s.SlaveInstanceType = &v
10530	return s
10531}
10532
10533// SetTerminationProtected sets the TerminationProtected field's value.
10534func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstancesConfig {
10535	s.TerminationProtected = &v
10536	return s
10537}
10538
10539// Specify the type of Amazon EC2 instances that the cluster (job flow) runs
10540// on.
10541type JobFlowInstancesDetail struct {
10542	_ struct{} `type:"structure"`
10543
10544	// The name of an Amazon EC2 key pair that can be used to connect to the master
10545	// node using SSH.
10546	Ec2KeyName *string `type:"string"`
10547
10548	// For clusters launched within Amazon Virtual Private Cloud, this is the identifier
10549	// of the subnet where the cluster was launched.
10550	Ec2SubnetId *string `type:"string"`
10551
10552	// The Hadoop version for the cluster.
10553	HadoopVersion *string `type:"string"`
10554
10555	// The number of Amazon EC2 instances in the cluster. If the value is 1, the
10556	// same instance serves as both the master and core and task node. If the value
10557	// is greater than 1, one instance is the master node and all others are core
10558	// and task nodes.
10559	//
10560	// InstanceCount is a required field
10561	InstanceCount *int64 `type:"integer" required:"true"`
10562
10563	// Details about the instance groups in a cluster.
10564	InstanceGroups []*InstanceGroupDetail `type:"list"`
10565
10566	// Specifies whether the cluster should remain available after completing all
10567	// steps.
10568	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
10569
10570	// The Amazon EC2 instance identifier of the master node.
10571	MasterInstanceId *string `type:"string"`
10572
10573	// The Amazon EC2 master node instance type.
10574	//
10575	// MasterInstanceType is a required field
10576	MasterInstanceType *string `min:"1" type:"string" required:"true"`
10577
10578	// The DNS name of the master node. If the cluster is on a private subnet, this
10579	// is the private DNS name. On a public subnet, this is the public DNS name.
10580	MasterPublicDnsName *string `type:"string"`
10581
10582	// An approximation of the cost of the cluster, represented in m1.small/hours.
10583	// This value is increased one time for every hour that an m1.small instance
10584	// runs. Larger instances are weighted more heavily, so an Amazon EC2 instance
10585	// that is roughly four times more expensive would result in the normalized
10586	// instance hours being increased incrementally four times. This result is only
10587	// an approximation and does not reflect the actual billing rate.
10588	NormalizedInstanceHours *int64 `type:"integer"`
10589
10590	// The Amazon EC2 Availability Zone for the cluster.
10591	Placement *PlacementType `type:"structure"`
10592
10593	// The Amazon EC2 core and task node instance type.
10594	//
10595	// SlaveInstanceType is a required field
10596	SlaveInstanceType *string `min:"1" type:"string" required:"true"`
10597
10598	// Specifies whether the Amazon EC2 instances in the cluster are protected from
10599	// termination by API calls, user intervention, or in the event of a job-flow
10600	// error.
10601	TerminationProtected *bool `type:"boolean"`
10602}
10603
10604// String returns the string representation
10605func (s JobFlowInstancesDetail) String() string {
10606	return awsutil.Prettify(s)
10607}
10608
10609// GoString returns the string representation
10610func (s JobFlowInstancesDetail) GoString() string {
10611	return s.String()
10612}
10613
10614// SetEc2KeyName sets the Ec2KeyName field's value.
10615func (s *JobFlowInstancesDetail) SetEc2KeyName(v string) *JobFlowInstancesDetail {
10616	s.Ec2KeyName = &v
10617	return s
10618}
10619
10620// SetEc2SubnetId sets the Ec2SubnetId field's value.
10621func (s *JobFlowInstancesDetail) SetEc2SubnetId(v string) *JobFlowInstancesDetail {
10622	s.Ec2SubnetId = &v
10623	return s
10624}
10625
10626// SetHadoopVersion sets the HadoopVersion field's value.
10627func (s *JobFlowInstancesDetail) SetHadoopVersion(v string) *JobFlowInstancesDetail {
10628	s.HadoopVersion = &v
10629	return s
10630}
10631
10632// SetInstanceCount sets the InstanceCount field's value.
10633func (s *JobFlowInstancesDetail) SetInstanceCount(v int64) *JobFlowInstancesDetail {
10634	s.InstanceCount = &v
10635	return s
10636}
10637
10638// SetInstanceGroups sets the InstanceGroups field's value.
10639func (s *JobFlowInstancesDetail) SetInstanceGroups(v []*InstanceGroupDetail) *JobFlowInstancesDetail {
10640	s.InstanceGroups = v
10641	return s
10642}
10643
10644// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
10645func (s *JobFlowInstancesDetail) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesDetail {
10646	s.KeepJobFlowAliveWhenNoSteps = &v
10647	return s
10648}
10649
10650// SetMasterInstanceId sets the MasterInstanceId field's value.
10651func (s *JobFlowInstancesDetail) SetMasterInstanceId(v string) *JobFlowInstancesDetail {
10652	s.MasterInstanceId = &v
10653	return s
10654}
10655
10656// SetMasterInstanceType sets the MasterInstanceType field's value.
10657func (s *JobFlowInstancesDetail) SetMasterInstanceType(v string) *JobFlowInstancesDetail {
10658	s.MasterInstanceType = &v
10659	return s
10660}
10661
10662// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
10663func (s *JobFlowInstancesDetail) SetMasterPublicDnsName(v string) *JobFlowInstancesDetail {
10664	s.MasterPublicDnsName = &v
10665	return s
10666}
10667
10668// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
10669func (s *JobFlowInstancesDetail) SetNormalizedInstanceHours(v int64) *JobFlowInstancesDetail {
10670	s.NormalizedInstanceHours = &v
10671	return s
10672}
10673
10674// SetPlacement sets the Placement field's value.
10675func (s *JobFlowInstancesDetail) SetPlacement(v *PlacementType) *JobFlowInstancesDetail {
10676	s.Placement = v
10677	return s
10678}
10679
10680// SetSlaveInstanceType sets the SlaveInstanceType field's value.
10681func (s *JobFlowInstancesDetail) SetSlaveInstanceType(v string) *JobFlowInstancesDetail {
10682	s.SlaveInstanceType = &v
10683	return s
10684}
10685
10686// SetTerminationProtected sets the TerminationProtected field's value.
10687func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstancesDetail {
10688	s.TerminationProtected = &v
10689	return s
10690}
10691
10692// Attributes for Kerberos configuration when Kerberos authentication is enabled
10693// using a security configuration. For more information see Use Kerberos Authentication
10694// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
10695// in the Amazon EMR Management Guide.
10696type KerberosAttributes struct {
10697	_ struct{} `type:"structure"`
10698
10699	// The Active Directory password for ADDomainJoinUser.
10700	ADDomainJoinPassword *string `type:"string"`
10701
10702	// Required only when establishing a cross-realm trust with an Active Directory
10703	// domain. A user with sufficient privileges to join resources to the domain.
10704	ADDomainJoinUser *string `type:"string"`
10705
10706	// Required only when establishing a cross-realm trust with a KDC in a different
10707	// realm. The cross-realm principal password, which must be identical across
10708	// realms.
10709	CrossRealmTrustPrincipalPassword *string `type:"string"`
10710
10711	// The password used within the cluster for the kadmin service on the cluster-dedicated
10712	// KDC, which maintains Kerberos principals, password policies, and keytabs
10713	// for the cluster.
10714	//
10715	// KdcAdminPassword is a required field
10716	KdcAdminPassword *string `type:"string" required:"true"`
10717
10718	// The name of the Kerberos realm to which all nodes in a cluster belong. For
10719	// example, EC2.INTERNAL.
10720	//
10721	// Realm is a required field
10722	Realm *string `type:"string" required:"true"`
10723}
10724
10725// String returns the string representation
10726func (s KerberosAttributes) String() string {
10727	return awsutil.Prettify(s)
10728}
10729
10730// GoString returns the string representation
10731func (s KerberosAttributes) GoString() string {
10732	return s.String()
10733}
10734
10735// Validate inspects the fields of the type to determine if they are valid.
10736func (s *KerberosAttributes) Validate() error {
10737	invalidParams := request.ErrInvalidParams{Context: "KerberosAttributes"}
10738	if s.KdcAdminPassword == nil {
10739		invalidParams.Add(request.NewErrParamRequired("KdcAdminPassword"))
10740	}
10741	if s.Realm == nil {
10742		invalidParams.Add(request.NewErrParamRequired("Realm"))
10743	}
10744
10745	if invalidParams.Len() > 0 {
10746		return invalidParams
10747	}
10748	return nil
10749}
10750
10751// SetADDomainJoinPassword sets the ADDomainJoinPassword field's value.
10752func (s *KerberosAttributes) SetADDomainJoinPassword(v string) *KerberosAttributes {
10753	s.ADDomainJoinPassword = &v
10754	return s
10755}
10756
10757// SetADDomainJoinUser sets the ADDomainJoinUser field's value.
10758func (s *KerberosAttributes) SetADDomainJoinUser(v string) *KerberosAttributes {
10759	s.ADDomainJoinUser = &v
10760	return s
10761}
10762
10763// SetCrossRealmTrustPrincipalPassword sets the CrossRealmTrustPrincipalPassword field's value.
10764func (s *KerberosAttributes) SetCrossRealmTrustPrincipalPassword(v string) *KerberosAttributes {
10765	s.CrossRealmTrustPrincipalPassword = &v
10766	return s
10767}
10768
10769// SetKdcAdminPassword sets the KdcAdminPassword field's value.
10770func (s *KerberosAttributes) SetKdcAdminPassword(v string) *KerberosAttributes {
10771	s.KdcAdminPassword = &v
10772	return s
10773}
10774
10775// SetRealm sets the Realm field's value.
10776func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes {
10777	s.Realm = &v
10778	return s
10779}
10780
10781// A key-value pair.
10782type KeyValue struct {
10783	_ struct{} `type:"structure"`
10784
10785	// The unique identifier of a key-value pair.
10786	Key *string `type:"string"`
10787
10788	// The value part of the identified key.
10789	Value *string `type:"string"`
10790}
10791
10792// String returns the string representation
10793func (s KeyValue) String() string {
10794	return awsutil.Prettify(s)
10795}
10796
10797// GoString returns the string representation
10798func (s KeyValue) GoString() string {
10799	return s.String()
10800}
10801
10802// SetKey sets the Key field's value.
10803func (s *KeyValue) SetKey(v string) *KeyValue {
10804	s.Key = &v
10805	return s
10806}
10807
10808// SetValue sets the Value field's value.
10809func (s *KeyValue) SetValue(v string) *KeyValue {
10810	s.Value = &v
10811	return s
10812}
10813
10814// This input determines which bootstrap actions to retrieve.
10815type ListBootstrapActionsInput struct {
10816	_ struct{} `type:"structure"`
10817
10818	// The cluster identifier for the bootstrap actions to list.
10819	//
10820	// ClusterId is a required field
10821	ClusterId *string `type:"string" required:"true"`
10822
10823	// The pagination token that indicates the next set of results to retrieve.
10824	Marker *string `type:"string"`
10825}
10826
10827// String returns the string representation
10828func (s ListBootstrapActionsInput) String() string {
10829	return awsutil.Prettify(s)
10830}
10831
10832// GoString returns the string representation
10833func (s ListBootstrapActionsInput) GoString() string {
10834	return s.String()
10835}
10836
10837// Validate inspects the fields of the type to determine if they are valid.
10838func (s *ListBootstrapActionsInput) Validate() error {
10839	invalidParams := request.ErrInvalidParams{Context: "ListBootstrapActionsInput"}
10840	if s.ClusterId == nil {
10841		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
10842	}
10843
10844	if invalidParams.Len() > 0 {
10845		return invalidParams
10846	}
10847	return nil
10848}
10849
10850// SetClusterId sets the ClusterId field's value.
10851func (s *ListBootstrapActionsInput) SetClusterId(v string) *ListBootstrapActionsInput {
10852	s.ClusterId = &v
10853	return s
10854}
10855
10856// SetMarker sets the Marker field's value.
10857func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInput {
10858	s.Marker = &v
10859	return s
10860}
10861
10862// This output contains the bootstrap actions detail.
10863type ListBootstrapActionsOutput struct {
10864	_ struct{} `type:"structure"`
10865
10866	// The bootstrap actions associated with the cluster.
10867	BootstrapActions []*Command `type:"list"`
10868
10869	// The pagination token that indicates the next set of results to retrieve.
10870	Marker *string `type:"string"`
10871}
10872
10873// String returns the string representation
10874func (s ListBootstrapActionsOutput) String() string {
10875	return awsutil.Prettify(s)
10876}
10877
10878// GoString returns the string representation
10879func (s ListBootstrapActionsOutput) GoString() string {
10880	return s.String()
10881}
10882
10883// SetBootstrapActions sets the BootstrapActions field's value.
10884func (s *ListBootstrapActionsOutput) SetBootstrapActions(v []*Command) *ListBootstrapActionsOutput {
10885	s.BootstrapActions = v
10886	return s
10887}
10888
10889// SetMarker sets the Marker field's value.
10890func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOutput {
10891	s.Marker = &v
10892	return s
10893}
10894
10895// This input determines how the ListClusters action filters the list of clusters
10896// that it returns.
10897type ListClustersInput struct {
10898	_ struct{} `type:"structure"`
10899
10900	// The cluster state filters to apply when listing clusters.
10901	ClusterStates []*string `type:"list"`
10902
10903	// The creation date and time beginning value filter for listing clusters.
10904	CreatedAfter *time.Time `type:"timestamp"`
10905
10906	// The creation date and time end value filter for listing clusters.
10907	CreatedBefore *time.Time `type:"timestamp"`
10908
10909	// The pagination token that indicates the next set of results to retrieve.
10910	Marker *string `type:"string"`
10911}
10912
10913// String returns the string representation
10914func (s ListClustersInput) String() string {
10915	return awsutil.Prettify(s)
10916}
10917
10918// GoString returns the string representation
10919func (s ListClustersInput) GoString() string {
10920	return s.String()
10921}
10922
10923// SetClusterStates sets the ClusterStates field's value.
10924func (s *ListClustersInput) SetClusterStates(v []*string) *ListClustersInput {
10925	s.ClusterStates = v
10926	return s
10927}
10928
10929// SetCreatedAfter sets the CreatedAfter field's value.
10930func (s *ListClustersInput) SetCreatedAfter(v time.Time) *ListClustersInput {
10931	s.CreatedAfter = &v
10932	return s
10933}
10934
10935// SetCreatedBefore sets the CreatedBefore field's value.
10936func (s *ListClustersInput) SetCreatedBefore(v time.Time) *ListClustersInput {
10937	s.CreatedBefore = &v
10938	return s
10939}
10940
10941// SetMarker sets the Marker field's value.
10942func (s *ListClustersInput) SetMarker(v string) *ListClustersInput {
10943	s.Marker = &v
10944	return s
10945}
10946
10947// This contains a ClusterSummaryList with the cluster details; for example,
10948// the cluster IDs, names, and status.
10949type ListClustersOutput struct {
10950	_ struct{} `type:"structure"`
10951
10952	// The list of clusters for the account based on the given filters.
10953	Clusters []*ClusterSummary `type:"list"`
10954
10955	// The pagination token that indicates the next set of results to retrieve.
10956	Marker *string `type:"string"`
10957}
10958
10959// String returns the string representation
10960func (s ListClustersOutput) String() string {
10961	return awsutil.Prettify(s)
10962}
10963
10964// GoString returns the string representation
10965func (s ListClustersOutput) GoString() string {
10966	return s.String()
10967}
10968
10969// SetClusters sets the Clusters field's value.
10970func (s *ListClustersOutput) SetClusters(v []*ClusterSummary) *ListClustersOutput {
10971	s.Clusters = v
10972	return s
10973}
10974
10975// SetMarker sets the Marker field's value.
10976func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput {
10977	s.Marker = &v
10978	return s
10979}
10980
10981type ListInstanceFleetsInput struct {
10982	_ struct{} `type:"structure"`
10983
10984	// The unique identifier of the cluster.
10985	//
10986	// ClusterId is a required field
10987	ClusterId *string `type:"string" required:"true"`
10988
10989	// The pagination token that indicates the next set of results to retrieve.
10990	Marker *string `type:"string"`
10991}
10992
10993// String returns the string representation
10994func (s ListInstanceFleetsInput) String() string {
10995	return awsutil.Prettify(s)
10996}
10997
10998// GoString returns the string representation
10999func (s ListInstanceFleetsInput) GoString() string {
11000	return s.String()
11001}
11002
11003// Validate inspects the fields of the type to determine if they are valid.
11004func (s *ListInstanceFleetsInput) Validate() error {
11005	invalidParams := request.ErrInvalidParams{Context: "ListInstanceFleetsInput"}
11006	if s.ClusterId == nil {
11007		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11008	}
11009
11010	if invalidParams.Len() > 0 {
11011		return invalidParams
11012	}
11013	return nil
11014}
11015
11016// SetClusterId sets the ClusterId field's value.
11017func (s *ListInstanceFleetsInput) SetClusterId(v string) *ListInstanceFleetsInput {
11018	s.ClusterId = &v
11019	return s
11020}
11021
11022// SetMarker sets the Marker field's value.
11023func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput {
11024	s.Marker = &v
11025	return s
11026}
11027
11028type ListInstanceFleetsOutput struct {
11029	_ struct{} `type:"structure"`
11030
11031	// The list of instance fleets for the cluster and given filters.
11032	InstanceFleets []*InstanceFleet `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 ListInstanceFleetsOutput) String() string {
11040	return awsutil.Prettify(s)
11041}
11042
11043// GoString returns the string representation
11044func (s ListInstanceFleetsOutput) GoString() string {
11045	return s.String()
11046}
11047
11048// SetInstanceFleets sets the InstanceFleets field's value.
11049func (s *ListInstanceFleetsOutput) SetInstanceFleets(v []*InstanceFleet) *ListInstanceFleetsOutput {
11050	s.InstanceFleets = v
11051	return s
11052}
11053
11054// SetMarker sets the Marker field's value.
11055func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput {
11056	s.Marker = &v
11057	return s
11058}
11059
11060// This input determines which instance groups to retrieve.
11061type ListInstanceGroupsInput struct {
11062	_ struct{} `type:"structure"`
11063
11064	// The identifier of the cluster for which to list the instance groups.
11065	//
11066	// ClusterId is a required field
11067	ClusterId *string `type:"string" required:"true"`
11068
11069	// The pagination token that indicates the next set of results to retrieve.
11070	Marker *string `type:"string"`
11071}
11072
11073// String returns the string representation
11074func (s ListInstanceGroupsInput) String() string {
11075	return awsutil.Prettify(s)
11076}
11077
11078// GoString returns the string representation
11079func (s ListInstanceGroupsInput) GoString() string {
11080	return s.String()
11081}
11082
11083// Validate inspects the fields of the type to determine if they are valid.
11084func (s *ListInstanceGroupsInput) Validate() error {
11085	invalidParams := request.ErrInvalidParams{Context: "ListInstanceGroupsInput"}
11086	if s.ClusterId == nil {
11087		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11088	}
11089
11090	if invalidParams.Len() > 0 {
11091		return invalidParams
11092	}
11093	return nil
11094}
11095
11096// SetClusterId sets the ClusterId field's value.
11097func (s *ListInstanceGroupsInput) SetClusterId(v string) *ListInstanceGroupsInput {
11098	s.ClusterId = &v
11099	return s
11100}
11101
11102// SetMarker sets the Marker field's value.
11103func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput {
11104	s.Marker = &v
11105	return s
11106}
11107
11108// This input determines which instance groups to retrieve.
11109type ListInstanceGroupsOutput struct {
11110	_ struct{} `type:"structure"`
11111
11112	// The list of instance groups for the cluster and given filters.
11113	InstanceGroups []*InstanceGroup `type:"list"`
11114
11115	// The pagination token that indicates the next set of results to retrieve.
11116	Marker *string `type:"string"`
11117}
11118
11119// String returns the string representation
11120func (s ListInstanceGroupsOutput) String() string {
11121	return awsutil.Prettify(s)
11122}
11123
11124// GoString returns the string representation
11125func (s ListInstanceGroupsOutput) GoString() string {
11126	return s.String()
11127}
11128
11129// SetInstanceGroups sets the InstanceGroups field's value.
11130func (s *ListInstanceGroupsOutput) SetInstanceGroups(v []*InstanceGroup) *ListInstanceGroupsOutput {
11131	s.InstanceGroups = v
11132	return s
11133}
11134
11135// SetMarker sets the Marker field's value.
11136func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput {
11137	s.Marker = &v
11138	return s
11139}
11140
11141// This input determines which instances to list.
11142type ListInstancesInput struct {
11143	_ struct{} `type:"structure"`
11144
11145	// The identifier of the cluster for which to list the instances.
11146	//
11147	// ClusterId is a required field
11148	ClusterId *string `type:"string" required:"true"`
11149
11150	// The unique identifier of the instance fleet.
11151	InstanceFleetId *string `type:"string"`
11152
11153	// The node type of the instance fleet. For example MASTER, CORE, or TASK.
11154	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
11155
11156	// The identifier of the instance group for which to list the instances.
11157	InstanceGroupId *string `type:"string"`
11158
11159	// The type of instance group for which to list the instances.
11160	InstanceGroupTypes []*string `type:"list"`
11161
11162	// A list of instance states that will filter the instances returned with this
11163	// request.
11164	InstanceStates []*string `type:"list"`
11165
11166	// The pagination token that indicates the next set of results to retrieve.
11167	Marker *string `type:"string"`
11168}
11169
11170// String returns the string representation
11171func (s ListInstancesInput) String() string {
11172	return awsutil.Prettify(s)
11173}
11174
11175// GoString returns the string representation
11176func (s ListInstancesInput) GoString() string {
11177	return s.String()
11178}
11179
11180// Validate inspects the fields of the type to determine if they are valid.
11181func (s *ListInstancesInput) Validate() error {
11182	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
11183	if s.ClusterId == nil {
11184		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11185	}
11186
11187	if invalidParams.Len() > 0 {
11188		return invalidParams
11189	}
11190	return nil
11191}
11192
11193// SetClusterId sets the ClusterId field's value.
11194func (s *ListInstancesInput) SetClusterId(v string) *ListInstancesInput {
11195	s.ClusterId = &v
11196	return s
11197}
11198
11199// SetInstanceFleetId sets the InstanceFleetId field's value.
11200func (s *ListInstancesInput) SetInstanceFleetId(v string) *ListInstancesInput {
11201	s.InstanceFleetId = &v
11202	return s
11203}
11204
11205// SetInstanceFleetType sets the InstanceFleetType field's value.
11206func (s *ListInstancesInput) SetInstanceFleetType(v string) *ListInstancesInput {
11207	s.InstanceFleetType = &v
11208	return s
11209}
11210
11211// SetInstanceGroupId sets the InstanceGroupId field's value.
11212func (s *ListInstancesInput) SetInstanceGroupId(v string) *ListInstancesInput {
11213	s.InstanceGroupId = &v
11214	return s
11215}
11216
11217// SetInstanceGroupTypes sets the InstanceGroupTypes field's value.
11218func (s *ListInstancesInput) SetInstanceGroupTypes(v []*string) *ListInstancesInput {
11219	s.InstanceGroupTypes = v
11220	return s
11221}
11222
11223// SetInstanceStates sets the InstanceStates field's value.
11224func (s *ListInstancesInput) SetInstanceStates(v []*string) *ListInstancesInput {
11225	s.InstanceStates = v
11226	return s
11227}
11228
11229// SetMarker sets the Marker field's value.
11230func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput {
11231	s.Marker = &v
11232	return s
11233}
11234
11235// This output contains the list of instances.
11236type ListInstancesOutput struct {
11237	_ struct{} `type:"structure"`
11238
11239	// The list of instances for the cluster and given filters.
11240	Instances []*Instance `type:"list"`
11241
11242	// The pagination token that indicates the next set of results to retrieve.
11243	Marker *string `type:"string"`
11244}
11245
11246// String returns the string representation
11247func (s ListInstancesOutput) String() string {
11248	return awsutil.Prettify(s)
11249}
11250
11251// GoString returns the string representation
11252func (s ListInstancesOutput) GoString() string {
11253	return s.String()
11254}
11255
11256// SetInstances sets the Instances field's value.
11257func (s *ListInstancesOutput) SetInstances(v []*Instance) *ListInstancesOutput {
11258	s.Instances = v
11259	return s
11260}
11261
11262// SetMarker sets the Marker field's value.
11263func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput {
11264	s.Marker = &v
11265	return s
11266}
11267
11268type ListNotebookExecutionsInput struct {
11269	_ struct{} `type:"structure"`
11270
11271	// The unique ID of the editor associated with the notebook execution.
11272	EditorId *string `type:"string"`
11273
11274	// The beginning of time range filter for listing notebook executions. The default
11275	// is the timestamp of 30 days ago.
11276	From *time.Time `type:"timestamp"`
11277
11278	// The pagination token, returned by a previous ListNotebookExecutions call,
11279	// that indicates the start of the list for this ListNotebookExecutions call.
11280	Marker *string `type:"string"`
11281
11282	// The status filter for listing notebook executions.
11283	//
11284	//    * START_PENDING indicates that the cluster has received the execution
11285	//    request but execution has not begun.
11286	//
11287	//    * STARTING indicates that the execution is starting on the cluster.
11288	//
11289	//    * RUNNING indicates that the execution is being processed by the cluster.
11290	//
11291	//    * FINISHING indicates that execution processing is in the final stages.
11292	//
11293	//    * FINISHED indicates that the execution has completed without error.
11294	//
11295	//    * FAILING indicates that the execution is failing and will not finish
11296	//    successfully.
11297	//
11298	//    * FAILED indicates that the execution failed.
11299	//
11300	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
11301	//    request and the stop is pending.
11302	//
11303	//    * STOPPING indicates that the cluster is in the process of stopping the
11304	//    execution as a result of a StopNotebookExecution request.
11305	//
11306	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
11307	//    request.
11308	Status *string `type:"string" enum:"NotebookExecutionStatus"`
11309
11310	// The end of time range filter for listing notebook executions. The default
11311	// is the current timestamp.
11312	To *time.Time `type:"timestamp"`
11313}
11314
11315// String returns the string representation
11316func (s ListNotebookExecutionsInput) String() string {
11317	return awsutil.Prettify(s)
11318}
11319
11320// GoString returns the string representation
11321func (s ListNotebookExecutionsInput) GoString() string {
11322	return s.String()
11323}
11324
11325// SetEditorId sets the EditorId field's value.
11326func (s *ListNotebookExecutionsInput) SetEditorId(v string) *ListNotebookExecutionsInput {
11327	s.EditorId = &v
11328	return s
11329}
11330
11331// SetFrom sets the From field's value.
11332func (s *ListNotebookExecutionsInput) SetFrom(v time.Time) *ListNotebookExecutionsInput {
11333	s.From = &v
11334	return s
11335}
11336
11337// SetMarker sets the Marker field's value.
11338func (s *ListNotebookExecutionsInput) SetMarker(v string) *ListNotebookExecutionsInput {
11339	s.Marker = &v
11340	return s
11341}
11342
11343// SetStatus sets the Status field's value.
11344func (s *ListNotebookExecutionsInput) SetStatus(v string) *ListNotebookExecutionsInput {
11345	s.Status = &v
11346	return s
11347}
11348
11349// SetTo sets the To field's value.
11350func (s *ListNotebookExecutionsInput) SetTo(v time.Time) *ListNotebookExecutionsInput {
11351	s.To = &v
11352	return s
11353}
11354
11355type ListNotebookExecutionsOutput struct {
11356	_ struct{} `type:"structure"`
11357
11358	// A pagination token that a subsequent ListNotebookExecutions can use to determine
11359	// the next set of results to retrieve.
11360	Marker *string `type:"string"`
11361
11362	// A list of notebook executions.
11363	NotebookExecutions []*NotebookExecutionSummary `type:"list"`
11364}
11365
11366// String returns the string representation
11367func (s ListNotebookExecutionsOutput) String() string {
11368	return awsutil.Prettify(s)
11369}
11370
11371// GoString returns the string representation
11372func (s ListNotebookExecutionsOutput) GoString() string {
11373	return s.String()
11374}
11375
11376// SetMarker sets the Marker field's value.
11377func (s *ListNotebookExecutionsOutput) SetMarker(v string) *ListNotebookExecutionsOutput {
11378	s.Marker = &v
11379	return s
11380}
11381
11382// SetNotebookExecutions sets the NotebookExecutions field's value.
11383func (s *ListNotebookExecutionsOutput) SetNotebookExecutions(v []*NotebookExecutionSummary) *ListNotebookExecutionsOutput {
11384	s.NotebookExecutions = v
11385	return s
11386}
11387
11388type ListSecurityConfigurationsInput struct {
11389	_ struct{} `type:"structure"`
11390
11391	// The pagination token that indicates the set of results to retrieve.
11392	Marker *string `type:"string"`
11393}
11394
11395// String returns the string representation
11396func (s ListSecurityConfigurationsInput) String() string {
11397	return awsutil.Prettify(s)
11398}
11399
11400// GoString returns the string representation
11401func (s ListSecurityConfigurationsInput) GoString() string {
11402	return s.String()
11403}
11404
11405// SetMarker sets the Marker field's value.
11406func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfigurationsInput {
11407	s.Marker = &v
11408	return s
11409}
11410
11411type ListSecurityConfigurationsOutput struct {
11412	_ struct{} `type:"structure"`
11413
11414	// A pagination token that indicates the next set of results to retrieve. Include
11415	// the marker in the next ListSecurityConfiguration call to retrieve the next
11416	// page of results, if required.
11417	Marker *string `type:"string"`
11418
11419	// The creation date and time, and name, of each security configuration.
11420	SecurityConfigurations []*SecurityConfigurationSummary `type:"list"`
11421}
11422
11423// String returns the string representation
11424func (s ListSecurityConfigurationsOutput) String() string {
11425	return awsutil.Prettify(s)
11426}
11427
11428// GoString returns the string representation
11429func (s ListSecurityConfigurationsOutput) GoString() string {
11430	return s.String()
11431}
11432
11433// SetMarker sets the Marker field's value.
11434func (s *ListSecurityConfigurationsOutput) SetMarker(v string) *ListSecurityConfigurationsOutput {
11435	s.Marker = &v
11436	return s
11437}
11438
11439// SetSecurityConfigurations sets the SecurityConfigurations field's value.
11440func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfigurationSummary) *ListSecurityConfigurationsOutput {
11441	s.SecurityConfigurations = v
11442	return s
11443}
11444
11445// This input determines which steps to list.
11446type ListStepsInput struct {
11447	_ struct{} `type:"structure"`
11448
11449	// The identifier of the cluster for which to list the steps.
11450	//
11451	// ClusterId is a required field
11452	ClusterId *string `type:"string" required:"true"`
11453
11454	// The pagination token that indicates the next set of results to retrieve.
11455	Marker *string `type:"string"`
11456
11457	// The filter to limit the step list based on the identifier of the steps. You
11458	// can specify a maximum of ten Step IDs. The character constraint applies to
11459	// the overall length of the array.
11460	StepIds []*string `type:"list"`
11461
11462	// The filter to limit the step list based on certain states.
11463	StepStates []*string `type:"list"`
11464}
11465
11466// String returns the string representation
11467func (s ListStepsInput) String() string {
11468	return awsutil.Prettify(s)
11469}
11470
11471// GoString returns the string representation
11472func (s ListStepsInput) GoString() string {
11473	return s.String()
11474}
11475
11476// Validate inspects the fields of the type to determine if they are valid.
11477func (s *ListStepsInput) Validate() error {
11478	invalidParams := request.ErrInvalidParams{Context: "ListStepsInput"}
11479	if s.ClusterId == nil {
11480		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11481	}
11482
11483	if invalidParams.Len() > 0 {
11484		return invalidParams
11485	}
11486	return nil
11487}
11488
11489// SetClusterId sets the ClusterId field's value.
11490func (s *ListStepsInput) SetClusterId(v string) *ListStepsInput {
11491	s.ClusterId = &v
11492	return s
11493}
11494
11495// SetMarker sets the Marker field's value.
11496func (s *ListStepsInput) SetMarker(v string) *ListStepsInput {
11497	s.Marker = &v
11498	return s
11499}
11500
11501// SetStepIds sets the StepIds field's value.
11502func (s *ListStepsInput) SetStepIds(v []*string) *ListStepsInput {
11503	s.StepIds = v
11504	return s
11505}
11506
11507// SetStepStates sets the StepStates field's value.
11508func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput {
11509	s.StepStates = v
11510	return s
11511}
11512
11513// This output contains the list of steps returned in reverse order. This means
11514// that the last step is the first element in the list.
11515type ListStepsOutput struct {
11516	_ struct{} `type:"structure"`
11517
11518	// The pagination token that indicates the next set of results to retrieve.
11519	Marker *string `type:"string"`
11520
11521	// The filtered list of steps for the cluster.
11522	Steps []*StepSummary `type:"list"`
11523}
11524
11525// String returns the string representation
11526func (s ListStepsOutput) String() string {
11527	return awsutil.Prettify(s)
11528}
11529
11530// GoString returns the string representation
11531func (s ListStepsOutput) GoString() string {
11532	return s.String()
11533}
11534
11535// SetMarker sets the Marker field's value.
11536func (s *ListStepsOutput) SetMarker(v string) *ListStepsOutput {
11537	s.Marker = &v
11538	return s
11539}
11540
11541// SetSteps sets the Steps field's value.
11542func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput {
11543	s.Steps = v
11544	return s
11545}
11546
11547type ListStudioSessionMappingsInput struct {
11548	_ struct{} `type:"structure"`
11549
11550	// Specifies whether to return session mappings for users or groups. If not
11551	// specified, the results include session mapping details for both users and
11552	// groups.
11553	IdentityType *string `type:"string" enum:"IdentityType"`
11554
11555	// The pagination token that indicates the set of results to retrieve.
11556	Marker *string `type:"string"`
11557
11558	// The ID of the Amazon EMR Studio.
11559	StudioId *string `type:"string"`
11560}
11561
11562// String returns the string representation
11563func (s ListStudioSessionMappingsInput) String() string {
11564	return awsutil.Prettify(s)
11565}
11566
11567// GoString returns the string representation
11568func (s ListStudioSessionMappingsInput) GoString() string {
11569	return s.String()
11570}
11571
11572// SetIdentityType sets the IdentityType field's value.
11573func (s *ListStudioSessionMappingsInput) SetIdentityType(v string) *ListStudioSessionMappingsInput {
11574	s.IdentityType = &v
11575	return s
11576}
11577
11578// SetMarker sets the Marker field's value.
11579func (s *ListStudioSessionMappingsInput) SetMarker(v string) *ListStudioSessionMappingsInput {
11580	s.Marker = &v
11581	return s
11582}
11583
11584// SetStudioId sets the StudioId field's value.
11585func (s *ListStudioSessionMappingsInput) SetStudioId(v string) *ListStudioSessionMappingsInput {
11586	s.StudioId = &v
11587	return s
11588}
11589
11590type ListStudioSessionMappingsOutput struct {
11591	_ struct{} `type:"structure"`
11592
11593	// The pagination token that indicates the next set of results to retrieve.
11594	Marker *string `type:"string"`
11595
11596	// A list of session mapping summary objects. Each object includes session mapping
11597	// details such as creation time, identity type (user or group), and Studio
11598	// ID.
11599	SessionMappings []*SessionMappingSummary `type:"list"`
11600}
11601
11602// String returns the string representation
11603func (s ListStudioSessionMappingsOutput) String() string {
11604	return awsutil.Prettify(s)
11605}
11606
11607// GoString returns the string representation
11608func (s ListStudioSessionMappingsOutput) GoString() string {
11609	return s.String()
11610}
11611
11612// SetMarker sets the Marker field's value.
11613func (s *ListStudioSessionMappingsOutput) SetMarker(v string) *ListStudioSessionMappingsOutput {
11614	s.Marker = &v
11615	return s
11616}
11617
11618// SetSessionMappings sets the SessionMappings field's value.
11619func (s *ListStudioSessionMappingsOutput) SetSessionMappings(v []*SessionMappingSummary) *ListStudioSessionMappingsOutput {
11620	s.SessionMappings = v
11621	return s
11622}
11623
11624type ListStudiosInput struct {
11625	_ struct{} `type:"structure"`
11626
11627	// The pagination token that indicates the set of results to retrieve.
11628	Marker *string `type:"string"`
11629}
11630
11631// String returns the string representation
11632func (s ListStudiosInput) String() string {
11633	return awsutil.Prettify(s)
11634}
11635
11636// GoString returns the string representation
11637func (s ListStudiosInput) GoString() string {
11638	return s.String()
11639}
11640
11641// SetMarker sets the Marker field's value.
11642func (s *ListStudiosInput) SetMarker(v string) *ListStudiosInput {
11643	s.Marker = &v
11644	return s
11645}
11646
11647type ListStudiosOutput struct {
11648	_ struct{} `type:"structure"`
11649
11650	// The pagination token that indicates the next set of results to retrieve.
11651	Marker *string `type:"string"`
11652
11653	// The list of Studio summary objects.
11654	Studios []*StudioSummary `type:"list"`
11655}
11656
11657// String returns the string representation
11658func (s ListStudiosOutput) String() string {
11659	return awsutil.Prettify(s)
11660}
11661
11662// GoString returns the string representation
11663func (s ListStudiosOutput) GoString() string {
11664	return s.String()
11665}
11666
11667// SetMarker sets the Marker field's value.
11668func (s *ListStudiosOutput) SetMarker(v string) *ListStudiosOutput {
11669	s.Marker = &v
11670	return s
11671}
11672
11673// SetStudios sets the Studios field's value.
11674func (s *ListStudiosOutput) SetStudios(v []*StudioSummary) *ListStudiosOutput {
11675	s.Studios = v
11676	return s
11677}
11678
11679// Managed scaling policy for an Amazon EMR cluster. The policy specifies the
11680// limits for resources that can be added or terminated from a cluster. The
11681// policy only applies to the core and task nodes. The master node cannot be
11682// scaled after initial configuration.
11683type ManagedScalingPolicy struct {
11684	_ struct{} `type:"structure"`
11685
11686	// The EC2 unit limits for a managed scaling policy. The managed scaling activity
11687	// of a cluster is not allowed to go above or below these limits. The limit
11688	// only applies to the core and task nodes. The master node cannot be scaled
11689	// after initial configuration.
11690	ComputeLimits *ComputeLimits `type:"structure"`
11691}
11692
11693// String returns the string representation
11694func (s ManagedScalingPolicy) String() string {
11695	return awsutil.Prettify(s)
11696}
11697
11698// GoString returns the string representation
11699func (s ManagedScalingPolicy) GoString() string {
11700	return s.String()
11701}
11702
11703// Validate inspects the fields of the type to determine if they are valid.
11704func (s *ManagedScalingPolicy) Validate() error {
11705	invalidParams := request.ErrInvalidParams{Context: "ManagedScalingPolicy"}
11706	if s.ComputeLimits != nil {
11707		if err := s.ComputeLimits.Validate(); err != nil {
11708			invalidParams.AddNested("ComputeLimits", err.(request.ErrInvalidParams))
11709		}
11710	}
11711
11712	if invalidParams.Len() > 0 {
11713		return invalidParams
11714	}
11715	return nil
11716}
11717
11718// SetComputeLimits sets the ComputeLimits field's value.
11719func (s *ManagedScalingPolicy) SetComputeLimits(v *ComputeLimits) *ManagedScalingPolicy {
11720	s.ComputeLimits = v
11721	return s
11722}
11723
11724// A CloudWatch dimension, which is specified using a Key (known as a Name in
11725// CloudWatch), Value pair. By default, Amazon EMR uses one dimension whose
11726// Key is JobFlowID and Value is a variable representing the cluster ID, which
11727// is ${emr.clusterId}. This enables the rule to bootstrap when the cluster
11728// ID becomes available.
11729type MetricDimension struct {
11730	_ struct{} `type:"structure"`
11731
11732	// The dimension name.
11733	Key *string `type:"string"`
11734
11735	// The dimension value.
11736	Value *string `type:"string"`
11737}
11738
11739// String returns the string representation
11740func (s MetricDimension) String() string {
11741	return awsutil.Prettify(s)
11742}
11743
11744// GoString returns the string representation
11745func (s MetricDimension) GoString() string {
11746	return s.String()
11747}
11748
11749// SetKey sets the Key field's value.
11750func (s *MetricDimension) SetKey(v string) *MetricDimension {
11751	s.Key = &v
11752	return s
11753}
11754
11755// SetValue sets the Value field's value.
11756func (s *MetricDimension) SetValue(v string) *MetricDimension {
11757	s.Value = &v
11758	return s
11759}
11760
11761type ModifyClusterInput struct {
11762	_ struct{} `type:"structure"`
11763
11764	// The unique identifier of the cluster.
11765	//
11766	// ClusterId is a required field
11767	ClusterId *string `type:"string" required:"true"`
11768
11769	// The number of steps that can be executed concurrently. You can specify a
11770	// maximum of 256 steps.
11771	StepConcurrencyLevel *int64 `type:"integer"`
11772}
11773
11774// String returns the string representation
11775func (s ModifyClusterInput) String() string {
11776	return awsutil.Prettify(s)
11777}
11778
11779// GoString returns the string representation
11780func (s ModifyClusterInput) GoString() string {
11781	return s.String()
11782}
11783
11784// Validate inspects the fields of the type to determine if they are valid.
11785func (s *ModifyClusterInput) Validate() error {
11786	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
11787	if s.ClusterId == nil {
11788		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11789	}
11790
11791	if invalidParams.Len() > 0 {
11792		return invalidParams
11793	}
11794	return nil
11795}
11796
11797// SetClusterId sets the ClusterId field's value.
11798func (s *ModifyClusterInput) SetClusterId(v string) *ModifyClusterInput {
11799	s.ClusterId = &v
11800	return s
11801}
11802
11803// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
11804func (s *ModifyClusterInput) SetStepConcurrencyLevel(v int64) *ModifyClusterInput {
11805	s.StepConcurrencyLevel = &v
11806	return s
11807}
11808
11809type ModifyClusterOutput struct {
11810	_ struct{} `type:"structure"`
11811
11812	// The number of steps that can be executed concurrently.
11813	StepConcurrencyLevel *int64 `type:"integer"`
11814}
11815
11816// String returns the string representation
11817func (s ModifyClusterOutput) String() string {
11818	return awsutil.Prettify(s)
11819}
11820
11821// GoString returns the string representation
11822func (s ModifyClusterOutput) GoString() string {
11823	return s.String()
11824}
11825
11826// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
11827func (s *ModifyClusterOutput) SetStepConcurrencyLevel(v int64) *ModifyClusterOutput {
11828	s.StepConcurrencyLevel = &v
11829	return s
11830}
11831
11832type ModifyInstanceFleetInput struct {
11833	_ struct{} `type:"structure"`
11834
11835	// The unique identifier of the cluster.
11836	//
11837	// ClusterId is a required field
11838	ClusterId *string `type:"string" required:"true"`
11839
11840	// The unique identifier of the instance fleet.
11841	//
11842	// InstanceFleet is a required field
11843	InstanceFleet *InstanceFleetModifyConfig `type:"structure" required:"true"`
11844}
11845
11846// String returns the string representation
11847func (s ModifyInstanceFleetInput) String() string {
11848	return awsutil.Prettify(s)
11849}
11850
11851// GoString returns the string representation
11852func (s ModifyInstanceFleetInput) GoString() string {
11853	return s.String()
11854}
11855
11856// Validate inspects the fields of the type to determine if they are valid.
11857func (s *ModifyInstanceFleetInput) Validate() error {
11858	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceFleetInput"}
11859	if s.ClusterId == nil {
11860		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
11861	}
11862	if s.InstanceFleet == nil {
11863		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
11864	}
11865	if s.InstanceFleet != nil {
11866		if err := s.InstanceFleet.Validate(); err != nil {
11867			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
11868		}
11869	}
11870
11871	if invalidParams.Len() > 0 {
11872		return invalidParams
11873	}
11874	return nil
11875}
11876
11877// SetClusterId sets the ClusterId field's value.
11878func (s *ModifyInstanceFleetInput) SetClusterId(v string) *ModifyInstanceFleetInput {
11879	s.ClusterId = &v
11880	return s
11881}
11882
11883// SetInstanceFleet sets the InstanceFleet field's value.
11884func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig) *ModifyInstanceFleetInput {
11885	s.InstanceFleet = v
11886	return s
11887}
11888
11889type ModifyInstanceFleetOutput struct {
11890	_ struct{} `type:"structure"`
11891}
11892
11893// String returns the string representation
11894func (s ModifyInstanceFleetOutput) String() string {
11895	return awsutil.Prettify(s)
11896}
11897
11898// GoString returns the string representation
11899func (s ModifyInstanceFleetOutput) GoString() string {
11900	return s.String()
11901}
11902
11903// Change the size of some instance groups.
11904type ModifyInstanceGroupsInput struct {
11905	_ struct{} `type:"structure"`
11906
11907	// The ID of the cluster to which the instance group belongs.
11908	ClusterId *string `type:"string"`
11909
11910	// Instance groups to change.
11911	InstanceGroups []*InstanceGroupModifyConfig `type:"list"`
11912}
11913
11914// String returns the string representation
11915func (s ModifyInstanceGroupsInput) String() string {
11916	return awsutil.Prettify(s)
11917}
11918
11919// GoString returns the string representation
11920func (s ModifyInstanceGroupsInput) GoString() string {
11921	return s.String()
11922}
11923
11924// Validate inspects the fields of the type to determine if they are valid.
11925func (s *ModifyInstanceGroupsInput) Validate() error {
11926	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceGroupsInput"}
11927	if s.InstanceGroups != nil {
11928		for i, v := range s.InstanceGroups {
11929			if v == nil {
11930				continue
11931			}
11932			if err := v.Validate(); err != nil {
11933				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
11934			}
11935		}
11936	}
11937
11938	if invalidParams.Len() > 0 {
11939		return invalidParams
11940	}
11941	return nil
11942}
11943
11944// SetClusterId sets the ClusterId field's value.
11945func (s *ModifyInstanceGroupsInput) SetClusterId(v string) *ModifyInstanceGroupsInput {
11946	s.ClusterId = &v
11947	return s
11948}
11949
11950// SetInstanceGroups sets the InstanceGroups field's value.
11951func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyConfig) *ModifyInstanceGroupsInput {
11952	s.InstanceGroups = v
11953	return s
11954}
11955
11956type ModifyInstanceGroupsOutput struct {
11957	_ struct{} `type:"structure"`
11958}
11959
11960// String returns the string representation
11961func (s ModifyInstanceGroupsOutput) String() string {
11962	return awsutil.Prettify(s)
11963}
11964
11965// GoString returns the string representation
11966func (s ModifyInstanceGroupsOutput) GoString() string {
11967	return s.String()
11968}
11969
11970// A notebook execution. An execution is a specific instance that an EMR Notebook
11971// is run using the StartNotebookExecution action.
11972type NotebookExecution struct {
11973	_ struct{} `type:"structure"`
11974
11975	// The Amazon Resource Name (ARN) of the notebook execution.
11976	Arn *string `type:"string"`
11977
11978	// The unique identifier of the EMR Notebook that is used for the notebook execution.
11979	EditorId *string `type:"string"`
11980
11981	// The timestamp when notebook execution ended.
11982	EndTime *time.Time `type:"timestamp"`
11983
11984	// The execution engine, such as an EMR cluster, used to run the EMR notebook
11985	// and perform the notebook execution.
11986	ExecutionEngine *ExecutionEngineConfig `type:"structure"`
11987
11988	// The reason for the latest status change of the notebook execution.
11989	LastStateChangeReason *string `type:"string"`
11990
11991	// The unique identifier of a notebook execution.
11992	NotebookExecutionId *string `type:"string"`
11993
11994	// A name for the notebook execution.
11995	NotebookExecutionName *string `type:"string"`
11996
11997	// The unique identifier of the EC2 security group associated with the EMR Notebook
11998	// instance. For more information see Specifying EC2 Security Groups for EMR
11999	// Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
12000	// in the EMR Management Guide.
12001	NotebookInstanceSecurityGroupId *string `type:"string"`
12002
12003	// Input parameters in JSON format passed to the EMR Notebook at runtime for
12004	// execution.
12005	NotebookParams *string `type:"string"`
12006
12007	// The location of the notebook execution's output file in Amazon S3.
12008	OutputNotebookURI *string `type:"string"`
12009
12010	// The timestamp when notebook execution started.
12011	StartTime *time.Time `type:"timestamp"`
12012
12013	// The status of the notebook execution.
12014	//
12015	//    * START_PENDING indicates that the cluster has received the execution
12016	//    request but execution has not begun.
12017	//
12018	//    * STARTING indicates that the execution is starting on the cluster.
12019	//
12020	//    * RUNNING indicates that the execution is being processed by the cluster.
12021	//
12022	//    * FINISHING indicates that execution processing is in the final stages.
12023	//
12024	//    * FINISHED indicates that the execution has completed without error.
12025	//
12026	//    * FAILING indicates that the execution is failing and will not finish
12027	//    successfully.
12028	//
12029	//    * FAILED indicates that the execution failed.
12030	//
12031	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
12032	//    request and the stop is pending.
12033	//
12034	//    * STOPPING indicates that the cluster is in the process of stopping the
12035	//    execution as a result of a StopNotebookExecution request.
12036	//
12037	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
12038	//    request.
12039	Status *string `type:"string" enum:"NotebookExecutionStatus"`
12040
12041	// A list of tags associated with a notebook execution. Tags are user-defined
12042	// key-value pairs that consist of a required key string with a maximum of 128
12043	// characters and an optional value string with a maximum of 256 characters.
12044	Tags []*Tag `type:"list"`
12045}
12046
12047// String returns the string representation
12048func (s NotebookExecution) String() string {
12049	return awsutil.Prettify(s)
12050}
12051
12052// GoString returns the string representation
12053func (s NotebookExecution) GoString() string {
12054	return s.String()
12055}
12056
12057// SetArn sets the Arn field's value.
12058func (s *NotebookExecution) SetArn(v string) *NotebookExecution {
12059	s.Arn = &v
12060	return s
12061}
12062
12063// SetEditorId sets the EditorId field's value.
12064func (s *NotebookExecution) SetEditorId(v string) *NotebookExecution {
12065	s.EditorId = &v
12066	return s
12067}
12068
12069// SetEndTime sets the EndTime field's value.
12070func (s *NotebookExecution) SetEndTime(v time.Time) *NotebookExecution {
12071	s.EndTime = &v
12072	return s
12073}
12074
12075// SetExecutionEngine sets the ExecutionEngine field's value.
12076func (s *NotebookExecution) SetExecutionEngine(v *ExecutionEngineConfig) *NotebookExecution {
12077	s.ExecutionEngine = v
12078	return s
12079}
12080
12081// SetLastStateChangeReason sets the LastStateChangeReason field's value.
12082func (s *NotebookExecution) SetLastStateChangeReason(v string) *NotebookExecution {
12083	s.LastStateChangeReason = &v
12084	return s
12085}
12086
12087// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12088func (s *NotebookExecution) SetNotebookExecutionId(v string) *NotebookExecution {
12089	s.NotebookExecutionId = &v
12090	return s
12091}
12092
12093// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12094func (s *NotebookExecution) SetNotebookExecutionName(v string) *NotebookExecution {
12095	s.NotebookExecutionName = &v
12096	return s
12097}
12098
12099// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
12100func (s *NotebookExecution) SetNotebookInstanceSecurityGroupId(v string) *NotebookExecution {
12101	s.NotebookInstanceSecurityGroupId = &v
12102	return s
12103}
12104
12105// SetNotebookParams sets the NotebookParams field's value.
12106func (s *NotebookExecution) SetNotebookParams(v string) *NotebookExecution {
12107	s.NotebookParams = &v
12108	return s
12109}
12110
12111// SetOutputNotebookURI sets the OutputNotebookURI field's value.
12112func (s *NotebookExecution) SetOutputNotebookURI(v string) *NotebookExecution {
12113	s.OutputNotebookURI = &v
12114	return s
12115}
12116
12117// SetStartTime sets the StartTime field's value.
12118func (s *NotebookExecution) SetStartTime(v time.Time) *NotebookExecution {
12119	s.StartTime = &v
12120	return s
12121}
12122
12123// SetStatus sets the Status field's value.
12124func (s *NotebookExecution) SetStatus(v string) *NotebookExecution {
12125	s.Status = &v
12126	return s
12127}
12128
12129// SetTags sets the Tags field's value.
12130func (s *NotebookExecution) SetTags(v []*Tag) *NotebookExecution {
12131	s.Tags = v
12132	return s
12133}
12134
12135type NotebookExecutionSummary struct {
12136	_ struct{} `type:"structure"`
12137
12138	// The unique identifier of the editor associated with the notebook execution.
12139	EditorId *string `type:"string"`
12140
12141	// The timestamp when notebook execution started.
12142	EndTime *time.Time `type:"timestamp"`
12143
12144	// The unique identifier of the notebook execution.
12145	NotebookExecutionId *string `type:"string"`
12146
12147	// The name of the notebook execution.
12148	NotebookExecutionName *string `type:"string"`
12149
12150	// The timestamp when notebook execution started.
12151	StartTime *time.Time `type:"timestamp"`
12152
12153	// The status of the notebook execution.
12154	//
12155	//    * START_PENDING indicates that the cluster has received the execution
12156	//    request but execution has not begun.
12157	//
12158	//    * STARTING indicates that the execution is starting on the cluster.
12159	//
12160	//    * RUNNING indicates that the execution is being processed by the cluster.
12161	//
12162	//    * FINISHING indicates that execution processing is in the final stages.
12163	//
12164	//    * FINISHED indicates that the execution has completed without error.
12165	//
12166	//    * FAILING indicates that the execution is failing and will not finish
12167	//    successfully.
12168	//
12169	//    * FAILED indicates that the execution failed.
12170	//
12171	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
12172	//    request and the stop is pending.
12173	//
12174	//    * STOPPING indicates that the cluster is in the process of stopping the
12175	//    execution as a result of a StopNotebookExecution request.
12176	//
12177	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
12178	//    request.
12179	Status *string `type:"string" enum:"NotebookExecutionStatus"`
12180}
12181
12182// String returns the string representation
12183func (s NotebookExecutionSummary) String() string {
12184	return awsutil.Prettify(s)
12185}
12186
12187// GoString returns the string representation
12188func (s NotebookExecutionSummary) GoString() string {
12189	return s.String()
12190}
12191
12192// SetEditorId sets the EditorId field's value.
12193func (s *NotebookExecutionSummary) SetEditorId(v string) *NotebookExecutionSummary {
12194	s.EditorId = &v
12195	return s
12196}
12197
12198// SetEndTime sets the EndTime field's value.
12199func (s *NotebookExecutionSummary) SetEndTime(v time.Time) *NotebookExecutionSummary {
12200	s.EndTime = &v
12201	return s
12202}
12203
12204// SetNotebookExecutionId sets the NotebookExecutionId field's value.
12205func (s *NotebookExecutionSummary) SetNotebookExecutionId(v string) *NotebookExecutionSummary {
12206	s.NotebookExecutionId = &v
12207	return s
12208}
12209
12210// SetNotebookExecutionName sets the NotebookExecutionName field's value.
12211func (s *NotebookExecutionSummary) SetNotebookExecutionName(v string) *NotebookExecutionSummary {
12212	s.NotebookExecutionName = &v
12213	return s
12214}
12215
12216// SetStartTime sets the StartTime field's value.
12217func (s *NotebookExecutionSummary) SetStartTime(v time.Time) *NotebookExecutionSummary {
12218	s.StartTime = &v
12219	return s
12220}
12221
12222// SetStatus sets the Status field's value.
12223func (s *NotebookExecutionSummary) SetStatus(v string) *NotebookExecutionSummary {
12224	s.Status = &v
12225	return s
12226}
12227
12228// The launch specification for On-Demand Instances in the instance fleet, which
12229// determines the allocation strategy.
12230//
12231// The instance fleet configuration is available only in Amazon EMR versions
12232// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
12233// strategy is available in Amazon EMR version 5.12.1 and later.
12234type OnDemandProvisioningSpecification struct {
12235	_ struct{} `type:"structure"`
12236
12237	// Specifies the strategy to use in launching On-Demand Instance fleets. Currently,
12238	// the only option is lowest-price (the default), which launches the lowest
12239	// price first.
12240	//
12241	// AllocationStrategy is a required field
12242	AllocationStrategy *string `type:"string" required:"true" enum:"OnDemandProvisioningAllocationStrategy"`
12243}
12244
12245// String returns the string representation
12246func (s OnDemandProvisioningSpecification) String() string {
12247	return awsutil.Prettify(s)
12248}
12249
12250// GoString returns the string representation
12251func (s OnDemandProvisioningSpecification) GoString() string {
12252	return s.String()
12253}
12254
12255// Validate inspects the fields of the type to determine if they are valid.
12256func (s *OnDemandProvisioningSpecification) Validate() error {
12257	invalidParams := request.ErrInvalidParams{Context: "OnDemandProvisioningSpecification"}
12258	if s.AllocationStrategy == nil {
12259		invalidParams.Add(request.NewErrParamRequired("AllocationStrategy"))
12260	}
12261
12262	if invalidParams.Len() > 0 {
12263		return invalidParams
12264	}
12265	return nil
12266}
12267
12268// SetAllocationStrategy sets the AllocationStrategy field's value.
12269func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnDemandProvisioningSpecification {
12270	s.AllocationStrategy = &v
12271	return s
12272}
12273
12274// Placement group configuration for an Amazon EMR cluster. The configuration
12275// specifies the placement strategy that can be applied to instance roles during
12276// cluster creation.
12277//
12278// To use this configuration, consider attaching managed policy AmazonElasticMapReducePlacementGroupPolicy
12279// to the EMR role.
12280type PlacementGroupConfig struct {
12281	_ struct{} `type:"structure"`
12282
12283	// Role of the instance in the cluster.
12284	//
12285	// Starting with Amazon EMR version 5.23.0, the only supported instance role
12286	// is MASTER.
12287	//
12288	// InstanceRole is a required field
12289	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
12290
12291	// EC2 Placement Group strategy associated with instance role.
12292	//
12293	// Starting with Amazon EMR version 5.23.0, the only supported placement strategy
12294	// is SPREAD for the MASTER instance role.
12295	PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"`
12296}
12297
12298// String returns the string representation
12299func (s PlacementGroupConfig) String() string {
12300	return awsutil.Prettify(s)
12301}
12302
12303// GoString returns the string representation
12304func (s PlacementGroupConfig) GoString() string {
12305	return s.String()
12306}
12307
12308// Validate inspects the fields of the type to determine if they are valid.
12309func (s *PlacementGroupConfig) Validate() error {
12310	invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"}
12311	if s.InstanceRole == nil {
12312		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
12313	}
12314
12315	if invalidParams.Len() > 0 {
12316		return invalidParams
12317	}
12318	return nil
12319}
12320
12321// SetInstanceRole sets the InstanceRole field's value.
12322func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig {
12323	s.InstanceRole = &v
12324	return s
12325}
12326
12327// SetPlacementStrategy sets the PlacementStrategy field's value.
12328func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig {
12329	s.PlacementStrategy = &v
12330	return s
12331}
12332
12333// The Amazon EC2 Availability Zone configuration of the cluster (job flow).
12334type PlacementType struct {
12335	_ struct{} `type:"structure"`
12336
12337	// The Amazon EC2 Availability Zone for the cluster. AvailabilityZone is used
12338	// for uniform instance groups, while AvailabilityZones (plural) is used for
12339	// instance fleets.
12340	AvailabilityZone *string `type:"string"`
12341
12342	// When multiple Availability Zones are specified, Amazon EMR evaluates them
12343	// and launches instances in the optimal Availability Zone. AvailabilityZones
12344	// is used for instance fleets, while AvailabilityZone (singular) is used for
12345	// uniform instance groups.
12346	//
12347	// The instance fleet configuration is available only in Amazon EMR versions
12348	// 4.8.0 and later, excluding 5.0.x versions.
12349	AvailabilityZones []*string `type:"list"`
12350}
12351
12352// String returns the string representation
12353func (s PlacementType) String() string {
12354	return awsutil.Prettify(s)
12355}
12356
12357// GoString returns the string representation
12358func (s PlacementType) GoString() string {
12359	return s.String()
12360}
12361
12362// SetAvailabilityZone sets the AvailabilityZone field's value.
12363func (s *PlacementType) SetAvailabilityZone(v string) *PlacementType {
12364	s.AvailabilityZone = &v
12365	return s
12366}
12367
12368// SetAvailabilityZones sets the AvailabilityZones field's value.
12369func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType {
12370	s.AvailabilityZones = v
12371	return s
12372}
12373
12374// A list of port ranges that are permitted to allow inbound traffic from all
12375// public IP addresses. To specify a single port, use the same value for MinRange
12376// and MaxRange.
12377type PortRange struct {
12378	_ struct{} `type:"structure"`
12379
12380	// The smallest port number in a specified range of port numbers.
12381	MaxRange *int64 `type:"integer"`
12382
12383	// The smallest port number in a specified range of port numbers.
12384	//
12385	// MinRange is a required field
12386	MinRange *int64 `type:"integer" required:"true"`
12387}
12388
12389// String returns the string representation
12390func (s PortRange) String() string {
12391	return awsutil.Prettify(s)
12392}
12393
12394// GoString returns the string representation
12395func (s PortRange) GoString() string {
12396	return s.String()
12397}
12398
12399// Validate inspects the fields of the type to determine if they are valid.
12400func (s *PortRange) Validate() error {
12401	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
12402	if s.MaxRange != nil && *s.MaxRange < -1 {
12403		invalidParams.Add(request.NewErrParamMinValue("MaxRange", -1))
12404	}
12405	if s.MinRange == nil {
12406		invalidParams.Add(request.NewErrParamRequired("MinRange"))
12407	}
12408	if s.MinRange != nil && *s.MinRange < -1 {
12409		invalidParams.Add(request.NewErrParamMinValue("MinRange", -1))
12410	}
12411
12412	if invalidParams.Len() > 0 {
12413		return invalidParams
12414	}
12415	return nil
12416}
12417
12418// SetMaxRange sets the MaxRange field's value.
12419func (s *PortRange) SetMaxRange(v int64) *PortRange {
12420	s.MaxRange = &v
12421	return s
12422}
12423
12424// SetMinRange sets the MinRange field's value.
12425func (s *PortRange) SetMinRange(v int64) *PortRange {
12426	s.MinRange = &v
12427	return s
12428}
12429
12430type PutAutoScalingPolicyInput struct {
12431	_ struct{} `type:"structure"`
12432
12433	// Specifies the definition of the automatic scaling policy.
12434	//
12435	// AutoScalingPolicy is a required field
12436	AutoScalingPolicy *AutoScalingPolicy `type:"structure" required:"true"`
12437
12438	// Specifies the ID of a cluster. The instance group to which the automatic
12439	// scaling policy is applied is within this cluster.
12440	//
12441	// ClusterId is a required field
12442	ClusterId *string `type:"string" required:"true"`
12443
12444	// Specifies the ID of the instance group to which the automatic scaling policy
12445	// is applied.
12446	//
12447	// InstanceGroupId is a required field
12448	InstanceGroupId *string `type:"string" required:"true"`
12449}
12450
12451// String returns the string representation
12452func (s PutAutoScalingPolicyInput) String() string {
12453	return awsutil.Prettify(s)
12454}
12455
12456// GoString returns the string representation
12457func (s PutAutoScalingPolicyInput) GoString() string {
12458	return s.String()
12459}
12460
12461// Validate inspects the fields of the type to determine if they are valid.
12462func (s *PutAutoScalingPolicyInput) Validate() error {
12463	invalidParams := request.ErrInvalidParams{Context: "PutAutoScalingPolicyInput"}
12464	if s.AutoScalingPolicy == nil {
12465		invalidParams.Add(request.NewErrParamRequired("AutoScalingPolicy"))
12466	}
12467	if s.ClusterId == nil {
12468		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12469	}
12470	if s.InstanceGroupId == nil {
12471		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
12472	}
12473	if s.AutoScalingPolicy != nil {
12474		if err := s.AutoScalingPolicy.Validate(); err != nil {
12475			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
12476		}
12477	}
12478
12479	if invalidParams.Len() > 0 {
12480		return invalidParams
12481	}
12482	return nil
12483}
12484
12485// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
12486func (s *PutAutoScalingPolicyInput) SetAutoScalingPolicy(v *AutoScalingPolicy) *PutAutoScalingPolicyInput {
12487	s.AutoScalingPolicy = v
12488	return s
12489}
12490
12491// SetClusterId sets the ClusterId field's value.
12492func (s *PutAutoScalingPolicyInput) SetClusterId(v string) *PutAutoScalingPolicyInput {
12493	s.ClusterId = &v
12494	return s
12495}
12496
12497// SetInstanceGroupId sets the InstanceGroupId field's value.
12498func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScalingPolicyInput {
12499	s.InstanceGroupId = &v
12500	return s
12501}
12502
12503type PutAutoScalingPolicyOutput struct {
12504	_ struct{} `type:"structure"`
12505
12506	// The automatic scaling policy definition.
12507	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
12508
12509	// The Amazon Resource Name of the cluster.
12510	ClusterArn *string `min:"20" type:"string"`
12511
12512	// Specifies the ID of a cluster. The instance group to which the automatic
12513	// scaling policy is applied is within this cluster.
12514	ClusterId *string `type:"string"`
12515
12516	// Specifies the ID of the instance group to which the scaling policy is applied.
12517	InstanceGroupId *string `type:"string"`
12518}
12519
12520// String returns the string representation
12521func (s PutAutoScalingPolicyOutput) String() string {
12522	return awsutil.Prettify(s)
12523}
12524
12525// GoString returns the string representation
12526func (s PutAutoScalingPolicyOutput) GoString() string {
12527	return s.String()
12528}
12529
12530// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
12531func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *PutAutoScalingPolicyOutput {
12532	s.AutoScalingPolicy = v
12533	return s
12534}
12535
12536// SetClusterArn sets the ClusterArn field's value.
12537func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput {
12538	s.ClusterArn = &v
12539	return s
12540}
12541
12542// SetClusterId sets the ClusterId field's value.
12543func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput {
12544	s.ClusterId = &v
12545	return s
12546}
12547
12548// SetInstanceGroupId sets the InstanceGroupId field's value.
12549func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalingPolicyOutput {
12550	s.InstanceGroupId = &v
12551	return s
12552}
12553
12554type PutBlockPublicAccessConfigurationInput struct {
12555	_ struct{} `type:"structure"`
12556
12557	// A configuration for Amazon EMR block public access. The configuration applies
12558	// to all clusters created in your account for the current Region. The configuration
12559	// specifies whether block public access is enabled. If block public access
12560	// is enabled, security groups associated with the cluster cannot have rules
12561	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
12562	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
12563	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
12564	// and public access is allowed on this port. You can change this by updating
12565	// BlockPublicSecurityGroupRules to remove the exception.
12566	//
12567	// For accounts that created clusters in a Region before November 25, 2019,
12568	// block public access is disabled by default in that Region. To use this feature,
12569	// you must manually enable and configure it. For accounts that did not create
12570	// an EMR cluster in a Region before this date, block public access is enabled
12571	// by default in that Region.
12572	//
12573	// BlockPublicAccessConfiguration is a required field
12574	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
12575}
12576
12577// String returns the string representation
12578func (s PutBlockPublicAccessConfigurationInput) String() string {
12579	return awsutil.Prettify(s)
12580}
12581
12582// GoString returns the string representation
12583func (s PutBlockPublicAccessConfigurationInput) GoString() string {
12584	return s.String()
12585}
12586
12587// Validate inspects the fields of the type to determine if they are valid.
12588func (s *PutBlockPublicAccessConfigurationInput) Validate() error {
12589	invalidParams := request.ErrInvalidParams{Context: "PutBlockPublicAccessConfigurationInput"}
12590	if s.BlockPublicAccessConfiguration == nil {
12591		invalidParams.Add(request.NewErrParamRequired("BlockPublicAccessConfiguration"))
12592	}
12593	if s.BlockPublicAccessConfiguration != nil {
12594		if err := s.BlockPublicAccessConfiguration.Validate(); err != nil {
12595			invalidParams.AddNested("BlockPublicAccessConfiguration", err.(request.ErrInvalidParams))
12596		}
12597	}
12598
12599	if invalidParams.Len() > 0 {
12600		return invalidParams
12601	}
12602	return nil
12603}
12604
12605// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
12606func (s *PutBlockPublicAccessConfigurationInput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *PutBlockPublicAccessConfigurationInput {
12607	s.BlockPublicAccessConfiguration = v
12608	return s
12609}
12610
12611type PutBlockPublicAccessConfigurationOutput struct {
12612	_ struct{} `type:"structure"`
12613}
12614
12615// String returns the string representation
12616func (s PutBlockPublicAccessConfigurationOutput) String() string {
12617	return awsutil.Prettify(s)
12618}
12619
12620// GoString returns the string representation
12621func (s PutBlockPublicAccessConfigurationOutput) GoString() string {
12622	return s.String()
12623}
12624
12625type PutManagedScalingPolicyInput struct {
12626	_ struct{} `type:"structure"`
12627
12628	// Specifies the ID of an EMR cluster where the managed scaling policy is attached.
12629	//
12630	// ClusterId is a required field
12631	ClusterId *string `type:"string" required:"true"`
12632
12633	// Specifies the constraints for the managed scaling policy.
12634	//
12635	// ManagedScalingPolicy is a required field
12636	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure" required:"true"`
12637}
12638
12639// String returns the string representation
12640func (s PutManagedScalingPolicyInput) String() string {
12641	return awsutil.Prettify(s)
12642}
12643
12644// GoString returns the string representation
12645func (s PutManagedScalingPolicyInput) GoString() string {
12646	return s.String()
12647}
12648
12649// Validate inspects the fields of the type to determine if they are valid.
12650func (s *PutManagedScalingPolicyInput) Validate() error {
12651	invalidParams := request.ErrInvalidParams{Context: "PutManagedScalingPolicyInput"}
12652	if s.ClusterId == nil {
12653		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12654	}
12655	if s.ManagedScalingPolicy == nil {
12656		invalidParams.Add(request.NewErrParamRequired("ManagedScalingPolicy"))
12657	}
12658	if s.ManagedScalingPolicy != nil {
12659		if err := s.ManagedScalingPolicy.Validate(); err != nil {
12660			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
12661		}
12662	}
12663
12664	if invalidParams.Len() > 0 {
12665		return invalidParams
12666	}
12667	return nil
12668}
12669
12670// SetClusterId sets the ClusterId field's value.
12671func (s *PutManagedScalingPolicyInput) SetClusterId(v string) *PutManagedScalingPolicyInput {
12672	s.ClusterId = &v
12673	return s
12674}
12675
12676// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
12677func (s *PutManagedScalingPolicyInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *PutManagedScalingPolicyInput {
12678	s.ManagedScalingPolicy = v
12679	return s
12680}
12681
12682type PutManagedScalingPolicyOutput struct {
12683	_ struct{} `type:"structure"`
12684}
12685
12686// String returns the string representation
12687func (s PutManagedScalingPolicyOutput) String() string {
12688	return awsutil.Prettify(s)
12689}
12690
12691// GoString returns the string representation
12692func (s PutManagedScalingPolicyOutput) GoString() string {
12693	return s.String()
12694}
12695
12696type RemoveAutoScalingPolicyInput struct {
12697	_ struct{} `type:"structure"`
12698
12699	// Specifies the ID of a cluster. The instance group to which the automatic
12700	// scaling policy is applied is within this cluster.
12701	//
12702	// ClusterId is a required field
12703	ClusterId *string `type:"string" required:"true"`
12704
12705	// Specifies the ID of the instance group to which the scaling policy is applied.
12706	//
12707	// InstanceGroupId is a required field
12708	InstanceGroupId *string `type:"string" required:"true"`
12709}
12710
12711// String returns the string representation
12712func (s RemoveAutoScalingPolicyInput) String() string {
12713	return awsutil.Prettify(s)
12714}
12715
12716// GoString returns the string representation
12717func (s RemoveAutoScalingPolicyInput) GoString() string {
12718	return s.String()
12719}
12720
12721// Validate inspects the fields of the type to determine if they are valid.
12722func (s *RemoveAutoScalingPolicyInput) Validate() error {
12723	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoScalingPolicyInput"}
12724	if s.ClusterId == nil {
12725		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12726	}
12727	if s.InstanceGroupId == nil {
12728		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
12729	}
12730
12731	if invalidParams.Len() > 0 {
12732		return invalidParams
12733	}
12734	return nil
12735}
12736
12737// SetClusterId sets the ClusterId field's value.
12738func (s *RemoveAutoScalingPolicyInput) SetClusterId(v string) *RemoveAutoScalingPolicyInput {
12739	s.ClusterId = &v
12740	return s
12741}
12742
12743// SetInstanceGroupId sets the InstanceGroupId field's value.
12744func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoScalingPolicyInput {
12745	s.InstanceGroupId = &v
12746	return s
12747}
12748
12749type RemoveAutoScalingPolicyOutput struct {
12750	_ struct{} `type:"structure"`
12751}
12752
12753// String returns the string representation
12754func (s RemoveAutoScalingPolicyOutput) String() string {
12755	return awsutil.Prettify(s)
12756}
12757
12758// GoString returns the string representation
12759func (s RemoveAutoScalingPolicyOutput) GoString() string {
12760	return s.String()
12761}
12762
12763type RemoveManagedScalingPolicyInput struct {
12764	_ struct{} `type:"structure"`
12765
12766	// Specifies the ID of the cluster from which the managed scaling policy will
12767	// be removed.
12768	//
12769	// ClusterId is a required field
12770	ClusterId *string `type:"string" required:"true"`
12771}
12772
12773// String returns the string representation
12774func (s RemoveManagedScalingPolicyInput) String() string {
12775	return awsutil.Prettify(s)
12776}
12777
12778// GoString returns the string representation
12779func (s RemoveManagedScalingPolicyInput) GoString() string {
12780	return s.String()
12781}
12782
12783// Validate inspects the fields of the type to determine if they are valid.
12784func (s *RemoveManagedScalingPolicyInput) Validate() error {
12785	invalidParams := request.ErrInvalidParams{Context: "RemoveManagedScalingPolicyInput"}
12786	if s.ClusterId == nil {
12787		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12788	}
12789
12790	if invalidParams.Len() > 0 {
12791		return invalidParams
12792	}
12793	return nil
12794}
12795
12796// SetClusterId sets the ClusterId field's value.
12797func (s *RemoveManagedScalingPolicyInput) SetClusterId(v string) *RemoveManagedScalingPolicyInput {
12798	s.ClusterId = &v
12799	return s
12800}
12801
12802type RemoveManagedScalingPolicyOutput struct {
12803	_ struct{} `type:"structure"`
12804}
12805
12806// String returns the string representation
12807func (s RemoveManagedScalingPolicyOutput) String() string {
12808	return awsutil.Prettify(s)
12809}
12810
12811// GoString returns the string representation
12812func (s RemoveManagedScalingPolicyOutput) GoString() string {
12813	return s.String()
12814}
12815
12816// This input identifies a cluster and a list of tags to remove.
12817type RemoveTagsInput struct {
12818	_ struct{} `type:"structure"`
12819
12820	// The Amazon EMR resource identifier from which tags will be removed. This
12821	// value must be a cluster identifier.
12822	//
12823	// ResourceId is a required field
12824	ResourceId *string `type:"string" required:"true"`
12825
12826	// A list of tag keys to remove from a resource.
12827	//
12828	// TagKeys is a required field
12829	TagKeys []*string `type:"list" required:"true"`
12830}
12831
12832// String returns the string representation
12833func (s RemoveTagsInput) String() string {
12834	return awsutil.Prettify(s)
12835}
12836
12837// GoString returns the string representation
12838func (s RemoveTagsInput) GoString() string {
12839	return s.String()
12840}
12841
12842// Validate inspects the fields of the type to determine if they are valid.
12843func (s *RemoveTagsInput) Validate() error {
12844	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
12845	if s.ResourceId == nil {
12846		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
12847	}
12848	if s.TagKeys == nil {
12849		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
12850	}
12851
12852	if invalidParams.Len() > 0 {
12853		return invalidParams
12854	}
12855	return nil
12856}
12857
12858// SetResourceId sets the ResourceId field's value.
12859func (s *RemoveTagsInput) SetResourceId(v string) *RemoveTagsInput {
12860	s.ResourceId = &v
12861	return s
12862}
12863
12864// SetTagKeys sets the TagKeys field's value.
12865func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
12866	s.TagKeys = v
12867	return s
12868}
12869
12870// This output indicates the result of removing tags from a resource.
12871type RemoveTagsOutput struct {
12872	_ struct{} `type:"structure"`
12873}
12874
12875// String returns the string representation
12876func (s RemoveTagsOutput) String() string {
12877	return awsutil.Prettify(s)
12878}
12879
12880// GoString returns the string representation
12881func (s RemoveTagsOutput) GoString() string {
12882	return s.String()
12883}
12884
12885// Input to the RunJobFlow operation.
12886type RunJobFlowInput struct {
12887	_ struct{} `type:"structure"`
12888
12889	// A JSON string for selecting additional features.
12890	AdditionalInfo *string `type:"string"`
12891
12892	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
12893	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
12894	AmiVersion *string `type:"string"`
12895
12896	// Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
12897	// applications for Amazon EMR to install and configure when launching the cluster.
12898	// For a list of applications available for each Amazon EMR release version,
12899	// see the Amazon EMR Release Guide (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
12900	Applications []*Application `type:"list"`
12901
12902	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
12903	// The IAM role provides permissions that the automatic scaling feature requires
12904	// to launch and terminate EC2 instances in an instance group.
12905	AutoScalingRole *string `type:"string"`
12906
12907	// A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
12908	BootstrapActions []*BootstrapActionConfig `type:"list"`
12909
12910	// For Amazon EMR releases 4.0 and later. The list of configurations supplied
12911	// for the EMR cluster you are creating.
12912	Configurations []*Configuration `type:"list"`
12913
12914	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
12915	// Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when
12916	// it launches cluster EC2 instances. For more information about custom AMIs
12917	// in Amazon EMR, see Using a Custom AMI (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)
12918	// in the Amazon EMR Management Guide. If omitted, the cluster uses the base
12919	// Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and
12920	// 3.x, use AmiVersion instead.
12921	//
12922	// For information about creating a custom AMI, see Creating an Amazon EBS-Backed
12923	// Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
12924	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information
12925	// about finding an AMI ID, see Finding a Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
12926	CustomAmiId *string `type:"string"`
12927
12928	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
12929	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
12930	EbsRootVolumeSize *int64 `type:"integer"`
12931
12932	// A specification of the number and type of Amazon EC2 instances.
12933	//
12934	// Instances is a required field
12935	Instances *JobFlowInstancesConfig `type:"structure" required:"true"`
12936
12937	// Also called instance profile and EC2 role. An IAM role for an EMR cluster.
12938	// The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole.
12939	// In order to use the default role, you must have already created it using
12940	// the CLI or console.
12941	JobFlowRole *string `type:"string"`
12942
12943	// Attributes for Kerberos configuration when Kerberos authentication is enabled
12944	// using a security configuration. For more information see Use Kerberos Authentication
12945	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
12946	// in the Amazon EMR Management Guide.
12947	KerberosAttributes *KerberosAttributes `type:"structure"`
12948
12949	// The AWS KMS customer master key (CMK) used for encrypting log files. If a
12950	// value is not provided, the logs remain encrypted by AES-256. This attribute
12951	// is only available with Amazon EMR version 5.30.0 and later, excluding Amazon
12952	// EMR 6.0.0.
12953	LogEncryptionKmsKeyId *string `type:"string"`
12954
12955	// The location in Amazon S3 to write the log files of the job flow. If a value
12956	// is not provided, logs are not created.
12957	LogUri *string `type:"string"`
12958
12959	// The specified managed scaling policy for an Amazon EMR cluster.
12960	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
12961
12962	// The name of the job flow.
12963	//
12964	// Name is a required field
12965	Name *string `type:"string" required:"true"`
12966
12967	//
12968	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
12969	// use Applications.
12970	//
12971	// A list of strings that indicates third-party software to use with the job
12972	// flow that accepts a user argument list. EMR accepts and forwards the argument
12973	// list to the corresponding installation script as bootstrap action arguments.
12974	// For more information, see "Launch a Job Flow on the MapR Distribution for
12975	// Hadoop" in the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
12976	// Supported values are:
12977	//
12978	//    * "mapr-m3" - launch the cluster using MapR M3 Edition.
12979	//
12980	//    * "mapr-m5" - launch the cluster using MapR M5 Edition.
12981	//
12982	//    * "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5"
12983	//    - launch the job flow using MapR M3 or M5 Edition respectively.
12984	//
12985	//    * "mapr-m7" - launch the cluster using MapR M7 Edition.
12986	//
12987	//    * "hunk" - launch the cluster with the Hunk Big Data Analtics Platform.
12988	//
12989	//    * "hue"- launch the cluster with Hue installed.
12990	//
12991	//    * "spark" - launch the cluster with Apache Spark installed.
12992	//
12993	//    * "ganglia" - launch the cluster with the Ganglia Monitoring System installed.
12994	NewSupportedProducts []*SupportedProductConfig `type:"list"`
12995
12996	// The specified placement group configuration for an Amazon EMR cluster.
12997	PlacementGroupConfigs []*PlacementGroupConfig `type:"list"`
12998
12999	// The Amazon EMR release label, which determines the version of open-source
13000	// application packages installed on the cluster. Release labels are in the
13001	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
13002	// For more information about Amazon EMR release versions and included application
13003	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
13004	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
13005	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
13006	// use AmiVersion.
13007	ReleaseLabel *string `type:"string"`
13008
13009	// Applies only when CustomAmiID is used. Specifies which updates from the Amazon
13010	// Linux AMI package repositories to apply automatically when the instance boots
13011	// using the AMI. If omitted, the default is SECURITY, which indicates that
13012	// only security updates are applied. If NONE is specified, no updates are applied,
13013	// and all updates must be applied manually.
13014	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
13015
13016	// Specifies the way that individual Amazon EC2 instances terminate when an
13017	// automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
13018	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
13019	// regardless of when the request to terminate the instance was submitted. This
13020	// option is only available with Amazon EMR 5.1.0 and later and is the default
13021	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
13022	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
13023	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
13024	// With either behavior, Amazon EMR removes the least active nodes first and
13025	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
13026	// available only in Amazon EMR version 4.1.0 and later, and is the default
13027	// for versions of Amazon EMR earlier than 5.1.0.
13028	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
13029
13030	// The name of a security configuration to apply to the cluster.
13031	SecurityConfiguration *string `type:"string"`
13032
13033	// The IAM role that will be assumed by the Amazon EMR service to access AWS
13034	// resources on your behalf.
13035	ServiceRole *string `type:"string"`
13036
13037	// Specifies the number of steps that can be executed concurrently. The default
13038	// value is 1. The maximum value is 256.
13039	StepConcurrencyLevel *int64 `type:"integer"`
13040
13041	// A list of steps to run.
13042	Steps []*StepConfig `type:"list"`
13043
13044	//
13045	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
13046	// use Applications.
13047	//
13048	// A list of strings that indicates third-party software to use. For more information,
13049	// see the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
13050	// Currently supported values are:
13051	//
13052	//    * "mapr-m3" - launch the job flow using MapR M3 Edition.
13053	//
13054	//    * "mapr-m5" - launch the job flow using MapR M5 Edition.
13055	SupportedProducts []*string `type:"list"`
13056
13057	// A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
13058	Tags []*Tag `type:"list"`
13059
13060	// A value of true indicates that all IAM users in the AWS account can perform
13061	// cluster actions if they have the proper IAM policy permissions. This is the
13062	// default. A value of false indicates that only the IAM user who created the
13063	// cluster can perform actions.
13064	VisibleToAllUsers *bool `type:"boolean"`
13065}
13066
13067// String returns the string representation
13068func (s RunJobFlowInput) String() string {
13069	return awsutil.Prettify(s)
13070}
13071
13072// GoString returns the string representation
13073func (s RunJobFlowInput) GoString() string {
13074	return s.String()
13075}
13076
13077// Validate inspects the fields of the type to determine if they are valid.
13078func (s *RunJobFlowInput) Validate() error {
13079	invalidParams := request.ErrInvalidParams{Context: "RunJobFlowInput"}
13080	if s.Instances == nil {
13081		invalidParams.Add(request.NewErrParamRequired("Instances"))
13082	}
13083	if s.Name == nil {
13084		invalidParams.Add(request.NewErrParamRequired("Name"))
13085	}
13086	if s.BootstrapActions != nil {
13087		for i, v := range s.BootstrapActions {
13088			if v == nil {
13089				continue
13090			}
13091			if err := v.Validate(); err != nil {
13092				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BootstrapActions", i), err.(request.ErrInvalidParams))
13093			}
13094		}
13095	}
13096	if s.Instances != nil {
13097		if err := s.Instances.Validate(); err != nil {
13098			invalidParams.AddNested("Instances", err.(request.ErrInvalidParams))
13099		}
13100	}
13101	if s.KerberosAttributes != nil {
13102		if err := s.KerberosAttributes.Validate(); err != nil {
13103			invalidParams.AddNested("KerberosAttributes", err.(request.ErrInvalidParams))
13104		}
13105	}
13106	if s.ManagedScalingPolicy != nil {
13107		if err := s.ManagedScalingPolicy.Validate(); err != nil {
13108			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
13109		}
13110	}
13111	if s.PlacementGroupConfigs != nil {
13112		for i, v := range s.PlacementGroupConfigs {
13113			if v == nil {
13114				continue
13115			}
13116			if err := v.Validate(); err != nil {
13117				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams))
13118			}
13119		}
13120	}
13121	if s.Steps != nil {
13122		for i, v := range s.Steps {
13123			if v == nil {
13124				continue
13125			}
13126			if err := v.Validate(); err != nil {
13127				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
13128			}
13129		}
13130	}
13131
13132	if invalidParams.Len() > 0 {
13133		return invalidParams
13134	}
13135	return nil
13136}
13137
13138// SetAdditionalInfo sets the AdditionalInfo field's value.
13139func (s *RunJobFlowInput) SetAdditionalInfo(v string) *RunJobFlowInput {
13140	s.AdditionalInfo = &v
13141	return s
13142}
13143
13144// SetAmiVersion sets the AmiVersion field's value.
13145func (s *RunJobFlowInput) SetAmiVersion(v string) *RunJobFlowInput {
13146	s.AmiVersion = &v
13147	return s
13148}
13149
13150// SetApplications sets the Applications field's value.
13151func (s *RunJobFlowInput) SetApplications(v []*Application) *RunJobFlowInput {
13152	s.Applications = v
13153	return s
13154}
13155
13156// SetAutoScalingRole sets the AutoScalingRole field's value.
13157func (s *RunJobFlowInput) SetAutoScalingRole(v string) *RunJobFlowInput {
13158	s.AutoScalingRole = &v
13159	return s
13160}
13161
13162// SetBootstrapActions sets the BootstrapActions field's value.
13163func (s *RunJobFlowInput) SetBootstrapActions(v []*BootstrapActionConfig) *RunJobFlowInput {
13164	s.BootstrapActions = v
13165	return s
13166}
13167
13168// SetConfigurations sets the Configurations field's value.
13169func (s *RunJobFlowInput) SetConfigurations(v []*Configuration) *RunJobFlowInput {
13170	s.Configurations = v
13171	return s
13172}
13173
13174// SetCustomAmiId sets the CustomAmiId field's value.
13175func (s *RunJobFlowInput) SetCustomAmiId(v string) *RunJobFlowInput {
13176	s.CustomAmiId = &v
13177	return s
13178}
13179
13180// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
13181func (s *RunJobFlowInput) SetEbsRootVolumeSize(v int64) *RunJobFlowInput {
13182	s.EbsRootVolumeSize = &v
13183	return s
13184}
13185
13186// SetInstances sets the Instances field's value.
13187func (s *RunJobFlowInput) SetInstances(v *JobFlowInstancesConfig) *RunJobFlowInput {
13188	s.Instances = v
13189	return s
13190}
13191
13192// SetJobFlowRole sets the JobFlowRole field's value.
13193func (s *RunJobFlowInput) SetJobFlowRole(v string) *RunJobFlowInput {
13194	s.JobFlowRole = &v
13195	return s
13196}
13197
13198// SetKerberosAttributes sets the KerberosAttributes field's value.
13199func (s *RunJobFlowInput) SetKerberosAttributes(v *KerberosAttributes) *RunJobFlowInput {
13200	s.KerberosAttributes = v
13201	return s
13202}
13203
13204// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
13205func (s *RunJobFlowInput) SetLogEncryptionKmsKeyId(v string) *RunJobFlowInput {
13206	s.LogEncryptionKmsKeyId = &v
13207	return s
13208}
13209
13210// SetLogUri sets the LogUri field's value.
13211func (s *RunJobFlowInput) SetLogUri(v string) *RunJobFlowInput {
13212	s.LogUri = &v
13213	return s
13214}
13215
13216// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
13217func (s *RunJobFlowInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *RunJobFlowInput {
13218	s.ManagedScalingPolicy = v
13219	return s
13220}
13221
13222// SetName sets the Name field's value.
13223func (s *RunJobFlowInput) SetName(v string) *RunJobFlowInput {
13224	s.Name = &v
13225	return s
13226}
13227
13228// SetNewSupportedProducts sets the NewSupportedProducts field's value.
13229func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) *RunJobFlowInput {
13230	s.NewSupportedProducts = v
13231	return s
13232}
13233
13234// SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value.
13235func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput {
13236	s.PlacementGroupConfigs = v
13237	return s
13238}
13239
13240// SetReleaseLabel sets the ReleaseLabel field's value.
13241func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput {
13242	s.ReleaseLabel = &v
13243	return s
13244}
13245
13246// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
13247func (s *RunJobFlowInput) SetRepoUpgradeOnBoot(v string) *RunJobFlowInput {
13248	s.RepoUpgradeOnBoot = &v
13249	return s
13250}
13251
13252// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
13253func (s *RunJobFlowInput) SetScaleDownBehavior(v string) *RunJobFlowInput {
13254	s.ScaleDownBehavior = &v
13255	return s
13256}
13257
13258// SetSecurityConfiguration sets the SecurityConfiguration field's value.
13259func (s *RunJobFlowInput) SetSecurityConfiguration(v string) *RunJobFlowInput {
13260	s.SecurityConfiguration = &v
13261	return s
13262}
13263
13264// SetServiceRole sets the ServiceRole field's value.
13265func (s *RunJobFlowInput) SetServiceRole(v string) *RunJobFlowInput {
13266	s.ServiceRole = &v
13267	return s
13268}
13269
13270// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
13271func (s *RunJobFlowInput) SetStepConcurrencyLevel(v int64) *RunJobFlowInput {
13272	s.StepConcurrencyLevel = &v
13273	return s
13274}
13275
13276// SetSteps sets the Steps field's value.
13277func (s *RunJobFlowInput) SetSteps(v []*StepConfig) *RunJobFlowInput {
13278	s.Steps = v
13279	return s
13280}
13281
13282// SetSupportedProducts sets the SupportedProducts field's value.
13283func (s *RunJobFlowInput) SetSupportedProducts(v []*string) *RunJobFlowInput {
13284	s.SupportedProducts = v
13285	return s
13286}
13287
13288// SetTags sets the Tags field's value.
13289func (s *RunJobFlowInput) SetTags(v []*Tag) *RunJobFlowInput {
13290	s.Tags = v
13291	return s
13292}
13293
13294// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
13295func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput {
13296	s.VisibleToAllUsers = &v
13297	return s
13298}
13299
13300// The result of the RunJobFlow operation.
13301type RunJobFlowOutput struct {
13302	_ struct{} `type:"structure"`
13303
13304	// The Amazon Resource Name of the cluster.
13305	ClusterArn *string `min:"20" type:"string"`
13306
13307	// An unique identifier for the job flow.
13308	JobFlowId *string `type:"string"`
13309}
13310
13311// String returns the string representation
13312func (s RunJobFlowOutput) String() string {
13313	return awsutil.Prettify(s)
13314}
13315
13316// GoString returns the string representation
13317func (s RunJobFlowOutput) GoString() string {
13318	return s.String()
13319}
13320
13321// SetClusterArn sets the ClusterArn field's value.
13322func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput {
13323	s.ClusterArn = &v
13324	return s
13325}
13326
13327// SetJobFlowId sets the JobFlowId field's value.
13328func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput {
13329	s.JobFlowId = &v
13330	return s
13331}
13332
13333// The type of adjustment the automatic scaling activity makes when triggered,
13334// and the periodicity of the adjustment.
13335type ScalingAction struct {
13336	_ struct{} `type:"structure"`
13337
13338	// Not available for instance groups. Instance groups use the market type specified
13339	// for the group.
13340	Market *string `type:"string" enum:"MarketType"`
13341
13342	// The type of adjustment the automatic scaling activity makes when triggered,
13343	// and the periodicity of the adjustment.
13344	//
13345	// SimpleScalingPolicyConfiguration is a required field
13346	SimpleScalingPolicyConfiguration *SimpleScalingPolicyConfiguration `type:"structure" required:"true"`
13347}
13348
13349// String returns the string representation
13350func (s ScalingAction) String() string {
13351	return awsutil.Prettify(s)
13352}
13353
13354// GoString returns the string representation
13355func (s ScalingAction) GoString() string {
13356	return s.String()
13357}
13358
13359// Validate inspects the fields of the type to determine if they are valid.
13360func (s *ScalingAction) Validate() error {
13361	invalidParams := request.ErrInvalidParams{Context: "ScalingAction"}
13362	if s.SimpleScalingPolicyConfiguration == nil {
13363		invalidParams.Add(request.NewErrParamRequired("SimpleScalingPolicyConfiguration"))
13364	}
13365	if s.SimpleScalingPolicyConfiguration != nil {
13366		if err := s.SimpleScalingPolicyConfiguration.Validate(); err != nil {
13367			invalidParams.AddNested("SimpleScalingPolicyConfiguration", err.(request.ErrInvalidParams))
13368		}
13369	}
13370
13371	if invalidParams.Len() > 0 {
13372		return invalidParams
13373	}
13374	return nil
13375}
13376
13377// SetMarket sets the Market field's value.
13378func (s *ScalingAction) SetMarket(v string) *ScalingAction {
13379	s.Market = &v
13380	return s
13381}
13382
13383// SetSimpleScalingPolicyConfiguration sets the SimpleScalingPolicyConfiguration field's value.
13384func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPolicyConfiguration) *ScalingAction {
13385	s.SimpleScalingPolicyConfiguration = v
13386	return s
13387}
13388
13389// The upper and lower EC2 instance limits for an automatic scaling policy.
13390// Automatic scaling activities triggered by automatic scaling rules will not
13391// cause an instance group to grow above or below these limits.
13392type ScalingConstraints struct {
13393	_ struct{} `type:"structure"`
13394
13395	// The upper boundary of EC2 instances in an instance group beyond which scaling
13396	// activities are not allowed to grow. Scale-out activities will not add instances
13397	// beyond this boundary.
13398	//
13399	// MaxCapacity is a required field
13400	MaxCapacity *int64 `type:"integer" required:"true"`
13401
13402	// The lower boundary of EC2 instances in an instance group below which scaling
13403	// activities are not allowed to shrink. Scale-in activities will not terminate
13404	// instances below this boundary.
13405	//
13406	// MinCapacity is a required field
13407	MinCapacity *int64 `type:"integer" required:"true"`
13408}
13409
13410// String returns the string representation
13411func (s ScalingConstraints) String() string {
13412	return awsutil.Prettify(s)
13413}
13414
13415// GoString returns the string representation
13416func (s ScalingConstraints) GoString() string {
13417	return s.String()
13418}
13419
13420// Validate inspects the fields of the type to determine if they are valid.
13421func (s *ScalingConstraints) Validate() error {
13422	invalidParams := request.ErrInvalidParams{Context: "ScalingConstraints"}
13423	if s.MaxCapacity == nil {
13424		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
13425	}
13426	if s.MinCapacity == nil {
13427		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
13428	}
13429
13430	if invalidParams.Len() > 0 {
13431		return invalidParams
13432	}
13433	return nil
13434}
13435
13436// SetMaxCapacity sets the MaxCapacity field's value.
13437func (s *ScalingConstraints) SetMaxCapacity(v int64) *ScalingConstraints {
13438	s.MaxCapacity = &v
13439	return s
13440}
13441
13442// SetMinCapacity sets the MinCapacity field's value.
13443func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints {
13444	s.MinCapacity = &v
13445	return s
13446}
13447
13448// A scale-in or scale-out rule that defines scaling activity, including the
13449// CloudWatch metric alarm that triggers activity, how EC2 instances are added
13450// or removed, and the periodicity of adjustments. The automatic scaling policy
13451// for an instance group can comprise one or more automatic scaling rules.
13452type ScalingRule struct {
13453	_ struct{} `type:"structure"`
13454
13455	// The conditions that trigger an automatic scaling activity.
13456	//
13457	// Action is a required field
13458	Action *ScalingAction `type:"structure" required:"true"`
13459
13460	// A friendly, more verbose description of the automatic scaling rule.
13461	Description *string `type:"string"`
13462
13463	// The name used to identify an automatic scaling rule. Rule names must be unique
13464	// within a scaling policy.
13465	//
13466	// Name is a required field
13467	Name *string `type:"string" required:"true"`
13468
13469	// The CloudWatch alarm definition that determines when automatic scaling activity
13470	// is triggered.
13471	//
13472	// Trigger is a required field
13473	Trigger *ScalingTrigger `type:"structure" required:"true"`
13474}
13475
13476// String returns the string representation
13477func (s ScalingRule) String() string {
13478	return awsutil.Prettify(s)
13479}
13480
13481// GoString returns the string representation
13482func (s ScalingRule) GoString() string {
13483	return s.String()
13484}
13485
13486// Validate inspects the fields of the type to determine if they are valid.
13487func (s *ScalingRule) Validate() error {
13488	invalidParams := request.ErrInvalidParams{Context: "ScalingRule"}
13489	if s.Action == nil {
13490		invalidParams.Add(request.NewErrParamRequired("Action"))
13491	}
13492	if s.Name == nil {
13493		invalidParams.Add(request.NewErrParamRequired("Name"))
13494	}
13495	if s.Trigger == nil {
13496		invalidParams.Add(request.NewErrParamRequired("Trigger"))
13497	}
13498	if s.Action != nil {
13499		if err := s.Action.Validate(); err != nil {
13500			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
13501		}
13502	}
13503	if s.Trigger != nil {
13504		if err := s.Trigger.Validate(); err != nil {
13505			invalidParams.AddNested("Trigger", err.(request.ErrInvalidParams))
13506		}
13507	}
13508
13509	if invalidParams.Len() > 0 {
13510		return invalidParams
13511	}
13512	return nil
13513}
13514
13515// SetAction sets the Action field's value.
13516func (s *ScalingRule) SetAction(v *ScalingAction) *ScalingRule {
13517	s.Action = v
13518	return s
13519}
13520
13521// SetDescription sets the Description field's value.
13522func (s *ScalingRule) SetDescription(v string) *ScalingRule {
13523	s.Description = &v
13524	return s
13525}
13526
13527// SetName sets the Name field's value.
13528func (s *ScalingRule) SetName(v string) *ScalingRule {
13529	s.Name = &v
13530	return s
13531}
13532
13533// SetTrigger sets the Trigger field's value.
13534func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule {
13535	s.Trigger = v
13536	return s
13537}
13538
13539// The conditions that trigger an automatic scaling activity.
13540type ScalingTrigger struct {
13541	_ struct{} `type:"structure"`
13542
13543	// The definition of a CloudWatch metric alarm. When the defined alarm conditions
13544	// are met along with other trigger parameters, scaling activity begins.
13545	//
13546	// CloudWatchAlarmDefinition is a required field
13547	CloudWatchAlarmDefinition *CloudWatchAlarmDefinition `type:"structure" required:"true"`
13548}
13549
13550// String returns the string representation
13551func (s ScalingTrigger) String() string {
13552	return awsutil.Prettify(s)
13553}
13554
13555// GoString returns the string representation
13556func (s ScalingTrigger) GoString() string {
13557	return s.String()
13558}
13559
13560// Validate inspects the fields of the type to determine if they are valid.
13561func (s *ScalingTrigger) Validate() error {
13562	invalidParams := request.ErrInvalidParams{Context: "ScalingTrigger"}
13563	if s.CloudWatchAlarmDefinition == nil {
13564		invalidParams.Add(request.NewErrParamRequired("CloudWatchAlarmDefinition"))
13565	}
13566	if s.CloudWatchAlarmDefinition != nil {
13567		if err := s.CloudWatchAlarmDefinition.Validate(); err != nil {
13568			invalidParams.AddNested("CloudWatchAlarmDefinition", err.(request.ErrInvalidParams))
13569		}
13570	}
13571
13572	if invalidParams.Len() > 0 {
13573		return invalidParams
13574	}
13575	return nil
13576}
13577
13578// SetCloudWatchAlarmDefinition sets the CloudWatchAlarmDefinition field's value.
13579func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefinition) *ScalingTrigger {
13580	s.CloudWatchAlarmDefinition = v
13581	return s
13582}
13583
13584// Configuration of the script to run during a bootstrap action.
13585type ScriptBootstrapActionConfig struct {
13586	_ struct{} `type:"structure"`
13587
13588	// A list of command line arguments to pass to the bootstrap action script.
13589	Args []*string `type:"list"`
13590
13591	// Location of the script to run during a bootstrap action. Can be either a
13592	// location in Amazon S3 or on a local file system.
13593	//
13594	// Path is a required field
13595	Path *string `type:"string" required:"true"`
13596}
13597
13598// String returns the string representation
13599func (s ScriptBootstrapActionConfig) String() string {
13600	return awsutil.Prettify(s)
13601}
13602
13603// GoString returns the string representation
13604func (s ScriptBootstrapActionConfig) GoString() string {
13605	return s.String()
13606}
13607
13608// Validate inspects the fields of the type to determine if they are valid.
13609func (s *ScriptBootstrapActionConfig) Validate() error {
13610	invalidParams := request.ErrInvalidParams{Context: "ScriptBootstrapActionConfig"}
13611	if s.Path == nil {
13612		invalidParams.Add(request.NewErrParamRequired("Path"))
13613	}
13614
13615	if invalidParams.Len() > 0 {
13616		return invalidParams
13617	}
13618	return nil
13619}
13620
13621// SetArgs sets the Args field's value.
13622func (s *ScriptBootstrapActionConfig) SetArgs(v []*string) *ScriptBootstrapActionConfig {
13623	s.Args = v
13624	return s
13625}
13626
13627// SetPath sets the Path field's value.
13628func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionConfig {
13629	s.Path = &v
13630	return s
13631}
13632
13633// The creation date and time, and name, of a security configuration.
13634type SecurityConfigurationSummary struct {
13635	_ struct{} `type:"structure"`
13636
13637	// The date and time the security configuration was created.
13638	CreationDateTime *time.Time `type:"timestamp"`
13639
13640	// The name of the security configuration.
13641	Name *string `type:"string"`
13642}
13643
13644// String returns the string representation
13645func (s SecurityConfigurationSummary) String() string {
13646	return awsutil.Prettify(s)
13647}
13648
13649// GoString returns the string representation
13650func (s SecurityConfigurationSummary) GoString() string {
13651	return s.String()
13652}
13653
13654// SetCreationDateTime sets the CreationDateTime field's value.
13655func (s *SecurityConfigurationSummary) SetCreationDateTime(v time.Time) *SecurityConfigurationSummary {
13656	s.CreationDateTime = &v
13657	return s
13658}
13659
13660// SetName sets the Name field's value.
13661func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationSummary {
13662	s.Name = &v
13663	return s
13664}
13665
13666// Details for an Amazon EMR Studio session mapping including creation time,
13667// user or group ID, Studio ID, and so on.
13668type SessionMappingDetail struct {
13669	_ struct{} `type:"structure"`
13670
13671	// The time the session mapping was created.
13672	CreationTime *time.Time `type:"timestamp"`
13673
13674	// The globally unique identifier (GUID) of the user or group.
13675	IdentityId *string `type:"string"`
13676
13677	// 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-UserId)
13678	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
13679	// in the AWS SSO Identity Store API Reference.
13680	IdentityName *string `type:"string"`
13681
13682	// Specifies whether the identity mapped to the Studio is a user or a group.
13683	IdentityType *string `type:"string" enum:"IdentityType"`
13684
13685	// The time the session mapping was last modified.
13686	LastModifiedTime *time.Time `type:"timestamp"`
13687
13688	// The Amazon Resource Name (ARN) of the session policy associated with the
13689	// user or group.
13690	SessionPolicyArn *string `type:"string"`
13691
13692	// The ID of the Amazon EMR Studio.
13693	StudioId *string `type:"string"`
13694}
13695
13696// String returns the string representation
13697func (s SessionMappingDetail) String() string {
13698	return awsutil.Prettify(s)
13699}
13700
13701// GoString returns the string representation
13702func (s SessionMappingDetail) GoString() string {
13703	return s.String()
13704}
13705
13706// SetCreationTime sets the CreationTime field's value.
13707func (s *SessionMappingDetail) SetCreationTime(v time.Time) *SessionMappingDetail {
13708	s.CreationTime = &v
13709	return s
13710}
13711
13712// SetIdentityId sets the IdentityId field's value.
13713func (s *SessionMappingDetail) SetIdentityId(v string) *SessionMappingDetail {
13714	s.IdentityId = &v
13715	return s
13716}
13717
13718// SetIdentityName sets the IdentityName field's value.
13719func (s *SessionMappingDetail) SetIdentityName(v string) *SessionMappingDetail {
13720	s.IdentityName = &v
13721	return s
13722}
13723
13724// SetIdentityType sets the IdentityType field's value.
13725func (s *SessionMappingDetail) SetIdentityType(v string) *SessionMappingDetail {
13726	s.IdentityType = &v
13727	return s
13728}
13729
13730// SetLastModifiedTime sets the LastModifiedTime field's value.
13731func (s *SessionMappingDetail) SetLastModifiedTime(v time.Time) *SessionMappingDetail {
13732	s.LastModifiedTime = &v
13733	return s
13734}
13735
13736// SetSessionPolicyArn sets the SessionPolicyArn field's value.
13737func (s *SessionMappingDetail) SetSessionPolicyArn(v string) *SessionMappingDetail {
13738	s.SessionPolicyArn = &v
13739	return s
13740}
13741
13742// SetStudioId sets the StudioId field's value.
13743func (s *SessionMappingDetail) SetStudioId(v string) *SessionMappingDetail {
13744	s.StudioId = &v
13745	return s
13746}
13747
13748// Details for an Amazon EMR Studio session mapping. The details do not include
13749// the time the session mapping was last modified.
13750type SessionMappingSummary struct {
13751	_ struct{} `type:"structure"`
13752
13753	// The time the session mapping was created.
13754	CreationTime *time.Time `type:"timestamp"`
13755
13756	// The globally unique identifier (GUID) of the user or group from the AWS SSO
13757	// Identity Store.
13758	IdentityId *string `type:"string"`
13759
13760	// 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-UserId)
13761	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
13762	// in the AWS SSO Identity Store API Reference.
13763	IdentityName *string `type:"string"`
13764
13765	// Specifies whether the identity mapped to the Studio is a user or a group.
13766	IdentityType *string `type:"string" enum:"IdentityType"`
13767
13768	// The Amazon Resource Name (ARN) of the session policy associated with the
13769	// user or group.
13770	SessionPolicyArn *string `type:"string"`
13771
13772	// The ID of the Amazon EMR Studio.
13773	StudioId *string `type:"string"`
13774}
13775
13776// String returns the string representation
13777func (s SessionMappingSummary) String() string {
13778	return awsutil.Prettify(s)
13779}
13780
13781// GoString returns the string representation
13782func (s SessionMappingSummary) GoString() string {
13783	return s.String()
13784}
13785
13786// SetCreationTime sets the CreationTime field's value.
13787func (s *SessionMappingSummary) SetCreationTime(v time.Time) *SessionMappingSummary {
13788	s.CreationTime = &v
13789	return s
13790}
13791
13792// SetIdentityId sets the IdentityId field's value.
13793func (s *SessionMappingSummary) SetIdentityId(v string) *SessionMappingSummary {
13794	s.IdentityId = &v
13795	return s
13796}
13797
13798// SetIdentityName sets the IdentityName field's value.
13799func (s *SessionMappingSummary) SetIdentityName(v string) *SessionMappingSummary {
13800	s.IdentityName = &v
13801	return s
13802}
13803
13804// SetIdentityType sets the IdentityType field's value.
13805func (s *SessionMappingSummary) SetIdentityType(v string) *SessionMappingSummary {
13806	s.IdentityType = &v
13807	return s
13808}
13809
13810// SetSessionPolicyArn sets the SessionPolicyArn field's value.
13811func (s *SessionMappingSummary) SetSessionPolicyArn(v string) *SessionMappingSummary {
13812	s.SessionPolicyArn = &v
13813	return s
13814}
13815
13816// SetStudioId sets the StudioId field's value.
13817func (s *SessionMappingSummary) SetStudioId(v string) *SessionMappingSummary {
13818	s.StudioId = &v
13819	return s
13820}
13821
13822// The input argument to the TerminationProtection operation.
13823type SetTerminationProtectionInput struct {
13824	_ struct{} `type:"structure"`
13825
13826	// A list of strings that uniquely identify the clusters to protect. This identifier
13827	// is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
13828	//
13829	// JobFlowIds is a required field
13830	JobFlowIds []*string `type:"list" required:"true"`
13831
13832	// A Boolean that indicates whether to protect the cluster and prevent the Amazon
13833	// EC2 instances in the cluster from shutting down due to API calls, user intervention,
13834	// or job-flow error.
13835	//
13836	// TerminationProtected is a required field
13837	TerminationProtected *bool `type:"boolean" required:"true"`
13838}
13839
13840// String returns the string representation
13841func (s SetTerminationProtectionInput) String() string {
13842	return awsutil.Prettify(s)
13843}
13844
13845// GoString returns the string representation
13846func (s SetTerminationProtectionInput) GoString() string {
13847	return s.String()
13848}
13849
13850// Validate inspects the fields of the type to determine if they are valid.
13851func (s *SetTerminationProtectionInput) Validate() error {
13852	invalidParams := request.ErrInvalidParams{Context: "SetTerminationProtectionInput"}
13853	if s.JobFlowIds == nil {
13854		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
13855	}
13856	if s.TerminationProtected == nil {
13857		invalidParams.Add(request.NewErrParamRequired("TerminationProtected"))
13858	}
13859
13860	if invalidParams.Len() > 0 {
13861		return invalidParams
13862	}
13863	return nil
13864}
13865
13866// SetJobFlowIds sets the JobFlowIds field's value.
13867func (s *SetTerminationProtectionInput) SetJobFlowIds(v []*string) *SetTerminationProtectionInput {
13868	s.JobFlowIds = v
13869	return s
13870}
13871
13872// SetTerminationProtected sets the TerminationProtected field's value.
13873func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerminationProtectionInput {
13874	s.TerminationProtected = &v
13875	return s
13876}
13877
13878type SetTerminationProtectionOutput struct {
13879	_ struct{} `type:"structure"`
13880}
13881
13882// String returns the string representation
13883func (s SetTerminationProtectionOutput) String() string {
13884	return awsutil.Prettify(s)
13885}
13886
13887// GoString returns the string representation
13888func (s SetTerminationProtectionOutput) GoString() string {
13889	return s.String()
13890}
13891
13892// The input to the SetVisibleToAllUsers action.
13893type SetVisibleToAllUsersInput struct {
13894	_ struct{} `type:"structure"`
13895
13896	// The unique identifier of the job flow (cluster).
13897	//
13898	// JobFlowIds is a required field
13899	JobFlowIds []*string `type:"list" required:"true"`
13900
13901	// A value of true indicates that all IAM users in the AWS account can perform
13902	// cluster actions if they have the proper IAM policy permissions. This is the
13903	// default. A value of false indicates that only the IAM user who created the
13904	// cluster can perform actions.
13905	//
13906	// VisibleToAllUsers is a required field
13907	VisibleToAllUsers *bool `type:"boolean" required:"true"`
13908}
13909
13910// String returns the string representation
13911func (s SetVisibleToAllUsersInput) String() string {
13912	return awsutil.Prettify(s)
13913}
13914
13915// GoString returns the string representation
13916func (s SetVisibleToAllUsersInput) GoString() string {
13917	return s.String()
13918}
13919
13920// Validate inspects the fields of the type to determine if they are valid.
13921func (s *SetVisibleToAllUsersInput) Validate() error {
13922	invalidParams := request.ErrInvalidParams{Context: "SetVisibleToAllUsersInput"}
13923	if s.JobFlowIds == nil {
13924		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
13925	}
13926	if s.VisibleToAllUsers == nil {
13927		invalidParams.Add(request.NewErrParamRequired("VisibleToAllUsers"))
13928	}
13929
13930	if invalidParams.Len() > 0 {
13931		return invalidParams
13932	}
13933	return nil
13934}
13935
13936// SetJobFlowIds sets the JobFlowIds field's value.
13937func (s *SetVisibleToAllUsersInput) SetJobFlowIds(v []*string) *SetVisibleToAllUsersInput {
13938	s.JobFlowIds = v
13939	return s
13940}
13941
13942// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
13943func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAllUsersInput {
13944	s.VisibleToAllUsers = &v
13945	return s
13946}
13947
13948type SetVisibleToAllUsersOutput struct {
13949	_ struct{} `type:"structure"`
13950}
13951
13952// String returns the string representation
13953func (s SetVisibleToAllUsersOutput) String() string {
13954	return awsutil.Prettify(s)
13955}
13956
13957// GoString returns the string representation
13958func (s SetVisibleToAllUsersOutput) GoString() string {
13959	return s.String()
13960}
13961
13962// Policy for customizing shrink operations. Allows configuration of decommissioning
13963// timeout and targeted instance shrinking.
13964type ShrinkPolicy struct {
13965	_ struct{} `type:"structure"`
13966
13967	// The desired timeout for decommissioning an instance. Overrides the default
13968	// YARN decommissioning timeout.
13969	DecommissionTimeout *int64 `type:"integer"`
13970
13971	// Custom policy for requesting termination protection or termination of specific
13972	// instances when shrinking an instance group.
13973	InstanceResizePolicy *InstanceResizePolicy `type:"structure"`
13974}
13975
13976// String returns the string representation
13977func (s ShrinkPolicy) String() string {
13978	return awsutil.Prettify(s)
13979}
13980
13981// GoString returns the string representation
13982func (s ShrinkPolicy) GoString() string {
13983	return s.String()
13984}
13985
13986// SetDecommissionTimeout sets the DecommissionTimeout field's value.
13987func (s *ShrinkPolicy) SetDecommissionTimeout(v int64) *ShrinkPolicy {
13988	s.DecommissionTimeout = &v
13989	return s
13990}
13991
13992// SetInstanceResizePolicy sets the InstanceResizePolicy field's value.
13993func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkPolicy {
13994	s.InstanceResizePolicy = v
13995	return s
13996}
13997
13998// An automatic scaling configuration, which describes how the policy adds or
13999// removes instances, the cooldown period, and the number of EC2 instances that
14000// will be added each time the CloudWatch metric alarm condition is satisfied.
14001type SimpleScalingPolicyConfiguration struct {
14002	_ struct{} `type:"structure"`
14003
14004	// The way in which EC2 instances are added (if ScalingAdjustment is a positive
14005	// number) or terminated (if ScalingAdjustment is a negative number) each time
14006	// the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY
14007	// indicates that the EC2 instance count increments or decrements by ScalingAdjustment,
14008	// which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates
14009	// the instance count increments or decrements by the percentage specified by
14010	// ScalingAdjustment, which should be expressed as an integer. For example,
14011	// 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY
14012	// indicates the scaling activity results in an instance group with the number
14013	// of EC2 instances specified by ScalingAdjustment, which should be expressed
14014	// as a positive integer.
14015	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
14016
14017	// The amount of time, in seconds, after a scaling activity completes before
14018	// any further trigger-related scaling activities can start. The default value
14019	// is 0.
14020	CoolDown *int64 `type:"integer"`
14021
14022	// The amount by which to scale in or scale out, based on the specified AdjustmentType.
14023	// A positive value adds to the instance group's EC2 instance count while a
14024	// negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY,
14025	// the number should only be a positive integer. If AdjustmentType is set to
14026	// PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an
14027	// integer. For example, -20 indicates a decrease in 20% increments of cluster
14028	// capacity.
14029	//
14030	// ScalingAdjustment is a required field
14031	ScalingAdjustment *int64 `type:"integer" required:"true"`
14032}
14033
14034// String returns the string representation
14035func (s SimpleScalingPolicyConfiguration) String() string {
14036	return awsutil.Prettify(s)
14037}
14038
14039// GoString returns the string representation
14040func (s SimpleScalingPolicyConfiguration) GoString() string {
14041	return s.String()
14042}
14043
14044// Validate inspects the fields of the type to determine if they are valid.
14045func (s *SimpleScalingPolicyConfiguration) Validate() error {
14046	invalidParams := request.ErrInvalidParams{Context: "SimpleScalingPolicyConfiguration"}
14047	if s.ScalingAdjustment == nil {
14048		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
14049	}
14050
14051	if invalidParams.Len() > 0 {
14052		return invalidParams
14053	}
14054	return nil
14055}
14056
14057// SetAdjustmentType sets the AdjustmentType field's value.
14058func (s *SimpleScalingPolicyConfiguration) SetAdjustmentType(v string) *SimpleScalingPolicyConfiguration {
14059	s.AdjustmentType = &v
14060	return s
14061}
14062
14063// SetCoolDown sets the CoolDown field's value.
14064func (s *SimpleScalingPolicyConfiguration) SetCoolDown(v int64) *SimpleScalingPolicyConfiguration {
14065	s.CoolDown = &v
14066	return s
14067}
14068
14069// SetScalingAdjustment sets the ScalingAdjustment field's value.
14070func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *SimpleScalingPolicyConfiguration {
14071	s.ScalingAdjustment = &v
14072	return s
14073}
14074
14075// The launch specification for Spot Instances in the instance fleet, which
14076// determines the defined duration, provisioning timeout behavior, and allocation
14077// strategy.
14078//
14079// The instance fleet configuration is available only in Amazon EMR versions
14080// 4.8.0 and later, excluding 5.0.x versions. Spot Instance allocation strategy
14081// is available in Amazon EMR version 5.12.1 and later.
14082type SpotProvisioningSpecification struct {
14083	_ struct{} `type:"structure"`
14084
14085	// Specifies the strategy to use in launching Spot Instance fleets. Currently,
14086	// the only option is capacity-optimized (the default), which launches instances
14087	// from Spot Instance pools with optimal capacity for the number of instances
14088	// that are launching.
14089	AllocationStrategy *string `type:"string" enum:"SpotProvisioningAllocationStrategy"`
14090
14091	// The defined duration for Spot Instances (also known as Spot blocks) in minutes.
14092	// When specified, the Spot Instance does not terminate before the defined duration
14093	// expires, and defined duration pricing for Spot instances applies. Valid values
14094	// are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as
14095	// a Spot Instance receives its instance ID. At the end of the duration, Amazon
14096	// EC2 marks the Spot Instance for termination and provides a Spot Instance
14097	// termination notice, which gives the instance a two-minute warning before
14098	// it terminates.
14099	BlockDurationMinutes *int64 `type:"integer"`
14100
14101	// The action to take when TargetSpotCapacity has not been fulfilled when the
14102	// TimeoutDurationMinutes has expired; that is, when all Spot Instances could
14103	// not be provisioned within the Spot provisioning timeout. Valid values are
14104	// TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies
14105	// that if no Spot Instances are available, On-Demand Instances should be provisioned
14106	// to fulfill any remaining Spot capacity.
14107	//
14108	// TimeoutAction is a required field
14109	TimeoutAction *string `type:"string" required:"true" enum:"SpotProvisioningTimeoutAction"`
14110
14111	// The spot provisioning timeout period in minutes. If Spot Instances are not
14112	// provisioned within this time period, the TimeOutAction is taken. Minimum
14113	// value is 5 and maximum value is 1440. The timeout applies only during initial
14114	// provisioning, when the cluster is first created.
14115	//
14116	// TimeoutDurationMinutes is a required field
14117	TimeoutDurationMinutes *int64 `type:"integer" required:"true"`
14118}
14119
14120// String returns the string representation
14121func (s SpotProvisioningSpecification) String() string {
14122	return awsutil.Prettify(s)
14123}
14124
14125// GoString returns the string representation
14126func (s SpotProvisioningSpecification) GoString() string {
14127	return s.String()
14128}
14129
14130// Validate inspects the fields of the type to determine if they are valid.
14131func (s *SpotProvisioningSpecification) Validate() error {
14132	invalidParams := request.ErrInvalidParams{Context: "SpotProvisioningSpecification"}
14133	if s.TimeoutAction == nil {
14134		invalidParams.Add(request.NewErrParamRequired("TimeoutAction"))
14135	}
14136	if s.TimeoutDurationMinutes == nil {
14137		invalidParams.Add(request.NewErrParamRequired("TimeoutDurationMinutes"))
14138	}
14139
14140	if invalidParams.Len() > 0 {
14141		return invalidParams
14142	}
14143	return nil
14144}
14145
14146// SetAllocationStrategy sets the AllocationStrategy field's value.
14147func (s *SpotProvisioningSpecification) SetAllocationStrategy(v string) *SpotProvisioningSpecification {
14148	s.AllocationStrategy = &v
14149	return s
14150}
14151
14152// SetBlockDurationMinutes sets the BlockDurationMinutes field's value.
14153func (s *SpotProvisioningSpecification) SetBlockDurationMinutes(v int64) *SpotProvisioningSpecification {
14154	s.BlockDurationMinutes = &v
14155	return s
14156}
14157
14158// SetTimeoutAction sets the TimeoutAction field's value.
14159func (s *SpotProvisioningSpecification) SetTimeoutAction(v string) *SpotProvisioningSpecification {
14160	s.TimeoutAction = &v
14161	return s
14162}
14163
14164// SetTimeoutDurationMinutes sets the TimeoutDurationMinutes field's value.
14165func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *SpotProvisioningSpecification {
14166	s.TimeoutDurationMinutes = &v
14167	return s
14168}
14169
14170type StartNotebookExecutionInput struct {
14171	_ struct{} `type:"structure"`
14172
14173	// The unique identifier of the EMR Notebook to use for notebook execution.
14174	//
14175	// EditorId is a required field
14176	EditorId *string `type:"string" required:"true"`
14177
14178	// Specifies the execution engine (cluster) that runs the notebook execution.
14179	//
14180	// ExecutionEngine is a required field
14181	ExecutionEngine *ExecutionEngineConfig `type:"structure" required:"true"`
14182
14183	// An optional name for the notebook execution.
14184	NotebookExecutionName *string `type:"string"`
14185
14186	// The unique identifier of the Amazon EC2 security group to associate with
14187	// the EMR Notebook for this notebook execution.
14188	NotebookInstanceSecurityGroupId *string `type:"string"`
14189
14190	// Input parameters in JSON format passed to the EMR Notebook at runtime for
14191	// execution.
14192	NotebookParams *string `type:"string"`
14193
14194	// The path and file name of the notebook file for this execution, relative
14195	// to the path specified for the EMR Notebook. For example, if you specify a
14196	// path of s3://MyBucket/MyNotebooks when you create an EMR Notebook for a notebook
14197	// with an ID of e-ABCDEFGHIJK1234567890ABCD (the EditorID of this request),
14198	// and you specify a RelativePath of my_notebook_executions/notebook_execution.ipynb,
14199	// the location of the file for the notebook execution is s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb.
14200	//
14201	// RelativePath is a required field
14202	RelativePath *string `type:"string" required:"true"`
14203
14204	// The name or ARN of the IAM role that is used as the service role for Amazon
14205	// EMR (the EMR role) for the notebook execution.
14206	//
14207	// ServiceRole is a required field
14208	ServiceRole *string `type:"string" required:"true"`
14209
14210	// A list of tags associated with a notebook execution. Tags are user-defined
14211	// key-value pairs that consist of a required key string with a maximum of 128
14212	// characters and an optional value string with a maximum of 256 characters.
14213	Tags []*Tag `type:"list"`
14214}
14215
14216// String returns the string representation
14217func (s StartNotebookExecutionInput) String() string {
14218	return awsutil.Prettify(s)
14219}
14220
14221// GoString returns the string representation
14222func (s StartNotebookExecutionInput) GoString() string {
14223	return s.String()
14224}
14225
14226// Validate inspects the fields of the type to determine if they are valid.
14227func (s *StartNotebookExecutionInput) Validate() error {
14228	invalidParams := request.ErrInvalidParams{Context: "StartNotebookExecutionInput"}
14229	if s.EditorId == nil {
14230		invalidParams.Add(request.NewErrParamRequired("EditorId"))
14231	}
14232	if s.ExecutionEngine == nil {
14233		invalidParams.Add(request.NewErrParamRequired("ExecutionEngine"))
14234	}
14235	if s.RelativePath == nil {
14236		invalidParams.Add(request.NewErrParamRequired("RelativePath"))
14237	}
14238	if s.ServiceRole == nil {
14239		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
14240	}
14241	if s.ExecutionEngine != nil {
14242		if err := s.ExecutionEngine.Validate(); err != nil {
14243			invalidParams.AddNested("ExecutionEngine", err.(request.ErrInvalidParams))
14244		}
14245	}
14246
14247	if invalidParams.Len() > 0 {
14248		return invalidParams
14249	}
14250	return nil
14251}
14252
14253// SetEditorId sets the EditorId field's value.
14254func (s *StartNotebookExecutionInput) SetEditorId(v string) *StartNotebookExecutionInput {
14255	s.EditorId = &v
14256	return s
14257}
14258
14259// SetExecutionEngine sets the ExecutionEngine field's value.
14260func (s *StartNotebookExecutionInput) SetExecutionEngine(v *ExecutionEngineConfig) *StartNotebookExecutionInput {
14261	s.ExecutionEngine = v
14262	return s
14263}
14264
14265// SetNotebookExecutionName sets the NotebookExecutionName field's value.
14266func (s *StartNotebookExecutionInput) SetNotebookExecutionName(v string) *StartNotebookExecutionInput {
14267	s.NotebookExecutionName = &v
14268	return s
14269}
14270
14271// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
14272func (s *StartNotebookExecutionInput) SetNotebookInstanceSecurityGroupId(v string) *StartNotebookExecutionInput {
14273	s.NotebookInstanceSecurityGroupId = &v
14274	return s
14275}
14276
14277// SetNotebookParams sets the NotebookParams field's value.
14278func (s *StartNotebookExecutionInput) SetNotebookParams(v string) *StartNotebookExecutionInput {
14279	s.NotebookParams = &v
14280	return s
14281}
14282
14283// SetRelativePath sets the RelativePath field's value.
14284func (s *StartNotebookExecutionInput) SetRelativePath(v string) *StartNotebookExecutionInput {
14285	s.RelativePath = &v
14286	return s
14287}
14288
14289// SetServiceRole sets the ServiceRole field's value.
14290func (s *StartNotebookExecutionInput) SetServiceRole(v string) *StartNotebookExecutionInput {
14291	s.ServiceRole = &v
14292	return s
14293}
14294
14295// SetTags sets the Tags field's value.
14296func (s *StartNotebookExecutionInput) SetTags(v []*Tag) *StartNotebookExecutionInput {
14297	s.Tags = v
14298	return s
14299}
14300
14301type StartNotebookExecutionOutput struct {
14302	_ struct{} `type:"structure"`
14303
14304	// The unique identifier of the notebook execution.
14305	NotebookExecutionId *string `type:"string"`
14306}
14307
14308// String returns the string representation
14309func (s StartNotebookExecutionOutput) String() string {
14310	return awsutil.Prettify(s)
14311}
14312
14313// GoString returns the string representation
14314func (s StartNotebookExecutionOutput) GoString() string {
14315	return s.String()
14316}
14317
14318// SetNotebookExecutionId sets the NotebookExecutionId field's value.
14319func (s *StartNotebookExecutionOutput) SetNotebookExecutionId(v string) *StartNotebookExecutionOutput {
14320	s.NotebookExecutionId = &v
14321	return s
14322}
14323
14324// This represents a step in a cluster.
14325type Step struct {
14326	_ struct{} `type:"structure"`
14327
14328	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
14329	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
14330	// compatibility. We recommend using TERMINATE_CLUSTER instead.
14331	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
14332
14333	// The Hadoop job configuration of the cluster step.
14334	Config *HadoopStepConfig `type:"structure"`
14335
14336	// The identifier of the cluster step.
14337	Id *string `type:"string"`
14338
14339	// The name of the cluster step.
14340	Name *string `type:"string"`
14341
14342	// The current execution status details of the cluster step.
14343	Status *StepStatus `type:"structure"`
14344}
14345
14346// String returns the string representation
14347func (s Step) String() string {
14348	return awsutil.Prettify(s)
14349}
14350
14351// GoString returns the string representation
14352func (s Step) GoString() string {
14353	return s.String()
14354}
14355
14356// SetActionOnFailure sets the ActionOnFailure field's value.
14357func (s *Step) SetActionOnFailure(v string) *Step {
14358	s.ActionOnFailure = &v
14359	return s
14360}
14361
14362// SetConfig sets the Config field's value.
14363func (s *Step) SetConfig(v *HadoopStepConfig) *Step {
14364	s.Config = v
14365	return s
14366}
14367
14368// SetId sets the Id field's value.
14369func (s *Step) SetId(v string) *Step {
14370	s.Id = &v
14371	return s
14372}
14373
14374// SetName sets the Name field's value.
14375func (s *Step) SetName(v string) *Step {
14376	s.Name = &v
14377	return s
14378}
14379
14380// SetStatus sets the Status field's value.
14381func (s *Step) SetStatus(v *StepStatus) *Step {
14382	s.Status = v
14383	return s
14384}
14385
14386// Specification of a cluster (job flow) step.
14387type StepConfig struct {
14388	_ struct{} `type:"structure"`
14389
14390	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
14391	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
14392	// compatibility. We recommend using TERMINATE_CLUSTER instead.
14393	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
14394
14395	// The JAR file used for the step.
14396	//
14397	// HadoopJarStep is a required field
14398	HadoopJarStep *HadoopJarStepConfig `type:"structure" required:"true"`
14399
14400	// The name of the step.
14401	//
14402	// Name is a required field
14403	Name *string `type:"string" required:"true"`
14404}
14405
14406// String returns the string representation
14407func (s StepConfig) String() string {
14408	return awsutil.Prettify(s)
14409}
14410
14411// GoString returns the string representation
14412func (s StepConfig) GoString() string {
14413	return s.String()
14414}
14415
14416// Validate inspects the fields of the type to determine if they are valid.
14417func (s *StepConfig) Validate() error {
14418	invalidParams := request.ErrInvalidParams{Context: "StepConfig"}
14419	if s.HadoopJarStep == nil {
14420		invalidParams.Add(request.NewErrParamRequired("HadoopJarStep"))
14421	}
14422	if s.Name == nil {
14423		invalidParams.Add(request.NewErrParamRequired("Name"))
14424	}
14425	if s.HadoopJarStep != nil {
14426		if err := s.HadoopJarStep.Validate(); err != nil {
14427			invalidParams.AddNested("HadoopJarStep", err.(request.ErrInvalidParams))
14428		}
14429	}
14430
14431	if invalidParams.Len() > 0 {
14432		return invalidParams
14433	}
14434	return nil
14435}
14436
14437// SetActionOnFailure sets the ActionOnFailure field's value.
14438func (s *StepConfig) SetActionOnFailure(v string) *StepConfig {
14439	s.ActionOnFailure = &v
14440	return s
14441}
14442
14443// SetHadoopJarStep sets the HadoopJarStep field's value.
14444func (s *StepConfig) SetHadoopJarStep(v *HadoopJarStepConfig) *StepConfig {
14445	s.HadoopJarStep = v
14446	return s
14447}
14448
14449// SetName sets the Name field's value.
14450func (s *StepConfig) SetName(v string) *StepConfig {
14451	s.Name = &v
14452	return s
14453}
14454
14455// Combines the execution state and configuration of a step.
14456type StepDetail struct {
14457	_ struct{} `type:"structure"`
14458
14459	// The description of the step status.
14460	//
14461	// ExecutionStatusDetail is a required field
14462	ExecutionStatusDetail *StepExecutionStatusDetail `type:"structure" required:"true"`
14463
14464	// The step configuration.
14465	//
14466	// StepConfig is a required field
14467	StepConfig *StepConfig `type:"structure" required:"true"`
14468}
14469
14470// String returns the string representation
14471func (s StepDetail) String() string {
14472	return awsutil.Prettify(s)
14473}
14474
14475// GoString returns the string representation
14476func (s StepDetail) GoString() string {
14477	return s.String()
14478}
14479
14480// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
14481func (s *StepDetail) SetExecutionStatusDetail(v *StepExecutionStatusDetail) *StepDetail {
14482	s.ExecutionStatusDetail = v
14483	return s
14484}
14485
14486// SetStepConfig sets the StepConfig field's value.
14487func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail {
14488	s.StepConfig = v
14489	return s
14490}
14491
14492// The execution state of a step.
14493type StepExecutionStatusDetail struct {
14494	_ struct{} `type:"structure"`
14495
14496	// The creation date and time of the step.
14497	//
14498	// CreationDateTime is a required field
14499	CreationDateTime *time.Time `type:"timestamp" required:"true"`
14500
14501	// The completion date and time of the step.
14502	EndDateTime *time.Time `type:"timestamp"`
14503
14504	// A description of the step's current state.
14505	LastStateChangeReason *string `type:"string"`
14506
14507	// The start date and time of the step.
14508	StartDateTime *time.Time `type:"timestamp"`
14509
14510	// The state of the step.
14511	//
14512	// State is a required field
14513	State *string `type:"string" required:"true" enum:"StepExecutionState"`
14514}
14515
14516// String returns the string representation
14517func (s StepExecutionStatusDetail) String() string {
14518	return awsutil.Prettify(s)
14519}
14520
14521// GoString returns the string representation
14522func (s StepExecutionStatusDetail) GoString() string {
14523	return s.String()
14524}
14525
14526// SetCreationDateTime sets the CreationDateTime field's value.
14527func (s *StepExecutionStatusDetail) SetCreationDateTime(v time.Time) *StepExecutionStatusDetail {
14528	s.CreationDateTime = &v
14529	return s
14530}
14531
14532// SetEndDateTime sets the EndDateTime field's value.
14533func (s *StepExecutionStatusDetail) SetEndDateTime(v time.Time) *StepExecutionStatusDetail {
14534	s.EndDateTime = &v
14535	return s
14536}
14537
14538// SetLastStateChangeReason sets the LastStateChangeReason field's value.
14539func (s *StepExecutionStatusDetail) SetLastStateChangeReason(v string) *StepExecutionStatusDetail {
14540	s.LastStateChangeReason = &v
14541	return s
14542}
14543
14544// SetStartDateTime sets the StartDateTime field's value.
14545func (s *StepExecutionStatusDetail) SetStartDateTime(v time.Time) *StepExecutionStatusDetail {
14546	s.StartDateTime = &v
14547	return s
14548}
14549
14550// SetState sets the State field's value.
14551func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetail {
14552	s.State = &v
14553	return s
14554}
14555
14556// The details of the step state change reason.
14557type StepStateChangeReason struct {
14558	_ struct{} `type:"structure"`
14559
14560	// The programmable code for the state change reason. Note: Currently, the service
14561	// provides no code for the state change.
14562	Code *string `type:"string" enum:"StepStateChangeReasonCode"`
14563
14564	// The descriptive message for the state change reason.
14565	Message *string `type:"string"`
14566}
14567
14568// String returns the string representation
14569func (s StepStateChangeReason) String() string {
14570	return awsutil.Prettify(s)
14571}
14572
14573// GoString returns the string representation
14574func (s StepStateChangeReason) GoString() string {
14575	return s.String()
14576}
14577
14578// SetCode sets the Code field's value.
14579func (s *StepStateChangeReason) SetCode(v string) *StepStateChangeReason {
14580	s.Code = &v
14581	return s
14582}
14583
14584// SetMessage sets the Message field's value.
14585func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason {
14586	s.Message = &v
14587	return s
14588}
14589
14590// The execution status details of the cluster step.
14591type StepStatus struct {
14592	_ struct{} `type:"structure"`
14593
14594	// The details for the step failure including reason, message, and log file
14595	// path where the root cause was identified.
14596	FailureDetails *FailureDetails `type:"structure"`
14597
14598	// The execution state of the cluster step.
14599	State *string `type:"string" enum:"StepState"`
14600
14601	// The reason for the step execution status change.
14602	StateChangeReason *StepStateChangeReason `type:"structure"`
14603
14604	// The timeline of the cluster step status over time.
14605	Timeline *StepTimeline `type:"structure"`
14606}
14607
14608// String returns the string representation
14609func (s StepStatus) String() string {
14610	return awsutil.Prettify(s)
14611}
14612
14613// GoString returns the string representation
14614func (s StepStatus) GoString() string {
14615	return s.String()
14616}
14617
14618// SetFailureDetails sets the FailureDetails field's value.
14619func (s *StepStatus) SetFailureDetails(v *FailureDetails) *StepStatus {
14620	s.FailureDetails = v
14621	return s
14622}
14623
14624// SetState sets the State field's value.
14625func (s *StepStatus) SetState(v string) *StepStatus {
14626	s.State = &v
14627	return s
14628}
14629
14630// SetStateChangeReason sets the StateChangeReason field's value.
14631func (s *StepStatus) SetStateChangeReason(v *StepStateChangeReason) *StepStatus {
14632	s.StateChangeReason = v
14633	return s
14634}
14635
14636// SetTimeline sets the Timeline field's value.
14637func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus {
14638	s.Timeline = v
14639	return s
14640}
14641
14642// The summary of the cluster step.
14643type StepSummary struct {
14644	_ struct{} `type:"structure"`
14645
14646	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
14647	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is available for backward
14648	// compatibility. We recommend using TERMINATE_CLUSTER instead.
14649	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
14650
14651	// The Hadoop job configuration of the cluster step.
14652	Config *HadoopStepConfig `type:"structure"`
14653
14654	// The identifier of the cluster step.
14655	Id *string `type:"string"`
14656
14657	// The name of the cluster step.
14658	Name *string `type:"string"`
14659
14660	// The current execution status details of the cluster step.
14661	Status *StepStatus `type:"structure"`
14662}
14663
14664// String returns the string representation
14665func (s StepSummary) String() string {
14666	return awsutil.Prettify(s)
14667}
14668
14669// GoString returns the string representation
14670func (s StepSummary) GoString() string {
14671	return s.String()
14672}
14673
14674// SetActionOnFailure sets the ActionOnFailure field's value.
14675func (s *StepSummary) SetActionOnFailure(v string) *StepSummary {
14676	s.ActionOnFailure = &v
14677	return s
14678}
14679
14680// SetConfig sets the Config field's value.
14681func (s *StepSummary) SetConfig(v *HadoopStepConfig) *StepSummary {
14682	s.Config = v
14683	return s
14684}
14685
14686// SetId sets the Id field's value.
14687func (s *StepSummary) SetId(v string) *StepSummary {
14688	s.Id = &v
14689	return s
14690}
14691
14692// SetName sets the Name field's value.
14693func (s *StepSummary) SetName(v string) *StepSummary {
14694	s.Name = &v
14695	return s
14696}
14697
14698// SetStatus sets the Status field's value.
14699func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary {
14700	s.Status = v
14701	return s
14702}
14703
14704// The timeline of the cluster step lifecycle.
14705type StepTimeline struct {
14706	_ struct{} `type:"structure"`
14707
14708	// The date and time when the cluster step was created.
14709	CreationDateTime *time.Time `type:"timestamp"`
14710
14711	// The date and time when the cluster step execution completed or failed.
14712	EndDateTime *time.Time `type:"timestamp"`
14713
14714	// The date and time when the cluster step execution started.
14715	StartDateTime *time.Time `type:"timestamp"`
14716}
14717
14718// String returns the string representation
14719func (s StepTimeline) String() string {
14720	return awsutil.Prettify(s)
14721}
14722
14723// GoString returns the string representation
14724func (s StepTimeline) GoString() string {
14725	return s.String()
14726}
14727
14728// SetCreationDateTime sets the CreationDateTime field's value.
14729func (s *StepTimeline) SetCreationDateTime(v time.Time) *StepTimeline {
14730	s.CreationDateTime = &v
14731	return s
14732}
14733
14734// SetEndDateTime sets the EndDateTime field's value.
14735func (s *StepTimeline) SetEndDateTime(v time.Time) *StepTimeline {
14736	s.EndDateTime = &v
14737	return s
14738}
14739
14740// SetStartDateTime sets the StartDateTime field's value.
14741func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline {
14742	s.StartDateTime = &v
14743	return s
14744}
14745
14746type StopNotebookExecutionInput struct {
14747	_ struct{} `type:"structure"`
14748
14749	// The unique identifier of the notebook execution.
14750	//
14751	// NotebookExecutionId is a required field
14752	NotebookExecutionId *string `type:"string" required:"true"`
14753}
14754
14755// String returns the string representation
14756func (s StopNotebookExecutionInput) String() string {
14757	return awsutil.Prettify(s)
14758}
14759
14760// GoString returns the string representation
14761func (s StopNotebookExecutionInput) GoString() string {
14762	return s.String()
14763}
14764
14765// Validate inspects the fields of the type to determine if they are valid.
14766func (s *StopNotebookExecutionInput) Validate() error {
14767	invalidParams := request.ErrInvalidParams{Context: "StopNotebookExecutionInput"}
14768	if s.NotebookExecutionId == nil {
14769		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
14770	}
14771
14772	if invalidParams.Len() > 0 {
14773		return invalidParams
14774	}
14775	return nil
14776}
14777
14778// SetNotebookExecutionId sets the NotebookExecutionId field's value.
14779func (s *StopNotebookExecutionInput) SetNotebookExecutionId(v string) *StopNotebookExecutionInput {
14780	s.NotebookExecutionId = &v
14781	return s
14782}
14783
14784type StopNotebookExecutionOutput struct {
14785	_ struct{} `type:"structure"`
14786}
14787
14788// String returns the string representation
14789func (s StopNotebookExecutionOutput) String() string {
14790	return awsutil.Prettify(s)
14791}
14792
14793// GoString returns the string representation
14794func (s StopNotebookExecutionOutput) GoString() string {
14795	return s.String()
14796}
14797
14798// Details for an Amazon EMR Studio including ID, creation time, name, and so
14799// on.
14800type Studio struct {
14801	_ struct{} `type:"structure"`
14802
14803	// Specifies whether the Studio authenticates users using single sign-on (SSO)
14804	// or IAM.
14805	AuthMode *string `type:"string" enum:"AuthMode"`
14806
14807	// The time the Amazon EMR Studio was created.
14808	CreationTime *time.Time `type:"timestamp"`
14809
14810	// The default Amazon S3 location to back up Amazon EMR Studio Workspaces and
14811	// notebook files.
14812	DefaultS3Location *string `type:"string"`
14813
14814	// The detailed description of the EMR Studio.
14815	Description *string `type:"string"`
14816
14817	// The ID of the Engine security group associated with the Amazon EMR Studio.
14818	// The Engine security group allows inbound network traffic from resources in
14819	// the Workspace security group.
14820	EngineSecurityGroupId *string `type:"string"`
14821
14822	// The name of the EMR Studio.
14823	Name *string `type:"string"`
14824
14825	// The name of the IAM role assumed by the Amazon EMR Studio.
14826	ServiceRole *string `type:"string"`
14827
14828	// The Amazon Resource Name (ARN) of the EMR Studio.
14829	StudioArn *string `type:"string"`
14830
14831	// The ID of the EMR Studio.
14832	StudioId *string `type:"string"`
14833
14834	// The list of IDs of the subnets associated with the Amazon EMR Studio.
14835	SubnetIds []*string `type:"list"`
14836
14837	// A list of tags associated with the Amazon EMR Studio.
14838	Tags []*Tag `type:"list"`
14839
14840	// The unique access URL of the Amazon EMR Studio.
14841	Url *string `type:"string"`
14842
14843	// The name of the IAM role assumed by users logged in to the Amazon EMR Studio.
14844	UserRole *string `type:"string"`
14845
14846	// The ID of the VPC associated with the EMR Studio.
14847	VpcId *string `type:"string"`
14848
14849	// The ID of the Workspace security group associated with the Amazon EMR Studio.
14850	// The Workspace security group allows outbound network traffic to resources
14851	// in the Engine security group and to the internet.
14852	WorkspaceSecurityGroupId *string `type:"string"`
14853}
14854
14855// String returns the string representation
14856func (s Studio) String() string {
14857	return awsutil.Prettify(s)
14858}
14859
14860// GoString returns the string representation
14861func (s Studio) GoString() string {
14862	return s.String()
14863}
14864
14865// SetAuthMode sets the AuthMode field's value.
14866func (s *Studio) SetAuthMode(v string) *Studio {
14867	s.AuthMode = &v
14868	return s
14869}
14870
14871// SetCreationTime sets the CreationTime field's value.
14872func (s *Studio) SetCreationTime(v time.Time) *Studio {
14873	s.CreationTime = &v
14874	return s
14875}
14876
14877// SetDefaultS3Location sets the DefaultS3Location field's value.
14878func (s *Studio) SetDefaultS3Location(v string) *Studio {
14879	s.DefaultS3Location = &v
14880	return s
14881}
14882
14883// SetDescription sets the Description field's value.
14884func (s *Studio) SetDescription(v string) *Studio {
14885	s.Description = &v
14886	return s
14887}
14888
14889// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
14890func (s *Studio) SetEngineSecurityGroupId(v string) *Studio {
14891	s.EngineSecurityGroupId = &v
14892	return s
14893}
14894
14895// SetName sets the Name field's value.
14896func (s *Studio) SetName(v string) *Studio {
14897	s.Name = &v
14898	return s
14899}
14900
14901// SetServiceRole sets the ServiceRole field's value.
14902func (s *Studio) SetServiceRole(v string) *Studio {
14903	s.ServiceRole = &v
14904	return s
14905}
14906
14907// SetStudioArn sets the StudioArn field's value.
14908func (s *Studio) SetStudioArn(v string) *Studio {
14909	s.StudioArn = &v
14910	return s
14911}
14912
14913// SetStudioId sets the StudioId field's value.
14914func (s *Studio) SetStudioId(v string) *Studio {
14915	s.StudioId = &v
14916	return s
14917}
14918
14919// SetSubnetIds sets the SubnetIds field's value.
14920func (s *Studio) SetSubnetIds(v []*string) *Studio {
14921	s.SubnetIds = v
14922	return s
14923}
14924
14925// SetTags sets the Tags field's value.
14926func (s *Studio) SetTags(v []*Tag) *Studio {
14927	s.Tags = v
14928	return s
14929}
14930
14931// SetUrl sets the Url field's value.
14932func (s *Studio) SetUrl(v string) *Studio {
14933	s.Url = &v
14934	return s
14935}
14936
14937// SetUserRole sets the UserRole field's value.
14938func (s *Studio) SetUserRole(v string) *Studio {
14939	s.UserRole = &v
14940	return s
14941}
14942
14943// SetVpcId sets the VpcId field's value.
14944func (s *Studio) SetVpcId(v string) *Studio {
14945	s.VpcId = &v
14946	return s
14947}
14948
14949// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
14950func (s *Studio) SetWorkspaceSecurityGroupId(v string) *Studio {
14951	s.WorkspaceSecurityGroupId = &v
14952	return s
14953}
14954
14955// Details for an Amazon EMR Studio, including ID, Name, VPC, and Description.
14956// The details do not include subnets, IAM roles, security groups, or tags associated
14957// with the Studio.
14958type StudioSummary struct {
14959	_ struct{} `type:"structure"`
14960
14961	// The time when the Amazon EMR Studio was created.
14962	CreationTime *time.Time `type:"timestamp"`
14963
14964	// The detailed description of the EMR Studio.
14965	Description *string `type:"string"`
14966
14967	// The name of the Amazon EMR Studio.
14968	Name *string `type:"string"`
14969
14970	// The ID of the Amazon EMR Studio.
14971	StudioId *string `type:"string"`
14972
14973	// The unique access URL of the Amazon EMR Studio.
14974	Url *string `type:"string"`
14975
14976	// The ID of the Virtual Private Cloud (Amazon VPC) associated with the Amazon
14977	// EMR Studio.
14978	VpcId *string `type:"string"`
14979}
14980
14981// String returns the string representation
14982func (s StudioSummary) String() string {
14983	return awsutil.Prettify(s)
14984}
14985
14986// GoString returns the string representation
14987func (s StudioSummary) GoString() string {
14988	return s.String()
14989}
14990
14991// SetCreationTime sets the CreationTime field's value.
14992func (s *StudioSummary) SetCreationTime(v time.Time) *StudioSummary {
14993	s.CreationTime = &v
14994	return s
14995}
14996
14997// SetDescription sets the Description field's value.
14998func (s *StudioSummary) SetDescription(v string) *StudioSummary {
14999	s.Description = &v
15000	return s
15001}
15002
15003// SetName sets the Name field's value.
15004func (s *StudioSummary) SetName(v string) *StudioSummary {
15005	s.Name = &v
15006	return s
15007}
15008
15009// SetStudioId sets the StudioId field's value.
15010func (s *StudioSummary) SetStudioId(v string) *StudioSummary {
15011	s.StudioId = &v
15012	return s
15013}
15014
15015// SetUrl sets the Url field's value.
15016func (s *StudioSummary) SetUrl(v string) *StudioSummary {
15017	s.Url = &v
15018	return s
15019}
15020
15021// SetVpcId sets the VpcId field's value.
15022func (s *StudioSummary) SetVpcId(v string) *StudioSummary {
15023	s.VpcId = &v
15024	return s
15025}
15026
15027// The list of supported product configurations which allow user-supplied arguments.
15028// EMR accepts these arguments and forwards them to the corresponding installation
15029// script as bootstrap action arguments.
15030type SupportedProductConfig struct {
15031	_ struct{} `type:"structure"`
15032
15033	// The list of user-supplied arguments.
15034	Args []*string `type:"list"`
15035
15036	// The name of the product configuration.
15037	Name *string `type:"string"`
15038}
15039
15040// String returns the string representation
15041func (s SupportedProductConfig) String() string {
15042	return awsutil.Prettify(s)
15043}
15044
15045// GoString returns the string representation
15046func (s SupportedProductConfig) GoString() string {
15047	return s.String()
15048}
15049
15050// SetArgs sets the Args field's value.
15051func (s *SupportedProductConfig) SetArgs(v []*string) *SupportedProductConfig {
15052	s.Args = v
15053	return s
15054}
15055
15056// SetName sets the Name field's value.
15057func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig {
15058	s.Name = &v
15059	return s
15060}
15061
15062// A key-value pair containing user-defined metadata that you can associate
15063// with an Amazon EMR resource. Tags make it easier to associate clusters in
15064// various ways, such as grouping clusters to track your Amazon EMR resource
15065// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15066type Tag struct {
15067	_ struct{} `type:"structure"`
15068
15069	// A user-defined key, which is the minimum required information for a valid
15070	// tag. For more information, see Tag (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15071	Key *string `type:"string"`
15072
15073	// A user-defined value, which is optional in a tag. For more information, see
15074	// Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
15075	Value *string `type:"string"`
15076}
15077
15078// String returns the string representation
15079func (s Tag) String() string {
15080	return awsutil.Prettify(s)
15081}
15082
15083// GoString returns the string representation
15084func (s Tag) GoString() string {
15085	return s.String()
15086}
15087
15088// SetKey sets the Key field's value.
15089func (s *Tag) SetKey(v string) *Tag {
15090	s.Key = &v
15091	return s
15092}
15093
15094// SetValue sets the Value field's value.
15095func (s *Tag) SetValue(v string) *Tag {
15096	s.Value = &v
15097	return s
15098}
15099
15100// Input to the TerminateJobFlows operation.
15101type TerminateJobFlowsInput struct {
15102	_ struct{} `type:"structure"`
15103
15104	// A list of job flows to be shut down.
15105	//
15106	// JobFlowIds is a required field
15107	JobFlowIds []*string `type:"list" required:"true"`
15108}
15109
15110// String returns the string representation
15111func (s TerminateJobFlowsInput) String() string {
15112	return awsutil.Prettify(s)
15113}
15114
15115// GoString returns the string representation
15116func (s TerminateJobFlowsInput) GoString() string {
15117	return s.String()
15118}
15119
15120// Validate inspects the fields of the type to determine if they are valid.
15121func (s *TerminateJobFlowsInput) Validate() error {
15122	invalidParams := request.ErrInvalidParams{Context: "TerminateJobFlowsInput"}
15123	if s.JobFlowIds == nil {
15124		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
15125	}
15126
15127	if invalidParams.Len() > 0 {
15128		return invalidParams
15129	}
15130	return nil
15131}
15132
15133// SetJobFlowIds sets the JobFlowIds field's value.
15134func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsInput {
15135	s.JobFlowIds = v
15136	return s
15137}
15138
15139type TerminateJobFlowsOutput struct {
15140	_ struct{} `type:"structure"`
15141}
15142
15143// String returns the string representation
15144func (s TerminateJobFlowsOutput) String() string {
15145	return awsutil.Prettify(s)
15146}
15147
15148// GoString returns the string representation
15149func (s TerminateJobFlowsOutput) GoString() string {
15150	return s.String()
15151}
15152
15153type UpdateStudioSessionMappingInput struct {
15154	_ struct{} `type:"structure"`
15155
15156	// The globally unique identifier (GUID) of the user or group. For more information,
15157	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
15158	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
15159	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
15160	// must be specified.
15161	IdentityId *string `type:"string"`
15162
15163	// The name of the user or group to update. For more information, see UserName
15164	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
15165	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
15166	// in the AWS SSO Identity Store API Reference. Either IdentityName or IdentityId
15167	// must be specified.
15168	IdentityName *string `type:"string"`
15169
15170	// Specifies whether the identity to update is a user or a group.
15171	//
15172	// IdentityType is a required field
15173	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
15174
15175	// The Amazon Resource Name (ARN) of the session policy to associate with the
15176	// specified user or group.
15177	//
15178	// SessionPolicyArn is a required field
15179	SessionPolicyArn *string `type:"string" required:"true"`
15180
15181	// The ID of the EMR Studio.
15182	//
15183	// StudioId is a required field
15184	StudioId *string `type:"string" required:"true"`
15185}
15186
15187// String returns the string representation
15188func (s UpdateStudioSessionMappingInput) String() string {
15189	return awsutil.Prettify(s)
15190}
15191
15192// GoString returns the string representation
15193func (s UpdateStudioSessionMappingInput) GoString() string {
15194	return s.String()
15195}
15196
15197// Validate inspects the fields of the type to determine if they are valid.
15198func (s *UpdateStudioSessionMappingInput) Validate() error {
15199	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioSessionMappingInput"}
15200	if s.IdentityType == nil {
15201		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
15202	}
15203	if s.SessionPolicyArn == nil {
15204		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
15205	}
15206	if s.StudioId == nil {
15207		invalidParams.Add(request.NewErrParamRequired("StudioId"))
15208	}
15209
15210	if invalidParams.Len() > 0 {
15211		return invalidParams
15212	}
15213	return nil
15214}
15215
15216// SetIdentityId sets the IdentityId field's value.
15217func (s *UpdateStudioSessionMappingInput) SetIdentityId(v string) *UpdateStudioSessionMappingInput {
15218	s.IdentityId = &v
15219	return s
15220}
15221
15222// SetIdentityName sets the IdentityName field's value.
15223func (s *UpdateStudioSessionMappingInput) SetIdentityName(v string) *UpdateStudioSessionMappingInput {
15224	s.IdentityName = &v
15225	return s
15226}
15227
15228// SetIdentityType sets the IdentityType field's value.
15229func (s *UpdateStudioSessionMappingInput) SetIdentityType(v string) *UpdateStudioSessionMappingInput {
15230	s.IdentityType = &v
15231	return s
15232}
15233
15234// SetSessionPolicyArn sets the SessionPolicyArn field's value.
15235func (s *UpdateStudioSessionMappingInput) SetSessionPolicyArn(v string) *UpdateStudioSessionMappingInput {
15236	s.SessionPolicyArn = &v
15237	return s
15238}
15239
15240// SetStudioId sets the StudioId field's value.
15241func (s *UpdateStudioSessionMappingInput) SetStudioId(v string) *UpdateStudioSessionMappingInput {
15242	s.StudioId = &v
15243	return s
15244}
15245
15246type UpdateStudioSessionMappingOutput struct {
15247	_ struct{} `type:"structure"`
15248}
15249
15250// String returns the string representation
15251func (s UpdateStudioSessionMappingOutput) String() string {
15252	return awsutil.Prettify(s)
15253}
15254
15255// GoString returns the string representation
15256func (s UpdateStudioSessionMappingOutput) GoString() string {
15257	return s.String()
15258}
15259
15260// EBS volume specifications such as volume type, IOPS, and size (GiB) that
15261// will be requested for the EBS volume attached to an EC2 instance in the cluster.
15262type VolumeSpecification struct {
15263	_ struct{} `type:"structure"`
15264
15265	// The number of I/O operations per second (IOPS) that the volume supports.
15266	Iops *int64 `type:"integer"`
15267
15268	// The volume size, in gibibytes (GiB). This can be a number from 1 - 1024.
15269	// If the volume type is EBS-optimized, the minimum value is 10.
15270	//
15271	// SizeInGB is a required field
15272	SizeInGB *int64 `type:"integer" required:"true"`
15273
15274	// The volume type. Volume types supported are gp2, io1, standard.
15275	//
15276	// VolumeType is a required field
15277	VolumeType *string `type:"string" required:"true"`
15278}
15279
15280// String returns the string representation
15281func (s VolumeSpecification) String() string {
15282	return awsutil.Prettify(s)
15283}
15284
15285// GoString returns the string representation
15286func (s VolumeSpecification) GoString() string {
15287	return s.String()
15288}
15289
15290// Validate inspects the fields of the type to determine if they are valid.
15291func (s *VolumeSpecification) Validate() error {
15292	invalidParams := request.ErrInvalidParams{Context: "VolumeSpecification"}
15293	if s.SizeInGB == nil {
15294		invalidParams.Add(request.NewErrParamRequired("SizeInGB"))
15295	}
15296	if s.VolumeType == nil {
15297		invalidParams.Add(request.NewErrParamRequired("VolumeType"))
15298	}
15299
15300	if invalidParams.Len() > 0 {
15301		return invalidParams
15302	}
15303	return nil
15304}
15305
15306// SetIops sets the Iops field's value.
15307func (s *VolumeSpecification) SetIops(v int64) *VolumeSpecification {
15308	s.Iops = &v
15309	return s
15310}
15311
15312// SetSizeInGB sets the SizeInGB field's value.
15313func (s *VolumeSpecification) SetSizeInGB(v int64) *VolumeSpecification {
15314	s.SizeInGB = &v
15315	return s
15316}
15317
15318// SetVolumeType sets the VolumeType field's value.
15319func (s *VolumeSpecification) SetVolumeType(v string) *VolumeSpecification {
15320	s.VolumeType = &v
15321	return s
15322}
15323
15324const (
15325	// ActionOnFailureTerminateJobFlow is a ActionOnFailure enum value
15326	ActionOnFailureTerminateJobFlow = "TERMINATE_JOB_FLOW"
15327
15328	// ActionOnFailureTerminateCluster is a ActionOnFailure enum value
15329	ActionOnFailureTerminateCluster = "TERMINATE_CLUSTER"
15330
15331	// ActionOnFailureCancelAndWait is a ActionOnFailure enum value
15332	ActionOnFailureCancelAndWait = "CANCEL_AND_WAIT"
15333
15334	// ActionOnFailureContinue is a ActionOnFailure enum value
15335	ActionOnFailureContinue = "CONTINUE"
15336)
15337
15338// ActionOnFailure_Values returns all elements of the ActionOnFailure enum
15339func ActionOnFailure_Values() []string {
15340	return []string{
15341		ActionOnFailureTerminateJobFlow,
15342		ActionOnFailureTerminateCluster,
15343		ActionOnFailureCancelAndWait,
15344		ActionOnFailureContinue,
15345	}
15346}
15347
15348const (
15349	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
15350	AdjustmentTypeChangeInCapacity = "CHANGE_IN_CAPACITY"
15351
15352	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
15353	AdjustmentTypePercentChangeInCapacity = "PERCENT_CHANGE_IN_CAPACITY"
15354
15355	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
15356	AdjustmentTypeExactCapacity = "EXACT_CAPACITY"
15357)
15358
15359// AdjustmentType_Values returns all elements of the AdjustmentType enum
15360func AdjustmentType_Values() []string {
15361	return []string{
15362		AdjustmentTypeChangeInCapacity,
15363		AdjustmentTypePercentChangeInCapacity,
15364		AdjustmentTypeExactCapacity,
15365	}
15366}
15367
15368const (
15369	// AuthModeSso is a AuthMode enum value
15370	AuthModeSso = "SSO"
15371
15372	// AuthModeIam is a AuthMode enum value
15373	AuthModeIam = "IAM"
15374)
15375
15376// AuthMode_Values returns all elements of the AuthMode enum
15377func AuthMode_Values() []string {
15378	return []string{
15379		AuthModeSso,
15380		AuthModeIam,
15381	}
15382}
15383
15384const (
15385	// AutoScalingPolicyStatePending is a AutoScalingPolicyState enum value
15386	AutoScalingPolicyStatePending = "PENDING"
15387
15388	// AutoScalingPolicyStateAttaching is a AutoScalingPolicyState enum value
15389	AutoScalingPolicyStateAttaching = "ATTACHING"
15390
15391	// AutoScalingPolicyStateAttached is a AutoScalingPolicyState enum value
15392	AutoScalingPolicyStateAttached = "ATTACHED"
15393
15394	// AutoScalingPolicyStateDetaching is a AutoScalingPolicyState enum value
15395	AutoScalingPolicyStateDetaching = "DETACHING"
15396
15397	// AutoScalingPolicyStateDetached is a AutoScalingPolicyState enum value
15398	AutoScalingPolicyStateDetached = "DETACHED"
15399
15400	// AutoScalingPolicyStateFailed is a AutoScalingPolicyState enum value
15401	AutoScalingPolicyStateFailed = "FAILED"
15402)
15403
15404// AutoScalingPolicyState_Values returns all elements of the AutoScalingPolicyState enum
15405func AutoScalingPolicyState_Values() []string {
15406	return []string{
15407		AutoScalingPolicyStatePending,
15408		AutoScalingPolicyStateAttaching,
15409		AutoScalingPolicyStateAttached,
15410		AutoScalingPolicyStateDetaching,
15411		AutoScalingPolicyStateDetached,
15412		AutoScalingPolicyStateFailed,
15413	}
15414}
15415
15416const (
15417	// AutoScalingPolicyStateChangeReasonCodeUserRequest is a AutoScalingPolicyStateChangeReasonCode enum value
15418	AutoScalingPolicyStateChangeReasonCodeUserRequest = "USER_REQUEST"
15419
15420	// AutoScalingPolicyStateChangeReasonCodeProvisionFailure is a AutoScalingPolicyStateChangeReasonCode enum value
15421	AutoScalingPolicyStateChangeReasonCodeProvisionFailure = "PROVISION_FAILURE"
15422
15423	// AutoScalingPolicyStateChangeReasonCodeCleanupFailure is a AutoScalingPolicyStateChangeReasonCode enum value
15424	AutoScalingPolicyStateChangeReasonCodeCleanupFailure = "CLEANUP_FAILURE"
15425)
15426
15427// AutoScalingPolicyStateChangeReasonCode_Values returns all elements of the AutoScalingPolicyStateChangeReasonCode enum
15428func AutoScalingPolicyStateChangeReasonCode_Values() []string {
15429	return []string{
15430		AutoScalingPolicyStateChangeReasonCodeUserRequest,
15431		AutoScalingPolicyStateChangeReasonCodeProvisionFailure,
15432		AutoScalingPolicyStateChangeReasonCodeCleanupFailure,
15433	}
15434}
15435
15436const (
15437	// CancelStepsRequestStatusSubmitted is a CancelStepsRequestStatus enum value
15438	CancelStepsRequestStatusSubmitted = "SUBMITTED"
15439
15440	// CancelStepsRequestStatusFailed is a CancelStepsRequestStatus enum value
15441	CancelStepsRequestStatusFailed = "FAILED"
15442)
15443
15444// CancelStepsRequestStatus_Values returns all elements of the CancelStepsRequestStatus enum
15445func CancelStepsRequestStatus_Values() []string {
15446	return []string{
15447		CancelStepsRequestStatusSubmitted,
15448		CancelStepsRequestStatusFailed,
15449	}
15450}
15451
15452const (
15453	// ClusterStateStarting is a ClusterState enum value
15454	ClusterStateStarting = "STARTING"
15455
15456	// ClusterStateBootstrapping is a ClusterState enum value
15457	ClusterStateBootstrapping = "BOOTSTRAPPING"
15458
15459	// ClusterStateRunning is a ClusterState enum value
15460	ClusterStateRunning = "RUNNING"
15461
15462	// ClusterStateWaiting is a ClusterState enum value
15463	ClusterStateWaiting = "WAITING"
15464
15465	// ClusterStateTerminating is a ClusterState enum value
15466	ClusterStateTerminating = "TERMINATING"
15467
15468	// ClusterStateTerminated is a ClusterState enum value
15469	ClusterStateTerminated = "TERMINATED"
15470
15471	// ClusterStateTerminatedWithErrors is a ClusterState enum value
15472	ClusterStateTerminatedWithErrors = "TERMINATED_WITH_ERRORS"
15473)
15474
15475// ClusterState_Values returns all elements of the ClusterState enum
15476func ClusterState_Values() []string {
15477	return []string{
15478		ClusterStateStarting,
15479		ClusterStateBootstrapping,
15480		ClusterStateRunning,
15481		ClusterStateWaiting,
15482		ClusterStateTerminating,
15483		ClusterStateTerminated,
15484		ClusterStateTerminatedWithErrors,
15485	}
15486}
15487
15488const (
15489	// ClusterStateChangeReasonCodeInternalError is a ClusterStateChangeReasonCode enum value
15490	ClusterStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15491
15492	// ClusterStateChangeReasonCodeValidationError is a ClusterStateChangeReasonCode enum value
15493	ClusterStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
15494
15495	// ClusterStateChangeReasonCodeInstanceFailure is a ClusterStateChangeReasonCode enum value
15496	ClusterStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
15497
15498	// ClusterStateChangeReasonCodeInstanceFleetTimeout is a ClusterStateChangeReasonCode enum value
15499	ClusterStateChangeReasonCodeInstanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT"
15500
15501	// ClusterStateChangeReasonCodeBootstrapFailure is a ClusterStateChangeReasonCode enum value
15502	ClusterStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
15503
15504	// ClusterStateChangeReasonCodeUserRequest is a ClusterStateChangeReasonCode enum value
15505	ClusterStateChangeReasonCodeUserRequest = "USER_REQUEST"
15506
15507	// ClusterStateChangeReasonCodeStepFailure is a ClusterStateChangeReasonCode enum value
15508	ClusterStateChangeReasonCodeStepFailure = "STEP_FAILURE"
15509
15510	// ClusterStateChangeReasonCodeAllStepsCompleted is a ClusterStateChangeReasonCode enum value
15511	ClusterStateChangeReasonCodeAllStepsCompleted = "ALL_STEPS_COMPLETED"
15512)
15513
15514// ClusterStateChangeReasonCode_Values returns all elements of the ClusterStateChangeReasonCode enum
15515func ClusterStateChangeReasonCode_Values() []string {
15516	return []string{
15517		ClusterStateChangeReasonCodeInternalError,
15518		ClusterStateChangeReasonCodeValidationError,
15519		ClusterStateChangeReasonCodeInstanceFailure,
15520		ClusterStateChangeReasonCodeInstanceFleetTimeout,
15521		ClusterStateChangeReasonCodeBootstrapFailure,
15522		ClusterStateChangeReasonCodeUserRequest,
15523		ClusterStateChangeReasonCodeStepFailure,
15524		ClusterStateChangeReasonCodeAllStepsCompleted,
15525	}
15526}
15527
15528const (
15529	// ComparisonOperatorGreaterThanOrEqual is a ComparisonOperator enum value
15530	ComparisonOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
15531
15532	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
15533	ComparisonOperatorGreaterThan = "GREATER_THAN"
15534
15535	// ComparisonOperatorLessThan is a ComparisonOperator enum value
15536	ComparisonOperatorLessThan = "LESS_THAN"
15537
15538	// ComparisonOperatorLessThanOrEqual is a ComparisonOperator enum value
15539	ComparisonOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL"
15540)
15541
15542// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
15543func ComparisonOperator_Values() []string {
15544	return []string{
15545		ComparisonOperatorGreaterThanOrEqual,
15546		ComparisonOperatorGreaterThan,
15547		ComparisonOperatorLessThan,
15548		ComparisonOperatorLessThanOrEqual,
15549	}
15550}
15551
15552const (
15553	// ComputeLimitsUnitTypeInstanceFleetUnits is a ComputeLimitsUnitType enum value
15554	ComputeLimitsUnitTypeInstanceFleetUnits = "InstanceFleetUnits"
15555
15556	// ComputeLimitsUnitTypeInstances is a ComputeLimitsUnitType enum value
15557	ComputeLimitsUnitTypeInstances = "Instances"
15558
15559	// ComputeLimitsUnitTypeVcpu is a ComputeLimitsUnitType enum value
15560	ComputeLimitsUnitTypeVcpu = "VCPU"
15561)
15562
15563// ComputeLimitsUnitType_Values returns all elements of the ComputeLimitsUnitType enum
15564func ComputeLimitsUnitType_Values() []string {
15565	return []string{
15566		ComputeLimitsUnitTypeInstanceFleetUnits,
15567		ComputeLimitsUnitTypeInstances,
15568		ComputeLimitsUnitTypeVcpu,
15569	}
15570}
15571
15572const (
15573	// ExecutionEngineTypeEmr is a ExecutionEngineType enum value
15574	ExecutionEngineTypeEmr = "EMR"
15575)
15576
15577// ExecutionEngineType_Values returns all elements of the ExecutionEngineType enum
15578func ExecutionEngineType_Values() []string {
15579	return []string{
15580		ExecutionEngineTypeEmr,
15581	}
15582}
15583
15584const (
15585	// IdentityTypeUser is a IdentityType enum value
15586	IdentityTypeUser = "USER"
15587
15588	// IdentityTypeGroup is a IdentityType enum value
15589	IdentityTypeGroup = "GROUP"
15590)
15591
15592// IdentityType_Values returns all elements of the IdentityType enum
15593func IdentityType_Values() []string {
15594	return []string{
15595		IdentityTypeUser,
15596		IdentityTypeGroup,
15597	}
15598}
15599
15600const (
15601	// InstanceCollectionTypeInstanceFleet is a InstanceCollectionType enum value
15602	InstanceCollectionTypeInstanceFleet = "INSTANCE_FLEET"
15603
15604	// InstanceCollectionTypeInstanceGroup is a InstanceCollectionType enum value
15605	InstanceCollectionTypeInstanceGroup = "INSTANCE_GROUP"
15606)
15607
15608// InstanceCollectionType_Values returns all elements of the InstanceCollectionType enum
15609func InstanceCollectionType_Values() []string {
15610	return []string{
15611		InstanceCollectionTypeInstanceFleet,
15612		InstanceCollectionTypeInstanceGroup,
15613	}
15614}
15615
15616const (
15617	// InstanceFleetStateProvisioning is a InstanceFleetState enum value
15618	InstanceFleetStateProvisioning = "PROVISIONING"
15619
15620	// InstanceFleetStateBootstrapping is a InstanceFleetState enum value
15621	InstanceFleetStateBootstrapping = "BOOTSTRAPPING"
15622
15623	// InstanceFleetStateRunning is a InstanceFleetState enum value
15624	InstanceFleetStateRunning = "RUNNING"
15625
15626	// InstanceFleetStateResizing is a InstanceFleetState enum value
15627	InstanceFleetStateResizing = "RESIZING"
15628
15629	// InstanceFleetStateSuspended is a InstanceFleetState enum value
15630	InstanceFleetStateSuspended = "SUSPENDED"
15631
15632	// InstanceFleetStateTerminating is a InstanceFleetState enum value
15633	InstanceFleetStateTerminating = "TERMINATING"
15634
15635	// InstanceFleetStateTerminated is a InstanceFleetState enum value
15636	InstanceFleetStateTerminated = "TERMINATED"
15637)
15638
15639// InstanceFleetState_Values returns all elements of the InstanceFleetState enum
15640func InstanceFleetState_Values() []string {
15641	return []string{
15642		InstanceFleetStateProvisioning,
15643		InstanceFleetStateBootstrapping,
15644		InstanceFleetStateRunning,
15645		InstanceFleetStateResizing,
15646		InstanceFleetStateSuspended,
15647		InstanceFleetStateTerminating,
15648		InstanceFleetStateTerminated,
15649	}
15650}
15651
15652const (
15653	// InstanceFleetStateChangeReasonCodeInternalError is a InstanceFleetStateChangeReasonCode enum value
15654	InstanceFleetStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15655
15656	// InstanceFleetStateChangeReasonCodeValidationError is a InstanceFleetStateChangeReasonCode enum value
15657	InstanceFleetStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
15658
15659	// InstanceFleetStateChangeReasonCodeInstanceFailure is a InstanceFleetStateChangeReasonCode enum value
15660	InstanceFleetStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
15661
15662	// InstanceFleetStateChangeReasonCodeClusterTerminated is a InstanceFleetStateChangeReasonCode enum value
15663	InstanceFleetStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
15664)
15665
15666// InstanceFleetStateChangeReasonCode_Values returns all elements of the InstanceFleetStateChangeReasonCode enum
15667func InstanceFleetStateChangeReasonCode_Values() []string {
15668	return []string{
15669		InstanceFleetStateChangeReasonCodeInternalError,
15670		InstanceFleetStateChangeReasonCodeValidationError,
15671		InstanceFleetStateChangeReasonCodeInstanceFailure,
15672		InstanceFleetStateChangeReasonCodeClusterTerminated,
15673	}
15674}
15675
15676const (
15677	// InstanceFleetTypeMaster is a InstanceFleetType enum value
15678	InstanceFleetTypeMaster = "MASTER"
15679
15680	// InstanceFleetTypeCore is a InstanceFleetType enum value
15681	InstanceFleetTypeCore = "CORE"
15682
15683	// InstanceFleetTypeTask is a InstanceFleetType enum value
15684	InstanceFleetTypeTask = "TASK"
15685)
15686
15687// InstanceFleetType_Values returns all elements of the InstanceFleetType enum
15688func InstanceFleetType_Values() []string {
15689	return []string{
15690		InstanceFleetTypeMaster,
15691		InstanceFleetTypeCore,
15692		InstanceFleetTypeTask,
15693	}
15694}
15695
15696const (
15697	// InstanceGroupStateProvisioning is a InstanceGroupState enum value
15698	InstanceGroupStateProvisioning = "PROVISIONING"
15699
15700	// InstanceGroupStateBootstrapping is a InstanceGroupState enum value
15701	InstanceGroupStateBootstrapping = "BOOTSTRAPPING"
15702
15703	// InstanceGroupStateRunning is a InstanceGroupState enum value
15704	InstanceGroupStateRunning = "RUNNING"
15705
15706	// InstanceGroupStateReconfiguring is a InstanceGroupState enum value
15707	InstanceGroupStateReconfiguring = "RECONFIGURING"
15708
15709	// InstanceGroupStateResizing is a InstanceGroupState enum value
15710	InstanceGroupStateResizing = "RESIZING"
15711
15712	// InstanceGroupStateSuspended is a InstanceGroupState enum value
15713	InstanceGroupStateSuspended = "SUSPENDED"
15714
15715	// InstanceGroupStateTerminating is a InstanceGroupState enum value
15716	InstanceGroupStateTerminating = "TERMINATING"
15717
15718	// InstanceGroupStateTerminated is a InstanceGroupState enum value
15719	InstanceGroupStateTerminated = "TERMINATED"
15720
15721	// InstanceGroupStateArrested is a InstanceGroupState enum value
15722	InstanceGroupStateArrested = "ARRESTED"
15723
15724	// InstanceGroupStateShuttingDown is a InstanceGroupState enum value
15725	InstanceGroupStateShuttingDown = "SHUTTING_DOWN"
15726
15727	// InstanceGroupStateEnded is a InstanceGroupState enum value
15728	InstanceGroupStateEnded = "ENDED"
15729)
15730
15731// InstanceGroupState_Values returns all elements of the InstanceGroupState enum
15732func InstanceGroupState_Values() []string {
15733	return []string{
15734		InstanceGroupStateProvisioning,
15735		InstanceGroupStateBootstrapping,
15736		InstanceGroupStateRunning,
15737		InstanceGroupStateReconfiguring,
15738		InstanceGroupStateResizing,
15739		InstanceGroupStateSuspended,
15740		InstanceGroupStateTerminating,
15741		InstanceGroupStateTerminated,
15742		InstanceGroupStateArrested,
15743		InstanceGroupStateShuttingDown,
15744		InstanceGroupStateEnded,
15745	}
15746}
15747
15748const (
15749	// InstanceGroupStateChangeReasonCodeInternalError is a InstanceGroupStateChangeReasonCode enum value
15750	InstanceGroupStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15751
15752	// InstanceGroupStateChangeReasonCodeValidationError is a InstanceGroupStateChangeReasonCode enum value
15753	InstanceGroupStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
15754
15755	// InstanceGroupStateChangeReasonCodeInstanceFailure is a InstanceGroupStateChangeReasonCode enum value
15756	InstanceGroupStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
15757
15758	// InstanceGroupStateChangeReasonCodeClusterTerminated is a InstanceGroupStateChangeReasonCode enum value
15759	InstanceGroupStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
15760)
15761
15762// InstanceGroupStateChangeReasonCode_Values returns all elements of the InstanceGroupStateChangeReasonCode enum
15763func InstanceGroupStateChangeReasonCode_Values() []string {
15764	return []string{
15765		InstanceGroupStateChangeReasonCodeInternalError,
15766		InstanceGroupStateChangeReasonCodeValidationError,
15767		InstanceGroupStateChangeReasonCodeInstanceFailure,
15768		InstanceGroupStateChangeReasonCodeClusterTerminated,
15769	}
15770}
15771
15772const (
15773	// InstanceGroupTypeMaster is a InstanceGroupType enum value
15774	InstanceGroupTypeMaster = "MASTER"
15775
15776	// InstanceGroupTypeCore is a InstanceGroupType enum value
15777	InstanceGroupTypeCore = "CORE"
15778
15779	// InstanceGroupTypeTask is a InstanceGroupType enum value
15780	InstanceGroupTypeTask = "TASK"
15781)
15782
15783// InstanceGroupType_Values returns all elements of the InstanceGroupType enum
15784func InstanceGroupType_Values() []string {
15785	return []string{
15786		InstanceGroupTypeMaster,
15787		InstanceGroupTypeCore,
15788		InstanceGroupTypeTask,
15789	}
15790}
15791
15792const (
15793	// InstanceRoleTypeMaster is a InstanceRoleType enum value
15794	InstanceRoleTypeMaster = "MASTER"
15795
15796	// InstanceRoleTypeCore is a InstanceRoleType enum value
15797	InstanceRoleTypeCore = "CORE"
15798
15799	// InstanceRoleTypeTask is a InstanceRoleType enum value
15800	InstanceRoleTypeTask = "TASK"
15801)
15802
15803// InstanceRoleType_Values returns all elements of the InstanceRoleType enum
15804func InstanceRoleType_Values() []string {
15805	return []string{
15806		InstanceRoleTypeMaster,
15807		InstanceRoleTypeCore,
15808		InstanceRoleTypeTask,
15809	}
15810}
15811
15812const (
15813	// InstanceStateAwaitingFulfillment is a InstanceState enum value
15814	InstanceStateAwaitingFulfillment = "AWAITING_FULFILLMENT"
15815
15816	// InstanceStateProvisioning is a InstanceState enum value
15817	InstanceStateProvisioning = "PROVISIONING"
15818
15819	// InstanceStateBootstrapping is a InstanceState enum value
15820	InstanceStateBootstrapping = "BOOTSTRAPPING"
15821
15822	// InstanceStateRunning is a InstanceState enum value
15823	InstanceStateRunning = "RUNNING"
15824
15825	// InstanceStateTerminated is a InstanceState enum value
15826	InstanceStateTerminated = "TERMINATED"
15827)
15828
15829// InstanceState_Values returns all elements of the InstanceState enum
15830func InstanceState_Values() []string {
15831	return []string{
15832		InstanceStateAwaitingFulfillment,
15833		InstanceStateProvisioning,
15834		InstanceStateBootstrapping,
15835		InstanceStateRunning,
15836		InstanceStateTerminated,
15837	}
15838}
15839
15840const (
15841	// InstanceStateChangeReasonCodeInternalError is a InstanceStateChangeReasonCode enum value
15842	InstanceStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
15843
15844	// InstanceStateChangeReasonCodeValidationError is a InstanceStateChangeReasonCode enum value
15845	InstanceStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
15846
15847	// InstanceStateChangeReasonCodeInstanceFailure is a InstanceStateChangeReasonCode enum value
15848	InstanceStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
15849
15850	// InstanceStateChangeReasonCodeBootstrapFailure is a InstanceStateChangeReasonCode enum value
15851	InstanceStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
15852
15853	// InstanceStateChangeReasonCodeClusterTerminated is a InstanceStateChangeReasonCode enum value
15854	InstanceStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
15855)
15856
15857// InstanceStateChangeReasonCode_Values returns all elements of the InstanceStateChangeReasonCode enum
15858func InstanceStateChangeReasonCode_Values() []string {
15859	return []string{
15860		InstanceStateChangeReasonCodeInternalError,
15861		InstanceStateChangeReasonCodeValidationError,
15862		InstanceStateChangeReasonCodeInstanceFailure,
15863		InstanceStateChangeReasonCodeBootstrapFailure,
15864		InstanceStateChangeReasonCodeClusterTerminated,
15865	}
15866}
15867
15868// The type of instance.
15869const (
15870	// JobFlowExecutionStateStarting is a JobFlowExecutionState enum value
15871	JobFlowExecutionStateStarting = "STARTING"
15872
15873	// JobFlowExecutionStateBootstrapping is a JobFlowExecutionState enum value
15874	JobFlowExecutionStateBootstrapping = "BOOTSTRAPPING"
15875
15876	// JobFlowExecutionStateRunning is a JobFlowExecutionState enum value
15877	JobFlowExecutionStateRunning = "RUNNING"
15878
15879	// JobFlowExecutionStateWaiting is a JobFlowExecutionState enum value
15880	JobFlowExecutionStateWaiting = "WAITING"
15881
15882	// JobFlowExecutionStateShuttingDown is a JobFlowExecutionState enum value
15883	JobFlowExecutionStateShuttingDown = "SHUTTING_DOWN"
15884
15885	// JobFlowExecutionStateTerminated is a JobFlowExecutionState enum value
15886	JobFlowExecutionStateTerminated = "TERMINATED"
15887
15888	// JobFlowExecutionStateCompleted is a JobFlowExecutionState enum value
15889	JobFlowExecutionStateCompleted = "COMPLETED"
15890
15891	// JobFlowExecutionStateFailed is a JobFlowExecutionState enum value
15892	JobFlowExecutionStateFailed = "FAILED"
15893)
15894
15895// JobFlowExecutionState_Values returns all elements of the JobFlowExecutionState enum
15896func JobFlowExecutionState_Values() []string {
15897	return []string{
15898		JobFlowExecutionStateStarting,
15899		JobFlowExecutionStateBootstrapping,
15900		JobFlowExecutionStateRunning,
15901		JobFlowExecutionStateWaiting,
15902		JobFlowExecutionStateShuttingDown,
15903		JobFlowExecutionStateTerminated,
15904		JobFlowExecutionStateCompleted,
15905		JobFlowExecutionStateFailed,
15906	}
15907}
15908
15909const (
15910	// MarketTypeOnDemand is a MarketType enum value
15911	MarketTypeOnDemand = "ON_DEMAND"
15912
15913	// MarketTypeSpot is a MarketType enum value
15914	MarketTypeSpot = "SPOT"
15915)
15916
15917// MarketType_Values returns all elements of the MarketType enum
15918func MarketType_Values() []string {
15919	return []string{
15920		MarketTypeOnDemand,
15921		MarketTypeSpot,
15922	}
15923}
15924
15925const (
15926	// NotebookExecutionStatusStartPending is a NotebookExecutionStatus enum value
15927	NotebookExecutionStatusStartPending = "START_PENDING"
15928
15929	// NotebookExecutionStatusStarting is a NotebookExecutionStatus enum value
15930	NotebookExecutionStatusStarting = "STARTING"
15931
15932	// NotebookExecutionStatusRunning is a NotebookExecutionStatus enum value
15933	NotebookExecutionStatusRunning = "RUNNING"
15934
15935	// NotebookExecutionStatusFinishing is a NotebookExecutionStatus enum value
15936	NotebookExecutionStatusFinishing = "FINISHING"
15937
15938	// NotebookExecutionStatusFinished is a NotebookExecutionStatus enum value
15939	NotebookExecutionStatusFinished = "FINISHED"
15940
15941	// NotebookExecutionStatusFailing is a NotebookExecutionStatus enum value
15942	NotebookExecutionStatusFailing = "FAILING"
15943
15944	// NotebookExecutionStatusFailed is a NotebookExecutionStatus enum value
15945	NotebookExecutionStatusFailed = "FAILED"
15946
15947	// NotebookExecutionStatusStopPending is a NotebookExecutionStatus enum value
15948	NotebookExecutionStatusStopPending = "STOP_PENDING"
15949
15950	// NotebookExecutionStatusStopping is a NotebookExecutionStatus enum value
15951	NotebookExecutionStatusStopping = "STOPPING"
15952
15953	// NotebookExecutionStatusStopped is a NotebookExecutionStatus enum value
15954	NotebookExecutionStatusStopped = "STOPPED"
15955)
15956
15957// NotebookExecutionStatus_Values returns all elements of the NotebookExecutionStatus enum
15958func NotebookExecutionStatus_Values() []string {
15959	return []string{
15960		NotebookExecutionStatusStartPending,
15961		NotebookExecutionStatusStarting,
15962		NotebookExecutionStatusRunning,
15963		NotebookExecutionStatusFinishing,
15964		NotebookExecutionStatusFinished,
15965		NotebookExecutionStatusFailing,
15966		NotebookExecutionStatusFailed,
15967		NotebookExecutionStatusStopPending,
15968		NotebookExecutionStatusStopping,
15969		NotebookExecutionStatusStopped,
15970	}
15971}
15972
15973const (
15974	// OnDemandProvisioningAllocationStrategyLowestPrice is a OnDemandProvisioningAllocationStrategy enum value
15975	OnDemandProvisioningAllocationStrategyLowestPrice = "lowest-price"
15976)
15977
15978// OnDemandProvisioningAllocationStrategy_Values returns all elements of the OnDemandProvisioningAllocationStrategy enum
15979func OnDemandProvisioningAllocationStrategy_Values() []string {
15980	return []string{
15981		OnDemandProvisioningAllocationStrategyLowestPrice,
15982	}
15983}
15984
15985const (
15986	// PlacementGroupStrategySpread is a PlacementGroupStrategy enum value
15987	PlacementGroupStrategySpread = "SPREAD"
15988
15989	// PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value
15990	PlacementGroupStrategyPartition = "PARTITION"
15991
15992	// PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value
15993	PlacementGroupStrategyCluster = "CLUSTER"
15994
15995	// PlacementGroupStrategyNone is a PlacementGroupStrategy enum value
15996	PlacementGroupStrategyNone = "NONE"
15997)
15998
15999// PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum
16000func PlacementGroupStrategy_Values() []string {
16001	return []string{
16002		PlacementGroupStrategySpread,
16003		PlacementGroupStrategyPartition,
16004		PlacementGroupStrategyCluster,
16005		PlacementGroupStrategyNone,
16006	}
16007}
16008
16009const (
16010	// RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value
16011	RepoUpgradeOnBootSecurity = "SECURITY"
16012
16013	// RepoUpgradeOnBootNone is a RepoUpgradeOnBoot enum value
16014	RepoUpgradeOnBootNone = "NONE"
16015)
16016
16017// RepoUpgradeOnBoot_Values returns all elements of the RepoUpgradeOnBoot enum
16018func RepoUpgradeOnBoot_Values() []string {
16019	return []string{
16020		RepoUpgradeOnBootSecurity,
16021		RepoUpgradeOnBootNone,
16022	}
16023}
16024
16025const (
16026	// ScaleDownBehaviorTerminateAtInstanceHour is a ScaleDownBehavior enum value
16027	ScaleDownBehaviorTerminateAtInstanceHour = "TERMINATE_AT_INSTANCE_HOUR"
16028
16029	// ScaleDownBehaviorTerminateAtTaskCompletion is a ScaleDownBehavior enum value
16030	ScaleDownBehaviorTerminateAtTaskCompletion = "TERMINATE_AT_TASK_COMPLETION"
16031)
16032
16033// ScaleDownBehavior_Values returns all elements of the ScaleDownBehavior enum
16034func ScaleDownBehavior_Values() []string {
16035	return []string{
16036		ScaleDownBehaviorTerminateAtInstanceHour,
16037		ScaleDownBehaviorTerminateAtTaskCompletion,
16038	}
16039}
16040
16041const (
16042	// SpotProvisioningAllocationStrategyCapacityOptimized is a SpotProvisioningAllocationStrategy enum value
16043	SpotProvisioningAllocationStrategyCapacityOptimized = "capacity-optimized"
16044)
16045
16046// SpotProvisioningAllocationStrategy_Values returns all elements of the SpotProvisioningAllocationStrategy enum
16047func SpotProvisioningAllocationStrategy_Values() []string {
16048	return []string{
16049		SpotProvisioningAllocationStrategyCapacityOptimized,
16050	}
16051}
16052
16053const (
16054	// SpotProvisioningTimeoutActionSwitchToOnDemand is a SpotProvisioningTimeoutAction enum value
16055	SpotProvisioningTimeoutActionSwitchToOnDemand = "SWITCH_TO_ON_DEMAND"
16056
16057	// SpotProvisioningTimeoutActionTerminateCluster is a SpotProvisioningTimeoutAction enum value
16058	SpotProvisioningTimeoutActionTerminateCluster = "TERMINATE_CLUSTER"
16059)
16060
16061// SpotProvisioningTimeoutAction_Values returns all elements of the SpotProvisioningTimeoutAction enum
16062func SpotProvisioningTimeoutAction_Values() []string {
16063	return []string{
16064		SpotProvisioningTimeoutActionSwitchToOnDemand,
16065		SpotProvisioningTimeoutActionTerminateCluster,
16066	}
16067}
16068
16069const (
16070	// StatisticSampleCount is a Statistic enum value
16071	StatisticSampleCount = "SAMPLE_COUNT"
16072
16073	// StatisticAverage is a Statistic enum value
16074	StatisticAverage = "AVERAGE"
16075
16076	// StatisticSum is a Statistic enum value
16077	StatisticSum = "SUM"
16078
16079	// StatisticMinimum is a Statistic enum value
16080	StatisticMinimum = "MINIMUM"
16081
16082	// StatisticMaximum is a Statistic enum value
16083	StatisticMaximum = "MAXIMUM"
16084)
16085
16086// Statistic_Values returns all elements of the Statistic enum
16087func Statistic_Values() []string {
16088	return []string{
16089		StatisticSampleCount,
16090		StatisticAverage,
16091		StatisticSum,
16092		StatisticMinimum,
16093		StatisticMaximum,
16094	}
16095}
16096
16097const (
16098	// StepCancellationOptionSendInterrupt is a StepCancellationOption enum value
16099	StepCancellationOptionSendInterrupt = "SEND_INTERRUPT"
16100
16101	// StepCancellationOptionTerminateProcess is a StepCancellationOption enum value
16102	StepCancellationOptionTerminateProcess = "TERMINATE_PROCESS"
16103)
16104
16105// StepCancellationOption_Values returns all elements of the StepCancellationOption enum
16106func StepCancellationOption_Values() []string {
16107	return []string{
16108		StepCancellationOptionSendInterrupt,
16109		StepCancellationOptionTerminateProcess,
16110	}
16111}
16112
16113const (
16114	// StepExecutionStatePending is a StepExecutionState enum value
16115	StepExecutionStatePending = "PENDING"
16116
16117	// StepExecutionStateRunning is a StepExecutionState enum value
16118	StepExecutionStateRunning = "RUNNING"
16119
16120	// StepExecutionStateContinue is a StepExecutionState enum value
16121	StepExecutionStateContinue = "CONTINUE"
16122
16123	// StepExecutionStateCompleted is a StepExecutionState enum value
16124	StepExecutionStateCompleted = "COMPLETED"
16125
16126	// StepExecutionStateCancelled is a StepExecutionState enum value
16127	StepExecutionStateCancelled = "CANCELLED"
16128
16129	// StepExecutionStateFailed is a StepExecutionState enum value
16130	StepExecutionStateFailed = "FAILED"
16131
16132	// StepExecutionStateInterrupted is a StepExecutionState enum value
16133	StepExecutionStateInterrupted = "INTERRUPTED"
16134)
16135
16136// StepExecutionState_Values returns all elements of the StepExecutionState enum
16137func StepExecutionState_Values() []string {
16138	return []string{
16139		StepExecutionStatePending,
16140		StepExecutionStateRunning,
16141		StepExecutionStateContinue,
16142		StepExecutionStateCompleted,
16143		StepExecutionStateCancelled,
16144		StepExecutionStateFailed,
16145		StepExecutionStateInterrupted,
16146	}
16147}
16148
16149const (
16150	// StepStatePending is a StepState enum value
16151	StepStatePending = "PENDING"
16152
16153	// StepStateCancelPending is a StepState enum value
16154	StepStateCancelPending = "CANCEL_PENDING"
16155
16156	// StepStateRunning is a StepState enum value
16157	StepStateRunning = "RUNNING"
16158
16159	// StepStateCompleted is a StepState enum value
16160	StepStateCompleted = "COMPLETED"
16161
16162	// StepStateCancelled is a StepState enum value
16163	StepStateCancelled = "CANCELLED"
16164
16165	// StepStateFailed is a StepState enum value
16166	StepStateFailed = "FAILED"
16167
16168	// StepStateInterrupted is a StepState enum value
16169	StepStateInterrupted = "INTERRUPTED"
16170)
16171
16172// StepState_Values returns all elements of the StepState enum
16173func StepState_Values() []string {
16174	return []string{
16175		StepStatePending,
16176		StepStateCancelPending,
16177		StepStateRunning,
16178		StepStateCompleted,
16179		StepStateCancelled,
16180		StepStateFailed,
16181		StepStateInterrupted,
16182	}
16183}
16184
16185const (
16186	// StepStateChangeReasonCodeNone is a StepStateChangeReasonCode enum value
16187	StepStateChangeReasonCodeNone = "NONE"
16188)
16189
16190// StepStateChangeReasonCode_Values returns all elements of the StepStateChangeReasonCode enum
16191func StepStateChangeReasonCode_Values() []string {
16192	return []string{
16193		StepStateChangeReasonCodeNone,
16194	}
16195}
16196
16197const (
16198	// UnitNone is a Unit enum value
16199	UnitNone = "NONE"
16200
16201	// UnitSeconds is a Unit enum value
16202	UnitSeconds = "SECONDS"
16203
16204	// UnitMicroSeconds is a Unit enum value
16205	UnitMicroSeconds = "MICRO_SECONDS"
16206
16207	// UnitMilliSeconds is a Unit enum value
16208	UnitMilliSeconds = "MILLI_SECONDS"
16209
16210	// UnitBytes is a Unit enum value
16211	UnitBytes = "BYTES"
16212
16213	// UnitKiloBytes is a Unit enum value
16214	UnitKiloBytes = "KILO_BYTES"
16215
16216	// UnitMegaBytes is a Unit enum value
16217	UnitMegaBytes = "MEGA_BYTES"
16218
16219	// UnitGigaBytes is a Unit enum value
16220	UnitGigaBytes = "GIGA_BYTES"
16221
16222	// UnitTeraBytes is a Unit enum value
16223	UnitTeraBytes = "TERA_BYTES"
16224
16225	// UnitBits is a Unit enum value
16226	UnitBits = "BITS"
16227
16228	// UnitKiloBits is a Unit enum value
16229	UnitKiloBits = "KILO_BITS"
16230
16231	// UnitMegaBits is a Unit enum value
16232	UnitMegaBits = "MEGA_BITS"
16233
16234	// UnitGigaBits is a Unit enum value
16235	UnitGigaBits = "GIGA_BITS"
16236
16237	// UnitTeraBits is a Unit enum value
16238	UnitTeraBits = "TERA_BITS"
16239
16240	// UnitPercent is a Unit enum value
16241	UnitPercent = "PERCENT"
16242
16243	// UnitCount is a Unit enum value
16244	UnitCount = "COUNT"
16245
16246	// UnitBytesPerSecond is a Unit enum value
16247	UnitBytesPerSecond = "BYTES_PER_SECOND"
16248
16249	// UnitKiloBytesPerSecond is a Unit enum value
16250	UnitKiloBytesPerSecond = "KILO_BYTES_PER_SECOND"
16251
16252	// UnitMegaBytesPerSecond is a Unit enum value
16253	UnitMegaBytesPerSecond = "MEGA_BYTES_PER_SECOND"
16254
16255	// UnitGigaBytesPerSecond is a Unit enum value
16256	UnitGigaBytesPerSecond = "GIGA_BYTES_PER_SECOND"
16257
16258	// UnitTeraBytesPerSecond is a Unit enum value
16259	UnitTeraBytesPerSecond = "TERA_BYTES_PER_SECOND"
16260
16261	// UnitBitsPerSecond is a Unit enum value
16262	UnitBitsPerSecond = "BITS_PER_SECOND"
16263
16264	// UnitKiloBitsPerSecond is a Unit enum value
16265	UnitKiloBitsPerSecond = "KILO_BITS_PER_SECOND"
16266
16267	// UnitMegaBitsPerSecond is a Unit enum value
16268	UnitMegaBitsPerSecond = "MEGA_BITS_PER_SECOND"
16269
16270	// UnitGigaBitsPerSecond is a Unit enum value
16271	UnitGigaBitsPerSecond = "GIGA_BITS_PER_SECOND"
16272
16273	// UnitTeraBitsPerSecond is a Unit enum value
16274	UnitTeraBitsPerSecond = "TERA_BITS_PER_SECOND"
16275
16276	// UnitCountPerSecond is a Unit enum value
16277	UnitCountPerSecond = "COUNT_PER_SECOND"
16278)
16279
16280// Unit_Values returns all elements of the Unit enum
16281func Unit_Values() []string {
16282	return []string{
16283		UnitNone,
16284		UnitSeconds,
16285		UnitMicroSeconds,
16286		UnitMilliSeconds,
16287		UnitBytes,
16288		UnitKiloBytes,
16289		UnitMegaBytes,
16290		UnitGigaBytes,
16291		UnitTeraBytes,
16292		UnitBits,
16293		UnitKiloBits,
16294		UnitMegaBits,
16295		UnitGigaBits,
16296		UnitTeraBits,
16297		UnitPercent,
16298		UnitCount,
16299		UnitBytesPerSecond,
16300		UnitKiloBytesPerSecond,
16301		UnitMegaBytesPerSecond,
16302		UnitGigaBytesPerSecond,
16303		UnitTeraBytesPerSecond,
16304		UnitBitsPerSecond,
16305		UnitKiloBitsPerSecond,
16306		UnitMegaBitsPerSecond,
16307		UnitGigaBitsPerSecond,
16308		UnitTeraBitsPerSecond,
16309		UnitCountPerSecond,
16310	}
16311}
16312