1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package devicefarm
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 opCreateDevicePool = "CreateDevicePool"
17
18// CreateDevicePoolRequest generates a "aws/request.Request" representing the
19// client's request for the CreateDevicePool 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 CreateDevicePool for more information on using the CreateDevicePool
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 CreateDevicePoolRequest method.
34//    req, resp := client.CreateDevicePoolRequest(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/devicefarm-2015-06-23/CreateDevicePool
42func (c *DeviceFarm) CreateDevicePoolRequest(input *CreateDevicePoolInput) (req *request.Request, output *CreateDevicePoolOutput) {
43	op := &request.Operation{
44		Name:       opCreateDevicePool,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateDevicePoolInput{}
51	}
52
53	output = &CreateDevicePoolOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateDevicePool API operation for AWS Device Farm.
59//
60// Creates a device pool.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for AWS Device Farm's
67// API operation CreateDevicePool for usage and error information.
68//
69// Returned Error Types:
70//   * ArgumentException
71//   An invalid argument was specified.
72//
73//   * NotFoundException
74//   The specified entity was not found.
75//
76//   * LimitExceededException
77//   A limit was exceeded.
78//
79//   * ServiceAccountException
80//   There was a problem with the service account.
81//
82// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateDevicePool
83func (c *DeviceFarm) CreateDevicePool(input *CreateDevicePoolInput) (*CreateDevicePoolOutput, error) {
84	req, out := c.CreateDevicePoolRequest(input)
85	return out, req.Send()
86}
87
88// CreateDevicePoolWithContext is the same as CreateDevicePool with the addition of
89// the ability to pass a context and additional request options.
90//
91// See CreateDevicePool for details on how to use this API operation.
92//
93// The context must be non-nil and will be used for request cancellation. If
94// the context is nil a panic will occur. In the future the SDK may create
95// sub-contexts for http.Requests. See https://golang.org/pkg/context/
96// for more information on using Contexts.
97func (c *DeviceFarm) CreateDevicePoolWithContext(ctx aws.Context, input *CreateDevicePoolInput, opts ...request.Option) (*CreateDevicePoolOutput, error) {
98	req, out := c.CreateDevicePoolRequest(input)
99	req.SetContext(ctx)
100	req.ApplyOptions(opts...)
101	return out, req.Send()
102}
103
104const opCreateInstanceProfile = "CreateInstanceProfile"
105
106// CreateInstanceProfileRequest generates a "aws/request.Request" representing the
107// client's request for the CreateInstanceProfile operation. The "output" return
108// value will be populated with the request's response once the request completes
109// successfully.
110//
111// Use "Send" method on the returned Request to send the API call to the service.
112// the "output" return value is not valid until after Send returns without error.
113//
114// See CreateInstanceProfile for more information on using the CreateInstanceProfile
115// API call, and error handling.
116//
117// This method is useful when you want to inject custom logic or configuration
118// into the SDK's request lifecycle. Such as custom headers, or retry logic.
119//
120//
121//    // Example sending a request using the CreateInstanceProfileRequest method.
122//    req, resp := client.CreateInstanceProfileRequest(params)
123//
124//    err := req.Send()
125//    if err == nil { // resp is now filled
126//        fmt.Println(resp)
127//    }
128//
129// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateInstanceProfile
130func (c *DeviceFarm) CreateInstanceProfileRequest(input *CreateInstanceProfileInput) (req *request.Request, output *CreateInstanceProfileOutput) {
131	op := &request.Operation{
132		Name:       opCreateInstanceProfile,
133		HTTPMethod: "POST",
134		HTTPPath:   "/",
135	}
136
137	if input == nil {
138		input = &CreateInstanceProfileInput{}
139	}
140
141	output = &CreateInstanceProfileOutput{}
142	req = c.newRequest(op, input, output)
143	return
144}
145
146// CreateInstanceProfile API operation for AWS Device Farm.
147//
148// Creates a profile that can be applied to one or more private fleet device
149// instances.
150//
151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
152// with awserr.Error's Code and Message methods to get detailed information about
153// the error.
154//
155// See the AWS API reference guide for AWS Device Farm's
156// API operation CreateInstanceProfile for usage and error information.
157//
158// Returned Error Types:
159//   * ArgumentException
160//   An invalid argument was specified.
161//
162//   * NotFoundException
163//   The specified entity was not found.
164//
165//   * LimitExceededException
166//   A limit was exceeded.
167//
168//   * ServiceAccountException
169//   There was a problem with the service account.
170//
171// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateInstanceProfile
172func (c *DeviceFarm) CreateInstanceProfile(input *CreateInstanceProfileInput) (*CreateInstanceProfileOutput, error) {
173	req, out := c.CreateInstanceProfileRequest(input)
174	return out, req.Send()
175}
176
177// CreateInstanceProfileWithContext is the same as CreateInstanceProfile with the addition of
178// the ability to pass a context and additional request options.
179//
180// See CreateInstanceProfile for details on how to use this API operation.
181//
182// The context must be non-nil and will be used for request cancellation. If
183// the context is nil a panic will occur. In the future the SDK may create
184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
185// for more information on using Contexts.
186func (c *DeviceFarm) CreateInstanceProfileWithContext(ctx aws.Context, input *CreateInstanceProfileInput, opts ...request.Option) (*CreateInstanceProfileOutput, error) {
187	req, out := c.CreateInstanceProfileRequest(input)
188	req.SetContext(ctx)
189	req.ApplyOptions(opts...)
190	return out, req.Send()
191}
192
193const opCreateNetworkProfile = "CreateNetworkProfile"
194
195// CreateNetworkProfileRequest generates a "aws/request.Request" representing the
196// client's request for the CreateNetworkProfile operation. The "output" return
197// value will be populated with the request's response once the request completes
198// successfully.
199//
200// Use "Send" method on the returned Request to send the API call to the service.
201// the "output" return value is not valid until after Send returns without error.
202//
203// See CreateNetworkProfile for more information on using the CreateNetworkProfile
204// API call, and error handling.
205//
206// This method is useful when you want to inject custom logic or configuration
207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
208//
209//
210//    // Example sending a request using the CreateNetworkProfileRequest method.
211//    req, resp := client.CreateNetworkProfileRequest(params)
212//
213//    err := req.Send()
214//    if err == nil { // resp is now filled
215//        fmt.Println(resp)
216//    }
217//
218// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateNetworkProfile
219func (c *DeviceFarm) CreateNetworkProfileRequest(input *CreateNetworkProfileInput) (req *request.Request, output *CreateNetworkProfileOutput) {
220	op := &request.Operation{
221		Name:       opCreateNetworkProfile,
222		HTTPMethod: "POST",
223		HTTPPath:   "/",
224	}
225
226	if input == nil {
227		input = &CreateNetworkProfileInput{}
228	}
229
230	output = &CreateNetworkProfileOutput{}
231	req = c.newRequest(op, input, output)
232	return
233}
234
235// CreateNetworkProfile API operation for AWS Device Farm.
236//
237// Creates a network profile.
238//
239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
240// with awserr.Error's Code and Message methods to get detailed information about
241// the error.
242//
243// See the AWS API reference guide for AWS Device Farm's
244// API operation CreateNetworkProfile for usage and error information.
245//
246// Returned Error Types:
247//   * ArgumentException
248//   An invalid argument was specified.
249//
250//   * NotFoundException
251//   The specified entity was not found.
252//
253//   * LimitExceededException
254//   A limit was exceeded.
255//
256//   * ServiceAccountException
257//   There was a problem with the service account.
258//
259// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateNetworkProfile
260func (c *DeviceFarm) CreateNetworkProfile(input *CreateNetworkProfileInput) (*CreateNetworkProfileOutput, error) {
261	req, out := c.CreateNetworkProfileRequest(input)
262	return out, req.Send()
263}
264
265// CreateNetworkProfileWithContext is the same as CreateNetworkProfile with the addition of
266// the ability to pass a context and additional request options.
267//
268// See CreateNetworkProfile for details on how to use this API operation.
269//
270// The context must be non-nil and will be used for request cancellation. If
271// the context is nil a panic will occur. In the future the SDK may create
272// sub-contexts for http.Requests. See https://golang.org/pkg/context/
273// for more information on using Contexts.
274func (c *DeviceFarm) CreateNetworkProfileWithContext(ctx aws.Context, input *CreateNetworkProfileInput, opts ...request.Option) (*CreateNetworkProfileOutput, error) {
275	req, out := c.CreateNetworkProfileRequest(input)
276	req.SetContext(ctx)
277	req.ApplyOptions(opts...)
278	return out, req.Send()
279}
280
281const opCreateProject = "CreateProject"
282
283// CreateProjectRequest generates a "aws/request.Request" representing the
284// client's request for the CreateProject operation. The "output" return
285// value will be populated with the request's response once the request completes
286// successfully.
287//
288// Use "Send" method on the returned Request to send the API call to the service.
289// the "output" return value is not valid until after Send returns without error.
290//
291// See CreateProject for more information on using the CreateProject
292// API call, and error handling.
293//
294// This method is useful when you want to inject custom logic or configuration
295// into the SDK's request lifecycle. Such as custom headers, or retry logic.
296//
297//
298//    // Example sending a request using the CreateProjectRequest method.
299//    req, resp := client.CreateProjectRequest(params)
300//
301//    err := req.Send()
302//    if err == nil { // resp is now filled
303//        fmt.Println(resp)
304//    }
305//
306// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateProject
307func (c *DeviceFarm) CreateProjectRequest(input *CreateProjectInput) (req *request.Request, output *CreateProjectOutput) {
308	op := &request.Operation{
309		Name:       opCreateProject,
310		HTTPMethod: "POST",
311		HTTPPath:   "/",
312	}
313
314	if input == nil {
315		input = &CreateProjectInput{}
316	}
317
318	output = &CreateProjectOutput{}
319	req = c.newRequest(op, input, output)
320	return
321}
322
323// CreateProject API operation for AWS Device Farm.
324//
325// Creates a project.
326//
327// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
328// with awserr.Error's Code and Message methods to get detailed information about
329// the error.
330//
331// See the AWS API reference guide for AWS Device Farm's
332// API operation CreateProject for usage and error information.
333//
334// Returned Error Types:
335//   * ArgumentException
336//   An invalid argument was specified.
337//
338//   * NotFoundException
339//   The specified entity was not found.
340//
341//   * LimitExceededException
342//   A limit was exceeded.
343//
344//   * ServiceAccountException
345//   There was a problem with the service account.
346//
347//   * TagOperationException
348//   The operation was not successful. Try again.
349//
350// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateProject
351func (c *DeviceFarm) CreateProject(input *CreateProjectInput) (*CreateProjectOutput, error) {
352	req, out := c.CreateProjectRequest(input)
353	return out, req.Send()
354}
355
356// CreateProjectWithContext is the same as CreateProject with the addition of
357// the ability to pass a context and additional request options.
358//
359// See CreateProject for details on how to use this API operation.
360//
361// The context must be non-nil and will be used for request cancellation. If
362// the context is nil a panic will occur. In the future the SDK may create
363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
364// for more information on using Contexts.
365func (c *DeviceFarm) CreateProjectWithContext(ctx aws.Context, input *CreateProjectInput, opts ...request.Option) (*CreateProjectOutput, error) {
366	req, out := c.CreateProjectRequest(input)
367	req.SetContext(ctx)
368	req.ApplyOptions(opts...)
369	return out, req.Send()
370}
371
372const opCreateRemoteAccessSession = "CreateRemoteAccessSession"
373
374// CreateRemoteAccessSessionRequest generates a "aws/request.Request" representing the
375// client's request for the CreateRemoteAccessSession operation. The "output" return
376// value will be populated with the request's response once the request completes
377// successfully.
378//
379// Use "Send" method on the returned Request to send the API call to the service.
380// the "output" return value is not valid until after Send returns without error.
381//
382// See CreateRemoteAccessSession for more information on using the CreateRemoteAccessSession
383// API call, and error handling.
384//
385// This method is useful when you want to inject custom logic or configuration
386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
387//
388//
389//    // Example sending a request using the CreateRemoteAccessSessionRequest method.
390//    req, resp := client.CreateRemoteAccessSessionRequest(params)
391//
392//    err := req.Send()
393//    if err == nil { // resp is now filled
394//        fmt.Println(resp)
395//    }
396//
397// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSession
398func (c *DeviceFarm) CreateRemoteAccessSessionRequest(input *CreateRemoteAccessSessionInput) (req *request.Request, output *CreateRemoteAccessSessionOutput) {
399	op := &request.Operation{
400		Name:       opCreateRemoteAccessSession,
401		HTTPMethod: "POST",
402		HTTPPath:   "/",
403	}
404
405	if input == nil {
406		input = &CreateRemoteAccessSessionInput{}
407	}
408
409	output = &CreateRemoteAccessSessionOutput{}
410	req = c.newRequest(op, input, output)
411	return
412}
413
414// CreateRemoteAccessSession API operation for AWS Device Farm.
415//
416// Specifies and starts a remote access session.
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 AWS Device Farm's
423// API operation CreateRemoteAccessSession for usage and error information.
424//
425// Returned Error Types:
426//   * ArgumentException
427//   An invalid argument was specified.
428//
429//   * NotFoundException
430//   The specified entity was not found.
431//
432//   * LimitExceededException
433//   A limit was exceeded.
434//
435//   * ServiceAccountException
436//   There was a problem with the service account.
437//
438// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSession
439func (c *DeviceFarm) CreateRemoteAccessSession(input *CreateRemoteAccessSessionInput) (*CreateRemoteAccessSessionOutput, error) {
440	req, out := c.CreateRemoteAccessSessionRequest(input)
441	return out, req.Send()
442}
443
444// CreateRemoteAccessSessionWithContext is the same as CreateRemoteAccessSession with the addition of
445// the ability to pass a context and additional request options.
446//
447// See CreateRemoteAccessSession for details on how to use this API operation.
448//
449// The context must be non-nil and will be used for request cancellation. If
450// the context is nil a panic will occur. In the future the SDK may create
451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
452// for more information on using Contexts.
453func (c *DeviceFarm) CreateRemoteAccessSessionWithContext(ctx aws.Context, input *CreateRemoteAccessSessionInput, opts ...request.Option) (*CreateRemoteAccessSessionOutput, error) {
454	req, out := c.CreateRemoteAccessSessionRequest(input)
455	req.SetContext(ctx)
456	req.ApplyOptions(opts...)
457	return out, req.Send()
458}
459
460const opCreateTestGridProject = "CreateTestGridProject"
461
462// CreateTestGridProjectRequest generates a "aws/request.Request" representing the
463// client's request for the CreateTestGridProject operation. The "output" return
464// value will be populated with the request's response once the request completes
465// successfully.
466//
467// Use "Send" method on the returned Request to send the API call to the service.
468// the "output" return value is not valid until after Send returns without error.
469//
470// See CreateTestGridProject for more information on using the CreateTestGridProject
471// API call, and error handling.
472//
473// This method is useful when you want to inject custom logic or configuration
474// into the SDK's request lifecycle. Such as custom headers, or retry logic.
475//
476//
477//    // Example sending a request using the CreateTestGridProjectRequest method.
478//    req, resp := client.CreateTestGridProjectRequest(params)
479//
480//    err := req.Send()
481//    if err == nil { // resp is now filled
482//        fmt.Println(resp)
483//    }
484//
485// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridProject
486func (c *DeviceFarm) CreateTestGridProjectRequest(input *CreateTestGridProjectInput) (req *request.Request, output *CreateTestGridProjectOutput) {
487	op := &request.Operation{
488		Name:       opCreateTestGridProject,
489		HTTPMethod: "POST",
490		HTTPPath:   "/",
491	}
492
493	if input == nil {
494		input = &CreateTestGridProjectInput{}
495	}
496
497	output = &CreateTestGridProjectOutput{}
498	req = c.newRequest(op, input, output)
499	return
500}
501
502// CreateTestGridProject API operation for AWS Device Farm.
503//
504// Creates a Selenium testing project. Projects are used to track TestGridSession
505// instances.
506//
507// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
508// with awserr.Error's Code and Message methods to get detailed information about
509// the error.
510//
511// See the AWS API reference guide for AWS Device Farm's
512// API operation CreateTestGridProject for usage and error information.
513//
514// Returned Error Types:
515//   * ArgumentException
516//   An invalid argument was specified.
517//
518//   * LimitExceededException
519//   A limit was exceeded.
520//
521//   * InternalServiceException
522//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
523//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
524//
525// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridProject
526func (c *DeviceFarm) CreateTestGridProject(input *CreateTestGridProjectInput) (*CreateTestGridProjectOutput, error) {
527	req, out := c.CreateTestGridProjectRequest(input)
528	return out, req.Send()
529}
530
531// CreateTestGridProjectWithContext is the same as CreateTestGridProject with the addition of
532// the ability to pass a context and additional request options.
533//
534// See CreateTestGridProject for details on how to use this API operation.
535//
536// The context must be non-nil and will be used for request cancellation. If
537// the context is nil a panic will occur. In the future the SDK may create
538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
539// for more information on using Contexts.
540func (c *DeviceFarm) CreateTestGridProjectWithContext(ctx aws.Context, input *CreateTestGridProjectInput, opts ...request.Option) (*CreateTestGridProjectOutput, error) {
541	req, out := c.CreateTestGridProjectRequest(input)
542	req.SetContext(ctx)
543	req.ApplyOptions(opts...)
544	return out, req.Send()
545}
546
547const opCreateTestGridUrl = "CreateTestGridUrl"
548
549// CreateTestGridUrlRequest generates a "aws/request.Request" representing the
550// client's request for the CreateTestGridUrl operation. The "output" return
551// value will be populated with the request's response once the request completes
552// successfully.
553//
554// Use "Send" method on the returned Request to send the API call to the service.
555// the "output" return value is not valid until after Send returns without error.
556//
557// See CreateTestGridUrl for more information on using the CreateTestGridUrl
558// API call, and error handling.
559//
560// This method is useful when you want to inject custom logic or configuration
561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
562//
563//
564//    // Example sending a request using the CreateTestGridUrlRequest method.
565//    req, resp := client.CreateTestGridUrlRequest(params)
566//
567//    err := req.Send()
568//    if err == nil { // resp is now filled
569//        fmt.Println(resp)
570//    }
571//
572// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridUrl
573func (c *DeviceFarm) CreateTestGridUrlRequest(input *CreateTestGridUrlInput) (req *request.Request, output *CreateTestGridUrlOutput) {
574	op := &request.Operation{
575		Name:       opCreateTestGridUrl,
576		HTTPMethod: "POST",
577		HTTPPath:   "/",
578	}
579
580	if input == nil {
581		input = &CreateTestGridUrlInput{}
582	}
583
584	output = &CreateTestGridUrlOutput{}
585	req = c.newRequest(op, input, output)
586	return
587}
588
589// CreateTestGridUrl API operation for AWS Device Farm.
590//
591// Creates a signed, short-term URL that can be passed to a Selenium RemoteWebDriver
592// constructor.
593//
594// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
595// with awserr.Error's Code and Message methods to get detailed information about
596// the error.
597//
598// See the AWS API reference guide for AWS Device Farm's
599// API operation CreateTestGridUrl for usage and error information.
600//
601// Returned Error Types:
602//   * NotFoundException
603//   The specified entity was not found.
604//
605//   * ArgumentException
606//   An invalid argument was specified.
607//
608//   * InternalServiceException
609//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
610//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
611//
612// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridUrl
613func (c *DeviceFarm) CreateTestGridUrl(input *CreateTestGridUrlInput) (*CreateTestGridUrlOutput, error) {
614	req, out := c.CreateTestGridUrlRequest(input)
615	return out, req.Send()
616}
617
618// CreateTestGridUrlWithContext is the same as CreateTestGridUrl with the addition of
619// the ability to pass a context and additional request options.
620//
621// See CreateTestGridUrl for details on how to use this API operation.
622//
623// The context must be non-nil and will be used for request cancellation. If
624// the context is nil a panic will occur. In the future the SDK may create
625// sub-contexts for http.Requests. See https://golang.org/pkg/context/
626// for more information on using Contexts.
627func (c *DeviceFarm) CreateTestGridUrlWithContext(ctx aws.Context, input *CreateTestGridUrlInput, opts ...request.Option) (*CreateTestGridUrlOutput, error) {
628	req, out := c.CreateTestGridUrlRequest(input)
629	req.SetContext(ctx)
630	req.ApplyOptions(opts...)
631	return out, req.Send()
632}
633
634const opCreateUpload = "CreateUpload"
635
636// CreateUploadRequest generates a "aws/request.Request" representing the
637// client's request for the CreateUpload operation. The "output" return
638// value will be populated with the request's response once the request completes
639// successfully.
640//
641// Use "Send" method on the returned Request to send the API call to the service.
642// the "output" return value is not valid until after Send returns without error.
643//
644// See CreateUpload for more information on using the CreateUpload
645// API call, and error handling.
646//
647// This method is useful when you want to inject custom logic or configuration
648// into the SDK's request lifecycle. Such as custom headers, or retry logic.
649//
650//
651//    // Example sending a request using the CreateUploadRequest method.
652//    req, resp := client.CreateUploadRequest(params)
653//
654//    err := req.Send()
655//    if err == nil { // resp is now filled
656//        fmt.Println(resp)
657//    }
658//
659// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateUpload
660func (c *DeviceFarm) CreateUploadRequest(input *CreateUploadInput) (req *request.Request, output *CreateUploadOutput) {
661	op := &request.Operation{
662		Name:       opCreateUpload,
663		HTTPMethod: "POST",
664		HTTPPath:   "/",
665	}
666
667	if input == nil {
668		input = &CreateUploadInput{}
669	}
670
671	output = &CreateUploadOutput{}
672	req = c.newRequest(op, input, output)
673	return
674}
675
676// CreateUpload API operation for AWS Device Farm.
677//
678// Uploads an app or test scripts.
679//
680// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
681// with awserr.Error's Code and Message methods to get detailed information about
682// the error.
683//
684// See the AWS API reference guide for AWS Device Farm's
685// API operation CreateUpload for usage and error information.
686//
687// Returned Error Types:
688//   * ArgumentException
689//   An invalid argument was specified.
690//
691//   * NotFoundException
692//   The specified entity was not found.
693//
694//   * LimitExceededException
695//   A limit was exceeded.
696//
697//   * ServiceAccountException
698//   There was a problem with the service account.
699//
700// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateUpload
701func (c *DeviceFarm) CreateUpload(input *CreateUploadInput) (*CreateUploadOutput, error) {
702	req, out := c.CreateUploadRequest(input)
703	return out, req.Send()
704}
705
706// CreateUploadWithContext is the same as CreateUpload with the addition of
707// the ability to pass a context and additional request options.
708//
709// See CreateUpload for details on how to use this API operation.
710//
711// The context must be non-nil and will be used for request cancellation. If
712// the context is nil a panic will occur. In the future the SDK may create
713// sub-contexts for http.Requests. See https://golang.org/pkg/context/
714// for more information on using Contexts.
715func (c *DeviceFarm) CreateUploadWithContext(ctx aws.Context, input *CreateUploadInput, opts ...request.Option) (*CreateUploadOutput, error) {
716	req, out := c.CreateUploadRequest(input)
717	req.SetContext(ctx)
718	req.ApplyOptions(opts...)
719	return out, req.Send()
720}
721
722const opCreateVPCEConfiguration = "CreateVPCEConfiguration"
723
724// CreateVPCEConfigurationRequest generates a "aws/request.Request" representing the
725// client's request for the CreateVPCEConfiguration operation. The "output" return
726// value will be populated with the request's response once the request completes
727// successfully.
728//
729// Use "Send" method on the returned Request to send the API call to the service.
730// the "output" return value is not valid until after Send returns without error.
731//
732// See CreateVPCEConfiguration for more information on using the CreateVPCEConfiguration
733// API call, and error handling.
734//
735// This method is useful when you want to inject custom logic or configuration
736// into the SDK's request lifecycle. Such as custom headers, or retry logic.
737//
738//
739//    // Example sending a request using the CreateVPCEConfigurationRequest method.
740//    req, resp := client.CreateVPCEConfigurationRequest(params)
741//
742//    err := req.Send()
743//    if err == nil { // resp is now filled
744//        fmt.Println(resp)
745//    }
746//
747// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateVPCEConfiguration
748func (c *DeviceFarm) CreateVPCEConfigurationRequest(input *CreateVPCEConfigurationInput) (req *request.Request, output *CreateVPCEConfigurationOutput) {
749	op := &request.Operation{
750		Name:       opCreateVPCEConfiguration,
751		HTTPMethod: "POST",
752		HTTPPath:   "/",
753	}
754
755	if input == nil {
756		input = &CreateVPCEConfigurationInput{}
757	}
758
759	output = &CreateVPCEConfigurationOutput{}
760	req = c.newRequest(op, input, output)
761	return
762}
763
764// CreateVPCEConfiguration API operation for AWS Device Farm.
765//
766// Creates a configuration record in Device Farm for your Amazon Virtual Private
767// Cloud (VPC) endpoint.
768//
769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
770// with awserr.Error's Code and Message methods to get detailed information about
771// the error.
772//
773// See the AWS API reference guide for AWS Device Farm's
774// API operation CreateVPCEConfiguration for usage and error information.
775//
776// Returned Error Types:
777//   * ArgumentException
778//   An invalid argument was specified.
779//
780//   * LimitExceededException
781//   A limit was exceeded.
782//
783//   * ServiceAccountException
784//   There was a problem with the service account.
785//
786// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateVPCEConfiguration
787func (c *DeviceFarm) CreateVPCEConfiguration(input *CreateVPCEConfigurationInput) (*CreateVPCEConfigurationOutput, error) {
788	req, out := c.CreateVPCEConfigurationRequest(input)
789	return out, req.Send()
790}
791
792// CreateVPCEConfigurationWithContext is the same as CreateVPCEConfiguration with the addition of
793// the ability to pass a context and additional request options.
794//
795// See CreateVPCEConfiguration for details on how to use this API operation.
796//
797// The context must be non-nil and will be used for request cancellation. If
798// the context is nil a panic will occur. In the future the SDK may create
799// sub-contexts for http.Requests. See https://golang.org/pkg/context/
800// for more information on using Contexts.
801func (c *DeviceFarm) CreateVPCEConfigurationWithContext(ctx aws.Context, input *CreateVPCEConfigurationInput, opts ...request.Option) (*CreateVPCEConfigurationOutput, error) {
802	req, out := c.CreateVPCEConfigurationRequest(input)
803	req.SetContext(ctx)
804	req.ApplyOptions(opts...)
805	return out, req.Send()
806}
807
808const opDeleteDevicePool = "DeleteDevicePool"
809
810// DeleteDevicePoolRequest generates a "aws/request.Request" representing the
811// client's request for the DeleteDevicePool operation. The "output" return
812// value will be populated with the request's response once the request completes
813// successfully.
814//
815// Use "Send" method on the returned Request to send the API call to the service.
816// the "output" return value is not valid until after Send returns without error.
817//
818// See DeleteDevicePool for more information on using the DeleteDevicePool
819// API call, and error handling.
820//
821// This method is useful when you want to inject custom logic or configuration
822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
823//
824//
825//    // Example sending a request using the DeleteDevicePoolRequest method.
826//    req, resp := client.DeleteDevicePoolRequest(params)
827//
828//    err := req.Send()
829//    if err == nil { // resp is now filled
830//        fmt.Println(resp)
831//    }
832//
833// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteDevicePool
834func (c *DeviceFarm) DeleteDevicePoolRequest(input *DeleteDevicePoolInput) (req *request.Request, output *DeleteDevicePoolOutput) {
835	op := &request.Operation{
836		Name:       opDeleteDevicePool,
837		HTTPMethod: "POST",
838		HTTPPath:   "/",
839	}
840
841	if input == nil {
842		input = &DeleteDevicePoolInput{}
843	}
844
845	output = &DeleteDevicePoolOutput{}
846	req = c.newRequest(op, input, output)
847	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
848	return
849}
850
851// DeleteDevicePool API operation for AWS Device Farm.
852//
853// Deletes a device pool given the pool ARN. Does not allow deletion of curated
854// pools owned by the system.
855//
856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
857// with awserr.Error's Code and Message methods to get detailed information about
858// the error.
859//
860// See the AWS API reference guide for AWS Device Farm's
861// API operation DeleteDevicePool for usage and error information.
862//
863// Returned Error Types:
864//   * ArgumentException
865//   An invalid argument was specified.
866//
867//   * NotFoundException
868//   The specified entity was not found.
869//
870//   * LimitExceededException
871//   A limit was exceeded.
872//
873//   * ServiceAccountException
874//   There was a problem with the service account.
875//
876// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteDevicePool
877func (c *DeviceFarm) DeleteDevicePool(input *DeleteDevicePoolInput) (*DeleteDevicePoolOutput, error) {
878	req, out := c.DeleteDevicePoolRequest(input)
879	return out, req.Send()
880}
881
882// DeleteDevicePoolWithContext is the same as DeleteDevicePool with the addition of
883// the ability to pass a context and additional request options.
884//
885// See DeleteDevicePool for details on how to use this API operation.
886//
887// The context must be non-nil and will be used for request cancellation. If
888// the context is nil a panic will occur. In the future the SDK may create
889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
890// for more information on using Contexts.
891func (c *DeviceFarm) DeleteDevicePoolWithContext(ctx aws.Context, input *DeleteDevicePoolInput, opts ...request.Option) (*DeleteDevicePoolOutput, error) {
892	req, out := c.DeleteDevicePoolRequest(input)
893	req.SetContext(ctx)
894	req.ApplyOptions(opts...)
895	return out, req.Send()
896}
897
898const opDeleteInstanceProfile = "DeleteInstanceProfile"
899
900// DeleteInstanceProfileRequest generates a "aws/request.Request" representing the
901// client's request for the DeleteInstanceProfile operation. The "output" return
902// value will be populated with the request's response once the request completes
903// successfully.
904//
905// Use "Send" method on the returned Request to send the API call to the service.
906// the "output" return value is not valid until after Send returns without error.
907//
908// See DeleteInstanceProfile for more information on using the DeleteInstanceProfile
909// API call, and error handling.
910//
911// This method is useful when you want to inject custom logic or configuration
912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
913//
914//
915//    // Example sending a request using the DeleteInstanceProfileRequest method.
916//    req, resp := client.DeleteInstanceProfileRequest(params)
917//
918//    err := req.Send()
919//    if err == nil { // resp is now filled
920//        fmt.Println(resp)
921//    }
922//
923// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteInstanceProfile
924func (c *DeviceFarm) DeleteInstanceProfileRequest(input *DeleteInstanceProfileInput) (req *request.Request, output *DeleteInstanceProfileOutput) {
925	op := &request.Operation{
926		Name:       opDeleteInstanceProfile,
927		HTTPMethod: "POST",
928		HTTPPath:   "/",
929	}
930
931	if input == nil {
932		input = &DeleteInstanceProfileInput{}
933	}
934
935	output = &DeleteInstanceProfileOutput{}
936	req = c.newRequest(op, input, output)
937	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
938	return
939}
940
941// DeleteInstanceProfile API operation for AWS Device Farm.
942//
943// Deletes a profile that can be applied to one or more private device instances.
944//
945// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
946// with awserr.Error's Code and Message methods to get detailed information about
947// the error.
948//
949// See the AWS API reference guide for AWS Device Farm's
950// API operation DeleteInstanceProfile for usage and error information.
951//
952// Returned Error Types:
953//   * ArgumentException
954//   An invalid argument was specified.
955//
956//   * NotFoundException
957//   The specified entity was not found.
958//
959//   * LimitExceededException
960//   A limit was exceeded.
961//
962//   * ServiceAccountException
963//   There was a problem with the service account.
964//
965// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteInstanceProfile
966func (c *DeviceFarm) DeleteInstanceProfile(input *DeleteInstanceProfileInput) (*DeleteInstanceProfileOutput, error) {
967	req, out := c.DeleteInstanceProfileRequest(input)
968	return out, req.Send()
969}
970
971// DeleteInstanceProfileWithContext is the same as DeleteInstanceProfile with the addition of
972// the ability to pass a context and additional request options.
973//
974// See DeleteInstanceProfile for details on how to use this API operation.
975//
976// The context must be non-nil and will be used for request cancellation. If
977// the context is nil a panic will occur. In the future the SDK may create
978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
979// for more information on using Contexts.
980func (c *DeviceFarm) DeleteInstanceProfileWithContext(ctx aws.Context, input *DeleteInstanceProfileInput, opts ...request.Option) (*DeleteInstanceProfileOutput, error) {
981	req, out := c.DeleteInstanceProfileRequest(input)
982	req.SetContext(ctx)
983	req.ApplyOptions(opts...)
984	return out, req.Send()
985}
986
987const opDeleteNetworkProfile = "DeleteNetworkProfile"
988
989// DeleteNetworkProfileRequest generates a "aws/request.Request" representing the
990// client's request for the DeleteNetworkProfile operation. The "output" return
991// value will be populated with the request's response once the request completes
992// successfully.
993//
994// Use "Send" method on the returned Request to send the API call to the service.
995// the "output" return value is not valid until after Send returns without error.
996//
997// See DeleteNetworkProfile for more information on using the DeleteNetworkProfile
998// API call, and error handling.
999//
1000// This method is useful when you want to inject custom logic or configuration
1001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1002//
1003//
1004//    // Example sending a request using the DeleteNetworkProfileRequest method.
1005//    req, resp := client.DeleteNetworkProfileRequest(params)
1006//
1007//    err := req.Send()
1008//    if err == nil { // resp is now filled
1009//        fmt.Println(resp)
1010//    }
1011//
1012// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteNetworkProfile
1013func (c *DeviceFarm) DeleteNetworkProfileRequest(input *DeleteNetworkProfileInput) (req *request.Request, output *DeleteNetworkProfileOutput) {
1014	op := &request.Operation{
1015		Name:       opDeleteNetworkProfile,
1016		HTTPMethod: "POST",
1017		HTTPPath:   "/",
1018	}
1019
1020	if input == nil {
1021		input = &DeleteNetworkProfileInput{}
1022	}
1023
1024	output = &DeleteNetworkProfileOutput{}
1025	req = c.newRequest(op, input, output)
1026	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1027	return
1028}
1029
1030// DeleteNetworkProfile API operation for AWS Device Farm.
1031//
1032// Deletes a network profile.
1033//
1034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1035// with awserr.Error's Code and Message methods to get detailed information about
1036// the error.
1037//
1038// See the AWS API reference guide for AWS Device Farm's
1039// API operation DeleteNetworkProfile for usage and error information.
1040//
1041// Returned Error Types:
1042//   * ArgumentException
1043//   An invalid argument was specified.
1044//
1045//   * NotFoundException
1046//   The specified entity was not found.
1047//
1048//   * LimitExceededException
1049//   A limit was exceeded.
1050//
1051//   * ServiceAccountException
1052//   There was a problem with the service account.
1053//
1054// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteNetworkProfile
1055func (c *DeviceFarm) DeleteNetworkProfile(input *DeleteNetworkProfileInput) (*DeleteNetworkProfileOutput, error) {
1056	req, out := c.DeleteNetworkProfileRequest(input)
1057	return out, req.Send()
1058}
1059
1060// DeleteNetworkProfileWithContext is the same as DeleteNetworkProfile with the addition of
1061// the ability to pass a context and additional request options.
1062//
1063// See DeleteNetworkProfile for details on how to use this API operation.
1064//
1065// The context must be non-nil and will be used for request cancellation. If
1066// the context is nil a panic will occur. In the future the SDK may create
1067// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1068// for more information on using Contexts.
1069func (c *DeviceFarm) DeleteNetworkProfileWithContext(ctx aws.Context, input *DeleteNetworkProfileInput, opts ...request.Option) (*DeleteNetworkProfileOutput, error) {
1070	req, out := c.DeleteNetworkProfileRequest(input)
1071	req.SetContext(ctx)
1072	req.ApplyOptions(opts...)
1073	return out, req.Send()
1074}
1075
1076const opDeleteProject = "DeleteProject"
1077
1078// DeleteProjectRequest generates a "aws/request.Request" representing the
1079// client's request for the DeleteProject operation. The "output" return
1080// value will be populated with the request's response once the request completes
1081// successfully.
1082//
1083// Use "Send" method on the returned Request to send the API call to the service.
1084// the "output" return value is not valid until after Send returns without error.
1085//
1086// See DeleteProject for more information on using the DeleteProject
1087// API call, and error handling.
1088//
1089// This method is useful when you want to inject custom logic or configuration
1090// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1091//
1092//
1093//    // Example sending a request using the DeleteProjectRequest method.
1094//    req, resp := client.DeleteProjectRequest(params)
1095//
1096//    err := req.Send()
1097//    if err == nil { // resp is now filled
1098//        fmt.Println(resp)
1099//    }
1100//
1101// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteProject
1102func (c *DeviceFarm) DeleteProjectRequest(input *DeleteProjectInput) (req *request.Request, output *DeleteProjectOutput) {
1103	op := &request.Operation{
1104		Name:       opDeleteProject,
1105		HTTPMethod: "POST",
1106		HTTPPath:   "/",
1107	}
1108
1109	if input == nil {
1110		input = &DeleteProjectInput{}
1111	}
1112
1113	output = &DeleteProjectOutput{}
1114	req = c.newRequest(op, input, output)
1115	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1116	return
1117}
1118
1119// DeleteProject API operation for AWS Device Farm.
1120//
1121// Deletes an AWS Device Farm project, given the project ARN.
1122//
1123// Deleting this resource does not stop an in-progress run.
1124//
1125// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1126// with awserr.Error's Code and Message methods to get detailed information about
1127// the error.
1128//
1129// See the AWS API reference guide for AWS Device Farm's
1130// API operation DeleteProject for usage and error information.
1131//
1132// Returned Error Types:
1133//   * ArgumentException
1134//   An invalid argument was specified.
1135//
1136//   * NotFoundException
1137//   The specified entity was not found.
1138//
1139//   * LimitExceededException
1140//   A limit was exceeded.
1141//
1142//   * ServiceAccountException
1143//   There was a problem with the service account.
1144//
1145// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteProject
1146func (c *DeviceFarm) DeleteProject(input *DeleteProjectInput) (*DeleteProjectOutput, error) {
1147	req, out := c.DeleteProjectRequest(input)
1148	return out, req.Send()
1149}
1150
1151// DeleteProjectWithContext is the same as DeleteProject with the addition of
1152// the ability to pass a context and additional request options.
1153//
1154// See DeleteProject for details on how to use this API operation.
1155//
1156// The context must be non-nil and will be used for request cancellation. If
1157// the context is nil a panic will occur. In the future the SDK may create
1158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1159// for more information on using Contexts.
1160func (c *DeviceFarm) DeleteProjectWithContext(ctx aws.Context, input *DeleteProjectInput, opts ...request.Option) (*DeleteProjectOutput, error) {
1161	req, out := c.DeleteProjectRequest(input)
1162	req.SetContext(ctx)
1163	req.ApplyOptions(opts...)
1164	return out, req.Send()
1165}
1166
1167const opDeleteRemoteAccessSession = "DeleteRemoteAccessSession"
1168
1169// DeleteRemoteAccessSessionRequest generates a "aws/request.Request" representing the
1170// client's request for the DeleteRemoteAccessSession operation. The "output" return
1171// value will be populated with the request's response once the request completes
1172// successfully.
1173//
1174// Use "Send" method on the returned Request to send the API call to the service.
1175// the "output" return value is not valid until after Send returns without error.
1176//
1177// See DeleteRemoteAccessSession for more information on using the DeleteRemoteAccessSession
1178// API call, and error handling.
1179//
1180// This method is useful when you want to inject custom logic or configuration
1181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1182//
1183//
1184//    // Example sending a request using the DeleteRemoteAccessSessionRequest method.
1185//    req, resp := client.DeleteRemoteAccessSessionRequest(params)
1186//
1187//    err := req.Send()
1188//    if err == nil { // resp is now filled
1189//        fmt.Println(resp)
1190//    }
1191//
1192// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRemoteAccessSession
1193func (c *DeviceFarm) DeleteRemoteAccessSessionRequest(input *DeleteRemoteAccessSessionInput) (req *request.Request, output *DeleteRemoteAccessSessionOutput) {
1194	op := &request.Operation{
1195		Name:       opDeleteRemoteAccessSession,
1196		HTTPMethod: "POST",
1197		HTTPPath:   "/",
1198	}
1199
1200	if input == nil {
1201		input = &DeleteRemoteAccessSessionInput{}
1202	}
1203
1204	output = &DeleteRemoteAccessSessionOutput{}
1205	req = c.newRequest(op, input, output)
1206	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1207	return
1208}
1209
1210// DeleteRemoteAccessSession API operation for AWS Device Farm.
1211//
1212// Deletes a completed remote access session and its results.
1213//
1214// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1215// with awserr.Error's Code and Message methods to get detailed information about
1216// the error.
1217//
1218// See the AWS API reference guide for AWS Device Farm's
1219// API operation DeleteRemoteAccessSession for usage and error information.
1220//
1221// Returned Error Types:
1222//   * ArgumentException
1223//   An invalid argument was specified.
1224//
1225//   * NotFoundException
1226//   The specified entity was not found.
1227//
1228//   * LimitExceededException
1229//   A limit was exceeded.
1230//
1231//   * ServiceAccountException
1232//   There was a problem with the service account.
1233//
1234// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRemoteAccessSession
1235func (c *DeviceFarm) DeleteRemoteAccessSession(input *DeleteRemoteAccessSessionInput) (*DeleteRemoteAccessSessionOutput, error) {
1236	req, out := c.DeleteRemoteAccessSessionRequest(input)
1237	return out, req.Send()
1238}
1239
1240// DeleteRemoteAccessSessionWithContext is the same as DeleteRemoteAccessSession with the addition of
1241// the ability to pass a context and additional request options.
1242//
1243// See DeleteRemoteAccessSession for details on how to use this API operation.
1244//
1245// The context must be non-nil and will be used for request cancellation. If
1246// the context is nil a panic will occur. In the future the SDK may create
1247// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1248// for more information on using Contexts.
1249func (c *DeviceFarm) DeleteRemoteAccessSessionWithContext(ctx aws.Context, input *DeleteRemoteAccessSessionInput, opts ...request.Option) (*DeleteRemoteAccessSessionOutput, error) {
1250	req, out := c.DeleteRemoteAccessSessionRequest(input)
1251	req.SetContext(ctx)
1252	req.ApplyOptions(opts...)
1253	return out, req.Send()
1254}
1255
1256const opDeleteRun = "DeleteRun"
1257
1258// DeleteRunRequest generates a "aws/request.Request" representing the
1259// client's request for the DeleteRun operation. The "output" return
1260// value will be populated with the request's response once the request completes
1261// successfully.
1262//
1263// Use "Send" method on the returned Request to send the API call to the service.
1264// the "output" return value is not valid until after Send returns without error.
1265//
1266// See DeleteRun for more information on using the DeleteRun
1267// API call, and error handling.
1268//
1269// This method is useful when you want to inject custom logic or configuration
1270// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1271//
1272//
1273//    // Example sending a request using the DeleteRunRequest method.
1274//    req, resp := client.DeleteRunRequest(params)
1275//
1276//    err := req.Send()
1277//    if err == nil { // resp is now filled
1278//        fmt.Println(resp)
1279//    }
1280//
1281// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRun
1282func (c *DeviceFarm) DeleteRunRequest(input *DeleteRunInput) (req *request.Request, output *DeleteRunOutput) {
1283	op := &request.Operation{
1284		Name:       opDeleteRun,
1285		HTTPMethod: "POST",
1286		HTTPPath:   "/",
1287	}
1288
1289	if input == nil {
1290		input = &DeleteRunInput{}
1291	}
1292
1293	output = &DeleteRunOutput{}
1294	req = c.newRequest(op, input, output)
1295	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1296	return
1297}
1298
1299// DeleteRun API operation for AWS Device Farm.
1300//
1301// Deletes the run, given the run ARN.
1302//
1303// Deleting this resource does not stop an in-progress run.
1304//
1305// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1306// with awserr.Error's Code and Message methods to get detailed information about
1307// the error.
1308//
1309// See the AWS API reference guide for AWS Device Farm's
1310// API operation DeleteRun for usage and error information.
1311//
1312// Returned Error Types:
1313//   * ArgumentException
1314//   An invalid argument was specified.
1315//
1316//   * NotFoundException
1317//   The specified entity was not found.
1318//
1319//   * LimitExceededException
1320//   A limit was exceeded.
1321//
1322//   * ServiceAccountException
1323//   There was a problem with the service account.
1324//
1325// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRun
1326func (c *DeviceFarm) DeleteRun(input *DeleteRunInput) (*DeleteRunOutput, error) {
1327	req, out := c.DeleteRunRequest(input)
1328	return out, req.Send()
1329}
1330
1331// DeleteRunWithContext is the same as DeleteRun with the addition of
1332// the ability to pass a context and additional request options.
1333//
1334// See DeleteRun for details on how to use this API operation.
1335//
1336// The context must be non-nil and will be used for request cancellation. If
1337// the context is nil a panic will occur. In the future the SDK may create
1338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1339// for more information on using Contexts.
1340func (c *DeviceFarm) DeleteRunWithContext(ctx aws.Context, input *DeleteRunInput, opts ...request.Option) (*DeleteRunOutput, error) {
1341	req, out := c.DeleteRunRequest(input)
1342	req.SetContext(ctx)
1343	req.ApplyOptions(opts...)
1344	return out, req.Send()
1345}
1346
1347const opDeleteTestGridProject = "DeleteTestGridProject"
1348
1349// DeleteTestGridProjectRequest generates a "aws/request.Request" representing the
1350// client's request for the DeleteTestGridProject operation. The "output" return
1351// value will be populated with the request's response once the request completes
1352// successfully.
1353//
1354// Use "Send" method on the returned Request to send the API call to the service.
1355// the "output" return value is not valid until after Send returns without error.
1356//
1357// See DeleteTestGridProject for more information on using the DeleteTestGridProject
1358// API call, and error handling.
1359//
1360// This method is useful when you want to inject custom logic or configuration
1361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1362//
1363//
1364//    // Example sending a request using the DeleteTestGridProjectRequest method.
1365//    req, resp := client.DeleteTestGridProjectRequest(params)
1366//
1367//    err := req.Send()
1368//    if err == nil { // resp is now filled
1369//        fmt.Println(resp)
1370//    }
1371//
1372// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteTestGridProject
1373func (c *DeviceFarm) DeleteTestGridProjectRequest(input *DeleteTestGridProjectInput) (req *request.Request, output *DeleteTestGridProjectOutput) {
1374	op := &request.Operation{
1375		Name:       opDeleteTestGridProject,
1376		HTTPMethod: "POST",
1377		HTTPPath:   "/",
1378	}
1379
1380	if input == nil {
1381		input = &DeleteTestGridProjectInput{}
1382	}
1383
1384	output = &DeleteTestGridProjectOutput{}
1385	req = c.newRequest(op, input, output)
1386	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1387	return
1388}
1389
1390// DeleteTestGridProject API operation for AWS Device Farm.
1391//
1392// Deletes a Selenium testing project and all content generated under it.
1393//
1394// You cannot undo this operation.
1395//
1396// You cannot delete a project if it has active sessions.
1397//
1398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1399// with awserr.Error's Code and Message methods to get detailed information about
1400// the error.
1401//
1402// See the AWS API reference guide for AWS Device Farm's
1403// API operation DeleteTestGridProject for usage and error information.
1404//
1405// Returned Error Types:
1406//   * NotFoundException
1407//   The specified entity was not found.
1408//
1409//   * ArgumentException
1410//   An invalid argument was specified.
1411//
1412//   * CannotDeleteException
1413//   The requested object could not be deleted.
1414//
1415//   * InternalServiceException
1416//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
1417//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
1418//
1419// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteTestGridProject
1420func (c *DeviceFarm) DeleteTestGridProject(input *DeleteTestGridProjectInput) (*DeleteTestGridProjectOutput, error) {
1421	req, out := c.DeleteTestGridProjectRequest(input)
1422	return out, req.Send()
1423}
1424
1425// DeleteTestGridProjectWithContext is the same as DeleteTestGridProject with the addition of
1426// the ability to pass a context and additional request options.
1427//
1428// See DeleteTestGridProject for details on how to use this API operation.
1429//
1430// The context must be non-nil and will be used for request cancellation. If
1431// the context is nil a panic will occur. In the future the SDK may create
1432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1433// for more information on using Contexts.
1434func (c *DeviceFarm) DeleteTestGridProjectWithContext(ctx aws.Context, input *DeleteTestGridProjectInput, opts ...request.Option) (*DeleteTestGridProjectOutput, error) {
1435	req, out := c.DeleteTestGridProjectRequest(input)
1436	req.SetContext(ctx)
1437	req.ApplyOptions(opts...)
1438	return out, req.Send()
1439}
1440
1441const opDeleteUpload = "DeleteUpload"
1442
1443// DeleteUploadRequest generates a "aws/request.Request" representing the
1444// client's request for the DeleteUpload operation. The "output" return
1445// value will be populated with the request's response once the request completes
1446// successfully.
1447//
1448// Use "Send" method on the returned Request to send the API call to the service.
1449// the "output" return value is not valid until after Send returns without error.
1450//
1451// See DeleteUpload for more information on using the DeleteUpload
1452// API call, and error handling.
1453//
1454// This method is useful when you want to inject custom logic or configuration
1455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1456//
1457//
1458//    // Example sending a request using the DeleteUploadRequest method.
1459//    req, resp := client.DeleteUploadRequest(params)
1460//
1461//    err := req.Send()
1462//    if err == nil { // resp is now filled
1463//        fmt.Println(resp)
1464//    }
1465//
1466// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteUpload
1467func (c *DeviceFarm) DeleteUploadRequest(input *DeleteUploadInput) (req *request.Request, output *DeleteUploadOutput) {
1468	op := &request.Operation{
1469		Name:       opDeleteUpload,
1470		HTTPMethod: "POST",
1471		HTTPPath:   "/",
1472	}
1473
1474	if input == nil {
1475		input = &DeleteUploadInput{}
1476	}
1477
1478	output = &DeleteUploadOutput{}
1479	req = c.newRequest(op, input, output)
1480	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1481	return
1482}
1483
1484// DeleteUpload API operation for AWS Device Farm.
1485//
1486// Deletes an upload given the upload ARN.
1487//
1488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1489// with awserr.Error's Code and Message methods to get detailed information about
1490// the error.
1491//
1492// See the AWS API reference guide for AWS Device Farm's
1493// API operation DeleteUpload for usage and error information.
1494//
1495// Returned Error Types:
1496//   * ArgumentException
1497//   An invalid argument was specified.
1498//
1499//   * NotFoundException
1500//   The specified entity was not found.
1501//
1502//   * LimitExceededException
1503//   A limit was exceeded.
1504//
1505//   * ServiceAccountException
1506//   There was a problem with the service account.
1507//
1508// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteUpload
1509func (c *DeviceFarm) DeleteUpload(input *DeleteUploadInput) (*DeleteUploadOutput, error) {
1510	req, out := c.DeleteUploadRequest(input)
1511	return out, req.Send()
1512}
1513
1514// DeleteUploadWithContext is the same as DeleteUpload with the addition of
1515// the ability to pass a context and additional request options.
1516//
1517// See DeleteUpload for details on how to use this API operation.
1518//
1519// The context must be non-nil and will be used for request cancellation. If
1520// the context is nil a panic will occur. In the future the SDK may create
1521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1522// for more information on using Contexts.
1523func (c *DeviceFarm) DeleteUploadWithContext(ctx aws.Context, input *DeleteUploadInput, opts ...request.Option) (*DeleteUploadOutput, error) {
1524	req, out := c.DeleteUploadRequest(input)
1525	req.SetContext(ctx)
1526	req.ApplyOptions(opts...)
1527	return out, req.Send()
1528}
1529
1530const opDeleteVPCEConfiguration = "DeleteVPCEConfiguration"
1531
1532// DeleteVPCEConfigurationRequest generates a "aws/request.Request" representing the
1533// client's request for the DeleteVPCEConfiguration operation. The "output" return
1534// value will be populated with the request's response once the request completes
1535// successfully.
1536//
1537// Use "Send" method on the returned Request to send the API call to the service.
1538// the "output" return value is not valid until after Send returns without error.
1539//
1540// See DeleteVPCEConfiguration for more information on using the DeleteVPCEConfiguration
1541// API call, and error handling.
1542//
1543// This method is useful when you want to inject custom logic or configuration
1544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1545//
1546//
1547//    // Example sending a request using the DeleteVPCEConfigurationRequest method.
1548//    req, resp := client.DeleteVPCEConfigurationRequest(params)
1549//
1550//    err := req.Send()
1551//    if err == nil { // resp is now filled
1552//        fmt.Println(resp)
1553//    }
1554//
1555// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteVPCEConfiguration
1556func (c *DeviceFarm) DeleteVPCEConfigurationRequest(input *DeleteVPCEConfigurationInput) (req *request.Request, output *DeleteVPCEConfigurationOutput) {
1557	op := &request.Operation{
1558		Name:       opDeleteVPCEConfiguration,
1559		HTTPMethod: "POST",
1560		HTTPPath:   "/",
1561	}
1562
1563	if input == nil {
1564		input = &DeleteVPCEConfigurationInput{}
1565	}
1566
1567	output = &DeleteVPCEConfigurationOutput{}
1568	req = c.newRequest(op, input, output)
1569	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1570	return
1571}
1572
1573// DeleteVPCEConfiguration API operation for AWS Device Farm.
1574//
1575// Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.
1576//
1577// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1578// with awserr.Error's Code and Message methods to get detailed information about
1579// the error.
1580//
1581// See the AWS API reference guide for AWS Device Farm's
1582// API operation DeleteVPCEConfiguration for usage and error information.
1583//
1584// Returned Error Types:
1585//   * ArgumentException
1586//   An invalid argument was specified.
1587//
1588//   * NotFoundException
1589//   The specified entity was not found.
1590//
1591//   * ServiceAccountException
1592//   There was a problem with the service account.
1593//
1594//   * InvalidOperationException
1595//   There was an error with the update request, or you do not have sufficient
1596//   permissions to update this VPC endpoint configuration.
1597//
1598// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteVPCEConfiguration
1599func (c *DeviceFarm) DeleteVPCEConfiguration(input *DeleteVPCEConfigurationInput) (*DeleteVPCEConfigurationOutput, error) {
1600	req, out := c.DeleteVPCEConfigurationRequest(input)
1601	return out, req.Send()
1602}
1603
1604// DeleteVPCEConfigurationWithContext is the same as DeleteVPCEConfiguration with the addition of
1605// the ability to pass a context and additional request options.
1606//
1607// See DeleteVPCEConfiguration for details on how to use this API operation.
1608//
1609// The context must be non-nil and will be used for request cancellation. If
1610// the context is nil a panic will occur. In the future the SDK may create
1611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1612// for more information on using Contexts.
1613func (c *DeviceFarm) DeleteVPCEConfigurationWithContext(ctx aws.Context, input *DeleteVPCEConfigurationInput, opts ...request.Option) (*DeleteVPCEConfigurationOutput, error) {
1614	req, out := c.DeleteVPCEConfigurationRequest(input)
1615	req.SetContext(ctx)
1616	req.ApplyOptions(opts...)
1617	return out, req.Send()
1618}
1619
1620const opGetAccountSettings = "GetAccountSettings"
1621
1622// GetAccountSettingsRequest generates a "aws/request.Request" representing the
1623// client's request for the GetAccountSettings operation. The "output" return
1624// value will be populated with the request's response once the request completes
1625// successfully.
1626//
1627// Use "Send" method on the returned Request to send the API call to the service.
1628// the "output" return value is not valid until after Send returns without error.
1629//
1630// See GetAccountSettings for more information on using the GetAccountSettings
1631// API call, and error handling.
1632//
1633// This method is useful when you want to inject custom logic or configuration
1634// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1635//
1636//
1637//    // Example sending a request using the GetAccountSettingsRequest method.
1638//    req, resp := client.GetAccountSettingsRequest(params)
1639//
1640//    err := req.Send()
1641//    if err == nil { // resp is now filled
1642//        fmt.Println(resp)
1643//    }
1644//
1645// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetAccountSettings
1646func (c *DeviceFarm) GetAccountSettingsRequest(input *GetAccountSettingsInput) (req *request.Request, output *GetAccountSettingsOutput) {
1647	op := &request.Operation{
1648		Name:       opGetAccountSettings,
1649		HTTPMethod: "POST",
1650		HTTPPath:   "/",
1651	}
1652
1653	if input == nil {
1654		input = &GetAccountSettingsInput{}
1655	}
1656
1657	output = &GetAccountSettingsOutput{}
1658	req = c.newRequest(op, input, output)
1659	return
1660}
1661
1662// GetAccountSettings API operation for AWS Device Farm.
1663//
1664// Returns the number of unmetered iOS or unmetered Android devices that have
1665// been purchased by the account.
1666//
1667// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1668// with awserr.Error's Code and Message methods to get detailed information about
1669// the error.
1670//
1671// See the AWS API reference guide for AWS Device Farm's
1672// API operation GetAccountSettings for usage and error information.
1673//
1674// Returned Error Types:
1675//   * ArgumentException
1676//   An invalid argument was specified.
1677//
1678//   * NotFoundException
1679//   The specified entity was not found.
1680//
1681//   * LimitExceededException
1682//   A limit was exceeded.
1683//
1684//   * ServiceAccountException
1685//   There was a problem with the service account.
1686//
1687// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetAccountSettings
1688func (c *DeviceFarm) GetAccountSettings(input *GetAccountSettingsInput) (*GetAccountSettingsOutput, error) {
1689	req, out := c.GetAccountSettingsRequest(input)
1690	return out, req.Send()
1691}
1692
1693// GetAccountSettingsWithContext is the same as GetAccountSettings with the addition of
1694// the ability to pass a context and additional request options.
1695//
1696// See GetAccountSettings for details on how to use this API operation.
1697//
1698// The context must be non-nil and will be used for request cancellation. If
1699// the context is nil a panic will occur. In the future the SDK may create
1700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1701// for more information on using Contexts.
1702func (c *DeviceFarm) GetAccountSettingsWithContext(ctx aws.Context, input *GetAccountSettingsInput, opts ...request.Option) (*GetAccountSettingsOutput, error) {
1703	req, out := c.GetAccountSettingsRequest(input)
1704	req.SetContext(ctx)
1705	req.ApplyOptions(opts...)
1706	return out, req.Send()
1707}
1708
1709const opGetDevice = "GetDevice"
1710
1711// GetDeviceRequest generates a "aws/request.Request" representing the
1712// client's request for the GetDevice operation. The "output" return
1713// value will be populated with the request's response once the request completes
1714// successfully.
1715//
1716// Use "Send" method on the returned Request to send the API call to the service.
1717// the "output" return value is not valid until after Send returns without error.
1718//
1719// See GetDevice for more information on using the GetDevice
1720// API call, and error handling.
1721//
1722// This method is useful when you want to inject custom logic or configuration
1723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1724//
1725//
1726//    // Example sending a request using the GetDeviceRequest method.
1727//    req, resp := client.GetDeviceRequest(params)
1728//
1729//    err := req.Send()
1730//    if err == nil { // resp is now filled
1731//        fmt.Println(resp)
1732//    }
1733//
1734// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevice
1735func (c *DeviceFarm) GetDeviceRequest(input *GetDeviceInput) (req *request.Request, output *GetDeviceOutput) {
1736	op := &request.Operation{
1737		Name:       opGetDevice,
1738		HTTPMethod: "POST",
1739		HTTPPath:   "/",
1740	}
1741
1742	if input == nil {
1743		input = &GetDeviceInput{}
1744	}
1745
1746	output = &GetDeviceOutput{}
1747	req = c.newRequest(op, input, output)
1748	return
1749}
1750
1751// GetDevice API operation for AWS Device Farm.
1752//
1753// Gets information about a unique device type.
1754//
1755// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1756// with awserr.Error's Code and Message methods to get detailed information about
1757// the error.
1758//
1759// See the AWS API reference guide for AWS Device Farm's
1760// API operation GetDevice for usage and error information.
1761//
1762// Returned Error Types:
1763//   * ArgumentException
1764//   An invalid argument was specified.
1765//
1766//   * NotFoundException
1767//   The specified entity was not found.
1768//
1769//   * LimitExceededException
1770//   A limit was exceeded.
1771//
1772//   * ServiceAccountException
1773//   There was a problem with the service account.
1774//
1775// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevice
1776func (c *DeviceFarm) GetDevice(input *GetDeviceInput) (*GetDeviceOutput, error) {
1777	req, out := c.GetDeviceRequest(input)
1778	return out, req.Send()
1779}
1780
1781// GetDeviceWithContext is the same as GetDevice with the addition of
1782// the ability to pass a context and additional request options.
1783//
1784// See GetDevice for details on how to use this API operation.
1785//
1786// The context must be non-nil and will be used for request cancellation. If
1787// the context is nil a panic will occur. In the future the SDK may create
1788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1789// for more information on using Contexts.
1790func (c *DeviceFarm) GetDeviceWithContext(ctx aws.Context, input *GetDeviceInput, opts ...request.Option) (*GetDeviceOutput, error) {
1791	req, out := c.GetDeviceRequest(input)
1792	req.SetContext(ctx)
1793	req.ApplyOptions(opts...)
1794	return out, req.Send()
1795}
1796
1797const opGetDeviceInstance = "GetDeviceInstance"
1798
1799// GetDeviceInstanceRequest generates a "aws/request.Request" representing the
1800// client's request for the GetDeviceInstance operation. The "output" return
1801// value will be populated with the request's response once the request completes
1802// successfully.
1803//
1804// Use "Send" method on the returned Request to send the API call to the service.
1805// the "output" return value is not valid until after Send returns without error.
1806//
1807// See GetDeviceInstance for more information on using the GetDeviceInstance
1808// API call, and error handling.
1809//
1810// This method is useful when you want to inject custom logic or configuration
1811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1812//
1813//
1814//    // Example sending a request using the GetDeviceInstanceRequest method.
1815//    req, resp := client.GetDeviceInstanceRequest(params)
1816//
1817//    err := req.Send()
1818//    if err == nil { // resp is now filled
1819//        fmt.Println(resp)
1820//    }
1821//
1822// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDeviceInstance
1823func (c *DeviceFarm) GetDeviceInstanceRequest(input *GetDeviceInstanceInput) (req *request.Request, output *GetDeviceInstanceOutput) {
1824	op := &request.Operation{
1825		Name:       opGetDeviceInstance,
1826		HTTPMethod: "POST",
1827		HTTPPath:   "/",
1828	}
1829
1830	if input == nil {
1831		input = &GetDeviceInstanceInput{}
1832	}
1833
1834	output = &GetDeviceInstanceOutput{}
1835	req = c.newRequest(op, input, output)
1836	return
1837}
1838
1839// GetDeviceInstance API operation for AWS Device Farm.
1840//
1841// Returns information about a device instance that belongs to a private device
1842// fleet.
1843//
1844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1845// with awserr.Error's Code and Message methods to get detailed information about
1846// the error.
1847//
1848// See the AWS API reference guide for AWS Device Farm's
1849// API operation GetDeviceInstance for usage and error information.
1850//
1851// Returned Error Types:
1852//   * ArgumentException
1853//   An invalid argument was specified.
1854//
1855//   * NotFoundException
1856//   The specified entity was not found.
1857//
1858//   * LimitExceededException
1859//   A limit was exceeded.
1860//
1861//   * ServiceAccountException
1862//   There was a problem with the service account.
1863//
1864// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDeviceInstance
1865func (c *DeviceFarm) GetDeviceInstance(input *GetDeviceInstanceInput) (*GetDeviceInstanceOutput, error) {
1866	req, out := c.GetDeviceInstanceRequest(input)
1867	return out, req.Send()
1868}
1869
1870// GetDeviceInstanceWithContext is the same as GetDeviceInstance with the addition of
1871// the ability to pass a context and additional request options.
1872//
1873// See GetDeviceInstance for details on how to use this API operation.
1874//
1875// The context must be non-nil and will be used for request cancellation. If
1876// the context is nil a panic will occur. In the future the SDK may create
1877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1878// for more information on using Contexts.
1879func (c *DeviceFarm) GetDeviceInstanceWithContext(ctx aws.Context, input *GetDeviceInstanceInput, opts ...request.Option) (*GetDeviceInstanceOutput, error) {
1880	req, out := c.GetDeviceInstanceRequest(input)
1881	req.SetContext(ctx)
1882	req.ApplyOptions(opts...)
1883	return out, req.Send()
1884}
1885
1886const opGetDevicePool = "GetDevicePool"
1887
1888// GetDevicePoolRequest generates a "aws/request.Request" representing the
1889// client's request for the GetDevicePool operation. The "output" return
1890// value will be populated with the request's response once the request completes
1891// successfully.
1892//
1893// Use "Send" method on the returned Request to send the API call to the service.
1894// the "output" return value is not valid until after Send returns without error.
1895//
1896// See GetDevicePool for more information on using the GetDevicePool
1897// API call, and error handling.
1898//
1899// This method is useful when you want to inject custom logic or configuration
1900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1901//
1902//
1903//    // Example sending a request using the GetDevicePoolRequest method.
1904//    req, resp := client.GetDevicePoolRequest(params)
1905//
1906//    err := req.Send()
1907//    if err == nil { // resp is now filled
1908//        fmt.Println(resp)
1909//    }
1910//
1911// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePool
1912func (c *DeviceFarm) GetDevicePoolRequest(input *GetDevicePoolInput) (req *request.Request, output *GetDevicePoolOutput) {
1913	op := &request.Operation{
1914		Name:       opGetDevicePool,
1915		HTTPMethod: "POST",
1916		HTTPPath:   "/",
1917	}
1918
1919	if input == nil {
1920		input = &GetDevicePoolInput{}
1921	}
1922
1923	output = &GetDevicePoolOutput{}
1924	req = c.newRequest(op, input, output)
1925	return
1926}
1927
1928// GetDevicePool API operation for AWS Device Farm.
1929//
1930// Gets information about a device pool.
1931//
1932// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1933// with awserr.Error's Code and Message methods to get detailed information about
1934// the error.
1935//
1936// See the AWS API reference guide for AWS Device Farm's
1937// API operation GetDevicePool for usage and error information.
1938//
1939// Returned Error Types:
1940//   * ArgumentException
1941//   An invalid argument was specified.
1942//
1943//   * NotFoundException
1944//   The specified entity was not found.
1945//
1946//   * LimitExceededException
1947//   A limit was exceeded.
1948//
1949//   * ServiceAccountException
1950//   There was a problem with the service account.
1951//
1952// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePool
1953func (c *DeviceFarm) GetDevicePool(input *GetDevicePoolInput) (*GetDevicePoolOutput, error) {
1954	req, out := c.GetDevicePoolRequest(input)
1955	return out, req.Send()
1956}
1957
1958// GetDevicePoolWithContext is the same as GetDevicePool with the addition of
1959// the ability to pass a context and additional request options.
1960//
1961// See GetDevicePool for details on how to use this API operation.
1962//
1963// The context must be non-nil and will be used for request cancellation. If
1964// the context is nil a panic will occur. In the future the SDK may create
1965// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1966// for more information on using Contexts.
1967func (c *DeviceFarm) GetDevicePoolWithContext(ctx aws.Context, input *GetDevicePoolInput, opts ...request.Option) (*GetDevicePoolOutput, error) {
1968	req, out := c.GetDevicePoolRequest(input)
1969	req.SetContext(ctx)
1970	req.ApplyOptions(opts...)
1971	return out, req.Send()
1972}
1973
1974const opGetDevicePoolCompatibility = "GetDevicePoolCompatibility"
1975
1976// GetDevicePoolCompatibilityRequest generates a "aws/request.Request" representing the
1977// client's request for the GetDevicePoolCompatibility operation. The "output" return
1978// value will be populated with the request's response once the request completes
1979// successfully.
1980//
1981// Use "Send" method on the returned Request to send the API call to the service.
1982// the "output" return value is not valid until after Send returns without error.
1983//
1984// See GetDevicePoolCompatibility for more information on using the GetDevicePoolCompatibility
1985// API call, and error handling.
1986//
1987// This method is useful when you want to inject custom logic or configuration
1988// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1989//
1990//
1991//    // Example sending a request using the GetDevicePoolCompatibilityRequest method.
1992//    req, resp := client.GetDevicePoolCompatibilityRequest(params)
1993//
1994//    err := req.Send()
1995//    if err == nil { // resp is now filled
1996//        fmt.Println(resp)
1997//    }
1998//
1999// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolCompatibility
2000func (c *DeviceFarm) GetDevicePoolCompatibilityRequest(input *GetDevicePoolCompatibilityInput) (req *request.Request, output *GetDevicePoolCompatibilityOutput) {
2001	op := &request.Operation{
2002		Name:       opGetDevicePoolCompatibility,
2003		HTTPMethod: "POST",
2004		HTTPPath:   "/",
2005	}
2006
2007	if input == nil {
2008		input = &GetDevicePoolCompatibilityInput{}
2009	}
2010
2011	output = &GetDevicePoolCompatibilityOutput{}
2012	req = c.newRequest(op, input, output)
2013	return
2014}
2015
2016// GetDevicePoolCompatibility API operation for AWS Device Farm.
2017//
2018// Gets information about compatibility with a device pool.
2019//
2020// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2021// with awserr.Error's Code and Message methods to get detailed information about
2022// the error.
2023//
2024// See the AWS API reference guide for AWS Device Farm's
2025// API operation GetDevicePoolCompatibility for usage and error information.
2026//
2027// Returned Error Types:
2028//   * ArgumentException
2029//   An invalid argument was specified.
2030//
2031//   * NotFoundException
2032//   The specified entity was not found.
2033//
2034//   * LimitExceededException
2035//   A limit was exceeded.
2036//
2037//   * ServiceAccountException
2038//   There was a problem with the service account.
2039//
2040// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolCompatibility
2041func (c *DeviceFarm) GetDevicePoolCompatibility(input *GetDevicePoolCompatibilityInput) (*GetDevicePoolCompatibilityOutput, error) {
2042	req, out := c.GetDevicePoolCompatibilityRequest(input)
2043	return out, req.Send()
2044}
2045
2046// GetDevicePoolCompatibilityWithContext is the same as GetDevicePoolCompatibility with the addition of
2047// the ability to pass a context and additional request options.
2048//
2049// See GetDevicePoolCompatibility for details on how to use this API operation.
2050//
2051// The context must be non-nil and will be used for request cancellation. If
2052// the context is nil a panic will occur. In the future the SDK may create
2053// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2054// for more information on using Contexts.
2055func (c *DeviceFarm) GetDevicePoolCompatibilityWithContext(ctx aws.Context, input *GetDevicePoolCompatibilityInput, opts ...request.Option) (*GetDevicePoolCompatibilityOutput, error) {
2056	req, out := c.GetDevicePoolCompatibilityRequest(input)
2057	req.SetContext(ctx)
2058	req.ApplyOptions(opts...)
2059	return out, req.Send()
2060}
2061
2062const opGetInstanceProfile = "GetInstanceProfile"
2063
2064// GetInstanceProfileRequest generates a "aws/request.Request" representing the
2065// client's request for the GetInstanceProfile operation. The "output" return
2066// value will be populated with the request's response once the request completes
2067// successfully.
2068//
2069// Use "Send" method on the returned Request to send the API call to the service.
2070// the "output" return value is not valid until after Send returns without error.
2071//
2072// See GetInstanceProfile for more information on using the GetInstanceProfile
2073// API call, and error handling.
2074//
2075// This method is useful when you want to inject custom logic or configuration
2076// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2077//
2078//
2079//    // Example sending a request using the GetInstanceProfileRequest method.
2080//    req, resp := client.GetInstanceProfileRequest(params)
2081//
2082//    err := req.Send()
2083//    if err == nil { // resp is now filled
2084//        fmt.Println(resp)
2085//    }
2086//
2087// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetInstanceProfile
2088func (c *DeviceFarm) GetInstanceProfileRequest(input *GetInstanceProfileInput) (req *request.Request, output *GetInstanceProfileOutput) {
2089	op := &request.Operation{
2090		Name:       opGetInstanceProfile,
2091		HTTPMethod: "POST",
2092		HTTPPath:   "/",
2093	}
2094
2095	if input == nil {
2096		input = &GetInstanceProfileInput{}
2097	}
2098
2099	output = &GetInstanceProfileOutput{}
2100	req = c.newRequest(op, input, output)
2101	return
2102}
2103
2104// GetInstanceProfile API operation for AWS Device Farm.
2105//
2106// Returns information about the specified instance profile.
2107//
2108// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2109// with awserr.Error's Code and Message methods to get detailed information about
2110// the error.
2111//
2112// See the AWS API reference guide for AWS Device Farm's
2113// API operation GetInstanceProfile for usage and error information.
2114//
2115// Returned Error Types:
2116//   * ArgumentException
2117//   An invalid argument was specified.
2118//
2119//   * NotFoundException
2120//   The specified entity was not found.
2121//
2122//   * LimitExceededException
2123//   A limit was exceeded.
2124//
2125//   * ServiceAccountException
2126//   There was a problem with the service account.
2127//
2128// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetInstanceProfile
2129func (c *DeviceFarm) GetInstanceProfile(input *GetInstanceProfileInput) (*GetInstanceProfileOutput, error) {
2130	req, out := c.GetInstanceProfileRequest(input)
2131	return out, req.Send()
2132}
2133
2134// GetInstanceProfileWithContext is the same as GetInstanceProfile with the addition of
2135// the ability to pass a context and additional request options.
2136//
2137// See GetInstanceProfile for details on how to use this API operation.
2138//
2139// The context must be non-nil and will be used for request cancellation. If
2140// the context is nil a panic will occur. In the future the SDK may create
2141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2142// for more information on using Contexts.
2143func (c *DeviceFarm) GetInstanceProfileWithContext(ctx aws.Context, input *GetInstanceProfileInput, opts ...request.Option) (*GetInstanceProfileOutput, error) {
2144	req, out := c.GetInstanceProfileRequest(input)
2145	req.SetContext(ctx)
2146	req.ApplyOptions(opts...)
2147	return out, req.Send()
2148}
2149
2150const opGetJob = "GetJob"
2151
2152// GetJobRequest generates a "aws/request.Request" representing the
2153// client's request for the GetJob operation. The "output" return
2154// value will be populated with the request's response once the request completes
2155// successfully.
2156//
2157// Use "Send" method on the returned Request to send the API call to the service.
2158// the "output" return value is not valid until after Send returns without error.
2159//
2160// See GetJob for more information on using the GetJob
2161// API call, and error handling.
2162//
2163// This method is useful when you want to inject custom logic or configuration
2164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2165//
2166//
2167//    // Example sending a request using the GetJobRequest method.
2168//    req, resp := client.GetJobRequest(params)
2169//
2170//    err := req.Send()
2171//    if err == nil { // resp is now filled
2172//        fmt.Println(resp)
2173//    }
2174//
2175// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetJob
2176func (c *DeviceFarm) GetJobRequest(input *GetJobInput) (req *request.Request, output *GetJobOutput) {
2177	op := &request.Operation{
2178		Name:       opGetJob,
2179		HTTPMethod: "POST",
2180		HTTPPath:   "/",
2181	}
2182
2183	if input == nil {
2184		input = &GetJobInput{}
2185	}
2186
2187	output = &GetJobOutput{}
2188	req = c.newRequest(op, input, output)
2189	return
2190}
2191
2192// GetJob API operation for AWS Device Farm.
2193//
2194// Gets information about a job.
2195//
2196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2197// with awserr.Error's Code and Message methods to get detailed information about
2198// the error.
2199//
2200// See the AWS API reference guide for AWS Device Farm's
2201// API operation GetJob for usage and error information.
2202//
2203// Returned Error Types:
2204//   * ArgumentException
2205//   An invalid argument was specified.
2206//
2207//   * NotFoundException
2208//   The specified entity was not found.
2209//
2210//   * LimitExceededException
2211//   A limit was exceeded.
2212//
2213//   * ServiceAccountException
2214//   There was a problem with the service account.
2215//
2216// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetJob
2217func (c *DeviceFarm) GetJob(input *GetJobInput) (*GetJobOutput, error) {
2218	req, out := c.GetJobRequest(input)
2219	return out, req.Send()
2220}
2221
2222// GetJobWithContext is the same as GetJob with the addition of
2223// the ability to pass a context and additional request options.
2224//
2225// See GetJob for details on how to use this API operation.
2226//
2227// The context must be non-nil and will be used for request cancellation. If
2228// the context is nil a panic will occur. In the future the SDK may create
2229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2230// for more information on using Contexts.
2231func (c *DeviceFarm) GetJobWithContext(ctx aws.Context, input *GetJobInput, opts ...request.Option) (*GetJobOutput, error) {
2232	req, out := c.GetJobRequest(input)
2233	req.SetContext(ctx)
2234	req.ApplyOptions(opts...)
2235	return out, req.Send()
2236}
2237
2238const opGetNetworkProfile = "GetNetworkProfile"
2239
2240// GetNetworkProfileRequest generates a "aws/request.Request" representing the
2241// client's request for the GetNetworkProfile operation. The "output" return
2242// value will be populated with the request's response once the request completes
2243// successfully.
2244//
2245// Use "Send" method on the returned Request to send the API call to the service.
2246// the "output" return value is not valid until after Send returns without error.
2247//
2248// See GetNetworkProfile for more information on using the GetNetworkProfile
2249// API call, and error handling.
2250//
2251// This method is useful when you want to inject custom logic or configuration
2252// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2253//
2254//
2255//    // Example sending a request using the GetNetworkProfileRequest method.
2256//    req, resp := client.GetNetworkProfileRequest(params)
2257//
2258//    err := req.Send()
2259//    if err == nil { // resp is now filled
2260//        fmt.Println(resp)
2261//    }
2262//
2263// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetNetworkProfile
2264func (c *DeviceFarm) GetNetworkProfileRequest(input *GetNetworkProfileInput) (req *request.Request, output *GetNetworkProfileOutput) {
2265	op := &request.Operation{
2266		Name:       opGetNetworkProfile,
2267		HTTPMethod: "POST",
2268		HTTPPath:   "/",
2269	}
2270
2271	if input == nil {
2272		input = &GetNetworkProfileInput{}
2273	}
2274
2275	output = &GetNetworkProfileOutput{}
2276	req = c.newRequest(op, input, output)
2277	return
2278}
2279
2280// GetNetworkProfile API operation for AWS Device Farm.
2281//
2282// Returns information about a network profile.
2283//
2284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2285// with awserr.Error's Code and Message methods to get detailed information about
2286// the error.
2287//
2288// See the AWS API reference guide for AWS Device Farm's
2289// API operation GetNetworkProfile for usage and error information.
2290//
2291// Returned Error Types:
2292//   * ArgumentException
2293//   An invalid argument was specified.
2294//
2295//   * NotFoundException
2296//   The specified entity was not found.
2297//
2298//   * LimitExceededException
2299//   A limit was exceeded.
2300//
2301//   * ServiceAccountException
2302//   There was a problem with the service account.
2303//
2304// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetNetworkProfile
2305func (c *DeviceFarm) GetNetworkProfile(input *GetNetworkProfileInput) (*GetNetworkProfileOutput, error) {
2306	req, out := c.GetNetworkProfileRequest(input)
2307	return out, req.Send()
2308}
2309
2310// GetNetworkProfileWithContext is the same as GetNetworkProfile with the addition of
2311// the ability to pass a context and additional request options.
2312//
2313// See GetNetworkProfile for details on how to use this API operation.
2314//
2315// The context must be non-nil and will be used for request cancellation. If
2316// the context is nil a panic will occur. In the future the SDK may create
2317// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2318// for more information on using Contexts.
2319func (c *DeviceFarm) GetNetworkProfileWithContext(ctx aws.Context, input *GetNetworkProfileInput, opts ...request.Option) (*GetNetworkProfileOutput, error) {
2320	req, out := c.GetNetworkProfileRequest(input)
2321	req.SetContext(ctx)
2322	req.ApplyOptions(opts...)
2323	return out, req.Send()
2324}
2325
2326const opGetOfferingStatus = "GetOfferingStatus"
2327
2328// GetOfferingStatusRequest generates a "aws/request.Request" representing the
2329// client's request for the GetOfferingStatus operation. The "output" return
2330// value will be populated with the request's response once the request completes
2331// successfully.
2332//
2333// Use "Send" method on the returned Request to send the API call to the service.
2334// the "output" return value is not valid until after Send returns without error.
2335//
2336// See GetOfferingStatus for more information on using the GetOfferingStatus
2337// API call, and error handling.
2338//
2339// This method is useful when you want to inject custom logic or configuration
2340// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2341//
2342//
2343//    // Example sending a request using the GetOfferingStatusRequest method.
2344//    req, resp := client.GetOfferingStatusRequest(params)
2345//
2346//    err := req.Send()
2347//    if err == nil { // resp is now filled
2348//        fmt.Println(resp)
2349//    }
2350//
2351// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetOfferingStatus
2352func (c *DeviceFarm) GetOfferingStatusRequest(input *GetOfferingStatusInput) (req *request.Request, output *GetOfferingStatusOutput) {
2353	op := &request.Operation{
2354		Name:       opGetOfferingStatus,
2355		HTTPMethod: "POST",
2356		HTTPPath:   "/",
2357		Paginator: &request.Paginator{
2358			InputTokens:     []string{"nextToken"},
2359			OutputTokens:    []string{"nextToken"},
2360			LimitToken:      "",
2361			TruncationToken: "",
2362		},
2363	}
2364
2365	if input == nil {
2366		input = &GetOfferingStatusInput{}
2367	}
2368
2369	output = &GetOfferingStatusOutput{}
2370	req = c.newRequest(op, input, output)
2371	return
2372}
2373
2374// GetOfferingStatus API operation for AWS Device Farm.
2375//
2376// Gets the current status and future status of all offerings purchased by an
2377// AWS account. The response indicates how many offerings are currently available
2378// and the offerings that will be available in the next period. The API returns
2379// a NotEligible error if the user is not permitted to invoke the operation.
2380// If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com
2381// (mailto:aws-devicefarm-support@amazon.com).
2382//
2383// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2384// with awserr.Error's Code and Message methods to get detailed information about
2385// the error.
2386//
2387// See the AWS API reference guide for AWS Device Farm's
2388// API operation GetOfferingStatus for usage and error information.
2389//
2390// Returned Error Types:
2391//   * ArgumentException
2392//   An invalid argument was specified.
2393//
2394//   * NotFoundException
2395//   The specified entity was not found.
2396//
2397//   * NotEligibleException
2398//   Exception gets thrown when a user is not eligible to perform the specified
2399//   transaction.
2400//
2401//   * LimitExceededException
2402//   A limit was exceeded.
2403//
2404//   * ServiceAccountException
2405//   There was a problem with the service account.
2406//
2407// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetOfferingStatus
2408func (c *DeviceFarm) GetOfferingStatus(input *GetOfferingStatusInput) (*GetOfferingStatusOutput, error) {
2409	req, out := c.GetOfferingStatusRequest(input)
2410	return out, req.Send()
2411}
2412
2413// GetOfferingStatusWithContext is the same as GetOfferingStatus with the addition of
2414// the ability to pass a context and additional request options.
2415//
2416// See GetOfferingStatus for details on how to use this API operation.
2417//
2418// The context must be non-nil and will be used for request cancellation. If
2419// the context is nil a panic will occur. In the future the SDK may create
2420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2421// for more information on using Contexts.
2422func (c *DeviceFarm) GetOfferingStatusWithContext(ctx aws.Context, input *GetOfferingStatusInput, opts ...request.Option) (*GetOfferingStatusOutput, error) {
2423	req, out := c.GetOfferingStatusRequest(input)
2424	req.SetContext(ctx)
2425	req.ApplyOptions(opts...)
2426	return out, req.Send()
2427}
2428
2429// GetOfferingStatusPages iterates over the pages of a GetOfferingStatus operation,
2430// calling the "fn" function with the response data for each page. To stop
2431// iterating, return false from the fn function.
2432//
2433// See GetOfferingStatus method for more information on how to use this operation.
2434//
2435// Note: This operation can generate multiple requests to a service.
2436//
2437//    // Example iterating over at most 3 pages of a GetOfferingStatus operation.
2438//    pageNum := 0
2439//    err := client.GetOfferingStatusPages(params,
2440//        func(page *devicefarm.GetOfferingStatusOutput, lastPage bool) bool {
2441//            pageNum++
2442//            fmt.Println(page)
2443//            return pageNum <= 3
2444//        })
2445//
2446func (c *DeviceFarm) GetOfferingStatusPages(input *GetOfferingStatusInput, fn func(*GetOfferingStatusOutput, bool) bool) error {
2447	return c.GetOfferingStatusPagesWithContext(aws.BackgroundContext(), input, fn)
2448}
2449
2450// GetOfferingStatusPagesWithContext same as GetOfferingStatusPages except
2451// it takes a Context and allows setting request options on the pages.
2452//
2453// The context must be non-nil and will be used for request cancellation. If
2454// the context is nil a panic will occur. In the future the SDK may create
2455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2456// for more information on using Contexts.
2457func (c *DeviceFarm) GetOfferingStatusPagesWithContext(ctx aws.Context, input *GetOfferingStatusInput, fn func(*GetOfferingStatusOutput, bool) bool, opts ...request.Option) error {
2458	p := request.Pagination{
2459		NewRequest: func() (*request.Request, error) {
2460			var inCpy *GetOfferingStatusInput
2461			if input != nil {
2462				tmp := *input
2463				inCpy = &tmp
2464			}
2465			req, _ := c.GetOfferingStatusRequest(inCpy)
2466			req.SetContext(ctx)
2467			req.ApplyOptions(opts...)
2468			return req, nil
2469		},
2470	}
2471
2472	for p.Next() {
2473		if !fn(p.Page().(*GetOfferingStatusOutput), !p.HasNextPage()) {
2474			break
2475		}
2476	}
2477
2478	return p.Err()
2479}
2480
2481const opGetProject = "GetProject"
2482
2483// GetProjectRequest generates a "aws/request.Request" representing the
2484// client's request for the GetProject operation. The "output" return
2485// value will be populated with the request's response once the request completes
2486// successfully.
2487//
2488// Use "Send" method on the returned Request to send the API call to the service.
2489// the "output" return value is not valid until after Send returns without error.
2490//
2491// See GetProject for more information on using the GetProject
2492// API call, and error handling.
2493//
2494// This method is useful when you want to inject custom logic or configuration
2495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2496//
2497//
2498//    // Example sending a request using the GetProjectRequest method.
2499//    req, resp := client.GetProjectRequest(params)
2500//
2501//    err := req.Send()
2502//    if err == nil { // resp is now filled
2503//        fmt.Println(resp)
2504//    }
2505//
2506// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetProject
2507func (c *DeviceFarm) GetProjectRequest(input *GetProjectInput) (req *request.Request, output *GetProjectOutput) {
2508	op := &request.Operation{
2509		Name:       opGetProject,
2510		HTTPMethod: "POST",
2511		HTTPPath:   "/",
2512	}
2513
2514	if input == nil {
2515		input = &GetProjectInput{}
2516	}
2517
2518	output = &GetProjectOutput{}
2519	req = c.newRequest(op, input, output)
2520	return
2521}
2522
2523// GetProject API operation for AWS Device Farm.
2524//
2525// Gets information about a project.
2526//
2527// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2528// with awserr.Error's Code and Message methods to get detailed information about
2529// the error.
2530//
2531// See the AWS API reference guide for AWS Device Farm's
2532// API operation GetProject for usage and error information.
2533//
2534// Returned Error Types:
2535//   * ArgumentException
2536//   An invalid argument was specified.
2537//
2538//   * NotFoundException
2539//   The specified entity was not found.
2540//
2541//   * LimitExceededException
2542//   A limit was exceeded.
2543//
2544//   * ServiceAccountException
2545//   There was a problem with the service account.
2546//
2547// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetProject
2548func (c *DeviceFarm) GetProject(input *GetProjectInput) (*GetProjectOutput, error) {
2549	req, out := c.GetProjectRequest(input)
2550	return out, req.Send()
2551}
2552
2553// GetProjectWithContext is the same as GetProject with the addition of
2554// the ability to pass a context and additional request options.
2555//
2556// See GetProject for details on how to use this API operation.
2557//
2558// The context must be non-nil and will be used for request cancellation. If
2559// the context is nil a panic will occur. In the future the SDK may create
2560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2561// for more information on using Contexts.
2562func (c *DeviceFarm) GetProjectWithContext(ctx aws.Context, input *GetProjectInput, opts ...request.Option) (*GetProjectOutput, error) {
2563	req, out := c.GetProjectRequest(input)
2564	req.SetContext(ctx)
2565	req.ApplyOptions(opts...)
2566	return out, req.Send()
2567}
2568
2569const opGetRemoteAccessSession = "GetRemoteAccessSession"
2570
2571// GetRemoteAccessSessionRequest generates a "aws/request.Request" representing the
2572// client's request for the GetRemoteAccessSession operation. The "output" return
2573// value will be populated with the request's response once the request completes
2574// successfully.
2575//
2576// Use "Send" method on the returned Request to send the API call to the service.
2577// the "output" return value is not valid until after Send returns without error.
2578//
2579// See GetRemoteAccessSession for more information on using the GetRemoteAccessSession
2580// API call, and error handling.
2581//
2582// This method is useful when you want to inject custom logic or configuration
2583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2584//
2585//
2586//    // Example sending a request using the GetRemoteAccessSessionRequest method.
2587//    req, resp := client.GetRemoteAccessSessionRequest(params)
2588//
2589//    err := req.Send()
2590//    if err == nil { // resp is now filled
2591//        fmt.Println(resp)
2592//    }
2593//
2594// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRemoteAccessSession
2595func (c *DeviceFarm) GetRemoteAccessSessionRequest(input *GetRemoteAccessSessionInput) (req *request.Request, output *GetRemoteAccessSessionOutput) {
2596	op := &request.Operation{
2597		Name:       opGetRemoteAccessSession,
2598		HTTPMethod: "POST",
2599		HTTPPath:   "/",
2600	}
2601
2602	if input == nil {
2603		input = &GetRemoteAccessSessionInput{}
2604	}
2605
2606	output = &GetRemoteAccessSessionOutput{}
2607	req = c.newRequest(op, input, output)
2608	return
2609}
2610
2611// GetRemoteAccessSession API operation for AWS Device Farm.
2612//
2613// Returns a link to a currently running remote access session.
2614//
2615// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2616// with awserr.Error's Code and Message methods to get detailed information about
2617// the error.
2618//
2619// See the AWS API reference guide for AWS Device Farm's
2620// API operation GetRemoteAccessSession for usage and error information.
2621//
2622// Returned Error Types:
2623//   * ArgumentException
2624//   An invalid argument was specified.
2625//
2626//   * NotFoundException
2627//   The specified entity was not found.
2628//
2629//   * LimitExceededException
2630//   A limit was exceeded.
2631//
2632//   * ServiceAccountException
2633//   There was a problem with the service account.
2634//
2635// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRemoteAccessSession
2636func (c *DeviceFarm) GetRemoteAccessSession(input *GetRemoteAccessSessionInput) (*GetRemoteAccessSessionOutput, error) {
2637	req, out := c.GetRemoteAccessSessionRequest(input)
2638	return out, req.Send()
2639}
2640
2641// GetRemoteAccessSessionWithContext is the same as GetRemoteAccessSession with the addition of
2642// the ability to pass a context and additional request options.
2643//
2644// See GetRemoteAccessSession for details on how to use this API operation.
2645//
2646// The context must be non-nil and will be used for request cancellation. If
2647// the context is nil a panic will occur. In the future the SDK may create
2648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2649// for more information on using Contexts.
2650func (c *DeviceFarm) GetRemoteAccessSessionWithContext(ctx aws.Context, input *GetRemoteAccessSessionInput, opts ...request.Option) (*GetRemoteAccessSessionOutput, error) {
2651	req, out := c.GetRemoteAccessSessionRequest(input)
2652	req.SetContext(ctx)
2653	req.ApplyOptions(opts...)
2654	return out, req.Send()
2655}
2656
2657const opGetRun = "GetRun"
2658
2659// GetRunRequest generates a "aws/request.Request" representing the
2660// client's request for the GetRun operation. The "output" return
2661// value will be populated with the request's response once the request completes
2662// successfully.
2663//
2664// Use "Send" method on the returned Request to send the API call to the service.
2665// the "output" return value is not valid until after Send returns without error.
2666//
2667// See GetRun for more information on using the GetRun
2668// API call, and error handling.
2669//
2670// This method is useful when you want to inject custom logic or configuration
2671// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2672//
2673//
2674//    // Example sending a request using the GetRunRequest method.
2675//    req, resp := client.GetRunRequest(params)
2676//
2677//    err := req.Send()
2678//    if err == nil { // resp is now filled
2679//        fmt.Println(resp)
2680//    }
2681//
2682// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRun
2683func (c *DeviceFarm) GetRunRequest(input *GetRunInput) (req *request.Request, output *GetRunOutput) {
2684	op := &request.Operation{
2685		Name:       opGetRun,
2686		HTTPMethod: "POST",
2687		HTTPPath:   "/",
2688	}
2689
2690	if input == nil {
2691		input = &GetRunInput{}
2692	}
2693
2694	output = &GetRunOutput{}
2695	req = c.newRequest(op, input, output)
2696	return
2697}
2698
2699// GetRun API operation for AWS Device Farm.
2700//
2701// Gets information about a run.
2702//
2703// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2704// with awserr.Error's Code and Message methods to get detailed information about
2705// the error.
2706//
2707// See the AWS API reference guide for AWS Device Farm's
2708// API operation GetRun for usage and error information.
2709//
2710// Returned Error Types:
2711//   * ArgumentException
2712//   An invalid argument was specified.
2713//
2714//   * NotFoundException
2715//   The specified entity was not found.
2716//
2717//   * LimitExceededException
2718//   A limit was exceeded.
2719//
2720//   * ServiceAccountException
2721//   There was a problem with the service account.
2722//
2723// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRun
2724func (c *DeviceFarm) GetRun(input *GetRunInput) (*GetRunOutput, error) {
2725	req, out := c.GetRunRequest(input)
2726	return out, req.Send()
2727}
2728
2729// GetRunWithContext is the same as GetRun with the addition of
2730// the ability to pass a context and additional request options.
2731//
2732// See GetRun for details on how to use this API operation.
2733//
2734// The context must be non-nil and will be used for request cancellation. If
2735// the context is nil a panic will occur. In the future the SDK may create
2736// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2737// for more information on using Contexts.
2738func (c *DeviceFarm) GetRunWithContext(ctx aws.Context, input *GetRunInput, opts ...request.Option) (*GetRunOutput, error) {
2739	req, out := c.GetRunRequest(input)
2740	req.SetContext(ctx)
2741	req.ApplyOptions(opts...)
2742	return out, req.Send()
2743}
2744
2745const opGetSuite = "GetSuite"
2746
2747// GetSuiteRequest generates a "aws/request.Request" representing the
2748// client's request for the GetSuite operation. The "output" return
2749// value will be populated with the request's response once the request completes
2750// successfully.
2751//
2752// Use "Send" method on the returned Request to send the API call to the service.
2753// the "output" return value is not valid until after Send returns without error.
2754//
2755// See GetSuite for more information on using the GetSuite
2756// API call, and error handling.
2757//
2758// This method is useful when you want to inject custom logic or configuration
2759// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2760//
2761//
2762//    // Example sending a request using the GetSuiteRequest method.
2763//    req, resp := client.GetSuiteRequest(params)
2764//
2765//    err := req.Send()
2766//    if err == nil { // resp is now filled
2767//        fmt.Println(resp)
2768//    }
2769//
2770// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetSuite
2771func (c *DeviceFarm) GetSuiteRequest(input *GetSuiteInput) (req *request.Request, output *GetSuiteOutput) {
2772	op := &request.Operation{
2773		Name:       opGetSuite,
2774		HTTPMethod: "POST",
2775		HTTPPath:   "/",
2776	}
2777
2778	if input == nil {
2779		input = &GetSuiteInput{}
2780	}
2781
2782	output = &GetSuiteOutput{}
2783	req = c.newRequest(op, input, output)
2784	return
2785}
2786
2787// GetSuite API operation for AWS Device Farm.
2788//
2789// Gets information about a suite.
2790//
2791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2792// with awserr.Error's Code and Message methods to get detailed information about
2793// the error.
2794//
2795// See the AWS API reference guide for AWS Device Farm's
2796// API operation GetSuite for usage and error information.
2797//
2798// Returned Error Types:
2799//   * ArgumentException
2800//   An invalid argument was specified.
2801//
2802//   * NotFoundException
2803//   The specified entity was not found.
2804//
2805//   * LimitExceededException
2806//   A limit was exceeded.
2807//
2808//   * ServiceAccountException
2809//   There was a problem with the service account.
2810//
2811// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetSuite
2812func (c *DeviceFarm) GetSuite(input *GetSuiteInput) (*GetSuiteOutput, error) {
2813	req, out := c.GetSuiteRequest(input)
2814	return out, req.Send()
2815}
2816
2817// GetSuiteWithContext is the same as GetSuite with the addition of
2818// the ability to pass a context and additional request options.
2819//
2820// See GetSuite for details on how to use this API operation.
2821//
2822// The context must be non-nil and will be used for request cancellation. If
2823// the context is nil a panic will occur. In the future the SDK may create
2824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2825// for more information on using Contexts.
2826func (c *DeviceFarm) GetSuiteWithContext(ctx aws.Context, input *GetSuiteInput, opts ...request.Option) (*GetSuiteOutput, error) {
2827	req, out := c.GetSuiteRequest(input)
2828	req.SetContext(ctx)
2829	req.ApplyOptions(opts...)
2830	return out, req.Send()
2831}
2832
2833const opGetTest = "GetTest"
2834
2835// GetTestRequest generates a "aws/request.Request" representing the
2836// client's request for the GetTest operation. The "output" return
2837// value will be populated with the request's response once the request completes
2838// successfully.
2839//
2840// Use "Send" method on the returned Request to send the API call to the service.
2841// the "output" return value is not valid until after Send returns without error.
2842//
2843// See GetTest for more information on using the GetTest
2844// API call, and error handling.
2845//
2846// This method is useful when you want to inject custom logic or configuration
2847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2848//
2849//
2850//    // Example sending a request using the GetTestRequest method.
2851//    req, resp := client.GetTestRequest(params)
2852//
2853//    err := req.Send()
2854//    if err == nil { // resp is now filled
2855//        fmt.Println(resp)
2856//    }
2857//
2858// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTest
2859func (c *DeviceFarm) GetTestRequest(input *GetTestInput) (req *request.Request, output *GetTestOutput) {
2860	op := &request.Operation{
2861		Name:       opGetTest,
2862		HTTPMethod: "POST",
2863		HTTPPath:   "/",
2864	}
2865
2866	if input == nil {
2867		input = &GetTestInput{}
2868	}
2869
2870	output = &GetTestOutput{}
2871	req = c.newRequest(op, input, output)
2872	return
2873}
2874
2875// GetTest API operation for AWS Device Farm.
2876//
2877// Gets information about a test.
2878//
2879// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2880// with awserr.Error's Code and Message methods to get detailed information about
2881// the error.
2882//
2883// See the AWS API reference guide for AWS Device Farm's
2884// API operation GetTest for usage and error information.
2885//
2886// Returned Error Types:
2887//   * ArgumentException
2888//   An invalid argument was specified.
2889//
2890//   * NotFoundException
2891//   The specified entity was not found.
2892//
2893//   * LimitExceededException
2894//   A limit was exceeded.
2895//
2896//   * ServiceAccountException
2897//   There was a problem with the service account.
2898//
2899// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTest
2900func (c *DeviceFarm) GetTest(input *GetTestInput) (*GetTestOutput, error) {
2901	req, out := c.GetTestRequest(input)
2902	return out, req.Send()
2903}
2904
2905// GetTestWithContext is the same as GetTest with the addition of
2906// the ability to pass a context and additional request options.
2907//
2908// See GetTest for details on how to use this API operation.
2909//
2910// The context must be non-nil and will be used for request cancellation. If
2911// the context is nil a panic will occur. In the future the SDK may create
2912// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2913// for more information on using Contexts.
2914func (c *DeviceFarm) GetTestWithContext(ctx aws.Context, input *GetTestInput, opts ...request.Option) (*GetTestOutput, error) {
2915	req, out := c.GetTestRequest(input)
2916	req.SetContext(ctx)
2917	req.ApplyOptions(opts...)
2918	return out, req.Send()
2919}
2920
2921const opGetTestGridProject = "GetTestGridProject"
2922
2923// GetTestGridProjectRequest generates a "aws/request.Request" representing the
2924// client's request for the GetTestGridProject operation. The "output" return
2925// value will be populated with the request's response once the request completes
2926// successfully.
2927//
2928// Use "Send" method on the returned Request to send the API call to the service.
2929// the "output" return value is not valid until after Send returns without error.
2930//
2931// See GetTestGridProject for more information on using the GetTestGridProject
2932// API call, and error handling.
2933//
2934// This method is useful when you want to inject custom logic or configuration
2935// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2936//
2937//
2938//    // Example sending a request using the GetTestGridProjectRequest method.
2939//    req, resp := client.GetTestGridProjectRequest(params)
2940//
2941//    err := req.Send()
2942//    if err == nil { // resp is now filled
2943//        fmt.Println(resp)
2944//    }
2945//
2946// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridProject
2947func (c *DeviceFarm) GetTestGridProjectRequest(input *GetTestGridProjectInput) (req *request.Request, output *GetTestGridProjectOutput) {
2948	op := &request.Operation{
2949		Name:       opGetTestGridProject,
2950		HTTPMethod: "POST",
2951		HTTPPath:   "/",
2952	}
2953
2954	if input == nil {
2955		input = &GetTestGridProjectInput{}
2956	}
2957
2958	output = &GetTestGridProjectOutput{}
2959	req = c.newRequest(op, input, output)
2960	return
2961}
2962
2963// GetTestGridProject API operation for AWS Device Farm.
2964//
2965// Retrieves information about a Selenium testing project.
2966//
2967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2968// with awserr.Error's Code and Message methods to get detailed information about
2969// the error.
2970//
2971// See the AWS API reference guide for AWS Device Farm's
2972// API operation GetTestGridProject for usage and error information.
2973//
2974// Returned Error Types:
2975//   * NotFoundException
2976//   The specified entity was not found.
2977//
2978//   * ArgumentException
2979//   An invalid argument was specified.
2980//
2981//   * InternalServiceException
2982//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
2983//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
2984//
2985// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridProject
2986func (c *DeviceFarm) GetTestGridProject(input *GetTestGridProjectInput) (*GetTestGridProjectOutput, error) {
2987	req, out := c.GetTestGridProjectRequest(input)
2988	return out, req.Send()
2989}
2990
2991// GetTestGridProjectWithContext is the same as GetTestGridProject with the addition of
2992// the ability to pass a context and additional request options.
2993//
2994// See GetTestGridProject for details on how to use this API operation.
2995//
2996// The context must be non-nil and will be used for request cancellation. If
2997// the context is nil a panic will occur. In the future the SDK may create
2998// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2999// for more information on using Contexts.
3000func (c *DeviceFarm) GetTestGridProjectWithContext(ctx aws.Context, input *GetTestGridProjectInput, opts ...request.Option) (*GetTestGridProjectOutput, error) {
3001	req, out := c.GetTestGridProjectRequest(input)
3002	req.SetContext(ctx)
3003	req.ApplyOptions(opts...)
3004	return out, req.Send()
3005}
3006
3007const opGetTestGridSession = "GetTestGridSession"
3008
3009// GetTestGridSessionRequest generates a "aws/request.Request" representing the
3010// client's request for the GetTestGridSession operation. The "output" return
3011// value will be populated with the request's response once the request completes
3012// successfully.
3013//
3014// Use "Send" method on the returned Request to send the API call to the service.
3015// the "output" return value is not valid until after Send returns without error.
3016//
3017// See GetTestGridSession for more information on using the GetTestGridSession
3018// API call, and error handling.
3019//
3020// This method is useful when you want to inject custom logic or configuration
3021// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3022//
3023//
3024//    // Example sending a request using the GetTestGridSessionRequest method.
3025//    req, resp := client.GetTestGridSessionRequest(params)
3026//
3027//    err := req.Send()
3028//    if err == nil { // resp is now filled
3029//        fmt.Println(resp)
3030//    }
3031//
3032// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridSession
3033func (c *DeviceFarm) GetTestGridSessionRequest(input *GetTestGridSessionInput) (req *request.Request, output *GetTestGridSessionOutput) {
3034	op := &request.Operation{
3035		Name:       opGetTestGridSession,
3036		HTTPMethod: "POST",
3037		HTTPPath:   "/",
3038	}
3039
3040	if input == nil {
3041		input = &GetTestGridSessionInput{}
3042	}
3043
3044	output = &GetTestGridSessionOutput{}
3045	req = c.newRequest(op, input, output)
3046	return
3047}
3048
3049// GetTestGridSession API operation for AWS Device Farm.
3050//
3051// A session is an instance of a browser created through a RemoteWebDriver with
3052// the URL from CreateTestGridUrlResult$url. You can use the following to look
3053// up sessions:
3054//
3055//    * The session ARN (GetTestGridSessionRequest$sessionArn).
3056//
3057//    * The project ARN and a session ID (GetTestGridSessionRequest$projectArn
3058//    and GetTestGridSessionRequest$sessionId).
3059//
3060// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3061// with awserr.Error's Code and Message methods to get detailed information about
3062// the error.
3063//
3064// See the AWS API reference guide for AWS Device Farm's
3065// API operation GetTestGridSession for usage and error information.
3066//
3067// Returned Error Types:
3068//   * NotFoundException
3069//   The specified entity was not found.
3070//
3071//   * ArgumentException
3072//   An invalid argument was specified.
3073//
3074//   * InternalServiceException
3075//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
3076//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
3077//
3078// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridSession
3079func (c *DeviceFarm) GetTestGridSession(input *GetTestGridSessionInput) (*GetTestGridSessionOutput, error) {
3080	req, out := c.GetTestGridSessionRequest(input)
3081	return out, req.Send()
3082}
3083
3084// GetTestGridSessionWithContext is the same as GetTestGridSession with the addition of
3085// the ability to pass a context and additional request options.
3086//
3087// See GetTestGridSession for details on how to use this API operation.
3088//
3089// The context must be non-nil and will be used for request cancellation. If
3090// the context is nil a panic will occur. In the future the SDK may create
3091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3092// for more information on using Contexts.
3093func (c *DeviceFarm) GetTestGridSessionWithContext(ctx aws.Context, input *GetTestGridSessionInput, opts ...request.Option) (*GetTestGridSessionOutput, error) {
3094	req, out := c.GetTestGridSessionRequest(input)
3095	req.SetContext(ctx)
3096	req.ApplyOptions(opts...)
3097	return out, req.Send()
3098}
3099
3100const opGetUpload = "GetUpload"
3101
3102// GetUploadRequest generates a "aws/request.Request" representing the
3103// client's request for the GetUpload operation. The "output" return
3104// value will be populated with the request's response once the request completes
3105// successfully.
3106//
3107// Use "Send" method on the returned Request to send the API call to the service.
3108// the "output" return value is not valid until after Send returns without error.
3109//
3110// See GetUpload for more information on using the GetUpload
3111// API call, and error handling.
3112//
3113// This method is useful when you want to inject custom logic or configuration
3114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3115//
3116//
3117//    // Example sending a request using the GetUploadRequest method.
3118//    req, resp := client.GetUploadRequest(params)
3119//
3120//    err := req.Send()
3121//    if err == nil { // resp is now filled
3122//        fmt.Println(resp)
3123//    }
3124//
3125// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetUpload
3126func (c *DeviceFarm) GetUploadRequest(input *GetUploadInput) (req *request.Request, output *GetUploadOutput) {
3127	op := &request.Operation{
3128		Name:       opGetUpload,
3129		HTTPMethod: "POST",
3130		HTTPPath:   "/",
3131	}
3132
3133	if input == nil {
3134		input = &GetUploadInput{}
3135	}
3136
3137	output = &GetUploadOutput{}
3138	req = c.newRequest(op, input, output)
3139	return
3140}
3141
3142// GetUpload API operation for AWS Device Farm.
3143//
3144// Gets information about an upload.
3145//
3146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3147// with awserr.Error's Code and Message methods to get detailed information about
3148// the error.
3149//
3150// See the AWS API reference guide for AWS Device Farm's
3151// API operation GetUpload for usage and error information.
3152//
3153// Returned Error Types:
3154//   * ArgumentException
3155//   An invalid argument was specified.
3156//
3157//   * NotFoundException
3158//   The specified entity was not found.
3159//
3160//   * LimitExceededException
3161//   A limit was exceeded.
3162//
3163//   * ServiceAccountException
3164//   There was a problem with the service account.
3165//
3166// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetUpload
3167func (c *DeviceFarm) GetUpload(input *GetUploadInput) (*GetUploadOutput, error) {
3168	req, out := c.GetUploadRequest(input)
3169	return out, req.Send()
3170}
3171
3172// GetUploadWithContext is the same as GetUpload with the addition of
3173// the ability to pass a context and additional request options.
3174//
3175// See GetUpload for details on how to use this API operation.
3176//
3177// The context must be non-nil and will be used for request cancellation. If
3178// the context is nil a panic will occur. In the future the SDK may create
3179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3180// for more information on using Contexts.
3181func (c *DeviceFarm) GetUploadWithContext(ctx aws.Context, input *GetUploadInput, opts ...request.Option) (*GetUploadOutput, error) {
3182	req, out := c.GetUploadRequest(input)
3183	req.SetContext(ctx)
3184	req.ApplyOptions(opts...)
3185	return out, req.Send()
3186}
3187
3188const opGetVPCEConfiguration = "GetVPCEConfiguration"
3189
3190// GetVPCEConfigurationRequest generates a "aws/request.Request" representing the
3191// client's request for the GetVPCEConfiguration operation. The "output" return
3192// value will be populated with the request's response once the request completes
3193// successfully.
3194//
3195// Use "Send" method on the returned Request to send the API call to the service.
3196// the "output" return value is not valid until after Send returns without error.
3197//
3198// See GetVPCEConfiguration for more information on using the GetVPCEConfiguration
3199// API call, and error handling.
3200//
3201// This method is useful when you want to inject custom logic or configuration
3202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3203//
3204//
3205//    // Example sending a request using the GetVPCEConfigurationRequest method.
3206//    req, resp := client.GetVPCEConfigurationRequest(params)
3207//
3208//    err := req.Send()
3209//    if err == nil { // resp is now filled
3210//        fmt.Println(resp)
3211//    }
3212//
3213// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetVPCEConfiguration
3214func (c *DeviceFarm) GetVPCEConfigurationRequest(input *GetVPCEConfigurationInput) (req *request.Request, output *GetVPCEConfigurationOutput) {
3215	op := &request.Operation{
3216		Name:       opGetVPCEConfiguration,
3217		HTTPMethod: "POST",
3218		HTTPPath:   "/",
3219	}
3220
3221	if input == nil {
3222		input = &GetVPCEConfigurationInput{}
3223	}
3224
3225	output = &GetVPCEConfigurationOutput{}
3226	req = c.newRequest(op, input, output)
3227	return
3228}
3229
3230// GetVPCEConfiguration API operation for AWS Device Farm.
3231//
3232// Returns information about the configuration settings for your Amazon Virtual
3233// Private Cloud (VPC) endpoint.
3234//
3235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3236// with awserr.Error's Code and Message methods to get detailed information about
3237// the error.
3238//
3239// See the AWS API reference guide for AWS Device Farm's
3240// API operation GetVPCEConfiguration for usage and error information.
3241//
3242// Returned Error Types:
3243//   * ArgumentException
3244//   An invalid argument was specified.
3245//
3246//   * NotFoundException
3247//   The specified entity was not found.
3248//
3249//   * ServiceAccountException
3250//   There was a problem with the service account.
3251//
3252// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetVPCEConfiguration
3253func (c *DeviceFarm) GetVPCEConfiguration(input *GetVPCEConfigurationInput) (*GetVPCEConfigurationOutput, error) {
3254	req, out := c.GetVPCEConfigurationRequest(input)
3255	return out, req.Send()
3256}
3257
3258// GetVPCEConfigurationWithContext is the same as GetVPCEConfiguration with the addition of
3259// the ability to pass a context and additional request options.
3260//
3261// See GetVPCEConfiguration for details on how to use this API operation.
3262//
3263// The context must be non-nil and will be used for request cancellation. If
3264// the context is nil a panic will occur. In the future the SDK may create
3265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3266// for more information on using Contexts.
3267func (c *DeviceFarm) GetVPCEConfigurationWithContext(ctx aws.Context, input *GetVPCEConfigurationInput, opts ...request.Option) (*GetVPCEConfigurationOutput, error) {
3268	req, out := c.GetVPCEConfigurationRequest(input)
3269	req.SetContext(ctx)
3270	req.ApplyOptions(opts...)
3271	return out, req.Send()
3272}
3273
3274const opInstallToRemoteAccessSession = "InstallToRemoteAccessSession"
3275
3276// InstallToRemoteAccessSessionRequest generates a "aws/request.Request" representing the
3277// client's request for the InstallToRemoteAccessSession operation. The "output" return
3278// value will be populated with the request's response once the request completes
3279// successfully.
3280//
3281// Use "Send" method on the returned Request to send the API call to the service.
3282// the "output" return value is not valid until after Send returns without error.
3283//
3284// See InstallToRemoteAccessSession for more information on using the InstallToRemoteAccessSession
3285// API call, and error handling.
3286//
3287// This method is useful when you want to inject custom logic or configuration
3288// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3289//
3290//
3291//    // Example sending a request using the InstallToRemoteAccessSessionRequest method.
3292//    req, resp := client.InstallToRemoteAccessSessionRequest(params)
3293//
3294//    err := req.Send()
3295//    if err == nil { // resp is now filled
3296//        fmt.Println(resp)
3297//    }
3298//
3299// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/InstallToRemoteAccessSession
3300func (c *DeviceFarm) InstallToRemoteAccessSessionRequest(input *InstallToRemoteAccessSessionInput) (req *request.Request, output *InstallToRemoteAccessSessionOutput) {
3301	op := &request.Operation{
3302		Name:       opInstallToRemoteAccessSession,
3303		HTTPMethod: "POST",
3304		HTTPPath:   "/",
3305	}
3306
3307	if input == nil {
3308		input = &InstallToRemoteAccessSessionInput{}
3309	}
3310
3311	output = &InstallToRemoteAccessSessionOutput{}
3312	req = c.newRequest(op, input, output)
3313	return
3314}
3315
3316// InstallToRemoteAccessSession API operation for AWS Device Farm.
3317//
3318// Installs an application to the device in a remote access session. For Android
3319// applications, the file must be in .apk format. For iOS applications, the
3320// file must be in .ipa format.
3321//
3322// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3323// with awserr.Error's Code and Message methods to get detailed information about
3324// the error.
3325//
3326// See the AWS API reference guide for AWS Device Farm's
3327// API operation InstallToRemoteAccessSession for usage and error information.
3328//
3329// Returned Error Types:
3330//   * ArgumentException
3331//   An invalid argument was specified.
3332//
3333//   * NotFoundException
3334//   The specified entity was not found.
3335//
3336//   * LimitExceededException
3337//   A limit was exceeded.
3338//
3339//   * ServiceAccountException
3340//   There was a problem with the service account.
3341//
3342// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/InstallToRemoteAccessSession
3343func (c *DeviceFarm) InstallToRemoteAccessSession(input *InstallToRemoteAccessSessionInput) (*InstallToRemoteAccessSessionOutput, error) {
3344	req, out := c.InstallToRemoteAccessSessionRequest(input)
3345	return out, req.Send()
3346}
3347
3348// InstallToRemoteAccessSessionWithContext is the same as InstallToRemoteAccessSession with the addition of
3349// the ability to pass a context and additional request options.
3350//
3351// See InstallToRemoteAccessSession for details on how to use this API operation.
3352//
3353// The context must be non-nil and will be used for request cancellation. If
3354// the context is nil a panic will occur. In the future the SDK may create
3355// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3356// for more information on using Contexts.
3357func (c *DeviceFarm) InstallToRemoteAccessSessionWithContext(ctx aws.Context, input *InstallToRemoteAccessSessionInput, opts ...request.Option) (*InstallToRemoteAccessSessionOutput, error) {
3358	req, out := c.InstallToRemoteAccessSessionRequest(input)
3359	req.SetContext(ctx)
3360	req.ApplyOptions(opts...)
3361	return out, req.Send()
3362}
3363
3364const opListArtifacts = "ListArtifacts"
3365
3366// ListArtifactsRequest generates a "aws/request.Request" representing the
3367// client's request for the ListArtifacts operation. The "output" return
3368// value will be populated with the request's response once the request completes
3369// successfully.
3370//
3371// Use "Send" method on the returned Request to send the API call to the service.
3372// the "output" return value is not valid until after Send returns without error.
3373//
3374// See ListArtifacts for more information on using the ListArtifacts
3375// API call, and error handling.
3376//
3377// This method is useful when you want to inject custom logic or configuration
3378// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3379//
3380//
3381//    // Example sending a request using the ListArtifactsRequest method.
3382//    req, resp := client.ListArtifactsRequest(params)
3383//
3384//    err := req.Send()
3385//    if err == nil { // resp is now filled
3386//        fmt.Println(resp)
3387//    }
3388//
3389// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListArtifacts
3390func (c *DeviceFarm) ListArtifactsRequest(input *ListArtifactsInput) (req *request.Request, output *ListArtifactsOutput) {
3391	op := &request.Operation{
3392		Name:       opListArtifacts,
3393		HTTPMethod: "POST",
3394		HTTPPath:   "/",
3395		Paginator: &request.Paginator{
3396			InputTokens:     []string{"nextToken"},
3397			OutputTokens:    []string{"nextToken"},
3398			LimitToken:      "",
3399			TruncationToken: "",
3400		},
3401	}
3402
3403	if input == nil {
3404		input = &ListArtifactsInput{}
3405	}
3406
3407	output = &ListArtifactsOutput{}
3408	req = c.newRequest(op, input, output)
3409	return
3410}
3411
3412// ListArtifacts API operation for AWS Device Farm.
3413//
3414// Gets information about artifacts.
3415//
3416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3417// with awserr.Error's Code and Message methods to get detailed information about
3418// the error.
3419//
3420// See the AWS API reference guide for AWS Device Farm's
3421// API operation ListArtifacts for usage and error information.
3422//
3423// Returned Error Types:
3424//   * ArgumentException
3425//   An invalid argument was specified.
3426//
3427//   * NotFoundException
3428//   The specified entity was not found.
3429//
3430//   * LimitExceededException
3431//   A limit was exceeded.
3432//
3433//   * ServiceAccountException
3434//   There was a problem with the service account.
3435//
3436// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListArtifacts
3437func (c *DeviceFarm) ListArtifacts(input *ListArtifactsInput) (*ListArtifactsOutput, error) {
3438	req, out := c.ListArtifactsRequest(input)
3439	return out, req.Send()
3440}
3441
3442// ListArtifactsWithContext is the same as ListArtifacts with the addition of
3443// the ability to pass a context and additional request options.
3444//
3445// See ListArtifacts for details on how to use this API operation.
3446//
3447// The context must be non-nil and will be used for request cancellation. If
3448// the context is nil a panic will occur. In the future the SDK may create
3449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3450// for more information on using Contexts.
3451func (c *DeviceFarm) ListArtifactsWithContext(ctx aws.Context, input *ListArtifactsInput, opts ...request.Option) (*ListArtifactsOutput, error) {
3452	req, out := c.ListArtifactsRequest(input)
3453	req.SetContext(ctx)
3454	req.ApplyOptions(opts...)
3455	return out, req.Send()
3456}
3457
3458// ListArtifactsPages iterates over the pages of a ListArtifacts operation,
3459// calling the "fn" function with the response data for each page. To stop
3460// iterating, return false from the fn function.
3461//
3462// See ListArtifacts method for more information on how to use this operation.
3463//
3464// Note: This operation can generate multiple requests to a service.
3465//
3466//    // Example iterating over at most 3 pages of a ListArtifacts operation.
3467//    pageNum := 0
3468//    err := client.ListArtifactsPages(params,
3469//        func(page *devicefarm.ListArtifactsOutput, lastPage bool) bool {
3470//            pageNum++
3471//            fmt.Println(page)
3472//            return pageNum <= 3
3473//        })
3474//
3475func (c *DeviceFarm) ListArtifactsPages(input *ListArtifactsInput, fn func(*ListArtifactsOutput, bool) bool) error {
3476	return c.ListArtifactsPagesWithContext(aws.BackgroundContext(), input, fn)
3477}
3478
3479// ListArtifactsPagesWithContext same as ListArtifactsPages except
3480// it takes a Context and allows setting request options on the pages.
3481//
3482// The context must be non-nil and will be used for request cancellation. If
3483// the context is nil a panic will occur. In the future the SDK may create
3484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3485// for more information on using Contexts.
3486func (c *DeviceFarm) ListArtifactsPagesWithContext(ctx aws.Context, input *ListArtifactsInput, fn func(*ListArtifactsOutput, bool) bool, opts ...request.Option) error {
3487	p := request.Pagination{
3488		NewRequest: func() (*request.Request, error) {
3489			var inCpy *ListArtifactsInput
3490			if input != nil {
3491				tmp := *input
3492				inCpy = &tmp
3493			}
3494			req, _ := c.ListArtifactsRequest(inCpy)
3495			req.SetContext(ctx)
3496			req.ApplyOptions(opts...)
3497			return req, nil
3498		},
3499	}
3500
3501	for p.Next() {
3502		if !fn(p.Page().(*ListArtifactsOutput), !p.HasNextPage()) {
3503			break
3504		}
3505	}
3506
3507	return p.Err()
3508}
3509
3510const opListDeviceInstances = "ListDeviceInstances"
3511
3512// ListDeviceInstancesRequest generates a "aws/request.Request" representing the
3513// client's request for the ListDeviceInstances operation. The "output" return
3514// value will be populated with the request's response once the request completes
3515// successfully.
3516//
3517// Use "Send" method on the returned Request to send the API call to the service.
3518// the "output" return value is not valid until after Send returns without error.
3519//
3520// See ListDeviceInstances for more information on using the ListDeviceInstances
3521// API call, and error handling.
3522//
3523// This method is useful when you want to inject custom logic or configuration
3524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3525//
3526//
3527//    // Example sending a request using the ListDeviceInstancesRequest method.
3528//    req, resp := client.ListDeviceInstancesRequest(params)
3529//
3530//    err := req.Send()
3531//    if err == nil { // resp is now filled
3532//        fmt.Println(resp)
3533//    }
3534//
3535// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDeviceInstances
3536func (c *DeviceFarm) ListDeviceInstancesRequest(input *ListDeviceInstancesInput) (req *request.Request, output *ListDeviceInstancesOutput) {
3537	op := &request.Operation{
3538		Name:       opListDeviceInstances,
3539		HTTPMethod: "POST",
3540		HTTPPath:   "/",
3541	}
3542
3543	if input == nil {
3544		input = &ListDeviceInstancesInput{}
3545	}
3546
3547	output = &ListDeviceInstancesOutput{}
3548	req = c.newRequest(op, input, output)
3549	return
3550}
3551
3552// ListDeviceInstances API operation for AWS Device Farm.
3553//
3554// Returns information about the private device instances associated with one
3555// or more AWS accounts.
3556//
3557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3558// with awserr.Error's Code and Message methods to get detailed information about
3559// the error.
3560//
3561// See the AWS API reference guide for AWS Device Farm's
3562// API operation ListDeviceInstances for usage and error information.
3563//
3564// Returned Error Types:
3565//   * ArgumentException
3566//   An invalid argument was specified.
3567//
3568//   * NotFoundException
3569//   The specified entity was not found.
3570//
3571//   * LimitExceededException
3572//   A limit was exceeded.
3573//
3574//   * ServiceAccountException
3575//   There was a problem with the service account.
3576//
3577// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDeviceInstances
3578func (c *DeviceFarm) ListDeviceInstances(input *ListDeviceInstancesInput) (*ListDeviceInstancesOutput, error) {
3579	req, out := c.ListDeviceInstancesRequest(input)
3580	return out, req.Send()
3581}
3582
3583// ListDeviceInstancesWithContext is the same as ListDeviceInstances with the addition of
3584// the ability to pass a context and additional request options.
3585//
3586// See ListDeviceInstances for details on how to use this API operation.
3587//
3588// The context must be non-nil and will be used for request cancellation. If
3589// the context is nil a panic will occur. In the future the SDK may create
3590// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3591// for more information on using Contexts.
3592func (c *DeviceFarm) ListDeviceInstancesWithContext(ctx aws.Context, input *ListDeviceInstancesInput, opts ...request.Option) (*ListDeviceInstancesOutput, error) {
3593	req, out := c.ListDeviceInstancesRequest(input)
3594	req.SetContext(ctx)
3595	req.ApplyOptions(opts...)
3596	return out, req.Send()
3597}
3598
3599const opListDevicePools = "ListDevicePools"
3600
3601// ListDevicePoolsRequest generates a "aws/request.Request" representing the
3602// client's request for the ListDevicePools operation. The "output" return
3603// value will be populated with the request's response once the request completes
3604// successfully.
3605//
3606// Use "Send" method on the returned Request to send the API call to the service.
3607// the "output" return value is not valid until after Send returns without error.
3608//
3609// See ListDevicePools for more information on using the ListDevicePools
3610// API call, and error handling.
3611//
3612// This method is useful when you want to inject custom logic or configuration
3613// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3614//
3615//
3616//    // Example sending a request using the ListDevicePoolsRequest method.
3617//    req, resp := client.ListDevicePoolsRequest(params)
3618//
3619//    err := req.Send()
3620//    if err == nil { // resp is now filled
3621//        fmt.Println(resp)
3622//    }
3623//
3624// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicePools
3625func (c *DeviceFarm) ListDevicePoolsRequest(input *ListDevicePoolsInput) (req *request.Request, output *ListDevicePoolsOutput) {
3626	op := &request.Operation{
3627		Name:       opListDevicePools,
3628		HTTPMethod: "POST",
3629		HTTPPath:   "/",
3630		Paginator: &request.Paginator{
3631			InputTokens:     []string{"nextToken"},
3632			OutputTokens:    []string{"nextToken"},
3633			LimitToken:      "",
3634			TruncationToken: "",
3635		},
3636	}
3637
3638	if input == nil {
3639		input = &ListDevicePoolsInput{}
3640	}
3641
3642	output = &ListDevicePoolsOutput{}
3643	req = c.newRequest(op, input, output)
3644	return
3645}
3646
3647// ListDevicePools API operation for AWS Device Farm.
3648//
3649// Gets information about device pools.
3650//
3651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3652// with awserr.Error's Code and Message methods to get detailed information about
3653// the error.
3654//
3655// See the AWS API reference guide for AWS Device Farm's
3656// API operation ListDevicePools for usage and error information.
3657//
3658// Returned Error Types:
3659//   * ArgumentException
3660//   An invalid argument was specified.
3661//
3662//   * NotFoundException
3663//   The specified entity was not found.
3664//
3665//   * LimitExceededException
3666//   A limit was exceeded.
3667//
3668//   * ServiceAccountException
3669//   There was a problem with the service account.
3670//
3671// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicePools
3672func (c *DeviceFarm) ListDevicePools(input *ListDevicePoolsInput) (*ListDevicePoolsOutput, error) {
3673	req, out := c.ListDevicePoolsRequest(input)
3674	return out, req.Send()
3675}
3676
3677// ListDevicePoolsWithContext is the same as ListDevicePools with the addition of
3678// the ability to pass a context and additional request options.
3679//
3680// See ListDevicePools for details on how to use this API operation.
3681//
3682// The context must be non-nil and will be used for request cancellation. If
3683// the context is nil a panic will occur. In the future the SDK may create
3684// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3685// for more information on using Contexts.
3686func (c *DeviceFarm) ListDevicePoolsWithContext(ctx aws.Context, input *ListDevicePoolsInput, opts ...request.Option) (*ListDevicePoolsOutput, error) {
3687	req, out := c.ListDevicePoolsRequest(input)
3688	req.SetContext(ctx)
3689	req.ApplyOptions(opts...)
3690	return out, req.Send()
3691}
3692
3693// ListDevicePoolsPages iterates over the pages of a ListDevicePools operation,
3694// calling the "fn" function with the response data for each page. To stop
3695// iterating, return false from the fn function.
3696//
3697// See ListDevicePools method for more information on how to use this operation.
3698//
3699// Note: This operation can generate multiple requests to a service.
3700//
3701//    // Example iterating over at most 3 pages of a ListDevicePools operation.
3702//    pageNum := 0
3703//    err := client.ListDevicePoolsPages(params,
3704//        func(page *devicefarm.ListDevicePoolsOutput, lastPage bool) bool {
3705//            pageNum++
3706//            fmt.Println(page)
3707//            return pageNum <= 3
3708//        })
3709//
3710func (c *DeviceFarm) ListDevicePoolsPages(input *ListDevicePoolsInput, fn func(*ListDevicePoolsOutput, bool) bool) error {
3711	return c.ListDevicePoolsPagesWithContext(aws.BackgroundContext(), input, fn)
3712}
3713
3714// ListDevicePoolsPagesWithContext same as ListDevicePoolsPages except
3715// it takes a Context and allows setting request options on the pages.
3716//
3717// The context must be non-nil and will be used for request cancellation. If
3718// the context is nil a panic will occur. In the future the SDK may create
3719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3720// for more information on using Contexts.
3721func (c *DeviceFarm) ListDevicePoolsPagesWithContext(ctx aws.Context, input *ListDevicePoolsInput, fn func(*ListDevicePoolsOutput, bool) bool, opts ...request.Option) error {
3722	p := request.Pagination{
3723		NewRequest: func() (*request.Request, error) {
3724			var inCpy *ListDevicePoolsInput
3725			if input != nil {
3726				tmp := *input
3727				inCpy = &tmp
3728			}
3729			req, _ := c.ListDevicePoolsRequest(inCpy)
3730			req.SetContext(ctx)
3731			req.ApplyOptions(opts...)
3732			return req, nil
3733		},
3734	}
3735
3736	for p.Next() {
3737		if !fn(p.Page().(*ListDevicePoolsOutput), !p.HasNextPage()) {
3738			break
3739		}
3740	}
3741
3742	return p.Err()
3743}
3744
3745const opListDevices = "ListDevices"
3746
3747// ListDevicesRequest generates a "aws/request.Request" representing the
3748// client's request for the ListDevices operation. The "output" return
3749// value will be populated with the request's response once the request completes
3750// successfully.
3751//
3752// Use "Send" method on the returned Request to send the API call to the service.
3753// the "output" return value is not valid until after Send returns without error.
3754//
3755// See ListDevices for more information on using the ListDevices
3756// API call, and error handling.
3757//
3758// This method is useful when you want to inject custom logic or configuration
3759// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3760//
3761//
3762//    // Example sending a request using the ListDevicesRequest method.
3763//    req, resp := client.ListDevicesRequest(params)
3764//
3765//    err := req.Send()
3766//    if err == nil { // resp is now filled
3767//        fmt.Println(resp)
3768//    }
3769//
3770// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevices
3771func (c *DeviceFarm) ListDevicesRequest(input *ListDevicesInput) (req *request.Request, output *ListDevicesOutput) {
3772	op := &request.Operation{
3773		Name:       opListDevices,
3774		HTTPMethod: "POST",
3775		HTTPPath:   "/",
3776		Paginator: &request.Paginator{
3777			InputTokens:     []string{"nextToken"},
3778			OutputTokens:    []string{"nextToken"},
3779			LimitToken:      "",
3780			TruncationToken: "",
3781		},
3782	}
3783
3784	if input == nil {
3785		input = &ListDevicesInput{}
3786	}
3787
3788	output = &ListDevicesOutput{}
3789	req = c.newRequest(op, input, output)
3790	return
3791}
3792
3793// ListDevices API operation for AWS Device Farm.
3794//
3795// Gets information about unique device types.
3796//
3797// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3798// with awserr.Error's Code and Message methods to get detailed information about
3799// the error.
3800//
3801// See the AWS API reference guide for AWS Device Farm's
3802// API operation ListDevices for usage and error information.
3803//
3804// Returned Error Types:
3805//   * ArgumentException
3806//   An invalid argument was specified.
3807//
3808//   * NotFoundException
3809//   The specified entity was not found.
3810//
3811//   * LimitExceededException
3812//   A limit was exceeded.
3813//
3814//   * ServiceAccountException
3815//   There was a problem with the service account.
3816//
3817// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevices
3818func (c *DeviceFarm) ListDevices(input *ListDevicesInput) (*ListDevicesOutput, error) {
3819	req, out := c.ListDevicesRequest(input)
3820	return out, req.Send()
3821}
3822
3823// ListDevicesWithContext is the same as ListDevices with the addition of
3824// the ability to pass a context and additional request options.
3825//
3826// See ListDevices for details on how to use this API operation.
3827//
3828// The context must be non-nil and will be used for request cancellation. If
3829// the context is nil a panic will occur. In the future the SDK may create
3830// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3831// for more information on using Contexts.
3832func (c *DeviceFarm) ListDevicesWithContext(ctx aws.Context, input *ListDevicesInput, opts ...request.Option) (*ListDevicesOutput, error) {
3833	req, out := c.ListDevicesRequest(input)
3834	req.SetContext(ctx)
3835	req.ApplyOptions(opts...)
3836	return out, req.Send()
3837}
3838
3839// ListDevicesPages iterates over the pages of a ListDevices operation,
3840// calling the "fn" function with the response data for each page. To stop
3841// iterating, return false from the fn function.
3842//
3843// See ListDevices method for more information on how to use this operation.
3844//
3845// Note: This operation can generate multiple requests to a service.
3846//
3847//    // Example iterating over at most 3 pages of a ListDevices operation.
3848//    pageNum := 0
3849//    err := client.ListDevicesPages(params,
3850//        func(page *devicefarm.ListDevicesOutput, lastPage bool) bool {
3851//            pageNum++
3852//            fmt.Println(page)
3853//            return pageNum <= 3
3854//        })
3855//
3856func (c *DeviceFarm) ListDevicesPages(input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool) error {
3857	return c.ListDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
3858}
3859
3860// ListDevicesPagesWithContext same as ListDevicesPages except
3861// it takes a Context and allows setting request options on the pages.
3862//
3863// The context must be non-nil and will be used for request cancellation. If
3864// the context is nil a panic will occur. In the future the SDK may create
3865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3866// for more information on using Contexts.
3867func (c *DeviceFarm) ListDevicesPagesWithContext(ctx aws.Context, input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool, opts ...request.Option) error {
3868	p := request.Pagination{
3869		NewRequest: func() (*request.Request, error) {
3870			var inCpy *ListDevicesInput
3871			if input != nil {
3872				tmp := *input
3873				inCpy = &tmp
3874			}
3875			req, _ := c.ListDevicesRequest(inCpy)
3876			req.SetContext(ctx)
3877			req.ApplyOptions(opts...)
3878			return req, nil
3879		},
3880	}
3881
3882	for p.Next() {
3883		if !fn(p.Page().(*ListDevicesOutput), !p.HasNextPage()) {
3884			break
3885		}
3886	}
3887
3888	return p.Err()
3889}
3890
3891const opListInstanceProfiles = "ListInstanceProfiles"
3892
3893// ListInstanceProfilesRequest generates a "aws/request.Request" representing the
3894// client's request for the ListInstanceProfiles operation. The "output" return
3895// value will be populated with the request's response once the request completes
3896// successfully.
3897//
3898// Use "Send" method on the returned Request to send the API call to the service.
3899// the "output" return value is not valid until after Send returns without error.
3900//
3901// See ListInstanceProfiles for more information on using the ListInstanceProfiles
3902// API call, and error handling.
3903//
3904// This method is useful when you want to inject custom logic or configuration
3905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3906//
3907//
3908//    // Example sending a request using the ListInstanceProfilesRequest method.
3909//    req, resp := client.ListInstanceProfilesRequest(params)
3910//
3911//    err := req.Send()
3912//    if err == nil { // resp is now filled
3913//        fmt.Println(resp)
3914//    }
3915//
3916// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListInstanceProfiles
3917func (c *DeviceFarm) ListInstanceProfilesRequest(input *ListInstanceProfilesInput) (req *request.Request, output *ListInstanceProfilesOutput) {
3918	op := &request.Operation{
3919		Name:       opListInstanceProfiles,
3920		HTTPMethod: "POST",
3921		HTTPPath:   "/",
3922	}
3923
3924	if input == nil {
3925		input = &ListInstanceProfilesInput{}
3926	}
3927
3928	output = &ListInstanceProfilesOutput{}
3929	req = c.newRequest(op, input, output)
3930	return
3931}
3932
3933// ListInstanceProfiles API operation for AWS Device Farm.
3934//
3935// Returns information about all the instance profiles in an AWS account.
3936//
3937// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3938// with awserr.Error's Code and Message methods to get detailed information about
3939// the error.
3940//
3941// See the AWS API reference guide for AWS Device Farm's
3942// API operation ListInstanceProfiles for usage and error information.
3943//
3944// Returned Error Types:
3945//   * ArgumentException
3946//   An invalid argument was specified.
3947//
3948//   * NotFoundException
3949//   The specified entity was not found.
3950//
3951//   * LimitExceededException
3952//   A limit was exceeded.
3953//
3954//   * ServiceAccountException
3955//   There was a problem with the service account.
3956//
3957// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListInstanceProfiles
3958func (c *DeviceFarm) ListInstanceProfiles(input *ListInstanceProfilesInput) (*ListInstanceProfilesOutput, error) {
3959	req, out := c.ListInstanceProfilesRequest(input)
3960	return out, req.Send()
3961}
3962
3963// ListInstanceProfilesWithContext is the same as ListInstanceProfiles with the addition of
3964// the ability to pass a context and additional request options.
3965//
3966// See ListInstanceProfiles for details on how to use this API operation.
3967//
3968// The context must be non-nil and will be used for request cancellation. If
3969// the context is nil a panic will occur. In the future the SDK may create
3970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3971// for more information on using Contexts.
3972func (c *DeviceFarm) ListInstanceProfilesWithContext(ctx aws.Context, input *ListInstanceProfilesInput, opts ...request.Option) (*ListInstanceProfilesOutput, error) {
3973	req, out := c.ListInstanceProfilesRequest(input)
3974	req.SetContext(ctx)
3975	req.ApplyOptions(opts...)
3976	return out, req.Send()
3977}
3978
3979const opListJobs = "ListJobs"
3980
3981// ListJobsRequest generates a "aws/request.Request" representing the
3982// client's request for the ListJobs operation. The "output" return
3983// value will be populated with the request's response once the request completes
3984// successfully.
3985//
3986// Use "Send" method on the returned Request to send the API call to the service.
3987// the "output" return value is not valid until after Send returns without error.
3988//
3989// See ListJobs for more information on using the ListJobs
3990// API call, and error handling.
3991//
3992// This method is useful when you want to inject custom logic or configuration
3993// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3994//
3995//
3996//    // Example sending a request using the ListJobsRequest method.
3997//    req, resp := client.ListJobsRequest(params)
3998//
3999//    err := req.Send()
4000//    if err == nil { // resp is now filled
4001//        fmt.Println(resp)
4002//    }
4003//
4004// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListJobs
4005func (c *DeviceFarm) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
4006	op := &request.Operation{
4007		Name:       opListJobs,
4008		HTTPMethod: "POST",
4009		HTTPPath:   "/",
4010		Paginator: &request.Paginator{
4011			InputTokens:     []string{"nextToken"},
4012			OutputTokens:    []string{"nextToken"},
4013			LimitToken:      "",
4014			TruncationToken: "",
4015		},
4016	}
4017
4018	if input == nil {
4019		input = &ListJobsInput{}
4020	}
4021
4022	output = &ListJobsOutput{}
4023	req = c.newRequest(op, input, output)
4024	return
4025}
4026
4027// ListJobs API operation for AWS Device Farm.
4028//
4029// Gets information about jobs for a given test run.
4030//
4031// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4032// with awserr.Error's Code and Message methods to get detailed information about
4033// the error.
4034//
4035// See the AWS API reference guide for AWS Device Farm's
4036// API operation ListJobs for usage and error information.
4037//
4038// Returned Error Types:
4039//   * ArgumentException
4040//   An invalid argument was specified.
4041//
4042//   * NotFoundException
4043//   The specified entity was not found.
4044//
4045//   * LimitExceededException
4046//   A limit was exceeded.
4047//
4048//   * ServiceAccountException
4049//   There was a problem with the service account.
4050//
4051// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListJobs
4052func (c *DeviceFarm) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
4053	req, out := c.ListJobsRequest(input)
4054	return out, req.Send()
4055}
4056
4057// ListJobsWithContext is the same as ListJobs with the addition of
4058// the ability to pass a context and additional request options.
4059//
4060// See ListJobs for details on how to use this API operation.
4061//
4062// The context must be non-nil and will be used for request cancellation. If
4063// the context is nil a panic will occur. In the future the SDK may create
4064// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4065// for more information on using Contexts.
4066func (c *DeviceFarm) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
4067	req, out := c.ListJobsRequest(input)
4068	req.SetContext(ctx)
4069	req.ApplyOptions(opts...)
4070	return out, req.Send()
4071}
4072
4073// ListJobsPages iterates over the pages of a ListJobs operation,
4074// calling the "fn" function with the response data for each page. To stop
4075// iterating, return false from the fn function.
4076//
4077// See ListJobs method for more information on how to use this operation.
4078//
4079// Note: This operation can generate multiple requests to a service.
4080//
4081//    // Example iterating over at most 3 pages of a ListJobs operation.
4082//    pageNum := 0
4083//    err := client.ListJobsPages(params,
4084//        func(page *devicefarm.ListJobsOutput, lastPage bool) bool {
4085//            pageNum++
4086//            fmt.Println(page)
4087//            return pageNum <= 3
4088//        })
4089//
4090func (c *DeviceFarm) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
4091	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
4092}
4093
4094// ListJobsPagesWithContext same as ListJobsPages except
4095// it takes a Context and allows setting request options on the pages.
4096//
4097// The context must be non-nil and will be used for request cancellation. If
4098// the context is nil a panic will occur. In the future the SDK may create
4099// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4100// for more information on using Contexts.
4101func (c *DeviceFarm) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
4102	p := request.Pagination{
4103		NewRequest: func() (*request.Request, error) {
4104			var inCpy *ListJobsInput
4105			if input != nil {
4106				tmp := *input
4107				inCpy = &tmp
4108			}
4109			req, _ := c.ListJobsRequest(inCpy)
4110			req.SetContext(ctx)
4111			req.ApplyOptions(opts...)
4112			return req, nil
4113		},
4114	}
4115
4116	for p.Next() {
4117		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
4118			break
4119		}
4120	}
4121
4122	return p.Err()
4123}
4124
4125const opListNetworkProfiles = "ListNetworkProfiles"
4126
4127// ListNetworkProfilesRequest generates a "aws/request.Request" representing the
4128// client's request for the ListNetworkProfiles operation. The "output" return
4129// value will be populated with the request's response once the request completes
4130// successfully.
4131//
4132// Use "Send" method on the returned Request to send the API call to the service.
4133// the "output" return value is not valid until after Send returns without error.
4134//
4135// See ListNetworkProfiles for more information on using the ListNetworkProfiles
4136// API call, and error handling.
4137//
4138// This method is useful when you want to inject custom logic or configuration
4139// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4140//
4141//
4142//    // Example sending a request using the ListNetworkProfilesRequest method.
4143//    req, resp := client.ListNetworkProfilesRequest(params)
4144//
4145//    err := req.Send()
4146//    if err == nil { // resp is now filled
4147//        fmt.Println(resp)
4148//    }
4149//
4150// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListNetworkProfiles
4151func (c *DeviceFarm) ListNetworkProfilesRequest(input *ListNetworkProfilesInput) (req *request.Request, output *ListNetworkProfilesOutput) {
4152	op := &request.Operation{
4153		Name:       opListNetworkProfiles,
4154		HTTPMethod: "POST",
4155		HTTPPath:   "/",
4156	}
4157
4158	if input == nil {
4159		input = &ListNetworkProfilesInput{}
4160	}
4161
4162	output = &ListNetworkProfilesOutput{}
4163	req = c.newRequest(op, input, output)
4164	return
4165}
4166
4167// ListNetworkProfiles API operation for AWS Device Farm.
4168//
4169// Returns the list of available network profiles.
4170//
4171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4172// with awserr.Error's Code and Message methods to get detailed information about
4173// the error.
4174//
4175// See the AWS API reference guide for AWS Device Farm's
4176// API operation ListNetworkProfiles for usage and error information.
4177//
4178// Returned Error Types:
4179//   * ArgumentException
4180//   An invalid argument was specified.
4181//
4182//   * NotFoundException
4183//   The specified entity was not found.
4184//
4185//   * LimitExceededException
4186//   A limit was exceeded.
4187//
4188//   * ServiceAccountException
4189//   There was a problem with the service account.
4190//
4191// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListNetworkProfiles
4192func (c *DeviceFarm) ListNetworkProfiles(input *ListNetworkProfilesInput) (*ListNetworkProfilesOutput, error) {
4193	req, out := c.ListNetworkProfilesRequest(input)
4194	return out, req.Send()
4195}
4196
4197// ListNetworkProfilesWithContext is the same as ListNetworkProfiles with the addition of
4198// the ability to pass a context and additional request options.
4199//
4200// See ListNetworkProfiles for details on how to use this API operation.
4201//
4202// The context must be non-nil and will be used for request cancellation. If
4203// the context is nil a panic will occur. In the future the SDK may create
4204// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4205// for more information on using Contexts.
4206func (c *DeviceFarm) ListNetworkProfilesWithContext(ctx aws.Context, input *ListNetworkProfilesInput, opts ...request.Option) (*ListNetworkProfilesOutput, error) {
4207	req, out := c.ListNetworkProfilesRequest(input)
4208	req.SetContext(ctx)
4209	req.ApplyOptions(opts...)
4210	return out, req.Send()
4211}
4212
4213const opListOfferingPromotions = "ListOfferingPromotions"
4214
4215// ListOfferingPromotionsRequest generates a "aws/request.Request" representing the
4216// client's request for the ListOfferingPromotions operation. The "output" return
4217// value will be populated with the request's response once the request completes
4218// successfully.
4219//
4220// Use "Send" method on the returned Request to send the API call to the service.
4221// the "output" return value is not valid until after Send returns without error.
4222//
4223// See ListOfferingPromotions for more information on using the ListOfferingPromotions
4224// API call, and error handling.
4225//
4226// This method is useful when you want to inject custom logic or configuration
4227// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4228//
4229//
4230//    // Example sending a request using the ListOfferingPromotionsRequest method.
4231//    req, resp := client.ListOfferingPromotionsRequest(params)
4232//
4233//    err := req.Send()
4234//    if err == nil { // resp is now filled
4235//        fmt.Println(resp)
4236//    }
4237//
4238// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingPromotions
4239func (c *DeviceFarm) ListOfferingPromotionsRequest(input *ListOfferingPromotionsInput) (req *request.Request, output *ListOfferingPromotionsOutput) {
4240	op := &request.Operation{
4241		Name:       opListOfferingPromotions,
4242		HTTPMethod: "POST",
4243		HTTPPath:   "/",
4244	}
4245
4246	if input == nil {
4247		input = &ListOfferingPromotionsInput{}
4248	}
4249
4250	output = &ListOfferingPromotionsOutput{}
4251	req = c.newRequest(op, input, output)
4252	return
4253}
4254
4255// ListOfferingPromotions API operation for AWS Device Farm.
4256//
4257// Returns a list of offering promotions. Each offering promotion record contains
4258// the ID and description of the promotion. The API returns a NotEligible error
4259// if the caller is not permitted to invoke the operation. Contact aws-devicefarm-support@amazon.com
4260// (mailto:aws-devicefarm-support@amazon.com) if you must be able to invoke
4261// this operation.
4262//
4263// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4264// with awserr.Error's Code and Message methods to get detailed information about
4265// the error.
4266//
4267// See the AWS API reference guide for AWS Device Farm's
4268// API operation ListOfferingPromotions for usage and error information.
4269//
4270// Returned Error Types:
4271//   * ArgumentException
4272//   An invalid argument was specified.
4273//
4274//   * NotFoundException
4275//   The specified entity was not found.
4276//
4277//   * NotEligibleException
4278//   Exception gets thrown when a user is not eligible to perform the specified
4279//   transaction.
4280//
4281//   * LimitExceededException
4282//   A limit was exceeded.
4283//
4284//   * ServiceAccountException
4285//   There was a problem with the service account.
4286//
4287// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingPromotions
4288func (c *DeviceFarm) ListOfferingPromotions(input *ListOfferingPromotionsInput) (*ListOfferingPromotionsOutput, error) {
4289	req, out := c.ListOfferingPromotionsRequest(input)
4290	return out, req.Send()
4291}
4292
4293// ListOfferingPromotionsWithContext is the same as ListOfferingPromotions with the addition of
4294// the ability to pass a context and additional request options.
4295//
4296// See ListOfferingPromotions for details on how to use this API operation.
4297//
4298// The context must be non-nil and will be used for request cancellation. If
4299// the context is nil a panic will occur. In the future the SDK may create
4300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4301// for more information on using Contexts.
4302func (c *DeviceFarm) ListOfferingPromotionsWithContext(ctx aws.Context, input *ListOfferingPromotionsInput, opts ...request.Option) (*ListOfferingPromotionsOutput, error) {
4303	req, out := c.ListOfferingPromotionsRequest(input)
4304	req.SetContext(ctx)
4305	req.ApplyOptions(opts...)
4306	return out, req.Send()
4307}
4308
4309const opListOfferingTransactions = "ListOfferingTransactions"
4310
4311// ListOfferingTransactionsRequest generates a "aws/request.Request" representing the
4312// client's request for the ListOfferingTransactions operation. The "output" return
4313// value will be populated with the request's response once the request completes
4314// successfully.
4315//
4316// Use "Send" method on the returned Request to send the API call to the service.
4317// the "output" return value is not valid until after Send returns without error.
4318//
4319// See ListOfferingTransactions for more information on using the ListOfferingTransactions
4320// API call, and error handling.
4321//
4322// This method is useful when you want to inject custom logic or configuration
4323// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4324//
4325//
4326//    // Example sending a request using the ListOfferingTransactionsRequest method.
4327//    req, resp := client.ListOfferingTransactionsRequest(params)
4328//
4329//    err := req.Send()
4330//    if err == nil { // resp is now filled
4331//        fmt.Println(resp)
4332//    }
4333//
4334// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingTransactions
4335func (c *DeviceFarm) ListOfferingTransactionsRequest(input *ListOfferingTransactionsInput) (req *request.Request, output *ListOfferingTransactionsOutput) {
4336	op := &request.Operation{
4337		Name:       opListOfferingTransactions,
4338		HTTPMethod: "POST",
4339		HTTPPath:   "/",
4340		Paginator: &request.Paginator{
4341			InputTokens:     []string{"nextToken"},
4342			OutputTokens:    []string{"nextToken"},
4343			LimitToken:      "",
4344			TruncationToken: "",
4345		},
4346	}
4347
4348	if input == nil {
4349		input = &ListOfferingTransactionsInput{}
4350	}
4351
4352	output = &ListOfferingTransactionsOutput{}
4353	req = c.newRequest(op, input, output)
4354	return
4355}
4356
4357// ListOfferingTransactions API operation for AWS Device Farm.
4358//
4359// Returns a list of all historical purchases, renewals, and system renewal
4360// transactions for an AWS account. The list is paginated and ordered by a descending
4361// timestamp (most recent transactions are first). The API returns a NotEligible
4362// error if the user is not permitted to invoke the operation. If you must be
4363// able to invoke this operation, contact aws-devicefarm-support@amazon.com
4364// (mailto:aws-devicefarm-support@amazon.com).
4365//
4366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4367// with awserr.Error's Code and Message methods to get detailed information about
4368// the error.
4369//
4370// See the AWS API reference guide for AWS Device Farm's
4371// API operation ListOfferingTransactions for usage and error information.
4372//
4373// Returned Error Types:
4374//   * ArgumentException
4375//   An invalid argument was specified.
4376//
4377//   * NotFoundException
4378//   The specified entity was not found.
4379//
4380//   * NotEligibleException
4381//   Exception gets thrown when a user is not eligible to perform the specified
4382//   transaction.
4383//
4384//   * LimitExceededException
4385//   A limit was exceeded.
4386//
4387//   * ServiceAccountException
4388//   There was a problem with the service account.
4389//
4390// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingTransactions
4391func (c *DeviceFarm) ListOfferingTransactions(input *ListOfferingTransactionsInput) (*ListOfferingTransactionsOutput, error) {
4392	req, out := c.ListOfferingTransactionsRequest(input)
4393	return out, req.Send()
4394}
4395
4396// ListOfferingTransactionsWithContext is the same as ListOfferingTransactions with the addition of
4397// the ability to pass a context and additional request options.
4398//
4399// See ListOfferingTransactions for details on how to use this API operation.
4400//
4401// The context must be non-nil and will be used for request cancellation. If
4402// the context is nil a panic will occur. In the future the SDK may create
4403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4404// for more information on using Contexts.
4405func (c *DeviceFarm) ListOfferingTransactionsWithContext(ctx aws.Context, input *ListOfferingTransactionsInput, opts ...request.Option) (*ListOfferingTransactionsOutput, error) {
4406	req, out := c.ListOfferingTransactionsRequest(input)
4407	req.SetContext(ctx)
4408	req.ApplyOptions(opts...)
4409	return out, req.Send()
4410}
4411
4412// ListOfferingTransactionsPages iterates over the pages of a ListOfferingTransactions operation,
4413// calling the "fn" function with the response data for each page. To stop
4414// iterating, return false from the fn function.
4415//
4416// See ListOfferingTransactions method for more information on how to use this operation.
4417//
4418// Note: This operation can generate multiple requests to a service.
4419//
4420//    // Example iterating over at most 3 pages of a ListOfferingTransactions operation.
4421//    pageNum := 0
4422//    err := client.ListOfferingTransactionsPages(params,
4423//        func(page *devicefarm.ListOfferingTransactionsOutput, lastPage bool) bool {
4424//            pageNum++
4425//            fmt.Println(page)
4426//            return pageNum <= 3
4427//        })
4428//
4429func (c *DeviceFarm) ListOfferingTransactionsPages(input *ListOfferingTransactionsInput, fn func(*ListOfferingTransactionsOutput, bool) bool) error {
4430	return c.ListOfferingTransactionsPagesWithContext(aws.BackgroundContext(), input, fn)
4431}
4432
4433// ListOfferingTransactionsPagesWithContext same as ListOfferingTransactionsPages except
4434// it takes a Context and allows setting request options on the pages.
4435//
4436// The context must be non-nil and will be used for request cancellation. If
4437// the context is nil a panic will occur. In the future the SDK may create
4438// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4439// for more information on using Contexts.
4440func (c *DeviceFarm) ListOfferingTransactionsPagesWithContext(ctx aws.Context, input *ListOfferingTransactionsInput, fn func(*ListOfferingTransactionsOutput, bool) bool, opts ...request.Option) error {
4441	p := request.Pagination{
4442		NewRequest: func() (*request.Request, error) {
4443			var inCpy *ListOfferingTransactionsInput
4444			if input != nil {
4445				tmp := *input
4446				inCpy = &tmp
4447			}
4448			req, _ := c.ListOfferingTransactionsRequest(inCpy)
4449			req.SetContext(ctx)
4450			req.ApplyOptions(opts...)
4451			return req, nil
4452		},
4453	}
4454
4455	for p.Next() {
4456		if !fn(p.Page().(*ListOfferingTransactionsOutput), !p.HasNextPage()) {
4457			break
4458		}
4459	}
4460
4461	return p.Err()
4462}
4463
4464const opListOfferings = "ListOfferings"
4465
4466// ListOfferingsRequest generates a "aws/request.Request" representing the
4467// client's request for the ListOfferings operation. The "output" return
4468// value will be populated with the request's response once the request completes
4469// successfully.
4470//
4471// Use "Send" method on the returned Request to send the API call to the service.
4472// the "output" return value is not valid until after Send returns without error.
4473//
4474// See ListOfferings for more information on using the ListOfferings
4475// API call, and error handling.
4476//
4477// This method is useful when you want to inject custom logic or configuration
4478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4479//
4480//
4481//    // Example sending a request using the ListOfferingsRequest method.
4482//    req, resp := client.ListOfferingsRequest(params)
4483//
4484//    err := req.Send()
4485//    if err == nil { // resp is now filled
4486//        fmt.Println(resp)
4487//    }
4488//
4489// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferings
4490func (c *DeviceFarm) ListOfferingsRequest(input *ListOfferingsInput) (req *request.Request, output *ListOfferingsOutput) {
4491	op := &request.Operation{
4492		Name:       opListOfferings,
4493		HTTPMethod: "POST",
4494		HTTPPath:   "/",
4495		Paginator: &request.Paginator{
4496			InputTokens:     []string{"nextToken"},
4497			OutputTokens:    []string{"nextToken"},
4498			LimitToken:      "",
4499			TruncationToken: "",
4500		},
4501	}
4502
4503	if input == nil {
4504		input = &ListOfferingsInput{}
4505	}
4506
4507	output = &ListOfferingsOutput{}
4508	req = c.newRequest(op, input, output)
4509	return
4510}
4511
4512// ListOfferings API operation for AWS Device Farm.
4513//
4514// Returns a list of products or offerings that the user can manage through
4515// the API. Each offering record indicates the recurring price per unit and
4516// the frequency for that offering. The API returns a NotEligible error if the
4517// user is not permitted to invoke the operation. If you must be able to invoke
4518// this operation, contact aws-devicefarm-support@amazon.com (mailto:aws-devicefarm-support@amazon.com).
4519//
4520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4521// with awserr.Error's Code and Message methods to get detailed information about
4522// the error.
4523//
4524// See the AWS API reference guide for AWS Device Farm's
4525// API operation ListOfferings for usage and error information.
4526//
4527// Returned Error Types:
4528//   * ArgumentException
4529//   An invalid argument was specified.
4530//
4531//   * NotFoundException
4532//   The specified entity was not found.
4533//
4534//   * NotEligibleException
4535//   Exception gets thrown when a user is not eligible to perform the specified
4536//   transaction.
4537//
4538//   * LimitExceededException
4539//   A limit was exceeded.
4540//
4541//   * ServiceAccountException
4542//   There was a problem with the service account.
4543//
4544// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferings
4545func (c *DeviceFarm) ListOfferings(input *ListOfferingsInput) (*ListOfferingsOutput, error) {
4546	req, out := c.ListOfferingsRequest(input)
4547	return out, req.Send()
4548}
4549
4550// ListOfferingsWithContext is the same as ListOfferings with the addition of
4551// the ability to pass a context and additional request options.
4552//
4553// See ListOfferings for details on how to use this API operation.
4554//
4555// The context must be non-nil and will be used for request cancellation. If
4556// the context is nil a panic will occur. In the future the SDK may create
4557// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4558// for more information on using Contexts.
4559func (c *DeviceFarm) ListOfferingsWithContext(ctx aws.Context, input *ListOfferingsInput, opts ...request.Option) (*ListOfferingsOutput, error) {
4560	req, out := c.ListOfferingsRequest(input)
4561	req.SetContext(ctx)
4562	req.ApplyOptions(opts...)
4563	return out, req.Send()
4564}
4565
4566// ListOfferingsPages iterates over the pages of a ListOfferings operation,
4567// calling the "fn" function with the response data for each page. To stop
4568// iterating, return false from the fn function.
4569//
4570// See ListOfferings method for more information on how to use this operation.
4571//
4572// Note: This operation can generate multiple requests to a service.
4573//
4574//    // Example iterating over at most 3 pages of a ListOfferings operation.
4575//    pageNum := 0
4576//    err := client.ListOfferingsPages(params,
4577//        func(page *devicefarm.ListOfferingsOutput, lastPage bool) bool {
4578//            pageNum++
4579//            fmt.Println(page)
4580//            return pageNum <= 3
4581//        })
4582//
4583func (c *DeviceFarm) ListOfferingsPages(input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool) error {
4584	return c.ListOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
4585}
4586
4587// ListOfferingsPagesWithContext same as ListOfferingsPages except
4588// it takes a Context and allows setting request options on the pages.
4589//
4590// The context must be non-nil and will be used for request cancellation. If
4591// the context is nil a panic will occur. In the future the SDK may create
4592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4593// for more information on using Contexts.
4594func (c *DeviceFarm) ListOfferingsPagesWithContext(ctx aws.Context, input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool, opts ...request.Option) error {
4595	p := request.Pagination{
4596		NewRequest: func() (*request.Request, error) {
4597			var inCpy *ListOfferingsInput
4598			if input != nil {
4599				tmp := *input
4600				inCpy = &tmp
4601			}
4602			req, _ := c.ListOfferingsRequest(inCpy)
4603			req.SetContext(ctx)
4604			req.ApplyOptions(opts...)
4605			return req, nil
4606		},
4607	}
4608
4609	for p.Next() {
4610		if !fn(p.Page().(*ListOfferingsOutput), !p.HasNextPage()) {
4611			break
4612		}
4613	}
4614
4615	return p.Err()
4616}
4617
4618const opListProjects = "ListProjects"
4619
4620// ListProjectsRequest generates a "aws/request.Request" representing the
4621// client's request for the ListProjects operation. The "output" return
4622// value will be populated with the request's response once the request completes
4623// successfully.
4624//
4625// Use "Send" method on the returned Request to send the API call to the service.
4626// the "output" return value is not valid until after Send returns without error.
4627//
4628// See ListProjects for more information on using the ListProjects
4629// API call, and error handling.
4630//
4631// This method is useful when you want to inject custom logic or configuration
4632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4633//
4634//
4635//    // Example sending a request using the ListProjectsRequest method.
4636//    req, resp := client.ListProjectsRequest(params)
4637//
4638//    err := req.Send()
4639//    if err == nil { // resp is now filled
4640//        fmt.Println(resp)
4641//    }
4642//
4643// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListProjects
4644func (c *DeviceFarm) ListProjectsRequest(input *ListProjectsInput) (req *request.Request, output *ListProjectsOutput) {
4645	op := &request.Operation{
4646		Name:       opListProjects,
4647		HTTPMethod: "POST",
4648		HTTPPath:   "/",
4649		Paginator: &request.Paginator{
4650			InputTokens:     []string{"nextToken"},
4651			OutputTokens:    []string{"nextToken"},
4652			LimitToken:      "",
4653			TruncationToken: "",
4654		},
4655	}
4656
4657	if input == nil {
4658		input = &ListProjectsInput{}
4659	}
4660
4661	output = &ListProjectsOutput{}
4662	req = c.newRequest(op, input, output)
4663	return
4664}
4665
4666// ListProjects API operation for AWS Device Farm.
4667//
4668// Gets information about projects.
4669//
4670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4671// with awserr.Error's Code and Message methods to get detailed information about
4672// the error.
4673//
4674// See the AWS API reference guide for AWS Device Farm's
4675// API operation ListProjects for usage and error information.
4676//
4677// Returned Error Types:
4678//   * ArgumentException
4679//   An invalid argument was specified.
4680//
4681//   * NotFoundException
4682//   The specified entity was not found.
4683//
4684//   * LimitExceededException
4685//   A limit was exceeded.
4686//
4687//   * ServiceAccountException
4688//   There was a problem with the service account.
4689//
4690// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListProjects
4691func (c *DeviceFarm) ListProjects(input *ListProjectsInput) (*ListProjectsOutput, error) {
4692	req, out := c.ListProjectsRequest(input)
4693	return out, req.Send()
4694}
4695
4696// ListProjectsWithContext is the same as ListProjects with the addition of
4697// the ability to pass a context and additional request options.
4698//
4699// See ListProjects for details on how to use this API operation.
4700//
4701// The context must be non-nil and will be used for request cancellation. If
4702// the context is nil a panic will occur. In the future the SDK may create
4703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4704// for more information on using Contexts.
4705func (c *DeviceFarm) ListProjectsWithContext(ctx aws.Context, input *ListProjectsInput, opts ...request.Option) (*ListProjectsOutput, error) {
4706	req, out := c.ListProjectsRequest(input)
4707	req.SetContext(ctx)
4708	req.ApplyOptions(opts...)
4709	return out, req.Send()
4710}
4711
4712// ListProjectsPages iterates over the pages of a ListProjects operation,
4713// calling the "fn" function with the response data for each page. To stop
4714// iterating, return false from the fn function.
4715//
4716// See ListProjects method for more information on how to use this operation.
4717//
4718// Note: This operation can generate multiple requests to a service.
4719//
4720//    // Example iterating over at most 3 pages of a ListProjects operation.
4721//    pageNum := 0
4722//    err := client.ListProjectsPages(params,
4723//        func(page *devicefarm.ListProjectsOutput, lastPage bool) bool {
4724//            pageNum++
4725//            fmt.Println(page)
4726//            return pageNum <= 3
4727//        })
4728//
4729func (c *DeviceFarm) ListProjectsPages(input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool) error {
4730	return c.ListProjectsPagesWithContext(aws.BackgroundContext(), input, fn)
4731}
4732
4733// ListProjectsPagesWithContext same as ListProjectsPages except
4734// it takes a Context and allows setting request options on the pages.
4735//
4736// The context must be non-nil and will be used for request cancellation. If
4737// the context is nil a panic will occur. In the future the SDK may create
4738// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4739// for more information on using Contexts.
4740func (c *DeviceFarm) ListProjectsPagesWithContext(ctx aws.Context, input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool, opts ...request.Option) error {
4741	p := request.Pagination{
4742		NewRequest: func() (*request.Request, error) {
4743			var inCpy *ListProjectsInput
4744			if input != nil {
4745				tmp := *input
4746				inCpy = &tmp
4747			}
4748			req, _ := c.ListProjectsRequest(inCpy)
4749			req.SetContext(ctx)
4750			req.ApplyOptions(opts...)
4751			return req, nil
4752		},
4753	}
4754
4755	for p.Next() {
4756		if !fn(p.Page().(*ListProjectsOutput), !p.HasNextPage()) {
4757			break
4758		}
4759	}
4760
4761	return p.Err()
4762}
4763
4764const opListRemoteAccessSessions = "ListRemoteAccessSessions"
4765
4766// ListRemoteAccessSessionsRequest generates a "aws/request.Request" representing the
4767// client's request for the ListRemoteAccessSessions operation. The "output" return
4768// value will be populated with the request's response once the request completes
4769// successfully.
4770//
4771// Use "Send" method on the returned Request to send the API call to the service.
4772// the "output" return value is not valid until after Send returns without error.
4773//
4774// See ListRemoteAccessSessions for more information on using the ListRemoteAccessSessions
4775// API call, and error handling.
4776//
4777// This method is useful when you want to inject custom logic or configuration
4778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4779//
4780//
4781//    // Example sending a request using the ListRemoteAccessSessionsRequest method.
4782//    req, resp := client.ListRemoteAccessSessionsRequest(params)
4783//
4784//    err := req.Send()
4785//    if err == nil { // resp is now filled
4786//        fmt.Println(resp)
4787//    }
4788//
4789// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRemoteAccessSessions
4790func (c *DeviceFarm) ListRemoteAccessSessionsRequest(input *ListRemoteAccessSessionsInput) (req *request.Request, output *ListRemoteAccessSessionsOutput) {
4791	op := &request.Operation{
4792		Name:       opListRemoteAccessSessions,
4793		HTTPMethod: "POST",
4794		HTTPPath:   "/",
4795	}
4796
4797	if input == nil {
4798		input = &ListRemoteAccessSessionsInput{}
4799	}
4800
4801	output = &ListRemoteAccessSessionsOutput{}
4802	req = c.newRequest(op, input, output)
4803	return
4804}
4805
4806// ListRemoteAccessSessions API operation for AWS Device Farm.
4807//
4808// Returns a list of all currently running remote access sessions.
4809//
4810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4811// with awserr.Error's Code and Message methods to get detailed information about
4812// the error.
4813//
4814// See the AWS API reference guide for AWS Device Farm's
4815// API operation ListRemoteAccessSessions for usage and error information.
4816//
4817// Returned Error Types:
4818//   * ArgumentException
4819//   An invalid argument was specified.
4820//
4821//   * NotFoundException
4822//   The specified entity was not found.
4823//
4824//   * LimitExceededException
4825//   A limit was exceeded.
4826//
4827//   * ServiceAccountException
4828//   There was a problem with the service account.
4829//
4830// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRemoteAccessSessions
4831func (c *DeviceFarm) ListRemoteAccessSessions(input *ListRemoteAccessSessionsInput) (*ListRemoteAccessSessionsOutput, error) {
4832	req, out := c.ListRemoteAccessSessionsRequest(input)
4833	return out, req.Send()
4834}
4835
4836// ListRemoteAccessSessionsWithContext is the same as ListRemoteAccessSessions with the addition of
4837// the ability to pass a context and additional request options.
4838//
4839// See ListRemoteAccessSessions for details on how to use this API operation.
4840//
4841// The context must be non-nil and will be used for request cancellation. If
4842// the context is nil a panic will occur. In the future the SDK may create
4843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4844// for more information on using Contexts.
4845func (c *DeviceFarm) ListRemoteAccessSessionsWithContext(ctx aws.Context, input *ListRemoteAccessSessionsInput, opts ...request.Option) (*ListRemoteAccessSessionsOutput, error) {
4846	req, out := c.ListRemoteAccessSessionsRequest(input)
4847	req.SetContext(ctx)
4848	req.ApplyOptions(opts...)
4849	return out, req.Send()
4850}
4851
4852const opListRuns = "ListRuns"
4853
4854// ListRunsRequest generates a "aws/request.Request" representing the
4855// client's request for the ListRuns operation. The "output" return
4856// value will be populated with the request's response once the request completes
4857// successfully.
4858//
4859// Use "Send" method on the returned Request to send the API call to the service.
4860// the "output" return value is not valid until after Send returns without error.
4861//
4862// See ListRuns for more information on using the ListRuns
4863// API call, and error handling.
4864//
4865// This method is useful when you want to inject custom logic or configuration
4866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4867//
4868//
4869//    // Example sending a request using the ListRunsRequest method.
4870//    req, resp := client.ListRunsRequest(params)
4871//
4872//    err := req.Send()
4873//    if err == nil { // resp is now filled
4874//        fmt.Println(resp)
4875//    }
4876//
4877// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRuns
4878func (c *DeviceFarm) ListRunsRequest(input *ListRunsInput) (req *request.Request, output *ListRunsOutput) {
4879	op := &request.Operation{
4880		Name:       opListRuns,
4881		HTTPMethod: "POST",
4882		HTTPPath:   "/",
4883		Paginator: &request.Paginator{
4884			InputTokens:     []string{"nextToken"},
4885			OutputTokens:    []string{"nextToken"},
4886			LimitToken:      "",
4887			TruncationToken: "",
4888		},
4889	}
4890
4891	if input == nil {
4892		input = &ListRunsInput{}
4893	}
4894
4895	output = &ListRunsOutput{}
4896	req = c.newRequest(op, input, output)
4897	return
4898}
4899
4900// ListRuns API operation for AWS Device Farm.
4901//
4902// Gets information about runs, given an AWS Device Farm project ARN.
4903//
4904// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4905// with awserr.Error's Code and Message methods to get detailed information about
4906// the error.
4907//
4908// See the AWS API reference guide for AWS Device Farm's
4909// API operation ListRuns for usage and error information.
4910//
4911// Returned Error Types:
4912//   * ArgumentException
4913//   An invalid argument was specified.
4914//
4915//   * NotFoundException
4916//   The specified entity was not found.
4917//
4918//   * LimitExceededException
4919//   A limit was exceeded.
4920//
4921//   * ServiceAccountException
4922//   There was a problem with the service account.
4923//
4924// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRuns
4925func (c *DeviceFarm) ListRuns(input *ListRunsInput) (*ListRunsOutput, error) {
4926	req, out := c.ListRunsRequest(input)
4927	return out, req.Send()
4928}
4929
4930// ListRunsWithContext is the same as ListRuns with the addition of
4931// the ability to pass a context and additional request options.
4932//
4933// See ListRuns for details on how to use this API operation.
4934//
4935// The context must be non-nil and will be used for request cancellation. If
4936// the context is nil a panic will occur. In the future the SDK may create
4937// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4938// for more information on using Contexts.
4939func (c *DeviceFarm) ListRunsWithContext(ctx aws.Context, input *ListRunsInput, opts ...request.Option) (*ListRunsOutput, error) {
4940	req, out := c.ListRunsRequest(input)
4941	req.SetContext(ctx)
4942	req.ApplyOptions(opts...)
4943	return out, req.Send()
4944}
4945
4946// ListRunsPages iterates over the pages of a ListRuns operation,
4947// calling the "fn" function with the response data for each page. To stop
4948// iterating, return false from the fn function.
4949//
4950// See ListRuns method for more information on how to use this operation.
4951//
4952// Note: This operation can generate multiple requests to a service.
4953//
4954//    // Example iterating over at most 3 pages of a ListRuns operation.
4955//    pageNum := 0
4956//    err := client.ListRunsPages(params,
4957//        func(page *devicefarm.ListRunsOutput, lastPage bool) bool {
4958//            pageNum++
4959//            fmt.Println(page)
4960//            return pageNum <= 3
4961//        })
4962//
4963func (c *DeviceFarm) ListRunsPages(input *ListRunsInput, fn func(*ListRunsOutput, bool) bool) error {
4964	return c.ListRunsPagesWithContext(aws.BackgroundContext(), input, fn)
4965}
4966
4967// ListRunsPagesWithContext same as ListRunsPages except
4968// it takes a Context and allows setting request options on the pages.
4969//
4970// The context must be non-nil and will be used for request cancellation. If
4971// the context is nil a panic will occur. In the future the SDK may create
4972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4973// for more information on using Contexts.
4974func (c *DeviceFarm) ListRunsPagesWithContext(ctx aws.Context, input *ListRunsInput, fn func(*ListRunsOutput, bool) bool, opts ...request.Option) error {
4975	p := request.Pagination{
4976		NewRequest: func() (*request.Request, error) {
4977			var inCpy *ListRunsInput
4978			if input != nil {
4979				tmp := *input
4980				inCpy = &tmp
4981			}
4982			req, _ := c.ListRunsRequest(inCpy)
4983			req.SetContext(ctx)
4984			req.ApplyOptions(opts...)
4985			return req, nil
4986		},
4987	}
4988
4989	for p.Next() {
4990		if !fn(p.Page().(*ListRunsOutput), !p.HasNextPage()) {
4991			break
4992		}
4993	}
4994
4995	return p.Err()
4996}
4997
4998const opListSamples = "ListSamples"
4999
5000// ListSamplesRequest generates a "aws/request.Request" representing the
5001// client's request for the ListSamples operation. The "output" return
5002// value will be populated with the request's response once the request completes
5003// successfully.
5004//
5005// Use "Send" method on the returned Request to send the API call to the service.
5006// the "output" return value is not valid until after Send returns without error.
5007//
5008// See ListSamples for more information on using the ListSamples
5009// API call, and error handling.
5010//
5011// This method is useful when you want to inject custom logic or configuration
5012// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5013//
5014//
5015//    // Example sending a request using the ListSamplesRequest method.
5016//    req, resp := client.ListSamplesRequest(params)
5017//
5018//    err := req.Send()
5019//    if err == nil { // resp is now filled
5020//        fmt.Println(resp)
5021//    }
5022//
5023// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSamples
5024func (c *DeviceFarm) ListSamplesRequest(input *ListSamplesInput) (req *request.Request, output *ListSamplesOutput) {
5025	op := &request.Operation{
5026		Name:       opListSamples,
5027		HTTPMethod: "POST",
5028		HTTPPath:   "/",
5029		Paginator: &request.Paginator{
5030			InputTokens:     []string{"nextToken"},
5031			OutputTokens:    []string{"nextToken"},
5032			LimitToken:      "",
5033			TruncationToken: "",
5034		},
5035	}
5036
5037	if input == nil {
5038		input = &ListSamplesInput{}
5039	}
5040
5041	output = &ListSamplesOutput{}
5042	req = c.newRequest(op, input, output)
5043	return
5044}
5045
5046// ListSamples API operation for AWS Device Farm.
5047//
5048// Gets information about samples, given an AWS Device Farm job ARN.
5049//
5050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5051// with awserr.Error's Code and Message methods to get detailed information about
5052// the error.
5053//
5054// See the AWS API reference guide for AWS Device Farm's
5055// API operation ListSamples for usage and error information.
5056//
5057// Returned Error Types:
5058//   * ArgumentException
5059//   An invalid argument was specified.
5060//
5061//   * NotFoundException
5062//   The specified entity was not found.
5063//
5064//   * LimitExceededException
5065//   A limit was exceeded.
5066//
5067//   * ServiceAccountException
5068//   There was a problem with the service account.
5069//
5070// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSamples
5071func (c *DeviceFarm) ListSamples(input *ListSamplesInput) (*ListSamplesOutput, error) {
5072	req, out := c.ListSamplesRequest(input)
5073	return out, req.Send()
5074}
5075
5076// ListSamplesWithContext is the same as ListSamples with the addition of
5077// the ability to pass a context and additional request options.
5078//
5079// See ListSamples for details on how to use this API operation.
5080//
5081// The context must be non-nil and will be used for request cancellation. If
5082// the context is nil a panic will occur. In the future the SDK may create
5083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5084// for more information on using Contexts.
5085func (c *DeviceFarm) ListSamplesWithContext(ctx aws.Context, input *ListSamplesInput, opts ...request.Option) (*ListSamplesOutput, error) {
5086	req, out := c.ListSamplesRequest(input)
5087	req.SetContext(ctx)
5088	req.ApplyOptions(opts...)
5089	return out, req.Send()
5090}
5091
5092// ListSamplesPages iterates over the pages of a ListSamples operation,
5093// calling the "fn" function with the response data for each page. To stop
5094// iterating, return false from the fn function.
5095//
5096// See ListSamples method for more information on how to use this operation.
5097//
5098// Note: This operation can generate multiple requests to a service.
5099//
5100//    // Example iterating over at most 3 pages of a ListSamples operation.
5101//    pageNum := 0
5102//    err := client.ListSamplesPages(params,
5103//        func(page *devicefarm.ListSamplesOutput, lastPage bool) bool {
5104//            pageNum++
5105//            fmt.Println(page)
5106//            return pageNum <= 3
5107//        })
5108//
5109func (c *DeviceFarm) ListSamplesPages(input *ListSamplesInput, fn func(*ListSamplesOutput, bool) bool) error {
5110	return c.ListSamplesPagesWithContext(aws.BackgroundContext(), input, fn)
5111}
5112
5113// ListSamplesPagesWithContext same as ListSamplesPages except
5114// it takes a Context and allows setting request options on the pages.
5115//
5116// The context must be non-nil and will be used for request cancellation. If
5117// the context is nil a panic will occur. In the future the SDK may create
5118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5119// for more information on using Contexts.
5120func (c *DeviceFarm) ListSamplesPagesWithContext(ctx aws.Context, input *ListSamplesInput, fn func(*ListSamplesOutput, bool) bool, opts ...request.Option) error {
5121	p := request.Pagination{
5122		NewRequest: func() (*request.Request, error) {
5123			var inCpy *ListSamplesInput
5124			if input != nil {
5125				tmp := *input
5126				inCpy = &tmp
5127			}
5128			req, _ := c.ListSamplesRequest(inCpy)
5129			req.SetContext(ctx)
5130			req.ApplyOptions(opts...)
5131			return req, nil
5132		},
5133	}
5134
5135	for p.Next() {
5136		if !fn(p.Page().(*ListSamplesOutput), !p.HasNextPage()) {
5137			break
5138		}
5139	}
5140
5141	return p.Err()
5142}
5143
5144const opListSuites = "ListSuites"
5145
5146// ListSuitesRequest generates a "aws/request.Request" representing the
5147// client's request for the ListSuites operation. The "output" return
5148// value will be populated with the request's response once the request completes
5149// successfully.
5150//
5151// Use "Send" method on the returned Request to send the API call to the service.
5152// the "output" return value is not valid until after Send returns without error.
5153//
5154// See ListSuites for more information on using the ListSuites
5155// API call, and error handling.
5156//
5157// This method is useful when you want to inject custom logic or configuration
5158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5159//
5160//
5161//    // Example sending a request using the ListSuitesRequest method.
5162//    req, resp := client.ListSuitesRequest(params)
5163//
5164//    err := req.Send()
5165//    if err == nil { // resp is now filled
5166//        fmt.Println(resp)
5167//    }
5168//
5169// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSuites
5170func (c *DeviceFarm) ListSuitesRequest(input *ListSuitesInput) (req *request.Request, output *ListSuitesOutput) {
5171	op := &request.Operation{
5172		Name:       opListSuites,
5173		HTTPMethod: "POST",
5174		HTTPPath:   "/",
5175		Paginator: &request.Paginator{
5176			InputTokens:     []string{"nextToken"},
5177			OutputTokens:    []string{"nextToken"},
5178			LimitToken:      "",
5179			TruncationToken: "",
5180		},
5181	}
5182
5183	if input == nil {
5184		input = &ListSuitesInput{}
5185	}
5186
5187	output = &ListSuitesOutput{}
5188	req = c.newRequest(op, input, output)
5189	return
5190}
5191
5192// ListSuites API operation for AWS Device Farm.
5193//
5194// Gets information about test suites for a given job.
5195//
5196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5197// with awserr.Error's Code and Message methods to get detailed information about
5198// the error.
5199//
5200// See the AWS API reference guide for AWS Device Farm's
5201// API operation ListSuites for usage and error information.
5202//
5203// Returned Error Types:
5204//   * ArgumentException
5205//   An invalid argument was specified.
5206//
5207//   * NotFoundException
5208//   The specified entity was not found.
5209//
5210//   * LimitExceededException
5211//   A limit was exceeded.
5212//
5213//   * ServiceAccountException
5214//   There was a problem with the service account.
5215//
5216// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSuites
5217func (c *DeviceFarm) ListSuites(input *ListSuitesInput) (*ListSuitesOutput, error) {
5218	req, out := c.ListSuitesRequest(input)
5219	return out, req.Send()
5220}
5221
5222// ListSuitesWithContext is the same as ListSuites with the addition of
5223// the ability to pass a context and additional request options.
5224//
5225// See ListSuites for details on how to use this API operation.
5226//
5227// The context must be non-nil and will be used for request cancellation. If
5228// the context is nil a panic will occur. In the future the SDK may create
5229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5230// for more information on using Contexts.
5231func (c *DeviceFarm) ListSuitesWithContext(ctx aws.Context, input *ListSuitesInput, opts ...request.Option) (*ListSuitesOutput, error) {
5232	req, out := c.ListSuitesRequest(input)
5233	req.SetContext(ctx)
5234	req.ApplyOptions(opts...)
5235	return out, req.Send()
5236}
5237
5238// ListSuitesPages iterates over the pages of a ListSuites operation,
5239// calling the "fn" function with the response data for each page. To stop
5240// iterating, return false from the fn function.
5241//
5242// See ListSuites method for more information on how to use this operation.
5243//
5244// Note: This operation can generate multiple requests to a service.
5245//
5246//    // Example iterating over at most 3 pages of a ListSuites operation.
5247//    pageNum := 0
5248//    err := client.ListSuitesPages(params,
5249//        func(page *devicefarm.ListSuitesOutput, lastPage bool) bool {
5250//            pageNum++
5251//            fmt.Println(page)
5252//            return pageNum <= 3
5253//        })
5254//
5255func (c *DeviceFarm) ListSuitesPages(input *ListSuitesInput, fn func(*ListSuitesOutput, bool) bool) error {
5256	return c.ListSuitesPagesWithContext(aws.BackgroundContext(), input, fn)
5257}
5258
5259// ListSuitesPagesWithContext same as ListSuitesPages except
5260// it takes a Context and allows setting request options on the pages.
5261//
5262// The context must be non-nil and will be used for request cancellation. If
5263// the context is nil a panic will occur. In the future the SDK may create
5264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5265// for more information on using Contexts.
5266func (c *DeviceFarm) ListSuitesPagesWithContext(ctx aws.Context, input *ListSuitesInput, fn func(*ListSuitesOutput, bool) bool, opts ...request.Option) error {
5267	p := request.Pagination{
5268		NewRequest: func() (*request.Request, error) {
5269			var inCpy *ListSuitesInput
5270			if input != nil {
5271				tmp := *input
5272				inCpy = &tmp
5273			}
5274			req, _ := c.ListSuitesRequest(inCpy)
5275			req.SetContext(ctx)
5276			req.ApplyOptions(opts...)
5277			return req, nil
5278		},
5279	}
5280
5281	for p.Next() {
5282		if !fn(p.Page().(*ListSuitesOutput), !p.HasNextPage()) {
5283			break
5284		}
5285	}
5286
5287	return p.Err()
5288}
5289
5290const opListTagsForResource = "ListTagsForResource"
5291
5292// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5293// client's request for the ListTagsForResource operation. The "output" return
5294// value will be populated with the request's response once the request completes
5295// successfully.
5296//
5297// Use "Send" method on the returned Request to send the API call to the service.
5298// the "output" return value is not valid until after Send returns without error.
5299//
5300// See ListTagsForResource for more information on using the ListTagsForResource
5301// API call, and error handling.
5302//
5303// This method is useful when you want to inject custom logic or configuration
5304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5305//
5306//
5307//    // Example sending a request using the ListTagsForResourceRequest method.
5308//    req, resp := client.ListTagsForResourceRequest(params)
5309//
5310//    err := req.Send()
5311//    if err == nil { // resp is now filled
5312//        fmt.Println(resp)
5313//    }
5314//
5315// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTagsForResource
5316func (c *DeviceFarm) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5317	op := &request.Operation{
5318		Name:       opListTagsForResource,
5319		HTTPMethod: "POST",
5320		HTTPPath:   "/",
5321	}
5322
5323	if input == nil {
5324		input = &ListTagsForResourceInput{}
5325	}
5326
5327	output = &ListTagsForResourceOutput{}
5328	req = c.newRequest(op, input, output)
5329	return
5330}
5331
5332// ListTagsForResource API operation for AWS Device Farm.
5333//
5334// List the tags for an AWS Device Farm resource.
5335//
5336// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5337// with awserr.Error's Code and Message methods to get detailed information about
5338// the error.
5339//
5340// See the AWS API reference guide for AWS Device Farm's
5341// API operation ListTagsForResource for usage and error information.
5342//
5343// Returned Error Types:
5344//   * ArgumentException
5345//   An invalid argument was specified.
5346//
5347//   * NotFoundException
5348//   The specified entity was not found.
5349//
5350//   * TagOperationException
5351//   The operation was not successful. Try again.
5352//
5353// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTagsForResource
5354func (c *DeviceFarm) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5355	req, out := c.ListTagsForResourceRequest(input)
5356	return out, req.Send()
5357}
5358
5359// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5360// the ability to pass a context and additional request options.
5361//
5362// See ListTagsForResource for details on how to use this API operation.
5363//
5364// The context must be non-nil and will be used for request cancellation. If
5365// the context is nil a panic will occur. In the future the SDK may create
5366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5367// for more information on using Contexts.
5368func (c *DeviceFarm) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5369	req, out := c.ListTagsForResourceRequest(input)
5370	req.SetContext(ctx)
5371	req.ApplyOptions(opts...)
5372	return out, req.Send()
5373}
5374
5375const opListTestGridProjects = "ListTestGridProjects"
5376
5377// ListTestGridProjectsRequest generates a "aws/request.Request" representing the
5378// client's request for the ListTestGridProjects operation. The "output" return
5379// value will be populated with the request's response once the request completes
5380// successfully.
5381//
5382// Use "Send" method on the returned Request to send the API call to the service.
5383// the "output" return value is not valid until after Send returns without error.
5384//
5385// See ListTestGridProjects for more information on using the ListTestGridProjects
5386// API call, and error handling.
5387//
5388// This method is useful when you want to inject custom logic or configuration
5389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5390//
5391//
5392//    // Example sending a request using the ListTestGridProjectsRequest method.
5393//    req, resp := client.ListTestGridProjectsRequest(params)
5394//
5395//    err := req.Send()
5396//    if err == nil { // resp is now filled
5397//        fmt.Println(resp)
5398//    }
5399//
5400// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridProjects
5401func (c *DeviceFarm) ListTestGridProjectsRequest(input *ListTestGridProjectsInput) (req *request.Request, output *ListTestGridProjectsOutput) {
5402	op := &request.Operation{
5403		Name:       opListTestGridProjects,
5404		HTTPMethod: "POST",
5405		HTTPPath:   "/",
5406		Paginator: &request.Paginator{
5407			InputTokens:     []string{"nextToken"},
5408			OutputTokens:    []string{"nextToken"},
5409			LimitToken:      "maxResult",
5410			TruncationToken: "",
5411		},
5412	}
5413
5414	if input == nil {
5415		input = &ListTestGridProjectsInput{}
5416	}
5417
5418	output = &ListTestGridProjectsOutput{}
5419	req = c.newRequest(op, input, output)
5420	return
5421}
5422
5423// ListTestGridProjects API operation for AWS Device Farm.
5424//
5425// Gets a list of all Selenium testing projects in your account.
5426//
5427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5428// with awserr.Error's Code and Message methods to get detailed information about
5429// the error.
5430//
5431// See the AWS API reference guide for AWS Device Farm's
5432// API operation ListTestGridProjects for usage and error information.
5433//
5434// Returned Error Types:
5435//   * ArgumentException
5436//   An invalid argument was specified.
5437//
5438//   * InternalServiceException
5439//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5440//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5441//
5442// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridProjects
5443func (c *DeviceFarm) ListTestGridProjects(input *ListTestGridProjectsInput) (*ListTestGridProjectsOutput, error) {
5444	req, out := c.ListTestGridProjectsRequest(input)
5445	return out, req.Send()
5446}
5447
5448// ListTestGridProjectsWithContext is the same as ListTestGridProjects with the addition of
5449// the ability to pass a context and additional request options.
5450//
5451// See ListTestGridProjects for details on how to use this API operation.
5452//
5453// The context must be non-nil and will be used for request cancellation. If
5454// the context is nil a panic will occur. In the future the SDK may create
5455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5456// for more information on using Contexts.
5457func (c *DeviceFarm) ListTestGridProjectsWithContext(ctx aws.Context, input *ListTestGridProjectsInput, opts ...request.Option) (*ListTestGridProjectsOutput, error) {
5458	req, out := c.ListTestGridProjectsRequest(input)
5459	req.SetContext(ctx)
5460	req.ApplyOptions(opts...)
5461	return out, req.Send()
5462}
5463
5464// ListTestGridProjectsPages iterates over the pages of a ListTestGridProjects operation,
5465// calling the "fn" function with the response data for each page. To stop
5466// iterating, return false from the fn function.
5467//
5468// See ListTestGridProjects method for more information on how to use this operation.
5469//
5470// Note: This operation can generate multiple requests to a service.
5471//
5472//    // Example iterating over at most 3 pages of a ListTestGridProjects operation.
5473//    pageNum := 0
5474//    err := client.ListTestGridProjectsPages(params,
5475//        func(page *devicefarm.ListTestGridProjectsOutput, lastPage bool) bool {
5476//            pageNum++
5477//            fmt.Println(page)
5478//            return pageNum <= 3
5479//        })
5480//
5481func (c *DeviceFarm) ListTestGridProjectsPages(input *ListTestGridProjectsInput, fn func(*ListTestGridProjectsOutput, bool) bool) error {
5482	return c.ListTestGridProjectsPagesWithContext(aws.BackgroundContext(), input, fn)
5483}
5484
5485// ListTestGridProjectsPagesWithContext same as ListTestGridProjectsPages except
5486// it takes a Context and allows setting request options on the pages.
5487//
5488// The context must be non-nil and will be used for request cancellation. If
5489// the context is nil a panic will occur. In the future the SDK may create
5490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5491// for more information on using Contexts.
5492func (c *DeviceFarm) ListTestGridProjectsPagesWithContext(ctx aws.Context, input *ListTestGridProjectsInput, fn func(*ListTestGridProjectsOutput, bool) bool, opts ...request.Option) error {
5493	p := request.Pagination{
5494		NewRequest: func() (*request.Request, error) {
5495			var inCpy *ListTestGridProjectsInput
5496			if input != nil {
5497				tmp := *input
5498				inCpy = &tmp
5499			}
5500			req, _ := c.ListTestGridProjectsRequest(inCpy)
5501			req.SetContext(ctx)
5502			req.ApplyOptions(opts...)
5503			return req, nil
5504		},
5505	}
5506
5507	for p.Next() {
5508		if !fn(p.Page().(*ListTestGridProjectsOutput), !p.HasNextPage()) {
5509			break
5510		}
5511	}
5512
5513	return p.Err()
5514}
5515
5516const opListTestGridSessionActions = "ListTestGridSessionActions"
5517
5518// ListTestGridSessionActionsRequest generates a "aws/request.Request" representing the
5519// client's request for the ListTestGridSessionActions operation. The "output" return
5520// value will be populated with the request's response once the request completes
5521// successfully.
5522//
5523// Use "Send" method on the returned Request to send the API call to the service.
5524// the "output" return value is not valid until after Send returns without error.
5525//
5526// See ListTestGridSessionActions for more information on using the ListTestGridSessionActions
5527// API call, and error handling.
5528//
5529// This method is useful when you want to inject custom logic or configuration
5530// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5531//
5532//
5533//    // Example sending a request using the ListTestGridSessionActionsRequest method.
5534//    req, resp := client.ListTestGridSessionActionsRequest(params)
5535//
5536//    err := req.Send()
5537//    if err == nil { // resp is now filled
5538//        fmt.Println(resp)
5539//    }
5540//
5541// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionActions
5542func (c *DeviceFarm) ListTestGridSessionActionsRequest(input *ListTestGridSessionActionsInput) (req *request.Request, output *ListTestGridSessionActionsOutput) {
5543	op := &request.Operation{
5544		Name:       opListTestGridSessionActions,
5545		HTTPMethod: "POST",
5546		HTTPPath:   "/",
5547		Paginator: &request.Paginator{
5548			InputTokens:     []string{"nextToken"},
5549			OutputTokens:    []string{"nextToken"},
5550			LimitToken:      "maxResult",
5551			TruncationToken: "",
5552		},
5553	}
5554
5555	if input == nil {
5556		input = &ListTestGridSessionActionsInput{}
5557	}
5558
5559	output = &ListTestGridSessionActionsOutput{}
5560	req = c.newRequest(op, input, output)
5561	return
5562}
5563
5564// ListTestGridSessionActions API operation for AWS Device Farm.
5565//
5566// Returns a list of the actions taken in a TestGridSession.
5567//
5568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5569// with awserr.Error's Code and Message methods to get detailed information about
5570// the error.
5571//
5572// See the AWS API reference guide for AWS Device Farm's
5573// API operation ListTestGridSessionActions for usage and error information.
5574//
5575// Returned Error Types:
5576//   * NotFoundException
5577//   The specified entity was not found.
5578//
5579//   * ArgumentException
5580//   An invalid argument was specified.
5581//
5582//   * InternalServiceException
5583//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5584//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5585//
5586// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionActions
5587func (c *DeviceFarm) ListTestGridSessionActions(input *ListTestGridSessionActionsInput) (*ListTestGridSessionActionsOutput, error) {
5588	req, out := c.ListTestGridSessionActionsRequest(input)
5589	return out, req.Send()
5590}
5591
5592// ListTestGridSessionActionsWithContext is the same as ListTestGridSessionActions with the addition of
5593// the ability to pass a context and additional request options.
5594//
5595// See ListTestGridSessionActions for details on how to use this API operation.
5596//
5597// The context must be non-nil and will be used for request cancellation. If
5598// the context is nil a panic will occur. In the future the SDK may create
5599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5600// for more information on using Contexts.
5601func (c *DeviceFarm) ListTestGridSessionActionsWithContext(ctx aws.Context, input *ListTestGridSessionActionsInput, opts ...request.Option) (*ListTestGridSessionActionsOutput, error) {
5602	req, out := c.ListTestGridSessionActionsRequest(input)
5603	req.SetContext(ctx)
5604	req.ApplyOptions(opts...)
5605	return out, req.Send()
5606}
5607
5608// ListTestGridSessionActionsPages iterates over the pages of a ListTestGridSessionActions operation,
5609// calling the "fn" function with the response data for each page. To stop
5610// iterating, return false from the fn function.
5611//
5612// See ListTestGridSessionActions method for more information on how to use this operation.
5613//
5614// Note: This operation can generate multiple requests to a service.
5615//
5616//    // Example iterating over at most 3 pages of a ListTestGridSessionActions operation.
5617//    pageNum := 0
5618//    err := client.ListTestGridSessionActionsPages(params,
5619//        func(page *devicefarm.ListTestGridSessionActionsOutput, lastPage bool) bool {
5620//            pageNum++
5621//            fmt.Println(page)
5622//            return pageNum <= 3
5623//        })
5624//
5625func (c *DeviceFarm) ListTestGridSessionActionsPages(input *ListTestGridSessionActionsInput, fn func(*ListTestGridSessionActionsOutput, bool) bool) error {
5626	return c.ListTestGridSessionActionsPagesWithContext(aws.BackgroundContext(), input, fn)
5627}
5628
5629// ListTestGridSessionActionsPagesWithContext same as ListTestGridSessionActionsPages except
5630// it takes a Context and allows setting request options on the pages.
5631//
5632// The context must be non-nil and will be used for request cancellation. If
5633// the context is nil a panic will occur. In the future the SDK may create
5634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5635// for more information on using Contexts.
5636func (c *DeviceFarm) ListTestGridSessionActionsPagesWithContext(ctx aws.Context, input *ListTestGridSessionActionsInput, fn func(*ListTestGridSessionActionsOutput, bool) bool, opts ...request.Option) error {
5637	p := request.Pagination{
5638		NewRequest: func() (*request.Request, error) {
5639			var inCpy *ListTestGridSessionActionsInput
5640			if input != nil {
5641				tmp := *input
5642				inCpy = &tmp
5643			}
5644			req, _ := c.ListTestGridSessionActionsRequest(inCpy)
5645			req.SetContext(ctx)
5646			req.ApplyOptions(opts...)
5647			return req, nil
5648		},
5649	}
5650
5651	for p.Next() {
5652		if !fn(p.Page().(*ListTestGridSessionActionsOutput), !p.HasNextPage()) {
5653			break
5654		}
5655	}
5656
5657	return p.Err()
5658}
5659
5660const opListTestGridSessionArtifacts = "ListTestGridSessionArtifacts"
5661
5662// ListTestGridSessionArtifactsRequest generates a "aws/request.Request" representing the
5663// client's request for the ListTestGridSessionArtifacts operation. The "output" return
5664// value will be populated with the request's response once the request completes
5665// successfully.
5666//
5667// Use "Send" method on the returned Request to send the API call to the service.
5668// the "output" return value is not valid until after Send returns without error.
5669//
5670// See ListTestGridSessionArtifacts for more information on using the ListTestGridSessionArtifacts
5671// API call, and error handling.
5672//
5673// This method is useful when you want to inject custom logic or configuration
5674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5675//
5676//
5677//    // Example sending a request using the ListTestGridSessionArtifactsRequest method.
5678//    req, resp := client.ListTestGridSessionArtifactsRequest(params)
5679//
5680//    err := req.Send()
5681//    if err == nil { // resp is now filled
5682//        fmt.Println(resp)
5683//    }
5684//
5685// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionArtifacts
5686func (c *DeviceFarm) ListTestGridSessionArtifactsRequest(input *ListTestGridSessionArtifactsInput) (req *request.Request, output *ListTestGridSessionArtifactsOutput) {
5687	op := &request.Operation{
5688		Name:       opListTestGridSessionArtifacts,
5689		HTTPMethod: "POST",
5690		HTTPPath:   "/",
5691		Paginator: &request.Paginator{
5692			InputTokens:     []string{"nextToken"},
5693			OutputTokens:    []string{"nextToken"},
5694			LimitToken:      "maxResult",
5695			TruncationToken: "",
5696		},
5697	}
5698
5699	if input == nil {
5700		input = &ListTestGridSessionArtifactsInput{}
5701	}
5702
5703	output = &ListTestGridSessionArtifactsOutput{}
5704	req = c.newRequest(op, input, output)
5705	return
5706}
5707
5708// ListTestGridSessionArtifacts API operation for AWS Device Farm.
5709//
5710// Retrieves a list of artifacts created during the session.
5711//
5712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5713// with awserr.Error's Code and Message methods to get detailed information about
5714// the error.
5715//
5716// See the AWS API reference guide for AWS Device Farm's
5717// API operation ListTestGridSessionArtifacts for usage and error information.
5718//
5719// Returned Error Types:
5720//   * NotFoundException
5721//   The specified entity was not found.
5722//
5723//   * ArgumentException
5724//   An invalid argument was specified.
5725//
5726//   * InternalServiceException
5727//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5728//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5729//
5730// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionArtifacts
5731func (c *DeviceFarm) ListTestGridSessionArtifacts(input *ListTestGridSessionArtifactsInput) (*ListTestGridSessionArtifactsOutput, error) {
5732	req, out := c.ListTestGridSessionArtifactsRequest(input)
5733	return out, req.Send()
5734}
5735
5736// ListTestGridSessionArtifactsWithContext is the same as ListTestGridSessionArtifacts with the addition of
5737// the ability to pass a context and additional request options.
5738//
5739// See ListTestGridSessionArtifacts for details on how to use this API operation.
5740//
5741// The context must be non-nil and will be used for request cancellation. If
5742// the context is nil a panic will occur. In the future the SDK may create
5743// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5744// for more information on using Contexts.
5745func (c *DeviceFarm) ListTestGridSessionArtifactsWithContext(ctx aws.Context, input *ListTestGridSessionArtifactsInput, opts ...request.Option) (*ListTestGridSessionArtifactsOutput, error) {
5746	req, out := c.ListTestGridSessionArtifactsRequest(input)
5747	req.SetContext(ctx)
5748	req.ApplyOptions(opts...)
5749	return out, req.Send()
5750}
5751
5752// ListTestGridSessionArtifactsPages iterates over the pages of a ListTestGridSessionArtifacts operation,
5753// calling the "fn" function with the response data for each page. To stop
5754// iterating, return false from the fn function.
5755//
5756// See ListTestGridSessionArtifacts method for more information on how to use this operation.
5757//
5758// Note: This operation can generate multiple requests to a service.
5759//
5760//    // Example iterating over at most 3 pages of a ListTestGridSessionArtifacts operation.
5761//    pageNum := 0
5762//    err := client.ListTestGridSessionArtifactsPages(params,
5763//        func(page *devicefarm.ListTestGridSessionArtifactsOutput, lastPage bool) bool {
5764//            pageNum++
5765//            fmt.Println(page)
5766//            return pageNum <= 3
5767//        })
5768//
5769func (c *DeviceFarm) ListTestGridSessionArtifactsPages(input *ListTestGridSessionArtifactsInput, fn func(*ListTestGridSessionArtifactsOutput, bool) bool) error {
5770	return c.ListTestGridSessionArtifactsPagesWithContext(aws.BackgroundContext(), input, fn)
5771}
5772
5773// ListTestGridSessionArtifactsPagesWithContext same as ListTestGridSessionArtifactsPages except
5774// it takes a Context and allows setting request options on the pages.
5775//
5776// The context must be non-nil and will be used for request cancellation. If
5777// the context is nil a panic will occur. In the future the SDK may create
5778// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5779// for more information on using Contexts.
5780func (c *DeviceFarm) ListTestGridSessionArtifactsPagesWithContext(ctx aws.Context, input *ListTestGridSessionArtifactsInput, fn func(*ListTestGridSessionArtifactsOutput, bool) bool, opts ...request.Option) error {
5781	p := request.Pagination{
5782		NewRequest: func() (*request.Request, error) {
5783			var inCpy *ListTestGridSessionArtifactsInput
5784			if input != nil {
5785				tmp := *input
5786				inCpy = &tmp
5787			}
5788			req, _ := c.ListTestGridSessionArtifactsRequest(inCpy)
5789			req.SetContext(ctx)
5790			req.ApplyOptions(opts...)
5791			return req, nil
5792		},
5793	}
5794
5795	for p.Next() {
5796		if !fn(p.Page().(*ListTestGridSessionArtifactsOutput), !p.HasNextPage()) {
5797			break
5798		}
5799	}
5800
5801	return p.Err()
5802}
5803
5804const opListTestGridSessions = "ListTestGridSessions"
5805
5806// ListTestGridSessionsRequest generates a "aws/request.Request" representing the
5807// client's request for the ListTestGridSessions operation. The "output" return
5808// value will be populated with the request's response once the request completes
5809// successfully.
5810//
5811// Use "Send" method on the returned Request to send the API call to the service.
5812// the "output" return value is not valid until after Send returns without error.
5813//
5814// See ListTestGridSessions for more information on using the ListTestGridSessions
5815// API call, and error handling.
5816//
5817// This method is useful when you want to inject custom logic or configuration
5818// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5819//
5820//
5821//    // Example sending a request using the ListTestGridSessionsRequest method.
5822//    req, resp := client.ListTestGridSessionsRequest(params)
5823//
5824//    err := req.Send()
5825//    if err == nil { // resp is now filled
5826//        fmt.Println(resp)
5827//    }
5828//
5829// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessions
5830func (c *DeviceFarm) ListTestGridSessionsRequest(input *ListTestGridSessionsInput) (req *request.Request, output *ListTestGridSessionsOutput) {
5831	op := &request.Operation{
5832		Name:       opListTestGridSessions,
5833		HTTPMethod: "POST",
5834		HTTPPath:   "/",
5835		Paginator: &request.Paginator{
5836			InputTokens:     []string{"nextToken"},
5837			OutputTokens:    []string{"nextToken"},
5838			LimitToken:      "maxResult",
5839			TruncationToken: "",
5840		},
5841	}
5842
5843	if input == nil {
5844		input = &ListTestGridSessionsInput{}
5845	}
5846
5847	output = &ListTestGridSessionsOutput{}
5848	req = c.newRequest(op, input, output)
5849	return
5850}
5851
5852// ListTestGridSessions API operation for AWS Device Farm.
5853//
5854// Retrieves a list of sessions for a TestGridProject.
5855//
5856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5857// with awserr.Error's Code and Message methods to get detailed information about
5858// the error.
5859//
5860// See the AWS API reference guide for AWS Device Farm's
5861// API operation ListTestGridSessions for usage and error information.
5862//
5863// Returned Error Types:
5864//   * NotFoundException
5865//   The specified entity was not found.
5866//
5867//   * ArgumentException
5868//   An invalid argument was specified.
5869//
5870//   * InternalServiceException
5871//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5872//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5873//
5874// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessions
5875func (c *DeviceFarm) ListTestGridSessions(input *ListTestGridSessionsInput) (*ListTestGridSessionsOutput, error) {
5876	req, out := c.ListTestGridSessionsRequest(input)
5877	return out, req.Send()
5878}
5879
5880// ListTestGridSessionsWithContext is the same as ListTestGridSessions with the addition of
5881// the ability to pass a context and additional request options.
5882//
5883// See ListTestGridSessions for details on how to use this API operation.
5884//
5885// The context must be non-nil and will be used for request cancellation. If
5886// the context is nil a panic will occur. In the future the SDK may create
5887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5888// for more information on using Contexts.
5889func (c *DeviceFarm) ListTestGridSessionsWithContext(ctx aws.Context, input *ListTestGridSessionsInput, opts ...request.Option) (*ListTestGridSessionsOutput, error) {
5890	req, out := c.ListTestGridSessionsRequest(input)
5891	req.SetContext(ctx)
5892	req.ApplyOptions(opts...)
5893	return out, req.Send()
5894}
5895
5896// ListTestGridSessionsPages iterates over the pages of a ListTestGridSessions operation,
5897// calling the "fn" function with the response data for each page. To stop
5898// iterating, return false from the fn function.
5899//
5900// See ListTestGridSessions method for more information on how to use this operation.
5901//
5902// Note: This operation can generate multiple requests to a service.
5903//
5904//    // Example iterating over at most 3 pages of a ListTestGridSessions operation.
5905//    pageNum := 0
5906//    err := client.ListTestGridSessionsPages(params,
5907//        func(page *devicefarm.ListTestGridSessionsOutput, lastPage bool) bool {
5908//            pageNum++
5909//            fmt.Println(page)
5910//            return pageNum <= 3
5911//        })
5912//
5913func (c *DeviceFarm) ListTestGridSessionsPages(input *ListTestGridSessionsInput, fn func(*ListTestGridSessionsOutput, bool) bool) error {
5914	return c.ListTestGridSessionsPagesWithContext(aws.BackgroundContext(), input, fn)
5915}
5916
5917// ListTestGridSessionsPagesWithContext same as ListTestGridSessionsPages except
5918// it takes a Context and allows setting request options on the pages.
5919//
5920// The context must be non-nil and will be used for request cancellation. If
5921// the context is nil a panic will occur. In the future the SDK may create
5922// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5923// for more information on using Contexts.
5924func (c *DeviceFarm) ListTestGridSessionsPagesWithContext(ctx aws.Context, input *ListTestGridSessionsInput, fn func(*ListTestGridSessionsOutput, bool) bool, opts ...request.Option) error {
5925	p := request.Pagination{
5926		NewRequest: func() (*request.Request, error) {
5927			var inCpy *ListTestGridSessionsInput
5928			if input != nil {
5929				tmp := *input
5930				inCpy = &tmp
5931			}
5932			req, _ := c.ListTestGridSessionsRequest(inCpy)
5933			req.SetContext(ctx)
5934			req.ApplyOptions(opts...)
5935			return req, nil
5936		},
5937	}
5938
5939	for p.Next() {
5940		if !fn(p.Page().(*ListTestGridSessionsOutput), !p.HasNextPage()) {
5941			break
5942		}
5943	}
5944
5945	return p.Err()
5946}
5947
5948const opListTests = "ListTests"
5949
5950// ListTestsRequest generates a "aws/request.Request" representing the
5951// client's request for the ListTests operation. The "output" return
5952// value will be populated with the request's response once the request completes
5953// successfully.
5954//
5955// Use "Send" method on the returned Request to send the API call to the service.
5956// the "output" return value is not valid until after Send returns without error.
5957//
5958// See ListTests for more information on using the ListTests
5959// API call, and error handling.
5960//
5961// This method is useful when you want to inject custom logic or configuration
5962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5963//
5964//
5965//    // Example sending a request using the ListTestsRequest method.
5966//    req, resp := client.ListTestsRequest(params)
5967//
5968//    err := req.Send()
5969//    if err == nil { // resp is now filled
5970//        fmt.Println(resp)
5971//    }
5972//
5973// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTests
5974func (c *DeviceFarm) ListTestsRequest(input *ListTestsInput) (req *request.Request, output *ListTestsOutput) {
5975	op := &request.Operation{
5976		Name:       opListTests,
5977		HTTPMethod: "POST",
5978		HTTPPath:   "/",
5979		Paginator: &request.Paginator{
5980			InputTokens:     []string{"nextToken"},
5981			OutputTokens:    []string{"nextToken"},
5982			LimitToken:      "",
5983			TruncationToken: "",
5984		},
5985	}
5986
5987	if input == nil {
5988		input = &ListTestsInput{}
5989	}
5990
5991	output = &ListTestsOutput{}
5992	req = c.newRequest(op, input, output)
5993	return
5994}
5995
5996// ListTests API operation for AWS Device Farm.
5997//
5998// Gets information about tests in a given test suite.
5999//
6000// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6001// with awserr.Error's Code and Message methods to get detailed information about
6002// the error.
6003//
6004// See the AWS API reference guide for AWS Device Farm's
6005// API operation ListTests for usage and error information.
6006//
6007// Returned Error Types:
6008//   * ArgumentException
6009//   An invalid argument was specified.
6010//
6011//   * NotFoundException
6012//   The specified entity was not found.
6013//
6014//   * LimitExceededException
6015//   A limit was exceeded.
6016//
6017//   * ServiceAccountException
6018//   There was a problem with the service account.
6019//
6020// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTests
6021func (c *DeviceFarm) ListTests(input *ListTestsInput) (*ListTestsOutput, error) {
6022	req, out := c.ListTestsRequest(input)
6023	return out, req.Send()
6024}
6025
6026// ListTestsWithContext is the same as ListTests with the addition of
6027// the ability to pass a context and additional request options.
6028//
6029// See ListTests for details on how to use this API operation.
6030//
6031// The context must be non-nil and will be used for request cancellation. If
6032// the context is nil a panic will occur. In the future the SDK may create
6033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6034// for more information on using Contexts.
6035func (c *DeviceFarm) ListTestsWithContext(ctx aws.Context, input *ListTestsInput, opts ...request.Option) (*ListTestsOutput, error) {
6036	req, out := c.ListTestsRequest(input)
6037	req.SetContext(ctx)
6038	req.ApplyOptions(opts...)
6039	return out, req.Send()
6040}
6041
6042// ListTestsPages iterates over the pages of a ListTests operation,
6043// calling the "fn" function with the response data for each page. To stop
6044// iterating, return false from the fn function.
6045//
6046// See ListTests method for more information on how to use this operation.
6047//
6048// Note: This operation can generate multiple requests to a service.
6049//
6050//    // Example iterating over at most 3 pages of a ListTests operation.
6051//    pageNum := 0
6052//    err := client.ListTestsPages(params,
6053//        func(page *devicefarm.ListTestsOutput, lastPage bool) bool {
6054//            pageNum++
6055//            fmt.Println(page)
6056//            return pageNum <= 3
6057//        })
6058//
6059func (c *DeviceFarm) ListTestsPages(input *ListTestsInput, fn func(*ListTestsOutput, bool) bool) error {
6060	return c.ListTestsPagesWithContext(aws.BackgroundContext(), input, fn)
6061}
6062
6063// ListTestsPagesWithContext same as ListTestsPages except
6064// it takes a Context and allows setting request options on the pages.
6065//
6066// The context must be non-nil and will be used for request cancellation. If
6067// the context is nil a panic will occur. In the future the SDK may create
6068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6069// for more information on using Contexts.
6070func (c *DeviceFarm) ListTestsPagesWithContext(ctx aws.Context, input *ListTestsInput, fn func(*ListTestsOutput, bool) bool, opts ...request.Option) error {
6071	p := request.Pagination{
6072		NewRequest: func() (*request.Request, error) {
6073			var inCpy *ListTestsInput
6074			if input != nil {
6075				tmp := *input
6076				inCpy = &tmp
6077			}
6078			req, _ := c.ListTestsRequest(inCpy)
6079			req.SetContext(ctx)
6080			req.ApplyOptions(opts...)
6081			return req, nil
6082		},
6083	}
6084
6085	for p.Next() {
6086		if !fn(p.Page().(*ListTestsOutput), !p.HasNextPage()) {
6087			break
6088		}
6089	}
6090
6091	return p.Err()
6092}
6093
6094const opListUniqueProblems = "ListUniqueProblems"
6095
6096// ListUniqueProblemsRequest generates a "aws/request.Request" representing the
6097// client's request for the ListUniqueProblems operation. The "output" return
6098// value will be populated with the request's response once the request completes
6099// successfully.
6100//
6101// Use "Send" method on the returned Request to send the API call to the service.
6102// the "output" return value is not valid until after Send returns without error.
6103//
6104// See ListUniqueProblems for more information on using the ListUniqueProblems
6105// API call, and error handling.
6106//
6107// This method is useful when you want to inject custom logic or configuration
6108// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6109//
6110//
6111//    // Example sending a request using the ListUniqueProblemsRequest method.
6112//    req, resp := client.ListUniqueProblemsRequest(params)
6113//
6114//    err := req.Send()
6115//    if err == nil { // resp is now filled
6116//        fmt.Println(resp)
6117//    }
6118//
6119// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblems
6120func (c *DeviceFarm) ListUniqueProblemsRequest(input *ListUniqueProblemsInput) (req *request.Request, output *ListUniqueProblemsOutput) {
6121	op := &request.Operation{
6122		Name:       opListUniqueProblems,
6123		HTTPMethod: "POST",
6124		HTTPPath:   "/",
6125		Paginator: &request.Paginator{
6126			InputTokens:     []string{"nextToken"},
6127			OutputTokens:    []string{"nextToken"},
6128			LimitToken:      "",
6129			TruncationToken: "",
6130		},
6131	}
6132
6133	if input == nil {
6134		input = &ListUniqueProblemsInput{}
6135	}
6136
6137	output = &ListUniqueProblemsOutput{}
6138	req = c.newRequest(op, input, output)
6139	return
6140}
6141
6142// ListUniqueProblems API operation for AWS Device Farm.
6143//
6144// Gets information about unique problems, such as exceptions or crashes.
6145//
6146// Unique problems are defined as a single instance of an error across a run,
6147// job, or suite. For example, if a call in your application consistently raises
6148// an exception (OutOfBoundsException in MyActivity.java:386), ListUniqueProblems
6149// returns a single entry instead of many individual entries for that exception.
6150//
6151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6152// with awserr.Error's Code and Message methods to get detailed information about
6153// the error.
6154//
6155// See the AWS API reference guide for AWS Device Farm's
6156// API operation ListUniqueProblems for usage and error information.
6157//
6158// Returned Error Types:
6159//   * ArgumentException
6160//   An invalid argument was specified.
6161//
6162//   * NotFoundException
6163//   The specified entity was not found.
6164//
6165//   * LimitExceededException
6166//   A limit was exceeded.
6167//
6168//   * ServiceAccountException
6169//   There was a problem with the service account.
6170//
6171// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblems
6172func (c *DeviceFarm) ListUniqueProblems(input *ListUniqueProblemsInput) (*ListUniqueProblemsOutput, error) {
6173	req, out := c.ListUniqueProblemsRequest(input)
6174	return out, req.Send()
6175}
6176
6177// ListUniqueProblemsWithContext is the same as ListUniqueProblems with the addition of
6178// the ability to pass a context and additional request options.
6179//
6180// See ListUniqueProblems for details on how to use this API operation.
6181//
6182// The context must be non-nil and will be used for request cancellation. If
6183// the context is nil a panic will occur. In the future the SDK may create
6184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6185// for more information on using Contexts.
6186func (c *DeviceFarm) ListUniqueProblemsWithContext(ctx aws.Context, input *ListUniqueProblemsInput, opts ...request.Option) (*ListUniqueProblemsOutput, error) {
6187	req, out := c.ListUniqueProblemsRequest(input)
6188	req.SetContext(ctx)
6189	req.ApplyOptions(opts...)
6190	return out, req.Send()
6191}
6192
6193// ListUniqueProblemsPages iterates over the pages of a ListUniqueProblems operation,
6194// calling the "fn" function with the response data for each page. To stop
6195// iterating, return false from the fn function.
6196//
6197// See ListUniqueProblems method for more information on how to use this operation.
6198//
6199// Note: This operation can generate multiple requests to a service.
6200//
6201//    // Example iterating over at most 3 pages of a ListUniqueProblems operation.
6202//    pageNum := 0
6203//    err := client.ListUniqueProblemsPages(params,
6204//        func(page *devicefarm.ListUniqueProblemsOutput, lastPage bool) bool {
6205//            pageNum++
6206//            fmt.Println(page)
6207//            return pageNum <= 3
6208//        })
6209//
6210func (c *DeviceFarm) ListUniqueProblemsPages(input *ListUniqueProblemsInput, fn func(*ListUniqueProblemsOutput, bool) bool) error {
6211	return c.ListUniqueProblemsPagesWithContext(aws.BackgroundContext(), input, fn)
6212}
6213
6214// ListUniqueProblemsPagesWithContext same as ListUniqueProblemsPages except
6215// it takes a Context and allows setting request options on the pages.
6216//
6217// The context must be non-nil and will be used for request cancellation. If
6218// the context is nil a panic will occur. In the future the SDK may create
6219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6220// for more information on using Contexts.
6221func (c *DeviceFarm) ListUniqueProblemsPagesWithContext(ctx aws.Context, input *ListUniqueProblemsInput, fn func(*ListUniqueProblemsOutput, bool) bool, opts ...request.Option) error {
6222	p := request.Pagination{
6223		NewRequest: func() (*request.Request, error) {
6224			var inCpy *ListUniqueProblemsInput
6225			if input != nil {
6226				tmp := *input
6227				inCpy = &tmp
6228			}
6229			req, _ := c.ListUniqueProblemsRequest(inCpy)
6230			req.SetContext(ctx)
6231			req.ApplyOptions(opts...)
6232			return req, nil
6233		},
6234	}
6235
6236	for p.Next() {
6237		if !fn(p.Page().(*ListUniqueProblemsOutput), !p.HasNextPage()) {
6238			break
6239		}
6240	}
6241
6242	return p.Err()
6243}
6244
6245const opListUploads = "ListUploads"
6246
6247// ListUploadsRequest generates a "aws/request.Request" representing the
6248// client's request for the ListUploads operation. The "output" return
6249// value will be populated with the request's response once the request completes
6250// successfully.
6251//
6252// Use "Send" method on the returned Request to send the API call to the service.
6253// the "output" return value is not valid until after Send returns without error.
6254//
6255// See ListUploads for more information on using the ListUploads
6256// API call, and error handling.
6257//
6258// This method is useful when you want to inject custom logic or configuration
6259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6260//
6261//
6262//    // Example sending a request using the ListUploadsRequest method.
6263//    req, resp := client.ListUploadsRequest(params)
6264//
6265//    err := req.Send()
6266//    if err == nil { // resp is now filled
6267//        fmt.Println(resp)
6268//    }
6269//
6270// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUploads
6271func (c *DeviceFarm) ListUploadsRequest(input *ListUploadsInput) (req *request.Request, output *ListUploadsOutput) {
6272	op := &request.Operation{
6273		Name:       opListUploads,
6274		HTTPMethod: "POST",
6275		HTTPPath:   "/",
6276		Paginator: &request.Paginator{
6277			InputTokens:     []string{"nextToken"},
6278			OutputTokens:    []string{"nextToken"},
6279			LimitToken:      "",
6280			TruncationToken: "",
6281		},
6282	}
6283
6284	if input == nil {
6285		input = &ListUploadsInput{}
6286	}
6287
6288	output = &ListUploadsOutput{}
6289	req = c.newRequest(op, input, output)
6290	return
6291}
6292
6293// ListUploads API operation for AWS Device Farm.
6294//
6295// Gets information about uploads, given an AWS Device Farm project ARN.
6296//
6297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6298// with awserr.Error's Code and Message methods to get detailed information about
6299// the error.
6300//
6301// See the AWS API reference guide for AWS Device Farm's
6302// API operation ListUploads for usage and error information.
6303//
6304// Returned Error Types:
6305//   * ArgumentException
6306//   An invalid argument was specified.
6307//
6308//   * NotFoundException
6309//   The specified entity was not found.
6310//
6311//   * LimitExceededException
6312//   A limit was exceeded.
6313//
6314//   * ServiceAccountException
6315//   There was a problem with the service account.
6316//
6317// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUploads
6318func (c *DeviceFarm) ListUploads(input *ListUploadsInput) (*ListUploadsOutput, error) {
6319	req, out := c.ListUploadsRequest(input)
6320	return out, req.Send()
6321}
6322
6323// ListUploadsWithContext is the same as ListUploads with the addition of
6324// the ability to pass a context and additional request options.
6325//
6326// See ListUploads for details on how to use this API operation.
6327//
6328// The context must be non-nil and will be used for request cancellation. If
6329// the context is nil a panic will occur. In the future the SDK may create
6330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6331// for more information on using Contexts.
6332func (c *DeviceFarm) ListUploadsWithContext(ctx aws.Context, input *ListUploadsInput, opts ...request.Option) (*ListUploadsOutput, error) {
6333	req, out := c.ListUploadsRequest(input)
6334	req.SetContext(ctx)
6335	req.ApplyOptions(opts...)
6336	return out, req.Send()
6337}
6338
6339// ListUploadsPages iterates over the pages of a ListUploads operation,
6340// calling the "fn" function with the response data for each page. To stop
6341// iterating, return false from the fn function.
6342//
6343// See ListUploads method for more information on how to use this operation.
6344//
6345// Note: This operation can generate multiple requests to a service.
6346//
6347//    // Example iterating over at most 3 pages of a ListUploads operation.
6348//    pageNum := 0
6349//    err := client.ListUploadsPages(params,
6350//        func(page *devicefarm.ListUploadsOutput, lastPage bool) bool {
6351//            pageNum++
6352//            fmt.Println(page)
6353//            return pageNum <= 3
6354//        })
6355//
6356func (c *DeviceFarm) ListUploadsPages(input *ListUploadsInput, fn func(*ListUploadsOutput, bool) bool) error {
6357	return c.ListUploadsPagesWithContext(aws.BackgroundContext(), input, fn)
6358}
6359
6360// ListUploadsPagesWithContext same as ListUploadsPages except
6361// it takes a Context and allows setting request options on the pages.
6362//
6363// The context must be non-nil and will be used for request cancellation. If
6364// the context is nil a panic will occur. In the future the SDK may create
6365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6366// for more information on using Contexts.
6367func (c *DeviceFarm) ListUploadsPagesWithContext(ctx aws.Context, input *ListUploadsInput, fn func(*ListUploadsOutput, bool) bool, opts ...request.Option) error {
6368	p := request.Pagination{
6369		NewRequest: func() (*request.Request, error) {
6370			var inCpy *ListUploadsInput
6371			if input != nil {
6372				tmp := *input
6373				inCpy = &tmp
6374			}
6375			req, _ := c.ListUploadsRequest(inCpy)
6376			req.SetContext(ctx)
6377			req.ApplyOptions(opts...)
6378			return req, nil
6379		},
6380	}
6381
6382	for p.Next() {
6383		if !fn(p.Page().(*ListUploadsOutput), !p.HasNextPage()) {
6384			break
6385		}
6386	}
6387
6388	return p.Err()
6389}
6390
6391const opListVPCEConfigurations = "ListVPCEConfigurations"
6392
6393// ListVPCEConfigurationsRequest generates a "aws/request.Request" representing the
6394// client's request for the ListVPCEConfigurations operation. The "output" return
6395// value will be populated with the request's response once the request completes
6396// successfully.
6397//
6398// Use "Send" method on the returned Request to send the API call to the service.
6399// the "output" return value is not valid until after Send returns without error.
6400//
6401// See ListVPCEConfigurations for more information on using the ListVPCEConfigurations
6402// API call, and error handling.
6403//
6404// This method is useful when you want to inject custom logic or configuration
6405// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6406//
6407//
6408//    // Example sending a request using the ListVPCEConfigurationsRequest method.
6409//    req, resp := client.ListVPCEConfigurationsRequest(params)
6410//
6411//    err := req.Send()
6412//    if err == nil { // resp is now filled
6413//        fmt.Println(resp)
6414//    }
6415//
6416// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListVPCEConfigurations
6417func (c *DeviceFarm) ListVPCEConfigurationsRequest(input *ListVPCEConfigurationsInput) (req *request.Request, output *ListVPCEConfigurationsOutput) {
6418	op := &request.Operation{
6419		Name:       opListVPCEConfigurations,
6420		HTTPMethod: "POST",
6421		HTTPPath:   "/",
6422	}
6423
6424	if input == nil {
6425		input = &ListVPCEConfigurationsInput{}
6426	}
6427
6428	output = &ListVPCEConfigurationsOutput{}
6429	req = c.newRequest(op, input, output)
6430	return
6431}
6432
6433// ListVPCEConfigurations API operation for AWS Device Farm.
6434//
6435// Returns information about all Amazon Virtual Private Cloud (VPC) endpoint
6436// configurations in the AWS account.
6437//
6438// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6439// with awserr.Error's Code and Message methods to get detailed information about
6440// the error.
6441//
6442// See the AWS API reference guide for AWS Device Farm's
6443// API operation ListVPCEConfigurations for usage and error information.
6444//
6445// Returned Error Types:
6446//   * ArgumentException
6447//   An invalid argument was specified.
6448//
6449//   * ServiceAccountException
6450//   There was a problem with the service account.
6451//
6452// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListVPCEConfigurations
6453func (c *DeviceFarm) ListVPCEConfigurations(input *ListVPCEConfigurationsInput) (*ListVPCEConfigurationsOutput, error) {
6454	req, out := c.ListVPCEConfigurationsRequest(input)
6455	return out, req.Send()
6456}
6457
6458// ListVPCEConfigurationsWithContext is the same as ListVPCEConfigurations with the addition of
6459// the ability to pass a context and additional request options.
6460//
6461// See ListVPCEConfigurations for details on how to use this API operation.
6462//
6463// The context must be non-nil and will be used for request cancellation. If
6464// the context is nil a panic will occur. In the future the SDK may create
6465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6466// for more information on using Contexts.
6467func (c *DeviceFarm) ListVPCEConfigurationsWithContext(ctx aws.Context, input *ListVPCEConfigurationsInput, opts ...request.Option) (*ListVPCEConfigurationsOutput, error) {
6468	req, out := c.ListVPCEConfigurationsRequest(input)
6469	req.SetContext(ctx)
6470	req.ApplyOptions(opts...)
6471	return out, req.Send()
6472}
6473
6474const opPurchaseOffering = "PurchaseOffering"
6475
6476// PurchaseOfferingRequest generates a "aws/request.Request" representing the
6477// client's request for the PurchaseOffering operation. The "output" return
6478// value will be populated with the request's response once the request completes
6479// successfully.
6480//
6481// Use "Send" method on the returned Request to send the API call to the service.
6482// the "output" return value is not valid until after Send returns without error.
6483//
6484// See PurchaseOffering for more information on using the PurchaseOffering
6485// API call, and error handling.
6486//
6487// This method is useful when you want to inject custom logic or configuration
6488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6489//
6490//
6491//    // Example sending a request using the PurchaseOfferingRequest method.
6492//    req, resp := client.PurchaseOfferingRequest(params)
6493//
6494//    err := req.Send()
6495//    if err == nil { // resp is now filled
6496//        fmt.Println(resp)
6497//    }
6498//
6499// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/PurchaseOffering
6500func (c *DeviceFarm) PurchaseOfferingRequest(input *PurchaseOfferingInput) (req *request.Request, output *PurchaseOfferingOutput) {
6501	op := &request.Operation{
6502		Name:       opPurchaseOffering,
6503		HTTPMethod: "POST",
6504		HTTPPath:   "/",
6505	}
6506
6507	if input == nil {
6508		input = &PurchaseOfferingInput{}
6509	}
6510
6511	output = &PurchaseOfferingOutput{}
6512	req = c.newRequest(op, input, output)
6513	return
6514}
6515
6516// PurchaseOffering API operation for AWS Device Farm.
6517//
6518// Immediately purchases offerings for an AWS account. Offerings renew with
6519// the latest total purchased quantity for an offering, unless the renewal was
6520// overridden. The API returns a NotEligible error if the user is not permitted
6521// to invoke the operation. If you must be able to invoke this operation, contact
6522// aws-devicefarm-support@amazon.com (mailto:aws-devicefarm-support@amazon.com).
6523//
6524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6525// with awserr.Error's Code and Message methods to get detailed information about
6526// the error.
6527//
6528// See the AWS API reference guide for AWS Device Farm's
6529// API operation PurchaseOffering for usage and error information.
6530//
6531// Returned Error Types:
6532//   * ArgumentException
6533//   An invalid argument was specified.
6534//
6535//   * NotFoundException
6536//   The specified entity was not found.
6537//
6538//   * NotEligibleException
6539//   Exception gets thrown when a user is not eligible to perform the specified
6540//   transaction.
6541//
6542//   * LimitExceededException
6543//   A limit was exceeded.
6544//
6545//   * ServiceAccountException
6546//   There was a problem with the service account.
6547//
6548// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/PurchaseOffering
6549func (c *DeviceFarm) PurchaseOffering(input *PurchaseOfferingInput) (*PurchaseOfferingOutput, error) {
6550	req, out := c.PurchaseOfferingRequest(input)
6551	return out, req.Send()
6552}
6553
6554// PurchaseOfferingWithContext is the same as PurchaseOffering with the addition of
6555// the ability to pass a context and additional request options.
6556//
6557// See PurchaseOffering for details on how to use this API operation.
6558//
6559// The context must be non-nil and will be used for request cancellation. If
6560// the context is nil a panic will occur. In the future the SDK may create
6561// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6562// for more information on using Contexts.
6563func (c *DeviceFarm) PurchaseOfferingWithContext(ctx aws.Context, input *PurchaseOfferingInput, opts ...request.Option) (*PurchaseOfferingOutput, error) {
6564	req, out := c.PurchaseOfferingRequest(input)
6565	req.SetContext(ctx)
6566	req.ApplyOptions(opts...)
6567	return out, req.Send()
6568}
6569
6570const opRenewOffering = "RenewOffering"
6571
6572// RenewOfferingRequest generates a "aws/request.Request" representing the
6573// client's request for the RenewOffering operation. The "output" return
6574// value will be populated with the request's response once the request completes
6575// successfully.
6576//
6577// Use "Send" method on the returned Request to send the API call to the service.
6578// the "output" return value is not valid until after Send returns without error.
6579//
6580// See RenewOffering for more information on using the RenewOffering
6581// API call, and error handling.
6582//
6583// This method is useful when you want to inject custom logic or configuration
6584// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6585//
6586//
6587//    // Example sending a request using the RenewOfferingRequest method.
6588//    req, resp := client.RenewOfferingRequest(params)
6589//
6590//    err := req.Send()
6591//    if err == nil { // resp is now filled
6592//        fmt.Println(resp)
6593//    }
6594//
6595// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RenewOffering
6596func (c *DeviceFarm) RenewOfferingRequest(input *RenewOfferingInput) (req *request.Request, output *RenewOfferingOutput) {
6597	op := &request.Operation{
6598		Name:       opRenewOffering,
6599		HTTPMethod: "POST",
6600		HTTPPath:   "/",
6601	}
6602
6603	if input == nil {
6604		input = &RenewOfferingInput{}
6605	}
6606
6607	output = &RenewOfferingOutput{}
6608	req = c.newRequest(op, input, output)
6609	return
6610}
6611
6612// RenewOffering API operation for AWS Device Farm.
6613//
6614// Explicitly sets the quantity of devices to renew for an offering, starting
6615// from the effectiveDate of the next period. The API returns a NotEligible
6616// error if the user is not permitted to invoke the operation. If you must be
6617// able to invoke this operation, contact aws-devicefarm-support@amazon.com
6618// (mailto:aws-devicefarm-support@amazon.com).
6619//
6620// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6621// with awserr.Error's Code and Message methods to get detailed information about
6622// the error.
6623//
6624// See the AWS API reference guide for AWS Device Farm's
6625// API operation RenewOffering for usage and error information.
6626//
6627// Returned Error Types:
6628//   * ArgumentException
6629//   An invalid argument was specified.
6630//
6631//   * NotFoundException
6632//   The specified entity was not found.
6633//
6634//   * NotEligibleException
6635//   Exception gets thrown when a user is not eligible to perform the specified
6636//   transaction.
6637//
6638//   * LimitExceededException
6639//   A limit was exceeded.
6640//
6641//   * ServiceAccountException
6642//   There was a problem with the service account.
6643//
6644// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RenewOffering
6645func (c *DeviceFarm) RenewOffering(input *RenewOfferingInput) (*RenewOfferingOutput, error) {
6646	req, out := c.RenewOfferingRequest(input)
6647	return out, req.Send()
6648}
6649
6650// RenewOfferingWithContext is the same as RenewOffering with the addition of
6651// the ability to pass a context and additional request options.
6652//
6653// See RenewOffering for details on how to use this API operation.
6654//
6655// The context must be non-nil and will be used for request cancellation. If
6656// the context is nil a panic will occur. In the future the SDK may create
6657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6658// for more information on using Contexts.
6659func (c *DeviceFarm) RenewOfferingWithContext(ctx aws.Context, input *RenewOfferingInput, opts ...request.Option) (*RenewOfferingOutput, error) {
6660	req, out := c.RenewOfferingRequest(input)
6661	req.SetContext(ctx)
6662	req.ApplyOptions(opts...)
6663	return out, req.Send()
6664}
6665
6666const opScheduleRun = "ScheduleRun"
6667
6668// ScheduleRunRequest generates a "aws/request.Request" representing the
6669// client's request for the ScheduleRun operation. The "output" return
6670// value will be populated with the request's response once the request completes
6671// successfully.
6672//
6673// Use "Send" method on the returned Request to send the API call to the service.
6674// the "output" return value is not valid until after Send returns without error.
6675//
6676// See ScheduleRun for more information on using the ScheduleRun
6677// API call, and error handling.
6678//
6679// This method is useful when you want to inject custom logic or configuration
6680// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6681//
6682//
6683//    // Example sending a request using the ScheduleRunRequest method.
6684//    req, resp := client.ScheduleRunRequest(params)
6685//
6686//    err := req.Send()
6687//    if err == nil { // resp is now filled
6688//        fmt.Println(resp)
6689//    }
6690//
6691// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRun
6692func (c *DeviceFarm) ScheduleRunRequest(input *ScheduleRunInput) (req *request.Request, output *ScheduleRunOutput) {
6693	op := &request.Operation{
6694		Name:       opScheduleRun,
6695		HTTPMethod: "POST",
6696		HTTPPath:   "/",
6697	}
6698
6699	if input == nil {
6700		input = &ScheduleRunInput{}
6701	}
6702
6703	output = &ScheduleRunOutput{}
6704	req = c.newRequest(op, input, output)
6705	return
6706}
6707
6708// ScheduleRun API operation for AWS Device Farm.
6709//
6710// Schedules a run.
6711//
6712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6713// with awserr.Error's Code and Message methods to get detailed information about
6714// the error.
6715//
6716// See the AWS API reference guide for AWS Device Farm's
6717// API operation ScheduleRun for usage and error information.
6718//
6719// Returned Error Types:
6720//   * ArgumentException
6721//   An invalid argument was specified.
6722//
6723//   * NotFoundException
6724//   The specified entity was not found.
6725//
6726//   * LimitExceededException
6727//   A limit was exceeded.
6728//
6729//   * IdempotencyException
6730//   An entity with the same name already exists.
6731//
6732//   * ServiceAccountException
6733//   There was a problem with the service account.
6734//
6735// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRun
6736func (c *DeviceFarm) ScheduleRun(input *ScheduleRunInput) (*ScheduleRunOutput, error) {
6737	req, out := c.ScheduleRunRequest(input)
6738	return out, req.Send()
6739}
6740
6741// ScheduleRunWithContext is the same as ScheduleRun with the addition of
6742// the ability to pass a context and additional request options.
6743//
6744// See ScheduleRun for details on how to use this API operation.
6745//
6746// The context must be non-nil and will be used for request cancellation. If
6747// the context is nil a panic will occur. In the future the SDK may create
6748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6749// for more information on using Contexts.
6750func (c *DeviceFarm) ScheduleRunWithContext(ctx aws.Context, input *ScheduleRunInput, opts ...request.Option) (*ScheduleRunOutput, error) {
6751	req, out := c.ScheduleRunRequest(input)
6752	req.SetContext(ctx)
6753	req.ApplyOptions(opts...)
6754	return out, req.Send()
6755}
6756
6757const opStopJob = "StopJob"
6758
6759// StopJobRequest generates a "aws/request.Request" representing the
6760// client's request for the StopJob operation. The "output" return
6761// value will be populated with the request's response once the request completes
6762// successfully.
6763//
6764// Use "Send" method on the returned Request to send the API call to the service.
6765// the "output" return value is not valid until after Send returns without error.
6766//
6767// See StopJob for more information on using the StopJob
6768// API call, and error handling.
6769//
6770// This method is useful when you want to inject custom logic or configuration
6771// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6772//
6773//
6774//    // Example sending a request using the StopJobRequest method.
6775//    req, resp := client.StopJobRequest(params)
6776//
6777//    err := req.Send()
6778//    if err == nil { // resp is now filled
6779//        fmt.Println(resp)
6780//    }
6781//
6782// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopJob
6783func (c *DeviceFarm) StopJobRequest(input *StopJobInput) (req *request.Request, output *StopJobOutput) {
6784	op := &request.Operation{
6785		Name:       opStopJob,
6786		HTTPMethod: "POST",
6787		HTTPPath:   "/",
6788	}
6789
6790	if input == nil {
6791		input = &StopJobInput{}
6792	}
6793
6794	output = &StopJobOutput{}
6795	req = c.newRequest(op, input, output)
6796	return
6797}
6798
6799// StopJob API operation for AWS Device Farm.
6800//
6801// Initiates a stop request for the current job. AWS Device Farm immediately
6802// stops the job on the device where tests have not started. You are not billed
6803// for this device. On the device where tests have started, setup suite and
6804// teardown suite tests run to completion on the device. You are billed for
6805// setup, teardown, and any tests that were in progress or already completed.
6806//
6807// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6808// with awserr.Error's Code and Message methods to get detailed information about
6809// the error.
6810//
6811// See the AWS API reference guide for AWS Device Farm's
6812// API operation StopJob for usage and error information.
6813//
6814// Returned Error Types:
6815//   * ArgumentException
6816//   An invalid argument was specified.
6817//
6818//   * NotFoundException
6819//   The specified entity was not found.
6820//
6821//   * LimitExceededException
6822//   A limit was exceeded.
6823//
6824//   * ServiceAccountException
6825//   There was a problem with the service account.
6826//
6827// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopJob
6828func (c *DeviceFarm) StopJob(input *StopJobInput) (*StopJobOutput, error) {
6829	req, out := c.StopJobRequest(input)
6830	return out, req.Send()
6831}
6832
6833// StopJobWithContext is the same as StopJob with the addition of
6834// the ability to pass a context and additional request options.
6835//
6836// See StopJob for details on how to use this API operation.
6837//
6838// The context must be non-nil and will be used for request cancellation. If
6839// the context is nil a panic will occur. In the future the SDK may create
6840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6841// for more information on using Contexts.
6842func (c *DeviceFarm) StopJobWithContext(ctx aws.Context, input *StopJobInput, opts ...request.Option) (*StopJobOutput, error) {
6843	req, out := c.StopJobRequest(input)
6844	req.SetContext(ctx)
6845	req.ApplyOptions(opts...)
6846	return out, req.Send()
6847}
6848
6849const opStopRemoteAccessSession = "StopRemoteAccessSession"
6850
6851// StopRemoteAccessSessionRequest generates a "aws/request.Request" representing the
6852// client's request for the StopRemoteAccessSession operation. The "output" return
6853// value will be populated with the request's response once the request completes
6854// successfully.
6855//
6856// Use "Send" method on the returned Request to send the API call to the service.
6857// the "output" return value is not valid until after Send returns without error.
6858//
6859// See StopRemoteAccessSession for more information on using the StopRemoteAccessSession
6860// API call, and error handling.
6861//
6862// This method is useful when you want to inject custom logic or configuration
6863// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6864//
6865//
6866//    // Example sending a request using the StopRemoteAccessSessionRequest method.
6867//    req, resp := client.StopRemoteAccessSessionRequest(params)
6868//
6869//    err := req.Send()
6870//    if err == nil { // resp is now filled
6871//        fmt.Println(resp)
6872//    }
6873//
6874// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRemoteAccessSession
6875func (c *DeviceFarm) StopRemoteAccessSessionRequest(input *StopRemoteAccessSessionInput) (req *request.Request, output *StopRemoteAccessSessionOutput) {
6876	op := &request.Operation{
6877		Name:       opStopRemoteAccessSession,
6878		HTTPMethod: "POST",
6879		HTTPPath:   "/",
6880	}
6881
6882	if input == nil {
6883		input = &StopRemoteAccessSessionInput{}
6884	}
6885
6886	output = &StopRemoteAccessSessionOutput{}
6887	req = c.newRequest(op, input, output)
6888	return
6889}
6890
6891// StopRemoteAccessSession API operation for AWS Device Farm.
6892//
6893// Ends a specified remote access session.
6894//
6895// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6896// with awserr.Error's Code and Message methods to get detailed information about
6897// the error.
6898//
6899// See the AWS API reference guide for AWS Device Farm's
6900// API operation StopRemoteAccessSession for usage and error information.
6901//
6902// Returned Error Types:
6903//   * ArgumentException
6904//   An invalid argument was specified.
6905//
6906//   * NotFoundException
6907//   The specified entity was not found.
6908//
6909//   * LimitExceededException
6910//   A limit was exceeded.
6911//
6912//   * ServiceAccountException
6913//   There was a problem with the service account.
6914//
6915// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRemoteAccessSession
6916func (c *DeviceFarm) StopRemoteAccessSession(input *StopRemoteAccessSessionInput) (*StopRemoteAccessSessionOutput, error) {
6917	req, out := c.StopRemoteAccessSessionRequest(input)
6918	return out, req.Send()
6919}
6920
6921// StopRemoteAccessSessionWithContext is the same as StopRemoteAccessSession with the addition of
6922// the ability to pass a context and additional request options.
6923//
6924// See StopRemoteAccessSession for details on how to use this API operation.
6925//
6926// The context must be non-nil and will be used for request cancellation. If
6927// the context is nil a panic will occur. In the future the SDK may create
6928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6929// for more information on using Contexts.
6930func (c *DeviceFarm) StopRemoteAccessSessionWithContext(ctx aws.Context, input *StopRemoteAccessSessionInput, opts ...request.Option) (*StopRemoteAccessSessionOutput, error) {
6931	req, out := c.StopRemoteAccessSessionRequest(input)
6932	req.SetContext(ctx)
6933	req.ApplyOptions(opts...)
6934	return out, req.Send()
6935}
6936
6937const opStopRun = "StopRun"
6938
6939// StopRunRequest generates a "aws/request.Request" representing the
6940// client's request for the StopRun operation. The "output" return
6941// value will be populated with the request's response once the request completes
6942// successfully.
6943//
6944// Use "Send" method on the returned Request to send the API call to the service.
6945// the "output" return value is not valid until after Send returns without error.
6946//
6947// See StopRun for more information on using the StopRun
6948// API call, and error handling.
6949//
6950// This method is useful when you want to inject custom logic or configuration
6951// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6952//
6953//
6954//    // Example sending a request using the StopRunRequest method.
6955//    req, resp := client.StopRunRequest(params)
6956//
6957//    err := req.Send()
6958//    if err == nil { // resp is now filled
6959//        fmt.Println(resp)
6960//    }
6961//
6962// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRun
6963func (c *DeviceFarm) StopRunRequest(input *StopRunInput) (req *request.Request, output *StopRunOutput) {
6964	op := &request.Operation{
6965		Name:       opStopRun,
6966		HTTPMethod: "POST",
6967		HTTPPath:   "/",
6968	}
6969
6970	if input == nil {
6971		input = &StopRunInput{}
6972	}
6973
6974	output = &StopRunOutput{}
6975	req = c.newRequest(op, input, output)
6976	return
6977}
6978
6979// StopRun API operation for AWS Device Farm.
6980//
6981// Initiates a stop request for the current test run. AWS Device Farm immediately
6982// stops the run on devices where tests have not started. You are not billed
6983// for these devices. On devices where tests have started executing, setup suite
6984// and teardown suite tests run to completion on those devices. You are billed
6985// for setup, teardown, and any tests that were in progress or already completed.
6986//
6987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6988// with awserr.Error's Code and Message methods to get detailed information about
6989// the error.
6990//
6991// See the AWS API reference guide for AWS Device Farm's
6992// API operation StopRun for usage and error information.
6993//
6994// Returned Error Types:
6995//   * ArgumentException
6996//   An invalid argument was specified.
6997//
6998//   * NotFoundException
6999//   The specified entity was not found.
7000//
7001//   * LimitExceededException
7002//   A limit was exceeded.
7003//
7004//   * ServiceAccountException
7005//   There was a problem with the service account.
7006//
7007// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRun
7008func (c *DeviceFarm) StopRun(input *StopRunInput) (*StopRunOutput, error) {
7009	req, out := c.StopRunRequest(input)
7010	return out, req.Send()
7011}
7012
7013// StopRunWithContext is the same as StopRun with the addition of
7014// the ability to pass a context and additional request options.
7015//
7016// See StopRun for details on how to use this API operation.
7017//
7018// The context must be non-nil and will be used for request cancellation. If
7019// the context is nil a panic will occur. In the future the SDK may create
7020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7021// for more information on using Contexts.
7022func (c *DeviceFarm) StopRunWithContext(ctx aws.Context, input *StopRunInput, opts ...request.Option) (*StopRunOutput, error) {
7023	req, out := c.StopRunRequest(input)
7024	req.SetContext(ctx)
7025	req.ApplyOptions(opts...)
7026	return out, req.Send()
7027}
7028
7029const opTagResource = "TagResource"
7030
7031// TagResourceRequest generates a "aws/request.Request" representing the
7032// client's request for the TagResource operation. The "output" return
7033// value will be populated with the request's response once the request completes
7034// successfully.
7035//
7036// Use "Send" method on the returned Request to send the API call to the service.
7037// the "output" return value is not valid until after Send returns without error.
7038//
7039// See TagResource for more information on using the TagResource
7040// API call, and error handling.
7041//
7042// This method is useful when you want to inject custom logic or configuration
7043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7044//
7045//
7046//    // Example sending a request using the TagResourceRequest method.
7047//    req, resp := client.TagResourceRequest(params)
7048//
7049//    err := req.Send()
7050//    if err == nil { // resp is now filled
7051//        fmt.Println(resp)
7052//    }
7053//
7054// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/TagResource
7055func (c *DeviceFarm) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
7056	op := &request.Operation{
7057		Name:       opTagResource,
7058		HTTPMethod: "POST",
7059		HTTPPath:   "/",
7060	}
7061
7062	if input == nil {
7063		input = &TagResourceInput{}
7064	}
7065
7066	output = &TagResourceOutput{}
7067	req = c.newRequest(op, input, output)
7068	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7069	return
7070}
7071
7072// TagResource API operation for AWS Device Farm.
7073//
7074// Associates the specified tags to a resource with the specified resourceArn.
7075// If existing tags on a resource are not specified in the request parameters,
7076// they are not changed. When a resource is deleted, the tags associated with
7077// that resource are also deleted.
7078//
7079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7080// with awserr.Error's Code and Message methods to get detailed information about
7081// the error.
7082//
7083// See the AWS API reference guide for AWS Device Farm's
7084// API operation TagResource for usage and error information.
7085//
7086// Returned Error Types:
7087//   * ArgumentException
7088//   An invalid argument was specified.
7089//
7090//   * NotFoundException
7091//   The specified entity was not found.
7092//
7093//   * TagOperationException
7094//   The operation was not successful. Try again.
7095//
7096//   * TooManyTagsException
7097//   The list of tags on the repository is over the limit. The maximum number
7098//   of tags that can be applied to a repository is 50.
7099//
7100//   * TagPolicyException
7101//   The request doesn't comply with the AWS Identity and Access Management (IAM)
7102//   tag policy. Correct your request and then retry it.
7103//
7104// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/TagResource
7105func (c *DeviceFarm) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
7106	req, out := c.TagResourceRequest(input)
7107	return out, req.Send()
7108}
7109
7110// TagResourceWithContext is the same as TagResource with the addition of
7111// the ability to pass a context and additional request options.
7112//
7113// See TagResource for details on how to use this API operation.
7114//
7115// The context must be non-nil and will be used for request cancellation. If
7116// the context is nil a panic will occur. In the future the SDK may create
7117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7118// for more information on using Contexts.
7119func (c *DeviceFarm) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
7120	req, out := c.TagResourceRequest(input)
7121	req.SetContext(ctx)
7122	req.ApplyOptions(opts...)
7123	return out, req.Send()
7124}
7125
7126const opUntagResource = "UntagResource"
7127
7128// UntagResourceRequest generates a "aws/request.Request" representing the
7129// client's request for the UntagResource operation. The "output" return
7130// value will be populated with the request's response once the request completes
7131// successfully.
7132//
7133// Use "Send" method on the returned Request to send the API call to the service.
7134// the "output" return value is not valid until after Send returns without error.
7135//
7136// See UntagResource for more information on using the UntagResource
7137// API call, and error handling.
7138//
7139// This method is useful when you want to inject custom logic or configuration
7140// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7141//
7142//
7143//    // Example sending a request using the UntagResourceRequest method.
7144//    req, resp := client.UntagResourceRequest(params)
7145//
7146//    err := req.Send()
7147//    if err == nil { // resp is now filled
7148//        fmt.Println(resp)
7149//    }
7150//
7151// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UntagResource
7152func (c *DeviceFarm) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
7153	op := &request.Operation{
7154		Name:       opUntagResource,
7155		HTTPMethod: "POST",
7156		HTTPPath:   "/",
7157	}
7158
7159	if input == nil {
7160		input = &UntagResourceInput{}
7161	}
7162
7163	output = &UntagResourceOutput{}
7164	req = c.newRequest(op, input, output)
7165	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7166	return
7167}
7168
7169// UntagResource API operation for AWS Device Farm.
7170//
7171// Deletes the specified tags from a resource.
7172//
7173// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7174// with awserr.Error's Code and Message methods to get detailed information about
7175// the error.
7176//
7177// See the AWS API reference guide for AWS Device Farm's
7178// API operation UntagResource for usage and error information.
7179//
7180// Returned Error Types:
7181//   * ArgumentException
7182//   An invalid argument was specified.
7183//
7184//   * NotFoundException
7185//   The specified entity was not found.
7186//
7187//   * TagOperationException
7188//   The operation was not successful. Try again.
7189//
7190// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UntagResource
7191func (c *DeviceFarm) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
7192	req, out := c.UntagResourceRequest(input)
7193	return out, req.Send()
7194}
7195
7196// UntagResourceWithContext is the same as UntagResource with the addition of
7197// the ability to pass a context and additional request options.
7198//
7199// See UntagResource for details on how to use this API operation.
7200//
7201// The context must be non-nil and will be used for request cancellation. If
7202// the context is nil a panic will occur. In the future the SDK may create
7203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7204// for more information on using Contexts.
7205func (c *DeviceFarm) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
7206	req, out := c.UntagResourceRequest(input)
7207	req.SetContext(ctx)
7208	req.ApplyOptions(opts...)
7209	return out, req.Send()
7210}
7211
7212const opUpdateDeviceInstance = "UpdateDeviceInstance"
7213
7214// UpdateDeviceInstanceRequest generates a "aws/request.Request" representing the
7215// client's request for the UpdateDeviceInstance operation. The "output" return
7216// value will be populated with the request's response once the request completes
7217// successfully.
7218//
7219// Use "Send" method on the returned Request to send the API call to the service.
7220// the "output" return value is not valid until after Send returns without error.
7221//
7222// See UpdateDeviceInstance for more information on using the UpdateDeviceInstance
7223// API call, and error handling.
7224//
7225// This method is useful when you want to inject custom logic or configuration
7226// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7227//
7228//
7229//    // Example sending a request using the UpdateDeviceInstanceRequest method.
7230//    req, resp := client.UpdateDeviceInstanceRequest(params)
7231//
7232//    err := req.Send()
7233//    if err == nil { // resp is now filled
7234//        fmt.Println(resp)
7235//    }
7236//
7237// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDeviceInstance
7238func (c *DeviceFarm) UpdateDeviceInstanceRequest(input *UpdateDeviceInstanceInput) (req *request.Request, output *UpdateDeviceInstanceOutput) {
7239	op := &request.Operation{
7240		Name:       opUpdateDeviceInstance,
7241		HTTPMethod: "POST",
7242		HTTPPath:   "/",
7243	}
7244
7245	if input == nil {
7246		input = &UpdateDeviceInstanceInput{}
7247	}
7248
7249	output = &UpdateDeviceInstanceOutput{}
7250	req = c.newRequest(op, input, output)
7251	return
7252}
7253
7254// UpdateDeviceInstance API operation for AWS Device Farm.
7255//
7256// Updates information about a private device instance.
7257//
7258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7259// with awserr.Error's Code and Message methods to get detailed information about
7260// the error.
7261//
7262// See the AWS API reference guide for AWS Device Farm's
7263// API operation UpdateDeviceInstance for usage and error information.
7264//
7265// Returned Error Types:
7266//   * ArgumentException
7267//   An invalid argument was specified.
7268//
7269//   * NotFoundException
7270//   The specified entity was not found.
7271//
7272//   * LimitExceededException
7273//   A limit was exceeded.
7274//
7275//   * ServiceAccountException
7276//   There was a problem with the service account.
7277//
7278// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDeviceInstance
7279func (c *DeviceFarm) UpdateDeviceInstance(input *UpdateDeviceInstanceInput) (*UpdateDeviceInstanceOutput, error) {
7280	req, out := c.UpdateDeviceInstanceRequest(input)
7281	return out, req.Send()
7282}
7283
7284// UpdateDeviceInstanceWithContext is the same as UpdateDeviceInstance with the addition of
7285// the ability to pass a context and additional request options.
7286//
7287// See UpdateDeviceInstance for details on how to use this API operation.
7288//
7289// The context must be non-nil and will be used for request cancellation. If
7290// the context is nil a panic will occur. In the future the SDK may create
7291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7292// for more information on using Contexts.
7293func (c *DeviceFarm) UpdateDeviceInstanceWithContext(ctx aws.Context, input *UpdateDeviceInstanceInput, opts ...request.Option) (*UpdateDeviceInstanceOutput, error) {
7294	req, out := c.UpdateDeviceInstanceRequest(input)
7295	req.SetContext(ctx)
7296	req.ApplyOptions(opts...)
7297	return out, req.Send()
7298}
7299
7300const opUpdateDevicePool = "UpdateDevicePool"
7301
7302// UpdateDevicePoolRequest generates a "aws/request.Request" representing the
7303// client's request for the UpdateDevicePool operation. The "output" return
7304// value will be populated with the request's response once the request completes
7305// successfully.
7306//
7307// Use "Send" method on the returned Request to send the API call to the service.
7308// the "output" return value is not valid until after Send returns without error.
7309//
7310// See UpdateDevicePool for more information on using the UpdateDevicePool
7311// API call, and error handling.
7312//
7313// This method is useful when you want to inject custom logic or configuration
7314// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7315//
7316//
7317//    // Example sending a request using the UpdateDevicePoolRequest method.
7318//    req, resp := client.UpdateDevicePoolRequest(params)
7319//
7320//    err := req.Send()
7321//    if err == nil { // resp is now filled
7322//        fmt.Println(resp)
7323//    }
7324//
7325// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDevicePool
7326func (c *DeviceFarm) UpdateDevicePoolRequest(input *UpdateDevicePoolInput) (req *request.Request, output *UpdateDevicePoolOutput) {
7327	op := &request.Operation{
7328		Name:       opUpdateDevicePool,
7329		HTTPMethod: "POST",
7330		HTTPPath:   "/",
7331	}
7332
7333	if input == nil {
7334		input = &UpdateDevicePoolInput{}
7335	}
7336
7337	output = &UpdateDevicePoolOutput{}
7338	req = c.newRequest(op, input, output)
7339	return
7340}
7341
7342// UpdateDevicePool API operation for AWS Device Farm.
7343//
7344// Modifies the name, description, and rules in a device pool given the attributes
7345// and the pool ARN. Rule updates are all-or-nothing, meaning they can only
7346// be updated as a whole (or not at all).
7347//
7348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7349// with awserr.Error's Code and Message methods to get detailed information about
7350// the error.
7351//
7352// See the AWS API reference guide for AWS Device Farm's
7353// API operation UpdateDevicePool for usage and error information.
7354//
7355// Returned Error Types:
7356//   * ArgumentException
7357//   An invalid argument was specified.
7358//
7359//   * NotFoundException
7360//   The specified entity was not found.
7361//
7362//   * LimitExceededException
7363//   A limit was exceeded.
7364//
7365//   * ServiceAccountException
7366//   There was a problem with the service account.
7367//
7368// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDevicePool
7369func (c *DeviceFarm) UpdateDevicePool(input *UpdateDevicePoolInput) (*UpdateDevicePoolOutput, error) {
7370	req, out := c.UpdateDevicePoolRequest(input)
7371	return out, req.Send()
7372}
7373
7374// UpdateDevicePoolWithContext is the same as UpdateDevicePool with the addition of
7375// the ability to pass a context and additional request options.
7376//
7377// See UpdateDevicePool for details on how to use this API operation.
7378//
7379// The context must be non-nil and will be used for request cancellation. If
7380// the context is nil a panic will occur. In the future the SDK may create
7381// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7382// for more information on using Contexts.
7383func (c *DeviceFarm) UpdateDevicePoolWithContext(ctx aws.Context, input *UpdateDevicePoolInput, opts ...request.Option) (*UpdateDevicePoolOutput, error) {
7384	req, out := c.UpdateDevicePoolRequest(input)
7385	req.SetContext(ctx)
7386	req.ApplyOptions(opts...)
7387	return out, req.Send()
7388}
7389
7390const opUpdateInstanceProfile = "UpdateInstanceProfile"
7391
7392// UpdateInstanceProfileRequest generates a "aws/request.Request" representing the
7393// client's request for the UpdateInstanceProfile operation. The "output" return
7394// value will be populated with the request's response once the request completes
7395// successfully.
7396//
7397// Use "Send" method on the returned Request to send the API call to the service.
7398// the "output" return value is not valid until after Send returns without error.
7399//
7400// See UpdateInstanceProfile for more information on using the UpdateInstanceProfile
7401// API call, and error handling.
7402//
7403// This method is useful when you want to inject custom logic or configuration
7404// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7405//
7406//
7407//    // Example sending a request using the UpdateInstanceProfileRequest method.
7408//    req, resp := client.UpdateInstanceProfileRequest(params)
7409//
7410//    err := req.Send()
7411//    if err == nil { // resp is now filled
7412//        fmt.Println(resp)
7413//    }
7414//
7415// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateInstanceProfile
7416func (c *DeviceFarm) UpdateInstanceProfileRequest(input *UpdateInstanceProfileInput) (req *request.Request, output *UpdateInstanceProfileOutput) {
7417	op := &request.Operation{
7418		Name:       opUpdateInstanceProfile,
7419		HTTPMethod: "POST",
7420		HTTPPath:   "/",
7421	}
7422
7423	if input == nil {
7424		input = &UpdateInstanceProfileInput{}
7425	}
7426
7427	output = &UpdateInstanceProfileOutput{}
7428	req = c.newRequest(op, input, output)
7429	return
7430}
7431
7432// UpdateInstanceProfile API operation for AWS Device Farm.
7433//
7434// Updates information about an existing private device instance profile.
7435//
7436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7437// with awserr.Error's Code and Message methods to get detailed information about
7438// the error.
7439//
7440// See the AWS API reference guide for AWS Device Farm's
7441// API operation UpdateInstanceProfile for usage and error information.
7442//
7443// Returned Error Types:
7444//   * ArgumentException
7445//   An invalid argument was specified.
7446//
7447//   * NotFoundException
7448//   The specified entity was not found.
7449//
7450//   * LimitExceededException
7451//   A limit was exceeded.
7452//
7453//   * ServiceAccountException
7454//   There was a problem with the service account.
7455//
7456// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateInstanceProfile
7457func (c *DeviceFarm) UpdateInstanceProfile(input *UpdateInstanceProfileInput) (*UpdateInstanceProfileOutput, error) {
7458	req, out := c.UpdateInstanceProfileRequest(input)
7459	return out, req.Send()
7460}
7461
7462// UpdateInstanceProfileWithContext is the same as UpdateInstanceProfile with the addition of
7463// the ability to pass a context and additional request options.
7464//
7465// See UpdateInstanceProfile for details on how to use this API operation.
7466//
7467// The context must be non-nil and will be used for request cancellation. If
7468// the context is nil a panic will occur. In the future the SDK may create
7469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7470// for more information on using Contexts.
7471func (c *DeviceFarm) UpdateInstanceProfileWithContext(ctx aws.Context, input *UpdateInstanceProfileInput, opts ...request.Option) (*UpdateInstanceProfileOutput, error) {
7472	req, out := c.UpdateInstanceProfileRequest(input)
7473	req.SetContext(ctx)
7474	req.ApplyOptions(opts...)
7475	return out, req.Send()
7476}
7477
7478const opUpdateNetworkProfile = "UpdateNetworkProfile"
7479
7480// UpdateNetworkProfileRequest generates a "aws/request.Request" representing the
7481// client's request for the UpdateNetworkProfile operation. The "output" return
7482// value will be populated with the request's response once the request completes
7483// successfully.
7484//
7485// Use "Send" method on the returned Request to send the API call to the service.
7486// the "output" return value is not valid until after Send returns without error.
7487//
7488// See UpdateNetworkProfile for more information on using the UpdateNetworkProfile
7489// API call, and error handling.
7490//
7491// This method is useful when you want to inject custom logic or configuration
7492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7493//
7494//
7495//    // Example sending a request using the UpdateNetworkProfileRequest method.
7496//    req, resp := client.UpdateNetworkProfileRequest(params)
7497//
7498//    err := req.Send()
7499//    if err == nil { // resp is now filled
7500//        fmt.Println(resp)
7501//    }
7502//
7503// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateNetworkProfile
7504func (c *DeviceFarm) UpdateNetworkProfileRequest(input *UpdateNetworkProfileInput) (req *request.Request, output *UpdateNetworkProfileOutput) {
7505	op := &request.Operation{
7506		Name:       opUpdateNetworkProfile,
7507		HTTPMethod: "POST",
7508		HTTPPath:   "/",
7509	}
7510
7511	if input == nil {
7512		input = &UpdateNetworkProfileInput{}
7513	}
7514
7515	output = &UpdateNetworkProfileOutput{}
7516	req = c.newRequest(op, input, output)
7517	return
7518}
7519
7520// UpdateNetworkProfile API operation for AWS Device Farm.
7521//
7522// Updates the network profile.
7523//
7524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7525// with awserr.Error's Code and Message methods to get detailed information about
7526// the error.
7527//
7528// See the AWS API reference guide for AWS Device Farm's
7529// API operation UpdateNetworkProfile for usage and error information.
7530//
7531// Returned Error Types:
7532//   * ArgumentException
7533//   An invalid argument was specified.
7534//
7535//   * NotFoundException
7536//   The specified entity was not found.
7537//
7538//   * LimitExceededException
7539//   A limit was exceeded.
7540//
7541//   * ServiceAccountException
7542//   There was a problem with the service account.
7543//
7544// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateNetworkProfile
7545func (c *DeviceFarm) UpdateNetworkProfile(input *UpdateNetworkProfileInput) (*UpdateNetworkProfileOutput, error) {
7546	req, out := c.UpdateNetworkProfileRequest(input)
7547	return out, req.Send()
7548}
7549
7550// UpdateNetworkProfileWithContext is the same as UpdateNetworkProfile with the addition of
7551// the ability to pass a context and additional request options.
7552//
7553// See UpdateNetworkProfile for details on how to use this API operation.
7554//
7555// The context must be non-nil and will be used for request cancellation. If
7556// the context is nil a panic will occur. In the future the SDK may create
7557// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7558// for more information on using Contexts.
7559func (c *DeviceFarm) UpdateNetworkProfileWithContext(ctx aws.Context, input *UpdateNetworkProfileInput, opts ...request.Option) (*UpdateNetworkProfileOutput, error) {
7560	req, out := c.UpdateNetworkProfileRequest(input)
7561	req.SetContext(ctx)
7562	req.ApplyOptions(opts...)
7563	return out, req.Send()
7564}
7565
7566const opUpdateProject = "UpdateProject"
7567
7568// UpdateProjectRequest generates a "aws/request.Request" representing the
7569// client's request for the UpdateProject operation. The "output" return
7570// value will be populated with the request's response once the request completes
7571// successfully.
7572//
7573// Use "Send" method on the returned Request to send the API call to the service.
7574// the "output" return value is not valid until after Send returns without error.
7575//
7576// See UpdateProject for more information on using the UpdateProject
7577// API call, and error handling.
7578//
7579// This method is useful when you want to inject custom logic or configuration
7580// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7581//
7582//
7583//    // Example sending a request using the UpdateProjectRequest method.
7584//    req, resp := client.UpdateProjectRequest(params)
7585//
7586//    err := req.Send()
7587//    if err == nil { // resp is now filled
7588//        fmt.Println(resp)
7589//    }
7590//
7591// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateProject
7592func (c *DeviceFarm) UpdateProjectRequest(input *UpdateProjectInput) (req *request.Request, output *UpdateProjectOutput) {
7593	op := &request.Operation{
7594		Name:       opUpdateProject,
7595		HTTPMethod: "POST",
7596		HTTPPath:   "/",
7597	}
7598
7599	if input == nil {
7600		input = &UpdateProjectInput{}
7601	}
7602
7603	output = &UpdateProjectOutput{}
7604	req = c.newRequest(op, input, output)
7605	return
7606}
7607
7608// UpdateProject API operation for AWS Device Farm.
7609//
7610// Modifies the specified project name, given the project ARN and a new name.
7611//
7612// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7613// with awserr.Error's Code and Message methods to get detailed information about
7614// the error.
7615//
7616// See the AWS API reference guide for AWS Device Farm's
7617// API operation UpdateProject for usage and error information.
7618//
7619// Returned Error Types:
7620//   * ArgumentException
7621//   An invalid argument was specified.
7622//
7623//   * NotFoundException
7624//   The specified entity was not found.
7625//
7626//   * LimitExceededException
7627//   A limit was exceeded.
7628//
7629//   * ServiceAccountException
7630//   There was a problem with the service account.
7631//
7632// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateProject
7633func (c *DeviceFarm) UpdateProject(input *UpdateProjectInput) (*UpdateProjectOutput, error) {
7634	req, out := c.UpdateProjectRequest(input)
7635	return out, req.Send()
7636}
7637
7638// UpdateProjectWithContext is the same as UpdateProject with the addition of
7639// the ability to pass a context and additional request options.
7640//
7641// See UpdateProject for details on how to use this API operation.
7642//
7643// The context must be non-nil and will be used for request cancellation. If
7644// the context is nil a panic will occur. In the future the SDK may create
7645// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7646// for more information on using Contexts.
7647func (c *DeviceFarm) UpdateProjectWithContext(ctx aws.Context, input *UpdateProjectInput, opts ...request.Option) (*UpdateProjectOutput, error) {
7648	req, out := c.UpdateProjectRequest(input)
7649	req.SetContext(ctx)
7650	req.ApplyOptions(opts...)
7651	return out, req.Send()
7652}
7653
7654const opUpdateTestGridProject = "UpdateTestGridProject"
7655
7656// UpdateTestGridProjectRequest generates a "aws/request.Request" representing the
7657// client's request for the UpdateTestGridProject operation. The "output" return
7658// value will be populated with the request's response once the request completes
7659// successfully.
7660//
7661// Use "Send" method on the returned Request to send the API call to the service.
7662// the "output" return value is not valid until after Send returns without error.
7663//
7664// See UpdateTestGridProject for more information on using the UpdateTestGridProject
7665// API call, and error handling.
7666//
7667// This method is useful when you want to inject custom logic or configuration
7668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7669//
7670//
7671//    // Example sending a request using the UpdateTestGridProjectRequest method.
7672//    req, resp := client.UpdateTestGridProjectRequest(params)
7673//
7674//    err := req.Send()
7675//    if err == nil { // resp is now filled
7676//        fmt.Println(resp)
7677//    }
7678//
7679// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateTestGridProject
7680func (c *DeviceFarm) UpdateTestGridProjectRequest(input *UpdateTestGridProjectInput) (req *request.Request, output *UpdateTestGridProjectOutput) {
7681	op := &request.Operation{
7682		Name:       opUpdateTestGridProject,
7683		HTTPMethod: "POST",
7684		HTTPPath:   "/",
7685	}
7686
7687	if input == nil {
7688		input = &UpdateTestGridProjectInput{}
7689	}
7690
7691	output = &UpdateTestGridProjectOutput{}
7692	req = c.newRequest(op, input, output)
7693	return
7694}
7695
7696// UpdateTestGridProject API operation for AWS Device Farm.
7697//
7698// Change details of a project.
7699//
7700// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7701// with awserr.Error's Code and Message methods to get detailed information about
7702// the error.
7703//
7704// See the AWS API reference guide for AWS Device Farm's
7705// API operation UpdateTestGridProject for usage and error information.
7706//
7707// Returned Error Types:
7708//   * NotFoundException
7709//   The specified entity was not found.
7710//
7711//   * ArgumentException
7712//   An invalid argument was specified.
7713//
7714//   * LimitExceededException
7715//   A limit was exceeded.
7716//
7717//   * InternalServiceException
7718//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
7719//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
7720//
7721// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateTestGridProject
7722func (c *DeviceFarm) UpdateTestGridProject(input *UpdateTestGridProjectInput) (*UpdateTestGridProjectOutput, error) {
7723	req, out := c.UpdateTestGridProjectRequest(input)
7724	return out, req.Send()
7725}
7726
7727// UpdateTestGridProjectWithContext is the same as UpdateTestGridProject with the addition of
7728// the ability to pass a context and additional request options.
7729//
7730// See UpdateTestGridProject for details on how to use this API operation.
7731//
7732// The context must be non-nil and will be used for request cancellation. If
7733// the context is nil a panic will occur. In the future the SDK may create
7734// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7735// for more information on using Contexts.
7736func (c *DeviceFarm) UpdateTestGridProjectWithContext(ctx aws.Context, input *UpdateTestGridProjectInput, opts ...request.Option) (*UpdateTestGridProjectOutput, error) {
7737	req, out := c.UpdateTestGridProjectRequest(input)
7738	req.SetContext(ctx)
7739	req.ApplyOptions(opts...)
7740	return out, req.Send()
7741}
7742
7743const opUpdateUpload = "UpdateUpload"
7744
7745// UpdateUploadRequest generates a "aws/request.Request" representing the
7746// client's request for the UpdateUpload operation. The "output" return
7747// value will be populated with the request's response once the request completes
7748// successfully.
7749//
7750// Use "Send" method on the returned Request to send the API call to the service.
7751// the "output" return value is not valid until after Send returns without error.
7752//
7753// See UpdateUpload for more information on using the UpdateUpload
7754// API call, and error handling.
7755//
7756// This method is useful when you want to inject custom logic or configuration
7757// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7758//
7759//
7760//    // Example sending a request using the UpdateUploadRequest method.
7761//    req, resp := client.UpdateUploadRequest(params)
7762//
7763//    err := req.Send()
7764//    if err == nil { // resp is now filled
7765//        fmt.Println(resp)
7766//    }
7767//
7768// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateUpload
7769func (c *DeviceFarm) UpdateUploadRequest(input *UpdateUploadInput) (req *request.Request, output *UpdateUploadOutput) {
7770	op := &request.Operation{
7771		Name:       opUpdateUpload,
7772		HTTPMethod: "POST",
7773		HTTPPath:   "/",
7774	}
7775
7776	if input == nil {
7777		input = &UpdateUploadInput{}
7778	}
7779
7780	output = &UpdateUploadOutput{}
7781	req = c.newRequest(op, input, output)
7782	return
7783}
7784
7785// UpdateUpload API operation for AWS Device Farm.
7786//
7787// Updates an uploaded test spec.
7788//
7789// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7790// with awserr.Error's Code and Message methods to get detailed information about
7791// the error.
7792//
7793// See the AWS API reference guide for AWS Device Farm's
7794// API operation UpdateUpload for usage and error information.
7795//
7796// Returned Error Types:
7797//   * ArgumentException
7798//   An invalid argument was specified.
7799//
7800//   * NotFoundException
7801//   The specified entity was not found.
7802//
7803//   * LimitExceededException
7804//   A limit was exceeded.
7805//
7806//   * ServiceAccountException
7807//   There was a problem with the service account.
7808//
7809// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateUpload
7810func (c *DeviceFarm) UpdateUpload(input *UpdateUploadInput) (*UpdateUploadOutput, error) {
7811	req, out := c.UpdateUploadRequest(input)
7812	return out, req.Send()
7813}
7814
7815// UpdateUploadWithContext is the same as UpdateUpload with the addition of
7816// the ability to pass a context and additional request options.
7817//
7818// See UpdateUpload for details on how to use this API operation.
7819//
7820// The context must be non-nil and will be used for request cancellation. If
7821// the context is nil a panic will occur. In the future the SDK may create
7822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7823// for more information on using Contexts.
7824func (c *DeviceFarm) UpdateUploadWithContext(ctx aws.Context, input *UpdateUploadInput, opts ...request.Option) (*UpdateUploadOutput, error) {
7825	req, out := c.UpdateUploadRequest(input)
7826	req.SetContext(ctx)
7827	req.ApplyOptions(opts...)
7828	return out, req.Send()
7829}
7830
7831const opUpdateVPCEConfiguration = "UpdateVPCEConfiguration"
7832
7833// UpdateVPCEConfigurationRequest generates a "aws/request.Request" representing the
7834// client's request for the UpdateVPCEConfiguration operation. The "output" return
7835// value will be populated with the request's response once the request completes
7836// successfully.
7837//
7838// Use "Send" method on the returned Request to send the API call to the service.
7839// the "output" return value is not valid until after Send returns without error.
7840//
7841// See UpdateVPCEConfiguration for more information on using the UpdateVPCEConfiguration
7842// API call, and error handling.
7843//
7844// This method is useful when you want to inject custom logic or configuration
7845// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7846//
7847//
7848//    // Example sending a request using the UpdateVPCEConfigurationRequest method.
7849//    req, resp := client.UpdateVPCEConfigurationRequest(params)
7850//
7851//    err := req.Send()
7852//    if err == nil { // resp is now filled
7853//        fmt.Println(resp)
7854//    }
7855//
7856// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateVPCEConfiguration
7857func (c *DeviceFarm) UpdateVPCEConfigurationRequest(input *UpdateVPCEConfigurationInput) (req *request.Request, output *UpdateVPCEConfigurationOutput) {
7858	op := &request.Operation{
7859		Name:       opUpdateVPCEConfiguration,
7860		HTTPMethod: "POST",
7861		HTTPPath:   "/",
7862	}
7863
7864	if input == nil {
7865		input = &UpdateVPCEConfigurationInput{}
7866	}
7867
7868	output = &UpdateVPCEConfigurationOutput{}
7869	req = c.newRequest(op, input, output)
7870	return
7871}
7872
7873// UpdateVPCEConfiguration API operation for AWS Device Farm.
7874//
7875// Updates information about an Amazon Virtual Private Cloud (VPC) endpoint
7876// configuration.
7877//
7878// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7879// with awserr.Error's Code and Message methods to get detailed information about
7880// the error.
7881//
7882// See the AWS API reference guide for AWS Device Farm's
7883// API operation UpdateVPCEConfiguration for usage and error information.
7884//
7885// Returned Error Types:
7886//   * ArgumentException
7887//   An invalid argument was specified.
7888//
7889//   * NotFoundException
7890//   The specified entity was not found.
7891//
7892//   * ServiceAccountException
7893//   There was a problem with the service account.
7894//
7895//   * InvalidOperationException
7896//   There was an error with the update request, or you do not have sufficient
7897//   permissions to update this VPC endpoint configuration.
7898//
7899// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateVPCEConfiguration
7900func (c *DeviceFarm) UpdateVPCEConfiguration(input *UpdateVPCEConfigurationInput) (*UpdateVPCEConfigurationOutput, error) {
7901	req, out := c.UpdateVPCEConfigurationRequest(input)
7902	return out, req.Send()
7903}
7904
7905// UpdateVPCEConfigurationWithContext is the same as UpdateVPCEConfiguration with the addition of
7906// the ability to pass a context and additional request options.
7907//
7908// See UpdateVPCEConfiguration for details on how to use this API operation.
7909//
7910// The context must be non-nil and will be used for request cancellation. If
7911// the context is nil a panic will occur. In the future the SDK may create
7912// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7913// for more information on using Contexts.
7914func (c *DeviceFarm) UpdateVPCEConfigurationWithContext(ctx aws.Context, input *UpdateVPCEConfigurationInput, opts ...request.Option) (*UpdateVPCEConfigurationOutput, error) {
7915	req, out := c.UpdateVPCEConfigurationRequest(input)
7916	req.SetContext(ctx)
7917	req.ApplyOptions(opts...)
7918	return out, req.Send()
7919}
7920
7921// A container for account-level settings in AWS Device Farm.
7922type AccountSettings struct {
7923	_ struct{} `type:"structure"`
7924
7925	// The AWS account number specified in the AccountSettings container.
7926	AwsAccountNumber *string `locationName:"awsAccountNumber" min:"2" type:"string"`
7927
7928	// The default number of minutes (at the account level) a test run executes
7929	// before it times out. The default value is 150 minutes.
7930	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
7931
7932	// The maximum number of minutes a test run executes before it times out.
7933	MaxJobTimeoutMinutes *int64 `locationName:"maxJobTimeoutMinutes" type:"integer"`
7934
7935	// The maximum number of device slots that the AWS account can purchase. Each
7936	// maximum is expressed as an offering-id:number pair, where the offering-id
7937	// represents one of the IDs returned by the ListOfferings command.
7938	MaxSlots map[string]*int64 `locationName:"maxSlots" type:"map"`
7939
7940	// When set to true, for private devices, Device Farm does not sign your app
7941	// again. For public devices, Device Farm always signs your apps again.
7942	//
7943	// For more information about how Device Farm re-signs your apps, see Do you
7944	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
7945	// Farm FAQs.
7946	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
7947
7948	// Information about an AWS account's usage of free trial device minutes.
7949	TrialMinutes *TrialMinutes `locationName:"trialMinutes" type:"structure"`
7950
7951	// Returns the unmetered devices you have purchased or want to purchase.
7952	UnmeteredDevices map[string]*int64 `locationName:"unmeteredDevices" type:"map"`
7953
7954	// Returns the unmetered remote access devices you have purchased or want to
7955	// purchase.
7956	UnmeteredRemoteAccessDevices map[string]*int64 `locationName:"unmeteredRemoteAccessDevices" type:"map"`
7957}
7958
7959// String returns the string representation.
7960//
7961// API parameter values that are decorated as "sensitive" in the API will not
7962// be included in the string output. The member name will be present, but the
7963// value will be replaced with "sensitive".
7964func (s AccountSettings) String() string {
7965	return awsutil.Prettify(s)
7966}
7967
7968// GoString returns the string representation.
7969//
7970// API parameter values that are decorated as "sensitive" in the API will not
7971// be included in the string output. The member name will be present, but the
7972// value will be replaced with "sensitive".
7973func (s AccountSettings) GoString() string {
7974	return s.String()
7975}
7976
7977// SetAwsAccountNumber sets the AwsAccountNumber field's value.
7978func (s *AccountSettings) SetAwsAccountNumber(v string) *AccountSettings {
7979	s.AwsAccountNumber = &v
7980	return s
7981}
7982
7983// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
7984func (s *AccountSettings) SetDefaultJobTimeoutMinutes(v int64) *AccountSettings {
7985	s.DefaultJobTimeoutMinutes = &v
7986	return s
7987}
7988
7989// SetMaxJobTimeoutMinutes sets the MaxJobTimeoutMinutes field's value.
7990func (s *AccountSettings) SetMaxJobTimeoutMinutes(v int64) *AccountSettings {
7991	s.MaxJobTimeoutMinutes = &v
7992	return s
7993}
7994
7995// SetMaxSlots sets the MaxSlots field's value.
7996func (s *AccountSettings) SetMaxSlots(v map[string]*int64) *AccountSettings {
7997	s.MaxSlots = v
7998	return s
7999}
8000
8001// SetSkipAppResign sets the SkipAppResign field's value.
8002func (s *AccountSettings) SetSkipAppResign(v bool) *AccountSettings {
8003	s.SkipAppResign = &v
8004	return s
8005}
8006
8007// SetTrialMinutes sets the TrialMinutes field's value.
8008func (s *AccountSettings) SetTrialMinutes(v *TrialMinutes) *AccountSettings {
8009	s.TrialMinutes = v
8010	return s
8011}
8012
8013// SetUnmeteredDevices sets the UnmeteredDevices field's value.
8014func (s *AccountSettings) SetUnmeteredDevices(v map[string]*int64) *AccountSettings {
8015	s.UnmeteredDevices = v
8016	return s
8017}
8018
8019// SetUnmeteredRemoteAccessDevices sets the UnmeteredRemoteAccessDevices field's value.
8020func (s *AccountSettings) SetUnmeteredRemoteAccessDevices(v map[string]*int64) *AccountSettings {
8021	s.UnmeteredRemoteAccessDevices = v
8022	return s
8023}
8024
8025// An invalid argument was specified.
8026type ArgumentException struct {
8027	_            struct{}                  `type:"structure"`
8028	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8029
8030	// Any additional information about the exception.
8031	Message_ *string `locationName:"message" type:"string"`
8032}
8033
8034// String returns the string representation.
8035//
8036// API parameter values that are decorated as "sensitive" in the API will not
8037// be included in the string output. The member name will be present, but the
8038// value will be replaced with "sensitive".
8039func (s ArgumentException) String() string {
8040	return awsutil.Prettify(s)
8041}
8042
8043// GoString returns the string representation.
8044//
8045// API parameter values that are decorated as "sensitive" in the API will not
8046// be included in the string output. The member name will be present, but the
8047// value will be replaced with "sensitive".
8048func (s ArgumentException) GoString() string {
8049	return s.String()
8050}
8051
8052func newErrorArgumentException(v protocol.ResponseMetadata) error {
8053	return &ArgumentException{
8054		RespMetadata: v,
8055	}
8056}
8057
8058// Code returns the exception type name.
8059func (s *ArgumentException) Code() string {
8060	return "ArgumentException"
8061}
8062
8063// Message returns the exception's message.
8064func (s *ArgumentException) Message() string {
8065	if s.Message_ != nil {
8066		return *s.Message_
8067	}
8068	return ""
8069}
8070
8071// OrigErr always returns nil, satisfies awserr.Error interface.
8072func (s *ArgumentException) OrigErr() error {
8073	return nil
8074}
8075
8076func (s *ArgumentException) Error() string {
8077	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8078}
8079
8080// Status code returns the HTTP status code for the request's response error.
8081func (s *ArgumentException) StatusCode() int {
8082	return s.RespMetadata.StatusCode
8083}
8084
8085// RequestID returns the service's response RequestID for request.
8086func (s *ArgumentException) RequestID() string {
8087	return s.RespMetadata.RequestID
8088}
8089
8090// Represents the output of a test. Examples of artifacts include logs and screenshots.
8091type Artifact struct {
8092	_ struct{} `type:"structure"`
8093
8094	// The artifact's ARN.
8095	Arn *string `locationName:"arn" min:"32" type:"string"`
8096
8097	// The artifact's file extension.
8098	Extension *string `locationName:"extension" type:"string"`
8099
8100	// The artifact's name.
8101	Name *string `locationName:"name" type:"string"`
8102
8103	// The artifact's type.
8104	//
8105	// Allowed values include the following:
8106	//
8107	//    * UNKNOWN
8108	//
8109	//    * SCREENSHOT
8110	//
8111	//    * DEVICE_LOG
8112	//
8113	//    * MESSAGE_LOG
8114	//
8115	//    * VIDEO_LOG
8116	//
8117	//    * RESULT_LOG
8118	//
8119	//    * SERVICE_LOG
8120	//
8121	//    * WEBKIT_LOG
8122	//
8123	//    * INSTRUMENTATION_OUTPUT
8124	//
8125	//    * EXERCISER_MONKEY_OUTPUT: the artifact (log) generated by an Android
8126	//    fuzz test.
8127	//
8128	//    * CALABASH_JSON_OUTPUT
8129	//
8130	//    * CALABASH_PRETTY_OUTPUT
8131	//
8132	//    * CALABASH_STANDARD_OUTPUT
8133	//
8134	//    * CALABASH_JAVA_XML_OUTPUT
8135	//
8136	//    * AUTOMATION_OUTPUT
8137	//
8138	//    * APPIUM_SERVER_OUTPUT
8139	//
8140	//    * APPIUM_JAVA_OUTPUT
8141	//
8142	//    * APPIUM_JAVA_XML_OUTPUT
8143	//
8144	//    * APPIUM_PYTHON_OUTPUT
8145	//
8146	//    * APPIUM_PYTHON_XML_OUTPUT
8147	//
8148	//    * EXPLORER_EVENT_LOG
8149	//
8150	//    * EXPLORER_SUMMARY_LOG
8151	//
8152	//    * APPLICATION_CRASH_REPORT
8153	//
8154	//    * XCTEST_LOG
8155	//
8156	//    * VIDEO
8157	//
8158	//    * CUSTOMER_ARTIFACT
8159	//
8160	//    * CUSTOMER_ARTIFACT_LOG
8161	//
8162	//    * TESTSPEC_OUTPUT
8163	Type *string `locationName:"type" type:"string" enum:"ArtifactType"`
8164
8165	// The presigned Amazon S3 URL that can be used with a GET request to download
8166	// the artifact's file.
8167	Url *string `locationName:"url" type:"string"`
8168}
8169
8170// String returns the string representation.
8171//
8172// API parameter values that are decorated as "sensitive" in the API will not
8173// be included in the string output. The member name will be present, but the
8174// value will be replaced with "sensitive".
8175func (s Artifact) String() string {
8176	return awsutil.Prettify(s)
8177}
8178
8179// GoString returns the string representation.
8180//
8181// API parameter values that are decorated as "sensitive" in the API will not
8182// be included in the string output. The member name will be present, but the
8183// value will be replaced with "sensitive".
8184func (s Artifact) GoString() string {
8185	return s.String()
8186}
8187
8188// SetArn sets the Arn field's value.
8189func (s *Artifact) SetArn(v string) *Artifact {
8190	s.Arn = &v
8191	return s
8192}
8193
8194// SetExtension sets the Extension field's value.
8195func (s *Artifact) SetExtension(v string) *Artifact {
8196	s.Extension = &v
8197	return s
8198}
8199
8200// SetName sets the Name field's value.
8201func (s *Artifact) SetName(v string) *Artifact {
8202	s.Name = &v
8203	return s
8204}
8205
8206// SetType sets the Type field's value.
8207func (s *Artifact) SetType(v string) *Artifact {
8208	s.Type = &v
8209	return s
8210}
8211
8212// SetUrl sets the Url field's value.
8213func (s *Artifact) SetUrl(v string) *Artifact {
8214	s.Url = &v
8215	return s
8216}
8217
8218// Represents the amount of CPU that an app is using on a physical device. Does
8219// not represent system-wide CPU usage.
8220type CPU struct {
8221	_ struct{} `type:"structure"`
8222
8223	// The CPU's architecture (for example, x86 or ARM).
8224	Architecture *string `locationName:"architecture" type:"string"`
8225
8226	// The clock speed of the device's CPU, expressed in hertz (Hz). For example,
8227	// a 1.2 GHz CPU is expressed as 1200000000.
8228	Clock *float64 `locationName:"clock" type:"double"`
8229
8230	// The CPU's frequency.
8231	Frequency *string `locationName:"frequency" type:"string"`
8232}
8233
8234// String returns the string representation.
8235//
8236// API parameter values that are decorated as "sensitive" in the API will not
8237// be included in the string output. The member name will be present, but the
8238// value will be replaced with "sensitive".
8239func (s CPU) String() string {
8240	return awsutil.Prettify(s)
8241}
8242
8243// GoString returns the string representation.
8244//
8245// API parameter values that are decorated as "sensitive" in the API will not
8246// be included in the string output. The member name will be present, but the
8247// value will be replaced with "sensitive".
8248func (s CPU) GoString() string {
8249	return s.String()
8250}
8251
8252// SetArchitecture sets the Architecture field's value.
8253func (s *CPU) SetArchitecture(v string) *CPU {
8254	s.Architecture = &v
8255	return s
8256}
8257
8258// SetClock sets the Clock field's value.
8259func (s *CPU) SetClock(v float64) *CPU {
8260	s.Clock = &v
8261	return s
8262}
8263
8264// SetFrequency sets the Frequency field's value.
8265func (s *CPU) SetFrequency(v string) *CPU {
8266	s.Frequency = &v
8267	return s
8268}
8269
8270// The requested object could not be deleted.
8271type CannotDeleteException struct {
8272	_            struct{}                  `type:"structure"`
8273	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8274
8275	Message_ *string `locationName:"message" type:"string"`
8276}
8277
8278// String returns the string representation.
8279//
8280// API parameter values that are decorated as "sensitive" in the API will not
8281// be included in the string output. The member name will be present, but the
8282// value will be replaced with "sensitive".
8283func (s CannotDeleteException) String() string {
8284	return awsutil.Prettify(s)
8285}
8286
8287// GoString returns the string representation.
8288//
8289// API parameter values that are decorated as "sensitive" in the API will not
8290// be included in the string output. The member name will be present, but the
8291// value will be replaced with "sensitive".
8292func (s CannotDeleteException) GoString() string {
8293	return s.String()
8294}
8295
8296func newErrorCannotDeleteException(v protocol.ResponseMetadata) error {
8297	return &CannotDeleteException{
8298		RespMetadata: v,
8299	}
8300}
8301
8302// Code returns the exception type name.
8303func (s *CannotDeleteException) Code() string {
8304	return "CannotDeleteException"
8305}
8306
8307// Message returns the exception's message.
8308func (s *CannotDeleteException) Message() string {
8309	if s.Message_ != nil {
8310		return *s.Message_
8311	}
8312	return ""
8313}
8314
8315// OrigErr always returns nil, satisfies awserr.Error interface.
8316func (s *CannotDeleteException) OrigErr() error {
8317	return nil
8318}
8319
8320func (s *CannotDeleteException) Error() string {
8321	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8322}
8323
8324// Status code returns the HTTP status code for the request's response error.
8325func (s *CannotDeleteException) StatusCode() int {
8326	return s.RespMetadata.StatusCode
8327}
8328
8329// RequestID returns the service's response RequestID for request.
8330func (s *CannotDeleteException) RequestID() string {
8331	return s.RespMetadata.RequestID
8332}
8333
8334// Represents entity counters.
8335type Counters struct {
8336	_ struct{} `type:"structure"`
8337
8338	// The number of errored entities.
8339	Errored *int64 `locationName:"errored" type:"integer"`
8340
8341	// The number of failed entities.
8342	Failed *int64 `locationName:"failed" type:"integer"`
8343
8344	// The number of passed entities.
8345	Passed *int64 `locationName:"passed" type:"integer"`
8346
8347	// The number of skipped entities.
8348	Skipped *int64 `locationName:"skipped" type:"integer"`
8349
8350	// The number of stopped entities.
8351	Stopped *int64 `locationName:"stopped" type:"integer"`
8352
8353	// The total number of entities.
8354	Total *int64 `locationName:"total" type:"integer"`
8355
8356	// The number of warned entities.
8357	Warned *int64 `locationName:"warned" type:"integer"`
8358}
8359
8360// String returns the string representation.
8361//
8362// API parameter values that are decorated as "sensitive" in the API will not
8363// be included in the string output. The member name will be present, but the
8364// value will be replaced with "sensitive".
8365func (s Counters) String() string {
8366	return awsutil.Prettify(s)
8367}
8368
8369// GoString returns the string representation.
8370//
8371// API parameter values that are decorated as "sensitive" in the API will not
8372// be included in the string output. The member name will be present, but the
8373// value will be replaced with "sensitive".
8374func (s Counters) GoString() string {
8375	return s.String()
8376}
8377
8378// SetErrored sets the Errored field's value.
8379func (s *Counters) SetErrored(v int64) *Counters {
8380	s.Errored = &v
8381	return s
8382}
8383
8384// SetFailed sets the Failed field's value.
8385func (s *Counters) SetFailed(v int64) *Counters {
8386	s.Failed = &v
8387	return s
8388}
8389
8390// SetPassed sets the Passed field's value.
8391func (s *Counters) SetPassed(v int64) *Counters {
8392	s.Passed = &v
8393	return s
8394}
8395
8396// SetSkipped sets the Skipped field's value.
8397func (s *Counters) SetSkipped(v int64) *Counters {
8398	s.Skipped = &v
8399	return s
8400}
8401
8402// SetStopped sets the Stopped field's value.
8403func (s *Counters) SetStopped(v int64) *Counters {
8404	s.Stopped = &v
8405	return s
8406}
8407
8408// SetTotal sets the Total field's value.
8409func (s *Counters) SetTotal(v int64) *Counters {
8410	s.Total = &v
8411	return s
8412}
8413
8414// SetWarned sets the Warned field's value.
8415func (s *Counters) SetWarned(v int64) *Counters {
8416	s.Warned = &v
8417	return s
8418}
8419
8420// Represents a request to the create device pool operation.
8421type CreateDevicePoolInput struct {
8422	_ struct{} `type:"structure"`
8423
8424	// The device pool's description.
8425	Description *string `locationName:"description" type:"string"`
8426
8427	// The number of devices that Device Farm can add to your device pool. Device
8428	// Farm adds devices that are available and meet the criteria that you assign
8429	// for the rules parameter. Depending on how many devices meet these constraints,
8430	// your device pool might contain fewer devices than the value for this parameter.
8431	//
8432	// By specifying the maximum number of devices, you can control the costs that
8433	// you incur by running tests.
8434	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
8435
8436	// The device pool's name.
8437	//
8438	// Name is a required field
8439	Name *string `locationName:"name" type:"string" required:"true"`
8440
8441	// The ARN of the project for the device pool.
8442	//
8443	// ProjectArn is a required field
8444	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
8445
8446	// The device pool's rules.
8447	//
8448	// Rules is a required field
8449	Rules []*Rule `locationName:"rules" type:"list" required:"true"`
8450}
8451
8452// String returns the string representation.
8453//
8454// API parameter values that are decorated as "sensitive" in the API will not
8455// be included in the string output. The member name will be present, but the
8456// value will be replaced with "sensitive".
8457func (s CreateDevicePoolInput) String() string {
8458	return awsutil.Prettify(s)
8459}
8460
8461// GoString returns the string representation.
8462//
8463// API parameter values that are decorated as "sensitive" in the API will not
8464// be included in the string output. The member name will be present, but the
8465// value will be replaced with "sensitive".
8466func (s CreateDevicePoolInput) GoString() string {
8467	return s.String()
8468}
8469
8470// Validate inspects the fields of the type to determine if they are valid.
8471func (s *CreateDevicePoolInput) Validate() error {
8472	invalidParams := request.ErrInvalidParams{Context: "CreateDevicePoolInput"}
8473	if s.Name == nil {
8474		invalidParams.Add(request.NewErrParamRequired("Name"))
8475	}
8476	if s.ProjectArn == nil {
8477		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
8478	}
8479	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
8480		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
8481	}
8482	if s.Rules == nil {
8483		invalidParams.Add(request.NewErrParamRequired("Rules"))
8484	}
8485
8486	if invalidParams.Len() > 0 {
8487		return invalidParams
8488	}
8489	return nil
8490}
8491
8492// SetDescription sets the Description field's value.
8493func (s *CreateDevicePoolInput) SetDescription(v string) *CreateDevicePoolInput {
8494	s.Description = &v
8495	return s
8496}
8497
8498// SetMaxDevices sets the MaxDevices field's value.
8499func (s *CreateDevicePoolInput) SetMaxDevices(v int64) *CreateDevicePoolInput {
8500	s.MaxDevices = &v
8501	return s
8502}
8503
8504// SetName sets the Name field's value.
8505func (s *CreateDevicePoolInput) SetName(v string) *CreateDevicePoolInput {
8506	s.Name = &v
8507	return s
8508}
8509
8510// SetProjectArn sets the ProjectArn field's value.
8511func (s *CreateDevicePoolInput) SetProjectArn(v string) *CreateDevicePoolInput {
8512	s.ProjectArn = &v
8513	return s
8514}
8515
8516// SetRules sets the Rules field's value.
8517func (s *CreateDevicePoolInput) SetRules(v []*Rule) *CreateDevicePoolInput {
8518	s.Rules = v
8519	return s
8520}
8521
8522// Represents the result of a create device pool request.
8523type CreateDevicePoolOutput struct {
8524	_ struct{} `type:"structure"`
8525
8526	// The newly created device pool.
8527	DevicePool *DevicePool `locationName:"devicePool" type:"structure"`
8528}
8529
8530// String returns the string representation.
8531//
8532// API parameter values that are decorated as "sensitive" in the API will not
8533// be included in the string output. The member name will be present, but the
8534// value will be replaced with "sensitive".
8535func (s CreateDevicePoolOutput) String() string {
8536	return awsutil.Prettify(s)
8537}
8538
8539// GoString returns the string representation.
8540//
8541// API parameter values that are decorated as "sensitive" in the API will not
8542// be included in the string output. The member name will be present, but the
8543// value will be replaced with "sensitive".
8544func (s CreateDevicePoolOutput) GoString() string {
8545	return s.String()
8546}
8547
8548// SetDevicePool sets the DevicePool field's value.
8549func (s *CreateDevicePoolOutput) SetDevicePool(v *DevicePool) *CreateDevicePoolOutput {
8550	s.DevicePool = v
8551	return s
8552}
8553
8554type CreateInstanceProfileInput struct {
8555	_ struct{} `type:"structure"`
8556
8557	// The description of your instance profile.
8558	Description *string `locationName:"description" type:"string"`
8559
8560	// An array of strings that specifies the list of app packages that should not
8561	// be cleaned up from the device after a test run.
8562	//
8563	// The list of packages is considered only if you set packageCleanup to true.
8564	ExcludeAppPackagesFromCleanup []*string `locationName:"excludeAppPackagesFromCleanup" type:"list"`
8565
8566	// The name of your instance profile.
8567	//
8568	// Name is a required field
8569	Name *string `locationName:"name" type:"string" required:"true"`
8570
8571	// When set to true, Device Farm removes app packages after a test run. The
8572	// default value is false for private devices.
8573	PackageCleanup *bool `locationName:"packageCleanup" type:"boolean"`
8574
8575	// When set to true, Device Farm reboots the instance after a test run. The
8576	// default value is true.
8577	RebootAfterUse *bool `locationName:"rebootAfterUse" type:"boolean"`
8578}
8579
8580// String returns the string representation.
8581//
8582// API parameter values that are decorated as "sensitive" in the API will not
8583// be included in the string output. The member name will be present, but the
8584// value will be replaced with "sensitive".
8585func (s CreateInstanceProfileInput) String() string {
8586	return awsutil.Prettify(s)
8587}
8588
8589// GoString returns the string representation.
8590//
8591// API parameter values that are decorated as "sensitive" in the API will not
8592// be included in the string output. The member name will be present, but the
8593// value will be replaced with "sensitive".
8594func (s CreateInstanceProfileInput) GoString() string {
8595	return s.String()
8596}
8597
8598// Validate inspects the fields of the type to determine if they are valid.
8599func (s *CreateInstanceProfileInput) Validate() error {
8600	invalidParams := request.ErrInvalidParams{Context: "CreateInstanceProfileInput"}
8601	if s.Name == nil {
8602		invalidParams.Add(request.NewErrParamRequired("Name"))
8603	}
8604
8605	if invalidParams.Len() > 0 {
8606		return invalidParams
8607	}
8608	return nil
8609}
8610
8611// SetDescription sets the Description field's value.
8612func (s *CreateInstanceProfileInput) SetDescription(v string) *CreateInstanceProfileInput {
8613	s.Description = &v
8614	return s
8615}
8616
8617// SetExcludeAppPackagesFromCleanup sets the ExcludeAppPackagesFromCleanup field's value.
8618func (s *CreateInstanceProfileInput) SetExcludeAppPackagesFromCleanup(v []*string) *CreateInstanceProfileInput {
8619	s.ExcludeAppPackagesFromCleanup = v
8620	return s
8621}
8622
8623// SetName sets the Name field's value.
8624func (s *CreateInstanceProfileInput) SetName(v string) *CreateInstanceProfileInput {
8625	s.Name = &v
8626	return s
8627}
8628
8629// SetPackageCleanup sets the PackageCleanup field's value.
8630func (s *CreateInstanceProfileInput) SetPackageCleanup(v bool) *CreateInstanceProfileInput {
8631	s.PackageCleanup = &v
8632	return s
8633}
8634
8635// SetRebootAfterUse sets the RebootAfterUse field's value.
8636func (s *CreateInstanceProfileInput) SetRebootAfterUse(v bool) *CreateInstanceProfileInput {
8637	s.RebootAfterUse = &v
8638	return s
8639}
8640
8641type CreateInstanceProfileOutput struct {
8642	_ struct{} `type:"structure"`
8643
8644	// An object that contains information about your instance profile.
8645	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
8646}
8647
8648// String returns the string representation.
8649//
8650// API parameter values that are decorated as "sensitive" in the API will not
8651// be included in the string output. The member name will be present, but the
8652// value will be replaced with "sensitive".
8653func (s CreateInstanceProfileOutput) String() string {
8654	return awsutil.Prettify(s)
8655}
8656
8657// GoString returns the string representation.
8658//
8659// API parameter values that are decorated as "sensitive" in the API will not
8660// be included in the string output. The member name will be present, but the
8661// value will be replaced with "sensitive".
8662func (s CreateInstanceProfileOutput) GoString() string {
8663	return s.String()
8664}
8665
8666// SetInstanceProfile sets the InstanceProfile field's value.
8667func (s *CreateInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *CreateInstanceProfileOutput {
8668	s.InstanceProfile = v
8669	return s
8670}
8671
8672type CreateNetworkProfileInput struct {
8673	_ struct{} `type:"structure"`
8674
8675	// The description of the network profile.
8676	Description *string `locationName:"description" type:"string"`
8677
8678	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
8679	DownlinkBandwidthBits *int64 `locationName:"downlinkBandwidthBits" type:"long"`
8680
8681	// Delay time for all packets to destination in milliseconds as an integer from
8682	// 0 to 2000.
8683	DownlinkDelayMs *int64 `locationName:"downlinkDelayMs" type:"long"`
8684
8685	// Time variation in the delay of received packets in milliseconds as an integer
8686	// from 0 to 2000.
8687	DownlinkJitterMs *int64 `locationName:"downlinkJitterMs" type:"long"`
8688
8689	// Proportion of received packets that fail to arrive from 0 to 100 percent.
8690	DownlinkLossPercent *int64 `locationName:"downlinkLossPercent" type:"integer"`
8691
8692	// The name for the new network profile.
8693	//
8694	// Name is a required field
8695	Name *string `locationName:"name" type:"string" required:"true"`
8696
8697	// The Amazon Resource Name (ARN) of the project for which you want to create
8698	// a network profile.
8699	//
8700	// ProjectArn is a required field
8701	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
8702
8703	// The type of network profile to create. Valid values are listed here.
8704	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
8705
8706	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
8707	UplinkBandwidthBits *int64 `locationName:"uplinkBandwidthBits" type:"long"`
8708
8709	// Delay time for all packets to destination in milliseconds as an integer from
8710	// 0 to 2000.
8711	UplinkDelayMs *int64 `locationName:"uplinkDelayMs" type:"long"`
8712
8713	// Time variation in the delay of received packets in milliseconds as an integer
8714	// from 0 to 2000.
8715	UplinkJitterMs *int64 `locationName:"uplinkJitterMs" type:"long"`
8716
8717	// Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
8718	UplinkLossPercent *int64 `locationName:"uplinkLossPercent" type:"integer"`
8719}
8720
8721// String returns the string representation.
8722//
8723// API parameter values that are decorated as "sensitive" in the API will not
8724// be included in the string output. The member name will be present, but the
8725// value will be replaced with "sensitive".
8726func (s CreateNetworkProfileInput) String() string {
8727	return awsutil.Prettify(s)
8728}
8729
8730// GoString returns the string representation.
8731//
8732// API parameter values that are decorated as "sensitive" in the API will not
8733// be included in the string output. The member name will be present, but the
8734// value will be replaced with "sensitive".
8735func (s CreateNetworkProfileInput) GoString() string {
8736	return s.String()
8737}
8738
8739// Validate inspects the fields of the type to determine if they are valid.
8740func (s *CreateNetworkProfileInput) Validate() error {
8741	invalidParams := request.ErrInvalidParams{Context: "CreateNetworkProfileInput"}
8742	if s.Name == nil {
8743		invalidParams.Add(request.NewErrParamRequired("Name"))
8744	}
8745	if s.ProjectArn == nil {
8746		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
8747	}
8748	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
8749		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
8750	}
8751
8752	if invalidParams.Len() > 0 {
8753		return invalidParams
8754	}
8755	return nil
8756}
8757
8758// SetDescription sets the Description field's value.
8759func (s *CreateNetworkProfileInput) SetDescription(v string) *CreateNetworkProfileInput {
8760	s.Description = &v
8761	return s
8762}
8763
8764// SetDownlinkBandwidthBits sets the DownlinkBandwidthBits field's value.
8765func (s *CreateNetworkProfileInput) SetDownlinkBandwidthBits(v int64) *CreateNetworkProfileInput {
8766	s.DownlinkBandwidthBits = &v
8767	return s
8768}
8769
8770// SetDownlinkDelayMs sets the DownlinkDelayMs field's value.
8771func (s *CreateNetworkProfileInput) SetDownlinkDelayMs(v int64) *CreateNetworkProfileInput {
8772	s.DownlinkDelayMs = &v
8773	return s
8774}
8775
8776// SetDownlinkJitterMs sets the DownlinkJitterMs field's value.
8777func (s *CreateNetworkProfileInput) SetDownlinkJitterMs(v int64) *CreateNetworkProfileInput {
8778	s.DownlinkJitterMs = &v
8779	return s
8780}
8781
8782// SetDownlinkLossPercent sets the DownlinkLossPercent field's value.
8783func (s *CreateNetworkProfileInput) SetDownlinkLossPercent(v int64) *CreateNetworkProfileInput {
8784	s.DownlinkLossPercent = &v
8785	return s
8786}
8787
8788// SetName sets the Name field's value.
8789func (s *CreateNetworkProfileInput) SetName(v string) *CreateNetworkProfileInput {
8790	s.Name = &v
8791	return s
8792}
8793
8794// SetProjectArn sets the ProjectArn field's value.
8795func (s *CreateNetworkProfileInput) SetProjectArn(v string) *CreateNetworkProfileInput {
8796	s.ProjectArn = &v
8797	return s
8798}
8799
8800// SetType sets the Type field's value.
8801func (s *CreateNetworkProfileInput) SetType(v string) *CreateNetworkProfileInput {
8802	s.Type = &v
8803	return s
8804}
8805
8806// SetUplinkBandwidthBits sets the UplinkBandwidthBits field's value.
8807func (s *CreateNetworkProfileInput) SetUplinkBandwidthBits(v int64) *CreateNetworkProfileInput {
8808	s.UplinkBandwidthBits = &v
8809	return s
8810}
8811
8812// SetUplinkDelayMs sets the UplinkDelayMs field's value.
8813func (s *CreateNetworkProfileInput) SetUplinkDelayMs(v int64) *CreateNetworkProfileInput {
8814	s.UplinkDelayMs = &v
8815	return s
8816}
8817
8818// SetUplinkJitterMs sets the UplinkJitterMs field's value.
8819func (s *CreateNetworkProfileInput) SetUplinkJitterMs(v int64) *CreateNetworkProfileInput {
8820	s.UplinkJitterMs = &v
8821	return s
8822}
8823
8824// SetUplinkLossPercent sets the UplinkLossPercent field's value.
8825func (s *CreateNetworkProfileInput) SetUplinkLossPercent(v int64) *CreateNetworkProfileInput {
8826	s.UplinkLossPercent = &v
8827	return s
8828}
8829
8830type CreateNetworkProfileOutput struct {
8831	_ struct{} `type:"structure"`
8832
8833	// The network profile that is returned by the create network profile request.
8834	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
8835}
8836
8837// String returns the string representation.
8838//
8839// API parameter values that are decorated as "sensitive" in the API will not
8840// be included in the string output. The member name will be present, but the
8841// value will be replaced with "sensitive".
8842func (s CreateNetworkProfileOutput) String() string {
8843	return awsutil.Prettify(s)
8844}
8845
8846// GoString returns the string representation.
8847//
8848// API parameter values that are decorated as "sensitive" in the API will not
8849// be included in the string output. The member name will be present, but the
8850// value will be replaced with "sensitive".
8851func (s CreateNetworkProfileOutput) GoString() string {
8852	return s.String()
8853}
8854
8855// SetNetworkProfile sets the NetworkProfile field's value.
8856func (s *CreateNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *CreateNetworkProfileOutput {
8857	s.NetworkProfile = v
8858	return s
8859}
8860
8861// Represents a request to the create project operation.
8862type CreateProjectInput struct {
8863	_ struct{} `type:"structure"`
8864
8865	// Sets the execution timeout value (in minutes) for a project. All test runs
8866	// in this project use the specified execution timeout value unless overridden
8867	// when scheduling a run.
8868	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
8869
8870	// The project's name.
8871	//
8872	// Name is a required field
8873	Name *string `locationName:"name" type:"string" required:"true"`
8874}
8875
8876// String returns the string representation.
8877//
8878// API parameter values that are decorated as "sensitive" in the API will not
8879// be included in the string output. The member name will be present, but the
8880// value will be replaced with "sensitive".
8881func (s CreateProjectInput) String() string {
8882	return awsutil.Prettify(s)
8883}
8884
8885// GoString returns the string representation.
8886//
8887// API parameter values that are decorated as "sensitive" in the API will not
8888// be included in the string output. The member name will be present, but the
8889// value will be replaced with "sensitive".
8890func (s CreateProjectInput) GoString() string {
8891	return s.String()
8892}
8893
8894// Validate inspects the fields of the type to determine if they are valid.
8895func (s *CreateProjectInput) Validate() error {
8896	invalidParams := request.ErrInvalidParams{Context: "CreateProjectInput"}
8897	if s.Name == nil {
8898		invalidParams.Add(request.NewErrParamRequired("Name"))
8899	}
8900
8901	if invalidParams.Len() > 0 {
8902		return invalidParams
8903	}
8904	return nil
8905}
8906
8907// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
8908func (s *CreateProjectInput) SetDefaultJobTimeoutMinutes(v int64) *CreateProjectInput {
8909	s.DefaultJobTimeoutMinutes = &v
8910	return s
8911}
8912
8913// SetName sets the Name field's value.
8914func (s *CreateProjectInput) SetName(v string) *CreateProjectInput {
8915	s.Name = &v
8916	return s
8917}
8918
8919// Represents the result of a create project request.
8920type CreateProjectOutput struct {
8921	_ struct{} `type:"structure"`
8922
8923	// The newly created project.
8924	Project *Project `locationName:"project" type:"structure"`
8925}
8926
8927// String returns the string representation.
8928//
8929// API parameter values that are decorated as "sensitive" in the API will not
8930// be included in the string output. The member name will be present, but the
8931// value will be replaced with "sensitive".
8932func (s CreateProjectOutput) String() string {
8933	return awsutil.Prettify(s)
8934}
8935
8936// GoString returns the string representation.
8937//
8938// API parameter values that are decorated as "sensitive" in the API will not
8939// be included in the string output. The member name will be present, but the
8940// value will be replaced with "sensitive".
8941func (s CreateProjectOutput) GoString() string {
8942	return s.String()
8943}
8944
8945// SetProject sets the Project field's value.
8946func (s *CreateProjectOutput) SetProject(v *Project) *CreateProjectOutput {
8947	s.Project = v
8948	return s
8949}
8950
8951// Configuration settings for a remote access session, including billing method.
8952type CreateRemoteAccessSessionConfiguration struct {
8953	_ struct{} `type:"structure"`
8954
8955	// The billing method for the remote access session.
8956	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
8957
8958	// An array of ARNs included in the VPC endpoint configuration.
8959	VpceConfigurationArns []*string `locationName:"vpceConfigurationArns" type:"list"`
8960}
8961
8962// String returns the string representation.
8963//
8964// API parameter values that are decorated as "sensitive" in the API will not
8965// be included in the string output. The member name will be present, but the
8966// value will be replaced with "sensitive".
8967func (s CreateRemoteAccessSessionConfiguration) String() string {
8968	return awsutil.Prettify(s)
8969}
8970
8971// GoString returns the string representation.
8972//
8973// API parameter values that are decorated as "sensitive" in the API will not
8974// be included in the string output. The member name will be present, but the
8975// value will be replaced with "sensitive".
8976func (s CreateRemoteAccessSessionConfiguration) GoString() string {
8977	return s.String()
8978}
8979
8980// SetBillingMethod sets the BillingMethod field's value.
8981func (s *CreateRemoteAccessSessionConfiguration) SetBillingMethod(v string) *CreateRemoteAccessSessionConfiguration {
8982	s.BillingMethod = &v
8983	return s
8984}
8985
8986// SetVpceConfigurationArns sets the VpceConfigurationArns field's value.
8987func (s *CreateRemoteAccessSessionConfiguration) SetVpceConfigurationArns(v []*string) *CreateRemoteAccessSessionConfiguration {
8988	s.VpceConfigurationArns = v
8989	return s
8990}
8991
8992// Creates and submits a request to start a remote access session.
8993type CreateRemoteAccessSessionInput struct {
8994	_ struct{} `type:"structure"`
8995
8996	// Unique identifier for the client. If you want access to multiple devices
8997	// on the same client, you should pass the same clientId value in each call
8998	// to CreateRemoteAccessSession. This identifier is required only if remoteDebugEnabled
8999	// is set to true.
9000	//
9001	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
9002	ClientId *string `locationName:"clientId" type:"string"`
9003
9004	// The configuration information for the remote access session request.
9005	Configuration *CreateRemoteAccessSessionConfiguration `locationName:"configuration" type:"structure"`
9006
9007	// The ARN of the device for which you want to create a remote access session.
9008	//
9009	// DeviceArn is a required field
9010	DeviceArn *string `locationName:"deviceArn" min:"32" type:"string" required:"true"`
9011
9012	// The Amazon Resource Name (ARN) of the device instance for which you want
9013	// to create a remote access session.
9014	InstanceArn *string `locationName:"instanceArn" min:"32" type:"string"`
9015
9016	// The interaction mode of the remote access session. Valid values are:
9017	//
9018	//    * INTERACTIVE: You can interact with the iOS device by viewing, touching,
9019	//    and rotating the screen. You cannot run XCUITest framework-based tests
9020	//    in this mode.
9021	//
9022	//    * NO_VIDEO: You are connected to the device, but cannot interact with
9023	//    it or view the screen. This mode has the fastest test execution speed.
9024	//    You can run XCUITest framework-based tests in this mode.
9025	//
9026	//    * VIDEO_ONLY: You can view the screen, but cannot touch or rotate it.
9027	//    You can run XCUITest framework-based tests and watch the screen in this
9028	//    mode.
9029	InteractionMode *string `locationName:"interactionMode" type:"string" enum:"InteractionMode"`
9030
9031	// The name of the remote access session to create.
9032	Name *string `locationName:"name" type:"string"`
9033
9034	// The Amazon Resource Name (ARN) of the project for which you want to create
9035	// a remote access session.
9036	//
9037	// ProjectArn is a required field
9038	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
9039
9040	// Set to true if you want to access devices remotely for debugging in your
9041	// remote access session.
9042	//
9043	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
9044	RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"`
9045
9046	// The Amazon Resource Name (ARN) for the app to be recorded in the remote access
9047	// session.
9048	RemoteRecordAppArn *string `locationName:"remoteRecordAppArn" min:"32" type:"string"`
9049
9050	// Set to true to enable remote recording for the remote access session.
9051	RemoteRecordEnabled *bool `locationName:"remoteRecordEnabled" type:"boolean"`
9052
9053	// When set to true, for private devices, Device Farm does not sign your app
9054	// again. For public devices, Device Farm always signs your apps again.
9055	//
9056	// For more information on how Device Farm modifies your uploads during tests,
9057	// see Do you modify my app? (https://aws.amazon.com/device-farm/faq/)
9058	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
9059
9060	// Ignored. The public key of the ssh key pair you want to use for connecting
9061	// to remote devices in your remote debugging session. This key is required
9062	// only if remoteDebugEnabled is set to true.
9063	//
9064	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
9065	SshPublicKey *string `locationName:"sshPublicKey" type:"string"`
9066}
9067
9068// String returns the string representation.
9069//
9070// API parameter values that are decorated as "sensitive" in the API will not
9071// be included in the string output. The member name will be present, but the
9072// value will be replaced with "sensitive".
9073func (s CreateRemoteAccessSessionInput) String() string {
9074	return awsutil.Prettify(s)
9075}
9076
9077// GoString returns the string representation.
9078//
9079// API parameter values that are decorated as "sensitive" in the API will not
9080// be included in the string output. The member name will be present, but the
9081// value will be replaced with "sensitive".
9082func (s CreateRemoteAccessSessionInput) GoString() string {
9083	return s.String()
9084}
9085
9086// Validate inspects the fields of the type to determine if they are valid.
9087func (s *CreateRemoteAccessSessionInput) Validate() error {
9088	invalidParams := request.ErrInvalidParams{Context: "CreateRemoteAccessSessionInput"}
9089	if s.DeviceArn == nil {
9090		invalidParams.Add(request.NewErrParamRequired("DeviceArn"))
9091	}
9092	if s.DeviceArn != nil && len(*s.DeviceArn) < 32 {
9093		invalidParams.Add(request.NewErrParamMinLen("DeviceArn", 32))
9094	}
9095	if s.InstanceArn != nil && len(*s.InstanceArn) < 32 {
9096		invalidParams.Add(request.NewErrParamMinLen("InstanceArn", 32))
9097	}
9098	if s.ProjectArn == nil {
9099		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
9100	}
9101	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
9102		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
9103	}
9104	if s.RemoteRecordAppArn != nil && len(*s.RemoteRecordAppArn) < 32 {
9105		invalidParams.Add(request.NewErrParamMinLen("RemoteRecordAppArn", 32))
9106	}
9107
9108	if invalidParams.Len() > 0 {
9109		return invalidParams
9110	}
9111	return nil
9112}
9113
9114// SetClientId sets the ClientId field's value.
9115func (s *CreateRemoteAccessSessionInput) SetClientId(v string) *CreateRemoteAccessSessionInput {
9116	s.ClientId = &v
9117	return s
9118}
9119
9120// SetConfiguration sets the Configuration field's value.
9121func (s *CreateRemoteAccessSessionInput) SetConfiguration(v *CreateRemoteAccessSessionConfiguration) *CreateRemoteAccessSessionInput {
9122	s.Configuration = v
9123	return s
9124}
9125
9126// SetDeviceArn sets the DeviceArn field's value.
9127func (s *CreateRemoteAccessSessionInput) SetDeviceArn(v string) *CreateRemoteAccessSessionInput {
9128	s.DeviceArn = &v
9129	return s
9130}
9131
9132// SetInstanceArn sets the InstanceArn field's value.
9133func (s *CreateRemoteAccessSessionInput) SetInstanceArn(v string) *CreateRemoteAccessSessionInput {
9134	s.InstanceArn = &v
9135	return s
9136}
9137
9138// SetInteractionMode sets the InteractionMode field's value.
9139func (s *CreateRemoteAccessSessionInput) SetInteractionMode(v string) *CreateRemoteAccessSessionInput {
9140	s.InteractionMode = &v
9141	return s
9142}
9143
9144// SetName sets the Name field's value.
9145func (s *CreateRemoteAccessSessionInput) SetName(v string) *CreateRemoteAccessSessionInput {
9146	s.Name = &v
9147	return s
9148}
9149
9150// SetProjectArn sets the ProjectArn field's value.
9151func (s *CreateRemoteAccessSessionInput) SetProjectArn(v string) *CreateRemoteAccessSessionInput {
9152	s.ProjectArn = &v
9153	return s
9154}
9155
9156// SetRemoteDebugEnabled sets the RemoteDebugEnabled field's value.
9157func (s *CreateRemoteAccessSessionInput) SetRemoteDebugEnabled(v bool) *CreateRemoteAccessSessionInput {
9158	s.RemoteDebugEnabled = &v
9159	return s
9160}
9161
9162// SetRemoteRecordAppArn sets the RemoteRecordAppArn field's value.
9163func (s *CreateRemoteAccessSessionInput) SetRemoteRecordAppArn(v string) *CreateRemoteAccessSessionInput {
9164	s.RemoteRecordAppArn = &v
9165	return s
9166}
9167
9168// SetRemoteRecordEnabled sets the RemoteRecordEnabled field's value.
9169func (s *CreateRemoteAccessSessionInput) SetRemoteRecordEnabled(v bool) *CreateRemoteAccessSessionInput {
9170	s.RemoteRecordEnabled = &v
9171	return s
9172}
9173
9174// SetSkipAppResign sets the SkipAppResign field's value.
9175func (s *CreateRemoteAccessSessionInput) SetSkipAppResign(v bool) *CreateRemoteAccessSessionInput {
9176	s.SkipAppResign = &v
9177	return s
9178}
9179
9180// SetSshPublicKey sets the SshPublicKey field's value.
9181func (s *CreateRemoteAccessSessionInput) SetSshPublicKey(v string) *CreateRemoteAccessSessionInput {
9182	s.SshPublicKey = &v
9183	return s
9184}
9185
9186// Represents the server response from a request to create a remote access session.
9187type CreateRemoteAccessSessionOutput struct {
9188	_ struct{} `type:"structure"`
9189
9190	// A container that describes the remote access session when the request to
9191	// create a remote access session is sent.
9192	RemoteAccessSession *RemoteAccessSession `locationName:"remoteAccessSession" type:"structure"`
9193}
9194
9195// String returns the string representation.
9196//
9197// API parameter values that are decorated as "sensitive" in the API will not
9198// be included in the string output. The member name will be present, but the
9199// value will be replaced with "sensitive".
9200func (s CreateRemoteAccessSessionOutput) String() string {
9201	return awsutil.Prettify(s)
9202}
9203
9204// GoString returns the string representation.
9205//
9206// API parameter values that are decorated as "sensitive" in the API will not
9207// be included in the string output. The member name will be present, but the
9208// value will be replaced with "sensitive".
9209func (s CreateRemoteAccessSessionOutput) GoString() string {
9210	return s.String()
9211}
9212
9213// SetRemoteAccessSession sets the RemoteAccessSession field's value.
9214func (s *CreateRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSession) *CreateRemoteAccessSessionOutput {
9215	s.RemoteAccessSession = v
9216	return s
9217}
9218
9219type CreateTestGridProjectInput struct {
9220	_ struct{} `type:"structure"`
9221
9222	// Human-readable description of the project.
9223	Description *string `locationName:"description" min:"1" type:"string"`
9224
9225	// Human-readable name of the Selenium testing project.
9226	//
9227	// Name is a required field
9228	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
9229
9230	// The VPC security groups and subnets that are attached to a project.
9231	VpcConfig *TestGridVpcConfig `locationName:"vpcConfig" type:"structure"`
9232}
9233
9234// String returns the string representation.
9235//
9236// API parameter values that are decorated as "sensitive" in the API will not
9237// be included in the string output. The member name will be present, but the
9238// value will be replaced with "sensitive".
9239func (s CreateTestGridProjectInput) String() string {
9240	return awsutil.Prettify(s)
9241}
9242
9243// GoString returns the string representation.
9244//
9245// API parameter values that are decorated as "sensitive" in the API will not
9246// be included in the string output. The member name will be present, but the
9247// value will be replaced with "sensitive".
9248func (s CreateTestGridProjectInput) GoString() string {
9249	return s.String()
9250}
9251
9252// Validate inspects the fields of the type to determine if they are valid.
9253func (s *CreateTestGridProjectInput) Validate() error {
9254	invalidParams := request.ErrInvalidParams{Context: "CreateTestGridProjectInput"}
9255	if s.Description != nil && len(*s.Description) < 1 {
9256		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
9257	}
9258	if s.Name == nil {
9259		invalidParams.Add(request.NewErrParamRequired("Name"))
9260	}
9261	if s.Name != nil && len(*s.Name) < 1 {
9262		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9263	}
9264	if s.VpcConfig != nil {
9265		if err := s.VpcConfig.Validate(); err != nil {
9266			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
9267		}
9268	}
9269
9270	if invalidParams.Len() > 0 {
9271		return invalidParams
9272	}
9273	return nil
9274}
9275
9276// SetDescription sets the Description field's value.
9277func (s *CreateTestGridProjectInput) SetDescription(v string) *CreateTestGridProjectInput {
9278	s.Description = &v
9279	return s
9280}
9281
9282// SetName sets the Name field's value.
9283func (s *CreateTestGridProjectInput) SetName(v string) *CreateTestGridProjectInput {
9284	s.Name = &v
9285	return s
9286}
9287
9288// SetVpcConfig sets the VpcConfig field's value.
9289func (s *CreateTestGridProjectInput) SetVpcConfig(v *TestGridVpcConfig) *CreateTestGridProjectInput {
9290	s.VpcConfig = v
9291	return s
9292}
9293
9294type CreateTestGridProjectOutput struct {
9295	_ struct{} `type:"structure"`
9296
9297	// ARN of the Selenium testing project that was created.
9298	TestGridProject *TestGridProject `locationName:"testGridProject" type:"structure"`
9299}
9300
9301// String returns the string representation.
9302//
9303// API parameter values that are decorated as "sensitive" in the API will not
9304// be included in the string output. The member name will be present, but the
9305// value will be replaced with "sensitive".
9306func (s CreateTestGridProjectOutput) String() string {
9307	return awsutil.Prettify(s)
9308}
9309
9310// GoString returns the string representation.
9311//
9312// API parameter values that are decorated as "sensitive" in the API will not
9313// be included in the string output. The member name will be present, but the
9314// value will be replaced with "sensitive".
9315func (s CreateTestGridProjectOutput) GoString() string {
9316	return s.String()
9317}
9318
9319// SetTestGridProject sets the TestGridProject field's value.
9320func (s *CreateTestGridProjectOutput) SetTestGridProject(v *TestGridProject) *CreateTestGridProjectOutput {
9321	s.TestGridProject = v
9322	return s
9323}
9324
9325type CreateTestGridUrlInput struct {
9326	_ struct{} `type:"structure"`
9327
9328	// Lifetime, in seconds, of the URL.
9329	//
9330	// ExpiresInSeconds is a required field
9331	ExpiresInSeconds *int64 `locationName:"expiresInSeconds" min:"60" type:"integer" required:"true"`
9332
9333	// ARN (from CreateTestGridProject or ListTestGridProjects) to associate with
9334	// the short-term URL.
9335	//
9336	// ProjectArn is a required field
9337	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
9338}
9339
9340// String returns the string representation.
9341//
9342// API parameter values that are decorated as "sensitive" in the API will not
9343// be included in the string output. The member name will be present, but the
9344// value will be replaced with "sensitive".
9345func (s CreateTestGridUrlInput) String() string {
9346	return awsutil.Prettify(s)
9347}
9348
9349// GoString returns the string representation.
9350//
9351// API parameter values that are decorated as "sensitive" in the API will not
9352// be included in the string output. The member name will be present, but the
9353// value will be replaced with "sensitive".
9354func (s CreateTestGridUrlInput) GoString() string {
9355	return s.String()
9356}
9357
9358// Validate inspects the fields of the type to determine if they are valid.
9359func (s *CreateTestGridUrlInput) Validate() error {
9360	invalidParams := request.ErrInvalidParams{Context: "CreateTestGridUrlInput"}
9361	if s.ExpiresInSeconds == nil {
9362		invalidParams.Add(request.NewErrParamRequired("ExpiresInSeconds"))
9363	}
9364	if s.ExpiresInSeconds != nil && *s.ExpiresInSeconds < 60 {
9365		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSeconds", 60))
9366	}
9367	if s.ProjectArn == nil {
9368		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
9369	}
9370	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
9371		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
9372	}
9373
9374	if invalidParams.Len() > 0 {
9375		return invalidParams
9376	}
9377	return nil
9378}
9379
9380// SetExpiresInSeconds sets the ExpiresInSeconds field's value.
9381func (s *CreateTestGridUrlInput) SetExpiresInSeconds(v int64) *CreateTestGridUrlInput {
9382	s.ExpiresInSeconds = &v
9383	return s
9384}
9385
9386// SetProjectArn sets the ProjectArn field's value.
9387func (s *CreateTestGridUrlInput) SetProjectArn(v string) *CreateTestGridUrlInput {
9388	s.ProjectArn = &v
9389	return s
9390}
9391
9392type CreateTestGridUrlOutput struct {
9393	_ struct{} `type:"structure"`
9394
9395	// The number of seconds the URL from CreateTestGridUrlResult$url stays active.
9396	Expires *time.Time `locationName:"expires" type:"timestamp"`
9397
9398	// A signed URL, expiring in CreateTestGridUrlRequest$expiresInSeconds seconds,
9399	// to be passed to a RemoteWebDriver.
9400	//
9401	// Url is a sensitive parameter and its value will be
9402	// replaced with "sensitive" in string returned by CreateTestGridUrlOutput's
9403	// String and GoString methods.
9404	Url *string `locationName:"url" type:"string" sensitive:"true"`
9405}
9406
9407// String returns the string representation.
9408//
9409// API parameter values that are decorated as "sensitive" in the API will not
9410// be included in the string output. The member name will be present, but the
9411// value will be replaced with "sensitive".
9412func (s CreateTestGridUrlOutput) String() string {
9413	return awsutil.Prettify(s)
9414}
9415
9416// GoString returns the string representation.
9417//
9418// API parameter values that are decorated as "sensitive" in the API will not
9419// be included in the string output. The member name will be present, but the
9420// value will be replaced with "sensitive".
9421func (s CreateTestGridUrlOutput) GoString() string {
9422	return s.String()
9423}
9424
9425// SetExpires sets the Expires field's value.
9426func (s *CreateTestGridUrlOutput) SetExpires(v time.Time) *CreateTestGridUrlOutput {
9427	s.Expires = &v
9428	return s
9429}
9430
9431// SetUrl sets the Url field's value.
9432func (s *CreateTestGridUrlOutput) SetUrl(v string) *CreateTestGridUrlOutput {
9433	s.Url = &v
9434	return s
9435}
9436
9437// Represents a request to the create upload operation.
9438type CreateUploadInput struct {
9439	_ struct{} `type:"structure"`
9440
9441	// The upload's content type (for example, application/octet-stream).
9442	ContentType *string `locationName:"contentType" type:"string"`
9443
9444	// The upload's file name. The name should not contain any forward slashes (/).
9445	// If you are uploading an iOS app, the file name must end with the .ipa extension.
9446	// If you are uploading an Android app, the file name must end with the .apk
9447	// extension. For all others, the file name must end with the .zip file extension.
9448	//
9449	// Name is a required field
9450	Name *string `locationName:"name" type:"string" required:"true"`
9451
9452	// The ARN of the project for the upload.
9453	//
9454	// ProjectArn is a required field
9455	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
9456
9457	// The upload's upload type.
9458	//
9459	// Must be one of the following values:
9460	//
9461	//    * ANDROID_APP
9462	//
9463	//    * IOS_APP
9464	//
9465	//    * WEB_APP
9466	//
9467	//    * EXTERNAL_DATA
9468	//
9469	//    * APPIUM_JAVA_JUNIT_TEST_PACKAGE
9470	//
9471	//    * APPIUM_JAVA_TESTNG_TEST_PACKAGE
9472	//
9473	//    * APPIUM_PYTHON_TEST_PACKAGE
9474	//
9475	//    * APPIUM_NODE_TEST_PACKAGE
9476	//
9477	//    * APPIUM_RUBY_TEST_PACKAGE
9478	//
9479	//    * APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
9480	//
9481	//    * APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
9482	//
9483	//    * APPIUM_WEB_PYTHON_TEST_PACKAGE
9484	//
9485	//    * APPIUM_WEB_NODE_TEST_PACKAGE
9486	//
9487	//    * APPIUM_WEB_RUBY_TEST_PACKAGE
9488	//
9489	//    * CALABASH_TEST_PACKAGE
9490	//
9491	//    * INSTRUMENTATION_TEST_PACKAGE
9492	//
9493	//    * UIAUTOMATION_TEST_PACKAGE
9494	//
9495	//    * UIAUTOMATOR_TEST_PACKAGE
9496	//
9497	//    * XCTEST_TEST_PACKAGE
9498	//
9499	//    * XCTEST_UI_TEST_PACKAGE
9500	//
9501	//    * APPIUM_JAVA_JUNIT_TEST_SPEC
9502	//
9503	//    * APPIUM_JAVA_TESTNG_TEST_SPEC
9504	//
9505	//    * APPIUM_PYTHON_TEST_SPEC
9506	//
9507	//    * APPIUM_NODE_TEST_SPEC
9508	//
9509	//    * APPIUM_RUBY_TEST_SPEC
9510	//
9511	//    * APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
9512	//
9513	//    * APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
9514	//
9515	//    * APPIUM_WEB_PYTHON_TEST_SPEC
9516	//
9517	//    * APPIUM_WEB_NODE_TEST_SPEC
9518	//
9519	//    * APPIUM_WEB_RUBY_TEST_SPEC
9520	//
9521	//    * INSTRUMENTATION_TEST_SPEC
9522	//
9523	//    * XCTEST_UI_TEST_SPEC
9524	//
9525	// If you call CreateUpload with WEB_APP specified, AWS Device Farm throws an
9526	// ArgumentException error.
9527	//
9528	// Type is a required field
9529	Type *string `locationName:"type" type:"string" required:"true" enum:"UploadType"`
9530}
9531
9532// String returns the string representation.
9533//
9534// API parameter values that are decorated as "sensitive" in the API will not
9535// be included in the string output. The member name will be present, but the
9536// value will be replaced with "sensitive".
9537func (s CreateUploadInput) String() string {
9538	return awsutil.Prettify(s)
9539}
9540
9541// GoString returns the string representation.
9542//
9543// API parameter values that are decorated as "sensitive" in the API will not
9544// be included in the string output. The member name will be present, but the
9545// value will be replaced with "sensitive".
9546func (s CreateUploadInput) GoString() string {
9547	return s.String()
9548}
9549
9550// Validate inspects the fields of the type to determine if they are valid.
9551func (s *CreateUploadInput) Validate() error {
9552	invalidParams := request.ErrInvalidParams{Context: "CreateUploadInput"}
9553	if s.Name == nil {
9554		invalidParams.Add(request.NewErrParamRequired("Name"))
9555	}
9556	if s.ProjectArn == nil {
9557		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
9558	}
9559	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
9560		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
9561	}
9562	if s.Type == nil {
9563		invalidParams.Add(request.NewErrParamRequired("Type"))
9564	}
9565
9566	if invalidParams.Len() > 0 {
9567		return invalidParams
9568	}
9569	return nil
9570}
9571
9572// SetContentType sets the ContentType field's value.
9573func (s *CreateUploadInput) SetContentType(v string) *CreateUploadInput {
9574	s.ContentType = &v
9575	return s
9576}
9577
9578// SetName sets the Name field's value.
9579func (s *CreateUploadInput) SetName(v string) *CreateUploadInput {
9580	s.Name = &v
9581	return s
9582}
9583
9584// SetProjectArn sets the ProjectArn field's value.
9585func (s *CreateUploadInput) SetProjectArn(v string) *CreateUploadInput {
9586	s.ProjectArn = &v
9587	return s
9588}
9589
9590// SetType sets the Type field's value.
9591func (s *CreateUploadInput) SetType(v string) *CreateUploadInput {
9592	s.Type = &v
9593	return s
9594}
9595
9596// Represents the result of a create upload request.
9597type CreateUploadOutput struct {
9598	_ struct{} `type:"structure"`
9599
9600	// The newly created upload.
9601	Upload *Upload `locationName:"upload" type:"structure"`
9602}
9603
9604// String returns the string representation.
9605//
9606// API parameter values that are decorated as "sensitive" in the API will not
9607// be included in the string output. The member name will be present, but the
9608// value will be replaced with "sensitive".
9609func (s CreateUploadOutput) String() string {
9610	return awsutil.Prettify(s)
9611}
9612
9613// GoString returns the string representation.
9614//
9615// API parameter values that are decorated as "sensitive" in the API will not
9616// be included in the string output. The member name will be present, but the
9617// value will be replaced with "sensitive".
9618func (s CreateUploadOutput) GoString() string {
9619	return s.String()
9620}
9621
9622// SetUpload sets the Upload field's value.
9623func (s *CreateUploadOutput) SetUpload(v *Upload) *CreateUploadOutput {
9624	s.Upload = v
9625	return s
9626}
9627
9628type CreateVPCEConfigurationInput struct {
9629	_ struct{} `type:"structure"`
9630
9631	// The DNS name of the service running in your VPC that you want Device Farm
9632	// to test.
9633	//
9634	// ServiceDnsName is a required field
9635	ServiceDnsName *string `locationName:"serviceDnsName" type:"string" required:"true"`
9636
9637	// An optional description that provides details about your VPC endpoint configuration.
9638	VpceConfigurationDescription *string `locationName:"vpceConfigurationDescription" type:"string"`
9639
9640	// The friendly name you give to your VPC endpoint configuration, to manage
9641	// your configurations more easily.
9642	//
9643	// VpceConfigurationName is a required field
9644	VpceConfigurationName *string `locationName:"vpceConfigurationName" type:"string" required:"true"`
9645
9646	// The name of the VPC endpoint service running in your AWS account that you
9647	// want Device Farm to test.
9648	//
9649	// VpceServiceName is a required field
9650	VpceServiceName *string `locationName:"vpceServiceName" type:"string" required:"true"`
9651}
9652
9653// String returns the string representation.
9654//
9655// API parameter values that are decorated as "sensitive" in the API will not
9656// be included in the string output. The member name will be present, but the
9657// value will be replaced with "sensitive".
9658func (s CreateVPCEConfigurationInput) String() string {
9659	return awsutil.Prettify(s)
9660}
9661
9662// GoString returns the string representation.
9663//
9664// API parameter values that are decorated as "sensitive" in the API will not
9665// be included in the string output. The member name will be present, but the
9666// value will be replaced with "sensitive".
9667func (s CreateVPCEConfigurationInput) GoString() string {
9668	return s.String()
9669}
9670
9671// Validate inspects the fields of the type to determine if they are valid.
9672func (s *CreateVPCEConfigurationInput) Validate() error {
9673	invalidParams := request.ErrInvalidParams{Context: "CreateVPCEConfigurationInput"}
9674	if s.ServiceDnsName == nil {
9675		invalidParams.Add(request.NewErrParamRequired("ServiceDnsName"))
9676	}
9677	if s.VpceConfigurationName == nil {
9678		invalidParams.Add(request.NewErrParamRequired("VpceConfigurationName"))
9679	}
9680	if s.VpceServiceName == nil {
9681		invalidParams.Add(request.NewErrParamRequired("VpceServiceName"))
9682	}
9683
9684	if invalidParams.Len() > 0 {
9685		return invalidParams
9686	}
9687	return nil
9688}
9689
9690// SetServiceDnsName sets the ServiceDnsName field's value.
9691func (s *CreateVPCEConfigurationInput) SetServiceDnsName(v string) *CreateVPCEConfigurationInput {
9692	s.ServiceDnsName = &v
9693	return s
9694}
9695
9696// SetVpceConfigurationDescription sets the VpceConfigurationDescription field's value.
9697func (s *CreateVPCEConfigurationInput) SetVpceConfigurationDescription(v string) *CreateVPCEConfigurationInput {
9698	s.VpceConfigurationDescription = &v
9699	return s
9700}
9701
9702// SetVpceConfigurationName sets the VpceConfigurationName field's value.
9703func (s *CreateVPCEConfigurationInput) SetVpceConfigurationName(v string) *CreateVPCEConfigurationInput {
9704	s.VpceConfigurationName = &v
9705	return s
9706}
9707
9708// SetVpceServiceName sets the VpceServiceName field's value.
9709func (s *CreateVPCEConfigurationInput) SetVpceServiceName(v string) *CreateVPCEConfigurationInput {
9710	s.VpceServiceName = &v
9711	return s
9712}
9713
9714type CreateVPCEConfigurationOutput struct {
9715	_ struct{} `type:"structure"`
9716
9717	// An object that contains information about your VPC endpoint configuration.
9718	VpceConfiguration *VPCEConfiguration `locationName:"vpceConfiguration" type:"structure"`
9719}
9720
9721// String returns the string representation.
9722//
9723// API parameter values that are decorated as "sensitive" in the API will not
9724// be included in the string output. The member name will be present, but the
9725// value will be replaced with "sensitive".
9726func (s CreateVPCEConfigurationOutput) String() string {
9727	return awsutil.Prettify(s)
9728}
9729
9730// GoString returns the string representation.
9731//
9732// API parameter values that are decorated as "sensitive" in the API will not
9733// be included in the string output. The member name will be present, but the
9734// value will be replaced with "sensitive".
9735func (s CreateVPCEConfigurationOutput) GoString() string {
9736	return s.String()
9737}
9738
9739// SetVpceConfiguration sets the VpceConfiguration field's value.
9740func (s *CreateVPCEConfigurationOutput) SetVpceConfiguration(v *VPCEConfiguration) *CreateVPCEConfigurationOutput {
9741	s.VpceConfiguration = v
9742	return s
9743}
9744
9745// A JSON object that specifies the paths where the artifacts generated by the
9746// customer's tests, on the device or in the test environment, are pulled from.
9747//
9748// Specify deviceHostPaths and optionally specify either iosPaths or androidPaths.
9749//
9750// For web app tests, you can specify both iosPaths and androidPaths.
9751type CustomerArtifactPaths struct {
9752	_ struct{} `type:"structure"`
9753
9754	// Comma-separated list of paths on the Android device where the artifacts generated
9755	// by the customer's tests are pulled from.
9756	AndroidPaths []*string `locationName:"androidPaths" type:"list"`
9757
9758	// Comma-separated list of paths in the test execution environment where the
9759	// artifacts generated by the customer's tests are pulled from.
9760	DeviceHostPaths []*string `locationName:"deviceHostPaths" type:"list"`
9761
9762	// Comma-separated list of paths on the iOS device where the artifacts generated
9763	// by the customer's tests are pulled from.
9764	IosPaths []*string `locationName:"iosPaths" type:"list"`
9765}
9766
9767// String returns the string representation.
9768//
9769// API parameter values that are decorated as "sensitive" in the API will not
9770// be included in the string output. The member name will be present, but the
9771// value will be replaced with "sensitive".
9772func (s CustomerArtifactPaths) String() string {
9773	return awsutil.Prettify(s)
9774}
9775
9776// GoString returns the string representation.
9777//
9778// API parameter values that are decorated as "sensitive" in the API will not
9779// be included in the string output. The member name will be present, but the
9780// value will be replaced with "sensitive".
9781func (s CustomerArtifactPaths) GoString() string {
9782	return s.String()
9783}
9784
9785// SetAndroidPaths sets the AndroidPaths field's value.
9786func (s *CustomerArtifactPaths) SetAndroidPaths(v []*string) *CustomerArtifactPaths {
9787	s.AndroidPaths = v
9788	return s
9789}
9790
9791// SetDeviceHostPaths sets the DeviceHostPaths field's value.
9792func (s *CustomerArtifactPaths) SetDeviceHostPaths(v []*string) *CustomerArtifactPaths {
9793	s.DeviceHostPaths = v
9794	return s
9795}
9796
9797// SetIosPaths sets the IosPaths field's value.
9798func (s *CustomerArtifactPaths) SetIosPaths(v []*string) *CustomerArtifactPaths {
9799	s.IosPaths = v
9800	return s
9801}
9802
9803// Represents a request to the delete device pool operation.
9804type DeleteDevicePoolInput struct {
9805	_ struct{} `type:"structure"`
9806
9807	// Represents the Amazon Resource Name (ARN) of the Device Farm device pool
9808	// to delete.
9809	//
9810	// Arn is a required field
9811	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9812}
9813
9814// String returns the string representation.
9815//
9816// API parameter values that are decorated as "sensitive" in the API will not
9817// be included in the string output. The member name will be present, but the
9818// value will be replaced with "sensitive".
9819func (s DeleteDevicePoolInput) String() string {
9820	return awsutil.Prettify(s)
9821}
9822
9823// GoString returns the string representation.
9824//
9825// API parameter values that are decorated as "sensitive" in the API will not
9826// be included in the string output. The member name will be present, but the
9827// value will be replaced with "sensitive".
9828func (s DeleteDevicePoolInput) GoString() string {
9829	return s.String()
9830}
9831
9832// Validate inspects the fields of the type to determine if they are valid.
9833func (s *DeleteDevicePoolInput) Validate() error {
9834	invalidParams := request.ErrInvalidParams{Context: "DeleteDevicePoolInput"}
9835	if s.Arn == nil {
9836		invalidParams.Add(request.NewErrParamRequired("Arn"))
9837	}
9838	if s.Arn != nil && len(*s.Arn) < 32 {
9839		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9840	}
9841
9842	if invalidParams.Len() > 0 {
9843		return invalidParams
9844	}
9845	return nil
9846}
9847
9848// SetArn sets the Arn field's value.
9849func (s *DeleteDevicePoolInput) SetArn(v string) *DeleteDevicePoolInput {
9850	s.Arn = &v
9851	return s
9852}
9853
9854// Represents the result of a delete device pool request.
9855type DeleteDevicePoolOutput struct {
9856	_ struct{} `type:"structure"`
9857}
9858
9859// String returns the string representation.
9860//
9861// API parameter values that are decorated as "sensitive" in the API will not
9862// be included in the string output. The member name will be present, but the
9863// value will be replaced with "sensitive".
9864func (s DeleteDevicePoolOutput) String() string {
9865	return awsutil.Prettify(s)
9866}
9867
9868// GoString returns the string representation.
9869//
9870// API parameter values that are decorated as "sensitive" in the API will not
9871// be included in the string output. The member name will be present, but the
9872// value will be replaced with "sensitive".
9873func (s DeleteDevicePoolOutput) GoString() string {
9874	return s.String()
9875}
9876
9877type DeleteInstanceProfileInput struct {
9878	_ struct{} `type:"structure"`
9879
9880	// The Amazon Resource Name (ARN) of the instance profile you are requesting
9881	// to delete.
9882	//
9883	// Arn is a required field
9884	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9885}
9886
9887// String returns the string representation.
9888//
9889// API parameter values that are decorated as "sensitive" in the API will not
9890// be included in the string output. The member name will be present, but the
9891// value will be replaced with "sensitive".
9892func (s DeleteInstanceProfileInput) String() string {
9893	return awsutil.Prettify(s)
9894}
9895
9896// GoString returns the string representation.
9897//
9898// API parameter values that are decorated as "sensitive" in the API will not
9899// be included in the string output. The member name will be present, but the
9900// value will be replaced with "sensitive".
9901func (s DeleteInstanceProfileInput) GoString() string {
9902	return s.String()
9903}
9904
9905// Validate inspects the fields of the type to determine if they are valid.
9906func (s *DeleteInstanceProfileInput) Validate() error {
9907	invalidParams := request.ErrInvalidParams{Context: "DeleteInstanceProfileInput"}
9908	if s.Arn == nil {
9909		invalidParams.Add(request.NewErrParamRequired("Arn"))
9910	}
9911	if s.Arn != nil && len(*s.Arn) < 32 {
9912		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9913	}
9914
9915	if invalidParams.Len() > 0 {
9916		return invalidParams
9917	}
9918	return nil
9919}
9920
9921// SetArn sets the Arn field's value.
9922func (s *DeleteInstanceProfileInput) SetArn(v string) *DeleteInstanceProfileInput {
9923	s.Arn = &v
9924	return s
9925}
9926
9927type DeleteInstanceProfileOutput struct {
9928	_ struct{} `type:"structure"`
9929}
9930
9931// String returns the string representation.
9932//
9933// API parameter values that are decorated as "sensitive" in the API will not
9934// be included in the string output. The member name will be present, but the
9935// value will be replaced with "sensitive".
9936func (s DeleteInstanceProfileOutput) String() string {
9937	return awsutil.Prettify(s)
9938}
9939
9940// GoString returns the string representation.
9941//
9942// API parameter values that are decorated as "sensitive" in the API will not
9943// be included in the string output. The member name will be present, but the
9944// value will be replaced with "sensitive".
9945func (s DeleteInstanceProfileOutput) GoString() string {
9946	return s.String()
9947}
9948
9949type DeleteNetworkProfileInput struct {
9950	_ struct{} `type:"structure"`
9951
9952	// The ARN of the network profile to delete.
9953	//
9954	// Arn is a required field
9955	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9956}
9957
9958// String returns the string representation.
9959//
9960// API parameter values that are decorated as "sensitive" in the API will not
9961// be included in the string output. The member name will be present, but the
9962// value will be replaced with "sensitive".
9963func (s DeleteNetworkProfileInput) String() string {
9964	return awsutil.Prettify(s)
9965}
9966
9967// GoString returns the string representation.
9968//
9969// API parameter values that are decorated as "sensitive" in the API will not
9970// be included in the string output. The member name will be present, but the
9971// value will be replaced with "sensitive".
9972func (s DeleteNetworkProfileInput) GoString() string {
9973	return s.String()
9974}
9975
9976// Validate inspects the fields of the type to determine if they are valid.
9977func (s *DeleteNetworkProfileInput) Validate() error {
9978	invalidParams := request.ErrInvalidParams{Context: "DeleteNetworkProfileInput"}
9979	if s.Arn == nil {
9980		invalidParams.Add(request.NewErrParamRequired("Arn"))
9981	}
9982	if s.Arn != nil && len(*s.Arn) < 32 {
9983		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9984	}
9985
9986	if invalidParams.Len() > 0 {
9987		return invalidParams
9988	}
9989	return nil
9990}
9991
9992// SetArn sets the Arn field's value.
9993func (s *DeleteNetworkProfileInput) SetArn(v string) *DeleteNetworkProfileInput {
9994	s.Arn = &v
9995	return s
9996}
9997
9998type DeleteNetworkProfileOutput struct {
9999	_ struct{} `type:"structure"`
10000}
10001
10002// String returns the string representation.
10003//
10004// API parameter values that are decorated as "sensitive" in the API will not
10005// be included in the string output. The member name will be present, but the
10006// value will be replaced with "sensitive".
10007func (s DeleteNetworkProfileOutput) String() string {
10008	return awsutil.Prettify(s)
10009}
10010
10011// GoString returns the string representation.
10012//
10013// API parameter values that are decorated as "sensitive" in the API will not
10014// be included in the string output. The member name will be present, but the
10015// value will be replaced with "sensitive".
10016func (s DeleteNetworkProfileOutput) GoString() string {
10017	return s.String()
10018}
10019
10020// Represents a request to the delete project operation.
10021type DeleteProjectInput struct {
10022	_ struct{} `type:"structure"`
10023
10024	// Represents the Amazon Resource Name (ARN) of the Device Farm project to delete.
10025	//
10026	// Arn is a required field
10027	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10028}
10029
10030// String returns the string representation.
10031//
10032// API parameter values that are decorated as "sensitive" in the API will not
10033// be included in the string output. The member name will be present, but the
10034// value will be replaced with "sensitive".
10035func (s DeleteProjectInput) String() string {
10036	return awsutil.Prettify(s)
10037}
10038
10039// GoString returns the string representation.
10040//
10041// API parameter values that are decorated as "sensitive" in the API will not
10042// be included in the string output. The member name will be present, but the
10043// value will be replaced with "sensitive".
10044func (s DeleteProjectInput) GoString() string {
10045	return s.String()
10046}
10047
10048// Validate inspects the fields of the type to determine if they are valid.
10049func (s *DeleteProjectInput) Validate() error {
10050	invalidParams := request.ErrInvalidParams{Context: "DeleteProjectInput"}
10051	if s.Arn == nil {
10052		invalidParams.Add(request.NewErrParamRequired("Arn"))
10053	}
10054	if s.Arn != nil && len(*s.Arn) < 32 {
10055		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10056	}
10057
10058	if invalidParams.Len() > 0 {
10059		return invalidParams
10060	}
10061	return nil
10062}
10063
10064// SetArn sets the Arn field's value.
10065func (s *DeleteProjectInput) SetArn(v string) *DeleteProjectInput {
10066	s.Arn = &v
10067	return s
10068}
10069
10070// Represents the result of a delete project request.
10071type DeleteProjectOutput struct {
10072	_ struct{} `type:"structure"`
10073}
10074
10075// String returns the string representation.
10076//
10077// API parameter values that are decorated as "sensitive" in the API will not
10078// be included in the string output. The member name will be present, but the
10079// value will be replaced with "sensitive".
10080func (s DeleteProjectOutput) String() string {
10081	return awsutil.Prettify(s)
10082}
10083
10084// GoString returns the string representation.
10085//
10086// API parameter values that are decorated as "sensitive" in the API will not
10087// be included in the string output. The member name will be present, but the
10088// value will be replaced with "sensitive".
10089func (s DeleteProjectOutput) GoString() string {
10090	return s.String()
10091}
10092
10093// Represents the request to delete the specified remote access session.
10094type DeleteRemoteAccessSessionInput struct {
10095	_ struct{} `type:"structure"`
10096
10097	// The Amazon Resource Name (ARN) of the session for which you want to delete
10098	// remote access.
10099	//
10100	// Arn is a required field
10101	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10102}
10103
10104// String returns the string representation.
10105//
10106// API parameter values that are decorated as "sensitive" in the API will not
10107// be included in the string output. The member name will be present, but the
10108// value will be replaced with "sensitive".
10109func (s DeleteRemoteAccessSessionInput) String() string {
10110	return awsutil.Prettify(s)
10111}
10112
10113// GoString returns the string representation.
10114//
10115// API parameter values that are decorated as "sensitive" in the API will not
10116// be included in the string output. The member name will be present, but the
10117// value will be replaced with "sensitive".
10118func (s DeleteRemoteAccessSessionInput) GoString() string {
10119	return s.String()
10120}
10121
10122// Validate inspects the fields of the type to determine if they are valid.
10123func (s *DeleteRemoteAccessSessionInput) Validate() error {
10124	invalidParams := request.ErrInvalidParams{Context: "DeleteRemoteAccessSessionInput"}
10125	if s.Arn == nil {
10126		invalidParams.Add(request.NewErrParamRequired("Arn"))
10127	}
10128	if s.Arn != nil && len(*s.Arn) < 32 {
10129		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10130	}
10131
10132	if invalidParams.Len() > 0 {
10133		return invalidParams
10134	}
10135	return nil
10136}
10137
10138// SetArn sets the Arn field's value.
10139func (s *DeleteRemoteAccessSessionInput) SetArn(v string) *DeleteRemoteAccessSessionInput {
10140	s.Arn = &v
10141	return s
10142}
10143
10144// The response from the server when a request is made to delete the remote
10145// access session.
10146type DeleteRemoteAccessSessionOutput struct {
10147	_ struct{} `type:"structure"`
10148}
10149
10150// String returns the string representation.
10151//
10152// API parameter values that are decorated as "sensitive" in the API will not
10153// be included in the string output. The member name will be present, but the
10154// value will be replaced with "sensitive".
10155func (s DeleteRemoteAccessSessionOutput) String() string {
10156	return awsutil.Prettify(s)
10157}
10158
10159// GoString returns the string representation.
10160//
10161// API parameter values that are decorated as "sensitive" in the API will not
10162// be included in the string output. The member name will be present, but the
10163// value will be replaced with "sensitive".
10164func (s DeleteRemoteAccessSessionOutput) GoString() string {
10165	return s.String()
10166}
10167
10168// Represents a request to the delete run operation.
10169type DeleteRunInput struct {
10170	_ struct{} `type:"structure"`
10171
10172	// The Amazon Resource Name (ARN) for the run to delete.
10173	//
10174	// Arn is a required field
10175	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10176}
10177
10178// String returns the string representation.
10179//
10180// API parameter values that are decorated as "sensitive" in the API will not
10181// be included in the string output. The member name will be present, but the
10182// value will be replaced with "sensitive".
10183func (s DeleteRunInput) String() string {
10184	return awsutil.Prettify(s)
10185}
10186
10187// GoString returns the string representation.
10188//
10189// API parameter values that are decorated as "sensitive" in the API will not
10190// be included in the string output. The member name will be present, but the
10191// value will be replaced with "sensitive".
10192func (s DeleteRunInput) GoString() string {
10193	return s.String()
10194}
10195
10196// Validate inspects the fields of the type to determine if they are valid.
10197func (s *DeleteRunInput) Validate() error {
10198	invalidParams := request.ErrInvalidParams{Context: "DeleteRunInput"}
10199	if s.Arn == nil {
10200		invalidParams.Add(request.NewErrParamRequired("Arn"))
10201	}
10202	if s.Arn != nil && len(*s.Arn) < 32 {
10203		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10204	}
10205
10206	if invalidParams.Len() > 0 {
10207		return invalidParams
10208	}
10209	return nil
10210}
10211
10212// SetArn sets the Arn field's value.
10213func (s *DeleteRunInput) SetArn(v string) *DeleteRunInput {
10214	s.Arn = &v
10215	return s
10216}
10217
10218// Represents the result of a delete run request.
10219type DeleteRunOutput struct {
10220	_ struct{} `type:"structure"`
10221}
10222
10223// String returns the string representation.
10224//
10225// API parameter values that are decorated as "sensitive" in the API will not
10226// be included in the string output. The member name will be present, but the
10227// value will be replaced with "sensitive".
10228func (s DeleteRunOutput) String() string {
10229	return awsutil.Prettify(s)
10230}
10231
10232// GoString returns the string representation.
10233//
10234// API parameter values that are decorated as "sensitive" in the API will not
10235// be included in the string output. The member name will be present, but the
10236// value will be replaced with "sensitive".
10237func (s DeleteRunOutput) GoString() string {
10238	return s.String()
10239}
10240
10241type DeleteTestGridProjectInput struct {
10242	_ struct{} `type:"structure"`
10243
10244	// The ARN of the project to delete, from CreateTestGridProject or ListTestGridProjects.
10245	//
10246	// ProjectArn is a required field
10247	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
10248}
10249
10250// String returns the string representation.
10251//
10252// API parameter values that are decorated as "sensitive" in the API will not
10253// be included in the string output. The member name will be present, but the
10254// value will be replaced with "sensitive".
10255func (s DeleteTestGridProjectInput) String() string {
10256	return awsutil.Prettify(s)
10257}
10258
10259// GoString returns the string representation.
10260//
10261// API parameter values that are decorated as "sensitive" in the API will not
10262// be included in the string output. The member name will be present, but the
10263// value will be replaced with "sensitive".
10264func (s DeleteTestGridProjectInput) GoString() string {
10265	return s.String()
10266}
10267
10268// Validate inspects the fields of the type to determine if they are valid.
10269func (s *DeleteTestGridProjectInput) Validate() error {
10270	invalidParams := request.ErrInvalidParams{Context: "DeleteTestGridProjectInput"}
10271	if s.ProjectArn == nil {
10272		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
10273	}
10274	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
10275		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
10276	}
10277
10278	if invalidParams.Len() > 0 {
10279		return invalidParams
10280	}
10281	return nil
10282}
10283
10284// SetProjectArn sets the ProjectArn field's value.
10285func (s *DeleteTestGridProjectInput) SetProjectArn(v string) *DeleteTestGridProjectInput {
10286	s.ProjectArn = &v
10287	return s
10288}
10289
10290type DeleteTestGridProjectOutput struct {
10291	_ struct{} `type:"structure"`
10292}
10293
10294// String returns the string representation.
10295//
10296// API parameter values that are decorated as "sensitive" in the API will not
10297// be included in the string output. The member name will be present, but the
10298// value will be replaced with "sensitive".
10299func (s DeleteTestGridProjectOutput) String() string {
10300	return awsutil.Prettify(s)
10301}
10302
10303// GoString returns the string representation.
10304//
10305// API parameter values that are decorated as "sensitive" in the API will not
10306// be included in the string output. The member name will be present, but the
10307// value will be replaced with "sensitive".
10308func (s DeleteTestGridProjectOutput) GoString() string {
10309	return s.String()
10310}
10311
10312// Represents a request to the delete upload operation.
10313type DeleteUploadInput struct {
10314	_ struct{} `type:"structure"`
10315
10316	// Represents the Amazon Resource Name (ARN) of the Device Farm upload to delete.
10317	//
10318	// Arn is a required field
10319	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10320}
10321
10322// String returns the string representation.
10323//
10324// API parameter values that are decorated as "sensitive" in the API will not
10325// be included in the string output. The member name will be present, but the
10326// value will be replaced with "sensitive".
10327func (s DeleteUploadInput) String() string {
10328	return awsutil.Prettify(s)
10329}
10330
10331// GoString returns the string representation.
10332//
10333// API parameter values that are decorated as "sensitive" in the API will not
10334// be included in the string output. The member name will be present, but the
10335// value will be replaced with "sensitive".
10336func (s DeleteUploadInput) GoString() string {
10337	return s.String()
10338}
10339
10340// Validate inspects the fields of the type to determine if they are valid.
10341func (s *DeleteUploadInput) Validate() error {
10342	invalidParams := request.ErrInvalidParams{Context: "DeleteUploadInput"}
10343	if s.Arn == nil {
10344		invalidParams.Add(request.NewErrParamRequired("Arn"))
10345	}
10346	if s.Arn != nil && len(*s.Arn) < 32 {
10347		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10348	}
10349
10350	if invalidParams.Len() > 0 {
10351		return invalidParams
10352	}
10353	return nil
10354}
10355
10356// SetArn sets the Arn field's value.
10357func (s *DeleteUploadInput) SetArn(v string) *DeleteUploadInput {
10358	s.Arn = &v
10359	return s
10360}
10361
10362// Represents the result of a delete upload request.
10363type DeleteUploadOutput struct {
10364	_ struct{} `type:"structure"`
10365}
10366
10367// String returns the string representation.
10368//
10369// API parameter values that are decorated as "sensitive" in the API will not
10370// be included in the string output. The member name will be present, but the
10371// value will be replaced with "sensitive".
10372func (s DeleteUploadOutput) String() string {
10373	return awsutil.Prettify(s)
10374}
10375
10376// GoString returns the string representation.
10377//
10378// API parameter values that are decorated as "sensitive" in the API will not
10379// be included in the string output. The member name will be present, but the
10380// value will be replaced with "sensitive".
10381func (s DeleteUploadOutput) GoString() string {
10382	return s.String()
10383}
10384
10385type DeleteVPCEConfigurationInput struct {
10386	_ struct{} `type:"structure"`
10387
10388	// The Amazon Resource Name (ARN) of the VPC endpoint configuration you want
10389	// to delete.
10390	//
10391	// Arn is a required field
10392	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10393}
10394
10395// String returns the string representation.
10396//
10397// API parameter values that are decorated as "sensitive" in the API will not
10398// be included in the string output. The member name will be present, but the
10399// value will be replaced with "sensitive".
10400func (s DeleteVPCEConfigurationInput) String() string {
10401	return awsutil.Prettify(s)
10402}
10403
10404// GoString returns the string representation.
10405//
10406// API parameter values that are decorated as "sensitive" in the API will not
10407// be included in the string output. The member name will be present, but the
10408// value will be replaced with "sensitive".
10409func (s DeleteVPCEConfigurationInput) GoString() string {
10410	return s.String()
10411}
10412
10413// Validate inspects the fields of the type to determine if they are valid.
10414func (s *DeleteVPCEConfigurationInput) Validate() error {
10415	invalidParams := request.ErrInvalidParams{Context: "DeleteVPCEConfigurationInput"}
10416	if s.Arn == nil {
10417		invalidParams.Add(request.NewErrParamRequired("Arn"))
10418	}
10419	if s.Arn != nil && len(*s.Arn) < 32 {
10420		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10421	}
10422
10423	if invalidParams.Len() > 0 {
10424		return invalidParams
10425	}
10426	return nil
10427}
10428
10429// SetArn sets the Arn field's value.
10430func (s *DeleteVPCEConfigurationInput) SetArn(v string) *DeleteVPCEConfigurationInput {
10431	s.Arn = &v
10432	return s
10433}
10434
10435type DeleteVPCEConfigurationOutput struct {
10436	_ struct{} `type:"structure"`
10437}
10438
10439// String returns the string representation.
10440//
10441// API parameter values that are decorated as "sensitive" in the API will not
10442// be included in the string output. The member name will be present, but the
10443// value will be replaced with "sensitive".
10444func (s DeleteVPCEConfigurationOutput) String() string {
10445	return awsutil.Prettify(s)
10446}
10447
10448// GoString returns the string representation.
10449//
10450// API parameter values that are decorated as "sensitive" in the API will not
10451// be included in the string output. The member name will be present, but the
10452// value will be replaced with "sensitive".
10453func (s DeleteVPCEConfigurationOutput) GoString() string {
10454	return s.String()
10455}
10456
10457// Represents a device type that an app is tested against.
10458type Device struct {
10459	_ struct{} `type:"structure"`
10460
10461	// The device's ARN.
10462	Arn *string `locationName:"arn" min:"32" type:"string"`
10463
10464	// Indicates how likely a device is available for a test run. Currently available
10465	// in the ListDevices and GetDevice API methods.
10466	Availability *string `locationName:"availability" type:"string" enum:"DeviceAvailability"`
10467
10468	// The device's carrier.
10469	Carrier *string `locationName:"carrier" type:"string"`
10470
10471	// Information about the device's CPU.
10472	Cpu *CPU `locationName:"cpu" type:"structure"`
10473
10474	// The name of the fleet to which this device belongs.
10475	FleetName *string `locationName:"fleetName" type:"string"`
10476
10477	// The type of fleet to which this device belongs. Possible values are PRIVATE
10478	// and PUBLIC.
10479	FleetType *string `locationName:"fleetType" type:"string"`
10480
10481	// The device's form factor.
10482	//
10483	// Allowed values include:
10484	//
10485	//    * PHONE
10486	//
10487	//    * TABLET
10488	FormFactor *string `locationName:"formFactor" type:"string" enum:"DeviceFormFactor"`
10489
10490	// The device's heap size, expressed in bytes.
10491	HeapSize *int64 `locationName:"heapSize" type:"long"`
10492
10493	// The device's image name.
10494	Image *string `locationName:"image" type:"string"`
10495
10496	// The instances that belong to this device.
10497	Instances []*DeviceInstance `locationName:"instances" type:"list"`
10498
10499	// The device's manufacturer name.
10500	Manufacturer *string `locationName:"manufacturer" type:"string"`
10501
10502	// The device's total memory size, expressed in bytes.
10503	Memory *int64 `locationName:"memory" type:"long"`
10504
10505	// The device's model name.
10506	Model *string `locationName:"model" type:"string"`
10507
10508	// The device's model ID.
10509	ModelId *string `locationName:"modelId" type:"string"`
10510
10511	// The device's display name.
10512	Name *string `locationName:"name" type:"string"`
10513
10514	// The device's operating system type.
10515	Os *string `locationName:"os" type:"string"`
10516
10517	// The device's platform.
10518	//
10519	// Allowed values include:
10520	//
10521	//    * ANDROID
10522	//
10523	//    * IOS
10524	Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"`
10525
10526	// The device's radio.
10527	Radio *string `locationName:"radio" type:"string"`
10528
10529	// Specifies whether remote access has been enabled for the specified device.
10530	RemoteAccessEnabled *bool `locationName:"remoteAccessEnabled" type:"boolean"`
10531
10532	// This flag is set to true if remote debugging is enabled for the device.
10533	//
10534	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
10535	RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"`
10536
10537	// The resolution of the device.
10538	Resolution *Resolution `locationName:"resolution" type:"structure"`
10539}
10540
10541// String returns the string representation.
10542//
10543// API parameter values that are decorated as "sensitive" in the API will not
10544// be included in the string output. The member name will be present, but the
10545// value will be replaced with "sensitive".
10546func (s Device) String() string {
10547	return awsutil.Prettify(s)
10548}
10549
10550// GoString returns the string representation.
10551//
10552// API parameter values that are decorated as "sensitive" in the API will not
10553// be included in the string output. The member name will be present, but the
10554// value will be replaced with "sensitive".
10555func (s Device) GoString() string {
10556	return s.String()
10557}
10558
10559// SetArn sets the Arn field's value.
10560func (s *Device) SetArn(v string) *Device {
10561	s.Arn = &v
10562	return s
10563}
10564
10565// SetAvailability sets the Availability field's value.
10566func (s *Device) SetAvailability(v string) *Device {
10567	s.Availability = &v
10568	return s
10569}
10570
10571// SetCarrier sets the Carrier field's value.
10572func (s *Device) SetCarrier(v string) *Device {
10573	s.Carrier = &v
10574	return s
10575}
10576
10577// SetCpu sets the Cpu field's value.
10578func (s *Device) SetCpu(v *CPU) *Device {
10579	s.Cpu = v
10580	return s
10581}
10582
10583// SetFleetName sets the FleetName field's value.
10584func (s *Device) SetFleetName(v string) *Device {
10585	s.FleetName = &v
10586	return s
10587}
10588
10589// SetFleetType sets the FleetType field's value.
10590func (s *Device) SetFleetType(v string) *Device {
10591	s.FleetType = &v
10592	return s
10593}
10594
10595// SetFormFactor sets the FormFactor field's value.
10596func (s *Device) SetFormFactor(v string) *Device {
10597	s.FormFactor = &v
10598	return s
10599}
10600
10601// SetHeapSize sets the HeapSize field's value.
10602func (s *Device) SetHeapSize(v int64) *Device {
10603	s.HeapSize = &v
10604	return s
10605}
10606
10607// SetImage sets the Image field's value.
10608func (s *Device) SetImage(v string) *Device {
10609	s.Image = &v
10610	return s
10611}
10612
10613// SetInstances sets the Instances field's value.
10614func (s *Device) SetInstances(v []*DeviceInstance) *Device {
10615	s.Instances = v
10616	return s
10617}
10618
10619// SetManufacturer sets the Manufacturer field's value.
10620func (s *Device) SetManufacturer(v string) *Device {
10621	s.Manufacturer = &v
10622	return s
10623}
10624
10625// SetMemory sets the Memory field's value.
10626func (s *Device) SetMemory(v int64) *Device {
10627	s.Memory = &v
10628	return s
10629}
10630
10631// SetModel sets the Model field's value.
10632func (s *Device) SetModel(v string) *Device {
10633	s.Model = &v
10634	return s
10635}
10636
10637// SetModelId sets the ModelId field's value.
10638func (s *Device) SetModelId(v string) *Device {
10639	s.ModelId = &v
10640	return s
10641}
10642
10643// SetName sets the Name field's value.
10644func (s *Device) SetName(v string) *Device {
10645	s.Name = &v
10646	return s
10647}
10648
10649// SetOs sets the Os field's value.
10650func (s *Device) SetOs(v string) *Device {
10651	s.Os = &v
10652	return s
10653}
10654
10655// SetPlatform sets the Platform field's value.
10656func (s *Device) SetPlatform(v string) *Device {
10657	s.Platform = &v
10658	return s
10659}
10660
10661// SetRadio sets the Radio field's value.
10662func (s *Device) SetRadio(v string) *Device {
10663	s.Radio = &v
10664	return s
10665}
10666
10667// SetRemoteAccessEnabled sets the RemoteAccessEnabled field's value.
10668func (s *Device) SetRemoteAccessEnabled(v bool) *Device {
10669	s.RemoteAccessEnabled = &v
10670	return s
10671}
10672
10673// SetRemoteDebugEnabled sets the RemoteDebugEnabled field's value.
10674func (s *Device) SetRemoteDebugEnabled(v bool) *Device {
10675	s.RemoteDebugEnabled = &v
10676	return s
10677}
10678
10679// SetResolution sets the Resolution field's value.
10680func (s *Device) SetResolution(v *Resolution) *Device {
10681	s.Resolution = v
10682	return s
10683}
10684
10685// Represents a device filter used to select a set of devices to be included
10686// in a test run. This data structure is passed in as the deviceSelectionConfiguration
10687// parameter to ScheduleRun. For an example of the JSON request syntax, see
10688// ScheduleRun.
10689//
10690// It is also passed in as the filters parameter to ListDevices. For an example
10691// of the JSON request syntax, see ListDevices.
10692type DeviceFilter struct {
10693	_ struct{} `type:"structure"`
10694
10695	// The aspect of a device such as platform or model used as the selection criteria
10696	// in a device filter.
10697	//
10698	// The supported operators for each attribute are provided in the following
10699	// list.
10700	//
10701	// ARN
10702	//
10703	// The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
10704	//
10705	// Supported operators: EQUALS, IN, NOT_IN
10706	//
10707	// PLATFORM
10708	//
10709	// The device platform. Valid values are ANDROID or IOS.
10710	//
10711	// Supported operators: EQUALS
10712	//
10713	// OS_VERSION
10714	//
10715	// The operating system version (for example, 10.3.2).
10716	//
10717	// Supported operators: EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, LESS_THAN,
10718	// LESS_THAN_OR_EQUALS, NOT_IN
10719	//
10720	// MODEL
10721	//
10722	// The device model (for example, iPad 5th Gen).
10723	//
10724	// Supported operators: CONTAINS, EQUALS, IN, NOT_IN
10725	//
10726	// AVAILABILITY
10727	//
10728	// The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE,
10729	// BUSY, or TEMPORARY_NOT_AVAILABLE.
10730	//
10731	// Supported operators: EQUALS
10732	//
10733	// FORM_FACTOR
10734	//
10735	// The device form factor. Valid values are PHONE or TABLET.
10736	//
10737	// Supported operators: EQUALS
10738	//
10739	// MANUFACTURER
10740	//
10741	// The device manufacturer (for example, Apple).
10742	//
10743	// Supported operators: EQUALS, IN, NOT_IN
10744	//
10745	// REMOTE_ACCESS_ENABLED
10746	//
10747	// Whether the device is enabled for remote access. Valid values are TRUE or
10748	// FALSE.
10749	//
10750	// Supported operators: EQUALS
10751	//
10752	// REMOTE_DEBUG_ENABLED
10753	//
10754	// Whether the device is enabled for remote debugging. Valid values are TRUE
10755	// or FALSE.
10756	//
10757	// Supported operators: EQUALS
10758	//
10759	// Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
10760	// this filter is ignored.
10761	//
10762	// INSTANCE_ARN
10763	//
10764	// The Amazon Resource Name (ARN) of the device instance.
10765	//
10766	// Supported operators: EQUALS, IN, NOT_IN
10767	//
10768	// INSTANCE_LABELS
10769	//
10770	// The label of the device instance.
10771	//
10772	// Supported operators: CONTAINS
10773	//
10774	// FLEET_TYPE
10775	//
10776	// The fleet type. Valid values are PUBLIC or PRIVATE.
10777	//
10778	// Supported operators: EQUALS
10779	//
10780	// Attribute is a required field
10781	Attribute *string `locationName:"attribute" type:"string" required:"true" enum:"DeviceFilterAttribute"`
10782
10783	// Specifies how Device Farm compares the filter's attribute to the value. See
10784	// the attribute descriptions.
10785	//
10786	// Operator is a required field
10787	Operator *string `locationName:"operator" type:"string" required:"true" enum:"RuleOperator"`
10788
10789	// An array of one or more filter values used in a device filter.
10790	//
10791	// Operator Values
10792	//
10793	//    * The IN and NOT_IN operators can take a values array that has more than
10794	//    one element.
10795	//
10796	//    * The other operators require an array with a single element.
10797	//
10798	// Attribute Values
10799	//
10800	//    * The PLATFORM attribute can be set to ANDROID or IOS.
10801	//
10802	//    * The AVAILABILITY attribute can be set to AVAILABLE, HIGHLY_AVAILABLE,
10803	//    BUSY, or TEMPORARY_NOT_AVAILABLE.
10804	//
10805	//    * The FORM_FACTOR attribute can be set to PHONE or TABLET.
10806	//
10807	//    * The FLEET_TYPE attribute can be set to PUBLIC or PRIVATE.
10808	//
10809	// Values is a required field
10810	Values []*string `locationName:"values" type:"list" required:"true"`
10811}
10812
10813// String returns the string representation.
10814//
10815// API parameter values that are decorated as "sensitive" in the API will not
10816// be included in the string output. The member name will be present, but the
10817// value will be replaced with "sensitive".
10818func (s DeviceFilter) String() string {
10819	return awsutil.Prettify(s)
10820}
10821
10822// GoString returns the string representation.
10823//
10824// API parameter values that are decorated as "sensitive" in the API will not
10825// be included in the string output. The member name will be present, but the
10826// value will be replaced with "sensitive".
10827func (s DeviceFilter) GoString() string {
10828	return s.String()
10829}
10830
10831// Validate inspects the fields of the type to determine if they are valid.
10832func (s *DeviceFilter) Validate() error {
10833	invalidParams := request.ErrInvalidParams{Context: "DeviceFilter"}
10834	if s.Attribute == nil {
10835		invalidParams.Add(request.NewErrParamRequired("Attribute"))
10836	}
10837	if s.Operator == nil {
10838		invalidParams.Add(request.NewErrParamRequired("Operator"))
10839	}
10840	if s.Values == nil {
10841		invalidParams.Add(request.NewErrParamRequired("Values"))
10842	}
10843
10844	if invalidParams.Len() > 0 {
10845		return invalidParams
10846	}
10847	return nil
10848}
10849
10850// SetAttribute sets the Attribute field's value.
10851func (s *DeviceFilter) SetAttribute(v string) *DeviceFilter {
10852	s.Attribute = &v
10853	return s
10854}
10855
10856// SetOperator sets the Operator field's value.
10857func (s *DeviceFilter) SetOperator(v string) *DeviceFilter {
10858	s.Operator = &v
10859	return s
10860}
10861
10862// SetValues sets the Values field's value.
10863func (s *DeviceFilter) SetValues(v []*string) *DeviceFilter {
10864	s.Values = v
10865	return s
10866}
10867
10868// Represents the device instance.
10869type DeviceInstance struct {
10870	_ struct{} `type:"structure"`
10871
10872	// The Amazon Resource Name (ARN) of the device instance.
10873	Arn *string `locationName:"arn" min:"32" type:"string"`
10874
10875	// The ARN of the device.
10876	DeviceArn *string `locationName:"deviceArn" min:"32" type:"string"`
10877
10878	// A object that contains information about the instance profile.
10879	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
10880
10881	// An array of strings that describe the device instance.
10882	Labels []*string `locationName:"labels" type:"list"`
10883
10884	// The status of the device instance. Valid values are listed here.
10885	Status *string `locationName:"status" type:"string" enum:"InstanceStatus"`
10886
10887	// Unique device identifier for the device instance.
10888	Udid *string `locationName:"udid" type:"string"`
10889}
10890
10891// String returns the string representation.
10892//
10893// API parameter values that are decorated as "sensitive" in the API will not
10894// be included in the string output. The member name will be present, but the
10895// value will be replaced with "sensitive".
10896func (s DeviceInstance) String() string {
10897	return awsutil.Prettify(s)
10898}
10899
10900// GoString returns the string representation.
10901//
10902// API parameter values that are decorated as "sensitive" in the API will not
10903// be included in the string output. The member name will be present, but the
10904// value will be replaced with "sensitive".
10905func (s DeviceInstance) GoString() string {
10906	return s.String()
10907}
10908
10909// SetArn sets the Arn field's value.
10910func (s *DeviceInstance) SetArn(v string) *DeviceInstance {
10911	s.Arn = &v
10912	return s
10913}
10914
10915// SetDeviceArn sets the DeviceArn field's value.
10916func (s *DeviceInstance) SetDeviceArn(v string) *DeviceInstance {
10917	s.DeviceArn = &v
10918	return s
10919}
10920
10921// SetInstanceProfile sets the InstanceProfile field's value.
10922func (s *DeviceInstance) SetInstanceProfile(v *InstanceProfile) *DeviceInstance {
10923	s.InstanceProfile = v
10924	return s
10925}
10926
10927// SetLabels sets the Labels field's value.
10928func (s *DeviceInstance) SetLabels(v []*string) *DeviceInstance {
10929	s.Labels = v
10930	return s
10931}
10932
10933// SetStatus sets the Status field's value.
10934func (s *DeviceInstance) SetStatus(v string) *DeviceInstance {
10935	s.Status = &v
10936	return s
10937}
10938
10939// SetUdid sets the Udid field's value.
10940func (s *DeviceInstance) SetUdid(v string) *DeviceInstance {
10941	s.Udid = &v
10942	return s
10943}
10944
10945// Represents the total (metered or unmetered) minutes used by the resource
10946// to run tests. Contains the sum of minutes consumed by all children.
10947type DeviceMinutes struct {
10948	_ struct{} `type:"structure"`
10949
10950	// When specified, represents only the sum of metered minutes used by the resource
10951	// to run tests.
10952	Metered *float64 `locationName:"metered" type:"double"`
10953
10954	// When specified, represents the total minutes used by the resource to run
10955	// tests.
10956	Total *float64 `locationName:"total" type:"double"`
10957
10958	// When specified, represents only the sum of unmetered minutes used by the
10959	// resource to run tests.
10960	Unmetered *float64 `locationName:"unmetered" type:"double"`
10961}
10962
10963// String returns the string representation.
10964//
10965// API parameter values that are decorated as "sensitive" in the API will not
10966// be included in the string output. The member name will be present, but the
10967// value will be replaced with "sensitive".
10968func (s DeviceMinutes) String() string {
10969	return awsutil.Prettify(s)
10970}
10971
10972// GoString returns the string representation.
10973//
10974// API parameter values that are decorated as "sensitive" in the API will not
10975// be included in the string output. The member name will be present, but the
10976// value will be replaced with "sensitive".
10977func (s DeviceMinutes) GoString() string {
10978	return s.String()
10979}
10980
10981// SetMetered sets the Metered field's value.
10982func (s *DeviceMinutes) SetMetered(v float64) *DeviceMinutes {
10983	s.Metered = &v
10984	return s
10985}
10986
10987// SetTotal sets the Total field's value.
10988func (s *DeviceMinutes) SetTotal(v float64) *DeviceMinutes {
10989	s.Total = &v
10990	return s
10991}
10992
10993// SetUnmetered sets the Unmetered field's value.
10994func (s *DeviceMinutes) SetUnmetered(v float64) *DeviceMinutes {
10995	s.Unmetered = &v
10996	return s
10997}
10998
10999// Represents a collection of device types.
11000type DevicePool struct {
11001	_ struct{} `type:"structure"`
11002
11003	// The device pool's ARN.
11004	Arn *string `locationName:"arn" min:"32" type:"string"`
11005
11006	// The device pool's description.
11007	Description *string `locationName:"description" type:"string"`
11008
11009	// The number of devices that Device Farm can add to your device pool. Device
11010	// Farm adds devices that are available and meet the criteria that you assign
11011	// for the rules parameter. Depending on how many devices meet these constraints,
11012	// your device pool might contain fewer devices than the value for this parameter.
11013	//
11014	// By specifying the maximum number of devices, you can control the costs that
11015	// you incur by running tests.
11016	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
11017
11018	// The device pool's name.
11019	Name *string `locationName:"name" type:"string"`
11020
11021	// Information about the device pool's rules.
11022	Rules []*Rule `locationName:"rules" type:"list"`
11023
11024	// The device pool's type.
11025	//
11026	// Allowed values include:
11027	//
11028	//    * CURATED: A device pool that is created and managed by AWS Device Farm.
11029	//
11030	//    * PRIVATE: A device pool that is created and managed by the device pool
11031	//    developer.
11032	Type *string `locationName:"type" type:"string" enum:"DevicePoolType"`
11033}
11034
11035// String returns the string representation.
11036//
11037// API parameter values that are decorated as "sensitive" in the API will not
11038// be included in the string output. The member name will be present, but the
11039// value will be replaced with "sensitive".
11040func (s DevicePool) String() string {
11041	return awsutil.Prettify(s)
11042}
11043
11044// GoString returns the string representation.
11045//
11046// API parameter values that are decorated as "sensitive" in the API will not
11047// be included in the string output. The member name will be present, but the
11048// value will be replaced with "sensitive".
11049func (s DevicePool) GoString() string {
11050	return s.String()
11051}
11052
11053// SetArn sets the Arn field's value.
11054func (s *DevicePool) SetArn(v string) *DevicePool {
11055	s.Arn = &v
11056	return s
11057}
11058
11059// SetDescription sets the Description field's value.
11060func (s *DevicePool) SetDescription(v string) *DevicePool {
11061	s.Description = &v
11062	return s
11063}
11064
11065// SetMaxDevices sets the MaxDevices field's value.
11066func (s *DevicePool) SetMaxDevices(v int64) *DevicePool {
11067	s.MaxDevices = &v
11068	return s
11069}
11070
11071// SetName sets the Name field's value.
11072func (s *DevicePool) SetName(v string) *DevicePool {
11073	s.Name = &v
11074	return s
11075}
11076
11077// SetRules sets the Rules field's value.
11078func (s *DevicePool) SetRules(v []*Rule) *DevicePool {
11079	s.Rules = v
11080	return s
11081}
11082
11083// SetType sets the Type field's value.
11084func (s *DevicePool) SetType(v string) *DevicePool {
11085	s.Type = &v
11086	return s
11087}
11088
11089// Represents a device pool compatibility result.
11090type DevicePoolCompatibilityResult struct {
11091	_ struct{} `type:"structure"`
11092
11093	// Whether the result was compatible with the device pool.
11094	Compatible *bool `locationName:"compatible" type:"boolean"`
11095
11096	// The device (phone or tablet) to return information about.
11097	Device *Device `locationName:"device" type:"structure"`
11098
11099	// Information about the compatibility.
11100	IncompatibilityMessages []*IncompatibilityMessage `locationName:"incompatibilityMessages" type:"list"`
11101}
11102
11103// String returns the string representation.
11104//
11105// API parameter values that are decorated as "sensitive" in the API will not
11106// be included in the string output. The member name will be present, but the
11107// value will be replaced with "sensitive".
11108func (s DevicePoolCompatibilityResult) String() string {
11109	return awsutil.Prettify(s)
11110}
11111
11112// GoString returns the string representation.
11113//
11114// API parameter values that are decorated as "sensitive" in the API will not
11115// be included in the string output. The member name will be present, but the
11116// value will be replaced with "sensitive".
11117func (s DevicePoolCompatibilityResult) GoString() string {
11118	return s.String()
11119}
11120
11121// SetCompatible sets the Compatible field's value.
11122func (s *DevicePoolCompatibilityResult) SetCompatible(v bool) *DevicePoolCompatibilityResult {
11123	s.Compatible = &v
11124	return s
11125}
11126
11127// SetDevice sets the Device field's value.
11128func (s *DevicePoolCompatibilityResult) SetDevice(v *Device) *DevicePoolCompatibilityResult {
11129	s.Device = v
11130	return s
11131}
11132
11133// SetIncompatibilityMessages sets the IncompatibilityMessages field's value.
11134func (s *DevicePoolCompatibilityResult) SetIncompatibilityMessages(v []*IncompatibilityMessage) *DevicePoolCompatibilityResult {
11135	s.IncompatibilityMessages = v
11136	return s
11137}
11138
11139// Represents the device filters used in a test run and the maximum number of
11140// devices to be included in the run. It is passed in as the deviceSelectionConfiguration
11141// request parameter in ScheduleRun.
11142type DeviceSelectionConfiguration struct {
11143	_ struct{} `type:"structure"`
11144
11145	// Used to dynamically select a set of devices for a test run. A filter is made
11146	// up of an attribute, an operator, and one or more values.
11147	//
11148	//    * Attribute The aspect of a device such as platform or model used as the
11149	//    selection criteria in a device filter. Allowed values include: ARN: The
11150	//    Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
11151	//    PLATFORM: The device platform. Valid values are ANDROID or IOS. OS_VERSION:
11152	//    The operating system version (for example, 10.3.2). MODEL: The device
11153	//    model (for example, iPad 5th Gen). AVAILABILITY: The current availability
11154	//    of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or
11155	//    TEMPORARY_NOT_AVAILABLE. FORM_FACTOR: The device form factor. Valid values
11156	//    are PHONE or TABLET. MANUFACTURER: The device manufacturer (for example,
11157	//    Apple). REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote
11158	//    access. Valid values are TRUE or FALSE. REMOTE_DEBUG_ENABLED: Whether
11159	//    the device is enabled for remote debugging. Valid values are TRUE or FALSE.
11160	//    Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
11161	//    this filter is ignored. INSTANCE_ARN: The Amazon Resource Name (ARN) of
11162	//    the device instance. INSTANCE_LABELS: The label of the device instance.
11163	//    FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE.
11164	//
11165	//    * Operator The filter operator. The EQUALS operator is available for every
11166	//    attribute except INSTANCE_LABELS. The CONTAINS operator is available for
11167	//    the INSTANCE_LABELS and MODEL attributes. The IN and NOT_IN operators
11168	//    are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN
11169	//    attributes. The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS
11170	//    operators are also available for the OS_VERSION attribute.
11171	//
11172	//    * Values An array of one or more filter values. Operator Values The IN
11173	//    and NOT_IN operators can take a values array that has more than one element.
11174	//    The other operators require an array with a single element. Attribute
11175	//    Values The PLATFORM attribute can be set to ANDROID or IOS. The AVAILABILITY
11176	//    attribute can be set to AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
11177	//    The FORM_FACTOR attribute can be set to PHONE or TABLET. The FLEET_TYPE
11178	//    attribute can be set to PUBLIC or PRIVATE.
11179	//
11180	// Filters is a required field
11181	Filters []*DeviceFilter `locationName:"filters" type:"list" required:"true"`
11182
11183	// The maximum number of devices to be included in a test run.
11184	//
11185	// MaxDevices is a required field
11186	MaxDevices *int64 `locationName:"maxDevices" type:"integer" required:"true"`
11187}
11188
11189// String returns the string representation.
11190//
11191// API parameter values that are decorated as "sensitive" in the API will not
11192// be included in the string output. The member name will be present, but the
11193// value will be replaced with "sensitive".
11194func (s DeviceSelectionConfiguration) String() string {
11195	return awsutil.Prettify(s)
11196}
11197
11198// GoString returns the string representation.
11199//
11200// API parameter values that are decorated as "sensitive" in the API will not
11201// be included in the string output. The member name will be present, but the
11202// value will be replaced with "sensitive".
11203func (s DeviceSelectionConfiguration) GoString() string {
11204	return s.String()
11205}
11206
11207// Validate inspects the fields of the type to determine if they are valid.
11208func (s *DeviceSelectionConfiguration) Validate() error {
11209	invalidParams := request.ErrInvalidParams{Context: "DeviceSelectionConfiguration"}
11210	if s.Filters == nil {
11211		invalidParams.Add(request.NewErrParamRequired("Filters"))
11212	}
11213	if s.MaxDevices == nil {
11214		invalidParams.Add(request.NewErrParamRequired("MaxDevices"))
11215	}
11216	if s.Filters != nil {
11217		for i, v := range s.Filters {
11218			if v == nil {
11219				continue
11220			}
11221			if err := v.Validate(); err != nil {
11222				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11223			}
11224		}
11225	}
11226
11227	if invalidParams.Len() > 0 {
11228		return invalidParams
11229	}
11230	return nil
11231}
11232
11233// SetFilters sets the Filters field's value.
11234func (s *DeviceSelectionConfiguration) SetFilters(v []*DeviceFilter) *DeviceSelectionConfiguration {
11235	s.Filters = v
11236	return s
11237}
11238
11239// SetMaxDevices sets the MaxDevices field's value.
11240func (s *DeviceSelectionConfiguration) SetMaxDevices(v int64) *DeviceSelectionConfiguration {
11241	s.MaxDevices = &v
11242	return s
11243}
11244
11245// Contains the run results requested by the device selection configuration
11246// and how many devices were returned. For an example of the JSON response syntax,
11247// see ScheduleRun.
11248type DeviceSelectionResult struct {
11249	_ struct{} `type:"structure"`
11250
11251	// The filters in a device selection result.
11252	Filters []*DeviceFilter `locationName:"filters" type:"list"`
11253
11254	// The number of devices that matched the device filter selection criteria.
11255	MatchedDevicesCount *int64 `locationName:"matchedDevicesCount" type:"integer"`
11256
11257	// The maximum number of devices to be selected by a device filter and included
11258	// in a test run.
11259	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
11260}
11261
11262// String returns the string representation.
11263//
11264// API parameter values that are decorated as "sensitive" in the API will not
11265// be included in the string output. The member name will be present, but the
11266// value will be replaced with "sensitive".
11267func (s DeviceSelectionResult) String() string {
11268	return awsutil.Prettify(s)
11269}
11270
11271// GoString returns the string representation.
11272//
11273// API parameter values that are decorated as "sensitive" in the API will not
11274// be included in the string output. The member name will be present, but the
11275// value will be replaced with "sensitive".
11276func (s DeviceSelectionResult) GoString() string {
11277	return s.String()
11278}
11279
11280// SetFilters sets the Filters field's value.
11281func (s *DeviceSelectionResult) SetFilters(v []*DeviceFilter) *DeviceSelectionResult {
11282	s.Filters = v
11283	return s
11284}
11285
11286// SetMatchedDevicesCount sets the MatchedDevicesCount field's value.
11287func (s *DeviceSelectionResult) SetMatchedDevicesCount(v int64) *DeviceSelectionResult {
11288	s.MatchedDevicesCount = &v
11289	return s
11290}
11291
11292// SetMaxDevices sets the MaxDevices field's value.
11293func (s *DeviceSelectionResult) SetMaxDevices(v int64) *DeviceSelectionResult {
11294	s.MaxDevices = &v
11295	return s
11296}
11297
11298// Represents configuration information about a test run, such as the execution
11299// timeout (in minutes).
11300type ExecutionConfiguration struct {
11301	_ struct{} `type:"structure"`
11302
11303	// True if account cleanup is enabled at the beginning of the test. Otherwise,
11304	// false.
11305	AccountsCleanup *bool `locationName:"accountsCleanup" type:"boolean"`
11306
11307	// True if app package cleanup is enabled at the beginning of the test. Otherwise,
11308	// false.
11309	AppPackagesCleanup *bool `locationName:"appPackagesCleanup" type:"boolean"`
11310
11311	// The number of minutes a test run executes before it times out.
11312	JobTimeoutMinutes *int64 `locationName:"jobTimeoutMinutes" type:"integer"`
11313
11314	// When set to true, for private devices, Device Farm does not sign your app
11315	// again. For public devices, Device Farm always signs your apps again.
11316	//
11317	// For more information about how Device Farm re-signs your apps, see Do you
11318	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
11319	// Farm FAQs.
11320	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
11321
11322	// Set to true to enable video capture. Otherwise, set to false. The default
11323	// is true.
11324	VideoCapture *bool `locationName:"videoCapture" type:"boolean"`
11325}
11326
11327// String returns the string representation.
11328//
11329// API parameter values that are decorated as "sensitive" in the API will not
11330// be included in the string output. The member name will be present, but the
11331// value will be replaced with "sensitive".
11332func (s ExecutionConfiguration) String() string {
11333	return awsutil.Prettify(s)
11334}
11335
11336// GoString returns the string representation.
11337//
11338// API parameter values that are decorated as "sensitive" in the API will not
11339// be included in the string output. The member name will be present, but the
11340// value will be replaced with "sensitive".
11341func (s ExecutionConfiguration) GoString() string {
11342	return s.String()
11343}
11344
11345// SetAccountsCleanup sets the AccountsCleanup field's value.
11346func (s *ExecutionConfiguration) SetAccountsCleanup(v bool) *ExecutionConfiguration {
11347	s.AccountsCleanup = &v
11348	return s
11349}
11350
11351// SetAppPackagesCleanup sets the AppPackagesCleanup field's value.
11352func (s *ExecutionConfiguration) SetAppPackagesCleanup(v bool) *ExecutionConfiguration {
11353	s.AppPackagesCleanup = &v
11354	return s
11355}
11356
11357// SetJobTimeoutMinutes sets the JobTimeoutMinutes field's value.
11358func (s *ExecutionConfiguration) SetJobTimeoutMinutes(v int64) *ExecutionConfiguration {
11359	s.JobTimeoutMinutes = &v
11360	return s
11361}
11362
11363// SetSkipAppResign sets the SkipAppResign field's value.
11364func (s *ExecutionConfiguration) SetSkipAppResign(v bool) *ExecutionConfiguration {
11365	s.SkipAppResign = &v
11366	return s
11367}
11368
11369// SetVideoCapture sets the VideoCapture field's value.
11370func (s *ExecutionConfiguration) SetVideoCapture(v bool) *ExecutionConfiguration {
11371	s.VideoCapture = &v
11372	return s
11373}
11374
11375// Represents the request sent to retrieve the account settings.
11376type GetAccountSettingsInput struct {
11377	_ struct{} `type:"structure"`
11378}
11379
11380// String returns the string representation.
11381//
11382// API parameter values that are decorated as "sensitive" in the API will not
11383// be included in the string output. The member name will be present, but the
11384// value will be replaced with "sensitive".
11385func (s GetAccountSettingsInput) String() string {
11386	return awsutil.Prettify(s)
11387}
11388
11389// GoString returns the string representation.
11390//
11391// API parameter values that are decorated as "sensitive" in the API will not
11392// be included in the string output. The member name will be present, but the
11393// value will be replaced with "sensitive".
11394func (s GetAccountSettingsInput) GoString() string {
11395	return s.String()
11396}
11397
11398// Represents the account settings return values from the GetAccountSettings
11399// request.
11400type GetAccountSettingsOutput struct {
11401	_ struct{} `type:"structure"`
11402
11403	// The account settings.
11404	AccountSettings *AccountSettings `locationName:"accountSettings" type:"structure"`
11405}
11406
11407// String returns the string representation.
11408//
11409// API parameter values that are decorated as "sensitive" in the API will not
11410// be included in the string output. The member name will be present, but the
11411// value will be replaced with "sensitive".
11412func (s GetAccountSettingsOutput) String() string {
11413	return awsutil.Prettify(s)
11414}
11415
11416// GoString returns the string representation.
11417//
11418// API parameter values that are decorated as "sensitive" in the API will not
11419// be included in the string output. The member name will be present, but the
11420// value will be replaced with "sensitive".
11421func (s GetAccountSettingsOutput) GoString() string {
11422	return s.String()
11423}
11424
11425// SetAccountSettings sets the AccountSettings field's value.
11426func (s *GetAccountSettingsOutput) SetAccountSettings(v *AccountSettings) *GetAccountSettingsOutput {
11427	s.AccountSettings = v
11428	return s
11429}
11430
11431// Represents a request to the get device request.
11432type GetDeviceInput struct {
11433	_ struct{} `type:"structure"`
11434
11435	// The device type's ARN.
11436	//
11437	// Arn is a required field
11438	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11439}
11440
11441// String returns the string representation.
11442//
11443// API parameter values that are decorated as "sensitive" in the API will not
11444// be included in the string output. The member name will be present, but the
11445// value will be replaced with "sensitive".
11446func (s GetDeviceInput) String() string {
11447	return awsutil.Prettify(s)
11448}
11449
11450// GoString returns the string representation.
11451//
11452// API parameter values that are decorated as "sensitive" in the API will not
11453// be included in the string output. The member name will be present, but the
11454// value will be replaced with "sensitive".
11455func (s GetDeviceInput) GoString() string {
11456	return s.String()
11457}
11458
11459// Validate inspects the fields of the type to determine if they are valid.
11460func (s *GetDeviceInput) Validate() error {
11461	invalidParams := request.ErrInvalidParams{Context: "GetDeviceInput"}
11462	if s.Arn == nil {
11463		invalidParams.Add(request.NewErrParamRequired("Arn"))
11464	}
11465	if s.Arn != nil && len(*s.Arn) < 32 {
11466		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11467	}
11468
11469	if invalidParams.Len() > 0 {
11470		return invalidParams
11471	}
11472	return nil
11473}
11474
11475// SetArn sets the Arn field's value.
11476func (s *GetDeviceInput) SetArn(v string) *GetDeviceInput {
11477	s.Arn = &v
11478	return s
11479}
11480
11481type GetDeviceInstanceInput struct {
11482	_ struct{} `type:"structure"`
11483
11484	// The Amazon Resource Name (ARN) of the instance you're requesting information
11485	// about.
11486	//
11487	// Arn is a required field
11488	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11489}
11490
11491// String returns the string representation.
11492//
11493// API parameter values that are decorated as "sensitive" in the API will not
11494// be included in the string output. The member name will be present, but the
11495// value will be replaced with "sensitive".
11496func (s GetDeviceInstanceInput) String() string {
11497	return awsutil.Prettify(s)
11498}
11499
11500// GoString returns the string representation.
11501//
11502// API parameter values that are decorated as "sensitive" in the API will not
11503// be included in the string output. The member name will be present, but the
11504// value will be replaced with "sensitive".
11505func (s GetDeviceInstanceInput) GoString() string {
11506	return s.String()
11507}
11508
11509// Validate inspects the fields of the type to determine if they are valid.
11510func (s *GetDeviceInstanceInput) Validate() error {
11511	invalidParams := request.ErrInvalidParams{Context: "GetDeviceInstanceInput"}
11512	if s.Arn == nil {
11513		invalidParams.Add(request.NewErrParamRequired("Arn"))
11514	}
11515	if s.Arn != nil && len(*s.Arn) < 32 {
11516		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11517	}
11518
11519	if invalidParams.Len() > 0 {
11520		return invalidParams
11521	}
11522	return nil
11523}
11524
11525// SetArn sets the Arn field's value.
11526func (s *GetDeviceInstanceInput) SetArn(v string) *GetDeviceInstanceInput {
11527	s.Arn = &v
11528	return s
11529}
11530
11531type GetDeviceInstanceOutput struct {
11532	_ struct{} `type:"structure"`
11533
11534	// An object that contains information about your device instance.
11535	DeviceInstance *DeviceInstance `locationName:"deviceInstance" type:"structure"`
11536}
11537
11538// String returns the string representation.
11539//
11540// API parameter values that are decorated as "sensitive" in the API will not
11541// be included in the string output. The member name will be present, but the
11542// value will be replaced with "sensitive".
11543func (s GetDeviceInstanceOutput) String() string {
11544	return awsutil.Prettify(s)
11545}
11546
11547// GoString returns the string representation.
11548//
11549// API parameter values that are decorated as "sensitive" in the API will not
11550// be included in the string output. The member name will be present, but the
11551// value will be replaced with "sensitive".
11552func (s GetDeviceInstanceOutput) GoString() string {
11553	return s.String()
11554}
11555
11556// SetDeviceInstance sets the DeviceInstance field's value.
11557func (s *GetDeviceInstanceOutput) SetDeviceInstance(v *DeviceInstance) *GetDeviceInstanceOutput {
11558	s.DeviceInstance = v
11559	return s
11560}
11561
11562// Represents the result of a get device request.
11563type GetDeviceOutput struct {
11564	_ struct{} `type:"structure"`
11565
11566	// An object that contains information about the requested device.
11567	Device *Device `locationName:"device" type:"structure"`
11568}
11569
11570// String returns the string representation.
11571//
11572// API parameter values that are decorated as "sensitive" in the API will not
11573// be included in the string output. The member name will be present, but the
11574// value will be replaced with "sensitive".
11575func (s GetDeviceOutput) String() string {
11576	return awsutil.Prettify(s)
11577}
11578
11579// GoString returns the string representation.
11580//
11581// API parameter values that are decorated as "sensitive" in the API will not
11582// be included in the string output. The member name will be present, but the
11583// value will be replaced with "sensitive".
11584func (s GetDeviceOutput) GoString() string {
11585	return s.String()
11586}
11587
11588// SetDevice sets the Device field's value.
11589func (s *GetDeviceOutput) SetDevice(v *Device) *GetDeviceOutput {
11590	s.Device = v
11591	return s
11592}
11593
11594// Represents a request to the get device pool compatibility operation.
11595type GetDevicePoolCompatibilityInput struct {
11596	_ struct{} `type:"structure"`
11597
11598	// The ARN of the app that is associated with the specified device pool.
11599	AppArn *string `locationName:"appArn" min:"32" type:"string"`
11600
11601	// An object that contains information about the settings for a run.
11602	Configuration *ScheduleRunConfiguration `locationName:"configuration" type:"structure"`
11603
11604	// The device pool's ARN.
11605	//
11606	// DevicePoolArn is a required field
11607	DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string" required:"true"`
11608
11609	// Information about the uploaded test to be run against the device pool.
11610	Test *ScheduleRunTest `locationName:"test" type:"structure"`
11611
11612	// The test type for the specified device pool.
11613	//
11614	// Allowed values include the following:
11615	//
11616	//    * BUILTIN_FUZZ.
11617	//
11618	//    * BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android
11619	//    app, interacting with it and capturing screenshots at the same time.
11620	//
11621	//    * APPIUM_JAVA_JUNIT.
11622	//
11623	//    * APPIUM_JAVA_TESTNG.
11624	//
11625	//    * APPIUM_PYTHON.
11626	//
11627	//    * APPIUM_NODE.
11628	//
11629	//    * APPIUM_RUBY.
11630	//
11631	//    * APPIUM_WEB_JAVA_JUNIT.
11632	//
11633	//    * APPIUM_WEB_JAVA_TESTNG.
11634	//
11635	//    * APPIUM_WEB_PYTHON.
11636	//
11637	//    * APPIUM_WEB_NODE.
11638	//
11639	//    * APPIUM_WEB_RUBY.
11640	//
11641	//    * CALABASH.
11642	//
11643	//    * INSTRUMENTATION.
11644	//
11645	//    * UIAUTOMATION.
11646	//
11647	//    * UIAUTOMATOR.
11648	//
11649	//    * XCTEST.
11650	//
11651	//    * XCTEST_UI.
11652	TestType *string `locationName:"testType" type:"string" enum:"TestType"`
11653}
11654
11655// String returns the string representation.
11656//
11657// API parameter values that are decorated as "sensitive" in the API will not
11658// be included in the string output. The member name will be present, but the
11659// value will be replaced with "sensitive".
11660func (s GetDevicePoolCompatibilityInput) String() string {
11661	return awsutil.Prettify(s)
11662}
11663
11664// GoString returns the string representation.
11665//
11666// API parameter values that are decorated as "sensitive" in the API will not
11667// be included in the string output. The member name will be present, but the
11668// value will be replaced with "sensitive".
11669func (s GetDevicePoolCompatibilityInput) GoString() string {
11670	return s.String()
11671}
11672
11673// Validate inspects the fields of the type to determine if they are valid.
11674func (s *GetDevicePoolCompatibilityInput) Validate() error {
11675	invalidParams := request.ErrInvalidParams{Context: "GetDevicePoolCompatibilityInput"}
11676	if s.AppArn != nil && len(*s.AppArn) < 32 {
11677		invalidParams.Add(request.NewErrParamMinLen("AppArn", 32))
11678	}
11679	if s.DevicePoolArn == nil {
11680		invalidParams.Add(request.NewErrParamRequired("DevicePoolArn"))
11681	}
11682	if s.DevicePoolArn != nil && len(*s.DevicePoolArn) < 32 {
11683		invalidParams.Add(request.NewErrParamMinLen("DevicePoolArn", 32))
11684	}
11685	if s.Configuration != nil {
11686		if err := s.Configuration.Validate(); err != nil {
11687			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
11688		}
11689	}
11690	if s.Test != nil {
11691		if err := s.Test.Validate(); err != nil {
11692			invalidParams.AddNested("Test", err.(request.ErrInvalidParams))
11693		}
11694	}
11695
11696	if invalidParams.Len() > 0 {
11697		return invalidParams
11698	}
11699	return nil
11700}
11701
11702// SetAppArn sets the AppArn field's value.
11703func (s *GetDevicePoolCompatibilityInput) SetAppArn(v string) *GetDevicePoolCompatibilityInput {
11704	s.AppArn = &v
11705	return s
11706}
11707
11708// SetConfiguration sets the Configuration field's value.
11709func (s *GetDevicePoolCompatibilityInput) SetConfiguration(v *ScheduleRunConfiguration) *GetDevicePoolCompatibilityInput {
11710	s.Configuration = v
11711	return s
11712}
11713
11714// SetDevicePoolArn sets the DevicePoolArn field's value.
11715func (s *GetDevicePoolCompatibilityInput) SetDevicePoolArn(v string) *GetDevicePoolCompatibilityInput {
11716	s.DevicePoolArn = &v
11717	return s
11718}
11719
11720// SetTest sets the Test field's value.
11721func (s *GetDevicePoolCompatibilityInput) SetTest(v *ScheduleRunTest) *GetDevicePoolCompatibilityInput {
11722	s.Test = v
11723	return s
11724}
11725
11726// SetTestType sets the TestType field's value.
11727func (s *GetDevicePoolCompatibilityInput) SetTestType(v string) *GetDevicePoolCompatibilityInput {
11728	s.TestType = &v
11729	return s
11730}
11731
11732// Represents the result of describe device pool compatibility request.
11733type GetDevicePoolCompatibilityOutput struct {
11734	_ struct{} `type:"structure"`
11735
11736	// Information about compatible devices.
11737	CompatibleDevices []*DevicePoolCompatibilityResult `locationName:"compatibleDevices" type:"list"`
11738
11739	// Information about incompatible devices.
11740	IncompatibleDevices []*DevicePoolCompatibilityResult `locationName:"incompatibleDevices" type:"list"`
11741}
11742
11743// String returns the string representation.
11744//
11745// API parameter values that are decorated as "sensitive" in the API will not
11746// be included in the string output. The member name will be present, but the
11747// value will be replaced with "sensitive".
11748func (s GetDevicePoolCompatibilityOutput) String() string {
11749	return awsutil.Prettify(s)
11750}
11751
11752// GoString returns the string representation.
11753//
11754// API parameter values that are decorated as "sensitive" in the API will not
11755// be included in the string output. The member name will be present, but the
11756// value will be replaced with "sensitive".
11757func (s GetDevicePoolCompatibilityOutput) GoString() string {
11758	return s.String()
11759}
11760
11761// SetCompatibleDevices sets the CompatibleDevices field's value.
11762func (s *GetDevicePoolCompatibilityOutput) SetCompatibleDevices(v []*DevicePoolCompatibilityResult) *GetDevicePoolCompatibilityOutput {
11763	s.CompatibleDevices = v
11764	return s
11765}
11766
11767// SetIncompatibleDevices sets the IncompatibleDevices field's value.
11768func (s *GetDevicePoolCompatibilityOutput) SetIncompatibleDevices(v []*DevicePoolCompatibilityResult) *GetDevicePoolCompatibilityOutput {
11769	s.IncompatibleDevices = v
11770	return s
11771}
11772
11773// Represents a request to the get device pool operation.
11774type GetDevicePoolInput struct {
11775	_ struct{} `type:"structure"`
11776
11777	// The device pool's ARN.
11778	//
11779	// Arn is a required field
11780	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11781}
11782
11783// String returns the string representation.
11784//
11785// API parameter values that are decorated as "sensitive" in the API will not
11786// be included in the string output. The member name will be present, but the
11787// value will be replaced with "sensitive".
11788func (s GetDevicePoolInput) String() string {
11789	return awsutil.Prettify(s)
11790}
11791
11792// GoString returns the string representation.
11793//
11794// API parameter values that are decorated as "sensitive" in the API will not
11795// be included in the string output. The member name will be present, but the
11796// value will be replaced with "sensitive".
11797func (s GetDevicePoolInput) GoString() string {
11798	return s.String()
11799}
11800
11801// Validate inspects the fields of the type to determine if they are valid.
11802func (s *GetDevicePoolInput) Validate() error {
11803	invalidParams := request.ErrInvalidParams{Context: "GetDevicePoolInput"}
11804	if s.Arn == nil {
11805		invalidParams.Add(request.NewErrParamRequired("Arn"))
11806	}
11807	if s.Arn != nil && len(*s.Arn) < 32 {
11808		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11809	}
11810
11811	if invalidParams.Len() > 0 {
11812		return invalidParams
11813	}
11814	return nil
11815}
11816
11817// SetArn sets the Arn field's value.
11818func (s *GetDevicePoolInput) SetArn(v string) *GetDevicePoolInput {
11819	s.Arn = &v
11820	return s
11821}
11822
11823// Represents the result of a get device pool request.
11824type GetDevicePoolOutput struct {
11825	_ struct{} `type:"structure"`
11826
11827	// An object that contains information about the requested device pool.
11828	DevicePool *DevicePool `locationName:"devicePool" type:"structure"`
11829}
11830
11831// String returns the string representation.
11832//
11833// API parameter values that are decorated as "sensitive" in the API will not
11834// be included in the string output. The member name will be present, but the
11835// value will be replaced with "sensitive".
11836func (s GetDevicePoolOutput) String() string {
11837	return awsutil.Prettify(s)
11838}
11839
11840// GoString returns the string representation.
11841//
11842// API parameter values that are decorated as "sensitive" in the API will not
11843// be included in the string output. The member name will be present, but the
11844// value will be replaced with "sensitive".
11845func (s GetDevicePoolOutput) GoString() string {
11846	return s.String()
11847}
11848
11849// SetDevicePool sets the DevicePool field's value.
11850func (s *GetDevicePoolOutput) SetDevicePool(v *DevicePool) *GetDevicePoolOutput {
11851	s.DevicePool = v
11852	return s
11853}
11854
11855type GetInstanceProfileInput struct {
11856	_ struct{} `type:"structure"`
11857
11858	// The Amazon Resource Name (ARN) of an instance profile.
11859	//
11860	// Arn is a required field
11861	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11862}
11863
11864// String returns the string representation.
11865//
11866// API parameter values that are decorated as "sensitive" in the API will not
11867// be included in the string output. The member name will be present, but the
11868// value will be replaced with "sensitive".
11869func (s GetInstanceProfileInput) String() string {
11870	return awsutil.Prettify(s)
11871}
11872
11873// GoString returns the string representation.
11874//
11875// API parameter values that are decorated as "sensitive" in the API will not
11876// be included in the string output. The member name will be present, but the
11877// value will be replaced with "sensitive".
11878func (s GetInstanceProfileInput) GoString() string {
11879	return s.String()
11880}
11881
11882// Validate inspects the fields of the type to determine if they are valid.
11883func (s *GetInstanceProfileInput) Validate() error {
11884	invalidParams := request.ErrInvalidParams{Context: "GetInstanceProfileInput"}
11885	if s.Arn == nil {
11886		invalidParams.Add(request.NewErrParamRequired("Arn"))
11887	}
11888	if s.Arn != nil && len(*s.Arn) < 32 {
11889		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11890	}
11891
11892	if invalidParams.Len() > 0 {
11893		return invalidParams
11894	}
11895	return nil
11896}
11897
11898// SetArn sets the Arn field's value.
11899func (s *GetInstanceProfileInput) SetArn(v string) *GetInstanceProfileInput {
11900	s.Arn = &v
11901	return s
11902}
11903
11904type GetInstanceProfileOutput struct {
11905	_ struct{} `type:"structure"`
11906
11907	// An object that contains information about an instance profile.
11908	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
11909}
11910
11911// String returns the string representation.
11912//
11913// API parameter values that are decorated as "sensitive" in the API will not
11914// be included in the string output. The member name will be present, but the
11915// value will be replaced with "sensitive".
11916func (s GetInstanceProfileOutput) String() string {
11917	return awsutil.Prettify(s)
11918}
11919
11920// GoString returns the string representation.
11921//
11922// API parameter values that are decorated as "sensitive" in the API will not
11923// be included in the string output. The member name will be present, but the
11924// value will be replaced with "sensitive".
11925func (s GetInstanceProfileOutput) GoString() string {
11926	return s.String()
11927}
11928
11929// SetInstanceProfile sets the InstanceProfile field's value.
11930func (s *GetInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *GetInstanceProfileOutput {
11931	s.InstanceProfile = v
11932	return s
11933}
11934
11935// Represents a request to the get job operation.
11936type GetJobInput struct {
11937	_ struct{} `type:"structure"`
11938
11939	// The job's ARN.
11940	//
11941	// Arn is a required field
11942	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11943}
11944
11945// String returns the string representation.
11946//
11947// API parameter values that are decorated as "sensitive" in the API will not
11948// be included in the string output. The member name will be present, but the
11949// value will be replaced with "sensitive".
11950func (s GetJobInput) String() string {
11951	return awsutil.Prettify(s)
11952}
11953
11954// GoString returns the string representation.
11955//
11956// API parameter values that are decorated as "sensitive" in the API will not
11957// be included in the string output. The member name will be present, but the
11958// value will be replaced with "sensitive".
11959func (s GetJobInput) GoString() string {
11960	return s.String()
11961}
11962
11963// Validate inspects the fields of the type to determine if they are valid.
11964func (s *GetJobInput) Validate() error {
11965	invalidParams := request.ErrInvalidParams{Context: "GetJobInput"}
11966	if s.Arn == nil {
11967		invalidParams.Add(request.NewErrParamRequired("Arn"))
11968	}
11969	if s.Arn != nil && len(*s.Arn) < 32 {
11970		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11971	}
11972
11973	if invalidParams.Len() > 0 {
11974		return invalidParams
11975	}
11976	return nil
11977}
11978
11979// SetArn sets the Arn field's value.
11980func (s *GetJobInput) SetArn(v string) *GetJobInput {
11981	s.Arn = &v
11982	return s
11983}
11984
11985// Represents the result of a get job request.
11986type GetJobOutput struct {
11987	_ struct{} `type:"structure"`
11988
11989	// An object that contains information about the requested job.
11990	Job *Job `locationName:"job" type:"structure"`
11991}
11992
11993// String returns the string representation.
11994//
11995// API parameter values that are decorated as "sensitive" in the API will not
11996// be included in the string output. The member name will be present, but the
11997// value will be replaced with "sensitive".
11998func (s GetJobOutput) String() string {
11999	return awsutil.Prettify(s)
12000}
12001
12002// GoString returns the string representation.
12003//
12004// API parameter values that are decorated as "sensitive" in the API will not
12005// be included in the string output. The member name will be present, but the
12006// value will be replaced with "sensitive".
12007func (s GetJobOutput) GoString() string {
12008	return s.String()
12009}
12010
12011// SetJob sets the Job field's value.
12012func (s *GetJobOutput) SetJob(v *Job) *GetJobOutput {
12013	s.Job = v
12014	return s
12015}
12016
12017type GetNetworkProfileInput struct {
12018	_ struct{} `type:"structure"`
12019
12020	// The ARN of the network profile to return information about.
12021	//
12022	// Arn is a required field
12023	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12024}
12025
12026// String returns the string representation.
12027//
12028// API parameter values that are decorated as "sensitive" in the API will not
12029// be included in the string output. The member name will be present, but the
12030// value will be replaced with "sensitive".
12031func (s GetNetworkProfileInput) String() string {
12032	return awsutil.Prettify(s)
12033}
12034
12035// GoString returns the string representation.
12036//
12037// API parameter values that are decorated as "sensitive" in the API will not
12038// be included in the string output. The member name will be present, but the
12039// value will be replaced with "sensitive".
12040func (s GetNetworkProfileInput) GoString() string {
12041	return s.String()
12042}
12043
12044// Validate inspects the fields of the type to determine if they are valid.
12045func (s *GetNetworkProfileInput) Validate() error {
12046	invalidParams := request.ErrInvalidParams{Context: "GetNetworkProfileInput"}
12047	if s.Arn == nil {
12048		invalidParams.Add(request.NewErrParamRequired("Arn"))
12049	}
12050	if s.Arn != nil && len(*s.Arn) < 32 {
12051		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12052	}
12053
12054	if invalidParams.Len() > 0 {
12055		return invalidParams
12056	}
12057	return nil
12058}
12059
12060// SetArn sets the Arn field's value.
12061func (s *GetNetworkProfileInput) SetArn(v string) *GetNetworkProfileInput {
12062	s.Arn = &v
12063	return s
12064}
12065
12066type GetNetworkProfileOutput struct {
12067	_ struct{} `type:"structure"`
12068
12069	// The network profile.
12070	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
12071}
12072
12073// String returns the string representation.
12074//
12075// API parameter values that are decorated as "sensitive" in the API will not
12076// be included in the string output. The member name will be present, but the
12077// value will be replaced with "sensitive".
12078func (s GetNetworkProfileOutput) String() string {
12079	return awsutil.Prettify(s)
12080}
12081
12082// GoString returns the string representation.
12083//
12084// API parameter values that are decorated as "sensitive" in the API will not
12085// be included in the string output. The member name will be present, but the
12086// value will be replaced with "sensitive".
12087func (s GetNetworkProfileOutput) GoString() string {
12088	return s.String()
12089}
12090
12091// SetNetworkProfile sets the NetworkProfile field's value.
12092func (s *GetNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *GetNetworkProfileOutput {
12093	s.NetworkProfile = v
12094	return s
12095}
12096
12097// Represents the request to retrieve the offering status for the specified
12098// customer or account.
12099type GetOfferingStatusInput struct {
12100	_ struct{} `type:"structure"`
12101
12102	// An identifier that was returned from the previous call to this operation,
12103	// which can be used to return the next set of items in the list.
12104	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12105}
12106
12107// String returns the string representation.
12108//
12109// API parameter values that are decorated as "sensitive" in the API will not
12110// be included in the string output. The member name will be present, but the
12111// value will be replaced with "sensitive".
12112func (s GetOfferingStatusInput) String() string {
12113	return awsutil.Prettify(s)
12114}
12115
12116// GoString returns the string representation.
12117//
12118// API parameter values that are decorated as "sensitive" in the API will not
12119// be included in the string output. The member name will be present, but the
12120// value will be replaced with "sensitive".
12121func (s GetOfferingStatusInput) GoString() string {
12122	return s.String()
12123}
12124
12125// Validate inspects the fields of the type to determine if they are valid.
12126func (s *GetOfferingStatusInput) Validate() error {
12127	invalidParams := request.ErrInvalidParams{Context: "GetOfferingStatusInput"}
12128	if s.NextToken != nil && len(*s.NextToken) < 4 {
12129		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
12130	}
12131
12132	if invalidParams.Len() > 0 {
12133		return invalidParams
12134	}
12135	return nil
12136}
12137
12138// SetNextToken sets the NextToken field's value.
12139func (s *GetOfferingStatusInput) SetNextToken(v string) *GetOfferingStatusInput {
12140	s.NextToken = &v
12141	return s
12142}
12143
12144// Returns the status result for a device offering.
12145type GetOfferingStatusOutput struct {
12146	_ struct{} `type:"structure"`
12147
12148	// When specified, gets the offering status for the current period.
12149	Current map[string]*OfferingStatus `locationName:"current" type:"map"`
12150
12151	// When specified, gets the offering status for the next period.
12152	NextPeriod map[string]*OfferingStatus `locationName:"nextPeriod" type:"map"`
12153
12154	// An identifier that was returned from the previous call to this operation,
12155	// which can be used to return the next set of items in the list.
12156	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12157}
12158
12159// String returns the string representation.
12160//
12161// API parameter values that are decorated as "sensitive" in the API will not
12162// be included in the string output. The member name will be present, but the
12163// value will be replaced with "sensitive".
12164func (s GetOfferingStatusOutput) String() string {
12165	return awsutil.Prettify(s)
12166}
12167
12168// GoString returns the string representation.
12169//
12170// API parameter values that are decorated as "sensitive" in the API will not
12171// be included in the string output. The member name will be present, but the
12172// value will be replaced with "sensitive".
12173func (s GetOfferingStatusOutput) GoString() string {
12174	return s.String()
12175}
12176
12177// SetCurrent sets the Current field's value.
12178func (s *GetOfferingStatusOutput) SetCurrent(v map[string]*OfferingStatus) *GetOfferingStatusOutput {
12179	s.Current = v
12180	return s
12181}
12182
12183// SetNextPeriod sets the NextPeriod field's value.
12184func (s *GetOfferingStatusOutput) SetNextPeriod(v map[string]*OfferingStatus) *GetOfferingStatusOutput {
12185	s.NextPeriod = v
12186	return s
12187}
12188
12189// SetNextToken sets the NextToken field's value.
12190func (s *GetOfferingStatusOutput) SetNextToken(v string) *GetOfferingStatusOutput {
12191	s.NextToken = &v
12192	return s
12193}
12194
12195// Represents a request to the get project operation.
12196type GetProjectInput struct {
12197	_ struct{} `type:"structure"`
12198
12199	// The project's ARN.
12200	//
12201	// Arn is a required field
12202	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12203}
12204
12205// String returns the string representation.
12206//
12207// API parameter values that are decorated as "sensitive" in the API will not
12208// be included in the string output. The member name will be present, but the
12209// value will be replaced with "sensitive".
12210func (s GetProjectInput) String() string {
12211	return awsutil.Prettify(s)
12212}
12213
12214// GoString returns the string representation.
12215//
12216// API parameter values that are decorated as "sensitive" in the API will not
12217// be included in the string output. The member name will be present, but the
12218// value will be replaced with "sensitive".
12219func (s GetProjectInput) GoString() string {
12220	return s.String()
12221}
12222
12223// Validate inspects the fields of the type to determine if they are valid.
12224func (s *GetProjectInput) Validate() error {
12225	invalidParams := request.ErrInvalidParams{Context: "GetProjectInput"}
12226	if s.Arn == nil {
12227		invalidParams.Add(request.NewErrParamRequired("Arn"))
12228	}
12229	if s.Arn != nil && len(*s.Arn) < 32 {
12230		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12231	}
12232
12233	if invalidParams.Len() > 0 {
12234		return invalidParams
12235	}
12236	return nil
12237}
12238
12239// SetArn sets the Arn field's value.
12240func (s *GetProjectInput) SetArn(v string) *GetProjectInput {
12241	s.Arn = &v
12242	return s
12243}
12244
12245// Represents the result of a get project request.
12246type GetProjectOutput struct {
12247	_ struct{} `type:"structure"`
12248
12249	// The project to get information about.
12250	Project *Project `locationName:"project" type:"structure"`
12251}
12252
12253// String returns the string representation.
12254//
12255// API parameter values that are decorated as "sensitive" in the API will not
12256// be included in the string output. The member name will be present, but the
12257// value will be replaced with "sensitive".
12258func (s GetProjectOutput) String() string {
12259	return awsutil.Prettify(s)
12260}
12261
12262// GoString returns the string representation.
12263//
12264// API parameter values that are decorated as "sensitive" in the API will not
12265// be included in the string output. The member name will be present, but the
12266// value will be replaced with "sensitive".
12267func (s GetProjectOutput) GoString() string {
12268	return s.String()
12269}
12270
12271// SetProject sets the Project field's value.
12272func (s *GetProjectOutput) SetProject(v *Project) *GetProjectOutput {
12273	s.Project = v
12274	return s
12275}
12276
12277// Represents the request to get information about the specified remote access
12278// session.
12279type GetRemoteAccessSessionInput struct {
12280	_ struct{} `type:"structure"`
12281
12282	// The Amazon Resource Name (ARN) of the remote access session about which you
12283	// want to get session information.
12284	//
12285	// Arn is a required field
12286	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12287}
12288
12289// String returns the string representation.
12290//
12291// API parameter values that are decorated as "sensitive" in the API will not
12292// be included in the string output. The member name will be present, but the
12293// value will be replaced with "sensitive".
12294func (s GetRemoteAccessSessionInput) String() string {
12295	return awsutil.Prettify(s)
12296}
12297
12298// GoString returns the string representation.
12299//
12300// API parameter values that are decorated as "sensitive" in the API will not
12301// be included in the string output. The member name will be present, but the
12302// value will be replaced with "sensitive".
12303func (s GetRemoteAccessSessionInput) GoString() string {
12304	return s.String()
12305}
12306
12307// Validate inspects the fields of the type to determine if they are valid.
12308func (s *GetRemoteAccessSessionInput) Validate() error {
12309	invalidParams := request.ErrInvalidParams{Context: "GetRemoteAccessSessionInput"}
12310	if s.Arn == nil {
12311		invalidParams.Add(request.NewErrParamRequired("Arn"))
12312	}
12313	if s.Arn != nil && len(*s.Arn) < 32 {
12314		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12315	}
12316
12317	if invalidParams.Len() > 0 {
12318		return invalidParams
12319	}
12320	return nil
12321}
12322
12323// SetArn sets the Arn field's value.
12324func (s *GetRemoteAccessSessionInput) SetArn(v string) *GetRemoteAccessSessionInput {
12325	s.Arn = &v
12326	return s
12327}
12328
12329// Represents the response from the server that lists detailed information about
12330// the remote access session.
12331type GetRemoteAccessSessionOutput struct {
12332	_ struct{} `type:"structure"`
12333
12334	// A container that lists detailed information about the remote access session.
12335	RemoteAccessSession *RemoteAccessSession `locationName:"remoteAccessSession" type:"structure"`
12336}
12337
12338// String returns the string representation.
12339//
12340// API parameter values that are decorated as "sensitive" in the API will not
12341// be included in the string output. The member name will be present, but the
12342// value will be replaced with "sensitive".
12343func (s GetRemoteAccessSessionOutput) String() string {
12344	return awsutil.Prettify(s)
12345}
12346
12347// GoString returns the string representation.
12348//
12349// API parameter values that are decorated as "sensitive" in the API will not
12350// be included in the string output. The member name will be present, but the
12351// value will be replaced with "sensitive".
12352func (s GetRemoteAccessSessionOutput) GoString() string {
12353	return s.String()
12354}
12355
12356// SetRemoteAccessSession sets the RemoteAccessSession field's value.
12357func (s *GetRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSession) *GetRemoteAccessSessionOutput {
12358	s.RemoteAccessSession = v
12359	return s
12360}
12361
12362// Represents a request to the get run operation.
12363type GetRunInput struct {
12364	_ struct{} `type:"structure"`
12365
12366	// The run's ARN.
12367	//
12368	// Arn is a required field
12369	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12370}
12371
12372// String returns the string representation.
12373//
12374// API parameter values that are decorated as "sensitive" in the API will not
12375// be included in the string output. The member name will be present, but the
12376// value will be replaced with "sensitive".
12377func (s GetRunInput) String() string {
12378	return awsutil.Prettify(s)
12379}
12380
12381// GoString returns the string representation.
12382//
12383// API parameter values that are decorated as "sensitive" in the API will not
12384// be included in the string output. The member name will be present, but the
12385// value will be replaced with "sensitive".
12386func (s GetRunInput) GoString() string {
12387	return s.String()
12388}
12389
12390// Validate inspects the fields of the type to determine if they are valid.
12391func (s *GetRunInput) Validate() error {
12392	invalidParams := request.ErrInvalidParams{Context: "GetRunInput"}
12393	if s.Arn == nil {
12394		invalidParams.Add(request.NewErrParamRequired("Arn"))
12395	}
12396	if s.Arn != nil && len(*s.Arn) < 32 {
12397		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12398	}
12399
12400	if invalidParams.Len() > 0 {
12401		return invalidParams
12402	}
12403	return nil
12404}
12405
12406// SetArn sets the Arn field's value.
12407func (s *GetRunInput) SetArn(v string) *GetRunInput {
12408	s.Arn = &v
12409	return s
12410}
12411
12412// Represents the result of a get run request.
12413type GetRunOutput struct {
12414	_ struct{} `type:"structure"`
12415
12416	// The run to get results from.
12417	Run *Run `locationName:"run" type:"structure"`
12418}
12419
12420// String returns the string representation.
12421//
12422// API parameter values that are decorated as "sensitive" in the API will not
12423// be included in the string output. The member name will be present, but the
12424// value will be replaced with "sensitive".
12425func (s GetRunOutput) String() string {
12426	return awsutil.Prettify(s)
12427}
12428
12429// GoString returns the string representation.
12430//
12431// API parameter values that are decorated as "sensitive" in the API will not
12432// be included in the string output. The member name will be present, but the
12433// value will be replaced with "sensitive".
12434func (s GetRunOutput) GoString() string {
12435	return s.String()
12436}
12437
12438// SetRun sets the Run field's value.
12439func (s *GetRunOutput) SetRun(v *Run) *GetRunOutput {
12440	s.Run = v
12441	return s
12442}
12443
12444// Represents a request to the get suite operation.
12445type GetSuiteInput struct {
12446	_ struct{} `type:"structure"`
12447
12448	// The suite's ARN.
12449	//
12450	// Arn is a required field
12451	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12452}
12453
12454// String returns the string representation.
12455//
12456// API parameter values that are decorated as "sensitive" in the API will not
12457// be included in the string output. The member name will be present, but the
12458// value will be replaced with "sensitive".
12459func (s GetSuiteInput) String() string {
12460	return awsutil.Prettify(s)
12461}
12462
12463// GoString returns the string representation.
12464//
12465// API parameter values that are decorated as "sensitive" in the API will not
12466// be included in the string output. The member name will be present, but the
12467// value will be replaced with "sensitive".
12468func (s GetSuiteInput) GoString() string {
12469	return s.String()
12470}
12471
12472// Validate inspects the fields of the type to determine if they are valid.
12473func (s *GetSuiteInput) Validate() error {
12474	invalidParams := request.ErrInvalidParams{Context: "GetSuiteInput"}
12475	if s.Arn == nil {
12476		invalidParams.Add(request.NewErrParamRequired("Arn"))
12477	}
12478	if s.Arn != nil && len(*s.Arn) < 32 {
12479		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12480	}
12481
12482	if invalidParams.Len() > 0 {
12483		return invalidParams
12484	}
12485	return nil
12486}
12487
12488// SetArn sets the Arn field's value.
12489func (s *GetSuiteInput) SetArn(v string) *GetSuiteInput {
12490	s.Arn = &v
12491	return s
12492}
12493
12494// Represents the result of a get suite request.
12495type GetSuiteOutput struct {
12496	_ struct{} `type:"structure"`
12497
12498	// A collection of one or more tests.
12499	Suite *Suite `locationName:"suite" type:"structure"`
12500}
12501
12502// String returns the string representation.
12503//
12504// API parameter values that are decorated as "sensitive" in the API will not
12505// be included in the string output. The member name will be present, but the
12506// value will be replaced with "sensitive".
12507func (s GetSuiteOutput) String() string {
12508	return awsutil.Prettify(s)
12509}
12510
12511// GoString returns the string representation.
12512//
12513// API parameter values that are decorated as "sensitive" in the API will not
12514// be included in the string output. The member name will be present, but the
12515// value will be replaced with "sensitive".
12516func (s GetSuiteOutput) GoString() string {
12517	return s.String()
12518}
12519
12520// SetSuite sets the Suite field's value.
12521func (s *GetSuiteOutput) SetSuite(v *Suite) *GetSuiteOutput {
12522	s.Suite = v
12523	return s
12524}
12525
12526type GetTestGridProjectInput struct {
12527	_ struct{} `type:"structure"`
12528
12529	// The ARN of the Selenium testing project, from either CreateTestGridProject
12530	// or ListTestGridProjects.
12531	//
12532	// ProjectArn is a required field
12533	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
12534}
12535
12536// String returns the string representation.
12537//
12538// API parameter values that are decorated as "sensitive" in the API will not
12539// be included in the string output. The member name will be present, but the
12540// value will be replaced with "sensitive".
12541func (s GetTestGridProjectInput) String() string {
12542	return awsutil.Prettify(s)
12543}
12544
12545// GoString returns the string representation.
12546//
12547// API parameter values that are decorated as "sensitive" in the API will not
12548// be included in the string output. The member name will be present, but the
12549// value will be replaced with "sensitive".
12550func (s GetTestGridProjectInput) GoString() string {
12551	return s.String()
12552}
12553
12554// Validate inspects the fields of the type to determine if they are valid.
12555func (s *GetTestGridProjectInput) Validate() error {
12556	invalidParams := request.ErrInvalidParams{Context: "GetTestGridProjectInput"}
12557	if s.ProjectArn == nil {
12558		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
12559	}
12560	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
12561		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
12562	}
12563
12564	if invalidParams.Len() > 0 {
12565		return invalidParams
12566	}
12567	return nil
12568}
12569
12570// SetProjectArn sets the ProjectArn field's value.
12571func (s *GetTestGridProjectInput) SetProjectArn(v string) *GetTestGridProjectInput {
12572	s.ProjectArn = &v
12573	return s
12574}
12575
12576type GetTestGridProjectOutput struct {
12577	_ struct{} `type:"structure"`
12578
12579	// A TestGridProject.
12580	TestGridProject *TestGridProject `locationName:"testGridProject" type:"structure"`
12581}
12582
12583// String returns the string representation.
12584//
12585// API parameter values that are decorated as "sensitive" in the API will not
12586// be included in the string output. The member name will be present, but the
12587// value will be replaced with "sensitive".
12588func (s GetTestGridProjectOutput) String() string {
12589	return awsutil.Prettify(s)
12590}
12591
12592// GoString returns the string representation.
12593//
12594// API parameter values that are decorated as "sensitive" in the API will not
12595// be included in the string output. The member name will be present, but the
12596// value will be replaced with "sensitive".
12597func (s GetTestGridProjectOutput) GoString() string {
12598	return s.String()
12599}
12600
12601// SetTestGridProject sets the TestGridProject field's value.
12602func (s *GetTestGridProjectOutput) SetTestGridProject(v *TestGridProject) *GetTestGridProjectOutput {
12603	s.TestGridProject = v
12604	return s
12605}
12606
12607type GetTestGridSessionInput struct {
12608	_ struct{} `type:"structure"`
12609
12610	// The ARN for the project that this session belongs to. See CreateTestGridProject
12611	// and ListTestGridProjects.
12612	ProjectArn *string `locationName:"projectArn" min:"32" type:"string"`
12613
12614	// An ARN that uniquely identifies a TestGridSession.
12615	SessionArn *string `locationName:"sessionArn" min:"32" type:"string"`
12616
12617	// An ID associated with this session.
12618	SessionId *string `locationName:"sessionId" min:"1" type:"string"`
12619}
12620
12621// String returns the string representation.
12622//
12623// API parameter values that are decorated as "sensitive" in the API will not
12624// be included in the string output. The member name will be present, but the
12625// value will be replaced with "sensitive".
12626func (s GetTestGridSessionInput) String() string {
12627	return awsutil.Prettify(s)
12628}
12629
12630// GoString returns the string representation.
12631//
12632// API parameter values that are decorated as "sensitive" in the API will not
12633// be included in the string output. The member name will be present, but the
12634// value will be replaced with "sensitive".
12635func (s GetTestGridSessionInput) GoString() string {
12636	return s.String()
12637}
12638
12639// Validate inspects the fields of the type to determine if they are valid.
12640func (s *GetTestGridSessionInput) Validate() error {
12641	invalidParams := request.ErrInvalidParams{Context: "GetTestGridSessionInput"}
12642	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
12643		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
12644	}
12645	if s.SessionArn != nil && len(*s.SessionArn) < 32 {
12646		invalidParams.Add(request.NewErrParamMinLen("SessionArn", 32))
12647	}
12648	if s.SessionId != nil && len(*s.SessionId) < 1 {
12649		invalidParams.Add(request.NewErrParamMinLen("SessionId", 1))
12650	}
12651
12652	if invalidParams.Len() > 0 {
12653		return invalidParams
12654	}
12655	return nil
12656}
12657
12658// SetProjectArn sets the ProjectArn field's value.
12659func (s *GetTestGridSessionInput) SetProjectArn(v string) *GetTestGridSessionInput {
12660	s.ProjectArn = &v
12661	return s
12662}
12663
12664// SetSessionArn sets the SessionArn field's value.
12665func (s *GetTestGridSessionInput) SetSessionArn(v string) *GetTestGridSessionInput {
12666	s.SessionArn = &v
12667	return s
12668}
12669
12670// SetSessionId sets the SessionId field's value.
12671func (s *GetTestGridSessionInput) SetSessionId(v string) *GetTestGridSessionInput {
12672	s.SessionId = &v
12673	return s
12674}
12675
12676type GetTestGridSessionOutput struct {
12677	_ struct{} `type:"structure"`
12678
12679	// The TestGridSession that was requested.
12680	TestGridSession *TestGridSession `locationName:"testGridSession" type:"structure"`
12681}
12682
12683// String returns the string representation.
12684//
12685// API parameter values that are decorated as "sensitive" in the API will not
12686// be included in the string output. The member name will be present, but the
12687// value will be replaced with "sensitive".
12688func (s GetTestGridSessionOutput) String() string {
12689	return awsutil.Prettify(s)
12690}
12691
12692// GoString returns the string representation.
12693//
12694// API parameter values that are decorated as "sensitive" in the API will not
12695// be included in the string output. The member name will be present, but the
12696// value will be replaced with "sensitive".
12697func (s GetTestGridSessionOutput) GoString() string {
12698	return s.String()
12699}
12700
12701// SetTestGridSession sets the TestGridSession field's value.
12702func (s *GetTestGridSessionOutput) SetTestGridSession(v *TestGridSession) *GetTestGridSessionOutput {
12703	s.TestGridSession = v
12704	return s
12705}
12706
12707// Represents a request to the get test operation.
12708type GetTestInput struct {
12709	_ struct{} `type:"structure"`
12710
12711	// The test's ARN.
12712	//
12713	// Arn is a required field
12714	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12715}
12716
12717// String returns the string representation.
12718//
12719// API parameter values that are decorated as "sensitive" in the API will not
12720// be included in the string output. The member name will be present, but the
12721// value will be replaced with "sensitive".
12722func (s GetTestInput) String() string {
12723	return awsutil.Prettify(s)
12724}
12725
12726// GoString returns the string representation.
12727//
12728// API parameter values that are decorated as "sensitive" in the API will not
12729// be included in the string output. The member name will be present, but the
12730// value will be replaced with "sensitive".
12731func (s GetTestInput) GoString() string {
12732	return s.String()
12733}
12734
12735// Validate inspects the fields of the type to determine if they are valid.
12736func (s *GetTestInput) Validate() error {
12737	invalidParams := request.ErrInvalidParams{Context: "GetTestInput"}
12738	if s.Arn == nil {
12739		invalidParams.Add(request.NewErrParamRequired("Arn"))
12740	}
12741	if s.Arn != nil && len(*s.Arn) < 32 {
12742		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12743	}
12744
12745	if invalidParams.Len() > 0 {
12746		return invalidParams
12747	}
12748	return nil
12749}
12750
12751// SetArn sets the Arn field's value.
12752func (s *GetTestInput) SetArn(v string) *GetTestInput {
12753	s.Arn = &v
12754	return s
12755}
12756
12757// Represents the result of a get test request.
12758type GetTestOutput struct {
12759	_ struct{} `type:"structure"`
12760
12761	// A test condition that is evaluated.
12762	Test *Test `locationName:"test" type:"structure"`
12763}
12764
12765// String returns the string representation.
12766//
12767// API parameter values that are decorated as "sensitive" in the API will not
12768// be included in the string output. The member name will be present, but the
12769// value will be replaced with "sensitive".
12770func (s GetTestOutput) String() string {
12771	return awsutil.Prettify(s)
12772}
12773
12774// GoString returns the string representation.
12775//
12776// API parameter values that are decorated as "sensitive" in the API will not
12777// be included in the string output. The member name will be present, but the
12778// value will be replaced with "sensitive".
12779func (s GetTestOutput) GoString() string {
12780	return s.String()
12781}
12782
12783// SetTest sets the Test field's value.
12784func (s *GetTestOutput) SetTest(v *Test) *GetTestOutput {
12785	s.Test = v
12786	return s
12787}
12788
12789// Represents a request to the get upload operation.
12790type GetUploadInput struct {
12791	_ struct{} `type:"structure"`
12792
12793	// The upload's ARN.
12794	//
12795	// Arn is a required field
12796	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12797}
12798
12799// String returns the string representation.
12800//
12801// API parameter values that are decorated as "sensitive" in the API will not
12802// be included in the string output. The member name will be present, but the
12803// value will be replaced with "sensitive".
12804func (s GetUploadInput) String() string {
12805	return awsutil.Prettify(s)
12806}
12807
12808// GoString returns the string representation.
12809//
12810// API parameter values that are decorated as "sensitive" in the API will not
12811// be included in the string output. The member name will be present, but the
12812// value will be replaced with "sensitive".
12813func (s GetUploadInput) GoString() string {
12814	return s.String()
12815}
12816
12817// Validate inspects the fields of the type to determine if they are valid.
12818func (s *GetUploadInput) Validate() error {
12819	invalidParams := request.ErrInvalidParams{Context: "GetUploadInput"}
12820	if s.Arn == nil {
12821		invalidParams.Add(request.NewErrParamRequired("Arn"))
12822	}
12823	if s.Arn != nil && len(*s.Arn) < 32 {
12824		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12825	}
12826
12827	if invalidParams.Len() > 0 {
12828		return invalidParams
12829	}
12830	return nil
12831}
12832
12833// SetArn sets the Arn field's value.
12834func (s *GetUploadInput) SetArn(v string) *GetUploadInput {
12835	s.Arn = &v
12836	return s
12837}
12838
12839// Represents the result of a get upload request.
12840type GetUploadOutput struct {
12841	_ struct{} `type:"structure"`
12842
12843	// An app or a set of one or more tests to upload or that have been uploaded.
12844	Upload *Upload `locationName:"upload" type:"structure"`
12845}
12846
12847// String returns the string representation.
12848//
12849// API parameter values that are decorated as "sensitive" in the API will not
12850// be included in the string output. The member name will be present, but the
12851// value will be replaced with "sensitive".
12852func (s GetUploadOutput) String() string {
12853	return awsutil.Prettify(s)
12854}
12855
12856// GoString returns the string representation.
12857//
12858// API parameter values that are decorated as "sensitive" in the API will not
12859// be included in the string output. The member name will be present, but the
12860// value will be replaced with "sensitive".
12861func (s GetUploadOutput) GoString() string {
12862	return s.String()
12863}
12864
12865// SetUpload sets the Upload field's value.
12866func (s *GetUploadOutput) SetUpload(v *Upload) *GetUploadOutput {
12867	s.Upload = v
12868	return s
12869}
12870
12871type GetVPCEConfigurationInput struct {
12872	_ struct{} `type:"structure"`
12873
12874	// The Amazon Resource Name (ARN) of the VPC endpoint configuration you want
12875	// to describe.
12876	//
12877	// Arn is a required field
12878	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12879}
12880
12881// String returns the string representation.
12882//
12883// API parameter values that are decorated as "sensitive" in the API will not
12884// be included in the string output. The member name will be present, but the
12885// value will be replaced with "sensitive".
12886func (s GetVPCEConfigurationInput) String() string {
12887	return awsutil.Prettify(s)
12888}
12889
12890// GoString returns the string representation.
12891//
12892// API parameter values that are decorated as "sensitive" in the API will not
12893// be included in the string output. The member name will be present, but the
12894// value will be replaced with "sensitive".
12895func (s GetVPCEConfigurationInput) GoString() string {
12896	return s.String()
12897}
12898
12899// Validate inspects the fields of the type to determine if they are valid.
12900func (s *GetVPCEConfigurationInput) Validate() error {
12901	invalidParams := request.ErrInvalidParams{Context: "GetVPCEConfigurationInput"}
12902	if s.Arn == nil {
12903		invalidParams.Add(request.NewErrParamRequired("Arn"))
12904	}
12905	if s.Arn != nil && len(*s.Arn) < 32 {
12906		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12907	}
12908
12909	if invalidParams.Len() > 0 {
12910		return invalidParams
12911	}
12912	return nil
12913}
12914
12915// SetArn sets the Arn field's value.
12916func (s *GetVPCEConfigurationInput) SetArn(v string) *GetVPCEConfigurationInput {
12917	s.Arn = &v
12918	return s
12919}
12920
12921type GetVPCEConfigurationOutput struct {
12922	_ struct{} `type:"structure"`
12923
12924	// An object that contains information about your VPC endpoint configuration.
12925	VpceConfiguration *VPCEConfiguration `locationName:"vpceConfiguration" type:"structure"`
12926}
12927
12928// String returns the string representation.
12929//
12930// API parameter values that are decorated as "sensitive" in the API will not
12931// be included in the string output. The member name will be present, but the
12932// value will be replaced with "sensitive".
12933func (s GetVPCEConfigurationOutput) String() string {
12934	return awsutil.Prettify(s)
12935}
12936
12937// GoString returns the string representation.
12938//
12939// API parameter values that are decorated as "sensitive" in the API will not
12940// be included in the string output. The member name will be present, but the
12941// value will be replaced with "sensitive".
12942func (s GetVPCEConfigurationOutput) GoString() string {
12943	return s.String()
12944}
12945
12946// SetVpceConfiguration sets the VpceConfiguration field's value.
12947func (s *GetVPCEConfigurationOutput) SetVpceConfiguration(v *VPCEConfiguration) *GetVPCEConfigurationOutput {
12948	s.VpceConfiguration = v
12949	return s
12950}
12951
12952// An entity with the same name already exists.
12953type IdempotencyException struct {
12954	_            struct{}                  `type:"structure"`
12955	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12956
12957	// Any additional information about the exception.
12958	Message_ *string `locationName:"message" type:"string"`
12959}
12960
12961// String returns the string representation.
12962//
12963// API parameter values that are decorated as "sensitive" in the API will not
12964// be included in the string output. The member name will be present, but the
12965// value will be replaced with "sensitive".
12966func (s IdempotencyException) String() string {
12967	return awsutil.Prettify(s)
12968}
12969
12970// GoString returns the string representation.
12971//
12972// API parameter values that are decorated as "sensitive" in the API will not
12973// be included in the string output. The member name will be present, but the
12974// value will be replaced with "sensitive".
12975func (s IdempotencyException) GoString() string {
12976	return s.String()
12977}
12978
12979func newErrorIdempotencyException(v protocol.ResponseMetadata) error {
12980	return &IdempotencyException{
12981		RespMetadata: v,
12982	}
12983}
12984
12985// Code returns the exception type name.
12986func (s *IdempotencyException) Code() string {
12987	return "IdempotencyException"
12988}
12989
12990// Message returns the exception's message.
12991func (s *IdempotencyException) Message() string {
12992	if s.Message_ != nil {
12993		return *s.Message_
12994	}
12995	return ""
12996}
12997
12998// OrigErr always returns nil, satisfies awserr.Error interface.
12999func (s *IdempotencyException) OrigErr() error {
13000	return nil
13001}
13002
13003func (s *IdempotencyException) Error() string {
13004	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13005}
13006
13007// Status code returns the HTTP status code for the request's response error.
13008func (s *IdempotencyException) StatusCode() int {
13009	return s.RespMetadata.StatusCode
13010}
13011
13012// RequestID returns the service's response RequestID for request.
13013func (s *IdempotencyException) RequestID() string {
13014	return s.RespMetadata.RequestID
13015}
13016
13017// Represents information about incompatibility.
13018type IncompatibilityMessage struct {
13019	_ struct{} `type:"structure"`
13020
13021	// A message about the incompatibility.
13022	Message *string `locationName:"message" type:"string"`
13023
13024	// The type of incompatibility.
13025	//
13026	// Allowed values include:
13027	//
13028	//    * ARN
13029	//
13030	//    * FORM_FACTOR (for example, phone or tablet)
13031	//
13032	//    * MANUFACTURER
13033	//
13034	//    * PLATFORM (for example, Android or iOS)
13035	//
13036	//    * REMOTE_ACCESS_ENABLED
13037	//
13038	//    * APPIUM_VERSION
13039	Type *string `locationName:"type" type:"string" enum:"DeviceAttribute"`
13040}
13041
13042// String returns the string representation.
13043//
13044// API parameter values that are decorated as "sensitive" in the API will not
13045// be included in the string output. The member name will be present, but the
13046// value will be replaced with "sensitive".
13047func (s IncompatibilityMessage) String() string {
13048	return awsutil.Prettify(s)
13049}
13050
13051// GoString returns the string representation.
13052//
13053// API parameter values that are decorated as "sensitive" in the API will not
13054// be included in the string output. The member name will be present, but the
13055// value will be replaced with "sensitive".
13056func (s IncompatibilityMessage) GoString() string {
13057	return s.String()
13058}
13059
13060// SetMessage sets the Message field's value.
13061func (s *IncompatibilityMessage) SetMessage(v string) *IncompatibilityMessage {
13062	s.Message = &v
13063	return s
13064}
13065
13066// SetType sets the Type field's value.
13067func (s *IncompatibilityMessage) SetType(v string) *IncompatibilityMessage {
13068	s.Type = &v
13069	return s
13070}
13071
13072// Represents the request to install an Android application (in .apk format)
13073// or an iOS application (in .ipa format) as part of a remote access session.
13074type InstallToRemoteAccessSessionInput struct {
13075	_ struct{} `type:"structure"`
13076
13077	// The ARN of the app about which you are requesting information.
13078	//
13079	// AppArn is a required field
13080	AppArn *string `locationName:"appArn" min:"32" type:"string" required:"true"`
13081
13082	// The Amazon Resource Name (ARN) of the remote access session about which you
13083	// are requesting information.
13084	//
13085	// RemoteAccessSessionArn is a required field
13086	RemoteAccessSessionArn *string `locationName:"remoteAccessSessionArn" min:"32" type:"string" required:"true"`
13087}
13088
13089// String returns the string representation.
13090//
13091// API parameter values that are decorated as "sensitive" in the API will not
13092// be included in the string output. The member name will be present, but the
13093// value will be replaced with "sensitive".
13094func (s InstallToRemoteAccessSessionInput) String() string {
13095	return awsutil.Prettify(s)
13096}
13097
13098// GoString returns the string representation.
13099//
13100// API parameter values that are decorated as "sensitive" in the API will not
13101// be included in the string output. The member name will be present, but the
13102// value will be replaced with "sensitive".
13103func (s InstallToRemoteAccessSessionInput) GoString() string {
13104	return s.String()
13105}
13106
13107// Validate inspects the fields of the type to determine if they are valid.
13108func (s *InstallToRemoteAccessSessionInput) Validate() error {
13109	invalidParams := request.ErrInvalidParams{Context: "InstallToRemoteAccessSessionInput"}
13110	if s.AppArn == nil {
13111		invalidParams.Add(request.NewErrParamRequired("AppArn"))
13112	}
13113	if s.AppArn != nil && len(*s.AppArn) < 32 {
13114		invalidParams.Add(request.NewErrParamMinLen("AppArn", 32))
13115	}
13116	if s.RemoteAccessSessionArn == nil {
13117		invalidParams.Add(request.NewErrParamRequired("RemoteAccessSessionArn"))
13118	}
13119	if s.RemoteAccessSessionArn != nil && len(*s.RemoteAccessSessionArn) < 32 {
13120		invalidParams.Add(request.NewErrParamMinLen("RemoteAccessSessionArn", 32))
13121	}
13122
13123	if invalidParams.Len() > 0 {
13124		return invalidParams
13125	}
13126	return nil
13127}
13128
13129// SetAppArn sets the AppArn field's value.
13130func (s *InstallToRemoteAccessSessionInput) SetAppArn(v string) *InstallToRemoteAccessSessionInput {
13131	s.AppArn = &v
13132	return s
13133}
13134
13135// SetRemoteAccessSessionArn sets the RemoteAccessSessionArn field's value.
13136func (s *InstallToRemoteAccessSessionInput) SetRemoteAccessSessionArn(v string) *InstallToRemoteAccessSessionInput {
13137	s.RemoteAccessSessionArn = &v
13138	return s
13139}
13140
13141// Represents the response from the server after AWS Device Farm makes a request
13142// to install to a remote access session.
13143type InstallToRemoteAccessSessionOutput struct {
13144	_ struct{} `type:"structure"`
13145
13146	// An app to upload or that has been uploaded.
13147	AppUpload *Upload `locationName:"appUpload" type:"structure"`
13148}
13149
13150// String returns the string representation.
13151//
13152// API parameter values that are decorated as "sensitive" in the API will not
13153// be included in the string output. The member name will be present, but the
13154// value will be replaced with "sensitive".
13155func (s InstallToRemoteAccessSessionOutput) String() string {
13156	return awsutil.Prettify(s)
13157}
13158
13159// GoString returns the string representation.
13160//
13161// API parameter values that are decorated as "sensitive" in the API will not
13162// be included in the string output. The member name will be present, but the
13163// value will be replaced with "sensitive".
13164func (s InstallToRemoteAccessSessionOutput) GoString() string {
13165	return s.String()
13166}
13167
13168// SetAppUpload sets the AppUpload field's value.
13169func (s *InstallToRemoteAccessSessionOutput) SetAppUpload(v *Upload) *InstallToRemoteAccessSessionOutput {
13170	s.AppUpload = v
13171	return s
13172}
13173
13174// Represents the instance profile.
13175type InstanceProfile struct {
13176	_ struct{} `type:"structure"`
13177
13178	// The Amazon Resource Name (ARN) of the instance profile.
13179	Arn *string `locationName:"arn" min:"32" type:"string"`
13180
13181	// The description of the instance profile.
13182	Description *string `locationName:"description" type:"string"`
13183
13184	// An array of strings containing the list of app packages that should not be
13185	// cleaned up from the device after a test run completes.
13186	//
13187	// The list of packages is considered only if you set packageCleanup to true.
13188	ExcludeAppPackagesFromCleanup []*string `locationName:"excludeAppPackagesFromCleanup" type:"list"`
13189
13190	// The name of the instance profile.
13191	Name *string `locationName:"name" type:"string"`
13192
13193	// When set to true, Device Farm removes app packages after a test run. The
13194	// default value is false for private devices.
13195	PackageCleanup *bool `locationName:"packageCleanup" type:"boolean"`
13196
13197	// When set to true, Device Farm reboots the instance after a test run. The
13198	// default value is true.
13199	RebootAfterUse *bool `locationName:"rebootAfterUse" type:"boolean"`
13200}
13201
13202// String returns the string representation.
13203//
13204// API parameter values that are decorated as "sensitive" in the API will not
13205// be included in the string output. The member name will be present, but the
13206// value will be replaced with "sensitive".
13207func (s InstanceProfile) String() string {
13208	return awsutil.Prettify(s)
13209}
13210
13211// GoString returns the string representation.
13212//
13213// API parameter values that are decorated as "sensitive" in the API will not
13214// be included in the string output. The member name will be present, but the
13215// value will be replaced with "sensitive".
13216func (s InstanceProfile) GoString() string {
13217	return s.String()
13218}
13219
13220// SetArn sets the Arn field's value.
13221func (s *InstanceProfile) SetArn(v string) *InstanceProfile {
13222	s.Arn = &v
13223	return s
13224}
13225
13226// SetDescription sets the Description field's value.
13227func (s *InstanceProfile) SetDescription(v string) *InstanceProfile {
13228	s.Description = &v
13229	return s
13230}
13231
13232// SetExcludeAppPackagesFromCleanup sets the ExcludeAppPackagesFromCleanup field's value.
13233func (s *InstanceProfile) SetExcludeAppPackagesFromCleanup(v []*string) *InstanceProfile {
13234	s.ExcludeAppPackagesFromCleanup = v
13235	return s
13236}
13237
13238// SetName sets the Name field's value.
13239func (s *InstanceProfile) SetName(v string) *InstanceProfile {
13240	s.Name = &v
13241	return s
13242}
13243
13244// SetPackageCleanup sets the PackageCleanup field's value.
13245func (s *InstanceProfile) SetPackageCleanup(v bool) *InstanceProfile {
13246	s.PackageCleanup = &v
13247	return s
13248}
13249
13250// SetRebootAfterUse sets the RebootAfterUse field's value.
13251func (s *InstanceProfile) SetRebootAfterUse(v bool) *InstanceProfile {
13252	s.RebootAfterUse = &v
13253	return s
13254}
13255
13256// An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
13257// (mailto:aws-devicefarm-support@amazon.com) if you see this error.
13258type InternalServiceException struct {
13259	_            struct{}                  `type:"structure"`
13260	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13261
13262	Message_ *string `locationName:"message" type:"string"`
13263}
13264
13265// String returns the string representation.
13266//
13267// API parameter values that are decorated as "sensitive" in the API will not
13268// be included in the string output. The member name will be present, but the
13269// value will be replaced with "sensitive".
13270func (s InternalServiceException) String() string {
13271	return awsutil.Prettify(s)
13272}
13273
13274// GoString returns the string representation.
13275//
13276// API parameter values that are decorated as "sensitive" in the API will not
13277// be included in the string output. The member name will be present, but the
13278// value will be replaced with "sensitive".
13279func (s InternalServiceException) GoString() string {
13280	return s.String()
13281}
13282
13283func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
13284	return &InternalServiceException{
13285		RespMetadata: v,
13286	}
13287}
13288
13289// Code returns the exception type name.
13290func (s *InternalServiceException) Code() string {
13291	return "InternalServiceException"
13292}
13293
13294// Message returns the exception's message.
13295func (s *InternalServiceException) Message() string {
13296	if s.Message_ != nil {
13297		return *s.Message_
13298	}
13299	return ""
13300}
13301
13302// OrigErr always returns nil, satisfies awserr.Error interface.
13303func (s *InternalServiceException) OrigErr() error {
13304	return nil
13305}
13306
13307func (s *InternalServiceException) Error() string {
13308	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13309}
13310
13311// Status code returns the HTTP status code for the request's response error.
13312func (s *InternalServiceException) StatusCode() int {
13313	return s.RespMetadata.StatusCode
13314}
13315
13316// RequestID returns the service's response RequestID for request.
13317func (s *InternalServiceException) RequestID() string {
13318	return s.RespMetadata.RequestID
13319}
13320
13321// There was an error with the update request, or you do not have sufficient
13322// permissions to update this VPC endpoint configuration.
13323type InvalidOperationException struct {
13324	_            struct{}                  `type:"structure"`
13325	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13326
13327	Message_ *string `locationName:"message" type:"string"`
13328}
13329
13330// String returns the string representation.
13331//
13332// API parameter values that are decorated as "sensitive" in the API will not
13333// be included in the string output. The member name will be present, but the
13334// value will be replaced with "sensitive".
13335func (s InvalidOperationException) String() string {
13336	return awsutil.Prettify(s)
13337}
13338
13339// GoString returns the string representation.
13340//
13341// API parameter values that are decorated as "sensitive" in the API will not
13342// be included in the string output. The member name will be present, but the
13343// value will be replaced with "sensitive".
13344func (s InvalidOperationException) GoString() string {
13345	return s.String()
13346}
13347
13348func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
13349	return &InvalidOperationException{
13350		RespMetadata: v,
13351	}
13352}
13353
13354// Code returns the exception type name.
13355func (s *InvalidOperationException) Code() string {
13356	return "InvalidOperationException"
13357}
13358
13359// Message returns the exception's message.
13360func (s *InvalidOperationException) Message() string {
13361	if s.Message_ != nil {
13362		return *s.Message_
13363	}
13364	return ""
13365}
13366
13367// OrigErr always returns nil, satisfies awserr.Error interface.
13368func (s *InvalidOperationException) OrigErr() error {
13369	return nil
13370}
13371
13372func (s *InvalidOperationException) Error() string {
13373	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13374}
13375
13376// Status code returns the HTTP status code for the request's response error.
13377func (s *InvalidOperationException) StatusCode() int {
13378	return s.RespMetadata.StatusCode
13379}
13380
13381// RequestID returns the service's response RequestID for request.
13382func (s *InvalidOperationException) RequestID() string {
13383	return s.RespMetadata.RequestID
13384}
13385
13386// Represents a device.
13387type Job struct {
13388	_ struct{} `type:"structure"`
13389
13390	// The job's ARN.
13391	Arn *string `locationName:"arn" min:"32" type:"string"`
13392
13393	// The job's result counters.
13394	Counters *Counters `locationName:"counters" type:"structure"`
13395
13396	// When the job was created.
13397	Created *time.Time `locationName:"created" type:"timestamp"`
13398
13399	// The device (phone or tablet).
13400	Device *Device `locationName:"device" type:"structure"`
13401
13402	// Represents the total (metered or unmetered) minutes used by the job.
13403	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
13404
13405	// The ARN of the instance.
13406	InstanceArn *string `locationName:"instanceArn" min:"32" type:"string"`
13407
13408	// A message about the job's result.
13409	Message *string `locationName:"message" type:"string"`
13410
13411	// The job's name.
13412	Name *string `locationName:"name" type:"string"`
13413
13414	// The job's result.
13415	//
13416	// Allowed values include:
13417	//
13418	//    * PENDING
13419	//
13420	//    * PASSED
13421	//
13422	//    * WARNED
13423	//
13424	//    * FAILED
13425	//
13426	//    * SKIPPED
13427	//
13428	//    * ERRORED
13429	//
13430	//    * STOPPED
13431	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
13432
13433	// The job's start time.
13434	Started *time.Time `locationName:"started" type:"timestamp"`
13435
13436	// The job's status.
13437	//
13438	// Allowed values include:
13439	//
13440	//    * PENDING
13441	//
13442	//    * PENDING_CONCURRENCY
13443	//
13444	//    * PENDING_DEVICE
13445	//
13446	//    * PROCESSING
13447	//
13448	//    * SCHEDULING
13449	//
13450	//    * PREPARING
13451	//
13452	//    * RUNNING
13453	//
13454	//    * COMPLETED
13455	//
13456	//    * STOPPING
13457	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
13458
13459	// The job's stop time.
13460	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
13461
13462	// The job's type.
13463	//
13464	// Allowed values include the following:
13465	//
13466	//    * BUILTIN_FUZZ
13467	//
13468	//    * BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android
13469	//    app, interacting with it and capturing screenshots at the same time.
13470	//
13471	//    * APPIUM_JAVA_JUNIT
13472	//
13473	//    * APPIUM_JAVA_TESTNG
13474	//
13475	//    * APPIUM_PYTHON
13476	//
13477	//    * APPIUM_NODE
13478	//
13479	//    * APPIUM_RUBY
13480	//
13481	//    * APPIUM_WEB_JAVA_JUNIT
13482	//
13483	//    * APPIUM_WEB_JAVA_TESTNG
13484	//
13485	//    * APPIUM_WEB_PYTHON
13486	//
13487	//    * APPIUM_WEB_NODE
13488	//
13489	//    * APPIUM_WEB_RUBY
13490	//
13491	//    * CALABASH
13492	//
13493	//    * INSTRUMENTATION
13494	//
13495	//    * UIAUTOMATION
13496	//
13497	//    * UIAUTOMATOR
13498	//
13499	//    * XCTEST
13500	//
13501	//    * XCTEST_UI
13502	Type *string `locationName:"type" type:"string" enum:"TestType"`
13503
13504	// This value is set to true if video capture is enabled. Otherwise, it is set
13505	// to false.
13506	VideoCapture *bool `locationName:"videoCapture" type:"boolean"`
13507
13508	// The endpoint for streaming device video.
13509	VideoEndpoint *string `locationName:"videoEndpoint" type:"string"`
13510}
13511
13512// String returns the string representation.
13513//
13514// API parameter values that are decorated as "sensitive" in the API will not
13515// be included in the string output. The member name will be present, but the
13516// value will be replaced with "sensitive".
13517func (s Job) String() string {
13518	return awsutil.Prettify(s)
13519}
13520
13521// GoString returns the string representation.
13522//
13523// API parameter values that are decorated as "sensitive" in the API will not
13524// be included in the string output. The member name will be present, but the
13525// value will be replaced with "sensitive".
13526func (s Job) GoString() string {
13527	return s.String()
13528}
13529
13530// SetArn sets the Arn field's value.
13531func (s *Job) SetArn(v string) *Job {
13532	s.Arn = &v
13533	return s
13534}
13535
13536// SetCounters sets the Counters field's value.
13537func (s *Job) SetCounters(v *Counters) *Job {
13538	s.Counters = v
13539	return s
13540}
13541
13542// SetCreated sets the Created field's value.
13543func (s *Job) SetCreated(v time.Time) *Job {
13544	s.Created = &v
13545	return s
13546}
13547
13548// SetDevice sets the Device field's value.
13549func (s *Job) SetDevice(v *Device) *Job {
13550	s.Device = v
13551	return s
13552}
13553
13554// SetDeviceMinutes sets the DeviceMinutes field's value.
13555func (s *Job) SetDeviceMinutes(v *DeviceMinutes) *Job {
13556	s.DeviceMinutes = v
13557	return s
13558}
13559
13560// SetInstanceArn sets the InstanceArn field's value.
13561func (s *Job) SetInstanceArn(v string) *Job {
13562	s.InstanceArn = &v
13563	return s
13564}
13565
13566// SetMessage sets the Message field's value.
13567func (s *Job) SetMessage(v string) *Job {
13568	s.Message = &v
13569	return s
13570}
13571
13572// SetName sets the Name field's value.
13573func (s *Job) SetName(v string) *Job {
13574	s.Name = &v
13575	return s
13576}
13577
13578// SetResult sets the Result field's value.
13579func (s *Job) SetResult(v string) *Job {
13580	s.Result = &v
13581	return s
13582}
13583
13584// SetStarted sets the Started field's value.
13585func (s *Job) SetStarted(v time.Time) *Job {
13586	s.Started = &v
13587	return s
13588}
13589
13590// SetStatus sets the Status field's value.
13591func (s *Job) SetStatus(v string) *Job {
13592	s.Status = &v
13593	return s
13594}
13595
13596// SetStopped sets the Stopped field's value.
13597func (s *Job) SetStopped(v time.Time) *Job {
13598	s.Stopped = &v
13599	return s
13600}
13601
13602// SetType sets the Type field's value.
13603func (s *Job) SetType(v string) *Job {
13604	s.Type = &v
13605	return s
13606}
13607
13608// SetVideoCapture sets the VideoCapture field's value.
13609func (s *Job) SetVideoCapture(v bool) *Job {
13610	s.VideoCapture = &v
13611	return s
13612}
13613
13614// SetVideoEndpoint sets the VideoEndpoint field's value.
13615func (s *Job) SetVideoEndpoint(v string) *Job {
13616	s.VideoEndpoint = &v
13617	return s
13618}
13619
13620// A limit was exceeded.
13621type LimitExceededException struct {
13622	_            struct{}                  `type:"structure"`
13623	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13624
13625	// Any additional information about the exception.
13626	Message_ *string `locationName:"message" type:"string"`
13627}
13628
13629// String returns the string representation.
13630//
13631// API parameter values that are decorated as "sensitive" in the API will not
13632// be included in the string output. The member name will be present, but the
13633// value will be replaced with "sensitive".
13634func (s LimitExceededException) String() string {
13635	return awsutil.Prettify(s)
13636}
13637
13638// GoString returns the string representation.
13639//
13640// API parameter values that are decorated as "sensitive" in the API will not
13641// be included in the string output. The member name will be present, but the
13642// value will be replaced with "sensitive".
13643func (s LimitExceededException) GoString() string {
13644	return s.String()
13645}
13646
13647func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
13648	return &LimitExceededException{
13649		RespMetadata: v,
13650	}
13651}
13652
13653// Code returns the exception type name.
13654func (s *LimitExceededException) Code() string {
13655	return "LimitExceededException"
13656}
13657
13658// Message returns the exception's message.
13659func (s *LimitExceededException) Message() string {
13660	if s.Message_ != nil {
13661		return *s.Message_
13662	}
13663	return ""
13664}
13665
13666// OrigErr always returns nil, satisfies awserr.Error interface.
13667func (s *LimitExceededException) OrigErr() error {
13668	return nil
13669}
13670
13671func (s *LimitExceededException) Error() string {
13672	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13673}
13674
13675// Status code returns the HTTP status code for the request's response error.
13676func (s *LimitExceededException) StatusCode() int {
13677	return s.RespMetadata.StatusCode
13678}
13679
13680// RequestID returns the service's response RequestID for request.
13681func (s *LimitExceededException) RequestID() string {
13682	return s.RespMetadata.RequestID
13683}
13684
13685// Represents a request to the list artifacts operation.
13686type ListArtifactsInput struct {
13687	_ struct{} `type:"structure"`
13688
13689	// The run, job, suite, or test ARN.
13690	//
13691	// Arn is a required field
13692	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13693
13694	// An identifier that was returned from the previous call to this operation,
13695	// which can be used to return the next set of items in the list.
13696	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13697
13698	// The artifacts' type.
13699	//
13700	// Allowed values include:
13701	//
13702	//    * FILE
13703	//
13704	//    * LOG
13705	//
13706	//    * SCREENSHOT
13707	//
13708	// Type is a required field
13709	Type *string `locationName:"type" type:"string" required:"true" enum:"ArtifactCategory"`
13710}
13711
13712// String returns the string representation.
13713//
13714// API parameter values that are decorated as "sensitive" in the API will not
13715// be included in the string output. The member name will be present, but the
13716// value will be replaced with "sensitive".
13717func (s ListArtifactsInput) String() string {
13718	return awsutil.Prettify(s)
13719}
13720
13721// GoString returns the string representation.
13722//
13723// API parameter values that are decorated as "sensitive" in the API will not
13724// be included in the string output. The member name will be present, but the
13725// value will be replaced with "sensitive".
13726func (s ListArtifactsInput) GoString() string {
13727	return s.String()
13728}
13729
13730// Validate inspects the fields of the type to determine if they are valid.
13731func (s *ListArtifactsInput) Validate() error {
13732	invalidParams := request.ErrInvalidParams{Context: "ListArtifactsInput"}
13733	if s.Arn == nil {
13734		invalidParams.Add(request.NewErrParamRequired("Arn"))
13735	}
13736	if s.Arn != nil && len(*s.Arn) < 32 {
13737		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13738	}
13739	if s.NextToken != nil && len(*s.NextToken) < 4 {
13740		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13741	}
13742	if s.Type == nil {
13743		invalidParams.Add(request.NewErrParamRequired("Type"))
13744	}
13745
13746	if invalidParams.Len() > 0 {
13747		return invalidParams
13748	}
13749	return nil
13750}
13751
13752// SetArn sets the Arn field's value.
13753func (s *ListArtifactsInput) SetArn(v string) *ListArtifactsInput {
13754	s.Arn = &v
13755	return s
13756}
13757
13758// SetNextToken sets the NextToken field's value.
13759func (s *ListArtifactsInput) SetNextToken(v string) *ListArtifactsInput {
13760	s.NextToken = &v
13761	return s
13762}
13763
13764// SetType sets the Type field's value.
13765func (s *ListArtifactsInput) SetType(v string) *ListArtifactsInput {
13766	s.Type = &v
13767	return s
13768}
13769
13770// Represents the result of a list artifacts operation.
13771type ListArtifactsOutput struct {
13772	_ struct{} `type:"structure"`
13773
13774	// Information about the artifacts.
13775	Artifacts []*Artifact `locationName:"artifacts" type:"list"`
13776
13777	// If the number of items that are returned is significantly large, this is
13778	// an identifier that is also returned. It can be used in a subsequent call
13779	// to this operation to return the next set of items in the list.
13780	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13781}
13782
13783// String returns the string representation.
13784//
13785// API parameter values that are decorated as "sensitive" in the API will not
13786// be included in the string output. The member name will be present, but the
13787// value will be replaced with "sensitive".
13788func (s ListArtifactsOutput) String() string {
13789	return awsutil.Prettify(s)
13790}
13791
13792// GoString returns the string representation.
13793//
13794// API parameter values that are decorated as "sensitive" in the API will not
13795// be included in the string output. The member name will be present, but the
13796// value will be replaced with "sensitive".
13797func (s ListArtifactsOutput) GoString() string {
13798	return s.String()
13799}
13800
13801// SetArtifacts sets the Artifacts field's value.
13802func (s *ListArtifactsOutput) SetArtifacts(v []*Artifact) *ListArtifactsOutput {
13803	s.Artifacts = v
13804	return s
13805}
13806
13807// SetNextToken sets the NextToken field's value.
13808func (s *ListArtifactsOutput) SetNextToken(v string) *ListArtifactsOutput {
13809	s.NextToken = &v
13810	return s
13811}
13812
13813type ListDeviceInstancesInput struct {
13814	_ struct{} `type:"structure"`
13815
13816	// An integer that specifies the maximum number of items you want to return
13817	// in the API response.
13818	MaxResults *int64 `locationName:"maxResults" type:"integer"`
13819
13820	// An identifier that was returned from the previous call to this operation,
13821	// which can be used to return the next set of items in the list.
13822	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13823}
13824
13825// String returns the string representation.
13826//
13827// API parameter values that are decorated as "sensitive" in the API will not
13828// be included in the string output. The member name will be present, but the
13829// value will be replaced with "sensitive".
13830func (s ListDeviceInstancesInput) String() string {
13831	return awsutil.Prettify(s)
13832}
13833
13834// GoString returns the string representation.
13835//
13836// API parameter values that are decorated as "sensitive" in the API will not
13837// be included in the string output. The member name will be present, but the
13838// value will be replaced with "sensitive".
13839func (s ListDeviceInstancesInput) GoString() string {
13840	return s.String()
13841}
13842
13843// Validate inspects the fields of the type to determine if they are valid.
13844func (s *ListDeviceInstancesInput) Validate() error {
13845	invalidParams := request.ErrInvalidParams{Context: "ListDeviceInstancesInput"}
13846	if s.NextToken != nil && len(*s.NextToken) < 4 {
13847		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13848	}
13849
13850	if invalidParams.Len() > 0 {
13851		return invalidParams
13852	}
13853	return nil
13854}
13855
13856// SetMaxResults sets the MaxResults field's value.
13857func (s *ListDeviceInstancesInput) SetMaxResults(v int64) *ListDeviceInstancesInput {
13858	s.MaxResults = &v
13859	return s
13860}
13861
13862// SetNextToken sets the NextToken field's value.
13863func (s *ListDeviceInstancesInput) SetNextToken(v string) *ListDeviceInstancesInput {
13864	s.NextToken = &v
13865	return s
13866}
13867
13868type ListDeviceInstancesOutput struct {
13869	_ struct{} `type:"structure"`
13870
13871	// An object that contains information about your device instances.
13872	DeviceInstances []*DeviceInstance `locationName:"deviceInstances" type:"list"`
13873
13874	// An identifier that can be used in the next call to this operation to return
13875	// the next set of items in the list.
13876	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13877}
13878
13879// String returns the string representation.
13880//
13881// API parameter values that are decorated as "sensitive" in the API will not
13882// be included in the string output. The member name will be present, but the
13883// value will be replaced with "sensitive".
13884func (s ListDeviceInstancesOutput) String() string {
13885	return awsutil.Prettify(s)
13886}
13887
13888// GoString returns the string representation.
13889//
13890// API parameter values that are decorated as "sensitive" in the API will not
13891// be included in the string output. The member name will be present, but the
13892// value will be replaced with "sensitive".
13893func (s ListDeviceInstancesOutput) GoString() string {
13894	return s.String()
13895}
13896
13897// SetDeviceInstances sets the DeviceInstances field's value.
13898func (s *ListDeviceInstancesOutput) SetDeviceInstances(v []*DeviceInstance) *ListDeviceInstancesOutput {
13899	s.DeviceInstances = v
13900	return s
13901}
13902
13903// SetNextToken sets the NextToken field's value.
13904func (s *ListDeviceInstancesOutput) SetNextToken(v string) *ListDeviceInstancesOutput {
13905	s.NextToken = &v
13906	return s
13907}
13908
13909// Represents the result of a list device pools request.
13910type ListDevicePoolsInput struct {
13911	_ struct{} `type:"structure"`
13912
13913	// The project ARN.
13914	//
13915	// Arn is a required field
13916	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13917
13918	// An identifier that was returned from the previous call to this operation,
13919	// which can be used to return the next set of items in the list.
13920	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13921
13922	// The device pools' type.
13923	//
13924	// Allowed values include:
13925	//
13926	//    * CURATED: A device pool that is created and managed by AWS Device Farm.
13927	//
13928	//    * PRIVATE: A device pool that is created and managed by the device pool
13929	//    developer.
13930	Type *string `locationName:"type" type:"string" enum:"DevicePoolType"`
13931}
13932
13933// String returns the string representation.
13934//
13935// API parameter values that are decorated as "sensitive" in the API will not
13936// be included in the string output. The member name will be present, but the
13937// value will be replaced with "sensitive".
13938func (s ListDevicePoolsInput) String() string {
13939	return awsutil.Prettify(s)
13940}
13941
13942// GoString returns the string representation.
13943//
13944// API parameter values that are decorated as "sensitive" in the API will not
13945// be included in the string output. The member name will be present, but the
13946// value will be replaced with "sensitive".
13947func (s ListDevicePoolsInput) GoString() string {
13948	return s.String()
13949}
13950
13951// Validate inspects the fields of the type to determine if they are valid.
13952func (s *ListDevicePoolsInput) Validate() error {
13953	invalidParams := request.ErrInvalidParams{Context: "ListDevicePoolsInput"}
13954	if s.Arn == nil {
13955		invalidParams.Add(request.NewErrParamRequired("Arn"))
13956	}
13957	if s.Arn != nil && len(*s.Arn) < 32 {
13958		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13959	}
13960	if s.NextToken != nil && len(*s.NextToken) < 4 {
13961		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13962	}
13963
13964	if invalidParams.Len() > 0 {
13965		return invalidParams
13966	}
13967	return nil
13968}
13969
13970// SetArn sets the Arn field's value.
13971func (s *ListDevicePoolsInput) SetArn(v string) *ListDevicePoolsInput {
13972	s.Arn = &v
13973	return s
13974}
13975
13976// SetNextToken sets the NextToken field's value.
13977func (s *ListDevicePoolsInput) SetNextToken(v string) *ListDevicePoolsInput {
13978	s.NextToken = &v
13979	return s
13980}
13981
13982// SetType sets the Type field's value.
13983func (s *ListDevicePoolsInput) SetType(v string) *ListDevicePoolsInput {
13984	s.Type = &v
13985	return s
13986}
13987
13988// Represents the result of a list device pools request.
13989type ListDevicePoolsOutput struct {
13990	_ struct{} `type:"structure"`
13991
13992	// Information about the device pools.
13993	DevicePools []*DevicePool `locationName:"devicePools" type:"list"`
13994
13995	// If the number of items that are returned is significantly large, this is
13996	// an identifier that is also returned. It can be used in a subsequent call
13997	// to this operation to return the next set of items in the list.
13998	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13999}
14000
14001// String returns the string representation.
14002//
14003// API parameter values that are decorated as "sensitive" in the API will not
14004// be included in the string output. The member name will be present, but the
14005// value will be replaced with "sensitive".
14006func (s ListDevicePoolsOutput) String() string {
14007	return awsutil.Prettify(s)
14008}
14009
14010// GoString returns the string representation.
14011//
14012// API parameter values that are decorated as "sensitive" in the API will not
14013// be included in the string output. The member name will be present, but the
14014// value will be replaced with "sensitive".
14015func (s ListDevicePoolsOutput) GoString() string {
14016	return s.String()
14017}
14018
14019// SetDevicePools sets the DevicePools field's value.
14020func (s *ListDevicePoolsOutput) SetDevicePools(v []*DevicePool) *ListDevicePoolsOutput {
14021	s.DevicePools = v
14022	return s
14023}
14024
14025// SetNextToken sets the NextToken field's value.
14026func (s *ListDevicePoolsOutput) SetNextToken(v string) *ListDevicePoolsOutput {
14027	s.NextToken = &v
14028	return s
14029}
14030
14031// Represents the result of a list devices request.
14032type ListDevicesInput struct {
14033	_ struct{} `type:"structure"`
14034
14035	// The Amazon Resource Name (ARN) of the project.
14036	Arn *string `locationName:"arn" min:"32" type:"string"`
14037
14038	// Used to select a set of devices. A filter is made up of an attribute, an
14039	// operator, and one or more values.
14040	//
14041	//    * Attribute: The aspect of a device such as platform or model used as
14042	//    the selection criteria in a device filter. Allowed values include: ARN:
14043	//    The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
14044	//    PLATFORM: The device platform. Valid values are ANDROID or IOS. OS_VERSION:
14045	//    The operating system version (for example, 10.3.2). MODEL: The device
14046	//    model (for example, iPad 5th Gen). AVAILABILITY: The current availability
14047	//    of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or
14048	//    TEMPORARY_NOT_AVAILABLE. FORM_FACTOR: The device form factor. Valid values
14049	//    are PHONE or TABLET. MANUFACTURER: The device manufacturer (for example,
14050	//    Apple). REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote
14051	//    access. Valid values are TRUE or FALSE. REMOTE_DEBUG_ENABLED: Whether
14052	//    the device is enabled for remote debugging. Valid values are TRUE or FALSE.
14053	//    Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
14054	//    this attribute is ignored. INSTANCE_ARN: The Amazon Resource Name (ARN)
14055	//    of the device instance. INSTANCE_LABELS: The label of the device instance.
14056	//    FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE.
14057	//
14058	//    * Operator: The filter operator. The EQUALS operator is available for
14059	//    every attribute except INSTANCE_LABELS. The CONTAINS operator is available
14060	//    for the INSTANCE_LABELS and MODEL attributes. The IN and NOT_IN operators
14061	//    are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN
14062	//    attributes. The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS
14063	//    operators are also available for the OS_VERSION attribute.
14064	//
14065	//    * Values: An array of one or more filter values. The IN and NOT_IN operators
14066	//    take a values array that has one or more elements. The other operators
14067	//    require an array with a single element. In a request, the AVAILABILITY
14068	//    attribute takes the following values: AVAILABLE, HIGHLY_AVAILABLE, BUSY,
14069	//    or TEMPORARY_NOT_AVAILABLE.
14070	Filters []*DeviceFilter `locationName:"filters" type:"list"`
14071
14072	// An identifier that was returned from the previous call to this operation,
14073	// which can be used to return the next set of items in the list.
14074	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14075}
14076
14077// String returns the string representation.
14078//
14079// API parameter values that are decorated as "sensitive" in the API will not
14080// be included in the string output. The member name will be present, but the
14081// value will be replaced with "sensitive".
14082func (s ListDevicesInput) String() string {
14083	return awsutil.Prettify(s)
14084}
14085
14086// GoString returns the string representation.
14087//
14088// API parameter values that are decorated as "sensitive" in the API will not
14089// be included in the string output. The member name will be present, but the
14090// value will be replaced with "sensitive".
14091func (s ListDevicesInput) GoString() string {
14092	return s.String()
14093}
14094
14095// Validate inspects the fields of the type to determine if they are valid.
14096func (s *ListDevicesInput) Validate() error {
14097	invalidParams := request.ErrInvalidParams{Context: "ListDevicesInput"}
14098	if s.Arn != nil && len(*s.Arn) < 32 {
14099		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14100	}
14101	if s.NextToken != nil && len(*s.NextToken) < 4 {
14102		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14103	}
14104	if s.Filters != nil {
14105		for i, v := range s.Filters {
14106			if v == nil {
14107				continue
14108			}
14109			if err := v.Validate(); err != nil {
14110				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
14111			}
14112		}
14113	}
14114
14115	if invalidParams.Len() > 0 {
14116		return invalidParams
14117	}
14118	return nil
14119}
14120
14121// SetArn sets the Arn field's value.
14122func (s *ListDevicesInput) SetArn(v string) *ListDevicesInput {
14123	s.Arn = &v
14124	return s
14125}
14126
14127// SetFilters sets the Filters field's value.
14128func (s *ListDevicesInput) SetFilters(v []*DeviceFilter) *ListDevicesInput {
14129	s.Filters = v
14130	return s
14131}
14132
14133// SetNextToken sets the NextToken field's value.
14134func (s *ListDevicesInput) SetNextToken(v string) *ListDevicesInput {
14135	s.NextToken = &v
14136	return s
14137}
14138
14139// Represents the result of a list devices operation.
14140type ListDevicesOutput struct {
14141	_ struct{} `type:"structure"`
14142
14143	// Information about the devices.
14144	Devices []*Device `locationName:"devices" type:"list"`
14145
14146	// If the number of items that are returned is significantly large, this is
14147	// an identifier that is also returned. It can be used in a subsequent call
14148	// to this operation to return the next set of items in the list.
14149	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14150}
14151
14152// String returns the string representation.
14153//
14154// API parameter values that are decorated as "sensitive" in the API will not
14155// be included in the string output. The member name will be present, but the
14156// value will be replaced with "sensitive".
14157func (s ListDevicesOutput) String() string {
14158	return awsutil.Prettify(s)
14159}
14160
14161// GoString returns the string representation.
14162//
14163// API parameter values that are decorated as "sensitive" in the API will not
14164// be included in the string output. The member name will be present, but the
14165// value will be replaced with "sensitive".
14166func (s ListDevicesOutput) GoString() string {
14167	return s.String()
14168}
14169
14170// SetDevices sets the Devices field's value.
14171func (s *ListDevicesOutput) SetDevices(v []*Device) *ListDevicesOutput {
14172	s.Devices = v
14173	return s
14174}
14175
14176// SetNextToken sets the NextToken field's value.
14177func (s *ListDevicesOutput) SetNextToken(v string) *ListDevicesOutput {
14178	s.NextToken = &v
14179	return s
14180}
14181
14182type ListInstanceProfilesInput struct {
14183	_ struct{} `type:"structure"`
14184
14185	// An integer that specifies the maximum number of items you want to return
14186	// in the API response.
14187	MaxResults *int64 `locationName:"maxResults" type:"integer"`
14188
14189	// An identifier that was returned from the previous call to this operation,
14190	// which can be used to return the next set of items in the list.
14191	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14192}
14193
14194// String returns the string representation.
14195//
14196// API parameter values that are decorated as "sensitive" in the API will not
14197// be included in the string output. The member name will be present, but the
14198// value will be replaced with "sensitive".
14199func (s ListInstanceProfilesInput) String() string {
14200	return awsutil.Prettify(s)
14201}
14202
14203// GoString returns the string representation.
14204//
14205// API parameter values that are decorated as "sensitive" in the API will not
14206// be included in the string output. The member name will be present, but the
14207// value will be replaced with "sensitive".
14208func (s ListInstanceProfilesInput) GoString() string {
14209	return s.String()
14210}
14211
14212// Validate inspects the fields of the type to determine if they are valid.
14213func (s *ListInstanceProfilesInput) Validate() error {
14214	invalidParams := request.ErrInvalidParams{Context: "ListInstanceProfilesInput"}
14215	if s.NextToken != nil && len(*s.NextToken) < 4 {
14216		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14217	}
14218
14219	if invalidParams.Len() > 0 {
14220		return invalidParams
14221	}
14222	return nil
14223}
14224
14225// SetMaxResults sets the MaxResults field's value.
14226func (s *ListInstanceProfilesInput) SetMaxResults(v int64) *ListInstanceProfilesInput {
14227	s.MaxResults = &v
14228	return s
14229}
14230
14231// SetNextToken sets the NextToken field's value.
14232func (s *ListInstanceProfilesInput) SetNextToken(v string) *ListInstanceProfilesInput {
14233	s.NextToken = &v
14234	return s
14235}
14236
14237type ListInstanceProfilesOutput struct {
14238	_ struct{} `type:"structure"`
14239
14240	// An object that contains information about your instance profiles.
14241	InstanceProfiles []*InstanceProfile `locationName:"instanceProfiles" type:"list"`
14242
14243	// An identifier that can be used in the next call to this operation to return
14244	// the next set of items in the list.
14245	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14246}
14247
14248// String returns the string representation.
14249//
14250// API parameter values that are decorated as "sensitive" in the API will not
14251// be included in the string output. The member name will be present, but the
14252// value will be replaced with "sensitive".
14253func (s ListInstanceProfilesOutput) String() string {
14254	return awsutil.Prettify(s)
14255}
14256
14257// GoString returns the string representation.
14258//
14259// API parameter values that are decorated as "sensitive" in the API will not
14260// be included in the string output. The member name will be present, but the
14261// value will be replaced with "sensitive".
14262func (s ListInstanceProfilesOutput) GoString() string {
14263	return s.String()
14264}
14265
14266// SetInstanceProfiles sets the InstanceProfiles field's value.
14267func (s *ListInstanceProfilesOutput) SetInstanceProfiles(v []*InstanceProfile) *ListInstanceProfilesOutput {
14268	s.InstanceProfiles = v
14269	return s
14270}
14271
14272// SetNextToken sets the NextToken field's value.
14273func (s *ListInstanceProfilesOutput) SetNextToken(v string) *ListInstanceProfilesOutput {
14274	s.NextToken = &v
14275	return s
14276}
14277
14278// Represents a request to the list jobs operation.
14279type ListJobsInput struct {
14280	_ struct{} `type:"structure"`
14281
14282	// The run's Amazon Resource Name (ARN).
14283	//
14284	// Arn is a required field
14285	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14286
14287	// An identifier that was returned from the previous call to this operation,
14288	// which can be used to return the next set of items in the list.
14289	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14290}
14291
14292// String returns the string representation.
14293//
14294// API parameter values that are decorated as "sensitive" in the API will not
14295// be included in the string output. The member name will be present, but the
14296// value will be replaced with "sensitive".
14297func (s ListJobsInput) String() string {
14298	return awsutil.Prettify(s)
14299}
14300
14301// GoString returns the string representation.
14302//
14303// API parameter values that are decorated as "sensitive" in the API will not
14304// be included in the string output. The member name will be present, but the
14305// value will be replaced with "sensitive".
14306func (s ListJobsInput) GoString() string {
14307	return s.String()
14308}
14309
14310// Validate inspects the fields of the type to determine if they are valid.
14311func (s *ListJobsInput) Validate() error {
14312	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
14313	if s.Arn == nil {
14314		invalidParams.Add(request.NewErrParamRequired("Arn"))
14315	}
14316	if s.Arn != nil && len(*s.Arn) < 32 {
14317		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14318	}
14319	if s.NextToken != nil && len(*s.NextToken) < 4 {
14320		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14321	}
14322
14323	if invalidParams.Len() > 0 {
14324		return invalidParams
14325	}
14326	return nil
14327}
14328
14329// SetArn sets the Arn field's value.
14330func (s *ListJobsInput) SetArn(v string) *ListJobsInput {
14331	s.Arn = &v
14332	return s
14333}
14334
14335// SetNextToken sets the NextToken field's value.
14336func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
14337	s.NextToken = &v
14338	return s
14339}
14340
14341// Represents the result of a list jobs request.
14342type ListJobsOutput struct {
14343	_ struct{} `type:"structure"`
14344
14345	// Information about the jobs.
14346	Jobs []*Job `locationName:"jobs" type:"list"`
14347
14348	// If the number of items that are returned is significantly large, this is
14349	// an identifier that is also returned. It can be used in a subsequent call
14350	// to this operation to return the next set of items in the list.
14351	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14352}
14353
14354// String returns the string representation.
14355//
14356// API parameter values that are decorated as "sensitive" in the API will not
14357// be included in the string output. The member name will be present, but the
14358// value will be replaced with "sensitive".
14359func (s ListJobsOutput) String() string {
14360	return awsutil.Prettify(s)
14361}
14362
14363// GoString returns the string representation.
14364//
14365// API parameter values that are decorated as "sensitive" in the API will not
14366// be included in the string output. The member name will be present, but the
14367// value will be replaced with "sensitive".
14368func (s ListJobsOutput) GoString() string {
14369	return s.String()
14370}
14371
14372// SetJobs sets the Jobs field's value.
14373func (s *ListJobsOutput) SetJobs(v []*Job) *ListJobsOutput {
14374	s.Jobs = v
14375	return s
14376}
14377
14378// SetNextToken sets the NextToken field's value.
14379func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
14380	s.NextToken = &v
14381	return s
14382}
14383
14384type ListNetworkProfilesInput struct {
14385	_ struct{} `type:"structure"`
14386
14387	// The Amazon Resource Name (ARN) of the project for which you want to list
14388	// network profiles.
14389	//
14390	// Arn is a required field
14391	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14392
14393	// An identifier that was returned from the previous call to this operation,
14394	// which can be used to return the next set of items in the list.
14395	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14396
14397	// The type of network profile to return information about. Valid values are
14398	// listed here.
14399	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
14400}
14401
14402// String returns the string representation.
14403//
14404// API parameter values that are decorated as "sensitive" in the API will not
14405// be included in the string output. The member name will be present, but the
14406// value will be replaced with "sensitive".
14407func (s ListNetworkProfilesInput) String() string {
14408	return awsutil.Prettify(s)
14409}
14410
14411// GoString returns the string representation.
14412//
14413// API parameter values that are decorated as "sensitive" in the API will not
14414// be included in the string output. The member name will be present, but the
14415// value will be replaced with "sensitive".
14416func (s ListNetworkProfilesInput) GoString() string {
14417	return s.String()
14418}
14419
14420// Validate inspects the fields of the type to determine if they are valid.
14421func (s *ListNetworkProfilesInput) Validate() error {
14422	invalidParams := request.ErrInvalidParams{Context: "ListNetworkProfilesInput"}
14423	if s.Arn == nil {
14424		invalidParams.Add(request.NewErrParamRequired("Arn"))
14425	}
14426	if s.Arn != nil && len(*s.Arn) < 32 {
14427		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14428	}
14429	if s.NextToken != nil && len(*s.NextToken) < 4 {
14430		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14431	}
14432
14433	if invalidParams.Len() > 0 {
14434		return invalidParams
14435	}
14436	return nil
14437}
14438
14439// SetArn sets the Arn field's value.
14440func (s *ListNetworkProfilesInput) SetArn(v string) *ListNetworkProfilesInput {
14441	s.Arn = &v
14442	return s
14443}
14444
14445// SetNextToken sets the NextToken field's value.
14446func (s *ListNetworkProfilesInput) SetNextToken(v string) *ListNetworkProfilesInput {
14447	s.NextToken = &v
14448	return s
14449}
14450
14451// SetType sets the Type field's value.
14452func (s *ListNetworkProfilesInput) SetType(v string) *ListNetworkProfilesInput {
14453	s.Type = &v
14454	return s
14455}
14456
14457type ListNetworkProfilesOutput struct {
14458	_ struct{} `type:"structure"`
14459
14460	// A list of the available network profiles.
14461	NetworkProfiles []*NetworkProfile `locationName:"networkProfiles" type:"list"`
14462
14463	// An identifier that was returned from the previous call to this operation,
14464	// which can be used to return the next set of items in the list.
14465	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14466}
14467
14468// String returns the string representation.
14469//
14470// API parameter values that are decorated as "sensitive" in the API will not
14471// be included in the string output. The member name will be present, but the
14472// value will be replaced with "sensitive".
14473func (s ListNetworkProfilesOutput) String() string {
14474	return awsutil.Prettify(s)
14475}
14476
14477// GoString returns the string representation.
14478//
14479// API parameter values that are decorated as "sensitive" in the API will not
14480// be included in the string output. The member name will be present, but the
14481// value will be replaced with "sensitive".
14482func (s ListNetworkProfilesOutput) GoString() string {
14483	return s.String()
14484}
14485
14486// SetNetworkProfiles sets the NetworkProfiles field's value.
14487func (s *ListNetworkProfilesOutput) SetNetworkProfiles(v []*NetworkProfile) *ListNetworkProfilesOutput {
14488	s.NetworkProfiles = v
14489	return s
14490}
14491
14492// SetNextToken sets the NextToken field's value.
14493func (s *ListNetworkProfilesOutput) SetNextToken(v string) *ListNetworkProfilesOutput {
14494	s.NextToken = &v
14495	return s
14496}
14497
14498type ListOfferingPromotionsInput struct {
14499	_ struct{} `type:"structure"`
14500
14501	// An identifier that was returned from the previous call to this operation,
14502	// which can be used to return the next set of items in the list.
14503	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14504}
14505
14506// String returns the string representation.
14507//
14508// API parameter values that are decorated as "sensitive" in the API will not
14509// be included in the string output. The member name will be present, but the
14510// value will be replaced with "sensitive".
14511func (s ListOfferingPromotionsInput) String() string {
14512	return awsutil.Prettify(s)
14513}
14514
14515// GoString returns the string representation.
14516//
14517// API parameter values that are decorated as "sensitive" in the API will not
14518// be included in the string output. The member name will be present, but the
14519// value will be replaced with "sensitive".
14520func (s ListOfferingPromotionsInput) GoString() string {
14521	return s.String()
14522}
14523
14524// Validate inspects the fields of the type to determine if they are valid.
14525func (s *ListOfferingPromotionsInput) Validate() error {
14526	invalidParams := request.ErrInvalidParams{Context: "ListOfferingPromotionsInput"}
14527	if s.NextToken != nil && len(*s.NextToken) < 4 {
14528		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14529	}
14530
14531	if invalidParams.Len() > 0 {
14532		return invalidParams
14533	}
14534	return nil
14535}
14536
14537// SetNextToken sets the NextToken field's value.
14538func (s *ListOfferingPromotionsInput) SetNextToken(v string) *ListOfferingPromotionsInput {
14539	s.NextToken = &v
14540	return s
14541}
14542
14543type ListOfferingPromotionsOutput struct {
14544	_ struct{} `type:"structure"`
14545
14546	// An identifier to be used in the next call to this operation, to return the
14547	// next set of items in the list.
14548	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14549
14550	// Information about the offering promotions.
14551	OfferingPromotions []*OfferingPromotion `locationName:"offeringPromotions" type:"list"`
14552}
14553
14554// String returns the string representation.
14555//
14556// API parameter values that are decorated as "sensitive" in the API will not
14557// be included in the string output. The member name will be present, but the
14558// value will be replaced with "sensitive".
14559func (s ListOfferingPromotionsOutput) String() string {
14560	return awsutil.Prettify(s)
14561}
14562
14563// GoString returns the string representation.
14564//
14565// API parameter values that are decorated as "sensitive" in the API will not
14566// be included in the string output. The member name will be present, but the
14567// value will be replaced with "sensitive".
14568func (s ListOfferingPromotionsOutput) GoString() string {
14569	return s.String()
14570}
14571
14572// SetNextToken sets the NextToken field's value.
14573func (s *ListOfferingPromotionsOutput) SetNextToken(v string) *ListOfferingPromotionsOutput {
14574	s.NextToken = &v
14575	return s
14576}
14577
14578// SetOfferingPromotions sets the OfferingPromotions field's value.
14579func (s *ListOfferingPromotionsOutput) SetOfferingPromotions(v []*OfferingPromotion) *ListOfferingPromotionsOutput {
14580	s.OfferingPromotions = v
14581	return s
14582}
14583
14584// Represents the request to list the offering transaction history.
14585type ListOfferingTransactionsInput struct {
14586	_ struct{} `type:"structure"`
14587
14588	// An identifier that was returned from the previous call to this operation,
14589	// which can be used to return the next set of items in the list.
14590	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14591}
14592
14593// String returns the string representation.
14594//
14595// API parameter values that are decorated as "sensitive" in the API will not
14596// be included in the string output. The member name will be present, but the
14597// value will be replaced with "sensitive".
14598func (s ListOfferingTransactionsInput) String() string {
14599	return awsutil.Prettify(s)
14600}
14601
14602// GoString returns the string representation.
14603//
14604// API parameter values that are decorated as "sensitive" in the API will not
14605// be included in the string output. The member name will be present, but the
14606// value will be replaced with "sensitive".
14607func (s ListOfferingTransactionsInput) GoString() string {
14608	return s.String()
14609}
14610
14611// Validate inspects the fields of the type to determine if they are valid.
14612func (s *ListOfferingTransactionsInput) Validate() error {
14613	invalidParams := request.ErrInvalidParams{Context: "ListOfferingTransactionsInput"}
14614	if s.NextToken != nil && len(*s.NextToken) < 4 {
14615		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14616	}
14617
14618	if invalidParams.Len() > 0 {
14619		return invalidParams
14620	}
14621	return nil
14622}
14623
14624// SetNextToken sets the NextToken field's value.
14625func (s *ListOfferingTransactionsInput) SetNextToken(v string) *ListOfferingTransactionsInput {
14626	s.NextToken = &v
14627	return s
14628}
14629
14630// Returns the transaction log of the specified offerings.
14631type ListOfferingTransactionsOutput struct {
14632	_ struct{} `type:"structure"`
14633
14634	// An identifier that was returned from the previous call to this operation,
14635	// which can be used to return the next set of items in the list.
14636	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14637
14638	// The audit log of subscriptions you have purchased and modified through AWS
14639	// Device Farm.
14640	OfferingTransactions []*OfferingTransaction `locationName:"offeringTransactions" type:"list"`
14641}
14642
14643// String returns the string representation.
14644//
14645// API parameter values that are decorated as "sensitive" in the API will not
14646// be included in the string output. The member name will be present, but the
14647// value will be replaced with "sensitive".
14648func (s ListOfferingTransactionsOutput) String() string {
14649	return awsutil.Prettify(s)
14650}
14651
14652// GoString returns the string representation.
14653//
14654// API parameter values that are decorated as "sensitive" in the API will not
14655// be included in the string output. The member name will be present, but the
14656// value will be replaced with "sensitive".
14657func (s ListOfferingTransactionsOutput) GoString() string {
14658	return s.String()
14659}
14660
14661// SetNextToken sets the NextToken field's value.
14662func (s *ListOfferingTransactionsOutput) SetNextToken(v string) *ListOfferingTransactionsOutput {
14663	s.NextToken = &v
14664	return s
14665}
14666
14667// SetOfferingTransactions sets the OfferingTransactions field's value.
14668func (s *ListOfferingTransactionsOutput) SetOfferingTransactions(v []*OfferingTransaction) *ListOfferingTransactionsOutput {
14669	s.OfferingTransactions = v
14670	return s
14671}
14672
14673// Represents the request to list all offerings.
14674type ListOfferingsInput struct {
14675	_ struct{} `type:"structure"`
14676
14677	// An identifier that was returned from the previous call to this operation,
14678	// which can be used to return the next set of items in the list.
14679	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14680}
14681
14682// String returns the string representation.
14683//
14684// API parameter values that are decorated as "sensitive" in the API will not
14685// be included in the string output. The member name will be present, but the
14686// value will be replaced with "sensitive".
14687func (s ListOfferingsInput) String() string {
14688	return awsutil.Prettify(s)
14689}
14690
14691// GoString returns the string representation.
14692//
14693// API parameter values that are decorated as "sensitive" in the API will not
14694// be included in the string output. The member name will be present, but the
14695// value will be replaced with "sensitive".
14696func (s ListOfferingsInput) GoString() string {
14697	return s.String()
14698}
14699
14700// Validate inspects the fields of the type to determine if they are valid.
14701func (s *ListOfferingsInput) Validate() error {
14702	invalidParams := request.ErrInvalidParams{Context: "ListOfferingsInput"}
14703	if s.NextToken != nil && len(*s.NextToken) < 4 {
14704		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14705	}
14706
14707	if invalidParams.Len() > 0 {
14708		return invalidParams
14709	}
14710	return nil
14711}
14712
14713// SetNextToken sets the NextToken field's value.
14714func (s *ListOfferingsInput) SetNextToken(v string) *ListOfferingsInput {
14715	s.NextToken = &v
14716	return s
14717}
14718
14719// Represents the return values of the list of offerings.
14720type ListOfferingsOutput struct {
14721	_ struct{} `type:"structure"`
14722
14723	// An identifier that was returned from the previous call to this operation,
14724	// which can be used to return the next set of items in the list.
14725	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14726
14727	// A value that represents the list offering results.
14728	Offerings []*Offering `locationName:"offerings" type:"list"`
14729}
14730
14731// String returns the string representation.
14732//
14733// API parameter values that are decorated as "sensitive" in the API will not
14734// be included in the string output. The member name will be present, but the
14735// value will be replaced with "sensitive".
14736func (s ListOfferingsOutput) String() string {
14737	return awsutil.Prettify(s)
14738}
14739
14740// GoString returns the string representation.
14741//
14742// API parameter values that are decorated as "sensitive" in the API will not
14743// be included in the string output. The member name will be present, but the
14744// value will be replaced with "sensitive".
14745func (s ListOfferingsOutput) GoString() string {
14746	return s.String()
14747}
14748
14749// SetNextToken sets the NextToken field's value.
14750func (s *ListOfferingsOutput) SetNextToken(v string) *ListOfferingsOutput {
14751	s.NextToken = &v
14752	return s
14753}
14754
14755// SetOfferings sets the Offerings field's value.
14756func (s *ListOfferingsOutput) SetOfferings(v []*Offering) *ListOfferingsOutput {
14757	s.Offerings = v
14758	return s
14759}
14760
14761// Represents a request to the list projects operation.
14762type ListProjectsInput struct {
14763	_ struct{} `type:"structure"`
14764
14765	// Optional. If no Amazon Resource Name (ARN) is specified, then AWS Device
14766	// Farm returns a list of all projects for the AWS account. You can also specify
14767	// a project ARN.
14768	Arn *string `locationName:"arn" min:"32" type:"string"`
14769
14770	// An identifier that was returned from the previous call to this operation,
14771	// which can be used to return the next set of items in the list.
14772	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14773}
14774
14775// String returns the string representation.
14776//
14777// API parameter values that are decorated as "sensitive" in the API will not
14778// be included in the string output. The member name will be present, but the
14779// value will be replaced with "sensitive".
14780func (s ListProjectsInput) String() string {
14781	return awsutil.Prettify(s)
14782}
14783
14784// GoString returns the string representation.
14785//
14786// API parameter values that are decorated as "sensitive" in the API will not
14787// be included in the string output. The member name will be present, but the
14788// value will be replaced with "sensitive".
14789func (s ListProjectsInput) GoString() string {
14790	return s.String()
14791}
14792
14793// Validate inspects the fields of the type to determine if they are valid.
14794func (s *ListProjectsInput) Validate() error {
14795	invalidParams := request.ErrInvalidParams{Context: "ListProjectsInput"}
14796	if s.Arn != nil && len(*s.Arn) < 32 {
14797		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14798	}
14799	if s.NextToken != nil && len(*s.NextToken) < 4 {
14800		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14801	}
14802
14803	if invalidParams.Len() > 0 {
14804		return invalidParams
14805	}
14806	return nil
14807}
14808
14809// SetArn sets the Arn field's value.
14810func (s *ListProjectsInput) SetArn(v string) *ListProjectsInput {
14811	s.Arn = &v
14812	return s
14813}
14814
14815// SetNextToken sets the NextToken field's value.
14816func (s *ListProjectsInput) SetNextToken(v string) *ListProjectsInput {
14817	s.NextToken = &v
14818	return s
14819}
14820
14821// Represents the result of a list projects request.
14822type ListProjectsOutput struct {
14823	_ struct{} `type:"structure"`
14824
14825	// If the number of items that are returned is significantly large, this is
14826	// an identifier that is also returned. It can be used in a subsequent call
14827	// to this operation to return the next set of items in the list.
14828	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14829
14830	// Information about the projects.
14831	Projects []*Project `locationName:"projects" type:"list"`
14832}
14833
14834// String returns the string representation.
14835//
14836// API parameter values that are decorated as "sensitive" in the API will not
14837// be included in the string output. The member name will be present, but the
14838// value will be replaced with "sensitive".
14839func (s ListProjectsOutput) String() string {
14840	return awsutil.Prettify(s)
14841}
14842
14843// GoString returns the string representation.
14844//
14845// API parameter values that are decorated as "sensitive" in the API will not
14846// be included in the string output. The member name will be present, but the
14847// value will be replaced with "sensitive".
14848func (s ListProjectsOutput) GoString() string {
14849	return s.String()
14850}
14851
14852// SetNextToken sets the NextToken field's value.
14853func (s *ListProjectsOutput) SetNextToken(v string) *ListProjectsOutput {
14854	s.NextToken = &v
14855	return s
14856}
14857
14858// SetProjects sets the Projects field's value.
14859func (s *ListProjectsOutput) SetProjects(v []*Project) *ListProjectsOutput {
14860	s.Projects = v
14861	return s
14862}
14863
14864// Represents the request to return information about the remote access session.
14865type ListRemoteAccessSessionsInput struct {
14866	_ struct{} `type:"structure"`
14867
14868	// The Amazon Resource Name (ARN) of the project about which you are requesting
14869	// information.
14870	//
14871	// Arn is a required field
14872	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14873
14874	// An identifier that was returned from the previous call to this operation,
14875	// which can be used to return the next set of items in the list.
14876	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14877}
14878
14879// String returns the string representation.
14880//
14881// API parameter values that are decorated as "sensitive" in the API will not
14882// be included in the string output. The member name will be present, but the
14883// value will be replaced with "sensitive".
14884func (s ListRemoteAccessSessionsInput) String() string {
14885	return awsutil.Prettify(s)
14886}
14887
14888// GoString returns the string representation.
14889//
14890// API parameter values that are decorated as "sensitive" in the API will not
14891// be included in the string output. The member name will be present, but the
14892// value will be replaced with "sensitive".
14893func (s ListRemoteAccessSessionsInput) GoString() string {
14894	return s.String()
14895}
14896
14897// Validate inspects the fields of the type to determine if they are valid.
14898func (s *ListRemoteAccessSessionsInput) Validate() error {
14899	invalidParams := request.ErrInvalidParams{Context: "ListRemoteAccessSessionsInput"}
14900	if s.Arn == nil {
14901		invalidParams.Add(request.NewErrParamRequired("Arn"))
14902	}
14903	if s.Arn != nil && len(*s.Arn) < 32 {
14904		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14905	}
14906	if s.NextToken != nil && len(*s.NextToken) < 4 {
14907		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14908	}
14909
14910	if invalidParams.Len() > 0 {
14911		return invalidParams
14912	}
14913	return nil
14914}
14915
14916// SetArn sets the Arn field's value.
14917func (s *ListRemoteAccessSessionsInput) SetArn(v string) *ListRemoteAccessSessionsInput {
14918	s.Arn = &v
14919	return s
14920}
14921
14922// SetNextToken sets the NextToken field's value.
14923func (s *ListRemoteAccessSessionsInput) SetNextToken(v string) *ListRemoteAccessSessionsInput {
14924	s.NextToken = &v
14925	return s
14926}
14927
14928// Represents the response from the server after AWS Device Farm makes a request
14929// to return information about the remote access session.
14930type ListRemoteAccessSessionsOutput struct {
14931	_ struct{} `type:"structure"`
14932
14933	// An identifier that was returned from the previous call to this operation,
14934	// which can be used to return the next set of items in the list.
14935	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14936
14937	// A container that represents the metadata from the service about each remote
14938	// access session you are requesting.
14939	RemoteAccessSessions []*RemoteAccessSession `locationName:"remoteAccessSessions" type:"list"`
14940}
14941
14942// String returns the string representation.
14943//
14944// API parameter values that are decorated as "sensitive" in the API will not
14945// be included in the string output. The member name will be present, but the
14946// value will be replaced with "sensitive".
14947func (s ListRemoteAccessSessionsOutput) String() string {
14948	return awsutil.Prettify(s)
14949}
14950
14951// GoString returns the string representation.
14952//
14953// API parameter values that are decorated as "sensitive" in the API will not
14954// be included in the string output. The member name will be present, but the
14955// value will be replaced with "sensitive".
14956func (s ListRemoteAccessSessionsOutput) GoString() string {
14957	return s.String()
14958}
14959
14960// SetNextToken sets the NextToken field's value.
14961func (s *ListRemoteAccessSessionsOutput) SetNextToken(v string) *ListRemoteAccessSessionsOutput {
14962	s.NextToken = &v
14963	return s
14964}
14965
14966// SetRemoteAccessSessions sets the RemoteAccessSessions field's value.
14967func (s *ListRemoteAccessSessionsOutput) SetRemoteAccessSessions(v []*RemoteAccessSession) *ListRemoteAccessSessionsOutput {
14968	s.RemoteAccessSessions = v
14969	return s
14970}
14971
14972// Represents a request to the list runs operation.
14973type ListRunsInput struct {
14974	_ struct{} `type:"structure"`
14975
14976	// The Amazon Resource Name (ARN) of the project for which you want to list
14977	// runs.
14978	//
14979	// Arn is a required field
14980	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14981
14982	// An identifier that was returned from the previous call to this operation,
14983	// which can be used to return the next set of items in the list.
14984	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14985}
14986
14987// String returns the string representation.
14988//
14989// API parameter values that are decorated as "sensitive" in the API will not
14990// be included in the string output. The member name will be present, but the
14991// value will be replaced with "sensitive".
14992func (s ListRunsInput) String() string {
14993	return awsutil.Prettify(s)
14994}
14995
14996// GoString returns the string representation.
14997//
14998// API parameter values that are decorated as "sensitive" in the API will not
14999// be included in the string output. The member name will be present, but the
15000// value will be replaced with "sensitive".
15001func (s ListRunsInput) GoString() string {
15002	return s.String()
15003}
15004
15005// Validate inspects the fields of the type to determine if they are valid.
15006func (s *ListRunsInput) Validate() error {
15007	invalidParams := request.ErrInvalidParams{Context: "ListRunsInput"}
15008	if s.Arn == nil {
15009		invalidParams.Add(request.NewErrParamRequired("Arn"))
15010	}
15011	if s.Arn != nil && len(*s.Arn) < 32 {
15012		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
15013	}
15014	if s.NextToken != nil && len(*s.NextToken) < 4 {
15015		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15016	}
15017
15018	if invalidParams.Len() > 0 {
15019		return invalidParams
15020	}
15021	return nil
15022}
15023
15024// SetArn sets the Arn field's value.
15025func (s *ListRunsInput) SetArn(v string) *ListRunsInput {
15026	s.Arn = &v
15027	return s
15028}
15029
15030// SetNextToken sets the NextToken field's value.
15031func (s *ListRunsInput) SetNextToken(v string) *ListRunsInput {
15032	s.NextToken = &v
15033	return s
15034}
15035
15036// Represents the result of a list runs request.
15037type ListRunsOutput struct {
15038	_ struct{} `type:"structure"`
15039
15040	// If the number of items that are returned is significantly large, this is
15041	// an identifier that is also returned. It can be used in a subsequent call
15042	// to this operation to return the next set of items in the list.
15043	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15044
15045	// Information about the runs.
15046	Runs []*Run `locationName:"runs" type:"list"`
15047}
15048
15049// String returns the string representation.
15050//
15051// API parameter values that are decorated as "sensitive" in the API will not
15052// be included in the string output. The member name will be present, but the
15053// value will be replaced with "sensitive".
15054func (s ListRunsOutput) String() string {
15055	return awsutil.Prettify(s)
15056}
15057
15058// GoString returns the string representation.
15059//
15060// API parameter values that are decorated as "sensitive" in the API will not
15061// be included in the string output. The member name will be present, but the
15062// value will be replaced with "sensitive".
15063func (s ListRunsOutput) GoString() string {
15064	return s.String()
15065}
15066
15067// SetNextToken sets the NextToken field's value.
15068func (s *ListRunsOutput) SetNextToken(v string) *ListRunsOutput {
15069	s.NextToken = &v
15070	return s
15071}
15072
15073// SetRuns sets the Runs field's value.
15074func (s *ListRunsOutput) SetRuns(v []*Run) *ListRunsOutput {
15075	s.Runs = v
15076	return s
15077}
15078
15079// Represents a request to the list samples operation.
15080type ListSamplesInput struct {
15081	_ struct{} `type:"structure"`
15082
15083	// The Amazon Resource Name (ARN) of the job used to list samples.
15084	//
15085	// Arn is a required field
15086	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
15087
15088	// An identifier that was returned from the previous call to this operation,
15089	// which can be used to return the next set of items in the list.
15090	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15091}
15092
15093// String returns the string representation.
15094//
15095// API parameter values that are decorated as "sensitive" in the API will not
15096// be included in the string output. The member name will be present, but the
15097// value will be replaced with "sensitive".
15098func (s ListSamplesInput) String() string {
15099	return awsutil.Prettify(s)
15100}
15101
15102// GoString returns the string representation.
15103//
15104// API parameter values that are decorated as "sensitive" in the API will not
15105// be included in the string output. The member name will be present, but the
15106// value will be replaced with "sensitive".
15107func (s ListSamplesInput) GoString() string {
15108	return s.String()
15109}
15110
15111// Validate inspects the fields of the type to determine if they are valid.
15112func (s *ListSamplesInput) Validate() error {
15113	invalidParams := request.ErrInvalidParams{Context: "ListSamplesInput"}
15114	if s.Arn == nil {
15115		invalidParams.Add(request.NewErrParamRequired("Arn"))
15116	}
15117	if s.Arn != nil && len(*s.Arn) < 32 {
15118		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
15119	}
15120	if s.NextToken != nil && len(*s.NextToken) < 4 {
15121		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15122	}
15123
15124	if invalidParams.Len() > 0 {
15125		return invalidParams
15126	}
15127	return nil
15128}
15129
15130// SetArn sets the Arn field's value.
15131func (s *ListSamplesInput) SetArn(v string) *ListSamplesInput {
15132	s.Arn = &v
15133	return s
15134}
15135
15136// SetNextToken sets the NextToken field's value.
15137func (s *ListSamplesInput) SetNextToken(v string) *ListSamplesInput {
15138	s.NextToken = &v
15139	return s
15140}
15141
15142// Represents the result of a list samples request.
15143type ListSamplesOutput struct {
15144	_ struct{} `type:"structure"`
15145
15146	// If the number of items that are returned is significantly large, this is
15147	// an identifier that is also returned. It can be used in a subsequent call
15148	// to this operation to return the next set of items in the list.
15149	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15150
15151	// Information about the samples.
15152	Samples []*Sample `locationName:"samples" type:"list"`
15153}
15154
15155// String returns the string representation.
15156//
15157// API parameter values that are decorated as "sensitive" in the API will not
15158// be included in the string output. The member name will be present, but the
15159// value will be replaced with "sensitive".
15160func (s ListSamplesOutput) String() string {
15161	return awsutil.Prettify(s)
15162}
15163
15164// GoString returns the string representation.
15165//
15166// API parameter values that are decorated as "sensitive" in the API will not
15167// be included in the string output. The member name will be present, but the
15168// value will be replaced with "sensitive".
15169func (s ListSamplesOutput) GoString() string {
15170	return s.String()
15171}
15172
15173// SetNextToken sets the NextToken field's value.
15174func (s *ListSamplesOutput) SetNextToken(v string) *ListSamplesOutput {
15175	s.NextToken = &v
15176	return s
15177}
15178
15179// SetSamples sets the Samples field's value.
15180func (s *ListSamplesOutput) SetSamples(v []*Sample) *ListSamplesOutput {
15181	s.Samples = v
15182	return s
15183}
15184
15185// Represents a request to the list suites operation.
15186type ListSuitesInput struct {
15187	_ struct{} `type:"structure"`
15188
15189	// The job's Amazon Resource Name (ARN).
15190	//
15191	// Arn is a required field
15192	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
15193
15194	// An identifier that was returned from the previous call to this operation,
15195	// which can be used to return the next set of items in the list.
15196	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15197}
15198
15199// String returns the string representation.
15200//
15201// API parameter values that are decorated as "sensitive" in the API will not
15202// be included in the string output. The member name will be present, but the
15203// value will be replaced with "sensitive".
15204func (s ListSuitesInput) String() string {
15205	return awsutil.Prettify(s)
15206}
15207
15208// GoString returns the string representation.
15209//
15210// API parameter values that are decorated as "sensitive" in the API will not
15211// be included in the string output. The member name will be present, but the
15212// value will be replaced with "sensitive".
15213func (s ListSuitesInput) GoString() string {
15214	return s.String()
15215}
15216
15217// Validate inspects the fields of the type to determine if they are valid.
15218func (s *ListSuitesInput) Validate() error {
15219	invalidParams := request.ErrInvalidParams{Context: "ListSuitesInput"}
15220	if s.Arn == nil {
15221		invalidParams.Add(request.NewErrParamRequired("Arn"))
15222	}
15223	if s.Arn != nil && len(*s.Arn) < 32 {
15224		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
15225	}
15226	if s.NextToken != nil && len(*s.NextToken) < 4 {
15227		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15228	}
15229
15230	if invalidParams.Len() > 0 {
15231		return invalidParams
15232	}
15233	return nil
15234}
15235
15236// SetArn sets the Arn field's value.
15237func (s *ListSuitesInput) SetArn(v string) *ListSuitesInput {
15238	s.Arn = &v
15239	return s
15240}
15241
15242// SetNextToken sets the NextToken field's value.
15243func (s *ListSuitesInput) SetNextToken(v string) *ListSuitesInput {
15244	s.NextToken = &v
15245	return s
15246}
15247
15248// Represents the result of a list suites request.
15249type ListSuitesOutput struct {
15250	_ struct{} `type:"structure"`
15251
15252	// If the number of items that are returned is significantly large, this is
15253	// an identifier that is also returned. It can be used in a subsequent call
15254	// to this operation to return the next set of items in the list.
15255	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15256
15257	// Information about the suites.
15258	Suites []*Suite `locationName:"suites" type:"list"`
15259}
15260
15261// String returns the string representation.
15262//
15263// API parameter values that are decorated as "sensitive" in the API will not
15264// be included in the string output. The member name will be present, but the
15265// value will be replaced with "sensitive".
15266func (s ListSuitesOutput) String() string {
15267	return awsutil.Prettify(s)
15268}
15269
15270// GoString returns the string representation.
15271//
15272// API parameter values that are decorated as "sensitive" in the API will not
15273// be included in the string output. The member name will be present, but the
15274// value will be replaced with "sensitive".
15275func (s ListSuitesOutput) GoString() string {
15276	return s.String()
15277}
15278
15279// SetNextToken sets the NextToken field's value.
15280func (s *ListSuitesOutput) SetNextToken(v string) *ListSuitesOutput {
15281	s.NextToken = &v
15282	return s
15283}
15284
15285// SetSuites sets the Suites field's value.
15286func (s *ListSuitesOutput) SetSuites(v []*Suite) *ListSuitesOutput {
15287	s.Suites = v
15288	return s
15289}
15290
15291type ListTagsForResourceInput struct {
15292	_ struct{} `type:"structure"`
15293
15294	// The Amazon Resource Name (ARN) of the resource or resources for which to
15295	// list tags. You can associate tags with the following Device Farm resources:
15296	// PROJECT, RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION,
15297	// DEVICE_POOL, DEVICE, and VPCE_CONFIGURATION.
15298	//
15299	// ResourceARN is a required field
15300	ResourceARN *string `min:"32" type:"string" required:"true"`
15301}
15302
15303// String returns the string representation.
15304//
15305// API parameter values that are decorated as "sensitive" in the API will not
15306// be included in the string output. The member name will be present, but the
15307// value will be replaced with "sensitive".
15308func (s ListTagsForResourceInput) String() string {
15309	return awsutil.Prettify(s)
15310}
15311
15312// GoString returns the string representation.
15313//
15314// API parameter values that are decorated as "sensitive" in the API will not
15315// be included in the string output. The member name will be present, but the
15316// value will be replaced with "sensitive".
15317func (s ListTagsForResourceInput) GoString() string {
15318	return s.String()
15319}
15320
15321// Validate inspects the fields of the type to determine if they are valid.
15322func (s *ListTagsForResourceInput) Validate() error {
15323	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
15324	if s.ResourceARN == nil {
15325		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
15326	}
15327	if s.ResourceARN != nil && len(*s.ResourceARN) < 32 {
15328		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 32))
15329	}
15330
15331	if invalidParams.Len() > 0 {
15332		return invalidParams
15333	}
15334	return nil
15335}
15336
15337// SetResourceARN sets the ResourceARN field's value.
15338func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
15339	s.ResourceARN = &v
15340	return s
15341}
15342
15343type ListTagsForResourceOutput struct {
15344	_ struct{} `type:"structure"`
15345
15346	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
15347	// keys can have a maximum character length of 128 characters. Tag values can
15348	// have a maximum length of 256 characters.
15349	Tags []*Tag `type:"list"`
15350}
15351
15352// String returns the string representation.
15353//
15354// API parameter values that are decorated as "sensitive" in the API will not
15355// be included in the string output. The member name will be present, but the
15356// value will be replaced with "sensitive".
15357func (s ListTagsForResourceOutput) String() string {
15358	return awsutil.Prettify(s)
15359}
15360
15361// GoString returns the string representation.
15362//
15363// API parameter values that are decorated as "sensitive" in the API will not
15364// be included in the string output. The member name will be present, but the
15365// value will be replaced with "sensitive".
15366func (s ListTagsForResourceOutput) GoString() string {
15367	return s.String()
15368}
15369
15370// SetTags sets the Tags field's value.
15371func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
15372	s.Tags = v
15373	return s
15374}
15375
15376type ListTestGridProjectsInput struct {
15377	_ struct{} `type:"structure"`
15378
15379	// Return no more than this number of results.
15380	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
15381
15382	// From a response, used to continue a paginated listing.
15383	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15384}
15385
15386// String returns the string representation.
15387//
15388// API parameter values that are decorated as "sensitive" in the API will not
15389// be included in the string output. The member name will be present, but the
15390// value will be replaced with "sensitive".
15391func (s ListTestGridProjectsInput) String() string {
15392	return awsutil.Prettify(s)
15393}
15394
15395// GoString returns the string representation.
15396//
15397// API parameter values that are decorated as "sensitive" in the API will not
15398// be included in the string output. The member name will be present, but the
15399// value will be replaced with "sensitive".
15400func (s ListTestGridProjectsInput) GoString() string {
15401	return s.String()
15402}
15403
15404// Validate inspects the fields of the type to determine if they are valid.
15405func (s *ListTestGridProjectsInput) Validate() error {
15406	invalidParams := request.ErrInvalidParams{Context: "ListTestGridProjectsInput"}
15407	if s.MaxResult != nil && *s.MaxResult < 1 {
15408		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
15409	}
15410	if s.NextToken != nil && len(*s.NextToken) < 4 {
15411		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15412	}
15413
15414	if invalidParams.Len() > 0 {
15415		return invalidParams
15416	}
15417	return nil
15418}
15419
15420// SetMaxResult sets the MaxResult field's value.
15421func (s *ListTestGridProjectsInput) SetMaxResult(v int64) *ListTestGridProjectsInput {
15422	s.MaxResult = &v
15423	return s
15424}
15425
15426// SetNextToken sets the NextToken field's value.
15427func (s *ListTestGridProjectsInput) SetNextToken(v string) *ListTestGridProjectsInput {
15428	s.NextToken = &v
15429	return s
15430}
15431
15432type ListTestGridProjectsOutput struct {
15433	_ struct{} `type:"structure"`
15434
15435	// Used for pagination. Pass into ListTestGridProjects to get more results in
15436	// a paginated request.
15437	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15438
15439	// The list of TestGridProjects, based on a ListTestGridProjectsRequest.
15440	TestGridProjects []*TestGridProject `locationName:"testGridProjects" type:"list"`
15441}
15442
15443// String returns the string representation.
15444//
15445// API parameter values that are decorated as "sensitive" in the API will not
15446// be included in the string output. The member name will be present, but the
15447// value will be replaced with "sensitive".
15448func (s ListTestGridProjectsOutput) String() string {
15449	return awsutil.Prettify(s)
15450}
15451
15452// GoString returns the string representation.
15453//
15454// API parameter values that are decorated as "sensitive" in the API will not
15455// be included in the string output. The member name will be present, but the
15456// value will be replaced with "sensitive".
15457func (s ListTestGridProjectsOutput) GoString() string {
15458	return s.String()
15459}
15460
15461// SetNextToken sets the NextToken field's value.
15462func (s *ListTestGridProjectsOutput) SetNextToken(v string) *ListTestGridProjectsOutput {
15463	s.NextToken = &v
15464	return s
15465}
15466
15467// SetTestGridProjects sets the TestGridProjects field's value.
15468func (s *ListTestGridProjectsOutput) SetTestGridProjects(v []*TestGridProject) *ListTestGridProjectsOutput {
15469	s.TestGridProjects = v
15470	return s
15471}
15472
15473type ListTestGridSessionActionsInput struct {
15474	_ struct{} `type:"structure"`
15475
15476	// The maximum number of sessions to return per response.
15477	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
15478
15479	// Pagination token.
15480	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15481
15482	// The ARN of the session to retrieve.
15483	//
15484	// SessionArn is a required field
15485	SessionArn *string `locationName:"sessionArn" min:"32" type:"string" required:"true"`
15486}
15487
15488// String returns the string representation.
15489//
15490// API parameter values that are decorated as "sensitive" in the API will not
15491// be included in the string output. The member name will be present, but the
15492// value will be replaced with "sensitive".
15493func (s ListTestGridSessionActionsInput) String() string {
15494	return awsutil.Prettify(s)
15495}
15496
15497// GoString returns the string representation.
15498//
15499// API parameter values that are decorated as "sensitive" in the API will not
15500// be included in the string output. The member name will be present, but the
15501// value will be replaced with "sensitive".
15502func (s ListTestGridSessionActionsInput) GoString() string {
15503	return s.String()
15504}
15505
15506// Validate inspects the fields of the type to determine if they are valid.
15507func (s *ListTestGridSessionActionsInput) Validate() error {
15508	invalidParams := request.ErrInvalidParams{Context: "ListTestGridSessionActionsInput"}
15509	if s.MaxResult != nil && *s.MaxResult < 1 {
15510		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
15511	}
15512	if s.NextToken != nil && len(*s.NextToken) < 4 {
15513		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15514	}
15515	if s.SessionArn == nil {
15516		invalidParams.Add(request.NewErrParamRequired("SessionArn"))
15517	}
15518	if s.SessionArn != nil && len(*s.SessionArn) < 32 {
15519		invalidParams.Add(request.NewErrParamMinLen("SessionArn", 32))
15520	}
15521
15522	if invalidParams.Len() > 0 {
15523		return invalidParams
15524	}
15525	return nil
15526}
15527
15528// SetMaxResult sets the MaxResult field's value.
15529func (s *ListTestGridSessionActionsInput) SetMaxResult(v int64) *ListTestGridSessionActionsInput {
15530	s.MaxResult = &v
15531	return s
15532}
15533
15534// SetNextToken sets the NextToken field's value.
15535func (s *ListTestGridSessionActionsInput) SetNextToken(v string) *ListTestGridSessionActionsInput {
15536	s.NextToken = &v
15537	return s
15538}
15539
15540// SetSessionArn sets the SessionArn field's value.
15541func (s *ListTestGridSessionActionsInput) SetSessionArn(v string) *ListTestGridSessionActionsInput {
15542	s.SessionArn = &v
15543	return s
15544}
15545
15546type ListTestGridSessionActionsOutput struct {
15547	_ struct{} `type:"structure"`
15548
15549	// The action taken by the session.
15550	Actions []*TestGridSessionAction `locationName:"actions" type:"list"`
15551
15552	// Pagination token.
15553	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15554}
15555
15556// String returns the string representation.
15557//
15558// API parameter values that are decorated as "sensitive" in the API will not
15559// be included in the string output. The member name will be present, but the
15560// value will be replaced with "sensitive".
15561func (s ListTestGridSessionActionsOutput) String() string {
15562	return awsutil.Prettify(s)
15563}
15564
15565// GoString returns the string representation.
15566//
15567// API parameter values that are decorated as "sensitive" in the API will not
15568// be included in the string output. The member name will be present, but the
15569// value will be replaced with "sensitive".
15570func (s ListTestGridSessionActionsOutput) GoString() string {
15571	return s.String()
15572}
15573
15574// SetActions sets the Actions field's value.
15575func (s *ListTestGridSessionActionsOutput) SetActions(v []*TestGridSessionAction) *ListTestGridSessionActionsOutput {
15576	s.Actions = v
15577	return s
15578}
15579
15580// SetNextToken sets the NextToken field's value.
15581func (s *ListTestGridSessionActionsOutput) SetNextToken(v string) *ListTestGridSessionActionsOutput {
15582	s.NextToken = &v
15583	return s
15584}
15585
15586type ListTestGridSessionArtifactsInput struct {
15587	_ struct{} `type:"structure"`
15588
15589	// The maximum number of results to be returned by a request.
15590	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
15591
15592	// Pagination token.
15593	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15594
15595	// The ARN of a TestGridSession.
15596	//
15597	// SessionArn is a required field
15598	SessionArn *string `locationName:"sessionArn" min:"32" type:"string" required:"true"`
15599
15600	// Limit results to a specified type of artifact.
15601	Type *string `locationName:"type" type:"string" enum:"TestGridSessionArtifactCategory"`
15602}
15603
15604// String returns the string representation.
15605//
15606// API parameter values that are decorated as "sensitive" in the API will not
15607// be included in the string output. The member name will be present, but the
15608// value will be replaced with "sensitive".
15609func (s ListTestGridSessionArtifactsInput) String() string {
15610	return awsutil.Prettify(s)
15611}
15612
15613// GoString returns the string representation.
15614//
15615// API parameter values that are decorated as "sensitive" in the API will not
15616// be included in the string output. The member name will be present, but the
15617// value will be replaced with "sensitive".
15618func (s ListTestGridSessionArtifactsInput) GoString() string {
15619	return s.String()
15620}
15621
15622// Validate inspects the fields of the type to determine if they are valid.
15623func (s *ListTestGridSessionArtifactsInput) Validate() error {
15624	invalidParams := request.ErrInvalidParams{Context: "ListTestGridSessionArtifactsInput"}
15625	if s.MaxResult != nil && *s.MaxResult < 1 {
15626		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
15627	}
15628	if s.NextToken != nil && len(*s.NextToken) < 4 {
15629		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15630	}
15631	if s.SessionArn == nil {
15632		invalidParams.Add(request.NewErrParamRequired("SessionArn"))
15633	}
15634	if s.SessionArn != nil && len(*s.SessionArn) < 32 {
15635		invalidParams.Add(request.NewErrParamMinLen("SessionArn", 32))
15636	}
15637
15638	if invalidParams.Len() > 0 {
15639		return invalidParams
15640	}
15641	return nil
15642}
15643
15644// SetMaxResult sets the MaxResult field's value.
15645func (s *ListTestGridSessionArtifactsInput) SetMaxResult(v int64) *ListTestGridSessionArtifactsInput {
15646	s.MaxResult = &v
15647	return s
15648}
15649
15650// SetNextToken sets the NextToken field's value.
15651func (s *ListTestGridSessionArtifactsInput) SetNextToken(v string) *ListTestGridSessionArtifactsInput {
15652	s.NextToken = &v
15653	return s
15654}
15655
15656// SetSessionArn sets the SessionArn field's value.
15657func (s *ListTestGridSessionArtifactsInput) SetSessionArn(v string) *ListTestGridSessionArtifactsInput {
15658	s.SessionArn = &v
15659	return s
15660}
15661
15662// SetType sets the Type field's value.
15663func (s *ListTestGridSessionArtifactsInput) SetType(v string) *ListTestGridSessionArtifactsInput {
15664	s.Type = &v
15665	return s
15666}
15667
15668type ListTestGridSessionArtifactsOutput struct {
15669	_ struct{} `type:"structure"`
15670
15671	// A list of test grid session artifacts for a TestGridSession.
15672	Artifacts []*TestGridSessionArtifact `locationName:"artifacts" type:"list"`
15673
15674	// Pagination token.
15675	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15676}
15677
15678// String returns the string representation.
15679//
15680// API parameter values that are decorated as "sensitive" in the API will not
15681// be included in the string output. The member name will be present, but the
15682// value will be replaced with "sensitive".
15683func (s ListTestGridSessionArtifactsOutput) String() string {
15684	return awsutil.Prettify(s)
15685}
15686
15687// GoString returns the string representation.
15688//
15689// API parameter values that are decorated as "sensitive" in the API will not
15690// be included in the string output. The member name will be present, but the
15691// value will be replaced with "sensitive".
15692func (s ListTestGridSessionArtifactsOutput) GoString() string {
15693	return s.String()
15694}
15695
15696// SetArtifacts sets the Artifacts field's value.
15697func (s *ListTestGridSessionArtifactsOutput) SetArtifacts(v []*TestGridSessionArtifact) *ListTestGridSessionArtifactsOutput {
15698	s.Artifacts = v
15699	return s
15700}
15701
15702// SetNextToken sets the NextToken field's value.
15703func (s *ListTestGridSessionArtifactsOutput) SetNextToken(v string) *ListTestGridSessionArtifactsOutput {
15704	s.NextToken = &v
15705	return s
15706}
15707
15708type ListTestGridSessionsInput struct {
15709	_ struct{} `type:"structure"`
15710
15711	// Return only sessions created after this time.
15712	CreationTimeAfter *time.Time `locationName:"creationTimeAfter" type:"timestamp"`
15713
15714	// Return only sessions created before this time.
15715	CreationTimeBefore *time.Time `locationName:"creationTimeBefore" type:"timestamp"`
15716
15717	// Return only sessions that ended after this time.
15718	EndTimeAfter *time.Time `locationName:"endTimeAfter" type:"timestamp"`
15719
15720	// Return only sessions that ended before this time.
15721	EndTimeBefore *time.Time `locationName:"endTimeBefore" type:"timestamp"`
15722
15723	// Return only this many results at a time.
15724	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
15725
15726	// Pagination token.
15727	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15728
15729	// ARN of a TestGridProject.
15730	//
15731	// ProjectArn is a required field
15732	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
15733
15734	// Return only sessions in this state.
15735	Status *string `locationName:"status" type:"string" enum:"TestGridSessionStatus"`
15736}
15737
15738// String returns the string representation.
15739//
15740// API parameter values that are decorated as "sensitive" in the API will not
15741// be included in the string output. The member name will be present, but the
15742// value will be replaced with "sensitive".
15743func (s ListTestGridSessionsInput) String() string {
15744	return awsutil.Prettify(s)
15745}
15746
15747// GoString returns the string representation.
15748//
15749// API parameter values that are decorated as "sensitive" in the API will not
15750// be included in the string output. The member name will be present, but the
15751// value will be replaced with "sensitive".
15752func (s ListTestGridSessionsInput) GoString() string {
15753	return s.String()
15754}
15755
15756// Validate inspects the fields of the type to determine if they are valid.
15757func (s *ListTestGridSessionsInput) Validate() error {
15758	invalidParams := request.ErrInvalidParams{Context: "ListTestGridSessionsInput"}
15759	if s.MaxResult != nil && *s.MaxResult < 1 {
15760		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
15761	}
15762	if s.NextToken != nil && len(*s.NextToken) < 4 {
15763		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15764	}
15765	if s.ProjectArn == nil {
15766		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
15767	}
15768	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
15769		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
15770	}
15771
15772	if invalidParams.Len() > 0 {
15773		return invalidParams
15774	}
15775	return nil
15776}
15777
15778// SetCreationTimeAfter sets the CreationTimeAfter field's value.
15779func (s *ListTestGridSessionsInput) SetCreationTimeAfter(v time.Time) *ListTestGridSessionsInput {
15780	s.CreationTimeAfter = &v
15781	return s
15782}
15783
15784// SetCreationTimeBefore sets the CreationTimeBefore field's value.
15785func (s *ListTestGridSessionsInput) SetCreationTimeBefore(v time.Time) *ListTestGridSessionsInput {
15786	s.CreationTimeBefore = &v
15787	return s
15788}
15789
15790// SetEndTimeAfter sets the EndTimeAfter field's value.
15791func (s *ListTestGridSessionsInput) SetEndTimeAfter(v time.Time) *ListTestGridSessionsInput {
15792	s.EndTimeAfter = &v
15793	return s
15794}
15795
15796// SetEndTimeBefore sets the EndTimeBefore field's value.
15797func (s *ListTestGridSessionsInput) SetEndTimeBefore(v time.Time) *ListTestGridSessionsInput {
15798	s.EndTimeBefore = &v
15799	return s
15800}
15801
15802// SetMaxResult sets the MaxResult field's value.
15803func (s *ListTestGridSessionsInput) SetMaxResult(v int64) *ListTestGridSessionsInput {
15804	s.MaxResult = &v
15805	return s
15806}
15807
15808// SetNextToken sets the NextToken field's value.
15809func (s *ListTestGridSessionsInput) SetNextToken(v string) *ListTestGridSessionsInput {
15810	s.NextToken = &v
15811	return s
15812}
15813
15814// SetProjectArn sets the ProjectArn field's value.
15815func (s *ListTestGridSessionsInput) SetProjectArn(v string) *ListTestGridSessionsInput {
15816	s.ProjectArn = &v
15817	return s
15818}
15819
15820// SetStatus sets the Status field's value.
15821func (s *ListTestGridSessionsInput) SetStatus(v string) *ListTestGridSessionsInput {
15822	s.Status = &v
15823	return s
15824}
15825
15826type ListTestGridSessionsOutput struct {
15827	_ struct{} `type:"structure"`
15828
15829	// Pagination token.
15830	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15831
15832	// The sessions that match the criteria in a ListTestGridSessionsRequest.
15833	TestGridSessions []*TestGridSession `locationName:"testGridSessions" type:"list"`
15834}
15835
15836// String returns the string representation.
15837//
15838// API parameter values that are decorated as "sensitive" in the API will not
15839// be included in the string output. The member name will be present, but the
15840// value will be replaced with "sensitive".
15841func (s ListTestGridSessionsOutput) String() string {
15842	return awsutil.Prettify(s)
15843}
15844
15845// GoString returns the string representation.
15846//
15847// API parameter values that are decorated as "sensitive" in the API will not
15848// be included in the string output. The member name will be present, but the
15849// value will be replaced with "sensitive".
15850func (s ListTestGridSessionsOutput) GoString() string {
15851	return s.String()
15852}
15853
15854// SetNextToken sets the NextToken field's value.
15855func (s *ListTestGridSessionsOutput) SetNextToken(v string) *ListTestGridSessionsOutput {
15856	s.NextToken = &v
15857	return s
15858}
15859
15860// SetTestGridSessions sets the TestGridSessions field's value.
15861func (s *ListTestGridSessionsOutput) SetTestGridSessions(v []*TestGridSession) *ListTestGridSessionsOutput {
15862	s.TestGridSessions = v
15863	return s
15864}
15865
15866// Represents a request to the list tests operation.
15867type ListTestsInput struct {
15868	_ struct{} `type:"structure"`
15869
15870	// The test suite's Amazon Resource Name (ARN).
15871	//
15872	// Arn is a required field
15873	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
15874
15875	// An identifier that was returned from the previous call to this operation,
15876	// which can be used to return the next set of items in the list.
15877	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15878}
15879
15880// String returns the string representation.
15881//
15882// API parameter values that are decorated as "sensitive" in the API will not
15883// be included in the string output. The member name will be present, but the
15884// value will be replaced with "sensitive".
15885func (s ListTestsInput) String() string {
15886	return awsutil.Prettify(s)
15887}
15888
15889// GoString returns the string representation.
15890//
15891// API parameter values that are decorated as "sensitive" in the API will not
15892// be included in the string output. The member name will be present, but the
15893// value will be replaced with "sensitive".
15894func (s ListTestsInput) GoString() string {
15895	return s.String()
15896}
15897
15898// Validate inspects the fields of the type to determine if they are valid.
15899func (s *ListTestsInput) Validate() error {
15900	invalidParams := request.ErrInvalidParams{Context: "ListTestsInput"}
15901	if s.Arn == nil {
15902		invalidParams.Add(request.NewErrParamRequired("Arn"))
15903	}
15904	if s.Arn != nil && len(*s.Arn) < 32 {
15905		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
15906	}
15907	if s.NextToken != nil && len(*s.NextToken) < 4 {
15908		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
15909	}
15910
15911	if invalidParams.Len() > 0 {
15912		return invalidParams
15913	}
15914	return nil
15915}
15916
15917// SetArn sets the Arn field's value.
15918func (s *ListTestsInput) SetArn(v string) *ListTestsInput {
15919	s.Arn = &v
15920	return s
15921}
15922
15923// SetNextToken sets the NextToken field's value.
15924func (s *ListTestsInput) SetNextToken(v string) *ListTestsInput {
15925	s.NextToken = &v
15926	return s
15927}
15928
15929// Represents the result of a list tests request.
15930type ListTestsOutput struct {
15931	_ struct{} `type:"structure"`
15932
15933	// If the number of items that are returned is significantly large, this is
15934	// an identifier that is also returned. It can be used in a subsequent call
15935	// to this operation to return the next set of items in the list.
15936	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15937
15938	// Information about the tests.
15939	Tests []*Test `locationName:"tests" type:"list"`
15940}
15941
15942// String returns the string representation.
15943//
15944// API parameter values that are decorated as "sensitive" in the API will not
15945// be included in the string output. The member name will be present, but the
15946// value will be replaced with "sensitive".
15947func (s ListTestsOutput) String() string {
15948	return awsutil.Prettify(s)
15949}
15950
15951// GoString returns the string representation.
15952//
15953// API parameter values that are decorated as "sensitive" in the API will not
15954// be included in the string output. The member name will be present, but the
15955// value will be replaced with "sensitive".
15956func (s ListTestsOutput) GoString() string {
15957	return s.String()
15958}
15959
15960// SetNextToken sets the NextToken field's value.
15961func (s *ListTestsOutput) SetNextToken(v string) *ListTestsOutput {
15962	s.NextToken = &v
15963	return s
15964}
15965
15966// SetTests sets the Tests field's value.
15967func (s *ListTestsOutput) SetTests(v []*Test) *ListTestsOutput {
15968	s.Tests = v
15969	return s
15970}
15971
15972// Represents a request to the list unique problems operation.
15973type ListUniqueProblemsInput struct {
15974	_ struct{} `type:"structure"`
15975
15976	// The unique problems' ARNs.
15977	//
15978	// Arn is a required field
15979	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
15980
15981	// An identifier that was returned from the previous call to this operation,
15982	// which can be used to return the next set of items in the list.
15983	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
15984}
15985
15986// String returns the string representation.
15987//
15988// API parameter values that are decorated as "sensitive" in the API will not
15989// be included in the string output. The member name will be present, but the
15990// value will be replaced with "sensitive".
15991func (s ListUniqueProblemsInput) String() string {
15992	return awsutil.Prettify(s)
15993}
15994
15995// GoString returns the string representation.
15996//
15997// API parameter values that are decorated as "sensitive" in the API will not
15998// be included in the string output. The member name will be present, but the
15999// value will be replaced with "sensitive".
16000func (s ListUniqueProblemsInput) GoString() string {
16001	return s.String()
16002}
16003
16004// Validate inspects the fields of the type to determine if they are valid.
16005func (s *ListUniqueProblemsInput) Validate() error {
16006	invalidParams := request.ErrInvalidParams{Context: "ListUniqueProblemsInput"}
16007	if s.Arn == nil {
16008		invalidParams.Add(request.NewErrParamRequired("Arn"))
16009	}
16010	if s.Arn != nil && len(*s.Arn) < 32 {
16011		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
16012	}
16013	if s.NextToken != nil && len(*s.NextToken) < 4 {
16014		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
16015	}
16016
16017	if invalidParams.Len() > 0 {
16018		return invalidParams
16019	}
16020	return nil
16021}
16022
16023// SetArn sets the Arn field's value.
16024func (s *ListUniqueProblemsInput) SetArn(v string) *ListUniqueProblemsInput {
16025	s.Arn = &v
16026	return s
16027}
16028
16029// SetNextToken sets the NextToken field's value.
16030func (s *ListUniqueProblemsInput) SetNextToken(v string) *ListUniqueProblemsInput {
16031	s.NextToken = &v
16032	return s
16033}
16034
16035// Represents the result of a list unique problems request.
16036type ListUniqueProblemsOutput struct {
16037	_ struct{} `type:"structure"`
16038
16039	// If the number of items that are returned is significantly large, this is
16040	// an identifier that is also returned. It can be used in a subsequent call
16041	// to this operation to return the next set of items in the list.
16042	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
16043
16044	// Information about the unique problems.
16045	//
16046	// Allowed values include:
16047	//
16048	//    * PENDING
16049	//
16050	//    * PASSED
16051	//
16052	//    * WARNED
16053	//
16054	//    * FAILED
16055	//
16056	//    * SKIPPED
16057	//
16058	//    * ERRORED
16059	//
16060	//    * STOPPED
16061	UniqueProblems map[string][]*UniqueProblem `locationName:"uniqueProblems" type:"map"`
16062}
16063
16064// String returns the string representation.
16065//
16066// API parameter values that are decorated as "sensitive" in the API will not
16067// be included in the string output. The member name will be present, but the
16068// value will be replaced with "sensitive".
16069func (s ListUniqueProblemsOutput) String() string {
16070	return awsutil.Prettify(s)
16071}
16072
16073// GoString returns the string representation.
16074//
16075// API parameter values that are decorated as "sensitive" in the API will not
16076// be included in the string output. The member name will be present, but the
16077// value will be replaced with "sensitive".
16078func (s ListUniqueProblemsOutput) GoString() string {
16079	return s.String()
16080}
16081
16082// SetNextToken sets the NextToken field's value.
16083func (s *ListUniqueProblemsOutput) SetNextToken(v string) *ListUniqueProblemsOutput {
16084	s.NextToken = &v
16085	return s
16086}
16087
16088// SetUniqueProblems sets the UniqueProblems field's value.
16089func (s *ListUniqueProblemsOutput) SetUniqueProblems(v map[string][]*UniqueProblem) *ListUniqueProblemsOutput {
16090	s.UniqueProblems = v
16091	return s
16092}
16093
16094// Represents a request to the list uploads operation.
16095type ListUploadsInput struct {
16096	_ struct{} `type:"structure"`
16097
16098	// The Amazon Resource Name (ARN) of the project for which you want to list
16099	// uploads.
16100	//
16101	// Arn is a required field
16102	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
16103
16104	// An identifier that was returned from the previous call to this operation,
16105	// which can be used to return the next set of items in the list.
16106	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
16107
16108	// The type of upload.
16109	//
16110	// Must be one of the following values:
16111	//
16112	//    * ANDROID_APP
16113	//
16114	//    * IOS_APP
16115	//
16116	//    * WEB_APP
16117	//
16118	//    * EXTERNAL_DATA
16119	//
16120	//    * APPIUM_JAVA_JUNIT_TEST_PACKAGE
16121	//
16122	//    * APPIUM_JAVA_TESTNG_TEST_PACKAGE
16123	//
16124	//    * APPIUM_PYTHON_TEST_PACKAGE
16125	//
16126	//    * APPIUM_NODE_TEST_PACKAGE
16127	//
16128	//    * APPIUM_RUBY_TEST_PACKAGE
16129	//
16130	//    * APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
16131	//
16132	//    * APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
16133	//
16134	//    * APPIUM_WEB_PYTHON_TEST_PACKAGE
16135	//
16136	//    * APPIUM_WEB_NODE_TEST_PACKAGE
16137	//
16138	//    * APPIUM_WEB_RUBY_TEST_PACKAGE
16139	//
16140	//    * CALABASH_TEST_PACKAGE
16141	//
16142	//    * INSTRUMENTATION_TEST_PACKAGE
16143	//
16144	//    * UIAUTOMATION_TEST_PACKAGE
16145	//
16146	//    * UIAUTOMATOR_TEST_PACKAGE
16147	//
16148	//    * XCTEST_TEST_PACKAGE
16149	//
16150	//    * XCTEST_UI_TEST_PACKAGE
16151	//
16152	//    * APPIUM_JAVA_JUNIT_TEST_SPEC
16153	//
16154	//    * APPIUM_JAVA_TESTNG_TEST_SPEC
16155	//
16156	//    * APPIUM_PYTHON_TEST_SPEC
16157	//
16158	//    * APPIUM_NODE_TEST_SPEC
16159	//
16160	//    * APPIUM_RUBY_TEST_SPEC
16161	//
16162	//    * APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
16163	//
16164	//    * APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
16165	//
16166	//    * APPIUM_WEB_PYTHON_TEST_SPEC
16167	//
16168	//    * APPIUM_WEB_NODE_TEST_SPEC
16169	//
16170	//    * APPIUM_WEB_RUBY_TEST_SPEC
16171	//
16172	//    * INSTRUMENTATION_TEST_SPEC
16173	//
16174	//    * XCTEST_UI_TEST_SPEC
16175	Type *string `locationName:"type" type:"string" enum:"UploadType"`
16176}
16177
16178// String returns the string representation.
16179//
16180// API parameter values that are decorated as "sensitive" in the API will not
16181// be included in the string output. The member name will be present, but the
16182// value will be replaced with "sensitive".
16183func (s ListUploadsInput) String() string {
16184	return awsutil.Prettify(s)
16185}
16186
16187// GoString returns the string representation.
16188//
16189// API parameter values that are decorated as "sensitive" in the API will not
16190// be included in the string output. The member name will be present, but the
16191// value will be replaced with "sensitive".
16192func (s ListUploadsInput) GoString() string {
16193	return s.String()
16194}
16195
16196// Validate inspects the fields of the type to determine if they are valid.
16197func (s *ListUploadsInput) Validate() error {
16198	invalidParams := request.ErrInvalidParams{Context: "ListUploadsInput"}
16199	if s.Arn == nil {
16200		invalidParams.Add(request.NewErrParamRequired("Arn"))
16201	}
16202	if s.Arn != nil && len(*s.Arn) < 32 {
16203		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
16204	}
16205	if s.NextToken != nil && len(*s.NextToken) < 4 {
16206		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
16207	}
16208
16209	if invalidParams.Len() > 0 {
16210		return invalidParams
16211	}
16212	return nil
16213}
16214
16215// SetArn sets the Arn field's value.
16216func (s *ListUploadsInput) SetArn(v string) *ListUploadsInput {
16217	s.Arn = &v
16218	return s
16219}
16220
16221// SetNextToken sets the NextToken field's value.
16222func (s *ListUploadsInput) SetNextToken(v string) *ListUploadsInput {
16223	s.NextToken = &v
16224	return s
16225}
16226
16227// SetType sets the Type field's value.
16228func (s *ListUploadsInput) SetType(v string) *ListUploadsInput {
16229	s.Type = &v
16230	return s
16231}
16232
16233// Represents the result of a list uploads request.
16234type ListUploadsOutput struct {
16235	_ struct{} `type:"structure"`
16236
16237	// If the number of items that are returned is significantly large, this is
16238	// an identifier that is also returned. It can be used in a subsequent call
16239	// to this operation to return the next set of items in the list.
16240	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
16241
16242	// Information about the uploads.
16243	Uploads []*Upload `locationName:"uploads" type:"list"`
16244}
16245
16246// String returns the string representation.
16247//
16248// API parameter values that are decorated as "sensitive" in the API will not
16249// be included in the string output. The member name will be present, but the
16250// value will be replaced with "sensitive".
16251func (s ListUploadsOutput) String() string {
16252	return awsutil.Prettify(s)
16253}
16254
16255// GoString returns the string representation.
16256//
16257// API parameter values that are decorated as "sensitive" in the API will not
16258// be included in the string output. The member name will be present, but the
16259// value will be replaced with "sensitive".
16260func (s ListUploadsOutput) GoString() string {
16261	return s.String()
16262}
16263
16264// SetNextToken sets the NextToken field's value.
16265func (s *ListUploadsOutput) SetNextToken(v string) *ListUploadsOutput {
16266	s.NextToken = &v
16267	return s
16268}
16269
16270// SetUploads sets the Uploads field's value.
16271func (s *ListUploadsOutput) SetUploads(v []*Upload) *ListUploadsOutput {
16272	s.Uploads = v
16273	return s
16274}
16275
16276type ListVPCEConfigurationsInput struct {
16277	_ struct{} `type:"structure"`
16278
16279	// An integer that specifies the maximum number of items you want to return
16280	// in the API response.
16281	MaxResults *int64 `locationName:"maxResults" type:"integer"`
16282
16283	// An identifier that was returned from the previous call to this operation,
16284	// which can be used to return the next set of items in the list.
16285	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
16286}
16287
16288// String returns the string representation.
16289//
16290// API parameter values that are decorated as "sensitive" in the API will not
16291// be included in the string output. The member name will be present, but the
16292// value will be replaced with "sensitive".
16293func (s ListVPCEConfigurationsInput) String() string {
16294	return awsutil.Prettify(s)
16295}
16296
16297// GoString returns the string representation.
16298//
16299// API parameter values that are decorated as "sensitive" in the API will not
16300// be included in the string output. The member name will be present, but the
16301// value will be replaced with "sensitive".
16302func (s ListVPCEConfigurationsInput) GoString() string {
16303	return s.String()
16304}
16305
16306// Validate inspects the fields of the type to determine if they are valid.
16307func (s *ListVPCEConfigurationsInput) Validate() error {
16308	invalidParams := request.ErrInvalidParams{Context: "ListVPCEConfigurationsInput"}
16309	if s.NextToken != nil && len(*s.NextToken) < 4 {
16310		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
16311	}
16312
16313	if invalidParams.Len() > 0 {
16314		return invalidParams
16315	}
16316	return nil
16317}
16318
16319// SetMaxResults sets the MaxResults field's value.
16320func (s *ListVPCEConfigurationsInput) SetMaxResults(v int64) *ListVPCEConfigurationsInput {
16321	s.MaxResults = &v
16322	return s
16323}
16324
16325// SetNextToken sets the NextToken field's value.
16326func (s *ListVPCEConfigurationsInput) SetNextToken(v string) *ListVPCEConfigurationsInput {
16327	s.NextToken = &v
16328	return s
16329}
16330
16331type ListVPCEConfigurationsOutput struct {
16332	_ struct{} `type:"structure"`
16333
16334	// An identifier that was returned from the previous call to this operation,
16335	// which can be used to return the next set of items in the list.
16336	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
16337
16338	// An array of VPCEConfiguration objects that contain information about your
16339	// VPC endpoint configuration.
16340	VpceConfigurations []*VPCEConfiguration `locationName:"vpceConfigurations" type:"list"`
16341}
16342
16343// String returns the string representation.
16344//
16345// API parameter values that are decorated as "sensitive" in the API will not
16346// be included in the string output. The member name will be present, but the
16347// value will be replaced with "sensitive".
16348func (s ListVPCEConfigurationsOutput) String() string {
16349	return awsutil.Prettify(s)
16350}
16351
16352// GoString returns the string representation.
16353//
16354// API parameter values that are decorated as "sensitive" in the API will not
16355// be included in the string output. The member name will be present, but the
16356// value will be replaced with "sensitive".
16357func (s ListVPCEConfigurationsOutput) GoString() string {
16358	return s.String()
16359}
16360
16361// SetNextToken sets the NextToken field's value.
16362func (s *ListVPCEConfigurationsOutput) SetNextToken(v string) *ListVPCEConfigurationsOutput {
16363	s.NextToken = &v
16364	return s
16365}
16366
16367// SetVpceConfigurations sets the VpceConfigurations field's value.
16368func (s *ListVPCEConfigurationsOutput) SetVpceConfigurations(v []*VPCEConfiguration) *ListVPCEConfigurationsOutput {
16369	s.VpceConfigurations = v
16370	return s
16371}
16372
16373// Represents a latitude and longitude pair, expressed in geographic coordinate
16374// system degrees (for example, 47.6204, -122.3491).
16375//
16376// Elevation is currently not supported.
16377type Location struct {
16378	_ struct{} `type:"structure"`
16379
16380	// The latitude.
16381	//
16382	// Latitude is a required field
16383	Latitude *float64 `locationName:"latitude" type:"double" required:"true"`
16384
16385	// The longitude.
16386	//
16387	// Longitude is a required field
16388	Longitude *float64 `locationName:"longitude" type:"double" required:"true"`
16389}
16390
16391// String returns the string representation.
16392//
16393// API parameter values that are decorated as "sensitive" in the API will not
16394// be included in the string output. The member name will be present, but the
16395// value will be replaced with "sensitive".
16396func (s Location) String() string {
16397	return awsutil.Prettify(s)
16398}
16399
16400// GoString returns the string representation.
16401//
16402// API parameter values that are decorated as "sensitive" in the API will not
16403// be included in the string output. The member name will be present, but the
16404// value will be replaced with "sensitive".
16405func (s Location) GoString() string {
16406	return s.String()
16407}
16408
16409// Validate inspects the fields of the type to determine if they are valid.
16410func (s *Location) Validate() error {
16411	invalidParams := request.ErrInvalidParams{Context: "Location"}
16412	if s.Latitude == nil {
16413		invalidParams.Add(request.NewErrParamRequired("Latitude"))
16414	}
16415	if s.Longitude == nil {
16416		invalidParams.Add(request.NewErrParamRequired("Longitude"))
16417	}
16418
16419	if invalidParams.Len() > 0 {
16420		return invalidParams
16421	}
16422	return nil
16423}
16424
16425// SetLatitude sets the Latitude field's value.
16426func (s *Location) SetLatitude(v float64) *Location {
16427	s.Latitude = &v
16428	return s
16429}
16430
16431// SetLongitude sets the Longitude field's value.
16432func (s *Location) SetLongitude(v float64) *Location {
16433	s.Longitude = &v
16434	return s
16435}
16436
16437// A number that represents the monetary amount for an offering or transaction.
16438type MonetaryAmount struct {
16439	_ struct{} `type:"structure"`
16440
16441	// The numerical amount of an offering or transaction.
16442	Amount *float64 `locationName:"amount" type:"double"`
16443
16444	// The currency code of a monetary amount. For example, USD means U.S. dollars.
16445	CurrencyCode *string `locationName:"currencyCode" type:"string" enum:"CurrencyCode"`
16446}
16447
16448// String returns the string representation.
16449//
16450// API parameter values that are decorated as "sensitive" in the API will not
16451// be included in the string output. The member name will be present, but the
16452// value will be replaced with "sensitive".
16453func (s MonetaryAmount) String() string {
16454	return awsutil.Prettify(s)
16455}
16456
16457// GoString returns the string representation.
16458//
16459// API parameter values that are decorated as "sensitive" in the API will not
16460// be included in the string output. The member name will be present, but the
16461// value will be replaced with "sensitive".
16462func (s MonetaryAmount) GoString() string {
16463	return s.String()
16464}
16465
16466// SetAmount sets the Amount field's value.
16467func (s *MonetaryAmount) SetAmount(v float64) *MonetaryAmount {
16468	s.Amount = &v
16469	return s
16470}
16471
16472// SetCurrencyCode sets the CurrencyCode field's value.
16473func (s *MonetaryAmount) SetCurrencyCode(v string) *MonetaryAmount {
16474	s.CurrencyCode = &v
16475	return s
16476}
16477
16478// An array of settings that describes characteristics of a network profile.
16479type NetworkProfile struct {
16480	_ struct{} `type:"structure"`
16481
16482	// The Amazon Resource Name (ARN) of the network profile.
16483	Arn *string `locationName:"arn" min:"32" type:"string"`
16484
16485	// The description of the network profile.
16486	Description *string `locationName:"description" type:"string"`
16487
16488	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
16489	DownlinkBandwidthBits *int64 `locationName:"downlinkBandwidthBits" type:"long"`
16490
16491	// Delay time for all packets to destination in milliseconds as an integer from
16492	// 0 to 2000.
16493	DownlinkDelayMs *int64 `locationName:"downlinkDelayMs" type:"long"`
16494
16495	// Time variation in the delay of received packets in milliseconds as an integer
16496	// from 0 to 2000.
16497	DownlinkJitterMs *int64 `locationName:"downlinkJitterMs" type:"long"`
16498
16499	// Proportion of received packets that fail to arrive from 0 to 100 percent.
16500	DownlinkLossPercent *int64 `locationName:"downlinkLossPercent" type:"integer"`
16501
16502	// The name of the network profile.
16503	Name *string `locationName:"name" type:"string"`
16504
16505	// The type of network profile. Valid values are listed here.
16506	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
16507
16508	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
16509	UplinkBandwidthBits *int64 `locationName:"uplinkBandwidthBits" type:"long"`
16510
16511	// Delay time for all packets to destination in milliseconds as an integer from
16512	// 0 to 2000.
16513	UplinkDelayMs *int64 `locationName:"uplinkDelayMs" type:"long"`
16514
16515	// Time variation in the delay of received packets in milliseconds as an integer
16516	// from 0 to 2000.
16517	UplinkJitterMs *int64 `locationName:"uplinkJitterMs" type:"long"`
16518
16519	// Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
16520	UplinkLossPercent *int64 `locationName:"uplinkLossPercent" type:"integer"`
16521}
16522
16523// String returns the string representation.
16524//
16525// API parameter values that are decorated as "sensitive" in the API will not
16526// be included in the string output. The member name will be present, but the
16527// value will be replaced with "sensitive".
16528func (s NetworkProfile) String() string {
16529	return awsutil.Prettify(s)
16530}
16531
16532// GoString returns the string representation.
16533//
16534// API parameter values that are decorated as "sensitive" in the API will not
16535// be included in the string output. The member name will be present, but the
16536// value will be replaced with "sensitive".
16537func (s NetworkProfile) GoString() string {
16538	return s.String()
16539}
16540
16541// SetArn sets the Arn field's value.
16542func (s *NetworkProfile) SetArn(v string) *NetworkProfile {
16543	s.Arn = &v
16544	return s
16545}
16546
16547// SetDescription sets the Description field's value.
16548func (s *NetworkProfile) SetDescription(v string) *NetworkProfile {
16549	s.Description = &v
16550	return s
16551}
16552
16553// SetDownlinkBandwidthBits sets the DownlinkBandwidthBits field's value.
16554func (s *NetworkProfile) SetDownlinkBandwidthBits(v int64) *NetworkProfile {
16555	s.DownlinkBandwidthBits = &v
16556	return s
16557}
16558
16559// SetDownlinkDelayMs sets the DownlinkDelayMs field's value.
16560func (s *NetworkProfile) SetDownlinkDelayMs(v int64) *NetworkProfile {
16561	s.DownlinkDelayMs = &v
16562	return s
16563}
16564
16565// SetDownlinkJitterMs sets the DownlinkJitterMs field's value.
16566func (s *NetworkProfile) SetDownlinkJitterMs(v int64) *NetworkProfile {
16567	s.DownlinkJitterMs = &v
16568	return s
16569}
16570
16571// SetDownlinkLossPercent sets the DownlinkLossPercent field's value.
16572func (s *NetworkProfile) SetDownlinkLossPercent(v int64) *NetworkProfile {
16573	s.DownlinkLossPercent = &v
16574	return s
16575}
16576
16577// SetName sets the Name field's value.
16578func (s *NetworkProfile) SetName(v string) *NetworkProfile {
16579	s.Name = &v
16580	return s
16581}
16582
16583// SetType sets the Type field's value.
16584func (s *NetworkProfile) SetType(v string) *NetworkProfile {
16585	s.Type = &v
16586	return s
16587}
16588
16589// SetUplinkBandwidthBits sets the UplinkBandwidthBits field's value.
16590func (s *NetworkProfile) SetUplinkBandwidthBits(v int64) *NetworkProfile {
16591	s.UplinkBandwidthBits = &v
16592	return s
16593}
16594
16595// SetUplinkDelayMs sets the UplinkDelayMs field's value.
16596func (s *NetworkProfile) SetUplinkDelayMs(v int64) *NetworkProfile {
16597	s.UplinkDelayMs = &v
16598	return s
16599}
16600
16601// SetUplinkJitterMs sets the UplinkJitterMs field's value.
16602func (s *NetworkProfile) SetUplinkJitterMs(v int64) *NetworkProfile {
16603	s.UplinkJitterMs = &v
16604	return s
16605}
16606
16607// SetUplinkLossPercent sets the UplinkLossPercent field's value.
16608func (s *NetworkProfile) SetUplinkLossPercent(v int64) *NetworkProfile {
16609	s.UplinkLossPercent = &v
16610	return s
16611}
16612
16613// Exception gets thrown when a user is not eligible to perform the specified
16614// transaction.
16615type NotEligibleException struct {
16616	_            struct{}                  `type:"structure"`
16617	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16618
16619	// The HTTP response code of a Not Eligible exception.
16620	Message_ *string `locationName:"message" type:"string"`
16621}
16622
16623// String returns the string representation.
16624//
16625// API parameter values that are decorated as "sensitive" in the API will not
16626// be included in the string output. The member name will be present, but the
16627// value will be replaced with "sensitive".
16628func (s NotEligibleException) String() string {
16629	return awsutil.Prettify(s)
16630}
16631
16632// GoString returns the string representation.
16633//
16634// API parameter values that are decorated as "sensitive" in the API will not
16635// be included in the string output. The member name will be present, but the
16636// value will be replaced with "sensitive".
16637func (s NotEligibleException) GoString() string {
16638	return s.String()
16639}
16640
16641func newErrorNotEligibleException(v protocol.ResponseMetadata) error {
16642	return &NotEligibleException{
16643		RespMetadata: v,
16644	}
16645}
16646
16647// Code returns the exception type name.
16648func (s *NotEligibleException) Code() string {
16649	return "NotEligibleException"
16650}
16651
16652// Message returns the exception's message.
16653func (s *NotEligibleException) Message() string {
16654	if s.Message_ != nil {
16655		return *s.Message_
16656	}
16657	return ""
16658}
16659
16660// OrigErr always returns nil, satisfies awserr.Error interface.
16661func (s *NotEligibleException) OrigErr() error {
16662	return nil
16663}
16664
16665func (s *NotEligibleException) Error() string {
16666	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16667}
16668
16669// Status code returns the HTTP status code for the request's response error.
16670func (s *NotEligibleException) StatusCode() int {
16671	return s.RespMetadata.StatusCode
16672}
16673
16674// RequestID returns the service's response RequestID for request.
16675func (s *NotEligibleException) RequestID() string {
16676	return s.RespMetadata.RequestID
16677}
16678
16679// The specified entity was not found.
16680type NotFoundException struct {
16681	_            struct{}                  `type:"structure"`
16682	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16683
16684	// Any additional information about the exception.
16685	Message_ *string `locationName:"message" type:"string"`
16686}
16687
16688// String returns the string representation.
16689//
16690// API parameter values that are decorated as "sensitive" in the API will not
16691// be included in the string output. The member name will be present, but the
16692// value will be replaced with "sensitive".
16693func (s NotFoundException) String() string {
16694	return awsutil.Prettify(s)
16695}
16696
16697// GoString returns the string representation.
16698//
16699// API parameter values that are decorated as "sensitive" in the API will not
16700// be included in the string output. The member name will be present, but the
16701// value will be replaced with "sensitive".
16702func (s NotFoundException) GoString() string {
16703	return s.String()
16704}
16705
16706func newErrorNotFoundException(v protocol.ResponseMetadata) error {
16707	return &NotFoundException{
16708		RespMetadata: v,
16709	}
16710}
16711
16712// Code returns the exception type name.
16713func (s *NotFoundException) Code() string {
16714	return "NotFoundException"
16715}
16716
16717// Message returns the exception's message.
16718func (s *NotFoundException) Message() string {
16719	if s.Message_ != nil {
16720		return *s.Message_
16721	}
16722	return ""
16723}
16724
16725// OrigErr always returns nil, satisfies awserr.Error interface.
16726func (s *NotFoundException) OrigErr() error {
16727	return nil
16728}
16729
16730func (s *NotFoundException) Error() string {
16731	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16732}
16733
16734// Status code returns the HTTP status code for the request's response error.
16735func (s *NotFoundException) StatusCode() int {
16736	return s.RespMetadata.StatusCode
16737}
16738
16739// RequestID returns the service's response RequestID for request.
16740func (s *NotFoundException) RequestID() string {
16741	return s.RespMetadata.RequestID
16742}
16743
16744// Represents the metadata of a device offering.
16745type Offering struct {
16746	_ struct{} `type:"structure"`
16747
16748	// A string that describes the offering.
16749	Description *string `locationName:"description" type:"string"`
16750
16751	// The ID that corresponds to a device offering.
16752	Id *string `locationName:"id" min:"32" type:"string"`
16753
16754	// The platform of the device (for example, ANDROID or IOS).
16755	Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"`
16756
16757	// Specifies whether there are recurring charges for the offering.
16758	RecurringCharges []*RecurringCharge `locationName:"recurringCharges" type:"list"`
16759
16760	// The type of offering (for example, RECURRING) for a device.
16761	Type *string `locationName:"type" type:"string" enum:"OfferingType"`
16762}
16763
16764// String returns the string representation.
16765//
16766// API parameter values that are decorated as "sensitive" in the API will not
16767// be included in the string output. The member name will be present, but the
16768// value will be replaced with "sensitive".
16769func (s Offering) String() string {
16770	return awsutil.Prettify(s)
16771}
16772
16773// GoString returns the string representation.
16774//
16775// API parameter values that are decorated as "sensitive" in the API will not
16776// be included in the string output. The member name will be present, but the
16777// value will be replaced with "sensitive".
16778func (s Offering) GoString() string {
16779	return s.String()
16780}
16781
16782// SetDescription sets the Description field's value.
16783func (s *Offering) SetDescription(v string) *Offering {
16784	s.Description = &v
16785	return s
16786}
16787
16788// SetId sets the Id field's value.
16789func (s *Offering) SetId(v string) *Offering {
16790	s.Id = &v
16791	return s
16792}
16793
16794// SetPlatform sets the Platform field's value.
16795func (s *Offering) SetPlatform(v string) *Offering {
16796	s.Platform = &v
16797	return s
16798}
16799
16800// SetRecurringCharges sets the RecurringCharges field's value.
16801func (s *Offering) SetRecurringCharges(v []*RecurringCharge) *Offering {
16802	s.RecurringCharges = v
16803	return s
16804}
16805
16806// SetType sets the Type field's value.
16807func (s *Offering) SetType(v string) *Offering {
16808	s.Type = &v
16809	return s
16810}
16811
16812// Represents information about an offering promotion.
16813type OfferingPromotion struct {
16814	_ struct{} `type:"structure"`
16815
16816	// A string that describes the offering promotion.
16817	Description *string `locationName:"description" type:"string"`
16818
16819	// The ID of the offering promotion.
16820	Id *string `locationName:"id" min:"4" type:"string"`
16821}
16822
16823// String returns the string representation.
16824//
16825// API parameter values that are decorated as "sensitive" in the API will not
16826// be included in the string output. The member name will be present, but the
16827// value will be replaced with "sensitive".
16828func (s OfferingPromotion) String() string {
16829	return awsutil.Prettify(s)
16830}
16831
16832// GoString returns the string representation.
16833//
16834// API parameter values that are decorated as "sensitive" in the API will not
16835// be included in the string output. The member name will be present, but the
16836// value will be replaced with "sensitive".
16837func (s OfferingPromotion) GoString() string {
16838	return s.String()
16839}
16840
16841// SetDescription sets the Description field's value.
16842func (s *OfferingPromotion) SetDescription(v string) *OfferingPromotion {
16843	s.Description = &v
16844	return s
16845}
16846
16847// SetId sets the Id field's value.
16848func (s *OfferingPromotion) SetId(v string) *OfferingPromotion {
16849	s.Id = &v
16850	return s
16851}
16852
16853// The status of the offering.
16854type OfferingStatus struct {
16855	_ struct{} `type:"structure"`
16856
16857	// The date on which the offering is effective.
16858	EffectiveOn *time.Time `locationName:"effectiveOn" type:"timestamp"`
16859
16860	// Represents the metadata of an offering status.
16861	Offering *Offering `locationName:"offering" type:"structure"`
16862
16863	// The number of available devices in the offering.
16864	Quantity *int64 `locationName:"quantity" type:"integer"`
16865
16866	// The type specified for the offering status.
16867	Type *string `locationName:"type" type:"string" enum:"OfferingTransactionType"`
16868}
16869
16870// String returns the string representation.
16871//
16872// API parameter values that are decorated as "sensitive" in the API will not
16873// be included in the string output. The member name will be present, but the
16874// value will be replaced with "sensitive".
16875func (s OfferingStatus) String() string {
16876	return awsutil.Prettify(s)
16877}
16878
16879// GoString returns the string representation.
16880//
16881// API parameter values that are decorated as "sensitive" in the API will not
16882// be included in the string output. The member name will be present, but the
16883// value will be replaced with "sensitive".
16884func (s OfferingStatus) GoString() string {
16885	return s.String()
16886}
16887
16888// SetEffectiveOn sets the EffectiveOn field's value.
16889func (s *OfferingStatus) SetEffectiveOn(v time.Time) *OfferingStatus {
16890	s.EffectiveOn = &v
16891	return s
16892}
16893
16894// SetOffering sets the Offering field's value.
16895func (s *OfferingStatus) SetOffering(v *Offering) *OfferingStatus {
16896	s.Offering = v
16897	return s
16898}
16899
16900// SetQuantity sets the Quantity field's value.
16901func (s *OfferingStatus) SetQuantity(v int64) *OfferingStatus {
16902	s.Quantity = &v
16903	return s
16904}
16905
16906// SetType sets the Type field's value.
16907func (s *OfferingStatus) SetType(v string) *OfferingStatus {
16908	s.Type = &v
16909	return s
16910}
16911
16912// Represents the metadata of an offering transaction.
16913type OfferingTransaction struct {
16914	_ struct{} `type:"structure"`
16915
16916	// The cost of an offering transaction.
16917	Cost *MonetaryAmount `locationName:"cost" type:"structure"`
16918
16919	// The date on which an offering transaction was created.
16920	CreatedOn *time.Time `locationName:"createdOn" type:"timestamp"`
16921
16922	// The ID that corresponds to a device offering promotion.
16923	OfferingPromotionId *string `locationName:"offeringPromotionId" min:"4" type:"string"`
16924
16925	// The status of an offering transaction.
16926	OfferingStatus *OfferingStatus `locationName:"offeringStatus" type:"structure"`
16927
16928	// The transaction ID of the offering transaction.
16929	TransactionId *string `locationName:"transactionId" min:"32" type:"string"`
16930}
16931
16932// String returns the string representation.
16933//
16934// API parameter values that are decorated as "sensitive" in the API will not
16935// be included in the string output. The member name will be present, but the
16936// value will be replaced with "sensitive".
16937func (s OfferingTransaction) String() string {
16938	return awsutil.Prettify(s)
16939}
16940
16941// GoString returns the string representation.
16942//
16943// API parameter values that are decorated as "sensitive" in the API will not
16944// be included in the string output. The member name will be present, but the
16945// value will be replaced with "sensitive".
16946func (s OfferingTransaction) GoString() string {
16947	return s.String()
16948}
16949
16950// SetCost sets the Cost field's value.
16951func (s *OfferingTransaction) SetCost(v *MonetaryAmount) *OfferingTransaction {
16952	s.Cost = v
16953	return s
16954}
16955
16956// SetCreatedOn sets the CreatedOn field's value.
16957func (s *OfferingTransaction) SetCreatedOn(v time.Time) *OfferingTransaction {
16958	s.CreatedOn = &v
16959	return s
16960}
16961
16962// SetOfferingPromotionId sets the OfferingPromotionId field's value.
16963func (s *OfferingTransaction) SetOfferingPromotionId(v string) *OfferingTransaction {
16964	s.OfferingPromotionId = &v
16965	return s
16966}
16967
16968// SetOfferingStatus sets the OfferingStatus field's value.
16969func (s *OfferingTransaction) SetOfferingStatus(v *OfferingStatus) *OfferingTransaction {
16970	s.OfferingStatus = v
16971	return s
16972}
16973
16974// SetTransactionId sets the TransactionId field's value.
16975func (s *OfferingTransaction) SetTransactionId(v string) *OfferingTransaction {
16976	s.TransactionId = &v
16977	return s
16978}
16979
16980// Represents a specific warning or failure.
16981type Problem struct {
16982	_ struct{} `type:"structure"`
16983
16984	// Information about the associated device.
16985	Device *Device `locationName:"device" type:"structure"`
16986
16987	// Information about the associated job.
16988	Job *ProblemDetail `locationName:"job" type:"structure"`
16989
16990	// A message about the problem's result.
16991	Message *string `locationName:"message" type:"string"`
16992
16993	// The problem's result.
16994	//
16995	// Allowed values include:
16996	//
16997	//    * PENDING
16998	//
16999	//    * PASSED
17000	//
17001	//    * WARNED
17002	//
17003	//    * FAILED
17004	//
17005	//    * SKIPPED
17006	//
17007	//    * ERRORED
17008	//
17009	//    * STOPPED
17010	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
17011
17012	// Information about the associated run.
17013	Run *ProblemDetail `locationName:"run" type:"structure"`
17014
17015	// Information about the associated suite.
17016	Suite *ProblemDetail `locationName:"suite" type:"structure"`
17017
17018	// Information about the associated test.
17019	Test *ProblemDetail `locationName:"test" type:"structure"`
17020}
17021
17022// String returns the string representation.
17023//
17024// API parameter values that are decorated as "sensitive" in the API will not
17025// be included in the string output. The member name will be present, but the
17026// value will be replaced with "sensitive".
17027func (s Problem) String() string {
17028	return awsutil.Prettify(s)
17029}
17030
17031// GoString returns the string representation.
17032//
17033// API parameter values that are decorated as "sensitive" in the API will not
17034// be included in the string output. The member name will be present, but the
17035// value will be replaced with "sensitive".
17036func (s Problem) GoString() string {
17037	return s.String()
17038}
17039
17040// SetDevice sets the Device field's value.
17041func (s *Problem) SetDevice(v *Device) *Problem {
17042	s.Device = v
17043	return s
17044}
17045
17046// SetJob sets the Job field's value.
17047func (s *Problem) SetJob(v *ProblemDetail) *Problem {
17048	s.Job = v
17049	return s
17050}
17051
17052// SetMessage sets the Message field's value.
17053func (s *Problem) SetMessage(v string) *Problem {
17054	s.Message = &v
17055	return s
17056}
17057
17058// SetResult sets the Result field's value.
17059func (s *Problem) SetResult(v string) *Problem {
17060	s.Result = &v
17061	return s
17062}
17063
17064// SetRun sets the Run field's value.
17065func (s *Problem) SetRun(v *ProblemDetail) *Problem {
17066	s.Run = v
17067	return s
17068}
17069
17070// SetSuite sets the Suite field's value.
17071func (s *Problem) SetSuite(v *ProblemDetail) *Problem {
17072	s.Suite = v
17073	return s
17074}
17075
17076// SetTest sets the Test field's value.
17077func (s *Problem) SetTest(v *ProblemDetail) *Problem {
17078	s.Test = v
17079	return s
17080}
17081
17082// Information about a problem detail.
17083type ProblemDetail struct {
17084	_ struct{} `type:"structure"`
17085
17086	// The problem detail's ARN.
17087	Arn *string `locationName:"arn" min:"32" type:"string"`
17088
17089	// The problem detail's name.
17090	Name *string `locationName:"name" type:"string"`
17091}
17092
17093// String returns the string representation.
17094//
17095// API parameter values that are decorated as "sensitive" in the API will not
17096// be included in the string output. The member name will be present, but the
17097// value will be replaced with "sensitive".
17098func (s ProblemDetail) String() string {
17099	return awsutil.Prettify(s)
17100}
17101
17102// GoString returns the string representation.
17103//
17104// API parameter values that are decorated as "sensitive" in the API will not
17105// be included in the string output. The member name will be present, but the
17106// value will be replaced with "sensitive".
17107func (s ProblemDetail) GoString() string {
17108	return s.String()
17109}
17110
17111// SetArn sets the Arn field's value.
17112func (s *ProblemDetail) SetArn(v string) *ProblemDetail {
17113	s.Arn = &v
17114	return s
17115}
17116
17117// SetName sets the Name field's value.
17118func (s *ProblemDetail) SetName(v string) *ProblemDetail {
17119	s.Name = &v
17120	return s
17121}
17122
17123// Represents an operating-system neutral workspace for running and managing
17124// tests.
17125type Project struct {
17126	_ struct{} `type:"structure"`
17127
17128	// The project's ARN.
17129	Arn *string `locationName:"arn" min:"32" type:"string"`
17130
17131	// When the project was created.
17132	Created *time.Time `locationName:"created" type:"timestamp"`
17133
17134	// The default number of minutes (at the project level) a test run executes
17135	// before it times out. The default value is 150 minutes.
17136	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
17137
17138	// The project's name.
17139	Name *string `locationName:"name" type:"string"`
17140}
17141
17142// String returns the string representation.
17143//
17144// API parameter values that are decorated as "sensitive" in the API will not
17145// be included in the string output. The member name will be present, but the
17146// value will be replaced with "sensitive".
17147func (s Project) String() string {
17148	return awsutil.Prettify(s)
17149}
17150
17151// GoString returns the string representation.
17152//
17153// API parameter values that are decorated as "sensitive" in the API will not
17154// be included in the string output. The member name will be present, but the
17155// value will be replaced with "sensitive".
17156func (s Project) GoString() string {
17157	return s.String()
17158}
17159
17160// SetArn sets the Arn field's value.
17161func (s *Project) SetArn(v string) *Project {
17162	s.Arn = &v
17163	return s
17164}
17165
17166// SetCreated sets the Created field's value.
17167func (s *Project) SetCreated(v time.Time) *Project {
17168	s.Created = &v
17169	return s
17170}
17171
17172// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
17173func (s *Project) SetDefaultJobTimeoutMinutes(v int64) *Project {
17174	s.DefaultJobTimeoutMinutes = &v
17175	return s
17176}
17177
17178// SetName sets the Name field's value.
17179func (s *Project) SetName(v string) *Project {
17180	s.Name = &v
17181	return s
17182}
17183
17184// Represents a request for a purchase offering.
17185type PurchaseOfferingInput struct {
17186	_ struct{} `type:"structure"`
17187
17188	// The ID of the offering.
17189	//
17190	// OfferingId is a required field
17191	OfferingId *string `locationName:"offeringId" min:"32" type:"string" required:"true"`
17192
17193	// The ID of the offering promotion to be applied to the purchase.
17194	OfferingPromotionId *string `locationName:"offeringPromotionId" min:"4" type:"string"`
17195
17196	// The number of device slots to purchase in an offering request.
17197	//
17198	// Quantity is a required field
17199	Quantity *int64 `locationName:"quantity" type:"integer" required:"true"`
17200}
17201
17202// String returns the string representation.
17203//
17204// API parameter values that are decorated as "sensitive" in the API will not
17205// be included in the string output. The member name will be present, but the
17206// value will be replaced with "sensitive".
17207func (s PurchaseOfferingInput) String() string {
17208	return awsutil.Prettify(s)
17209}
17210
17211// GoString returns the string representation.
17212//
17213// API parameter values that are decorated as "sensitive" in the API will not
17214// be included in the string output. The member name will be present, but the
17215// value will be replaced with "sensitive".
17216func (s PurchaseOfferingInput) GoString() string {
17217	return s.String()
17218}
17219
17220// Validate inspects the fields of the type to determine if they are valid.
17221func (s *PurchaseOfferingInput) Validate() error {
17222	invalidParams := request.ErrInvalidParams{Context: "PurchaseOfferingInput"}
17223	if s.OfferingId == nil {
17224		invalidParams.Add(request.NewErrParamRequired("OfferingId"))
17225	}
17226	if s.OfferingId != nil && len(*s.OfferingId) < 32 {
17227		invalidParams.Add(request.NewErrParamMinLen("OfferingId", 32))
17228	}
17229	if s.OfferingPromotionId != nil && len(*s.OfferingPromotionId) < 4 {
17230		invalidParams.Add(request.NewErrParamMinLen("OfferingPromotionId", 4))
17231	}
17232	if s.Quantity == nil {
17233		invalidParams.Add(request.NewErrParamRequired("Quantity"))
17234	}
17235
17236	if invalidParams.Len() > 0 {
17237		return invalidParams
17238	}
17239	return nil
17240}
17241
17242// SetOfferingId sets the OfferingId field's value.
17243func (s *PurchaseOfferingInput) SetOfferingId(v string) *PurchaseOfferingInput {
17244	s.OfferingId = &v
17245	return s
17246}
17247
17248// SetOfferingPromotionId sets the OfferingPromotionId field's value.
17249func (s *PurchaseOfferingInput) SetOfferingPromotionId(v string) *PurchaseOfferingInput {
17250	s.OfferingPromotionId = &v
17251	return s
17252}
17253
17254// SetQuantity sets the Quantity field's value.
17255func (s *PurchaseOfferingInput) SetQuantity(v int64) *PurchaseOfferingInput {
17256	s.Quantity = &v
17257	return s
17258}
17259
17260// The result of the purchase offering (for example, success or failure).
17261type PurchaseOfferingOutput struct {
17262	_ struct{} `type:"structure"`
17263
17264	// Represents the offering transaction for the purchase result.
17265	OfferingTransaction *OfferingTransaction `locationName:"offeringTransaction" type:"structure"`
17266}
17267
17268// String returns the string representation.
17269//
17270// API parameter values that are decorated as "sensitive" in the API will not
17271// be included in the string output. The member name will be present, but the
17272// value will be replaced with "sensitive".
17273func (s PurchaseOfferingOutput) String() string {
17274	return awsutil.Prettify(s)
17275}
17276
17277// GoString returns the string representation.
17278//
17279// API parameter values that are decorated as "sensitive" in the API will not
17280// be included in the string output. The member name will be present, but the
17281// value will be replaced with "sensitive".
17282func (s PurchaseOfferingOutput) GoString() string {
17283	return s.String()
17284}
17285
17286// SetOfferingTransaction sets the OfferingTransaction field's value.
17287func (s *PurchaseOfferingOutput) SetOfferingTransaction(v *OfferingTransaction) *PurchaseOfferingOutput {
17288	s.OfferingTransaction = v
17289	return s
17290}
17291
17292// Represents the set of radios and their states on a device. Examples of radios
17293// include Wi-Fi, GPS, Bluetooth, and NFC.
17294type Radios struct {
17295	_ struct{} `type:"structure"`
17296
17297	// True if Bluetooth is enabled at the beginning of the test. Otherwise, false.
17298	Bluetooth *bool `locationName:"bluetooth" type:"boolean"`
17299
17300	// True if GPS is enabled at the beginning of the test. Otherwise, false.
17301	Gps *bool `locationName:"gps" type:"boolean"`
17302
17303	// True if NFC is enabled at the beginning of the test. Otherwise, false.
17304	Nfc *bool `locationName:"nfc" type:"boolean"`
17305
17306	// True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.
17307	Wifi *bool `locationName:"wifi" type:"boolean"`
17308}
17309
17310// String returns the string representation.
17311//
17312// API parameter values that are decorated as "sensitive" in the API will not
17313// be included in the string output. The member name will be present, but the
17314// value will be replaced with "sensitive".
17315func (s Radios) String() string {
17316	return awsutil.Prettify(s)
17317}
17318
17319// GoString returns the string representation.
17320//
17321// API parameter values that are decorated as "sensitive" in the API will not
17322// be included in the string output. The member name will be present, but the
17323// value will be replaced with "sensitive".
17324func (s Radios) GoString() string {
17325	return s.String()
17326}
17327
17328// SetBluetooth sets the Bluetooth field's value.
17329func (s *Radios) SetBluetooth(v bool) *Radios {
17330	s.Bluetooth = &v
17331	return s
17332}
17333
17334// SetGps sets the Gps field's value.
17335func (s *Radios) SetGps(v bool) *Radios {
17336	s.Gps = &v
17337	return s
17338}
17339
17340// SetNfc sets the Nfc field's value.
17341func (s *Radios) SetNfc(v bool) *Radios {
17342	s.Nfc = &v
17343	return s
17344}
17345
17346// SetWifi sets the Wifi field's value.
17347func (s *Radios) SetWifi(v bool) *Radios {
17348	s.Wifi = &v
17349	return s
17350}
17351
17352// Specifies whether charges for devices are recurring.
17353type RecurringCharge struct {
17354	_ struct{} `type:"structure"`
17355
17356	// The cost of the recurring charge.
17357	Cost *MonetaryAmount `locationName:"cost" type:"structure"`
17358
17359	// The frequency in which charges recur.
17360	Frequency *string `locationName:"frequency" type:"string" enum:"RecurringChargeFrequency"`
17361}
17362
17363// String returns the string representation.
17364//
17365// API parameter values that are decorated as "sensitive" in the API will not
17366// be included in the string output. The member name will be present, but the
17367// value will be replaced with "sensitive".
17368func (s RecurringCharge) String() string {
17369	return awsutil.Prettify(s)
17370}
17371
17372// GoString returns the string representation.
17373//
17374// API parameter values that are decorated as "sensitive" in the API will not
17375// be included in the string output. The member name will be present, but the
17376// value will be replaced with "sensitive".
17377func (s RecurringCharge) GoString() string {
17378	return s.String()
17379}
17380
17381// SetCost sets the Cost field's value.
17382func (s *RecurringCharge) SetCost(v *MonetaryAmount) *RecurringCharge {
17383	s.Cost = v
17384	return s
17385}
17386
17387// SetFrequency sets the Frequency field's value.
17388func (s *RecurringCharge) SetFrequency(v string) *RecurringCharge {
17389	s.Frequency = &v
17390	return s
17391}
17392
17393// Represents information about the remote access session.
17394type RemoteAccessSession struct {
17395	_ struct{} `type:"structure"`
17396
17397	// The Amazon Resource Name (ARN) of the remote access session.
17398	Arn *string `locationName:"arn" min:"32" type:"string"`
17399
17400	// The billing method of the remote access session. Possible values include
17401	// METERED or UNMETERED. For more information about metered devices, see AWS
17402	// Device Farm terminology (https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html#welcome-terminology).
17403	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
17404
17405	// Unique identifier of your client for the remote access session. Only returned
17406	// if remote debugging is enabled for the remote access session.
17407	//
17408	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
17409	ClientId *string `locationName:"clientId" type:"string"`
17410
17411	// The date and time the remote access session was created.
17412	Created *time.Time `locationName:"created" type:"timestamp"`
17413
17414	// The device (phone or tablet) used in the remote access session.
17415	Device *Device `locationName:"device" type:"structure"`
17416
17417	// The number of minutes a device is used in a remote access session (including
17418	// setup and teardown minutes).
17419	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
17420
17421	// Unique device identifier for the remote device. Only returned if remote debugging
17422	// is enabled for the remote access session.
17423	//
17424	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
17425	DeviceUdid *string `locationName:"deviceUdid" type:"string"`
17426
17427	// The endpoint for the remote access sesssion.
17428	Endpoint *string `locationName:"endpoint" type:"string"`
17429
17430	// IP address of the EC2 host where you need to connect to remotely debug devices.
17431	// Only returned if remote debugging is enabled for the remote access session.
17432	//
17433	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
17434	HostAddress *string `locationName:"hostAddress" type:"string"`
17435
17436	// The ARN of the instance.
17437	InstanceArn *string `locationName:"instanceArn" min:"32" type:"string"`
17438
17439	// The interaction mode of the remote access session. Valid values are:
17440	//
17441	//    * INTERACTIVE: You can interact with the iOS device by viewing, touching,
17442	//    and rotating the screen. You cannot run XCUITest framework-based tests
17443	//    in this mode.
17444	//
17445	//    * NO_VIDEO: You are connected to the device, but cannot interact with
17446	//    it or view the screen. This mode has the fastest test execution speed.
17447	//    You can run XCUITest framework-based tests in this mode.
17448	//
17449	//    * VIDEO_ONLY: You can view the screen, but cannot touch or rotate it.
17450	//    You can run XCUITest framework-based tests and watch the screen in this
17451	//    mode.
17452	InteractionMode *string `locationName:"interactionMode" type:"string" enum:"InteractionMode"`
17453
17454	// A message about the remote access session.
17455	Message *string `locationName:"message" type:"string"`
17456
17457	// The name of the remote access session.
17458	Name *string `locationName:"name" type:"string"`
17459
17460	// This flag is set to true if remote debugging is enabled for the remote access
17461	// session.
17462	//
17463	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
17464	RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"`
17465
17466	// The ARN for the app to be recorded in the remote access session.
17467	RemoteRecordAppArn *string `locationName:"remoteRecordAppArn" min:"32" type:"string"`
17468
17469	// This flag is set to true if remote recording is enabled for the remote access
17470	// session.
17471	RemoteRecordEnabled *bool `locationName:"remoteRecordEnabled" type:"boolean"`
17472
17473	// The result of the remote access session. Can be any of the following:
17474	//
17475	//    * PENDING.
17476	//
17477	//    * PASSED.
17478	//
17479	//    * WARNED.
17480	//
17481	//    * FAILED.
17482	//
17483	//    * SKIPPED.
17484	//
17485	//    * ERRORED.
17486	//
17487	//    * STOPPED.
17488	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
17489
17490	// When set to true, for private devices, Device Farm does not sign your app
17491	// again. For public devices, Device Farm always signs your apps again.
17492	//
17493	// For more information about how Device Farm re-signs your apps, see Do you
17494	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
17495	// Farm FAQs.
17496	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
17497
17498	// The date and time the remote access session was started.
17499	Started *time.Time `locationName:"started" type:"timestamp"`
17500
17501	// The status of the remote access session. Can be any of the following:
17502	//
17503	//    * PENDING.
17504	//
17505	//    * PENDING_CONCURRENCY.
17506	//
17507	//    * PENDING_DEVICE.
17508	//
17509	//    * PROCESSING.
17510	//
17511	//    * SCHEDULING.
17512	//
17513	//    * PREPARING.
17514	//
17515	//    * RUNNING.
17516	//
17517	//    * COMPLETED.
17518	//
17519	//    * STOPPING.
17520	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
17521
17522	// The date and time the remote access session was stopped.
17523	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
17524}
17525
17526// String returns the string representation.
17527//
17528// API parameter values that are decorated as "sensitive" in the API will not
17529// be included in the string output. The member name will be present, but the
17530// value will be replaced with "sensitive".
17531func (s RemoteAccessSession) String() string {
17532	return awsutil.Prettify(s)
17533}
17534
17535// GoString returns the string representation.
17536//
17537// API parameter values that are decorated as "sensitive" in the API will not
17538// be included in the string output. The member name will be present, but the
17539// value will be replaced with "sensitive".
17540func (s RemoteAccessSession) GoString() string {
17541	return s.String()
17542}
17543
17544// SetArn sets the Arn field's value.
17545func (s *RemoteAccessSession) SetArn(v string) *RemoteAccessSession {
17546	s.Arn = &v
17547	return s
17548}
17549
17550// SetBillingMethod sets the BillingMethod field's value.
17551func (s *RemoteAccessSession) SetBillingMethod(v string) *RemoteAccessSession {
17552	s.BillingMethod = &v
17553	return s
17554}
17555
17556// SetClientId sets the ClientId field's value.
17557func (s *RemoteAccessSession) SetClientId(v string) *RemoteAccessSession {
17558	s.ClientId = &v
17559	return s
17560}
17561
17562// SetCreated sets the Created field's value.
17563func (s *RemoteAccessSession) SetCreated(v time.Time) *RemoteAccessSession {
17564	s.Created = &v
17565	return s
17566}
17567
17568// SetDevice sets the Device field's value.
17569func (s *RemoteAccessSession) SetDevice(v *Device) *RemoteAccessSession {
17570	s.Device = v
17571	return s
17572}
17573
17574// SetDeviceMinutes sets the DeviceMinutes field's value.
17575func (s *RemoteAccessSession) SetDeviceMinutes(v *DeviceMinutes) *RemoteAccessSession {
17576	s.DeviceMinutes = v
17577	return s
17578}
17579
17580// SetDeviceUdid sets the DeviceUdid field's value.
17581func (s *RemoteAccessSession) SetDeviceUdid(v string) *RemoteAccessSession {
17582	s.DeviceUdid = &v
17583	return s
17584}
17585
17586// SetEndpoint sets the Endpoint field's value.
17587func (s *RemoteAccessSession) SetEndpoint(v string) *RemoteAccessSession {
17588	s.Endpoint = &v
17589	return s
17590}
17591
17592// SetHostAddress sets the HostAddress field's value.
17593func (s *RemoteAccessSession) SetHostAddress(v string) *RemoteAccessSession {
17594	s.HostAddress = &v
17595	return s
17596}
17597
17598// SetInstanceArn sets the InstanceArn field's value.
17599func (s *RemoteAccessSession) SetInstanceArn(v string) *RemoteAccessSession {
17600	s.InstanceArn = &v
17601	return s
17602}
17603
17604// SetInteractionMode sets the InteractionMode field's value.
17605func (s *RemoteAccessSession) SetInteractionMode(v string) *RemoteAccessSession {
17606	s.InteractionMode = &v
17607	return s
17608}
17609
17610// SetMessage sets the Message field's value.
17611func (s *RemoteAccessSession) SetMessage(v string) *RemoteAccessSession {
17612	s.Message = &v
17613	return s
17614}
17615
17616// SetName sets the Name field's value.
17617func (s *RemoteAccessSession) SetName(v string) *RemoteAccessSession {
17618	s.Name = &v
17619	return s
17620}
17621
17622// SetRemoteDebugEnabled sets the RemoteDebugEnabled field's value.
17623func (s *RemoteAccessSession) SetRemoteDebugEnabled(v bool) *RemoteAccessSession {
17624	s.RemoteDebugEnabled = &v
17625	return s
17626}
17627
17628// SetRemoteRecordAppArn sets the RemoteRecordAppArn field's value.
17629func (s *RemoteAccessSession) SetRemoteRecordAppArn(v string) *RemoteAccessSession {
17630	s.RemoteRecordAppArn = &v
17631	return s
17632}
17633
17634// SetRemoteRecordEnabled sets the RemoteRecordEnabled field's value.
17635func (s *RemoteAccessSession) SetRemoteRecordEnabled(v bool) *RemoteAccessSession {
17636	s.RemoteRecordEnabled = &v
17637	return s
17638}
17639
17640// SetResult sets the Result field's value.
17641func (s *RemoteAccessSession) SetResult(v string) *RemoteAccessSession {
17642	s.Result = &v
17643	return s
17644}
17645
17646// SetSkipAppResign sets the SkipAppResign field's value.
17647func (s *RemoteAccessSession) SetSkipAppResign(v bool) *RemoteAccessSession {
17648	s.SkipAppResign = &v
17649	return s
17650}
17651
17652// SetStarted sets the Started field's value.
17653func (s *RemoteAccessSession) SetStarted(v time.Time) *RemoteAccessSession {
17654	s.Started = &v
17655	return s
17656}
17657
17658// SetStatus sets the Status field's value.
17659func (s *RemoteAccessSession) SetStatus(v string) *RemoteAccessSession {
17660	s.Status = &v
17661	return s
17662}
17663
17664// SetStopped sets the Stopped field's value.
17665func (s *RemoteAccessSession) SetStopped(v time.Time) *RemoteAccessSession {
17666	s.Stopped = &v
17667	return s
17668}
17669
17670// A request that represents an offering renewal.
17671type RenewOfferingInput struct {
17672	_ struct{} `type:"structure"`
17673
17674	// The ID of a request to renew an offering.
17675	//
17676	// OfferingId is a required field
17677	OfferingId *string `locationName:"offeringId" min:"32" type:"string" required:"true"`
17678
17679	// The quantity requested in an offering renewal.
17680	//
17681	// Quantity is a required field
17682	Quantity *int64 `locationName:"quantity" type:"integer" required:"true"`
17683}
17684
17685// String returns the string representation.
17686//
17687// API parameter values that are decorated as "sensitive" in the API will not
17688// be included in the string output. The member name will be present, but the
17689// value will be replaced with "sensitive".
17690func (s RenewOfferingInput) String() string {
17691	return awsutil.Prettify(s)
17692}
17693
17694// GoString returns the string representation.
17695//
17696// API parameter values that are decorated as "sensitive" in the API will not
17697// be included in the string output. The member name will be present, but the
17698// value will be replaced with "sensitive".
17699func (s RenewOfferingInput) GoString() string {
17700	return s.String()
17701}
17702
17703// Validate inspects the fields of the type to determine if they are valid.
17704func (s *RenewOfferingInput) Validate() error {
17705	invalidParams := request.ErrInvalidParams{Context: "RenewOfferingInput"}
17706	if s.OfferingId == nil {
17707		invalidParams.Add(request.NewErrParamRequired("OfferingId"))
17708	}
17709	if s.OfferingId != nil && len(*s.OfferingId) < 32 {
17710		invalidParams.Add(request.NewErrParamMinLen("OfferingId", 32))
17711	}
17712	if s.Quantity == nil {
17713		invalidParams.Add(request.NewErrParamRequired("Quantity"))
17714	}
17715
17716	if invalidParams.Len() > 0 {
17717		return invalidParams
17718	}
17719	return nil
17720}
17721
17722// SetOfferingId sets the OfferingId field's value.
17723func (s *RenewOfferingInput) SetOfferingId(v string) *RenewOfferingInput {
17724	s.OfferingId = &v
17725	return s
17726}
17727
17728// SetQuantity sets the Quantity field's value.
17729func (s *RenewOfferingInput) SetQuantity(v int64) *RenewOfferingInput {
17730	s.Quantity = &v
17731	return s
17732}
17733
17734// The result of a renewal offering.
17735type RenewOfferingOutput struct {
17736	_ struct{} `type:"structure"`
17737
17738	// Represents the status of the offering transaction for the renewal.
17739	OfferingTransaction *OfferingTransaction `locationName:"offeringTransaction" type:"structure"`
17740}
17741
17742// String returns the string representation.
17743//
17744// API parameter values that are decorated as "sensitive" in the API will not
17745// be included in the string output. The member name will be present, but the
17746// value will be replaced with "sensitive".
17747func (s RenewOfferingOutput) String() string {
17748	return awsutil.Prettify(s)
17749}
17750
17751// GoString returns the string representation.
17752//
17753// API parameter values that are decorated as "sensitive" in the API will not
17754// be included in the string output. The member name will be present, but the
17755// value will be replaced with "sensitive".
17756func (s RenewOfferingOutput) GoString() string {
17757	return s.String()
17758}
17759
17760// SetOfferingTransaction sets the OfferingTransaction field's value.
17761func (s *RenewOfferingOutput) SetOfferingTransaction(v *OfferingTransaction) *RenewOfferingOutput {
17762	s.OfferingTransaction = v
17763	return s
17764}
17765
17766// Represents the screen resolution of a device in height and width, expressed
17767// in pixels.
17768type Resolution struct {
17769	_ struct{} `type:"structure"`
17770
17771	// The screen resolution's height, expressed in pixels.
17772	Height *int64 `locationName:"height" type:"integer"`
17773
17774	// The screen resolution's width, expressed in pixels.
17775	Width *int64 `locationName:"width" type:"integer"`
17776}
17777
17778// String returns the string representation.
17779//
17780// API parameter values that are decorated as "sensitive" in the API will not
17781// be included in the string output. The member name will be present, but the
17782// value will be replaced with "sensitive".
17783func (s Resolution) String() string {
17784	return awsutil.Prettify(s)
17785}
17786
17787// GoString returns the string representation.
17788//
17789// API parameter values that are decorated as "sensitive" in the API will not
17790// be included in the string output. The member name will be present, but the
17791// value will be replaced with "sensitive".
17792func (s Resolution) GoString() string {
17793	return s.String()
17794}
17795
17796// SetHeight sets the Height field's value.
17797func (s *Resolution) SetHeight(v int64) *Resolution {
17798	s.Height = &v
17799	return s
17800}
17801
17802// SetWidth sets the Width field's value.
17803func (s *Resolution) SetWidth(v int64) *Resolution {
17804	s.Width = &v
17805	return s
17806}
17807
17808// Represents a condition for a device pool.
17809type Rule struct {
17810	_ struct{} `type:"structure"`
17811
17812	// The rule's stringified attribute. For example, specify the value as "\"abc\"".
17813	//
17814	// The supported operators for each attribute are provided in the following
17815	// list.
17816	//
17817	// APPIUM_VERSION
17818	//
17819	// The Appium version for the test.
17820	//
17821	// Supported operators: CONTAINS
17822	//
17823	// ARN
17824	//
17825	// The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example.
17826	//
17827	// Supported operators: EQUALS, IN, NOT_IN
17828	//
17829	// AVAILABILITY
17830	//
17831	// The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE,
17832	// BUSY, or TEMPORARY_NOT_AVAILABLE.
17833	//
17834	// Supported operators: EQUALS
17835	//
17836	// FLEET_TYPE
17837	//
17838	// The fleet type. Valid values are PUBLIC or PRIVATE.
17839	//
17840	// Supported operators: EQUALS
17841	//
17842	// FORM_FACTOR
17843	//
17844	// The device form factor. Valid values are PHONE or TABLET.
17845	//
17846	// Supported operators: EQUALS, IN, NOT_IN
17847	//
17848	// INSTANCE_ARN
17849	//
17850	// The Amazon Resource Name (ARN) of the device instance.
17851	//
17852	// Supported operators: IN, NOT_IN
17853	//
17854	// INSTANCE_LABELS
17855	//
17856	// The label of the device instance.
17857	//
17858	// Supported operators: CONTAINS
17859	//
17860	// MANUFACTURER
17861	//
17862	// The device manufacturer (for example, Apple).
17863	//
17864	// Supported operators: EQUALS, IN, NOT_IN
17865	//
17866	// MODEL
17867	//
17868	// The device model, such as Apple iPad Air 2 or Google Pixel.
17869	//
17870	// Supported operators: CONTAINS, EQUALS, IN, NOT_IN
17871	//
17872	// OS_VERSION
17873	//
17874	// The operating system version (for example, 10.3.2).
17875	//
17876	// Supported operators: EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, LESS_THAN,
17877	// LESS_THAN_OR_EQUALS, NOT_IN
17878	//
17879	// PLATFORM
17880	//
17881	// The device platform. Valid values are ANDROID or IOS.
17882	//
17883	// Supported operators: EQUALS, IN, NOT_IN
17884	//
17885	// REMOTE_ACCESS_ENABLED
17886	//
17887	// Whether the device is enabled for remote access. Valid values are TRUE or
17888	// FALSE.
17889	//
17890	// Supported operators: EQUALS
17891	//
17892	// REMOTE_DEBUG_ENABLED
17893	//
17894	// Whether the device is enabled for remote debugging. Valid values are TRUE
17895	// or FALSE.
17896	//
17897	// Supported operators: EQUALS
17898	//
17899	// Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
17900	// this filter is ignored.
17901	Attribute *string `locationName:"attribute" type:"string" enum:"DeviceAttribute"`
17902
17903	// Specifies how Device Farm compares the rule's attribute to the value. For
17904	// the operators that are supported by each attribute, see the attribute descriptions.
17905	Operator *string `locationName:"operator" type:"string" enum:"RuleOperator"`
17906
17907	// The rule's value.
17908	Value *string `locationName:"value" type:"string"`
17909}
17910
17911// String returns the string representation.
17912//
17913// API parameter values that are decorated as "sensitive" in the API will not
17914// be included in the string output. The member name will be present, but the
17915// value will be replaced with "sensitive".
17916func (s Rule) String() string {
17917	return awsutil.Prettify(s)
17918}
17919
17920// GoString returns the string representation.
17921//
17922// API parameter values that are decorated as "sensitive" in the API will not
17923// be included in the string output. The member name will be present, but the
17924// value will be replaced with "sensitive".
17925func (s Rule) GoString() string {
17926	return s.String()
17927}
17928
17929// SetAttribute sets the Attribute field's value.
17930func (s *Rule) SetAttribute(v string) *Rule {
17931	s.Attribute = &v
17932	return s
17933}
17934
17935// SetOperator sets the Operator field's value.
17936func (s *Rule) SetOperator(v string) *Rule {
17937	s.Operator = &v
17938	return s
17939}
17940
17941// SetValue sets the Value field's value.
17942func (s *Rule) SetValue(v string) *Rule {
17943	s.Value = &v
17944	return s
17945}
17946
17947// Represents a test run on a set of devices with a given app package, test
17948// parameters, and so on.
17949type Run struct {
17950	_ struct{} `type:"structure"`
17951
17952	// An app to upload or that has been uploaded.
17953	AppUpload *string `locationName:"appUpload" min:"32" type:"string"`
17954
17955	// The run's ARN.
17956	Arn *string `locationName:"arn" min:"32" type:"string"`
17957
17958	// Specifies the billing method for a test run: metered or unmetered. If the
17959	// parameter is not specified, the default value is metered.
17960	//
17961	// If you have unmetered device slots, you must set this to unmetered to use
17962	// them. Otherwise, the run is counted toward metered device minutes.
17963	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
17964
17965	// The total number of completed jobs.
17966	CompletedJobs *int64 `locationName:"completedJobs" type:"integer"`
17967
17968	// The run's result counters.
17969	Counters *Counters `locationName:"counters" type:"structure"`
17970
17971	// When the run was created.
17972	Created *time.Time `locationName:"created" type:"timestamp"`
17973
17974	// Output CustomerArtifactPaths object for the test run.
17975	CustomerArtifactPaths *CustomerArtifactPaths `locationName:"customerArtifactPaths" type:"structure"`
17976
17977	// Represents the total (metered or unmetered) minutes used by the test run.
17978	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
17979
17980	// The ARN of the device pool for the run.
17981	DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string"`
17982
17983	// The results of a device filter used to select the devices for a test run.
17984	DeviceSelectionResult *DeviceSelectionResult `locationName:"deviceSelectionResult" type:"structure"`
17985
17986	// For fuzz tests, this is the number of events, between 1 and 10000, that the
17987	// UI fuzz test should perform.
17988	EventCount *int64 `locationName:"eventCount" type:"integer"`
17989
17990	// The number of minutes the job executes before it times out.
17991	JobTimeoutMinutes *int64 `locationName:"jobTimeoutMinutes" type:"integer"`
17992
17993	// Information about the locale that is used for the run.
17994	Locale *string `locationName:"locale" type:"string"`
17995
17996	// Information about the location that is used for the run.
17997	Location *Location `locationName:"location" type:"structure"`
17998
17999	// A message about the run's result.
18000	Message *string `locationName:"message" type:"string"`
18001
18002	// The run's name.
18003	Name *string `locationName:"name" type:"string"`
18004
18005	// The network profile being used for a test run.
18006	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
18007
18008	// Read-only URL for an object in an S3 bucket where you can get the parsing
18009	// results of the test package. If the test package doesn't parse, the reason
18010	// why it doesn't parse appears in the file that this URL points to.
18011	ParsingResultUrl *string `locationName:"parsingResultUrl" type:"string"`
18012
18013	// The run's platform.
18014	//
18015	// Allowed values include:
18016	//
18017	//    * ANDROID
18018	//
18019	//    * IOS
18020	Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"`
18021
18022	// Information about the radio states for the run.
18023	Radios *Radios `locationName:"radios" type:"structure"`
18024
18025	// The run's result.
18026	//
18027	// Allowed values include:
18028	//
18029	//    * PENDING
18030	//
18031	//    * PASSED
18032	//
18033	//    * WARNED
18034	//
18035	//    * FAILED
18036	//
18037	//    * SKIPPED
18038	//
18039	//    * ERRORED
18040	//
18041	//    * STOPPED
18042	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
18043
18044	// Supporting field for the result field. Set only if result is SKIPPED. PARSING_FAILED
18045	// if the result is skipped because of test package parsing failure.
18046	ResultCode *string `locationName:"resultCode" type:"string" enum:"ExecutionResultCode"`
18047
18048	// For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using
18049	// the same seed value between tests ensures identical event sequences.
18050	Seed *int64 `locationName:"seed" type:"integer"`
18051
18052	// When set to true, for private devices, Device Farm does not sign your app
18053	// again. For public devices, Device Farm always signs your apps again.
18054	//
18055	// For more information about how Device Farm re-signs your apps, see Do you
18056	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
18057	// Farm FAQs.
18058	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
18059
18060	// The run's start time.
18061	Started *time.Time `locationName:"started" type:"timestamp"`
18062
18063	// The run's status.
18064	//
18065	// Allowed values include:
18066	//
18067	//    * PENDING
18068	//
18069	//    * PENDING_CONCURRENCY
18070	//
18071	//    * PENDING_DEVICE
18072	//
18073	//    * PROCESSING
18074	//
18075	//    * SCHEDULING
18076	//
18077	//    * PREPARING
18078	//
18079	//    * RUNNING
18080	//
18081	//    * COMPLETED
18082	//
18083	//    * STOPPING
18084	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
18085
18086	// The run's stop time.
18087	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
18088
18089	// The ARN of the YAML-formatted test specification for the run.
18090	TestSpecArn *string `locationName:"testSpecArn" min:"32" type:"string"`
18091
18092	// The total number of jobs for the run.
18093	TotalJobs *int64 `locationName:"totalJobs" type:"integer"`
18094
18095	// The run's type.
18096	//
18097	// Must be one of the following values:
18098	//
18099	//    * BUILTIN_FUZZ
18100	//
18101	//    * BUILTIN_EXPLORER For Android, an app explorer that traverses an Android
18102	//    app, interacting with it and capturing screenshots at the same time.
18103	//
18104	//    * APPIUM_JAVA_JUNIT
18105	//
18106	//    * APPIUM_JAVA_TESTNG
18107	//
18108	//    * APPIUM_PYTHON
18109	//
18110	//    * APPIUM_NODE
18111	//
18112	//    * APPIUM_RUBY
18113	//
18114	//    * APPIUM_WEB_JAVA_JUNIT
18115	//
18116	//    * APPIUM_WEB_JAVA_TESTNG
18117	//
18118	//    * APPIUM_WEB_PYTHON
18119	//
18120	//    * APPIUM_WEB_NODE
18121	//
18122	//    * APPIUM_WEB_RUBY
18123	//
18124	//    * CALABASH
18125	//
18126	//    * INSTRUMENTATION
18127	//
18128	//    * UIAUTOMATION
18129	//
18130	//    * UIAUTOMATOR
18131	//
18132	//    * XCTEST
18133	//
18134	//    * XCTEST_UI
18135	Type *string `locationName:"type" type:"string" enum:"TestType"`
18136
18137	// The Device Farm console URL for the recording of the run.
18138	WebUrl *string `locationName:"webUrl" type:"string"`
18139}
18140
18141// String returns the string representation.
18142//
18143// API parameter values that are decorated as "sensitive" in the API will not
18144// be included in the string output. The member name will be present, but the
18145// value will be replaced with "sensitive".
18146func (s Run) String() string {
18147	return awsutil.Prettify(s)
18148}
18149
18150// GoString returns the string representation.
18151//
18152// API parameter values that are decorated as "sensitive" in the API will not
18153// be included in the string output. The member name will be present, but the
18154// value will be replaced with "sensitive".
18155func (s Run) GoString() string {
18156	return s.String()
18157}
18158
18159// SetAppUpload sets the AppUpload field's value.
18160func (s *Run) SetAppUpload(v string) *Run {
18161	s.AppUpload = &v
18162	return s
18163}
18164
18165// SetArn sets the Arn field's value.
18166func (s *Run) SetArn(v string) *Run {
18167	s.Arn = &v
18168	return s
18169}
18170
18171// SetBillingMethod sets the BillingMethod field's value.
18172func (s *Run) SetBillingMethod(v string) *Run {
18173	s.BillingMethod = &v
18174	return s
18175}
18176
18177// SetCompletedJobs sets the CompletedJobs field's value.
18178func (s *Run) SetCompletedJobs(v int64) *Run {
18179	s.CompletedJobs = &v
18180	return s
18181}
18182
18183// SetCounters sets the Counters field's value.
18184func (s *Run) SetCounters(v *Counters) *Run {
18185	s.Counters = v
18186	return s
18187}
18188
18189// SetCreated sets the Created field's value.
18190func (s *Run) SetCreated(v time.Time) *Run {
18191	s.Created = &v
18192	return s
18193}
18194
18195// SetCustomerArtifactPaths sets the CustomerArtifactPaths field's value.
18196func (s *Run) SetCustomerArtifactPaths(v *CustomerArtifactPaths) *Run {
18197	s.CustomerArtifactPaths = v
18198	return s
18199}
18200
18201// SetDeviceMinutes sets the DeviceMinutes field's value.
18202func (s *Run) SetDeviceMinutes(v *DeviceMinutes) *Run {
18203	s.DeviceMinutes = v
18204	return s
18205}
18206
18207// SetDevicePoolArn sets the DevicePoolArn field's value.
18208func (s *Run) SetDevicePoolArn(v string) *Run {
18209	s.DevicePoolArn = &v
18210	return s
18211}
18212
18213// SetDeviceSelectionResult sets the DeviceSelectionResult field's value.
18214func (s *Run) SetDeviceSelectionResult(v *DeviceSelectionResult) *Run {
18215	s.DeviceSelectionResult = v
18216	return s
18217}
18218
18219// SetEventCount sets the EventCount field's value.
18220func (s *Run) SetEventCount(v int64) *Run {
18221	s.EventCount = &v
18222	return s
18223}
18224
18225// SetJobTimeoutMinutes sets the JobTimeoutMinutes field's value.
18226func (s *Run) SetJobTimeoutMinutes(v int64) *Run {
18227	s.JobTimeoutMinutes = &v
18228	return s
18229}
18230
18231// SetLocale sets the Locale field's value.
18232func (s *Run) SetLocale(v string) *Run {
18233	s.Locale = &v
18234	return s
18235}
18236
18237// SetLocation sets the Location field's value.
18238func (s *Run) SetLocation(v *Location) *Run {
18239	s.Location = v
18240	return s
18241}
18242
18243// SetMessage sets the Message field's value.
18244func (s *Run) SetMessage(v string) *Run {
18245	s.Message = &v
18246	return s
18247}
18248
18249// SetName sets the Name field's value.
18250func (s *Run) SetName(v string) *Run {
18251	s.Name = &v
18252	return s
18253}
18254
18255// SetNetworkProfile sets the NetworkProfile field's value.
18256func (s *Run) SetNetworkProfile(v *NetworkProfile) *Run {
18257	s.NetworkProfile = v
18258	return s
18259}
18260
18261// SetParsingResultUrl sets the ParsingResultUrl field's value.
18262func (s *Run) SetParsingResultUrl(v string) *Run {
18263	s.ParsingResultUrl = &v
18264	return s
18265}
18266
18267// SetPlatform sets the Platform field's value.
18268func (s *Run) SetPlatform(v string) *Run {
18269	s.Platform = &v
18270	return s
18271}
18272
18273// SetRadios sets the Radios field's value.
18274func (s *Run) SetRadios(v *Radios) *Run {
18275	s.Radios = v
18276	return s
18277}
18278
18279// SetResult sets the Result field's value.
18280func (s *Run) SetResult(v string) *Run {
18281	s.Result = &v
18282	return s
18283}
18284
18285// SetResultCode sets the ResultCode field's value.
18286func (s *Run) SetResultCode(v string) *Run {
18287	s.ResultCode = &v
18288	return s
18289}
18290
18291// SetSeed sets the Seed field's value.
18292func (s *Run) SetSeed(v int64) *Run {
18293	s.Seed = &v
18294	return s
18295}
18296
18297// SetSkipAppResign sets the SkipAppResign field's value.
18298func (s *Run) SetSkipAppResign(v bool) *Run {
18299	s.SkipAppResign = &v
18300	return s
18301}
18302
18303// SetStarted sets the Started field's value.
18304func (s *Run) SetStarted(v time.Time) *Run {
18305	s.Started = &v
18306	return s
18307}
18308
18309// SetStatus sets the Status field's value.
18310func (s *Run) SetStatus(v string) *Run {
18311	s.Status = &v
18312	return s
18313}
18314
18315// SetStopped sets the Stopped field's value.
18316func (s *Run) SetStopped(v time.Time) *Run {
18317	s.Stopped = &v
18318	return s
18319}
18320
18321// SetTestSpecArn sets the TestSpecArn field's value.
18322func (s *Run) SetTestSpecArn(v string) *Run {
18323	s.TestSpecArn = &v
18324	return s
18325}
18326
18327// SetTotalJobs sets the TotalJobs field's value.
18328func (s *Run) SetTotalJobs(v int64) *Run {
18329	s.TotalJobs = &v
18330	return s
18331}
18332
18333// SetType sets the Type field's value.
18334func (s *Run) SetType(v string) *Run {
18335	s.Type = &v
18336	return s
18337}
18338
18339// SetWebUrl sets the WebUrl field's value.
18340func (s *Run) SetWebUrl(v string) *Run {
18341	s.WebUrl = &v
18342	return s
18343}
18344
18345// Represents a sample of performance data.
18346type Sample struct {
18347	_ struct{} `type:"structure"`
18348
18349	// The sample's ARN.
18350	Arn *string `locationName:"arn" min:"32" type:"string"`
18351
18352	// The sample's type.
18353	//
18354	// Must be one of the following values:
18355	//
18356	//    * CPU: A CPU sample type. This is expressed as the app processing CPU
18357	//    time (including child processes) as reported by process, as a percentage.
18358	//
18359	//    * MEMORY: A memory usage sample type. This is expressed as the total proportional
18360	//    set size of an app process, in kilobytes.
18361	//
18362	//    * NATIVE_AVG_DRAWTIME
18363	//
18364	//    * NATIVE_FPS
18365	//
18366	//    * NATIVE_FRAMES
18367	//
18368	//    * NATIVE_MAX_DRAWTIME
18369	//
18370	//    * NATIVE_MIN_DRAWTIME
18371	//
18372	//    * OPENGL_AVG_DRAWTIME
18373	//
18374	//    * OPENGL_FPS
18375	//
18376	//    * OPENGL_FRAMES
18377	//
18378	//    * OPENGL_MAX_DRAWTIME
18379	//
18380	//    * OPENGL_MIN_DRAWTIME
18381	//
18382	//    * RX
18383	//
18384	//    * RX_RATE: The total number of bytes per second (TCP and UDP) that are
18385	//    sent, by app process.
18386	//
18387	//    * THREADS: A threads sample type. This is expressed as the total number
18388	//    of threads per app process.
18389	//
18390	//    * TX
18391	//
18392	//    * TX_RATE: The total number of bytes per second (TCP and UDP) that are
18393	//    received, by app process.
18394	Type *string `locationName:"type" type:"string" enum:"SampleType"`
18395
18396	// The presigned Amazon S3 URL that can be used with a GET request to download
18397	// the sample's file.
18398	Url *string `locationName:"url" type:"string"`
18399}
18400
18401// String returns the string representation.
18402//
18403// API parameter values that are decorated as "sensitive" in the API will not
18404// be included in the string output. The member name will be present, but the
18405// value will be replaced with "sensitive".
18406func (s Sample) String() string {
18407	return awsutil.Prettify(s)
18408}
18409
18410// GoString returns the string representation.
18411//
18412// API parameter values that are decorated as "sensitive" in the API will not
18413// be included in the string output. The member name will be present, but the
18414// value will be replaced with "sensitive".
18415func (s Sample) GoString() string {
18416	return s.String()
18417}
18418
18419// SetArn sets the Arn field's value.
18420func (s *Sample) SetArn(v string) *Sample {
18421	s.Arn = &v
18422	return s
18423}
18424
18425// SetType sets the Type field's value.
18426func (s *Sample) SetType(v string) *Sample {
18427	s.Type = &v
18428	return s
18429}
18430
18431// SetUrl sets the Url field's value.
18432func (s *Sample) SetUrl(v string) *Sample {
18433	s.Url = &v
18434	return s
18435}
18436
18437// Represents the settings for a run. Includes things like location, radio states,
18438// auxiliary apps, and network profiles.
18439type ScheduleRunConfiguration struct {
18440	_ struct{} `type:"structure"`
18441
18442	// A list of upload ARNs for app packages to be installed with your app.
18443	AuxiliaryApps []*string `locationName:"auxiliaryApps" type:"list"`
18444
18445	// Specifies the billing method for a test run: metered or unmetered. If the
18446	// parameter is not specified, the default value is metered.
18447	//
18448	// If you have purchased unmetered device slots, you must set this parameter
18449	// to unmetered to make use of them. Otherwise, your run counts against your
18450	// metered time.
18451	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
18452
18453	// Input CustomerArtifactPaths object for the scheduled run configuration.
18454	CustomerArtifactPaths *CustomerArtifactPaths `locationName:"customerArtifactPaths" type:"structure"`
18455
18456	// The ARN of the extra data for the run. The extra data is a .zip file that
18457	// AWS Device Farm extracts to external data for Android or the app's sandbox
18458	// for iOS.
18459	ExtraDataPackageArn *string `locationName:"extraDataPackageArn" min:"32" type:"string"`
18460
18461	// Information about the locale that is used for the run.
18462	Locale *string `locationName:"locale" type:"string"`
18463
18464	// Information about the location that is used for the run.
18465	Location *Location `locationName:"location" type:"structure"`
18466
18467	// Reserved for internal use.
18468	NetworkProfileArn *string `locationName:"networkProfileArn" min:"32" type:"string"`
18469
18470	// Information about the radio states for the run.
18471	Radios *Radios `locationName:"radios" type:"structure"`
18472
18473	// An array of ARNs for your VPC endpoint configurations.
18474	VpceConfigurationArns []*string `locationName:"vpceConfigurationArns" type:"list"`
18475}
18476
18477// String returns the string representation.
18478//
18479// API parameter values that are decorated as "sensitive" in the API will not
18480// be included in the string output. The member name will be present, but the
18481// value will be replaced with "sensitive".
18482func (s ScheduleRunConfiguration) String() string {
18483	return awsutil.Prettify(s)
18484}
18485
18486// GoString returns the string representation.
18487//
18488// API parameter values that are decorated as "sensitive" in the API will not
18489// be included in the string output. The member name will be present, but the
18490// value will be replaced with "sensitive".
18491func (s ScheduleRunConfiguration) GoString() string {
18492	return s.String()
18493}
18494
18495// Validate inspects the fields of the type to determine if they are valid.
18496func (s *ScheduleRunConfiguration) Validate() error {
18497	invalidParams := request.ErrInvalidParams{Context: "ScheduleRunConfiguration"}
18498	if s.ExtraDataPackageArn != nil && len(*s.ExtraDataPackageArn) < 32 {
18499		invalidParams.Add(request.NewErrParamMinLen("ExtraDataPackageArn", 32))
18500	}
18501	if s.NetworkProfileArn != nil && len(*s.NetworkProfileArn) < 32 {
18502		invalidParams.Add(request.NewErrParamMinLen("NetworkProfileArn", 32))
18503	}
18504	if s.Location != nil {
18505		if err := s.Location.Validate(); err != nil {
18506			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
18507		}
18508	}
18509
18510	if invalidParams.Len() > 0 {
18511		return invalidParams
18512	}
18513	return nil
18514}
18515
18516// SetAuxiliaryApps sets the AuxiliaryApps field's value.
18517func (s *ScheduleRunConfiguration) SetAuxiliaryApps(v []*string) *ScheduleRunConfiguration {
18518	s.AuxiliaryApps = v
18519	return s
18520}
18521
18522// SetBillingMethod sets the BillingMethod field's value.
18523func (s *ScheduleRunConfiguration) SetBillingMethod(v string) *ScheduleRunConfiguration {
18524	s.BillingMethod = &v
18525	return s
18526}
18527
18528// SetCustomerArtifactPaths sets the CustomerArtifactPaths field's value.
18529func (s *ScheduleRunConfiguration) SetCustomerArtifactPaths(v *CustomerArtifactPaths) *ScheduleRunConfiguration {
18530	s.CustomerArtifactPaths = v
18531	return s
18532}
18533
18534// SetExtraDataPackageArn sets the ExtraDataPackageArn field's value.
18535func (s *ScheduleRunConfiguration) SetExtraDataPackageArn(v string) *ScheduleRunConfiguration {
18536	s.ExtraDataPackageArn = &v
18537	return s
18538}
18539
18540// SetLocale sets the Locale field's value.
18541func (s *ScheduleRunConfiguration) SetLocale(v string) *ScheduleRunConfiguration {
18542	s.Locale = &v
18543	return s
18544}
18545
18546// SetLocation sets the Location field's value.
18547func (s *ScheduleRunConfiguration) SetLocation(v *Location) *ScheduleRunConfiguration {
18548	s.Location = v
18549	return s
18550}
18551
18552// SetNetworkProfileArn sets the NetworkProfileArn field's value.
18553func (s *ScheduleRunConfiguration) SetNetworkProfileArn(v string) *ScheduleRunConfiguration {
18554	s.NetworkProfileArn = &v
18555	return s
18556}
18557
18558// SetRadios sets the Radios field's value.
18559func (s *ScheduleRunConfiguration) SetRadios(v *Radios) *ScheduleRunConfiguration {
18560	s.Radios = v
18561	return s
18562}
18563
18564// SetVpceConfigurationArns sets the VpceConfigurationArns field's value.
18565func (s *ScheduleRunConfiguration) SetVpceConfigurationArns(v []*string) *ScheduleRunConfiguration {
18566	s.VpceConfigurationArns = v
18567	return s
18568}
18569
18570// Represents a request to the schedule run operation.
18571type ScheduleRunInput struct {
18572	_ struct{} `type:"structure"`
18573
18574	// The ARN of an application package to run tests against, created with CreateUpload.
18575	// See ListUploads.
18576	AppArn *string `locationName:"appArn" min:"32" type:"string"`
18577
18578	// Information about the settings for the run to be scheduled.
18579	Configuration *ScheduleRunConfiguration `locationName:"configuration" type:"structure"`
18580
18581	// The ARN of the device pool for the run to be scheduled.
18582	DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string"`
18583
18584	// The filter criteria used to dynamically select a set of devices for a test
18585	// run and the maximum number of devices to be included in the run.
18586	//
18587	// Either devicePoolArn or deviceSelectionConfiguration is required in a request.
18588	DeviceSelectionConfiguration *DeviceSelectionConfiguration `locationName:"deviceSelectionConfiguration" type:"structure"`
18589
18590	// Specifies configuration information about a test run, such as the execution
18591	// timeout (in minutes).
18592	ExecutionConfiguration *ExecutionConfiguration `locationName:"executionConfiguration" type:"structure"`
18593
18594	// The name for the run to be scheduled.
18595	Name *string `locationName:"name" type:"string"`
18596
18597	// The ARN of the project for the run to be scheduled.
18598	//
18599	// ProjectArn is a required field
18600	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
18601
18602	// Information about the test for the run to be scheduled.
18603	//
18604	// Test is a required field
18605	Test *ScheduleRunTest `locationName:"test" type:"structure" required:"true"`
18606}
18607
18608// String returns the string representation.
18609//
18610// API parameter values that are decorated as "sensitive" in the API will not
18611// be included in the string output. The member name will be present, but the
18612// value will be replaced with "sensitive".
18613func (s ScheduleRunInput) String() string {
18614	return awsutil.Prettify(s)
18615}
18616
18617// GoString returns the string representation.
18618//
18619// API parameter values that are decorated as "sensitive" in the API will not
18620// be included in the string output. The member name will be present, but the
18621// value will be replaced with "sensitive".
18622func (s ScheduleRunInput) GoString() string {
18623	return s.String()
18624}
18625
18626// Validate inspects the fields of the type to determine if they are valid.
18627func (s *ScheduleRunInput) Validate() error {
18628	invalidParams := request.ErrInvalidParams{Context: "ScheduleRunInput"}
18629	if s.AppArn != nil && len(*s.AppArn) < 32 {
18630		invalidParams.Add(request.NewErrParamMinLen("AppArn", 32))
18631	}
18632	if s.DevicePoolArn != nil && len(*s.DevicePoolArn) < 32 {
18633		invalidParams.Add(request.NewErrParamMinLen("DevicePoolArn", 32))
18634	}
18635	if s.ProjectArn == nil {
18636		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
18637	}
18638	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
18639		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
18640	}
18641	if s.Test == nil {
18642		invalidParams.Add(request.NewErrParamRequired("Test"))
18643	}
18644	if s.Configuration != nil {
18645		if err := s.Configuration.Validate(); err != nil {
18646			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
18647		}
18648	}
18649	if s.DeviceSelectionConfiguration != nil {
18650		if err := s.DeviceSelectionConfiguration.Validate(); err != nil {
18651			invalidParams.AddNested("DeviceSelectionConfiguration", err.(request.ErrInvalidParams))
18652		}
18653	}
18654	if s.Test != nil {
18655		if err := s.Test.Validate(); err != nil {
18656			invalidParams.AddNested("Test", err.(request.ErrInvalidParams))
18657		}
18658	}
18659
18660	if invalidParams.Len() > 0 {
18661		return invalidParams
18662	}
18663	return nil
18664}
18665
18666// SetAppArn sets the AppArn field's value.
18667func (s *ScheduleRunInput) SetAppArn(v string) *ScheduleRunInput {
18668	s.AppArn = &v
18669	return s
18670}
18671
18672// SetConfiguration sets the Configuration field's value.
18673func (s *ScheduleRunInput) SetConfiguration(v *ScheduleRunConfiguration) *ScheduleRunInput {
18674	s.Configuration = v
18675	return s
18676}
18677
18678// SetDevicePoolArn sets the DevicePoolArn field's value.
18679func (s *ScheduleRunInput) SetDevicePoolArn(v string) *ScheduleRunInput {
18680	s.DevicePoolArn = &v
18681	return s
18682}
18683
18684// SetDeviceSelectionConfiguration sets the DeviceSelectionConfiguration field's value.
18685func (s *ScheduleRunInput) SetDeviceSelectionConfiguration(v *DeviceSelectionConfiguration) *ScheduleRunInput {
18686	s.DeviceSelectionConfiguration = v
18687	return s
18688}
18689
18690// SetExecutionConfiguration sets the ExecutionConfiguration field's value.
18691func (s *ScheduleRunInput) SetExecutionConfiguration(v *ExecutionConfiguration) *ScheduleRunInput {
18692	s.ExecutionConfiguration = v
18693	return s
18694}
18695
18696// SetName sets the Name field's value.
18697func (s *ScheduleRunInput) SetName(v string) *ScheduleRunInput {
18698	s.Name = &v
18699	return s
18700}
18701
18702// SetProjectArn sets the ProjectArn field's value.
18703func (s *ScheduleRunInput) SetProjectArn(v string) *ScheduleRunInput {
18704	s.ProjectArn = &v
18705	return s
18706}
18707
18708// SetTest sets the Test field's value.
18709func (s *ScheduleRunInput) SetTest(v *ScheduleRunTest) *ScheduleRunInput {
18710	s.Test = v
18711	return s
18712}
18713
18714// Represents the result of a schedule run request.
18715type ScheduleRunOutput struct {
18716	_ struct{} `type:"structure"`
18717
18718	// Information about the scheduled run.
18719	Run *Run `locationName:"run" type:"structure"`
18720}
18721
18722// String returns the string representation.
18723//
18724// API parameter values that are decorated as "sensitive" in the API will not
18725// be included in the string output. The member name will be present, but the
18726// value will be replaced with "sensitive".
18727func (s ScheduleRunOutput) String() string {
18728	return awsutil.Prettify(s)
18729}
18730
18731// GoString returns the string representation.
18732//
18733// API parameter values that are decorated as "sensitive" in the API will not
18734// be included in the string output. The member name will be present, but the
18735// value will be replaced with "sensitive".
18736func (s ScheduleRunOutput) GoString() string {
18737	return s.String()
18738}
18739
18740// SetRun sets the Run field's value.
18741func (s *ScheduleRunOutput) SetRun(v *Run) *ScheduleRunOutput {
18742	s.Run = v
18743	return s
18744}
18745
18746// Represents test settings. This data structure is passed in as the test parameter
18747// to ScheduleRun. For an example of the JSON request syntax, see ScheduleRun.
18748type ScheduleRunTest struct {
18749	_ struct{} `type:"structure"`
18750
18751	// The test's filter.
18752	Filter *string `locationName:"filter" type:"string"`
18753
18754	// The test's parameters, such as test framework parameters and fixture settings.
18755	// Parameters are represented by name-value pairs of strings.
18756	//
18757	// For all tests:
18758	//
18759	//    * app_performance_monitoring: Performance monitoring is enabled by default.
18760	//    Set this parameter to false to disable it.
18761	//
18762	// For Calabash tests:
18763	//
18764	//    * profile: A cucumber profile (for example, my_profile_name).
18765	//
18766	//    * tags: You can limit execution to features or scenarios that have (or
18767	//    don't have) certain tags (for example, @smoke or @smoke,~@wip).
18768	//
18769	// For Appium tests (all types):
18770	//
18771	//    * appium_version: The Appium version. Currently supported values are 1.6.5
18772	//    (and later), latest, and default. latest runs the latest Appium version
18773	//    supported by Device Farm (1.9.1). For default, Device Farm selects a compatible
18774	//    version of Appium for the device. The current behavior is to run 1.7.2
18775	//    on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.
18776	//    This behavior is subject to change.
18777	//
18778	// For fuzz tests (Android only):
18779	//
18780	//    * event_count: The number of events, between 1 and 10000, that the UI
18781	//    fuzz test should perform.
18782	//
18783	//    * throttle: The time, in ms, between 0 and 1000, that the UI fuzz test
18784	//    should wait between events.
18785	//
18786	//    * seed: A seed to use for randomizing the UI fuzz test. Using the same
18787	//    seed value between tests ensures identical event sequences.
18788	//
18789	// For Explorer tests:
18790	//
18791	//    * username: A user name to use if the Explorer encounters a login form.
18792	//    If not supplied, no user name is inserted.
18793	//
18794	//    * password: A password to use if the Explorer encounters a login form.
18795	//    If not supplied, no password is inserted.
18796	//
18797	// For Instrumentation:
18798	//
18799	//    * filter: A test filter string. Examples: Running a single test case:
18800	//    com.android.abc.Test1 Running a single test: com.android.abc.Test1#smoke
18801	//    Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
18802	//
18803	// For XCTest and XCTestUI:
18804	//
18805	//    * filter: A test filter string. Examples: Running a single test class:
18806	//    LoginTests Running a multiple test classes: LoginTests,SmokeTests Running
18807	//    a single test: LoginTests/testValid Running multiple tests: LoginTests/testValid,LoginTests/testInvalid
18808	//
18809	// For UIAutomator:
18810	//
18811	//    * filter: A test filter string. Examples: Running a single test case:
18812	//    com.android.abc.Test1 Running a single test: com.android.abc.Test1#smoke
18813	//    Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
18814	Parameters map[string]*string `locationName:"parameters" type:"map"`
18815
18816	// The ARN of the uploaded test to be run.
18817	TestPackageArn *string `locationName:"testPackageArn" min:"32" type:"string"`
18818
18819	// The ARN of the YAML-formatted test specification.
18820	TestSpecArn *string `locationName:"testSpecArn" min:"32" type:"string"`
18821
18822	// The test's type.
18823	//
18824	// Must be one of the following values:
18825	//
18826	//    * BUILTIN_FUZZ
18827	//
18828	//    * BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android
18829	//    app, interacting with it and capturing screenshots at the same time.
18830	//
18831	//    * APPIUM_JAVA_JUNIT
18832	//
18833	//    * APPIUM_JAVA_TESTNG
18834	//
18835	//    * APPIUM_PYTHON
18836	//
18837	//    * APPIUM_NODE
18838	//
18839	//    * APPIUM_RUBY
18840	//
18841	//    * APPIUM_WEB_JAVA_JUNIT
18842	//
18843	//    * APPIUM_WEB_JAVA_TESTNG
18844	//
18845	//    * APPIUM_WEB_PYTHON
18846	//
18847	//    * APPIUM_WEB_NODE
18848	//
18849	//    * APPIUM_WEB_RUBY
18850	//
18851	//    * CALABASH
18852	//
18853	//    * INSTRUMENTATION
18854	//
18855	//    * UIAUTOMATION
18856	//
18857	//    * UIAUTOMATOR
18858	//
18859	//    * XCTEST
18860	//
18861	//    * XCTEST_UI
18862	//
18863	// Type is a required field
18864	Type *string `locationName:"type" type:"string" required:"true" enum:"TestType"`
18865}
18866
18867// String returns the string representation.
18868//
18869// API parameter values that are decorated as "sensitive" in the API will not
18870// be included in the string output. The member name will be present, but the
18871// value will be replaced with "sensitive".
18872func (s ScheduleRunTest) String() string {
18873	return awsutil.Prettify(s)
18874}
18875
18876// GoString returns the string representation.
18877//
18878// API parameter values that are decorated as "sensitive" in the API will not
18879// be included in the string output. The member name will be present, but the
18880// value will be replaced with "sensitive".
18881func (s ScheduleRunTest) GoString() string {
18882	return s.String()
18883}
18884
18885// Validate inspects the fields of the type to determine if they are valid.
18886func (s *ScheduleRunTest) Validate() error {
18887	invalidParams := request.ErrInvalidParams{Context: "ScheduleRunTest"}
18888	if s.TestPackageArn != nil && len(*s.TestPackageArn) < 32 {
18889		invalidParams.Add(request.NewErrParamMinLen("TestPackageArn", 32))
18890	}
18891	if s.TestSpecArn != nil && len(*s.TestSpecArn) < 32 {
18892		invalidParams.Add(request.NewErrParamMinLen("TestSpecArn", 32))
18893	}
18894	if s.Type == nil {
18895		invalidParams.Add(request.NewErrParamRequired("Type"))
18896	}
18897
18898	if invalidParams.Len() > 0 {
18899		return invalidParams
18900	}
18901	return nil
18902}
18903
18904// SetFilter sets the Filter field's value.
18905func (s *ScheduleRunTest) SetFilter(v string) *ScheduleRunTest {
18906	s.Filter = &v
18907	return s
18908}
18909
18910// SetParameters sets the Parameters field's value.
18911func (s *ScheduleRunTest) SetParameters(v map[string]*string) *ScheduleRunTest {
18912	s.Parameters = v
18913	return s
18914}
18915
18916// SetTestPackageArn sets the TestPackageArn field's value.
18917func (s *ScheduleRunTest) SetTestPackageArn(v string) *ScheduleRunTest {
18918	s.TestPackageArn = &v
18919	return s
18920}
18921
18922// SetTestSpecArn sets the TestSpecArn field's value.
18923func (s *ScheduleRunTest) SetTestSpecArn(v string) *ScheduleRunTest {
18924	s.TestSpecArn = &v
18925	return s
18926}
18927
18928// SetType sets the Type field's value.
18929func (s *ScheduleRunTest) SetType(v string) *ScheduleRunTest {
18930	s.Type = &v
18931	return s
18932}
18933
18934// There was a problem with the service account.
18935type ServiceAccountException struct {
18936	_            struct{}                  `type:"structure"`
18937	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18938
18939	// Any additional information about the exception.
18940	Message_ *string `locationName:"message" type:"string"`
18941}
18942
18943// String returns the string representation.
18944//
18945// API parameter values that are decorated as "sensitive" in the API will not
18946// be included in the string output. The member name will be present, but the
18947// value will be replaced with "sensitive".
18948func (s ServiceAccountException) String() string {
18949	return awsutil.Prettify(s)
18950}
18951
18952// GoString returns the string representation.
18953//
18954// API parameter values that are decorated as "sensitive" in the API will not
18955// be included in the string output. The member name will be present, but the
18956// value will be replaced with "sensitive".
18957func (s ServiceAccountException) GoString() string {
18958	return s.String()
18959}
18960
18961func newErrorServiceAccountException(v protocol.ResponseMetadata) error {
18962	return &ServiceAccountException{
18963		RespMetadata: v,
18964	}
18965}
18966
18967// Code returns the exception type name.
18968func (s *ServiceAccountException) Code() string {
18969	return "ServiceAccountException"
18970}
18971
18972// Message returns the exception's message.
18973func (s *ServiceAccountException) Message() string {
18974	if s.Message_ != nil {
18975		return *s.Message_
18976	}
18977	return ""
18978}
18979
18980// OrigErr always returns nil, satisfies awserr.Error interface.
18981func (s *ServiceAccountException) OrigErr() error {
18982	return nil
18983}
18984
18985func (s *ServiceAccountException) Error() string {
18986	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
18987}
18988
18989// Status code returns the HTTP status code for the request's response error.
18990func (s *ServiceAccountException) StatusCode() int {
18991	return s.RespMetadata.StatusCode
18992}
18993
18994// RequestID returns the service's response RequestID for request.
18995func (s *ServiceAccountException) RequestID() string {
18996	return s.RespMetadata.RequestID
18997}
18998
18999type StopJobInput struct {
19000	_ struct{} `type:"structure"`
19001
19002	// Represents the Amazon Resource Name (ARN) of the Device Farm job to stop.
19003	//
19004	// Arn is a required field
19005	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
19006}
19007
19008// String returns the string representation.
19009//
19010// API parameter values that are decorated as "sensitive" in the API will not
19011// be included in the string output. The member name will be present, but the
19012// value will be replaced with "sensitive".
19013func (s StopJobInput) String() string {
19014	return awsutil.Prettify(s)
19015}
19016
19017// GoString returns the string representation.
19018//
19019// API parameter values that are decorated as "sensitive" in the API will not
19020// be included in the string output. The member name will be present, but the
19021// value will be replaced with "sensitive".
19022func (s StopJobInput) GoString() string {
19023	return s.String()
19024}
19025
19026// Validate inspects the fields of the type to determine if they are valid.
19027func (s *StopJobInput) Validate() error {
19028	invalidParams := request.ErrInvalidParams{Context: "StopJobInput"}
19029	if s.Arn == nil {
19030		invalidParams.Add(request.NewErrParamRequired("Arn"))
19031	}
19032	if s.Arn != nil && len(*s.Arn) < 32 {
19033		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
19034	}
19035
19036	if invalidParams.Len() > 0 {
19037		return invalidParams
19038	}
19039	return nil
19040}
19041
19042// SetArn sets the Arn field's value.
19043func (s *StopJobInput) SetArn(v string) *StopJobInput {
19044	s.Arn = &v
19045	return s
19046}
19047
19048type StopJobOutput struct {
19049	_ struct{} `type:"structure"`
19050
19051	// The job that was stopped.
19052	Job *Job `locationName:"job" type:"structure"`
19053}
19054
19055// String returns the string representation.
19056//
19057// API parameter values that are decorated as "sensitive" in the API will not
19058// be included in the string output. The member name will be present, but the
19059// value will be replaced with "sensitive".
19060func (s StopJobOutput) String() string {
19061	return awsutil.Prettify(s)
19062}
19063
19064// GoString returns the string representation.
19065//
19066// API parameter values that are decorated as "sensitive" in the API will not
19067// be included in the string output. The member name will be present, but the
19068// value will be replaced with "sensitive".
19069func (s StopJobOutput) GoString() string {
19070	return s.String()
19071}
19072
19073// SetJob sets the Job field's value.
19074func (s *StopJobOutput) SetJob(v *Job) *StopJobOutput {
19075	s.Job = v
19076	return s
19077}
19078
19079// Represents the request to stop the remote access session.
19080type StopRemoteAccessSessionInput struct {
19081	_ struct{} `type:"structure"`
19082
19083	// The Amazon Resource Name (ARN) of the remote access session to stop.
19084	//
19085	// Arn is a required field
19086	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
19087}
19088
19089// String returns the string representation.
19090//
19091// API parameter values that are decorated as "sensitive" in the API will not
19092// be included in the string output. The member name will be present, but the
19093// value will be replaced with "sensitive".
19094func (s StopRemoteAccessSessionInput) String() string {
19095	return awsutil.Prettify(s)
19096}
19097
19098// GoString returns the string representation.
19099//
19100// API parameter values that are decorated as "sensitive" in the API will not
19101// be included in the string output. The member name will be present, but the
19102// value will be replaced with "sensitive".
19103func (s StopRemoteAccessSessionInput) GoString() string {
19104	return s.String()
19105}
19106
19107// Validate inspects the fields of the type to determine if they are valid.
19108func (s *StopRemoteAccessSessionInput) Validate() error {
19109	invalidParams := request.ErrInvalidParams{Context: "StopRemoteAccessSessionInput"}
19110	if s.Arn == nil {
19111		invalidParams.Add(request.NewErrParamRequired("Arn"))
19112	}
19113	if s.Arn != nil && len(*s.Arn) < 32 {
19114		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
19115	}
19116
19117	if invalidParams.Len() > 0 {
19118		return invalidParams
19119	}
19120	return nil
19121}
19122
19123// SetArn sets the Arn field's value.
19124func (s *StopRemoteAccessSessionInput) SetArn(v string) *StopRemoteAccessSessionInput {
19125	s.Arn = &v
19126	return s
19127}
19128
19129// Represents the response from the server that describes the remote access
19130// session when AWS Device Farm stops the session.
19131type StopRemoteAccessSessionOutput struct {
19132	_ struct{} `type:"structure"`
19133
19134	// A container that represents the metadata from the service about the remote
19135	// access session you are stopping.
19136	RemoteAccessSession *RemoteAccessSession `locationName:"remoteAccessSession" type:"structure"`
19137}
19138
19139// String returns the string representation.
19140//
19141// API parameter values that are decorated as "sensitive" in the API will not
19142// be included in the string output. The member name will be present, but the
19143// value will be replaced with "sensitive".
19144func (s StopRemoteAccessSessionOutput) String() string {
19145	return awsutil.Prettify(s)
19146}
19147
19148// GoString returns the string representation.
19149//
19150// API parameter values that are decorated as "sensitive" in the API will not
19151// be included in the string output. The member name will be present, but the
19152// value will be replaced with "sensitive".
19153func (s StopRemoteAccessSessionOutput) GoString() string {
19154	return s.String()
19155}
19156
19157// SetRemoteAccessSession sets the RemoteAccessSession field's value.
19158func (s *StopRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSession) *StopRemoteAccessSessionOutput {
19159	s.RemoteAccessSession = v
19160	return s
19161}
19162
19163// Represents the request to stop a specific run.
19164type StopRunInput struct {
19165	_ struct{} `type:"structure"`
19166
19167	// Represents the Amazon Resource Name (ARN) of the Device Farm run to stop.
19168	//
19169	// Arn is a required field
19170	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
19171}
19172
19173// String returns the string representation.
19174//
19175// API parameter values that are decorated as "sensitive" in the API will not
19176// be included in the string output. The member name will be present, but the
19177// value will be replaced with "sensitive".
19178func (s StopRunInput) String() string {
19179	return awsutil.Prettify(s)
19180}
19181
19182// GoString returns the string representation.
19183//
19184// API parameter values that are decorated as "sensitive" in the API will not
19185// be included in the string output. The member name will be present, but the
19186// value will be replaced with "sensitive".
19187func (s StopRunInput) GoString() string {
19188	return s.String()
19189}
19190
19191// Validate inspects the fields of the type to determine if they are valid.
19192func (s *StopRunInput) Validate() error {
19193	invalidParams := request.ErrInvalidParams{Context: "StopRunInput"}
19194	if s.Arn == nil {
19195		invalidParams.Add(request.NewErrParamRequired("Arn"))
19196	}
19197	if s.Arn != nil && len(*s.Arn) < 32 {
19198		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
19199	}
19200
19201	if invalidParams.Len() > 0 {
19202		return invalidParams
19203	}
19204	return nil
19205}
19206
19207// SetArn sets the Arn field's value.
19208func (s *StopRunInput) SetArn(v string) *StopRunInput {
19209	s.Arn = &v
19210	return s
19211}
19212
19213// Represents the results of your stop run attempt.
19214type StopRunOutput struct {
19215	_ struct{} `type:"structure"`
19216
19217	// The run that was stopped.
19218	Run *Run `locationName:"run" type:"structure"`
19219}
19220
19221// String returns the string representation.
19222//
19223// API parameter values that are decorated as "sensitive" in the API will not
19224// be included in the string output. The member name will be present, but the
19225// value will be replaced with "sensitive".
19226func (s StopRunOutput) String() string {
19227	return awsutil.Prettify(s)
19228}
19229
19230// GoString returns the string representation.
19231//
19232// API parameter values that are decorated as "sensitive" in the API will not
19233// be included in the string output. The member name will be present, but the
19234// value will be replaced with "sensitive".
19235func (s StopRunOutput) GoString() string {
19236	return s.String()
19237}
19238
19239// SetRun sets the Run field's value.
19240func (s *StopRunOutput) SetRun(v *Run) *StopRunOutput {
19241	s.Run = v
19242	return s
19243}
19244
19245// Represents a collection of one or more tests.
19246type Suite struct {
19247	_ struct{} `type:"structure"`
19248
19249	// The suite's ARN.
19250	Arn *string `locationName:"arn" min:"32" type:"string"`
19251
19252	// The suite's result counters.
19253	Counters *Counters `locationName:"counters" type:"structure"`
19254
19255	// When the suite was created.
19256	Created *time.Time `locationName:"created" type:"timestamp"`
19257
19258	// Represents the total (metered or unmetered) minutes used by the test suite.
19259	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
19260
19261	// A message about the suite's result.
19262	Message *string `locationName:"message" type:"string"`
19263
19264	// The suite's name.
19265	Name *string `locationName:"name" type:"string"`
19266
19267	// The suite's result.
19268	//
19269	// Allowed values include:
19270	//
19271	//    * PENDING
19272	//
19273	//    * PASSED
19274	//
19275	//    * WARNED
19276	//
19277	//    * FAILED
19278	//
19279	//    * SKIPPED
19280	//
19281	//    * ERRORED
19282	//
19283	//    * STOPPED
19284	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
19285
19286	// The suite's start time.
19287	Started *time.Time `locationName:"started" type:"timestamp"`
19288
19289	// The suite's status.
19290	//
19291	// Allowed values include:
19292	//
19293	//    * PENDING
19294	//
19295	//    * PENDING_CONCURRENCY
19296	//
19297	//    * PENDING_DEVICE
19298	//
19299	//    * PROCESSING
19300	//
19301	//    * SCHEDULING
19302	//
19303	//    * PREPARING
19304	//
19305	//    * RUNNING
19306	//
19307	//    * COMPLETED
19308	//
19309	//    * STOPPING
19310	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
19311
19312	// The suite's stop time.
19313	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
19314
19315	// The suite's type.
19316	//
19317	// Must be one of the following values:
19318	//
19319	//    * BUILTIN_FUZZ
19320	//
19321	//    * BUILTIN_EXPLORER Only available for Android; an app explorer that traverses
19322	//    an Android app, interacting with it and capturing screenshots at the same
19323	//    time.
19324	//
19325	//    * APPIUM_JAVA_JUNIT
19326	//
19327	//    * APPIUM_JAVA_TESTNG
19328	//
19329	//    * APPIUM_PYTHON
19330	//
19331	//    * APPIUM_NODE
19332	//
19333	//    * APPIUM_RUBY
19334	//
19335	//    * APPIUM_WEB_JAVA_JUNIT
19336	//
19337	//    * APPIUM_WEB_JAVA_TESTNG
19338	//
19339	//    * APPIUM_WEB_PYTHON
19340	//
19341	//    * APPIUM_WEB_NODE
19342	//
19343	//    * APPIUM_WEB_RUBY
19344	//
19345	//    * CALABASH
19346	//
19347	//    * INSTRUMENTATION
19348	//
19349	//    * UIAUTOMATION
19350	//
19351	//    * UIAUTOMATOR
19352	//
19353	//    * XCTEST
19354	//
19355	//    * XCTEST_UI
19356	Type *string `locationName:"type" type:"string" enum:"TestType"`
19357}
19358
19359// String returns the string representation.
19360//
19361// API parameter values that are decorated as "sensitive" in the API will not
19362// be included in the string output. The member name will be present, but the
19363// value will be replaced with "sensitive".
19364func (s Suite) String() string {
19365	return awsutil.Prettify(s)
19366}
19367
19368// GoString returns the string representation.
19369//
19370// API parameter values that are decorated as "sensitive" in the API will not
19371// be included in the string output. The member name will be present, but the
19372// value will be replaced with "sensitive".
19373func (s Suite) GoString() string {
19374	return s.String()
19375}
19376
19377// SetArn sets the Arn field's value.
19378func (s *Suite) SetArn(v string) *Suite {
19379	s.Arn = &v
19380	return s
19381}
19382
19383// SetCounters sets the Counters field's value.
19384func (s *Suite) SetCounters(v *Counters) *Suite {
19385	s.Counters = v
19386	return s
19387}
19388
19389// SetCreated sets the Created field's value.
19390func (s *Suite) SetCreated(v time.Time) *Suite {
19391	s.Created = &v
19392	return s
19393}
19394
19395// SetDeviceMinutes sets the DeviceMinutes field's value.
19396func (s *Suite) SetDeviceMinutes(v *DeviceMinutes) *Suite {
19397	s.DeviceMinutes = v
19398	return s
19399}
19400
19401// SetMessage sets the Message field's value.
19402func (s *Suite) SetMessage(v string) *Suite {
19403	s.Message = &v
19404	return s
19405}
19406
19407// SetName sets the Name field's value.
19408func (s *Suite) SetName(v string) *Suite {
19409	s.Name = &v
19410	return s
19411}
19412
19413// SetResult sets the Result field's value.
19414func (s *Suite) SetResult(v string) *Suite {
19415	s.Result = &v
19416	return s
19417}
19418
19419// SetStarted sets the Started field's value.
19420func (s *Suite) SetStarted(v time.Time) *Suite {
19421	s.Started = &v
19422	return s
19423}
19424
19425// SetStatus sets the Status field's value.
19426func (s *Suite) SetStatus(v string) *Suite {
19427	s.Status = &v
19428	return s
19429}
19430
19431// SetStopped sets the Stopped field's value.
19432func (s *Suite) SetStopped(v time.Time) *Suite {
19433	s.Stopped = &v
19434	return s
19435}
19436
19437// SetType sets the Type field's value.
19438func (s *Suite) SetType(v string) *Suite {
19439	s.Type = &v
19440	return s
19441}
19442
19443// The metadata that you apply to a resource to help you categorize and organize
19444// it. Each tag consists of a key and an optional value, both of which you define.
19445// Tag keys can have a maximum character length of 128 characters. Tag values
19446// can have a maximum length of 256 characters.
19447type Tag struct {
19448	_ struct{} `type:"structure"`
19449
19450	// One part of a key-value pair that makes up a tag. A key is a general label
19451	// that acts like a category for more specific tag values.
19452	//
19453	// Key is a required field
19454	Key *string `min:"1" type:"string" required:"true"`
19455
19456	// The optional part of a key-value pair that makes up a tag. A value acts as
19457	// a descriptor in a tag category (key).
19458	//
19459	// Value is a required field
19460	Value *string `type:"string" required:"true"`
19461}
19462
19463// String returns the string representation.
19464//
19465// API parameter values that are decorated as "sensitive" in the API will not
19466// be included in the string output. The member name will be present, but the
19467// value will be replaced with "sensitive".
19468func (s Tag) String() string {
19469	return awsutil.Prettify(s)
19470}
19471
19472// GoString returns the string representation.
19473//
19474// API parameter values that are decorated as "sensitive" in the API will not
19475// be included in the string output. The member name will be present, but the
19476// value will be replaced with "sensitive".
19477func (s Tag) GoString() string {
19478	return s.String()
19479}
19480
19481// Validate inspects the fields of the type to determine if they are valid.
19482func (s *Tag) Validate() error {
19483	invalidParams := request.ErrInvalidParams{Context: "Tag"}
19484	if s.Key == nil {
19485		invalidParams.Add(request.NewErrParamRequired("Key"))
19486	}
19487	if s.Key != nil && len(*s.Key) < 1 {
19488		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
19489	}
19490	if s.Value == nil {
19491		invalidParams.Add(request.NewErrParamRequired("Value"))
19492	}
19493
19494	if invalidParams.Len() > 0 {
19495		return invalidParams
19496	}
19497	return nil
19498}
19499
19500// SetKey sets the Key field's value.
19501func (s *Tag) SetKey(v string) *Tag {
19502	s.Key = &v
19503	return s
19504}
19505
19506// SetValue sets the Value field's value.
19507func (s *Tag) SetValue(v string) *Tag {
19508	s.Value = &v
19509	return s
19510}
19511
19512// The operation was not successful. Try again.
19513type TagOperationException struct {
19514	_            struct{}                  `type:"structure"`
19515	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19516
19517	Message_ *string `locationName:"message" type:"string"`
19518
19519	ResourceName *string `locationName:"resourceName" min:"32" type:"string"`
19520}
19521
19522// String returns the string representation.
19523//
19524// API parameter values that are decorated as "sensitive" in the API will not
19525// be included in the string output. The member name will be present, but the
19526// value will be replaced with "sensitive".
19527func (s TagOperationException) String() string {
19528	return awsutil.Prettify(s)
19529}
19530
19531// GoString returns the string representation.
19532//
19533// API parameter values that are decorated as "sensitive" in the API will not
19534// be included in the string output. The member name will be present, but the
19535// value will be replaced with "sensitive".
19536func (s TagOperationException) GoString() string {
19537	return s.String()
19538}
19539
19540func newErrorTagOperationException(v protocol.ResponseMetadata) error {
19541	return &TagOperationException{
19542		RespMetadata: v,
19543	}
19544}
19545
19546// Code returns the exception type name.
19547func (s *TagOperationException) Code() string {
19548	return "TagOperationException"
19549}
19550
19551// Message returns the exception's message.
19552func (s *TagOperationException) Message() string {
19553	if s.Message_ != nil {
19554		return *s.Message_
19555	}
19556	return ""
19557}
19558
19559// OrigErr always returns nil, satisfies awserr.Error interface.
19560func (s *TagOperationException) OrigErr() error {
19561	return nil
19562}
19563
19564func (s *TagOperationException) Error() string {
19565	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
19566}
19567
19568// Status code returns the HTTP status code for the request's response error.
19569func (s *TagOperationException) StatusCode() int {
19570	return s.RespMetadata.StatusCode
19571}
19572
19573// RequestID returns the service's response RequestID for request.
19574func (s *TagOperationException) RequestID() string {
19575	return s.RespMetadata.RequestID
19576}
19577
19578// The request doesn't comply with the AWS Identity and Access Management (IAM)
19579// tag policy. Correct your request and then retry it.
19580type TagPolicyException struct {
19581	_            struct{}                  `type:"structure"`
19582	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
19583
19584	Message_ *string `locationName:"message" type:"string"`
19585
19586	ResourceName *string `locationName:"resourceName" min:"32" type:"string"`
19587}
19588
19589// String returns the string representation.
19590//
19591// API parameter values that are decorated as "sensitive" in the API will not
19592// be included in the string output. The member name will be present, but the
19593// value will be replaced with "sensitive".
19594func (s TagPolicyException) String() string {
19595	return awsutil.Prettify(s)
19596}
19597
19598// GoString returns the string representation.
19599//
19600// API parameter values that are decorated as "sensitive" in the API will not
19601// be included in the string output. The member name will be present, but the
19602// value will be replaced with "sensitive".
19603func (s TagPolicyException) GoString() string {
19604	return s.String()
19605}
19606
19607func newErrorTagPolicyException(v protocol.ResponseMetadata) error {
19608	return &TagPolicyException{
19609		RespMetadata: v,
19610	}
19611}
19612
19613// Code returns the exception type name.
19614func (s *TagPolicyException) Code() string {
19615	return "TagPolicyException"
19616}
19617
19618// Message returns the exception's message.
19619func (s *TagPolicyException) Message() string {
19620	if s.Message_ != nil {
19621		return *s.Message_
19622	}
19623	return ""
19624}
19625
19626// OrigErr always returns nil, satisfies awserr.Error interface.
19627func (s *TagPolicyException) OrigErr() error {
19628	return nil
19629}
19630
19631func (s *TagPolicyException) Error() string {
19632	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
19633}
19634
19635// Status code returns the HTTP status code for the request's response error.
19636func (s *TagPolicyException) StatusCode() int {
19637	return s.RespMetadata.StatusCode
19638}
19639
19640// RequestID returns the service's response RequestID for request.
19641func (s *TagPolicyException) RequestID() string {
19642	return s.RespMetadata.RequestID
19643}
19644
19645type TagResourceInput struct {
19646	_ struct{} `type:"structure"`
19647
19648	// The Amazon Resource Name (ARN) of the resource or resources to which to add
19649	// tags. You can associate tags with the following Device Farm resources: PROJECT,
19650	// RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION, DEVICE_POOL,
19651	// DEVICE, and VPCE_CONFIGURATION.
19652	//
19653	// ResourceARN is a required field
19654	ResourceARN *string `min:"32" type:"string" required:"true"`
19655
19656	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
19657	// keys can have a maximum character length of 128 characters. Tag values can
19658	// have a maximum length of 256 characters.
19659	//
19660	// Tags is a required field
19661	Tags []*Tag `type:"list" required:"true"`
19662}
19663
19664// String returns the string representation.
19665//
19666// API parameter values that are decorated as "sensitive" in the API will not
19667// be included in the string output. The member name will be present, but the
19668// value will be replaced with "sensitive".
19669func (s TagResourceInput) String() string {
19670	return awsutil.Prettify(s)
19671}
19672
19673// GoString returns the string representation.
19674//
19675// API parameter values that are decorated as "sensitive" in the API will not
19676// be included in the string output. The member name will be present, but the
19677// value will be replaced with "sensitive".
19678func (s TagResourceInput) GoString() string {
19679	return s.String()
19680}
19681
19682// Validate inspects the fields of the type to determine if they are valid.
19683func (s *TagResourceInput) Validate() error {
19684	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
19685	if s.ResourceARN == nil {
19686		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
19687	}
19688	if s.ResourceARN != nil && len(*s.ResourceARN) < 32 {
19689		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 32))
19690	}
19691	if s.Tags == nil {
19692		invalidParams.Add(request.NewErrParamRequired("Tags"))
19693	}
19694	if s.Tags != nil {
19695		for i, v := range s.Tags {
19696			if v == nil {
19697				continue
19698			}
19699			if err := v.Validate(); err != nil {
19700				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
19701			}
19702		}
19703	}
19704
19705	if invalidParams.Len() > 0 {
19706		return invalidParams
19707	}
19708	return nil
19709}
19710
19711// SetResourceARN sets the ResourceARN field's value.
19712func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
19713	s.ResourceARN = &v
19714	return s
19715}
19716
19717// SetTags sets the Tags field's value.
19718func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
19719	s.Tags = v
19720	return s
19721}
19722
19723type TagResourceOutput struct {
19724	_ struct{} `type:"structure"`
19725}
19726
19727// String returns the string representation.
19728//
19729// API parameter values that are decorated as "sensitive" in the API will not
19730// be included in the string output. The member name will be present, but the
19731// value will be replaced with "sensitive".
19732func (s TagResourceOutput) String() string {
19733	return awsutil.Prettify(s)
19734}
19735
19736// GoString returns the string representation.
19737//
19738// API parameter values that are decorated as "sensitive" in the API will not
19739// be included in the string output. The member name will be present, but the
19740// value will be replaced with "sensitive".
19741func (s TagResourceOutput) GoString() string {
19742	return s.String()
19743}
19744
19745// Represents a condition that is evaluated.
19746type Test struct {
19747	_ struct{} `type:"structure"`
19748
19749	// The test's ARN.
19750	Arn *string `locationName:"arn" min:"32" type:"string"`
19751
19752	// The test's result counters.
19753	Counters *Counters `locationName:"counters" type:"structure"`
19754
19755	// When the test was created.
19756	Created *time.Time `locationName:"created" type:"timestamp"`
19757
19758	// Represents the total (metered or unmetered) minutes used by the test.
19759	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
19760
19761	// A message about the test's result.
19762	Message *string `locationName:"message" type:"string"`
19763
19764	// The test's name.
19765	Name *string `locationName:"name" type:"string"`
19766
19767	// The test's result.
19768	//
19769	// Allowed values include:
19770	//
19771	//    * PENDING
19772	//
19773	//    * PASSED
19774	//
19775	//    * WARNED
19776	//
19777	//    * FAILED
19778	//
19779	//    * SKIPPED
19780	//
19781	//    * ERRORED
19782	//
19783	//    * STOPPED
19784	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
19785
19786	// The test's start time.
19787	Started *time.Time `locationName:"started" type:"timestamp"`
19788
19789	// The test's status.
19790	//
19791	// Allowed values include:
19792	//
19793	//    * PENDING
19794	//
19795	//    * PENDING_CONCURRENCY
19796	//
19797	//    * PENDING_DEVICE
19798	//
19799	//    * PROCESSING
19800	//
19801	//    * SCHEDULING
19802	//
19803	//    * PREPARING
19804	//
19805	//    * RUNNING
19806	//
19807	//    * COMPLETED
19808	//
19809	//    * STOPPING
19810	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
19811
19812	// The test's stop time.
19813	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
19814
19815	// The test's type.
19816	//
19817	// Must be one of the following values:
19818	//
19819	//    * BUILTIN_FUZZ
19820	//
19821	//    * BUILTIN_EXPLORER For Android, an app explorer that traverses an Android
19822	//    app, interacting with it and capturing screenshots at the same time.
19823	//
19824	//    * APPIUM_JAVA_JUNIT
19825	//
19826	//    * APPIUM_JAVA_TESTNG
19827	//
19828	//    * APPIUM_PYTHON
19829	//
19830	//    * APPIUM_NODE
19831	//
19832	//    * APPIUM_RUBY
19833	//
19834	//    * APPIUM_WEB_JAVA_JUNIT
19835	//
19836	//    * APPIUM_WEB_JAVA_TESTNG
19837	//
19838	//    * APPIUM_WEB_PYTHON
19839	//
19840	//    * APPIUM_WEB_NODE
19841	//
19842	//    * APPIUM_WEB_RUBY
19843	//
19844	//    * CALABASH
19845	//
19846	//    * INSTRUMENTATION
19847	//
19848	//    * UIAUTOMATION
19849	//
19850	//    * UIAUTOMATOR
19851	//
19852	//    * XCTEST
19853	//
19854	//    * XCTEST_UI
19855	Type *string `locationName:"type" type:"string" enum:"TestType"`
19856}
19857
19858// String returns the string representation.
19859//
19860// API parameter values that are decorated as "sensitive" in the API will not
19861// be included in the string output. The member name will be present, but the
19862// value will be replaced with "sensitive".
19863func (s Test) String() string {
19864	return awsutil.Prettify(s)
19865}
19866
19867// GoString returns the string representation.
19868//
19869// API parameter values that are decorated as "sensitive" in the API will not
19870// be included in the string output. The member name will be present, but the
19871// value will be replaced with "sensitive".
19872func (s Test) GoString() string {
19873	return s.String()
19874}
19875
19876// SetArn sets the Arn field's value.
19877func (s *Test) SetArn(v string) *Test {
19878	s.Arn = &v
19879	return s
19880}
19881
19882// SetCounters sets the Counters field's value.
19883func (s *Test) SetCounters(v *Counters) *Test {
19884	s.Counters = v
19885	return s
19886}
19887
19888// SetCreated sets the Created field's value.
19889func (s *Test) SetCreated(v time.Time) *Test {
19890	s.Created = &v
19891	return s
19892}
19893
19894// SetDeviceMinutes sets the DeviceMinutes field's value.
19895func (s *Test) SetDeviceMinutes(v *DeviceMinutes) *Test {
19896	s.DeviceMinutes = v
19897	return s
19898}
19899
19900// SetMessage sets the Message field's value.
19901func (s *Test) SetMessage(v string) *Test {
19902	s.Message = &v
19903	return s
19904}
19905
19906// SetName sets the Name field's value.
19907func (s *Test) SetName(v string) *Test {
19908	s.Name = &v
19909	return s
19910}
19911
19912// SetResult sets the Result field's value.
19913func (s *Test) SetResult(v string) *Test {
19914	s.Result = &v
19915	return s
19916}
19917
19918// SetStarted sets the Started field's value.
19919func (s *Test) SetStarted(v time.Time) *Test {
19920	s.Started = &v
19921	return s
19922}
19923
19924// SetStatus sets the Status field's value.
19925func (s *Test) SetStatus(v string) *Test {
19926	s.Status = &v
19927	return s
19928}
19929
19930// SetStopped sets the Stopped field's value.
19931func (s *Test) SetStopped(v time.Time) *Test {
19932	s.Stopped = &v
19933	return s
19934}
19935
19936// SetType sets the Type field's value.
19937func (s *Test) SetType(v string) *Test {
19938	s.Type = &v
19939	return s
19940}
19941
19942// A Selenium testing project. Projects are used to collect and collate sessions.
19943type TestGridProject struct {
19944	_ struct{} `type:"structure"`
19945
19946	// The ARN for the project.
19947	Arn *string `locationName:"arn" min:"32" type:"string"`
19948
19949	// When the project was created.
19950	Created *time.Time `locationName:"created" type:"timestamp"`
19951
19952	// A human-readable description for the project.
19953	Description *string `locationName:"description" type:"string"`
19954
19955	// A human-readable name for the project.
19956	Name *string `locationName:"name" type:"string"`
19957
19958	// The VPC security groups and subnets that are attached to a project.
19959	VpcConfig *TestGridVpcConfig `locationName:"vpcConfig" type:"structure"`
19960}
19961
19962// String returns the string representation.
19963//
19964// API parameter values that are decorated as "sensitive" in the API will not
19965// be included in the string output. The member name will be present, but the
19966// value will be replaced with "sensitive".
19967func (s TestGridProject) String() string {
19968	return awsutil.Prettify(s)
19969}
19970
19971// GoString returns the string representation.
19972//
19973// API parameter values that are decorated as "sensitive" in the API will not
19974// be included in the string output. The member name will be present, but the
19975// value will be replaced with "sensitive".
19976func (s TestGridProject) GoString() string {
19977	return s.String()
19978}
19979
19980// SetArn sets the Arn field's value.
19981func (s *TestGridProject) SetArn(v string) *TestGridProject {
19982	s.Arn = &v
19983	return s
19984}
19985
19986// SetCreated sets the Created field's value.
19987func (s *TestGridProject) SetCreated(v time.Time) *TestGridProject {
19988	s.Created = &v
19989	return s
19990}
19991
19992// SetDescription sets the Description field's value.
19993func (s *TestGridProject) SetDescription(v string) *TestGridProject {
19994	s.Description = &v
19995	return s
19996}
19997
19998// SetName sets the Name field's value.
19999func (s *TestGridProject) SetName(v string) *TestGridProject {
20000	s.Name = &v
20001	return s
20002}
20003
20004// SetVpcConfig sets the VpcConfig field's value.
20005func (s *TestGridProject) SetVpcConfig(v *TestGridVpcConfig) *TestGridProject {
20006	s.VpcConfig = v
20007	return s
20008}
20009
20010// A TestGridSession is a single instance of a browser launched from the URL
20011// provided by a call to CreateTestGridUrl.
20012type TestGridSession struct {
20013	_ struct{} `type:"structure"`
20014
20015	// The ARN of the session.
20016	Arn *string `locationName:"arn" min:"32" type:"string"`
20017
20018	// The number of billed minutes that were used for this session.
20019	BillingMinutes *float64 `locationName:"billingMinutes" type:"double"`
20020
20021	// The time that the session was started.
20022	Created *time.Time `locationName:"created" type:"timestamp"`
20023
20024	// The time the session ended.
20025	Ended *time.Time `locationName:"ended" type:"timestamp"`
20026
20027	// A JSON object of options and parameters passed to the Selenium WebDriver.
20028	SeleniumProperties *string `locationName:"seleniumProperties" type:"string"`
20029
20030	// The state of the session.
20031	Status *string `locationName:"status" type:"string" enum:"TestGridSessionStatus"`
20032}
20033
20034// String returns the string representation.
20035//
20036// API parameter values that are decorated as "sensitive" in the API will not
20037// be included in the string output. The member name will be present, but the
20038// value will be replaced with "sensitive".
20039func (s TestGridSession) String() string {
20040	return awsutil.Prettify(s)
20041}
20042
20043// GoString returns the string representation.
20044//
20045// API parameter values that are decorated as "sensitive" in the API will not
20046// be included in the string output. The member name will be present, but the
20047// value will be replaced with "sensitive".
20048func (s TestGridSession) GoString() string {
20049	return s.String()
20050}
20051
20052// SetArn sets the Arn field's value.
20053func (s *TestGridSession) SetArn(v string) *TestGridSession {
20054	s.Arn = &v
20055	return s
20056}
20057
20058// SetBillingMinutes sets the BillingMinutes field's value.
20059func (s *TestGridSession) SetBillingMinutes(v float64) *TestGridSession {
20060	s.BillingMinutes = &v
20061	return s
20062}
20063
20064// SetCreated sets the Created field's value.
20065func (s *TestGridSession) SetCreated(v time.Time) *TestGridSession {
20066	s.Created = &v
20067	return s
20068}
20069
20070// SetEnded sets the Ended field's value.
20071func (s *TestGridSession) SetEnded(v time.Time) *TestGridSession {
20072	s.Ended = &v
20073	return s
20074}
20075
20076// SetSeleniumProperties sets the SeleniumProperties field's value.
20077func (s *TestGridSession) SetSeleniumProperties(v string) *TestGridSession {
20078	s.SeleniumProperties = &v
20079	return s
20080}
20081
20082// SetStatus sets the Status field's value.
20083func (s *TestGridSession) SetStatus(v string) *TestGridSession {
20084	s.Status = &v
20085	return s
20086}
20087
20088// An action taken by a TestGridSession browser instance.
20089type TestGridSessionAction struct {
20090	_ struct{} `type:"structure"`
20091
20092	// The action taken by the session.
20093	Action *string `locationName:"action" type:"string"`
20094
20095	// The time, in milliseconds, that the action took to complete in the browser.
20096	Duration *int64 `locationName:"duration" type:"long"`
20097
20098	// HTTP method that the browser used to make the request.
20099	RequestMethod *string `locationName:"requestMethod" type:"string"`
20100
20101	// The time that the session invoked the action.
20102	Started *time.Time `locationName:"started" type:"timestamp"`
20103
20104	// HTTP status code returned to the browser when the action was taken.
20105	StatusCode *string `locationName:"statusCode" type:"string"`
20106}
20107
20108// String returns the string representation.
20109//
20110// API parameter values that are decorated as "sensitive" in the API will not
20111// be included in the string output. The member name will be present, but the
20112// value will be replaced with "sensitive".
20113func (s TestGridSessionAction) String() string {
20114	return awsutil.Prettify(s)
20115}
20116
20117// GoString returns the string representation.
20118//
20119// API parameter values that are decorated as "sensitive" in the API will not
20120// be included in the string output. The member name will be present, but the
20121// value will be replaced with "sensitive".
20122func (s TestGridSessionAction) GoString() string {
20123	return s.String()
20124}
20125
20126// SetAction sets the Action field's value.
20127func (s *TestGridSessionAction) SetAction(v string) *TestGridSessionAction {
20128	s.Action = &v
20129	return s
20130}
20131
20132// SetDuration sets the Duration field's value.
20133func (s *TestGridSessionAction) SetDuration(v int64) *TestGridSessionAction {
20134	s.Duration = &v
20135	return s
20136}
20137
20138// SetRequestMethod sets the RequestMethod field's value.
20139func (s *TestGridSessionAction) SetRequestMethod(v string) *TestGridSessionAction {
20140	s.RequestMethod = &v
20141	return s
20142}
20143
20144// SetStarted sets the Started field's value.
20145func (s *TestGridSessionAction) SetStarted(v time.Time) *TestGridSessionAction {
20146	s.Started = &v
20147	return s
20148}
20149
20150// SetStatusCode sets the StatusCode field's value.
20151func (s *TestGridSessionAction) SetStatusCode(v string) *TestGridSessionAction {
20152	s.StatusCode = &v
20153	return s
20154}
20155
20156// Artifacts are video and other files that are produced in the process of running
20157// a browser in an automated context.
20158//
20159// Video elements might be broken up into multiple artifacts as they grow in
20160// size during creation.
20161type TestGridSessionArtifact struct {
20162	_ struct{} `type:"structure"`
20163
20164	// The file name of the artifact.
20165	Filename *string `locationName:"filename" type:"string"`
20166
20167	// The kind of artifact.
20168	Type *string `locationName:"type" type:"string" enum:"TestGridSessionArtifactType"`
20169
20170	// A semi-stable URL to the content of the object.
20171	//
20172	// Url is a sensitive parameter and its value will be
20173	// replaced with "sensitive" in string returned by TestGridSessionArtifact's
20174	// String and GoString methods.
20175	Url *string `locationName:"url" type:"string" sensitive:"true"`
20176}
20177
20178// String returns the string representation.
20179//
20180// API parameter values that are decorated as "sensitive" in the API will not
20181// be included in the string output. The member name will be present, but the
20182// value will be replaced with "sensitive".
20183func (s TestGridSessionArtifact) String() string {
20184	return awsutil.Prettify(s)
20185}
20186
20187// GoString returns the string representation.
20188//
20189// API parameter values that are decorated as "sensitive" in the API will not
20190// be included in the string output. The member name will be present, but the
20191// value will be replaced with "sensitive".
20192func (s TestGridSessionArtifact) GoString() string {
20193	return s.String()
20194}
20195
20196// SetFilename sets the Filename field's value.
20197func (s *TestGridSessionArtifact) SetFilename(v string) *TestGridSessionArtifact {
20198	s.Filename = &v
20199	return s
20200}
20201
20202// SetType sets the Type field's value.
20203func (s *TestGridSessionArtifact) SetType(v string) *TestGridSessionArtifact {
20204	s.Type = &v
20205	return s
20206}
20207
20208// SetUrl sets the Url field's value.
20209func (s *TestGridSessionArtifact) SetUrl(v string) *TestGridSessionArtifact {
20210	s.Url = &v
20211	return s
20212}
20213
20214// The VPC security groups and subnets that are attached to a project.
20215type TestGridVpcConfig struct {
20216	_ struct{} `type:"structure"`
20217
20218	// A list of VPC security group IDs in your Amazon VPC.
20219	//
20220	// SecurityGroupIds is a required field
20221	SecurityGroupIds []*string `locationName:"securityGroupIds" min:"1" type:"list" required:"true"`
20222
20223	// A list of VPC subnet IDs in your Amazon VPC.
20224	//
20225	// SubnetIds is a required field
20226	SubnetIds []*string `locationName:"subnetIds" min:"1" type:"list" required:"true"`
20227
20228	// The ID of the Amazon VPC.
20229	//
20230	// VpcId is a required field
20231	VpcId *string `locationName:"vpcId" min:"1" type:"string" required:"true"`
20232}
20233
20234// String returns the string representation.
20235//
20236// API parameter values that are decorated as "sensitive" in the API will not
20237// be included in the string output. The member name will be present, but the
20238// value will be replaced with "sensitive".
20239func (s TestGridVpcConfig) String() string {
20240	return awsutil.Prettify(s)
20241}
20242
20243// GoString returns the string representation.
20244//
20245// API parameter values that are decorated as "sensitive" in the API will not
20246// be included in the string output. The member name will be present, but the
20247// value will be replaced with "sensitive".
20248func (s TestGridVpcConfig) GoString() string {
20249	return s.String()
20250}
20251
20252// Validate inspects the fields of the type to determine if they are valid.
20253func (s *TestGridVpcConfig) Validate() error {
20254	invalidParams := request.ErrInvalidParams{Context: "TestGridVpcConfig"}
20255	if s.SecurityGroupIds == nil {
20256		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
20257	}
20258	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
20259		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
20260	}
20261	if s.SubnetIds == nil {
20262		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
20263	}
20264	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
20265		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
20266	}
20267	if s.VpcId == nil {
20268		invalidParams.Add(request.NewErrParamRequired("VpcId"))
20269	}
20270	if s.VpcId != nil && len(*s.VpcId) < 1 {
20271		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
20272	}
20273
20274	if invalidParams.Len() > 0 {
20275		return invalidParams
20276	}
20277	return nil
20278}
20279
20280// SetSecurityGroupIds sets the SecurityGroupIds field's value.
20281func (s *TestGridVpcConfig) SetSecurityGroupIds(v []*string) *TestGridVpcConfig {
20282	s.SecurityGroupIds = v
20283	return s
20284}
20285
20286// SetSubnetIds sets the SubnetIds field's value.
20287func (s *TestGridVpcConfig) SetSubnetIds(v []*string) *TestGridVpcConfig {
20288	s.SubnetIds = v
20289	return s
20290}
20291
20292// SetVpcId sets the VpcId field's value.
20293func (s *TestGridVpcConfig) SetVpcId(v string) *TestGridVpcConfig {
20294	s.VpcId = &v
20295	return s
20296}
20297
20298// The list of tags on the repository is over the limit. The maximum number
20299// of tags that can be applied to a repository is 50.
20300type TooManyTagsException struct {
20301	_            struct{}                  `type:"structure"`
20302	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
20303
20304	Message_ *string `locationName:"message" type:"string"`
20305
20306	ResourceName *string `locationName:"resourceName" min:"32" type:"string"`
20307}
20308
20309// String returns the string representation.
20310//
20311// API parameter values that are decorated as "sensitive" in the API will not
20312// be included in the string output. The member name will be present, but the
20313// value will be replaced with "sensitive".
20314func (s TooManyTagsException) String() string {
20315	return awsutil.Prettify(s)
20316}
20317
20318// GoString returns the string representation.
20319//
20320// API parameter values that are decorated as "sensitive" in the API will not
20321// be included in the string output. The member name will be present, but the
20322// value will be replaced with "sensitive".
20323func (s TooManyTagsException) GoString() string {
20324	return s.String()
20325}
20326
20327func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
20328	return &TooManyTagsException{
20329		RespMetadata: v,
20330	}
20331}
20332
20333// Code returns the exception type name.
20334func (s *TooManyTagsException) Code() string {
20335	return "TooManyTagsException"
20336}
20337
20338// Message returns the exception's message.
20339func (s *TooManyTagsException) Message() string {
20340	if s.Message_ != nil {
20341		return *s.Message_
20342	}
20343	return ""
20344}
20345
20346// OrigErr always returns nil, satisfies awserr.Error interface.
20347func (s *TooManyTagsException) OrigErr() error {
20348	return nil
20349}
20350
20351func (s *TooManyTagsException) Error() string {
20352	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
20353}
20354
20355// Status code returns the HTTP status code for the request's response error.
20356func (s *TooManyTagsException) StatusCode() int {
20357	return s.RespMetadata.StatusCode
20358}
20359
20360// RequestID returns the service's response RequestID for request.
20361func (s *TooManyTagsException) RequestID() string {
20362	return s.RespMetadata.RequestID
20363}
20364
20365// Represents information about free trial device minutes for an AWS account.
20366type TrialMinutes struct {
20367	_ struct{} `type:"structure"`
20368
20369	// The number of free trial minutes remaining in the account.
20370	Remaining *float64 `locationName:"remaining" type:"double"`
20371
20372	// The total number of free trial minutes that the account started with.
20373	Total *float64 `locationName:"total" type:"double"`
20374}
20375
20376// String returns the string representation.
20377//
20378// API parameter values that are decorated as "sensitive" in the API will not
20379// be included in the string output. The member name will be present, but the
20380// value will be replaced with "sensitive".
20381func (s TrialMinutes) String() string {
20382	return awsutil.Prettify(s)
20383}
20384
20385// GoString returns the string representation.
20386//
20387// API parameter values that are decorated as "sensitive" in the API will not
20388// be included in the string output. The member name will be present, but the
20389// value will be replaced with "sensitive".
20390func (s TrialMinutes) GoString() string {
20391	return s.String()
20392}
20393
20394// SetRemaining sets the Remaining field's value.
20395func (s *TrialMinutes) SetRemaining(v float64) *TrialMinutes {
20396	s.Remaining = &v
20397	return s
20398}
20399
20400// SetTotal sets the Total field's value.
20401func (s *TrialMinutes) SetTotal(v float64) *TrialMinutes {
20402	s.Total = &v
20403	return s
20404}
20405
20406// A collection of one or more problems, grouped by their result.
20407type UniqueProblem struct {
20408	_ struct{} `type:"structure"`
20409
20410	// A message about the unique problems' result.
20411	Message *string `locationName:"message" type:"string"`
20412
20413	// Information about the problems.
20414	Problems []*Problem `locationName:"problems" type:"list"`
20415}
20416
20417// String returns the string representation.
20418//
20419// API parameter values that are decorated as "sensitive" in the API will not
20420// be included in the string output. The member name will be present, but the
20421// value will be replaced with "sensitive".
20422func (s UniqueProblem) String() string {
20423	return awsutil.Prettify(s)
20424}
20425
20426// GoString returns the string representation.
20427//
20428// API parameter values that are decorated as "sensitive" in the API will not
20429// be included in the string output. The member name will be present, but the
20430// value will be replaced with "sensitive".
20431func (s UniqueProblem) GoString() string {
20432	return s.String()
20433}
20434
20435// SetMessage sets the Message field's value.
20436func (s *UniqueProblem) SetMessage(v string) *UniqueProblem {
20437	s.Message = &v
20438	return s
20439}
20440
20441// SetProblems sets the Problems field's value.
20442func (s *UniqueProblem) SetProblems(v []*Problem) *UniqueProblem {
20443	s.Problems = v
20444	return s
20445}
20446
20447type UntagResourceInput struct {
20448	_ struct{} `type:"structure"`
20449
20450	// The Amazon Resource Name (ARN) of the resource or resources from which to
20451	// delete tags. You can associate tags with the following Device Farm resources:
20452	// PROJECT, RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION,
20453	// DEVICE_POOL, DEVICE, and VPCE_CONFIGURATION.
20454	//
20455	// ResourceARN is a required field
20456	ResourceARN *string `min:"32" type:"string" required:"true"`
20457
20458	// The keys of the tags to be removed.
20459	//
20460	// TagKeys is a required field
20461	TagKeys []*string `type:"list" required:"true"`
20462}
20463
20464// String returns the string representation.
20465//
20466// API parameter values that are decorated as "sensitive" in the API will not
20467// be included in the string output. The member name will be present, but the
20468// value will be replaced with "sensitive".
20469func (s UntagResourceInput) String() string {
20470	return awsutil.Prettify(s)
20471}
20472
20473// GoString returns the string representation.
20474//
20475// API parameter values that are decorated as "sensitive" in the API will not
20476// be included in the string output. The member name will be present, but the
20477// value will be replaced with "sensitive".
20478func (s UntagResourceInput) GoString() string {
20479	return s.String()
20480}
20481
20482// Validate inspects the fields of the type to determine if they are valid.
20483func (s *UntagResourceInput) Validate() error {
20484	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
20485	if s.ResourceARN == nil {
20486		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
20487	}
20488	if s.ResourceARN != nil && len(*s.ResourceARN) < 32 {
20489		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 32))
20490	}
20491	if s.TagKeys == nil {
20492		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
20493	}
20494
20495	if invalidParams.Len() > 0 {
20496		return invalidParams
20497	}
20498	return nil
20499}
20500
20501// SetResourceARN sets the ResourceARN field's value.
20502func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
20503	s.ResourceARN = &v
20504	return s
20505}
20506
20507// SetTagKeys sets the TagKeys field's value.
20508func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
20509	s.TagKeys = v
20510	return s
20511}
20512
20513type UntagResourceOutput struct {
20514	_ struct{} `type:"structure"`
20515}
20516
20517// String returns the string representation.
20518//
20519// API parameter values that are decorated as "sensitive" in the API will not
20520// be included in the string output. The member name will be present, but the
20521// value will be replaced with "sensitive".
20522func (s UntagResourceOutput) String() string {
20523	return awsutil.Prettify(s)
20524}
20525
20526// GoString returns the string representation.
20527//
20528// API parameter values that are decorated as "sensitive" in the API will not
20529// be included in the string output. The member name will be present, but the
20530// value will be replaced with "sensitive".
20531func (s UntagResourceOutput) GoString() string {
20532	return s.String()
20533}
20534
20535type UpdateDeviceInstanceInput struct {
20536	_ struct{} `type:"structure"`
20537
20538	// The Amazon Resource Name (ARN) of the device instance.
20539	//
20540	// Arn is a required field
20541	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
20542
20543	// An array of strings that you want to associate with the device instance.
20544	Labels []*string `locationName:"labels" type:"list"`
20545
20546	// The ARN of the profile that you want to associate with the device instance.
20547	ProfileArn *string `locationName:"profileArn" min:"32" type:"string"`
20548}
20549
20550// String returns the string representation.
20551//
20552// API parameter values that are decorated as "sensitive" in the API will not
20553// be included in the string output. The member name will be present, but the
20554// value will be replaced with "sensitive".
20555func (s UpdateDeviceInstanceInput) String() string {
20556	return awsutil.Prettify(s)
20557}
20558
20559// GoString returns the string representation.
20560//
20561// API parameter values that are decorated as "sensitive" in the API will not
20562// be included in the string output. The member name will be present, but the
20563// value will be replaced with "sensitive".
20564func (s UpdateDeviceInstanceInput) GoString() string {
20565	return s.String()
20566}
20567
20568// Validate inspects the fields of the type to determine if they are valid.
20569func (s *UpdateDeviceInstanceInput) Validate() error {
20570	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceInstanceInput"}
20571	if s.Arn == nil {
20572		invalidParams.Add(request.NewErrParamRequired("Arn"))
20573	}
20574	if s.Arn != nil && len(*s.Arn) < 32 {
20575		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
20576	}
20577	if s.ProfileArn != nil && len(*s.ProfileArn) < 32 {
20578		invalidParams.Add(request.NewErrParamMinLen("ProfileArn", 32))
20579	}
20580
20581	if invalidParams.Len() > 0 {
20582		return invalidParams
20583	}
20584	return nil
20585}
20586
20587// SetArn sets the Arn field's value.
20588func (s *UpdateDeviceInstanceInput) SetArn(v string) *UpdateDeviceInstanceInput {
20589	s.Arn = &v
20590	return s
20591}
20592
20593// SetLabels sets the Labels field's value.
20594func (s *UpdateDeviceInstanceInput) SetLabels(v []*string) *UpdateDeviceInstanceInput {
20595	s.Labels = v
20596	return s
20597}
20598
20599// SetProfileArn sets the ProfileArn field's value.
20600func (s *UpdateDeviceInstanceInput) SetProfileArn(v string) *UpdateDeviceInstanceInput {
20601	s.ProfileArn = &v
20602	return s
20603}
20604
20605type UpdateDeviceInstanceOutput struct {
20606	_ struct{} `type:"structure"`
20607
20608	// An object that contains information about your device instance.
20609	DeviceInstance *DeviceInstance `locationName:"deviceInstance" type:"structure"`
20610}
20611
20612// String returns the string representation.
20613//
20614// API parameter values that are decorated as "sensitive" in the API will not
20615// be included in the string output. The member name will be present, but the
20616// value will be replaced with "sensitive".
20617func (s UpdateDeviceInstanceOutput) String() string {
20618	return awsutil.Prettify(s)
20619}
20620
20621// GoString returns the string representation.
20622//
20623// API parameter values that are decorated as "sensitive" in the API will not
20624// be included in the string output. The member name will be present, but the
20625// value will be replaced with "sensitive".
20626func (s UpdateDeviceInstanceOutput) GoString() string {
20627	return s.String()
20628}
20629
20630// SetDeviceInstance sets the DeviceInstance field's value.
20631func (s *UpdateDeviceInstanceOutput) SetDeviceInstance(v *DeviceInstance) *UpdateDeviceInstanceOutput {
20632	s.DeviceInstance = v
20633	return s
20634}
20635
20636// Represents a request to the update device pool operation.
20637type UpdateDevicePoolInput struct {
20638	_ struct{} `type:"structure"`
20639
20640	// The Amazon Resource Name (ARN) of the Device Farm device pool to update.
20641	//
20642	// Arn is a required field
20643	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
20644
20645	// Sets whether the maxDevices parameter applies to your device pool. If you
20646	// set this parameter to true, the maxDevices parameter does not apply, and
20647	// Device Farm does not limit the number of devices that it adds to your device
20648	// pool. In this case, Device Farm adds all available devices that meet the
20649	// criteria specified in the rules parameter.
20650	//
20651	// If you use this parameter in your request, you cannot use the maxDevices
20652	// parameter in the same request.
20653	ClearMaxDevices *bool `locationName:"clearMaxDevices" type:"boolean"`
20654
20655	// A description of the device pool to update.
20656	Description *string `locationName:"description" type:"string"`
20657
20658	// The number of devices that Device Farm can add to your device pool. Device
20659	// Farm adds devices that are available and that meet the criteria that you
20660	// assign for the rules parameter. Depending on how many devices meet these
20661	// constraints, your device pool might contain fewer devices than the value
20662	// for this parameter.
20663	//
20664	// By specifying the maximum number of devices, you can control the costs that
20665	// you incur by running tests.
20666	//
20667	// If you use this parameter in your request, you cannot use the clearMaxDevices
20668	// parameter in the same request.
20669	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
20670
20671	// A string that represents the name of the device pool to update.
20672	Name *string `locationName:"name" type:"string"`
20673
20674	// Represents the rules to modify for the device pool. Updating rules is optional.
20675	// If you update rules for your request, the update replaces the existing rules.
20676	Rules []*Rule `locationName:"rules" type:"list"`
20677}
20678
20679// String returns the string representation.
20680//
20681// API parameter values that are decorated as "sensitive" in the API will not
20682// be included in the string output. The member name will be present, but the
20683// value will be replaced with "sensitive".
20684func (s UpdateDevicePoolInput) String() string {
20685	return awsutil.Prettify(s)
20686}
20687
20688// GoString returns the string representation.
20689//
20690// API parameter values that are decorated as "sensitive" in the API will not
20691// be included in the string output. The member name will be present, but the
20692// value will be replaced with "sensitive".
20693func (s UpdateDevicePoolInput) GoString() string {
20694	return s.String()
20695}
20696
20697// Validate inspects the fields of the type to determine if they are valid.
20698func (s *UpdateDevicePoolInput) Validate() error {
20699	invalidParams := request.ErrInvalidParams{Context: "UpdateDevicePoolInput"}
20700	if s.Arn == nil {
20701		invalidParams.Add(request.NewErrParamRequired("Arn"))
20702	}
20703	if s.Arn != nil && len(*s.Arn) < 32 {
20704		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
20705	}
20706
20707	if invalidParams.Len() > 0 {
20708		return invalidParams
20709	}
20710	return nil
20711}
20712
20713// SetArn sets the Arn field's value.
20714func (s *UpdateDevicePoolInput) SetArn(v string) *UpdateDevicePoolInput {
20715	s.Arn = &v
20716	return s
20717}
20718
20719// SetClearMaxDevices sets the ClearMaxDevices field's value.
20720func (s *UpdateDevicePoolInput) SetClearMaxDevices(v bool) *UpdateDevicePoolInput {
20721	s.ClearMaxDevices = &v
20722	return s
20723}
20724
20725// SetDescription sets the Description field's value.
20726func (s *UpdateDevicePoolInput) SetDescription(v string) *UpdateDevicePoolInput {
20727	s.Description = &v
20728	return s
20729}
20730
20731// SetMaxDevices sets the MaxDevices field's value.
20732func (s *UpdateDevicePoolInput) SetMaxDevices(v int64) *UpdateDevicePoolInput {
20733	s.MaxDevices = &v
20734	return s
20735}
20736
20737// SetName sets the Name field's value.
20738func (s *UpdateDevicePoolInput) SetName(v string) *UpdateDevicePoolInput {
20739	s.Name = &v
20740	return s
20741}
20742
20743// SetRules sets the Rules field's value.
20744func (s *UpdateDevicePoolInput) SetRules(v []*Rule) *UpdateDevicePoolInput {
20745	s.Rules = v
20746	return s
20747}
20748
20749// Represents the result of an update device pool request.
20750type UpdateDevicePoolOutput struct {
20751	_ struct{} `type:"structure"`
20752
20753	// The device pool you just updated.
20754	DevicePool *DevicePool `locationName:"devicePool" type:"structure"`
20755}
20756
20757// String returns the string representation.
20758//
20759// API parameter values that are decorated as "sensitive" in the API will not
20760// be included in the string output. The member name will be present, but the
20761// value will be replaced with "sensitive".
20762func (s UpdateDevicePoolOutput) String() string {
20763	return awsutil.Prettify(s)
20764}
20765
20766// GoString returns the string representation.
20767//
20768// API parameter values that are decorated as "sensitive" in the API will not
20769// be included in the string output. The member name will be present, but the
20770// value will be replaced with "sensitive".
20771func (s UpdateDevicePoolOutput) GoString() string {
20772	return s.String()
20773}
20774
20775// SetDevicePool sets the DevicePool field's value.
20776func (s *UpdateDevicePoolOutput) SetDevicePool(v *DevicePool) *UpdateDevicePoolOutput {
20777	s.DevicePool = v
20778	return s
20779}
20780
20781type UpdateInstanceProfileInput struct {
20782	_ struct{} `type:"structure"`
20783
20784	// The Amazon Resource Name (ARN) of the instance profile.
20785	//
20786	// Arn is a required field
20787	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
20788
20789	// The updated description for your instance profile.
20790	Description *string `locationName:"description" type:"string"`
20791
20792	// An array of strings that specifies the list of app packages that should not
20793	// be cleaned up from the device after a test run is over.
20794	//
20795	// The list of packages is only considered if you set packageCleanup to true.
20796	ExcludeAppPackagesFromCleanup []*string `locationName:"excludeAppPackagesFromCleanup" type:"list"`
20797
20798	// The updated name for your instance profile.
20799	Name *string `locationName:"name" type:"string"`
20800
20801	// The updated choice for whether you want to specify package cleanup. The default
20802	// value is false for private devices.
20803	PackageCleanup *bool `locationName:"packageCleanup" type:"boolean"`
20804
20805	// The updated choice for whether you want to reboot the device after use. The
20806	// default value is true.
20807	RebootAfterUse *bool `locationName:"rebootAfterUse" type:"boolean"`
20808}
20809
20810// String returns the string representation.
20811//
20812// API parameter values that are decorated as "sensitive" in the API will not
20813// be included in the string output. The member name will be present, but the
20814// value will be replaced with "sensitive".
20815func (s UpdateInstanceProfileInput) String() string {
20816	return awsutil.Prettify(s)
20817}
20818
20819// GoString returns the string representation.
20820//
20821// API parameter values that are decorated as "sensitive" in the API will not
20822// be included in the string output. The member name will be present, but the
20823// value will be replaced with "sensitive".
20824func (s UpdateInstanceProfileInput) GoString() string {
20825	return s.String()
20826}
20827
20828// Validate inspects the fields of the type to determine if they are valid.
20829func (s *UpdateInstanceProfileInput) Validate() error {
20830	invalidParams := request.ErrInvalidParams{Context: "UpdateInstanceProfileInput"}
20831	if s.Arn == nil {
20832		invalidParams.Add(request.NewErrParamRequired("Arn"))
20833	}
20834	if s.Arn != nil && len(*s.Arn) < 32 {
20835		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
20836	}
20837
20838	if invalidParams.Len() > 0 {
20839		return invalidParams
20840	}
20841	return nil
20842}
20843
20844// SetArn sets the Arn field's value.
20845func (s *UpdateInstanceProfileInput) SetArn(v string) *UpdateInstanceProfileInput {
20846	s.Arn = &v
20847	return s
20848}
20849
20850// SetDescription sets the Description field's value.
20851func (s *UpdateInstanceProfileInput) SetDescription(v string) *UpdateInstanceProfileInput {
20852	s.Description = &v
20853	return s
20854}
20855
20856// SetExcludeAppPackagesFromCleanup sets the ExcludeAppPackagesFromCleanup field's value.
20857func (s *UpdateInstanceProfileInput) SetExcludeAppPackagesFromCleanup(v []*string) *UpdateInstanceProfileInput {
20858	s.ExcludeAppPackagesFromCleanup = v
20859	return s
20860}
20861
20862// SetName sets the Name field's value.
20863func (s *UpdateInstanceProfileInput) SetName(v string) *UpdateInstanceProfileInput {
20864	s.Name = &v
20865	return s
20866}
20867
20868// SetPackageCleanup sets the PackageCleanup field's value.
20869func (s *UpdateInstanceProfileInput) SetPackageCleanup(v bool) *UpdateInstanceProfileInput {
20870	s.PackageCleanup = &v
20871	return s
20872}
20873
20874// SetRebootAfterUse sets the RebootAfterUse field's value.
20875func (s *UpdateInstanceProfileInput) SetRebootAfterUse(v bool) *UpdateInstanceProfileInput {
20876	s.RebootAfterUse = &v
20877	return s
20878}
20879
20880type UpdateInstanceProfileOutput struct {
20881	_ struct{} `type:"structure"`
20882
20883	// An object that contains information about your instance profile.
20884	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
20885}
20886
20887// String returns the string representation.
20888//
20889// API parameter values that are decorated as "sensitive" in the API will not
20890// be included in the string output. The member name will be present, but the
20891// value will be replaced with "sensitive".
20892func (s UpdateInstanceProfileOutput) String() string {
20893	return awsutil.Prettify(s)
20894}
20895
20896// GoString returns the string representation.
20897//
20898// API parameter values that are decorated as "sensitive" in the API will not
20899// be included in the string output. The member name will be present, but the
20900// value will be replaced with "sensitive".
20901func (s UpdateInstanceProfileOutput) GoString() string {
20902	return s.String()
20903}
20904
20905// SetInstanceProfile sets the InstanceProfile field's value.
20906func (s *UpdateInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *UpdateInstanceProfileOutput {
20907	s.InstanceProfile = v
20908	return s
20909}
20910
20911type UpdateNetworkProfileInput struct {
20912	_ struct{} `type:"structure"`
20913
20914	// The Amazon Resource Name (ARN) of the project for which you want to update
20915	// network profile settings.
20916	//
20917	// Arn is a required field
20918	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
20919
20920	// The description of the network profile about which you are returning information.
20921	Description *string `locationName:"description" type:"string"`
20922
20923	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
20924	DownlinkBandwidthBits *int64 `locationName:"downlinkBandwidthBits" type:"long"`
20925
20926	// Delay time for all packets to destination in milliseconds as an integer from
20927	// 0 to 2000.
20928	DownlinkDelayMs *int64 `locationName:"downlinkDelayMs" type:"long"`
20929
20930	// Time variation in the delay of received packets in milliseconds as an integer
20931	// from 0 to 2000.
20932	DownlinkJitterMs *int64 `locationName:"downlinkJitterMs" type:"long"`
20933
20934	// Proportion of received packets that fail to arrive from 0 to 100 percent.
20935	DownlinkLossPercent *int64 `locationName:"downlinkLossPercent" type:"integer"`
20936
20937	// The name of the network profile about which you are returning information.
20938	Name *string `locationName:"name" type:"string"`
20939
20940	// The type of network profile to return information about. Valid values are
20941	// listed here.
20942	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
20943
20944	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
20945	UplinkBandwidthBits *int64 `locationName:"uplinkBandwidthBits" type:"long"`
20946
20947	// Delay time for all packets to destination in milliseconds as an integer from
20948	// 0 to 2000.
20949	UplinkDelayMs *int64 `locationName:"uplinkDelayMs" type:"long"`
20950
20951	// Time variation in the delay of received packets in milliseconds as an integer
20952	// from 0 to 2000.
20953	UplinkJitterMs *int64 `locationName:"uplinkJitterMs" type:"long"`
20954
20955	// Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
20956	UplinkLossPercent *int64 `locationName:"uplinkLossPercent" type:"integer"`
20957}
20958
20959// String returns the string representation.
20960//
20961// API parameter values that are decorated as "sensitive" in the API will not
20962// be included in the string output. The member name will be present, but the
20963// value will be replaced with "sensitive".
20964func (s UpdateNetworkProfileInput) String() string {
20965	return awsutil.Prettify(s)
20966}
20967
20968// GoString returns the string representation.
20969//
20970// API parameter values that are decorated as "sensitive" in the API will not
20971// be included in the string output. The member name will be present, but the
20972// value will be replaced with "sensitive".
20973func (s UpdateNetworkProfileInput) GoString() string {
20974	return s.String()
20975}
20976
20977// Validate inspects the fields of the type to determine if they are valid.
20978func (s *UpdateNetworkProfileInput) Validate() error {
20979	invalidParams := request.ErrInvalidParams{Context: "UpdateNetworkProfileInput"}
20980	if s.Arn == nil {
20981		invalidParams.Add(request.NewErrParamRequired("Arn"))
20982	}
20983	if s.Arn != nil && len(*s.Arn) < 32 {
20984		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
20985	}
20986
20987	if invalidParams.Len() > 0 {
20988		return invalidParams
20989	}
20990	return nil
20991}
20992
20993// SetArn sets the Arn field's value.
20994func (s *UpdateNetworkProfileInput) SetArn(v string) *UpdateNetworkProfileInput {
20995	s.Arn = &v
20996	return s
20997}
20998
20999// SetDescription sets the Description field's value.
21000func (s *UpdateNetworkProfileInput) SetDescription(v string) *UpdateNetworkProfileInput {
21001	s.Description = &v
21002	return s
21003}
21004
21005// SetDownlinkBandwidthBits sets the DownlinkBandwidthBits field's value.
21006func (s *UpdateNetworkProfileInput) SetDownlinkBandwidthBits(v int64) *UpdateNetworkProfileInput {
21007	s.DownlinkBandwidthBits = &v
21008	return s
21009}
21010
21011// SetDownlinkDelayMs sets the DownlinkDelayMs field's value.
21012func (s *UpdateNetworkProfileInput) SetDownlinkDelayMs(v int64) *UpdateNetworkProfileInput {
21013	s.DownlinkDelayMs = &v
21014	return s
21015}
21016
21017// SetDownlinkJitterMs sets the DownlinkJitterMs field's value.
21018func (s *UpdateNetworkProfileInput) SetDownlinkJitterMs(v int64) *UpdateNetworkProfileInput {
21019	s.DownlinkJitterMs = &v
21020	return s
21021}
21022
21023// SetDownlinkLossPercent sets the DownlinkLossPercent field's value.
21024func (s *UpdateNetworkProfileInput) SetDownlinkLossPercent(v int64) *UpdateNetworkProfileInput {
21025	s.DownlinkLossPercent = &v
21026	return s
21027}
21028
21029// SetName sets the Name field's value.
21030func (s *UpdateNetworkProfileInput) SetName(v string) *UpdateNetworkProfileInput {
21031	s.Name = &v
21032	return s
21033}
21034
21035// SetType sets the Type field's value.
21036func (s *UpdateNetworkProfileInput) SetType(v string) *UpdateNetworkProfileInput {
21037	s.Type = &v
21038	return s
21039}
21040
21041// SetUplinkBandwidthBits sets the UplinkBandwidthBits field's value.
21042func (s *UpdateNetworkProfileInput) SetUplinkBandwidthBits(v int64) *UpdateNetworkProfileInput {
21043	s.UplinkBandwidthBits = &v
21044	return s
21045}
21046
21047// SetUplinkDelayMs sets the UplinkDelayMs field's value.
21048func (s *UpdateNetworkProfileInput) SetUplinkDelayMs(v int64) *UpdateNetworkProfileInput {
21049	s.UplinkDelayMs = &v
21050	return s
21051}
21052
21053// SetUplinkJitterMs sets the UplinkJitterMs field's value.
21054func (s *UpdateNetworkProfileInput) SetUplinkJitterMs(v int64) *UpdateNetworkProfileInput {
21055	s.UplinkJitterMs = &v
21056	return s
21057}
21058
21059// SetUplinkLossPercent sets the UplinkLossPercent field's value.
21060func (s *UpdateNetworkProfileInput) SetUplinkLossPercent(v int64) *UpdateNetworkProfileInput {
21061	s.UplinkLossPercent = &v
21062	return s
21063}
21064
21065type UpdateNetworkProfileOutput struct {
21066	_ struct{} `type:"structure"`
21067
21068	// A list of the available network profiles.
21069	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
21070}
21071
21072// String returns the string representation.
21073//
21074// API parameter values that are decorated as "sensitive" in the API will not
21075// be included in the string output. The member name will be present, but the
21076// value will be replaced with "sensitive".
21077func (s UpdateNetworkProfileOutput) String() string {
21078	return awsutil.Prettify(s)
21079}
21080
21081// GoString returns the string representation.
21082//
21083// API parameter values that are decorated as "sensitive" in the API will not
21084// be included in the string output. The member name will be present, but the
21085// value will be replaced with "sensitive".
21086func (s UpdateNetworkProfileOutput) GoString() string {
21087	return s.String()
21088}
21089
21090// SetNetworkProfile sets the NetworkProfile field's value.
21091func (s *UpdateNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *UpdateNetworkProfileOutput {
21092	s.NetworkProfile = v
21093	return s
21094}
21095
21096// Represents a request to the update project operation.
21097type UpdateProjectInput struct {
21098	_ struct{} `type:"structure"`
21099
21100	// The Amazon Resource Name (ARN) of the project whose name to update.
21101	//
21102	// Arn is a required field
21103	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
21104
21105	// The number of minutes a test run in the project executes before it times
21106	// out.
21107	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
21108
21109	// A string that represents the new name of the project that you are updating.
21110	Name *string `locationName:"name" type:"string"`
21111}
21112
21113// String returns the string representation.
21114//
21115// API parameter values that are decorated as "sensitive" in the API will not
21116// be included in the string output. The member name will be present, but the
21117// value will be replaced with "sensitive".
21118func (s UpdateProjectInput) String() string {
21119	return awsutil.Prettify(s)
21120}
21121
21122// GoString returns the string representation.
21123//
21124// API parameter values that are decorated as "sensitive" in the API will not
21125// be included in the string output. The member name will be present, but the
21126// value will be replaced with "sensitive".
21127func (s UpdateProjectInput) GoString() string {
21128	return s.String()
21129}
21130
21131// Validate inspects the fields of the type to determine if they are valid.
21132func (s *UpdateProjectInput) Validate() error {
21133	invalidParams := request.ErrInvalidParams{Context: "UpdateProjectInput"}
21134	if s.Arn == nil {
21135		invalidParams.Add(request.NewErrParamRequired("Arn"))
21136	}
21137	if s.Arn != nil && len(*s.Arn) < 32 {
21138		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
21139	}
21140
21141	if invalidParams.Len() > 0 {
21142		return invalidParams
21143	}
21144	return nil
21145}
21146
21147// SetArn sets the Arn field's value.
21148func (s *UpdateProjectInput) SetArn(v string) *UpdateProjectInput {
21149	s.Arn = &v
21150	return s
21151}
21152
21153// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
21154func (s *UpdateProjectInput) SetDefaultJobTimeoutMinutes(v int64) *UpdateProjectInput {
21155	s.DefaultJobTimeoutMinutes = &v
21156	return s
21157}
21158
21159// SetName sets the Name field's value.
21160func (s *UpdateProjectInput) SetName(v string) *UpdateProjectInput {
21161	s.Name = &v
21162	return s
21163}
21164
21165// Represents the result of an update project request.
21166type UpdateProjectOutput struct {
21167	_ struct{} `type:"structure"`
21168
21169	// The project to update.
21170	Project *Project `locationName:"project" type:"structure"`
21171}
21172
21173// String returns the string representation.
21174//
21175// API parameter values that are decorated as "sensitive" in the API will not
21176// be included in the string output. The member name will be present, but the
21177// value will be replaced with "sensitive".
21178func (s UpdateProjectOutput) String() string {
21179	return awsutil.Prettify(s)
21180}
21181
21182// GoString returns the string representation.
21183//
21184// API parameter values that are decorated as "sensitive" in the API will not
21185// be included in the string output. The member name will be present, but the
21186// value will be replaced with "sensitive".
21187func (s UpdateProjectOutput) GoString() string {
21188	return s.String()
21189}
21190
21191// SetProject sets the Project field's value.
21192func (s *UpdateProjectOutput) SetProject(v *Project) *UpdateProjectOutput {
21193	s.Project = v
21194	return s
21195}
21196
21197type UpdateTestGridProjectInput struct {
21198	_ struct{} `type:"structure"`
21199
21200	// Human-readable description for the project.
21201	Description *string `locationName:"description" min:"1" type:"string"`
21202
21203	// Human-readable name for the project.
21204	Name *string `locationName:"name" min:"1" type:"string"`
21205
21206	// ARN of the project to update.
21207	//
21208	// ProjectArn is a required field
21209	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
21210
21211	// The VPC security groups and subnets that are attached to a project.
21212	VpcConfig *TestGridVpcConfig `locationName:"vpcConfig" type:"structure"`
21213}
21214
21215// String returns the string representation.
21216//
21217// API parameter values that are decorated as "sensitive" in the API will not
21218// be included in the string output. The member name will be present, but the
21219// value will be replaced with "sensitive".
21220func (s UpdateTestGridProjectInput) String() string {
21221	return awsutil.Prettify(s)
21222}
21223
21224// GoString returns the string representation.
21225//
21226// API parameter values that are decorated as "sensitive" in the API will not
21227// be included in the string output. The member name will be present, but the
21228// value will be replaced with "sensitive".
21229func (s UpdateTestGridProjectInput) GoString() string {
21230	return s.String()
21231}
21232
21233// Validate inspects the fields of the type to determine if they are valid.
21234func (s *UpdateTestGridProjectInput) Validate() error {
21235	invalidParams := request.ErrInvalidParams{Context: "UpdateTestGridProjectInput"}
21236	if s.Description != nil && len(*s.Description) < 1 {
21237		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
21238	}
21239	if s.Name != nil && len(*s.Name) < 1 {
21240		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21241	}
21242	if s.ProjectArn == nil {
21243		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
21244	}
21245	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
21246		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
21247	}
21248	if s.VpcConfig != nil {
21249		if err := s.VpcConfig.Validate(); err != nil {
21250			invalidParams.AddNested("VpcConfig", err.(request.ErrInvalidParams))
21251		}
21252	}
21253
21254	if invalidParams.Len() > 0 {
21255		return invalidParams
21256	}
21257	return nil
21258}
21259
21260// SetDescription sets the Description field's value.
21261func (s *UpdateTestGridProjectInput) SetDescription(v string) *UpdateTestGridProjectInput {
21262	s.Description = &v
21263	return s
21264}
21265
21266// SetName sets the Name field's value.
21267func (s *UpdateTestGridProjectInput) SetName(v string) *UpdateTestGridProjectInput {
21268	s.Name = &v
21269	return s
21270}
21271
21272// SetProjectArn sets the ProjectArn field's value.
21273func (s *UpdateTestGridProjectInput) SetProjectArn(v string) *UpdateTestGridProjectInput {
21274	s.ProjectArn = &v
21275	return s
21276}
21277
21278// SetVpcConfig sets the VpcConfig field's value.
21279func (s *UpdateTestGridProjectInput) SetVpcConfig(v *TestGridVpcConfig) *UpdateTestGridProjectInput {
21280	s.VpcConfig = v
21281	return s
21282}
21283
21284type UpdateTestGridProjectOutput struct {
21285	_ struct{} `type:"structure"`
21286
21287	// The project, including updated information.
21288	TestGridProject *TestGridProject `locationName:"testGridProject" type:"structure"`
21289}
21290
21291// String returns the string representation.
21292//
21293// API parameter values that are decorated as "sensitive" in the API will not
21294// be included in the string output. The member name will be present, but the
21295// value will be replaced with "sensitive".
21296func (s UpdateTestGridProjectOutput) String() string {
21297	return awsutil.Prettify(s)
21298}
21299
21300// GoString returns the string representation.
21301//
21302// API parameter values that are decorated as "sensitive" in the API will not
21303// be included in the string output. The member name will be present, but the
21304// value will be replaced with "sensitive".
21305func (s UpdateTestGridProjectOutput) GoString() string {
21306	return s.String()
21307}
21308
21309// SetTestGridProject sets the TestGridProject field's value.
21310func (s *UpdateTestGridProjectOutput) SetTestGridProject(v *TestGridProject) *UpdateTestGridProjectOutput {
21311	s.TestGridProject = v
21312	return s
21313}
21314
21315type UpdateUploadInput struct {
21316	_ struct{} `type:"structure"`
21317
21318	// The Amazon Resource Name (ARN) of the uploaded test spec.
21319	//
21320	// Arn is a required field
21321	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
21322
21323	// The upload's content type (for example, application/x-yaml).
21324	ContentType *string `locationName:"contentType" type:"string"`
21325
21326	// Set to true if the YAML file has changed and must be updated. Otherwise,
21327	// set to false.
21328	EditContent *bool `locationName:"editContent" type:"boolean"`
21329
21330	// The upload's test spec file name. The name must not contain any forward slashes
21331	// (/). The test spec file name must end with the .yaml or .yml file extension.
21332	Name *string `locationName:"name" type:"string"`
21333}
21334
21335// String returns the string representation.
21336//
21337// API parameter values that are decorated as "sensitive" in the API will not
21338// be included in the string output. The member name will be present, but the
21339// value will be replaced with "sensitive".
21340func (s UpdateUploadInput) String() string {
21341	return awsutil.Prettify(s)
21342}
21343
21344// GoString returns the string representation.
21345//
21346// API parameter values that are decorated as "sensitive" in the API will not
21347// be included in the string output. The member name will be present, but the
21348// value will be replaced with "sensitive".
21349func (s UpdateUploadInput) GoString() string {
21350	return s.String()
21351}
21352
21353// Validate inspects the fields of the type to determine if they are valid.
21354func (s *UpdateUploadInput) Validate() error {
21355	invalidParams := request.ErrInvalidParams{Context: "UpdateUploadInput"}
21356	if s.Arn == nil {
21357		invalidParams.Add(request.NewErrParamRequired("Arn"))
21358	}
21359	if s.Arn != nil && len(*s.Arn) < 32 {
21360		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
21361	}
21362
21363	if invalidParams.Len() > 0 {
21364		return invalidParams
21365	}
21366	return nil
21367}
21368
21369// SetArn sets the Arn field's value.
21370func (s *UpdateUploadInput) SetArn(v string) *UpdateUploadInput {
21371	s.Arn = &v
21372	return s
21373}
21374
21375// SetContentType sets the ContentType field's value.
21376func (s *UpdateUploadInput) SetContentType(v string) *UpdateUploadInput {
21377	s.ContentType = &v
21378	return s
21379}
21380
21381// SetEditContent sets the EditContent field's value.
21382func (s *UpdateUploadInput) SetEditContent(v bool) *UpdateUploadInput {
21383	s.EditContent = &v
21384	return s
21385}
21386
21387// SetName sets the Name field's value.
21388func (s *UpdateUploadInput) SetName(v string) *UpdateUploadInput {
21389	s.Name = &v
21390	return s
21391}
21392
21393type UpdateUploadOutput struct {
21394	_ struct{} `type:"structure"`
21395
21396	// A test spec uploaded to Device Farm.
21397	Upload *Upload `locationName:"upload" type:"structure"`
21398}
21399
21400// String returns the string representation.
21401//
21402// API parameter values that are decorated as "sensitive" in the API will not
21403// be included in the string output. The member name will be present, but the
21404// value will be replaced with "sensitive".
21405func (s UpdateUploadOutput) String() string {
21406	return awsutil.Prettify(s)
21407}
21408
21409// GoString returns the string representation.
21410//
21411// API parameter values that are decorated as "sensitive" in the API will not
21412// be included in the string output. The member name will be present, but the
21413// value will be replaced with "sensitive".
21414func (s UpdateUploadOutput) GoString() string {
21415	return s.String()
21416}
21417
21418// SetUpload sets the Upload field's value.
21419func (s *UpdateUploadOutput) SetUpload(v *Upload) *UpdateUploadOutput {
21420	s.Upload = v
21421	return s
21422}
21423
21424type UpdateVPCEConfigurationInput struct {
21425	_ struct{} `type:"structure"`
21426
21427	// The Amazon Resource Name (ARN) of the VPC endpoint configuration you want
21428	// to update.
21429	//
21430	// Arn is a required field
21431	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
21432
21433	// The DNS (domain) name used to connect to your private service in your VPC.
21434	// The DNS name must not already be in use on the internet.
21435	ServiceDnsName *string `locationName:"serviceDnsName" type:"string"`
21436
21437	// An optional description that provides details about your VPC endpoint configuration.
21438	VpceConfigurationDescription *string `locationName:"vpceConfigurationDescription" type:"string"`
21439
21440	// The friendly name you give to your VPC endpoint configuration to manage your
21441	// configurations more easily.
21442	VpceConfigurationName *string `locationName:"vpceConfigurationName" type:"string"`
21443
21444	// The name of the VPC endpoint service running in your AWS account that you
21445	// want Device Farm to test.
21446	VpceServiceName *string `locationName:"vpceServiceName" type:"string"`
21447}
21448
21449// String returns the string representation.
21450//
21451// API parameter values that are decorated as "sensitive" in the API will not
21452// be included in the string output. The member name will be present, but the
21453// value will be replaced with "sensitive".
21454func (s UpdateVPCEConfigurationInput) String() string {
21455	return awsutil.Prettify(s)
21456}
21457
21458// GoString returns the string representation.
21459//
21460// API parameter values that are decorated as "sensitive" in the API will not
21461// be included in the string output. The member name will be present, but the
21462// value will be replaced with "sensitive".
21463func (s UpdateVPCEConfigurationInput) GoString() string {
21464	return s.String()
21465}
21466
21467// Validate inspects the fields of the type to determine if they are valid.
21468func (s *UpdateVPCEConfigurationInput) Validate() error {
21469	invalidParams := request.ErrInvalidParams{Context: "UpdateVPCEConfigurationInput"}
21470	if s.Arn == nil {
21471		invalidParams.Add(request.NewErrParamRequired("Arn"))
21472	}
21473	if s.Arn != nil && len(*s.Arn) < 32 {
21474		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
21475	}
21476
21477	if invalidParams.Len() > 0 {
21478		return invalidParams
21479	}
21480	return nil
21481}
21482
21483// SetArn sets the Arn field's value.
21484func (s *UpdateVPCEConfigurationInput) SetArn(v string) *UpdateVPCEConfigurationInput {
21485	s.Arn = &v
21486	return s
21487}
21488
21489// SetServiceDnsName sets the ServiceDnsName field's value.
21490func (s *UpdateVPCEConfigurationInput) SetServiceDnsName(v string) *UpdateVPCEConfigurationInput {
21491	s.ServiceDnsName = &v
21492	return s
21493}
21494
21495// SetVpceConfigurationDescription sets the VpceConfigurationDescription field's value.
21496func (s *UpdateVPCEConfigurationInput) SetVpceConfigurationDescription(v string) *UpdateVPCEConfigurationInput {
21497	s.VpceConfigurationDescription = &v
21498	return s
21499}
21500
21501// SetVpceConfigurationName sets the VpceConfigurationName field's value.
21502func (s *UpdateVPCEConfigurationInput) SetVpceConfigurationName(v string) *UpdateVPCEConfigurationInput {
21503	s.VpceConfigurationName = &v
21504	return s
21505}
21506
21507// SetVpceServiceName sets the VpceServiceName field's value.
21508func (s *UpdateVPCEConfigurationInput) SetVpceServiceName(v string) *UpdateVPCEConfigurationInput {
21509	s.VpceServiceName = &v
21510	return s
21511}
21512
21513type UpdateVPCEConfigurationOutput struct {
21514	_ struct{} `type:"structure"`
21515
21516	// An object that contains information about your VPC endpoint configuration.
21517	VpceConfiguration *VPCEConfiguration `locationName:"vpceConfiguration" type:"structure"`
21518}
21519
21520// String returns the string representation.
21521//
21522// API parameter values that are decorated as "sensitive" in the API will not
21523// be included in the string output. The member name will be present, but the
21524// value will be replaced with "sensitive".
21525func (s UpdateVPCEConfigurationOutput) String() string {
21526	return awsutil.Prettify(s)
21527}
21528
21529// GoString returns the string representation.
21530//
21531// API parameter values that are decorated as "sensitive" in the API will not
21532// be included in the string output. The member name will be present, but the
21533// value will be replaced with "sensitive".
21534func (s UpdateVPCEConfigurationOutput) GoString() string {
21535	return s.String()
21536}
21537
21538// SetVpceConfiguration sets the VpceConfiguration field's value.
21539func (s *UpdateVPCEConfigurationOutput) SetVpceConfiguration(v *VPCEConfiguration) *UpdateVPCEConfigurationOutput {
21540	s.VpceConfiguration = v
21541	return s
21542}
21543
21544// An app or a set of one or more tests to upload or that have been uploaded.
21545type Upload struct {
21546	_ struct{} `type:"structure"`
21547
21548	// The upload's ARN.
21549	Arn *string `locationName:"arn" min:"32" type:"string"`
21550
21551	// The upload's category. Allowed values include:
21552	//
21553	//    * CURATED: An upload managed by AWS Device Farm.
21554	//
21555	//    * PRIVATE: An upload managed by the AWS Device Farm customer.
21556	Category *string `locationName:"category" type:"string" enum:"UploadCategory"`
21557
21558	// The upload's content type (for example, application/octet-stream).
21559	ContentType *string `locationName:"contentType" type:"string"`
21560
21561	// When the upload was created.
21562	Created *time.Time `locationName:"created" type:"timestamp"`
21563
21564	// A message about the upload's result.
21565	Message *string `locationName:"message" type:"string"`
21566
21567	// The upload's metadata. For example, for Android, this contains information
21568	// that is parsed from the manifest and is displayed in the AWS Device Farm
21569	// console after the associated app is uploaded.
21570	Metadata *string `locationName:"metadata" type:"string"`
21571
21572	// The upload's file name.
21573	Name *string `locationName:"name" type:"string"`
21574
21575	// The upload's status.
21576	//
21577	// Must be one of the following values:
21578	//
21579	//    * FAILED
21580	//
21581	//    * INITIALIZED
21582	//
21583	//    * PROCESSING
21584	//
21585	//    * SUCCEEDED
21586	Status *string `locationName:"status" type:"string" enum:"UploadStatus"`
21587
21588	// The upload's type.
21589	//
21590	// Must be one of the following values:
21591	//
21592	//    * ANDROID_APP
21593	//
21594	//    * IOS_APP
21595	//
21596	//    * WEB_APP
21597	//
21598	//    * EXTERNAL_DATA
21599	//
21600	//    * APPIUM_JAVA_JUNIT_TEST_PACKAGE
21601	//
21602	//    * APPIUM_JAVA_TESTNG_TEST_PACKAGE
21603	//
21604	//    * APPIUM_PYTHON_TEST_PACKAGE
21605	//
21606	//    * APPIUM_NODE_TEST_PACKAGE
21607	//
21608	//    * APPIUM_RUBY_TEST_PACKAGE
21609	//
21610	//    * APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
21611	//
21612	//    * APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
21613	//
21614	//    * APPIUM_WEB_PYTHON_TEST_PACKAGE
21615	//
21616	//    * APPIUM_WEB_NODE_TEST_PACKAGE
21617	//
21618	//    * APPIUM_WEB_RUBY_TEST_PACKAGE
21619	//
21620	//    * CALABASH_TEST_PACKAGE
21621	//
21622	//    * INSTRUMENTATION_TEST_PACKAGE
21623	//
21624	//    * UIAUTOMATION_TEST_PACKAGE
21625	//
21626	//    * UIAUTOMATOR_TEST_PACKAGE
21627	//
21628	//    * XCTEST_TEST_PACKAGE
21629	//
21630	//    * XCTEST_UI_TEST_PACKAGE
21631	//
21632	//    * APPIUM_JAVA_JUNIT_TEST_SPEC
21633	//
21634	//    * APPIUM_JAVA_TESTNG_TEST_SPEC
21635	//
21636	//    * APPIUM_PYTHON_TEST_SPEC
21637	//
21638	//    * APPIUM_NODE_TEST_SPEC
21639	//
21640	//    * APPIUM_RUBY_TEST_SPEC
21641	//
21642	//    * APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
21643	//
21644	//    * APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
21645	//
21646	//    * APPIUM_WEB_PYTHON_TEST_SPEC
21647	//
21648	//    * APPIUM_WEB_NODE_TEST_SPEC
21649	//
21650	//    * APPIUM_WEB_RUBY_TEST_SPEC
21651	//
21652	//    * INSTRUMENTATION_TEST_SPEC
21653	//
21654	//    * XCTEST_UI_TEST_SPEC
21655	Type *string `locationName:"type" type:"string" enum:"UploadType"`
21656
21657	// The presigned Amazon S3 URL that was used to store a file using a PUT request.
21658	//
21659	// Url is a sensitive parameter and its value will be
21660	// replaced with "sensitive" in string returned by Upload's
21661	// String and GoString methods.
21662	Url *string `locationName:"url" type:"string" sensitive:"true"`
21663}
21664
21665// String returns the string representation.
21666//
21667// API parameter values that are decorated as "sensitive" in the API will not
21668// be included in the string output. The member name will be present, but the
21669// value will be replaced with "sensitive".
21670func (s Upload) String() string {
21671	return awsutil.Prettify(s)
21672}
21673
21674// GoString returns the string representation.
21675//
21676// API parameter values that are decorated as "sensitive" in the API will not
21677// be included in the string output. The member name will be present, but the
21678// value will be replaced with "sensitive".
21679func (s Upload) GoString() string {
21680	return s.String()
21681}
21682
21683// SetArn sets the Arn field's value.
21684func (s *Upload) SetArn(v string) *Upload {
21685	s.Arn = &v
21686	return s
21687}
21688
21689// SetCategory sets the Category field's value.
21690func (s *Upload) SetCategory(v string) *Upload {
21691	s.Category = &v
21692	return s
21693}
21694
21695// SetContentType sets the ContentType field's value.
21696func (s *Upload) SetContentType(v string) *Upload {
21697	s.ContentType = &v
21698	return s
21699}
21700
21701// SetCreated sets the Created field's value.
21702func (s *Upload) SetCreated(v time.Time) *Upload {
21703	s.Created = &v
21704	return s
21705}
21706
21707// SetMessage sets the Message field's value.
21708func (s *Upload) SetMessage(v string) *Upload {
21709	s.Message = &v
21710	return s
21711}
21712
21713// SetMetadata sets the Metadata field's value.
21714func (s *Upload) SetMetadata(v string) *Upload {
21715	s.Metadata = &v
21716	return s
21717}
21718
21719// SetName sets the Name field's value.
21720func (s *Upload) SetName(v string) *Upload {
21721	s.Name = &v
21722	return s
21723}
21724
21725// SetStatus sets the Status field's value.
21726func (s *Upload) SetStatus(v string) *Upload {
21727	s.Status = &v
21728	return s
21729}
21730
21731// SetType sets the Type field's value.
21732func (s *Upload) SetType(v string) *Upload {
21733	s.Type = &v
21734	return s
21735}
21736
21737// SetUrl sets the Url field's value.
21738func (s *Upload) SetUrl(v string) *Upload {
21739	s.Url = &v
21740	return s
21741}
21742
21743// Represents an Amazon Virtual Private Cloud (VPC) endpoint configuration.
21744type VPCEConfiguration struct {
21745	_ struct{} `type:"structure"`
21746
21747	// The Amazon Resource Name (ARN) of the VPC endpoint configuration.
21748	Arn *string `locationName:"arn" min:"32" type:"string"`
21749
21750	// The DNS name that maps to the private IP address of the service you want
21751	// to access.
21752	ServiceDnsName *string `locationName:"serviceDnsName" type:"string"`
21753
21754	// An optional description that provides details about your VPC endpoint configuration.
21755	VpceConfigurationDescription *string `locationName:"vpceConfigurationDescription" type:"string"`
21756
21757	// The friendly name you give to your VPC endpoint configuration to manage your
21758	// configurations more easily.
21759	VpceConfigurationName *string `locationName:"vpceConfigurationName" type:"string"`
21760
21761	// The name of the VPC endpoint service running in your AWS account that you
21762	// want Device Farm to test.
21763	VpceServiceName *string `locationName:"vpceServiceName" type:"string"`
21764}
21765
21766// String returns the string representation.
21767//
21768// API parameter values that are decorated as "sensitive" in the API will not
21769// be included in the string output. The member name will be present, but the
21770// value will be replaced with "sensitive".
21771func (s VPCEConfiguration) String() string {
21772	return awsutil.Prettify(s)
21773}
21774
21775// GoString returns the string representation.
21776//
21777// API parameter values that are decorated as "sensitive" in the API will not
21778// be included in the string output. The member name will be present, but the
21779// value will be replaced with "sensitive".
21780func (s VPCEConfiguration) GoString() string {
21781	return s.String()
21782}
21783
21784// SetArn sets the Arn field's value.
21785func (s *VPCEConfiguration) SetArn(v string) *VPCEConfiguration {
21786	s.Arn = &v
21787	return s
21788}
21789
21790// SetServiceDnsName sets the ServiceDnsName field's value.
21791func (s *VPCEConfiguration) SetServiceDnsName(v string) *VPCEConfiguration {
21792	s.ServiceDnsName = &v
21793	return s
21794}
21795
21796// SetVpceConfigurationDescription sets the VpceConfigurationDescription field's value.
21797func (s *VPCEConfiguration) SetVpceConfigurationDescription(v string) *VPCEConfiguration {
21798	s.VpceConfigurationDescription = &v
21799	return s
21800}
21801
21802// SetVpceConfigurationName sets the VpceConfigurationName field's value.
21803func (s *VPCEConfiguration) SetVpceConfigurationName(v string) *VPCEConfiguration {
21804	s.VpceConfigurationName = &v
21805	return s
21806}
21807
21808// SetVpceServiceName sets the VpceServiceName field's value.
21809func (s *VPCEConfiguration) SetVpceServiceName(v string) *VPCEConfiguration {
21810	s.VpceServiceName = &v
21811	return s
21812}
21813
21814const (
21815	// ArtifactCategoryScreenshot is a ArtifactCategory enum value
21816	ArtifactCategoryScreenshot = "SCREENSHOT"
21817
21818	// ArtifactCategoryFile is a ArtifactCategory enum value
21819	ArtifactCategoryFile = "FILE"
21820
21821	// ArtifactCategoryLog is a ArtifactCategory enum value
21822	ArtifactCategoryLog = "LOG"
21823)
21824
21825// ArtifactCategory_Values returns all elements of the ArtifactCategory enum
21826func ArtifactCategory_Values() []string {
21827	return []string{
21828		ArtifactCategoryScreenshot,
21829		ArtifactCategoryFile,
21830		ArtifactCategoryLog,
21831	}
21832}
21833
21834const (
21835	// ArtifactTypeUnknown is a ArtifactType enum value
21836	ArtifactTypeUnknown = "UNKNOWN"
21837
21838	// ArtifactTypeScreenshot is a ArtifactType enum value
21839	ArtifactTypeScreenshot = "SCREENSHOT"
21840
21841	// ArtifactTypeDeviceLog is a ArtifactType enum value
21842	ArtifactTypeDeviceLog = "DEVICE_LOG"
21843
21844	// ArtifactTypeMessageLog is a ArtifactType enum value
21845	ArtifactTypeMessageLog = "MESSAGE_LOG"
21846
21847	// ArtifactTypeVideoLog is a ArtifactType enum value
21848	ArtifactTypeVideoLog = "VIDEO_LOG"
21849
21850	// ArtifactTypeResultLog is a ArtifactType enum value
21851	ArtifactTypeResultLog = "RESULT_LOG"
21852
21853	// ArtifactTypeServiceLog is a ArtifactType enum value
21854	ArtifactTypeServiceLog = "SERVICE_LOG"
21855
21856	// ArtifactTypeWebkitLog is a ArtifactType enum value
21857	ArtifactTypeWebkitLog = "WEBKIT_LOG"
21858
21859	// ArtifactTypeInstrumentationOutput is a ArtifactType enum value
21860	ArtifactTypeInstrumentationOutput = "INSTRUMENTATION_OUTPUT"
21861
21862	// ArtifactTypeExerciserMonkeyOutput is a ArtifactType enum value
21863	ArtifactTypeExerciserMonkeyOutput = "EXERCISER_MONKEY_OUTPUT"
21864
21865	// ArtifactTypeCalabashJsonOutput is a ArtifactType enum value
21866	ArtifactTypeCalabashJsonOutput = "CALABASH_JSON_OUTPUT"
21867
21868	// ArtifactTypeCalabashPrettyOutput is a ArtifactType enum value
21869	ArtifactTypeCalabashPrettyOutput = "CALABASH_PRETTY_OUTPUT"
21870
21871	// ArtifactTypeCalabashStandardOutput is a ArtifactType enum value
21872	ArtifactTypeCalabashStandardOutput = "CALABASH_STANDARD_OUTPUT"
21873
21874	// ArtifactTypeCalabashJavaXmlOutput is a ArtifactType enum value
21875	ArtifactTypeCalabashJavaXmlOutput = "CALABASH_JAVA_XML_OUTPUT"
21876
21877	// ArtifactTypeAutomationOutput is a ArtifactType enum value
21878	ArtifactTypeAutomationOutput = "AUTOMATION_OUTPUT"
21879
21880	// ArtifactTypeAppiumServerOutput is a ArtifactType enum value
21881	ArtifactTypeAppiumServerOutput = "APPIUM_SERVER_OUTPUT"
21882
21883	// ArtifactTypeAppiumJavaOutput is a ArtifactType enum value
21884	ArtifactTypeAppiumJavaOutput = "APPIUM_JAVA_OUTPUT"
21885
21886	// ArtifactTypeAppiumJavaXmlOutput is a ArtifactType enum value
21887	ArtifactTypeAppiumJavaXmlOutput = "APPIUM_JAVA_XML_OUTPUT"
21888
21889	// ArtifactTypeAppiumPythonOutput is a ArtifactType enum value
21890	ArtifactTypeAppiumPythonOutput = "APPIUM_PYTHON_OUTPUT"
21891
21892	// ArtifactTypeAppiumPythonXmlOutput is a ArtifactType enum value
21893	ArtifactTypeAppiumPythonXmlOutput = "APPIUM_PYTHON_XML_OUTPUT"
21894
21895	// ArtifactTypeExplorerEventLog is a ArtifactType enum value
21896	ArtifactTypeExplorerEventLog = "EXPLORER_EVENT_LOG"
21897
21898	// ArtifactTypeExplorerSummaryLog is a ArtifactType enum value
21899	ArtifactTypeExplorerSummaryLog = "EXPLORER_SUMMARY_LOG"
21900
21901	// ArtifactTypeApplicationCrashReport is a ArtifactType enum value
21902	ArtifactTypeApplicationCrashReport = "APPLICATION_CRASH_REPORT"
21903
21904	// ArtifactTypeXctestLog is a ArtifactType enum value
21905	ArtifactTypeXctestLog = "XCTEST_LOG"
21906
21907	// ArtifactTypeVideo is a ArtifactType enum value
21908	ArtifactTypeVideo = "VIDEO"
21909
21910	// ArtifactTypeCustomerArtifact is a ArtifactType enum value
21911	ArtifactTypeCustomerArtifact = "CUSTOMER_ARTIFACT"
21912
21913	// ArtifactTypeCustomerArtifactLog is a ArtifactType enum value
21914	ArtifactTypeCustomerArtifactLog = "CUSTOMER_ARTIFACT_LOG"
21915
21916	// ArtifactTypeTestspecOutput is a ArtifactType enum value
21917	ArtifactTypeTestspecOutput = "TESTSPEC_OUTPUT"
21918)
21919
21920// ArtifactType_Values returns all elements of the ArtifactType enum
21921func ArtifactType_Values() []string {
21922	return []string{
21923		ArtifactTypeUnknown,
21924		ArtifactTypeScreenshot,
21925		ArtifactTypeDeviceLog,
21926		ArtifactTypeMessageLog,
21927		ArtifactTypeVideoLog,
21928		ArtifactTypeResultLog,
21929		ArtifactTypeServiceLog,
21930		ArtifactTypeWebkitLog,
21931		ArtifactTypeInstrumentationOutput,
21932		ArtifactTypeExerciserMonkeyOutput,
21933		ArtifactTypeCalabashJsonOutput,
21934		ArtifactTypeCalabashPrettyOutput,
21935		ArtifactTypeCalabashStandardOutput,
21936		ArtifactTypeCalabashJavaXmlOutput,
21937		ArtifactTypeAutomationOutput,
21938		ArtifactTypeAppiumServerOutput,
21939		ArtifactTypeAppiumJavaOutput,
21940		ArtifactTypeAppiumJavaXmlOutput,
21941		ArtifactTypeAppiumPythonOutput,
21942		ArtifactTypeAppiumPythonXmlOutput,
21943		ArtifactTypeExplorerEventLog,
21944		ArtifactTypeExplorerSummaryLog,
21945		ArtifactTypeApplicationCrashReport,
21946		ArtifactTypeXctestLog,
21947		ArtifactTypeVideo,
21948		ArtifactTypeCustomerArtifact,
21949		ArtifactTypeCustomerArtifactLog,
21950		ArtifactTypeTestspecOutput,
21951	}
21952}
21953
21954const (
21955	// BillingMethodMetered is a BillingMethod enum value
21956	BillingMethodMetered = "METERED"
21957
21958	// BillingMethodUnmetered is a BillingMethod enum value
21959	BillingMethodUnmetered = "UNMETERED"
21960)
21961
21962// BillingMethod_Values returns all elements of the BillingMethod enum
21963func BillingMethod_Values() []string {
21964	return []string{
21965		BillingMethodMetered,
21966		BillingMethodUnmetered,
21967	}
21968}
21969
21970const (
21971	// CurrencyCodeUsd is a CurrencyCode enum value
21972	CurrencyCodeUsd = "USD"
21973)
21974
21975// CurrencyCode_Values returns all elements of the CurrencyCode enum
21976func CurrencyCode_Values() []string {
21977	return []string{
21978		CurrencyCodeUsd,
21979	}
21980}
21981
21982const (
21983	// DeviceAttributeArn is a DeviceAttribute enum value
21984	DeviceAttributeArn = "ARN"
21985
21986	// DeviceAttributePlatform is a DeviceAttribute enum value
21987	DeviceAttributePlatform = "PLATFORM"
21988
21989	// DeviceAttributeFormFactor is a DeviceAttribute enum value
21990	DeviceAttributeFormFactor = "FORM_FACTOR"
21991
21992	// DeviceAttributeManufacturer is a DeviceAttribute enum value
21993	DeviceAttributeManufacturer = "MANUFACTURER"
21994
21995	// DeviceAttributeRemoteAccessEnabled is a DeviceAttribute enum value
21996	DeviceAttributeRemoteAccessEnabled = "REMOTE_ACCESS_ENABLED"
21997
21998	// DeviceAttributeRemoteDebugEnabled is a DeviceAttribute enum value
21999	DeviceAttributeRemoteDebugEnabled = "REMOTE_DEBUG_ENABLED"
22000
22001	// DeviceAttributeAppiumVersion is a DeviceAttribute enum value
22002	DeviceAttributeAppiumVersion = "APPIUM_VERSION"
22003
22004	// DeviceAttributeInstanceArn is a DeviceAttribute enum value
22005	DeviceAttributeInstanceArn = "INSTANCE_ARN"
22006
22007	// DeviceAttributeInstanceLabels is a DeviceAttribute enum value
22008	DeviceAttributeInstanceLabels = "INSTANCE_LABELS"
22009
22010	// DeviceAttributeFleetType is a DeviceAttribute enum value
22011	DeviceAttributeFleetType = "FLEET_TYPE"
22012
22013	// DeviceAttributeOsVersion is a DeviceAttribute enum value
22014	DeviceAttributeOsVersion = "OS_VERSION"
22015
22016	// DeviceAttributeModel is a DeviceAttribute enum value
22017	DeviceAttributeModel = "MODEL"
22018
22019	// DeviceAttributeAvailability is a DeviceAttribute enum value
22020	DeviceAttributeAvailability = "AVAILABILITY"
22021)
22022
22023// DeviceAttribute_Values returns all elements of the DeviceAttribute enum
22024func DeviceAttribute_Values() []string {
22025	return []string{
22026		DeviceAttributeArn,
22027		DeviceAttributePlatform,
22028		DeviceAttributeFormFactor,
22029		DeviceAttributeManufacturer,
22030		DeviceAttributeRemoteAccessEnabled,
22031		DeviceAttributeRemoteDebugEnabled,
22032		DeviceAttributeAppiumVersion,
22033		DeviceAttributeInstanceArn,
22034		DeviceAttributeInstanceLabels,
22035		DeviceAttributeFleetType,
22036		DeviceAttributeOsVersion,
22037		DeviceAttributeModel,
22038		DeviceAttributeAvailability,
22039	}
22040}
22041
22042const (
22043	// DeviceAvailabilityTemporaryNotAvailable is a DeviceAvailability enum value
22044	DeviceAvailabilityTemporaryNotAvailable = "TEMPORARY_NOT_AVAILABLE"
22045
22046	// DeviceAvailabilityBusy is a DeviceAvailability enum value
22047	DeviceAvailabilityBusy = "BUSY"
22048
22049	// DeviceAvailabilityAvailable is a DeviceAvailability enum value
22050	DeviceAvailabilityAvailable = "AVAILABLE"
22051
22052	// DeviceAvailabilityHighlyAvailable is a DeviceAvailability enum value
22053	DeviceAvailabilityHighlyAvailable = "HIGHLY_AVAILABLE"
22054)
22055
22056// DeviceAvailability_Values returns all elements of the DeviceAvailability enum
22057func DeviceAvailability_Values() []string {
22058	return []string{
22059		DeviceAvailabilityTemporaryNotAvailable,
22060		DeviceAvailabilityBusy,
22061		DeviceAvailabilityAvailable,
22062		DeviceAvailabilityHighlyAvailable,
22063	}
22064}
22065
22066const (
22067	// DeviceFilterAttributeArn is a DeviceFilterAttribute enum value
22068	DeviceFilterAttributeArn = "ARN"
22069
22070	// DeviceFilterAttributePlatform is a DeviceFilterAttribute enum value
22071	DeviceFilterAttributePlatform = "PLATFORM"
22072
22073	// DeviceFilterAttributeOsVersion is a DeviceFilterAttribute enum value
22074	DeviceFilterAttributeOsVersion = "OS_VERSION"
22075
22076	// DeviceFilterAttributeModel is a DeviceFilterAttribute enum value
22077	DeviceFilterAttributeModel = "MODEL"
22078
22079	// DeviceFilterAttributeAvailability is a DeviceFilterAttribute enum value
22080	DeviceFilterAttributeAvailability = "AVAILABILITY"
22081
22082	// DeviceFilterAttributeFormFactor is a DeviceFilterAttribute enum value
22083	DeviceFilterAttributeFormFactor = "FORM_FACTOR"
22084
22085	// DeviceFilterAttributeManufacturer is a DeviceFilterAttribute enum value
22086	DeviceFilterAttributeManufacturer = "MANUFACTURER"
22087
22088	// DeviceFilterAttributeRemoteAccessEnabled is a DeviceFilterAttribute enum value
22089	DeviceFilterAttributeRemoteAccessEnabled = "REMOTE_ACCESS_ENABLED"
22090
22091	// DeviceFilterAttributeRemoteDebugEnabled is a DeviceFilterAttribute enum value
22092	DeviceFilterAttributeRemoteDebugEnabled = "REMOTE_DEBUG_ENABLED"
22093
22094	// DeviceFilterAttributeInstanceArn is a DeviceFilterAttribute enum value
22095	DeviceFilterAttributeInstanceArn = "INSTANCE_ARN"
22096
22097	// DeviceFilterAttributeInstanceLabels is a DeviceFilterAttribute enum value
22098	DeviceFilterAttributeInstanceLabels = "INSTANCE_LABELS"
22099
22100	// DeviceFilterAttributeFleetType is a DeviceFilterAttribute enum value
22101	DeviceFilterAttributeFleetType = "FLEET_TYPE"
22102)
22103
22104// DeviceFilterAttribute_Values returns all elements of the DeviceFilterAttribute enum
22105func DeviceFilterAttribute_Values() []string {
22106	return []string{
22107		DeviceFilterAttributeArn,
22108		DeviceFilterAttributePlatform,
22109		DeviceFilterAttributeOsVersion,
22110		DeviceFilterAttributeModel,
22111		DeviceFilterAttributeAvailability,
22112		DeviceFilterAttributeFormFactor,
22113		DeviceFilterAttributeManufacturer,
22114		DeviceFilterAttributeRemoteAccessEnabled,
22115		DeviceFilterAttributeRemoteDebugEnabled,
22116		DeviceFilterAttributeInstanceArn,
22117		DeviceFilterAttributeInstanceLabels,
22118		DeviceFilterAttributeFleetType,
22119	}
22120}
22121
22122const (
22123	// DeviceFormFactorPhone is a DeviceFormFactor enum value
22124	DeviceFormFactorPhone = "PHONE"
22125
22126	// DeviceFormFactorTablet is a DeviceFormFactor enum value
22127	DeviceFormFactorTablet = "TABLET"
22128)
22129
22130// DeviceFormFactor_Values returns all elements of the DeviceFormFactor enum
22131func DeviceFormFactor_Values() []string {
22132	return []string{
22133		DeviceFormFactorPhone,
22134		DeviceFormFactorTablet,
22135	}
22136}
22137
22138const (
22139	// DevicePlatformAndroid is a DevicePlatform enum value
22140	DevicePlatformAndroid = "ANDROID"
22141
22142	// DevicePlatformIos is a DevicePlatform enum value
22143	DevicePlatformIos = "IOS"
22144)
22145
22146// DevicePlatform_Values returns all elements of the DevicePlatform enum
22147func DevicePlatform_Values() []string {
22148	return []string{
22149		DevicePlatformAndroid,
22150		DevicePlatformIos,
22151	}
22152}
22153
22154const (
22155	// DevicePoolTypeCurated is a DevicePoolType enum value
22156	DevicePoolTypeCurated = "CURATED"
22157
22158	// DevicePoolTypePrivate is a DevicePoolType enum value
22159	DevicePoolTypePrivate = "PRIVATE"
22160)
22161
22162// DevicePoolType_Values returns all elements of the DevicePoolType enum
22163func DevicePoolType_Values() []string {
22164	return []string{
22165		DevicePoolTypeCurated,
22166		DevicePoolTypePrivate,
22167	}
22168}
22169
22170const (
22171	// ExecutionResultPending is a ExecutionResult enum value
22172	ExecutionResultPending = "PENDING"
22173
22174	// ExecutionResultPassed is a ExecutionResult enum value
22175	ExecutionResultPassed = "PASSED"
22176
22177	// ExecutionResultWarned is a ExecutionResult enum value
22178	ExecutionResultWarned = "WARNED"
22179
22180	// ExecutionResultFailed is a ExecutionResult enum value
22181	ExecutionResultFailed = "FAILED"
22182
22183	// ExecutionResultSkipped is a ExecutionResult enum value
22184	ExecutionResultSkipped = "SKIPPED"
22185
22186	// ExecutionResultErrored is a ExecutionResult enum value
22187	ExecutionResultErrored = "ERRORED"
22188
22189	// ExecutionResultStopped is a ExecutionResult enum value
22190	ExecutionResultStopped = "STOPPED"
22191)
22192
22193// ExecutionResult_Values returns all elements of the ExecutionResult enum
22194func ExecutionResult_Values() []string {
22195	return []string{
22196		ExecutionResultPending,
22197		ExecutionResultPassed,
22198		ExecutionResultWarned,
22199		ExecutionResultFailed,
22200		ExecutionResultSkipped,
22201		ExecutionResultErrored,
22202		ExecutionResultStopped,
22203	}
22204}
22205
22206const (
22207	// ExecutionResultCodeParsingFailed is a ExecutionResultCode enum value
22208	ExecutionResultCodeParsingFailed = "PARSING_FAILED"
22209
22210	// ExecutionResultCodeVpcEndpointSetupFailed is a ExecutionResultCode enum value
22211	ExecutionResultCodeVpcEndpointSetupFailed = "VPC_ENDPOINT_SETUP_FAILED"
22212)
22213
22214// ExecutionResultCode_Values returns all elements of the ExecutionResultCode enum
22215func ExecutionResultCode_Values() []string {
22216	return []string{
22217		ExecutionResultCodeParsingFailed,
22218		ExecutionResultCodeVpcEndpointSetupFailed,
22219	}
22220}
22221
22222const (
22223	// ExecutionStatusPending is a ExecutionStatus enum value
22224	ExecutionStatusPending = "PENDING"
22225
22226	// ExecutionStatusPendingConcurrency is a ExecutionStatus enum value
22227	ExecutionStatusPendingConcurrency = "PENDING_CONCURRENCY"
22228
22229	// ExecutionStatusPendingDevice is a ExecutionStatus enum value
22230	ExecutionStatusPendingDevice = "PENDING_DEVICE"
22231
22232	// ExecutionStatusProcessing is a ExecutionStatus enum value
22233	ExecutionStatusProcessing = "PROCESSING"
22234
22235	// ExecutionStatusScheduling is a ExecutionStatus enum value
22236	ExecutionStatusScheduling = "SCHEDULING"
22237
22238	// ExecutionStatusPreparing is a ExecutionStatus enum value
22239	ExecutionStatusPreparing = "PREPARING"
22240
22241	// ExecutionStatusRunning is a ExecutionStatus enum value
22242	ExecutionStatusRunning = "RUNNING"
22243
22244	// ExecutionStatusCompleted is a ExecutionStatus enum value
22245	ExecutionStatusCompleted = "COMPLETED"
22246
22247	// ExecutionStatusStopping is a ExecutionStatus enum value
22248	ExecutionStatusStopping = "STOPPING"
22249)
22250
22251// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
22252func ExecutionStatus_Values() []string {
22253	return []string{
22254		ExecutionStatusPending,
22255		ExecutionStatusPendingConcurrency,
22256		ExecutionStatusPendingDevice,
22257		ExecutionStatusProcessing,
22258		ExecutionStatusScheduling,
22259		ExecutionStatusPreparing,
22260		ExecutionStatusRunning,
22261		ExecutionStatusCompleted,
22262		ExecutionStatusStopping,
22263	}
22264}
22265
22266const (
22267	// InstanceStatusInUse is a InstanceStatus enum value
22268	InstanceStatusInUse = "IN_USE"
22269
22270	// InstanceStatusPreparing is a InstanceStatus enum value
22271	InstanceStatusPreparing = "PREPARING"
22272
22273	// InstanceStatusAvailable is a InstanceStatus enum value
22274	InstanceStatusAvailable = "AVAILABLE"
22275
22276	// InstanceStatusNotAvailable is a InstanceStatus enum value
22277	InstanceStatusNotAvailable = "NOT_AVAILABLE"
22278)
22279
22280// InstanceStatus_Values returns all elements of the InstanceStatus enum
22281func InstanceStatus_Values() []string {
22282	return []string{
22283		InstanceStatusInUse,
22284		InstanceStatusPreparing,
22285		InstanceStatusAvailable,
22286		InstanceStatusNotAvailable,
22287	}
22288}
22289
22290const (
22291	// InteractionModeInteractive is a InteractionMode enum value
22292	InteractionModeInteractive = "INTERACTIVE"
22293
22294	// InteractionModeNoVideo is a InteractionMode enum value
22295	InteractionModeNoVideo = "NO_VIDEO"
22296
22297	// InteractionModeVideoOnly is a InteractionMode enum value
22298	InteractionModeVideoOnly = "VIDEO_ONLY"
22299)
22300
22301// InteractionMode_Values returns all elements of the InteractionMode enum
22302func InteractionMode_Values() []string {
22303	return []string{
22304		InteractionModeInteractive,
22305		InteractionModeNoVideo,
22306		InteractionModeVideoOnly,
22307	}
22308}
22309
22310const (
22311	// NetworkProfileTypeCurated is a NetworkProfileType enum value
22312	NetworkProfileTypeCurated = "CURATED"
22313
22314	// NetworkProfileTypePrivate is a NetworkProfileType enum value
22315	NetworkProfileTypePrivate = "PRIVATE"
22316)
22317
22318// NetworkProfileType_Values returns all elements of the NetworkProfileType enum
22319func NetworkProfileType_Values() []string {
22320	return []string{
22321		NetworkProfileTypeCurated,
22322		NetworkProfileTypePrivate,
22323	}
22324}
22325
22326const (
22327	// OfferingTransactionTypePurchase is a OfferingTransactionType enum value
22328	OfferingTransactionTypePurchase = "PURCHASE"
22329
22330	// OfferingTransactionTypeRenew is a OfferingTransactionType enum value
22331	OfferingTransactionTypeRenew = "RENEW"
22332
22333	// OfferingTransactionTypeSystem is a OfferingTransactionType enum value
22334	OfferingTransactionTypeSystem = "SYSTEM"
22335)
22336
22337// OfferingTransactionType_Values returns all elements of the OfferingTransactionType enum
22338func OfferingTransactionType_Values() []string {
22339	return []string{
22340		OfferingTransactionTypePurchase,
22341		OfferingTransactionTypeRenew,
22342		OfferingTransactionTypeSystem,
22343	}
22344}
22345
22346const (
22347	// OfferingTypeRecurring is a OfferingType enum value
22348	OfferingTypeRecurring = "RECURRING"
22349)
22350
22351// OfferingType_Values returns all elements of the OfferingType enum
22352func OfferingType_Values() []string {
22353	return []string{
22354		OfferingTypeRecurring,
22355	}
22356}
22357
22358const (
22359	// RecurringChargeFrequencyMonthly is a RecurringChargeFrequency enum value
22360	RecurringChargeFrequencyMonthly = "MONTHLY"
22361)
22362
22363// RecurringChargeFrequency_Values returns all elements of the RecurringChargeFrequency enum
22364func RecurringChargeFrequency_Values() []string {
22365	return []string{
22366		RecurringChargeFrequencyMonthly,
22367	}
22368}
22369
22370const (
22371	// RuleOperatorEquals is a RuleOperator enum value
22372	RuleOperatorEquals = "EQUALS"
22373
22374	// RuleOperatorLessThan is a RuleOperator enum value
22375	RuleOperatorLessThan = "LESS_THAN"
22376
22377	// RuleOperatorLessThanOrEquals is a RuleOperator enum value
22378	RuleOperatorLessThanOrEquals = "LESS_THAN_OR_EQUALS"
22379
22380	// RuleOperatorGreaterThan is a RuleOperator enum value
22381	RuleOperatorGreaterThan = "GREATER_THAN"
22382
22383	// RuleOperatorGreaterThanOrEquals is a RuleOperator enum value
22384	RuleOperatorGreaterThanOrEquals = "GREATER_THAN_OR_EQUALS"
22385
22386	// RuleOperatorIn is a RuleOperator enum value
22387	RuleOperatorIn = "IN"
22388
22389	// RuleOperatorNotIn is a RuleOperator enum value
22390	RuleOperatorNotIn = "NOT_IN"
22391
22392	// RuleOperatorContains is a RuleOperator enum value
22393	RuleOperatorContains = "CONTAINS"
22394)
22395
22396// RuleOperator_Values returns all elements of the RuleOperator enum
22397func RuleOperator_Values() []string {
22398	return []string{
22399		RuleOperatorEquals,
22400		RuleOperatorLessThan,
22401		RuleOperatorLessThanOrEquals,
22402		RuleOperatorGreaterThan,
22403		RuleOperatorGreaterThanOrEquals,
22404		RuleOperatorIn,
22405		RuleOperatorNotIn,
22406		RuleOperatorContains,
22407	}
22408}
22409
22410const (
22411	// SampleTypeCpu is a SampleType enum value
22412	SampleTypeCpu = "CPU"
22413
22414	// SampleTypeMemory is a SampleType enum value
22415	SampleTypeMemory = "MEMORY"
22416
22417	// SampleTypeThreads is a SampleType enum value
22418	SampleTypeThreads = "THREADS"
22419
22420	// SampleTypeRxRate is a SampleType enum value
22421	SampleTypeRxRate = "RX_RATE"
22422
22423	// SampleTypeTxRate is a SampleType enum value
22424	SampleTypeTxRate = "TX_RATE"
22425
22426	// SampleTypeRx is a SampleType enum value
22427	SampleTypeRx = "RX"
22428
22429	// SampleTypeTx is a SampleType enum value
22430	SampleTypeTx = "TX"
22431
22432	// SampleTypeNativeFrames is a SampleType enum value
22433	SampleTypeNativeFrames = "NATIVE_FRAMES"
22434
22435	// SampleTypeNativeFps is a SampleType enum value
22436	SampleTypeNativeFps = "NATIVE_FPS"
22437
22438	// SampleTypeNativeMinDrawtime is a SampleType enum value
22439	SampleTypeNativeMinDrawtime = "NATIVE_MIN_DRAWTIME"
22440
22441	// SampleTypeNativeAvgDrawtime is a SampleType enum value
22442	SampleTypeNativeAvgDrawtime = "NATIVE_AVG_DRAWTIME"
22443
22444	// SampleTypeNativeMaxDrawtime is a SampleType enum value
22445	SampleTypeNativeMaxDrawtime = "NATIVE_MAX_DRAWTIME"
22446
22447	// SampleTypeOpenglFrames is a SampleType enum value
22448	SampleTypeOpenglFrames = "OPENGL_FRAMES"
22449
22450	// SampleTypeOpenglFps is a SampleType enum value
22451	SampleTypeOpenglFps = "OPENGL_FPS"
22452
22453	// SampleTypeOpenglMinDrawtime is a SampleType enum value
22454	SampleTypeOpenglMinDrawtime = "OPENGL_MIN_DRAWTIME"
22455
22456	// SampleTypeOpenglAvgDrawtime is a SampleType enum value
22457	SampleTypeOpenglAvgDrawtime = "OPENGL_AVG_DRAWTIME"
22458
22459	// SampleTypeOpenglMaxDrawtime is a SampleType enum value
22460	SampleTypeOpenglMaxDrawtime = "OPENGL_MAX_DRAWTIME"
22461)
22462
22463// SampleType_Values returns all elements of the SampleType enum
22464func SampleType_Values() []string {
22465	return []string{
22466		SampleTypeCpu,
22467		SampleTypeMemory,
22468		SampleTypeThreads,
22469		SampleTypeRxRate,
22470		SampleTypeTxRate,
22471		SampleTypeRx,
22472		SampleTypeTx,
22473		SampleTypeNativeFrames,
22474		SampleTypeNativeFps,
22475		SampleTypeNativeMinDrawtime,
22476		SampleTypeNativeAvgDrawtime,
22477		SampleTypeNativeMaxDrawtime,
22478		SampleTypeOpenglFrames,
22479		SampleTypeOpenglFps,
22480		SampleTypeOpenglMinDrawtime,
22481		SampleTypeOpenglAvgDrawtime,
22482		SampleTypeOpenglMaxDrawtime,
22483	}
22484}
22485
22486const (
22487	// TestGridSessionArtifactCategoryVideo is a TestGridSessionArtifactCategory enum value
22488	TestGridSessionArtifactCategoryVideo = "VIDEO"
22489
22490	// TestGridSessionArtifactCategoryLog is a TestGridSessionArtifactCategory enum value
22491	TestGridSessionArtifactCategoryLog = "LOG"
22492)
22493
22494// TestGridSessionArtifactCategory_Values returns all elements of the TestGridSessionArtifactCategory enum
22495func TestGridSessionArtifactCategory_Values() []string {
22496	return []string{
22497		TestGridSessionArtifactCategoryVideo,
22498		TestGridSessionArtifactCategoryLog,
22499	}
22500}
22501
22502const (
22503	// TestGridSessionArtifactTypeUnknown is a TestGridSessionArtifactType enum value
22504	TestGridSessionArtifactTypeUnknown = "UNKNOWN"
22505
22506	// TestGridSessionArtifactTypeVideo is a TestGridSessionArtifactType enum value
22507	TestGridSessionArtifactTypeVideo = "VIDEO"
22508
22509	// TestGridSessionArtifactTypeSeleniumLog is a TestGridSessionArtifactType enum value
22510	TestGridSessionArtifactTypeSeleniumLog = "SELENIUM_LOG"
22511)
22512
22513// TestGridSessionArtifactType_Values returns all elements of the TestGridSessionArtifactType enum
22514func TestGridSessionArtifactType_Values() []string {
22515	return []string{
22516		TestGridSessionArtifactTypeUnknown,
22517		TestGridSessionArtifactTypeVideo,
22518		TestGridSessionArtifactTypeSeleniumLog,
22519	}
22520}
22521
22522const (
22523	// TestGridSessionStatusActive is a TestGridSessionStatus enum value
22524	TestGridSessionStatusActive = "ACTIVE"
22525
22526	// TestGridSessionStatusClosed is a TestGridSessionStatus enum value
22527	TestGridSessionStatusClosed = "CLOSED"
22528
22529	// TestGridSessionStatusErrored is a TestGridSessionStatus enum value
22530	TestGridSessionStatusErrored = "ERRORED"
22531)
22532
22533// TestGridSessionStatus_Values returns all elements of the TestGridSessionStatus enum
22534func TestGridSessionStatus_Values() []string {
22535	return []string{
22536		TestGridSessionStatusActive,
22537		TestGridSessionStatusClosed,
22538		TestGridSessionStatusErrored,
22539	}
22540}
22541
22542const (
22543	// TestTypeBuiltinFuzz is a TestType enum value
22544	TestTypeBuiltinFuzz = "BUILTIN_FUZZ"
22545
22546	// TestTypeBuiltinExplorer is a TestType enum value
22547	TestTypeBuiltinExplorer = "BUILTIN_EXPLORER"
22548
22549	// TestTypeWebPerformanceProfile is a TestType enum value
22550	TestTypeWebPerformanceProfile = "WEB_PERFORMANCE_PROFILE"
22551
22552	// TestTypeAppiumJavaJunit is a TestType enum value
22553	TestTypeAppiumJavaJunit = "APPIUM_JAVA_JUNIT"
22554
22555	// TestTypeAppiumJavaTestng is a TestType enum value
22556	TestTypeAppiumJavaTestng = "APPIUM_JAVA_TESTNG"
22557
22558	// TestTypeAppiumPython is a TestType enum value
22559	TestTypeAppiumPython = "APPIUM_PYTHON"
22560
22561	// TestTypeAppiumNode is a TestType enum value
22562	TestTypeAppiumNode = "APPIUM_NODE"
22563
22564	// TestTypeAppiumRuby is a TestType enum value
22565	TestTypeAppiumRuby = "APPIUM_RUBY"
22566
22567	// TestTypeAppiumWebJavaJunit is a TestType enum value
22568	TestTypeAppiumWebJavaJunit = "APPIUM_WEB_JAVA_JUNIT"
22569
22570	// TestTypeAppiumWebJavaTestng is a TestType enum value
22571	TestTypeAppiumWebJavaTestng = "APPIUM_WEB_JAVA_TESTNG"
22572
22573	// TestTypeAppiumWebPython is a TestType enum value
22574	TestTypeAppiumWebPython = "APPIUM_WEB_PYTHON"
22575
22576	// TestTypeAppiumWebNode is a TestType enum value
22577	TestTypeAppiumWebNode = "APPIUM_WEB_NODE"
22578
22579	// TestTypeAppiumWebRuby is a TestType enum value
22580	TestTypeAppiumWebRuby = "APPIUM_WEB_RUBY"
22581
22582	// TestTypeCalabash is a TestType enum value
22583	TestTypeCalabash = "CALABASH"
22584
22585	// TestTypeInstrumentation is a TestType enum value
22586	TestTypeInstrumentation = "INSTRUMENTATION"
22587
22588	// TestTypeUiautomation is a TestType enum value
22589	TestTypeUiautomation = "UIAUTOMATION"
22590
22591	// TestTypeUiautomator is a TestType enum value
22592	TestTypeUiautomator = "UIAUTOMATOR"
22593
22594	// TestTypeXctest is a TestType enum value
22595	TestTypeXctest = "XCTEST"
22596
22597	// TestTypeXctestUi is a TestType enum value
22598	TestTypeXctestUi = "XCTEST_UI"
22599
22600	// TestTypeRemoteAccessRecord is a TestType enum value
22601	TestTypeRemoteAccessRecord = "REMOTE_ACCESS_RECORD"
22602
22603	// TestTypeRemoteAccessReplay is a TestType enum value
22604	TestTypeRemoteAccessReplay = "REMOTE_ACCESS_REPLAY"
22605)
22606
22607// TestType_Values returns all elements of the TestType enum
22608func TestType_Values() []string {
22609	return []string{
22610		TestTypeBuiltinFuzz,
22611		TestTypeBuiltinExplorer,
22612		TestTypeWebPerformanceProfile,
22613		TestTypeAppiumJavaJunit,
22614		TestTypeAppiumJavaTestng,
22615		TestTypeAppiumPython,
22616		TestTypeAppiumNode,
22617		TestTypeAppiumRuby,
22618		TestTypeAppiumWebJavaJunit,
22619		TestTypeAppiumWebJavaTestng,
22620		TestTypeAppiumWebPython,
22621		TestTypeAppiumWebNode,
22622		TestTypeAppiumWebRuby,
22623		TestTypeCalabash,
22624		TestTypeInstrumentation,
22625		TestTypeUiautomation,
22626		TestTypeUiautomator,
22627		TestTypeXctest,
22628		TestTypeXctestUi,
22629		TestTypeRemoteAccessRecord,
22630		TestTypeRemoteAccessReplay,
22631	}
22632}
22633
22634const (
22635	// UploadCategoryCurated is a UploadCategory enum value
22636	UploadCategoryCurated = "CURATED"
22637
22638	// UploadCategoryPrivate is a UploadCategory enum value
22639	UploadCategoryPrivate = "PRIVATE"
22640)
22641
22642// UploadCategory_Values returns all elements of the UploadCategory enum
22643func UploadCategory_Values() []string {
22644	return []string{
22645		UploadCategoryCurated,
22646		UploadCategoryPrivate,
22647	}
22648}
22649
22650const (
22651	// UploadStatusInitialized is a UploadStatus enum value
22652	UploadStatusInitialized = "INITIALIZED"
22653
22654	// UploadStatusProcessing is a UploadStatus enum value
22655	UploadStatusProcessing = "PROCESSING"
22656
22657	// UploadStatusSucceeded is a UploadStatus enum value
22658	UploadStatusSucceeded = "SUCCEEDED"
22659
22660	// UploadStatusFailed is a UploadStatus enum value
22661	UploadStatusFailed = "FAILED"
22662)
22663
22664// UploadStatus_Values returns all elements of the UploadStatus enum
22665func UploadStatus_Values() []string {
22666	return []string{
22667		UploadStatusInitialized,
22668		UploadStatusProcessing,
22669		UploadStatusSucceeded,
22670		UploadStatusFailed,
22671	}
22672}
22673
22674const (
22675	// UploadTypeAndroidApp is a UploadType enum value
22676	UploadTypeAndroidApp = "ANDROID_APP"
22677
22678	// UploadTypeIosApp is a UploadType enum value
22679	UploadTypeIosApp = "IOS_APP"
22680
22681	// UploadTypeWebApp is a UploadType enum value
22682	UploadTypeWebApp = "WEB_APP"
22683
22684	// UploadTypeExternalData is a UploadType enum value
22685	UploadTypeExternalData = "EXTERNAL_DATA"
22686
22687	// UploadTypeAppiumJavaJunitTestPackage is a UploadType enum value
22688	UploadTypeAppiumJavaJunitTestPackage = "APPIUM_JAVA_JUNIT_TEST_PACKAGE"
22689
22690	// UploadTypeAppiumJavaTestngTestPackage is a UploadType enum value
22691	UploadTypeAppiumJavaTestngTestPackage = "APPIUM_JAVA_TESTNG_TEST_PACKAGE"
22692
22693	// UploadTypeAppiumPythonTestPackage is a UploadType enum value
22694	UploadTypeAppiumPythonTestPackage = "APPIUM_PYTHON_TEST_PACKAGE"
22695
22696	// UploadTypeAppiumNodeTestPackage is a UploadType enum value
22697	UploadTypeAppiumNodeTestPackage = "APPIUM_NODE_TEST_PACKAGE"
22698
22699	// UploadTypeAppiumRubyTestPackage is a UploadType enum value
22700	UploadTypeAppiumRubyTestPackage = "APPIUM_RUBY_TEST_PACKAGE"
22701
22702	// UploadTypeAppiumWebJavaJunitTestPackage is a UploadType enum value
22703	UploadTypeAppiumWebJavaJunitTestPackage = "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE"
22704
22705	// UploadTypeAppiumWebJavaTestngTestPackage is a UploadType enum value
22706	UploadTypeAppiumWebJavaTestngTestPackage = "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE"
22707
22708	// UploadTypeAppiumWebPythonTestPackage is a UploadType enum value
22709	UploadTypeAppiumWebPythonTestPackage = "APPIUM_WEB_PYTHON_TEST_PACKAGE"
22710
22711	// UploadTypeAppiumWebNodeTestPackage is a UploadType enum value
22712	UploadTypeAppiumWebNodeTestPackage = "APPIUM_WEB_NODE_TEST_PACKAGE"
22713
22714	// UploadTypeAppiumWebRubyTestPackage is a UploadType enum value
22715	UploadTypeAppiumWebRubyTestPackage = "APPIUM_WEB_RUBY_TEST_PACKAGE"
22716
22717	// UploadTypeCalabashTestPackage is a UploadType enum value
22718	UploadTypeCalabashTestPackage = "CALABASH_TEST_PACKAGE"
22719
22720	// UploadTypeInstrumentationTestPackage is a UploadType enum value
22721	UploadTypeInstrumentationTestPackage = "INSTRUMENTATION_TEST_PACKAGE"
22722
22723	// UploadTypeUiautomationTestPackage is a UploadType enum value
22724	UploadTypeUiautomationTestPackage = "UIAUTOMATION_TEST_PACKAGE"
22725
22726	// UploadTypeUiautomatorTestPackage is a UploadType enum value
22727	UploadTypeUiautomatorTestPackage = "UIAUTOMATOR_TEST_PACKAGE"
22728
22729	// UploadTypeXctestTestPackage is a UploadType enum value
22730	UploadTypeXctestTestPackage = "XCTEST_TEST_PACKAGE"
22731
22732	// UploadTypeXctestUiTestPackage is a UploadType enum value
22733	UploadTypeXctestUiTestPackage = "XCTEST_UI_TEST_PACKAGE"
22734
22735	// UploadTypeAppiumJavaJunitTestSpec is a UploadType enum value
22736	UploadTypeAppiumJavaJunitTestSpec = "APPIUM_JAVA_JUNIT_TEST_SPEC"
22737
22738	// UploadTypeAppiumJavaTestngTestSpec is a UploadType enum value
22739	UploadTypeAppiumJavaTestngTestSpec = "APPIUM_JAVA_TESTNG_TEST_SPEC"
22740
22741	// UploadTypeAppiumPythonTestSpec is a UploadType enum value
22742	UploadTypeAppiumPythonTestSpec = "APPIUM_PYTHON_TEST_SPEC"
22743
22744	// UploadTypeAppiumNodeTestSpec is a UploadType enum value
22745	UploadTypeAppiumNodeTestSpec = "APPIUM_NODE_TEST_SPEC"
22746
22747	// UploadTypeAppiumRubyTestSpec is a UploadType enum value
22748	UploadTypeAppiumRubyTestSpec = "APPIUM_RUBY_TEST_SPEC"
22749
22750	// UploadTypeAppiumWebJavaJunitTestSpec is a UploadType enum value
22751	UploadTypeAppiumWebJavaJunitTestSpec = "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC"
22752
22753	// UploadTypeAppiumWebJavaTestngTestSpec is a UploadType enum value
22754	UploadTypeAppiumWebJavaTestngTestSpec = "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC"
22755
22756	// UploadTypeAppiumWebPythonTestSpec is a UploadType enum value
22757	UploadTypeAppiumWebPythonTestSpec = "APPIUM_WEB_PYTHON_TEST_SPEC"
22758
22759	// UploadTypeAppiumWebNodeTestSpec is a UploadType enum value
22760	UploadTypeAppiumWebNodeTestSpec = "APPIUM_WEB_NODE_TEST_SPEC"
22761
22762	// UploadTypeAppiumWebRubyTestSpec is a UploadType enum value
22763	UploadTypeAppiumWebRubyTestSpec = "APPIUM_WEB_RUBY_TEST_SPEC"
22764
22765	// UploadTypeInstrumentationTestSpec is a UploadType enum value
22766	UploadTypeInstrumentationTestSpec = "INSTRUMENTATION_TEST_SPEC"
22767
22768	// UploadTypeXctestUiTestSpec is a UploadType enum value
22769	UploadTypeXctestUiTestSpec = "XCTEST_UI_TEST_SPEC"
22770)
22771
22772// UploadType_Values returns all elements of the UploadType enum
22773func UploadType_Values() []string {
22774	return []string{
22775		UploadTypeAndroidApp,
22776		UploadTypeIosApp,
22777		UploadTypeWebApp,
22778		UploadTypeExternalData,
22779		UploadTypeAppiumJavaJunitTestPackage,
22780		UploadTypeAppiumJavaTestngTestPackage,
22781		UploadTypeAppiumPythonTestPackage,
22782		UploadTypeAppiumNodeTestPackage,
22783		UploadTypeAppiumRubyTestPackage,
22784		UploadTypeAppiumWebJavaJunitTestPackage,
22785		UploadTypeAppiumWebJavaTestngTestPackage,
22786		UploadTypeAppiumWebPythonTestPackage,
22787		UploadTypeAppiumWebNodeTestPackage,
22788		UploadTypeAppiumWebRubyTestPackage,
22789		UploadTypeCalabashTestPackage,
22790		UploadTypeInstrumentationTestPackage,
22791		UploadTypeUiautomationTestPackage,
22792		UploadTypeUiautomatorTestPackage,
22793		UploadTypeXctestTestPackage,
22794		UploadTypeXctestUiTestPackage,
22795		UploadTypeAppiumJavaJunitTestSpec,
22796		UploadTypeAppiumJavaTestngTestSpec,
22797		UploadTypeAppiumPythonTestSpec,
22798		UploadTypeAppiumNodeTestSpec,
22799		UploadTypeAppiumRubyTestSpec,
22800		UploadTypeAppiumWebJavaJunitTestSpec,
22801		UploadTypeAppiumWebJavaTestngTestSpec,
22802		UploadTypeAppiumWebPythonTestSpec,
22803		UploadTypeAppiumWebNodeTestSpec,
22804		UploadTypeAppiumWebRubyTestSpec,
22805		UploadTypeInstrumentationTestSpec,
22806		UploadTypeXctestUiTestSpec,
22807	}
22808}
22809