1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package cloud9
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 opCreateEnvironmentEC2 = "CreateEnvironmentEC2"
17
18// CreateEnvironmentEC2Request generates a "aws/request.Request" representing the
19// client's request for the CreateEnvironmentEC2 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 CreateEnvironmentEC2 for more information on using the CreateEnvironmentEC2
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 CreateEnvironmentEC2Request method.
34//    req, resp := client.CreateEnvironmentEC2Request(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/cloud9-2017-09-23/CreateEnvironmentEC2
42func (c *Cloud9) CreateEnvironmentEC2Request(input *CreateEnvironmentEC2Input) (req *request.Request, output *CreateEnvironmentEC2Output) {
43	op := &request.Operation{
44		Name:       opCreateEnvironmentEC2,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateEnvironmentEC2Input{}
51	}
52
53	output = &CreateEnvironmentEC2Output{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateEnvironmentEC2 API operation for AWS Cloud9.
59//
60// Creates an Cloud9 development environment, launches an Amazon Elastic Compute
61// Cloud (Amazon EC2) instance, and then connects from the instance to the environment.
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for AWS Cloud9's
68// API operation CreateEnvironmentEC2 for usage and error information.
69//
70// Returned Error Types:
71//   * BadRequestException
72//   The target request is invalid.
73//
74//   * ConflictException
75//   A conflict occurred.
76//
77//   * NotFoundException
78//   The target resource cannot be found.
79//
80//   * ForbiddenException
81//   An access permissions issue occurred.
82//
83//   * TooManyRequestsException
84//   Too many service requests were made over the given time period.
85//
86//   * LimitExceededException
87//   A service limit was exceeded.
88//
89//   * InternalServerErrorException
90//   An internal server error occurred.
91//
92// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentEC2
93func (c *Cloud9) CreateEnvironmentEC2(input *CreateEnvironmentEC2Input) (*CreateEnvironmentEC2Output, error) {
94	req, out := c.CreateEnvironmentEC2Request(input)
95	return out, req.Send()
96}
97
98// CreateEnvironmentEC2WithContext is the same as CreateEnvironmentEC2 with the addition of
99// the ability to pass a context and additional request options.
100//
101// See CreateEnvironmentEC2 for details on how to use this API operation.
102//
103// The context must be non-nil and will be used for request cancellation. If
104// the context is nil a panic will occur. In the future the SDK may create
105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
106// for more information on using Contexts.
107func (c *Cloud9) CreateEnvironmentEC2WithContext(ctx aws.Context, input *CreateEnvironmentEC2Input, opts ...request.Option) (*CreateEnvironmentEC2Output, error) {
108	req, out := c.CreateEnvironmentEC2Request(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opCreateEnvironmentMembership = "CreateEnvironmentMembership"
115
116// CreateEnvironmentMembershipRequest generates a "aws/request.Request" representing the
117// client's request for the CreateEnvironmentMembership operation. The "output" return
118// value will be populated with the request's response once the request completes
119// successfully.
120//
121// Use "Send" method on the returned Request to send the API call to the service.
122// the "output" return value is not valid until after Send returns without error.
123//
124// See CreateEnvironmentMembership for more information on using the CreateEnvironmentMembership
125// API call, and error handling.
126//
127// This method is useful when you want to inject custom logic or configuration
128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
129//
130//
131//    // Example sending a request using the CreateEnvironmentMembershipRequest method.
132//    req, resp := client.CreateEnvironmentMembershipRequest(params)
133//
134//    err := req.Send()
135//    if err == nil { // resp is now filled
136//        fmt.Println(resp)
137//    }
138//
139// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentMembership
140func (c *Cloud9) CreateEnvironmentMembershipRequest(input *CreateEnvironmentMembershipInput) (req *request.Request, output *CreateEnvironmentMembershipOutput) {
141	op := &request.Operation{
142		Name:       opCreateEnvironmentMembership,
143		HTTPMethod: "POST",
144		HTTPPath:   "/",
145	}
146
147	if input == nil {
148		input = &CreateEnvironmentMembershipInput{}
149	}
150
151	output = &CreateEnvironmentMembershipOutput{}
152	req = c.newRequest(op, input, output)
153	return
154}
155
156// CreateEnvironmentMembership API operation for AWS Cloud9.
157//
158// Adds an environment member to an Cloud9 development environment.
159//
160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
161// with awserr.Error's Code and Message methods to get detailed information about
162// the error.
163//
164// See the AWS API reference guide for AWS Cloud9's
165// API operation CreateEnvironmentMembership for usage and error information.
166//
167// Returned Error Types:
168//   * BadRequestException
169//   The target request is invalid.
170//
171//   * ConflictException
172//   A conflict occurred.
173//
174//   * NotFoundException
175//   The target resource cannot be found.
176//
177//   * ForbiddenException
178//   An access permissions issue occurred.
179//
180//   * TooManyRequestsException
181//   Too many service requests were made over the given time period.
182//
183//   * LimitExceededException
184//   A service limit was exceeded.
185//
186//   * InternalServerErrorException
187//   An internal server error occurred.
188//
189// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentMembership
190func (c *Cloud9) CreateEnvironmentMembership(input *CreateEnvironmentMembershipInput) (*CreateEnvironmentMembershipOutput, error) {
191	req, out := c.CreateEnvironmentMembershipRequest(input)
192	return out, req.Send()
193}
194
195// CreateEnvironmentMembershipWithContext is the same as CreateEnvironmentMembership with the addition of
196// the ability to pass a context and additional request options.
197//
198// See CreateEnvironmentMembership for details on how to use this API operation.
199//
200// The context must be non-nil and will be used for request cancellation. If
201// the context is nil a panic will occur. In the future the SDK may create
202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
203// for more information on using Contexts.
204func (c *Cloud9) CreateEnvironmentMembershipWithContext(ctx aws.Context, input *CreateEnvironmentMembershipInput, opts ...request.Option) (*CreateEnvironmentMembershipOutput, error) {
205	req, out := c.CreateEnvironmentMembershipRequest(input)
206	req.SetContext(ctx)
207	req.ApplyOptions(opts...)
208	return out, req.Send()
209}
210
211const opDeleteEnvironment = "DeleteEnvironment"
212
213// DeleteEnvironmentRequest generates a "aws/request.Request" representing the
214// client's request for the DeleteEnvironment operation. The "output" return
215// value will be populated with the request's response once the request completes
216// successfully.
217//
218// Use "Send" method on the returned Request to send the API call to the service.
219// the "output" return value is not valid until after Send returns without error.
220//
221// See DeleteEnvironment for more information on using the DeleteEnvironment
222// API call, and error handling.
223//
224// This method is useful when you want to inject custom logic or configuration
225// into the SDK's request lifecycle. Such as custom headers, or retry logic.
226//
227//
228//    // Example sending a request using the DeleteEnvironmentRequest method.
229//    req, resp := client.DeleteEnvironmentRequest(params)
230//
231//    err := req.Send()
232//    if err == nil { // resp is now filled
233//        fmt.Println(resp)
234//    }
235//
236// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironment
237func (c *Cloud9) DeleteEnvironmentRequest(input *DeleteEnvironmentInput) (req *request.Request, output *DeleteEnvironmentOutput) {
238	op := &request.Operation{
239		Name:       opDeleteEnvironment,
240		HTTPMethod: "POST",
241		HTTPPath:   "/",
242	}
243
244	if input == nil {
245		input = &DeleteEnvironmentInput{}
246	}
247
248	output = &DeleteEnvironmentOutput{}
249	req = c.newRequest(op, input, output)
250	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
251	return
252}
253
254// DeleteEnvironment API operation for AWS Cloud9.
255//
256// Deletes an Cloud9 development environment. If an Amazon EC2 instance is connected
257// to the environment, also terminates the instance.
258//
259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
260// with awserr.Error's Code and Message methods to get detailed information about
261// the error.
262//
263// See the AWS API reference guide for AWS Cloud9's
264// API operation DeleteEnvironment for usage and error information.
265//
266// Returned Error Types:
267//   * BadRequestException
268//   The target request is invalid.
269//
270//   * ConflictException
271//   A conflict occurred.
272//
273//   * NotFoundException
274//   The target resource cannot be found.
275//
276//   * ForbiddenException
277//   An access permissions issue occurred.
278//
279//   * TooManyRequestsException
280//   Too many service requests were made over the given time period.
281//
282//   * LimitExceededException
283//   A service limit was exceeded.
284//
285//   * InternalServerErrorException
286//   An internal server error occurred.
287//
288// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironment
289func (c *Cloud9) DeleteEnvironment(input *DeleteEnvironmentInput) (*DeleteEnvironmentOutput, error) {
290	req, out := c.DeleteEnvironmentRequest(input)
291	return out, req.Send()
292}
293
294// DeleteEnvironmentWithContext is the same as DeleteEnvironment with the addition of
295// the ability to pass a context and additional request options.
296//
297// See DeleteEnvironment for details on how to use this API operation.
298//
299// The context must be non-nil and will be used for request cancellation. If
300// the context is nil a panic will occur. In the future the SDK may create
301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
302// for more information on using Contexts.
303func (c *Cloud9) DeleteEnvironmentWithContext(ctx aws.Context, input *DeleteEnvironmentInput, opts ...request.Option) (*DeleteEnvironmentOutput, error) {
304	req, out := c.DeleteEnvironmentRequest(input)
305	req.SetContext(ctx)
306	req.ApplyOptions(opts...)
307	return out, req.Send()
308}
309
310const opDeleteEnvironmentMembership = "DeleteEnvironmentMembership"
311
312// DeleteEnvironmentMembershipRequest generates a "aws/request.Request" representing the
313// client's request for the DeleteEnvironmentMembership operation. The "output" return
314// value will be populated with the request's response once the request completes
315// successfully.
316//
317// Use "Send" method on the returned Request to send the API call to the service.
318// the "output" return value is not valid until after Send returns without error.
319//
320// See DeleteEnvironmentMembership for more information on using the DeleteEnvironmentMembership
321// API call, and error handling.
322//
323// This method is useful when you want to inject custom logic or configuration
324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
325//
326//
327//    // Example sending a request using the DeleteEnvironmentMembershipRequest method.
328//    req, resp := client.DeleteEnvironmentMembershipRequest(params)
329//
330//    err := req.Send()
331//    if err == nil { // resp is now filled
332//        fmt.Println(resp)
333//    }
334//
335// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironmentMembership
336func (c *Cloud9) DeleteEnvironmentMembershipRequest(input *DeleteEnvironmentMembershipInput) (req *request.Request, output *DeleteEnvironmentMembershipOutput) {
337	op := &request.Operation{
338		Name:       opDeleteEnvironmentMembership,
339		HTTPMethod: "POST",
340		HTTPPath:   "/",
341	}
342
343	if input == nil {
344		input = &DeleteEnvironmentMembershipInput{}
345	}
346
347	output = &DeleteEnvironmentMembershipOutput{}
348	req = c.newRequest(op, input, output)
349	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
350	return
351}
352
353// DeleteEnvironmentMembership API operation for AWS Cloud9.
354//
355// Deletes an environment member from an Cloud9 development environment.
356//
357// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
358// with awserr.Error's Code and Message methods to get detailed information about
359// the error.
360//
361// See the AWS API reference guide for AWS Cloud9's
362// API operation DeleteEnvironmentMembership for usage and error information.
363//
364// Returned Error Types:
365//   * BadRequestException
366//   The target request is invalid.
367//
368//   * ConflictException
369//   A conflict occurred.
370//
371//   * NotFoundException
372//   The target resource cannot be found.
373//
374//   * ForbiddenException
375//   An access permissions issue occurred.
376//
377//   * TooManyRequestsException
378//   Too many service requests were made over the given time period.
379//
380//   * LimitExceededException
381//   A service limit was exceeded.
382//
383//   * InternalServerErrorException
384//   An internal server error occurred.
385//
386// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironmentMembership
387func (c *Cloud9) DeleteEnvironmentMembership(input *DeleteEnvironmentMembershipInput) (*DeleteEnvironmentMembershipOutput, error) {
388	req, out := c.DeleteEnvironmentMembershipRequest(input)
389	return out, req.Send()
390}
391
392// DeleteEnvironmentMembershipWithContext is the same as DeleteEnvironmentMembership with the addition of
393// the ability to pass a context and additional request options.
394//
395// See DeleteEnvironmentMembership for details on how to use this API operation.
396//
397// The context must be non-nil and will be used for request cancellation. If
398// the context is nil a panic will occur. In the future the SDK may create
399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
400// for more information on using Contexts.
401func (c *Cloud9) DeleteEnvironmentMembershipWithContext(ctx aws.Context, input *DeleteEnvironmentMembershipInput, opts ...request.Option) (*DeleteEnvironmentMembershipOutput, error) {
402	req, out := c.DeleteEnvironmentMembershipRequest(input)
403	req.SetContext(ctx)
404	req.ApplyOptions(opts...)
405	return out, req.Send()
406}
407
408const opDescribeEnvironmentMemberships = "DescribeEnvironmentMemberships"
409
410// DescribeEnvironmentMembershipsRequest generates a "aws/request.Request" representing the
411// client's request for the DescribeEnvironmentMemberships operation. The "output" return
412// value will be populated with the request's response once the request completes
413// successfully.
414//
415// Use "Send" method on the returned Request to send the API call to the service.
416// the "output" return value is not valid until after Send returns without error.
417//
418// See DescribeEnvironmentMemberships for more information on using the DescribeEnvironmentMemberships
419// API call, and error handling.
420//
421// This method is useful when you want to inject custom logic or configuration
422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
423//
424//
425//    // Example sending a request using the DescribeEnvironmentMembershipsRequest method.
426//    req, resp := client.DescribeEnvironmentMembershipsRequest(params)
427//
428//    err := req.Send()
429//    if err == nil { // resp is now filled
430//        fmt.Println(resp)
431//    }
432//
433// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentMemberships
434func (c *Cloud9) DescribeEnvironmentMembershipsRequest(input *DescribeEnvironmentMembershipsInput) (req *request.Request, output *DescribeEnvironmentMembershipsOutput) {
435	op := &request.Operation{
436		Name:       opDescribeEnvironmentMemberships,
437		HTTPMethod: "POST",
438		HTTPPath:   "/",
439		Paginator: &request.Paginator{
440			InputTokens:     []string{"nextToken"},
441			OutputTokens:    []string{"nextToken"},
442			LimitToken:      "maxResults",
443			TruncationToken: "",
444		},
445	}
446
447	if input == nil {
448		input = &DescribeEnvironmentMembershipsInput{}
449	}
450
451	output = &DescribeEnvironmentMembershipsOutput{}
452	req = c.newRequest(op, input, output)
453	return
454}
455
456// DescribeEnvironmentMemberships API operation for AWS Cloud9.
457//
458// Gets information about environment members for an Cloud9 development environment.
459//
460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
461// with awserr.Error's Code and Message methods to get detailed information about
462// the error.
463//
464// See the AWS API reference guide for AWS Cloud9's
465// API operation DescribeEnvironmentMemberships for usage and error information.
466//
467// Returned Error Types:
468//   * BadRequestException
469//   The target request is invalid.
470//
471//   * ConflictException
472//   A conflict occurred.
473//
474//   * NotFoundException
475//   The target resource cannot be found.
476//
477//   * ForbiddenException
478//   An access permissions issue occurred.
479//
480//   * TooManyRequestsException
481//   Too many service requests were made over the given time period.
482//
483//   * LimitExceededException
484//   A service limit was exceeded.
485//
486//   * InternalServerErrorException
487//   An internal server error occurred.
488//
489// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentMemberships
490func (c *Cloud9) DescribeEnvironmentMemberships(input *DescribeEnvironmentMembershipsInput) (*DescribeEnvironmentMembershipsOutput, error) {
491	req, out := c.DescribeEnvironmentMembershipsRequest(input)
492	return out, req.Send()
493}
494
495// DescribeEnvironmentMembershipsWithContext is the same as DescribeEnvironmentMemberships with the addition of
496// the ability to pass a context and additional request options.
497//
498// See DescribeEnvironmentMemberships for details on how to use this API operation.
499//
500// The context must be non-nil and will be used for request cancellation. If
501// the context is nil a panic will occur. In the future the SDK may create
502// sub-contexts for http.Requests. See https://golang.org/pkg/context/
503// for more information on using Contexts.
504func (c *Cloud9) DescribeEnvironmentMembershipsWithContext(ctx aws.Context, input *DescribeEnvironmentMembershipsInput, opts ...request.Option) (*DescribeEnvironmentMembershipsOutput, error) {
505	req, out := c.DescribeEnvironmentMembershipsRequest(input)
506	req.SetContext(ctx)
507	req.ApplyOptions(opts...)
508	return out, req.Send()
509}
510
511// DescribeEnvironmentMembershipsPages iterates over the pages of a DescribeEnvironmentMemberships operation,
512// calling the "fn" function with the response data for each page. To stop
513// iterating, return false from the fn function.
514//
515// See DescribeEnvironmentMemberships method for more information on how to use this operation.
516//
517// Note: This operation can generate multiple requests to a service.
518//
519//    // Example iterating over at most 3 pages of a DescribeEnvironmentMemberships operation.
520//    pageNum := 0
521//    err := client.DescribeEnvironmentMembershipsPages(params,
522//        func(page *cloud9.DescribeEnvironmentMembershipsOutput, lastPage bool) bool {
523//            pageNum++
524//            fmt.Println(page)
525//            return pageNum <= 3
526//        })
527//
528func (c *Cloud9) DescribeEnvironmentMembershipsPages(input *DescribeEnvironmentMembershipsInput, fn func(*DescribeEnvironmentMembershipsOutput, bool) bool) error {
529	return c.DescribeEnvironmentMembershipsPagesWithContext(aws.BackgroundContext(), input, fn)
530}
531
532// DescribeEnvironmentMembershipsPagesWithContext same as DescribeEnvironmentMembershipsPages except
533// it takes a Context and allows setting request options on the pages.
534//
535// The context must be non-nil and will be used for request cancellation. If
536// the context is nil a panic will occur. In the future the SDK may create
537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
538// for more information on using Contexts.
539func (c *Cloud9) DescribeEnvironmentMembershipsPagesWithContext(ctx aws.Context, input *DescribeEnvironmentMembershipsInput, fn func(*DescribeEnvironmentMembershipsOutput, bool) bool, opts ...request.Option) error {
540	p := request.Pagination{
541		NewRequest: func() (*request.Request, error) {
542			var inCpy *DescribeEnvironmentMembershipsInput
543			if input != nil {
544				tmp := *input
545				inCpy = &tmp
546			}
547			req, _ := c.DescribeEnvironmentMembershipsRequest(inCpy)
548			req.SetContext(ctx)
549			req.ApplyOptions(opts...)
550			return req, nil
551		},
552	}
553
554	for p.Next() {
555		if !fn(p.Page().(*DescribeEnvironmentMembershipsOutput), !p.HasNextPage()) {
556			break
557		}
558	}
559
560	return p.Err()
561}
562
563const opDescribeEnvironmentStatus = "DescribeEnvironmentStatus"
564
565// DescribeEnvironmentStatusRequest generates a "aws/request.Request" representing the
566// client's request for the DescribeEnvironmentStatus operation. The "output" return
567// value will be populated with the request's response once the request completes
568// successfully.
569//
570// Use "Send" method on the returned Request to send the API call to the service.
571// the "output" return value is not valid until after Send returns without error.
572//
573// See DescribeEnvironmentStatus for more information on using the DescribeEnvironmentStatus
574// API call, and error handling.
575//
576// This method is useful when you want to inject custom logic or configuration
577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
578//
579//
580//    // Example sending a request using the DescribeEnvironmentStatusRequest method.
581//    req, resp := client.DescribeEnvironmentStatusRequest(params)
582//
583//    err := req.Send()
584//    if err == nil { // resp is now filled
585//        fmt.Println(resp)
586//    }
587//
588// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentStatus
589func (c *Cloud9) DescribeEnvironmentStatusRequest(input *DescribeEnvironmentStatusInput) (req *request.Request, output *DescribeEnvironmentStatusOutput) {
590	op := &request.Operation{
591		Name:       opDescribeEnvironmentStatus,
592		HTTPMethod: "POST",
593		HTTPPath:   "/",
594	}
595
596	if input == nil {
597		input = &DescribeEnvironmentStatusInput{}
598	}
599
600	output = &DescribeEnvironmentStatusOutput{}
601	req = c.newRequest(op, input, output)
602	return
603}
604
605// DescribeEnvironmentStatus API operation for AWS Cloud9.
606//
607// Gets status information for an Cloud9 development environment.
608//
609// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
610// with awserr.Error's Code and Message methods to get detailed information about
611// the error.
612//
613// See the AWS API reference guide for AWS Cloud9's
614// API operation DescribeEnvironmentStatus for usage and error information.
615//
616// Returned Error Types:
617//   * BadRequestException
618//   The target request is invalid.
619//
620//   * ConflictException
621//   A conflict occurred.
622//
623//   * NotFoundException
624//   The target resource cannot be found.
625//
626//   * ForbiddenException
627//   An access permissions issue occurred.
628//
629//   * TooManyRequestsException
630//   Too many service requests were made over the given time period.
631//
632//   * LimitExceededException
633//   A service limit was exceeded.
634//
635//   * InternalServerErrorException
636//   An internal server error occurred.
637//
638// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentStatus
639func (c *Cloud9) DescribeEnvironmentStatus(input *DescribeEnvironmentStatusInput) (*DescribeEnvironmentStatusOutput, error) {
640	req, out := c.DescribeEnvironmentStatusRequest(input)
641	return out, req.Send()
642}
643
644// DescribeEnvironmentStatusWithContext is the same as DescribeEnvironmentStatus with the addition of
645// the ability to pass a context and additional request options.
646//
647// See DescribeEnvironmentStatus for details on how to use this API operation.
648//
649// The context must be non-nil and will be used for request cancellation. If
650// the context is nil a panic will occur. In the future the SDK may create
651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
652// for more information on using Contexts.
653func (c *Cloud9) DescribeEnvironmentStatusWithContext(ctx aws.Context, input *DescribeEnvironmentStatusInput, opts ...request.Option) (*DescribeEnvironmentStatusOutput, error) {
654	req, out := c.DescribeEnvironmentStatusRequest(input)
655	req.SetContext(ctx)
656	req.ApplyOptions(opts...)
657	return out, req.Send()
658}
659
660const opDescribeEnvironments = "DescribeEnvironments"
661
662// DescribeEnvironmentsRequest generates a "aws/request.Request" representing the
663// client's request for the DescribeEnvironments operation. The "output" return
664// value will be populated with the request's response once the request completes
665// successfully.
666//
667// Use "Send" method on the returned Request to send the API call to the service.
668// the "output" return value is not valid until after Send returns without error.
669//
670// See DescribeEnvironments for more information on using the DescribeEnvironments
671// API call, and error handling.
672//
673// This method is useful when you want to inject custom logic or configuration
674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
675//
676//
677//    // Example sending a request using the DescribeEnvironmentsRequest method.
678//    req, resp := client.DescribeEnvironmentsRequest(params)
679//
680//    err := req.Send()
681//    if err == nil { // resp is now filled
682//        fmt.Println(resp)
683//    }
684//
685// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironments
686func (c *Cloud9) DescribeEnvironmentsRequest(input *DescribeEnvironmentsInput) (req *request.Request, output *DescribeEnvironmentsOutput) {
687	op := &request.Operation{
688		Name:       opDescribeEnvironments,
689		HTTPMethod: "POST",
690		HTTPPath:   "/",
691	}
692
693	if input == nil {
694		input = &DescribeEnvironmentsInput{}
695	}
696
697	output = &DescribeEnvironmentsOutput{}
698	req = c.newRequest(op, input, output)
699	return
700}
701
702// DescribeEnvironments API operation for AWS Cloud9.
703//
704// Gets information about Cloud9 development environments.
705//
706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
707// with awserr.Error's Code and Message methods to get detailed information about
708// the error.
709//
710// See the AWS API reference guide for AWS Cloud9's
711// API operation DescribeEnvironments for usage and error information.
712//
713// Returned Error Types:
714//   * BadRequestException
715//   The target request is invalid.
716//
717//   * ConflictException
718//   A conflict occurred.
719//
720//   * NotFoundException
721//   The target resource cannot be found.
722//
723//   * ForbiddenException
724//   An access permissions issue occurred.
725//
726//   * TooManyRequestsException
727//   Too many service requests were made over the given time period.
728//
729//   * LimitExceededException
730//   A service limit was exceeded.
731//
732//   * InternalServerErrorException
733//   An internal server error occurred.
734//
735// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironments
736func (c *Cloud9) DescribeEnvironments(input *DescribeEnvironmentsInput) (*DescribeEnvironmentsOutput, error) {
737	req, out := c.DescribeEnvironmentsRequest(input)
738	return out, req.Send()
739}
740
741// DescribeEnvironmentsWithContext is the same as DescribeEnvironments with the addition of
742// the ability to pass a context and additional request options.
743//
744// See DescribeEnvironments for details on how to use this API operation.
745//
746// The context must be non-nil and will be used for request cancellation. If
747// the context is nil a panic will occur. In the future the SDK may create
748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
749// for more information on using Contexts.
750func (c *Cloud9) DescribeEnvironmentsWithContext(ctx aws.Context, input *DescribeEnvironmentsInput, opts ...request.Option) (*DescribeEnvironmentsOutput, error) {
751	req, out := c.DescribeEnvironmentsRequest(input)
752	req.SetContext(ctx)
753	req.ApplyOptions(opts...)
754	return out, req.Send()
755}
756
757const opListEnvironments = "ListEnvironments"
758
759// ListEnvironmentsRequest generates a "aws/request.Request" representing the
760// client's request for the ListEnvironments operation. The "output" return
761// value will be populated with the request's response once the request completes
762// successfully.
763//
764// Use "Send" method on the returned Request to send the API call to the service.
765// the "output" return value is not valid until after Send returns without error.
766//
767// See ListEnvironments for more information on using the ListEnvironments
768// API call, and error handling.
769//
770// This method is useful when you want to inject custom logic or configuration
771// into the SDK's request lifecycle. Such as custom headers, or retry logic.
772//
773//
774//    // Example sending a request using the ListEnvironmentsRequest method.
775//    req, resp := client.ListEnvironmentsRequest(params)
776//
777//    err := req.Send()
778//    if err == nil { // resp is now filled
779//        fmt.Println(resp)
780//    }
781//
782// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/ListEnvironments
783func (c *Cloud9) ListEnvironmentsRequest(input *ListEnvironmentsInput) (req *request.Request, output *ListEnvironmentsOutput) {
784	op := &request.Operation{
785		Name:       opListEnvironments,
786		HTTPMethod: "POST",
787		HTTPPath:   "/",
788		Paginator: &request.Paginator{
789			InputTokens:     []string{"nextToken"},
790			OutputTokens:    []string{"nextToken"},
791			LimitToken:      "maxResults",
792			TruncationToken: "",
793		},
794	}
795
796	if input == nil {
797		input = &ListEnvironmentsInput{}
798	}
799
800	output = &ListEnvironmentsOutput{}
801	req = c.newRequest(op, input, output)
802	return
803}
804
805// ListEnvironments API operation for AWS Cloud9.
806//
807// Gets a list of Cloud9 development environment identifiers.
808//
809// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
810// with awserr.Error's Code and Message methods to get detailed information about
811// the error.
812//
813// See the AWS API reference guide for AWS Cloud9's
814// API operation ListEnvironments for usage and error information.
815//
816// Returned Error Types:
817//   * BadRequestException
818//   The target request is invalid.
819//
820//   * ConflictException
821//   A conflict occurred.
822//
823//   * NotFoundException
824//   The target resource cannot be found.
825//
826//   * ForbiddenException
827//   An access permissions issue occurred.
828//
829//   * TooManyRequestsException
830//   Too many service requests were made over the given time period.
831//
832//   * LimitExceededException
833//   A service limit was exceeded.
834//
835//   * InternalServerErrorException
836//   An internal server error occurred.
837//
838// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/ListEnvironments
839func (c *Cloud9) ListEnvironments(input *ListEnvironmentsInput) (*ListEnvironmentsOutput, error) {
840	req, out := c.ListEnvironmentsRequest(input)
841	return out, req.Send()
842}
843
844// ListEnvironmentsWithContext is the same as ListEnvironments with the addition of
845// the ability to pass a context and additional request options.
846//
847// See ListEnvironments for details on how to use this API operation.
848//
849// The context must be non-nil and will be used for request cancellation. If
850// the context is nil a panic will occur. In the future the SDK may create
851// sub-contexts for http.Requests. See https://golang.org/pkg/context/
852// for more information on using Contexts.
853func (c *Cloud9) ListEnvironmentsWithContext(ctx aws.Context, input *ListEnvironmentsInput, opts ...request.Option) (*ListEnvironmentsOutput, error) {
854	req, out := c.ListEnvironmentsRequest(input)
855	req.SetContext(ctx)
856	req.ApplyOptions(opts...)
857	return out, req.Send()
858}
859
860// ListEnvironmentsPages iterates over the pages of a ListEnvironments operation,
861// calling the "fn" function with the response data for each page. To stop
862// iterating, return false from the fn function.
863//
864// See ListEnvironments method for more information on how to use this operation.
865//
866// Note: This operation can generate multiple requests to a service.
867//
868//    // Example iterating over at most 3 pages of a ListEnvironments operation.
869//    pageNum := 0
870//    err := client.ListEnvironmentsPages(params,
871//        func(page *cloud9.ListEnvironmentsOutput, lastPage bool) bool {
872//            pageNum++
873//            fmt.Println(page)
874//            return pageNum <= 3
875//        })
876//
877func (c *Cloud9) ListEnvironmentsPages(input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool) error {
878	return c.ListEnvironmentsPagesWithContext(aws.BackgroundContext(), input, fn)
879}
880
881// ListEnvironmentsPagesWithContext same as ListEnvironmentsPages except
882// it takes a Context and allows setting request options on the pages.
883//
884// The context must be non-nil and will be used for request cancellation. If
885// the context is nil a panic will occur. In the future the SDK may create
886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
887// for more information on using Contexts.
888func (c *Cloud9) ListEnvironmentsPagesWithContext(ctx aws.Context, input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool, opts ...request.Option) error {
889	p := request.Pagination{
890		NewRequest: func() (*request.Request, error) {
891			var inCpy *ListEnvironmentsInput
892			if input != nil {
893				tmp := *input
894				inCpy = &tmp
895			}
896			req, _ := c.ListEnvironmentsRequest(inCpy)
897			req.SetContext(ctx)
898			req.ApplyOptions(opts...)
899			return req, nil
900		},
901	}
902
903	for p.Next() {
904		if !fn(p.Page().(*ListEnvironmentsOutput), !p.HasNextPage()) {
905			break
906		}
907	}
908
909	return p.Err()
910}
911
912const opListTagsForResource = "ListTagsForResource"
913
914// ListTagsForResourceRequest generates a "aws/request.Request" representing the
915// client's request for the ListTagsForResource operation. The "output" return
916// value will be populated with the request's response once the request completes
917// successfully.
918//
919// Use "Send" method on the returned Request to send the API call to the service.
920// the "output" return value is not valid until after Send returns without error.
921//
922// See ListTagsForResource for more information on using the ListTagsForResource
923// API call, and error handling.
924//
925// This method is useful when you want to inject custom logic or configuration
926// into the SDK's request lifecycle. Such as custom headers, or retry logic.
927//
928//
929//    // Example sending a request using the ListTagsForResourceRequest method.
930//    req, resp := client.ListTagsForResourceRequest(params)
931//
932//    err := req.Send()
933//    if err == nil { // resp is now filled
934//        fmt.Println(resp)
935//    }
936//
937// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/ListTagsForResource
938func (c *Cloud9) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
939	op := &request.Operation{
940		Name:       opListTagsForResource,
941		HTTPMethod: "POST",
942		HTTPPath:   "/",
943	}
944
945	if input == nil {
946		input = &ListTagsForResourceInput{}
947	}
948
949	output = &ListTagsForResourceOutput{}
950	req = c.newRequest(op, input, output)
951	return
952}
953
954// ListTagsForResource API operation for AWS Cloud9.
955//
956// Gets a list of the tags associated with an Cloud9 development environment.
957//
958// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
959// with awserr.Error's Code and Message methods to get detailed information about
960// the error.
961//
962// See the AWS API reference guide for AWS Cloud9's
963// API operation ListTagsForResource for usage and error information.
964//
965// Returned Error Types:
966//   * NotFoundException
967//   The target resource cannot be found.
968//
969//   * InternalServerErrorException
970//   An internal server error occurred.
971//
972//   * BadRequestException
973//   The target request is invalid.
974//
975// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/ListTagsForResource
976func (c *Cloud9) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
977	req, out := c.ListTagsForResourceRequest(input)
978	return out, req.Send()
979}
980
981// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
982// the ability to pass a context and additional request options.
983//
984// See ListTagsForResource for details on how to use this API operation.
985//
986// The context must be non-nil and will be used for request cancellation. If
987// the context is nil a panic will occur. In the future the SDK may create
988// sub-contexts for http.Requests. See https://golang.org/pkg/context/
989// for more information on using Contexts.
990func (c *Cloud9) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
991	req, out := c.ListTagsForResourceRequest(input)
992	req.SetContext(ctx)
993	req.ApplyOptions(opts...)
994	return out, req.Send()
995}
996
997const opTagResource = "TagResource"
998
999// TagResourceRequest generates a "aws/request.Request" representing the
1000// client's request for the TagResource operation. The "output" return
1001// value will be populated with the request's response once the request completes
1002// successfully.
1003//
1004// Use "Send" method on the returned Request to send the API call to the service.
1005// the "output" return value is not valid until after Send returns without error.
1006//
1007// See TagResource for more information on using the TagResource
1008// API call, and error handling.
1009//
1010// This method is useful when you want to inject custom logic or configuration
1011// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1012//
1013//
1014//    // Example sending a request using the TagResourceRequest method.
1015//    req, resp := client.TagResourceRequest(params)
1016//
1017//    err := req.Send()
1018//    if err == nil { // resp is now filled
1019//        fmt.Println(resp)
1020//    }
1021//
1022// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/TagResource
1023func (c *Cloud9) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1024	op := &request.Operation{
1025		Name:       opTagResource,
1026		HTTPMethod: "POST",
1027		HTTPPath:   "/",
1028	}
1029
1030	if input == nil {
1031		input = &TagResourceInput{}
1032	}
1033
1034	output = &TagResourceOutput{}
1035	req = c.newRequest(op, input, output)
1036	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1037	return
1038}
1039
1040// TagResource API operation for AWS Cloud9.
1041//
1042// Adds tags to an Cloud9 development environment.
1043//
1044// Tags that you add to an Cloud9 environment by using this method will NOT
1045// be automatically propagated to underlying resources.
1046//
1047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1048// with awserr.Error's Code and Message methods to get detailed information about
1049// the error.
1050//
1051// See the AWS API reference guide for AWS Cloud9's
1052// API operation TagResource for usage and error information.
1053//
1054// Returned Error Types:
1055//   * NotFoundException
1056//   The target resource cannot be found.
1057//
1058//   * InternalServerErrorException
1059//   An internal server error occurred.
1060//
1061//   * BadRequestException
1062//   The target request is invalid.
1063//
1064//   * ConcurrentAccessException
1065//   A concurrent access issue occurred.
1066//
1067// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/TagResource
1068func (c *Cloud9) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1069	req, out := c.TagResourceRequest(input)
1070	return out, req.Send()
1071}
1072
1073// TagResourceWithContext is the same as TagResource with the addition of
1074// the ability to pass a context and additional request options.
1075//
1076// See TagResource for details on how to use this API operation.
1077//
1078// The context must be non-nil and will be used for request cancellation. If
1079// the context is nil a panic will occur. In the future the SDK may create
1080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1081// for more information on using Contexts.
1082func (c *Cloud9) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1083	req, out := c.TagResourceRequest(input)
1084	req.SetContext(ctx)
1085	req.ApplyOptions(opts...)
1086	return out, req.Send()
1087}
1088
1089const opUntagResource = "UntagResource"
1090
1091// UntagResourceRequest generates a "aws/request.Request" representing the
1092// client's request for the UntagResource operation. The "output" return
1093// value will be populated with the request's response once the request completes
1094// successfully.
1095//
1096// Use "Send" method on the returned Request to send the API call to the service.
1097// the "output" return value is not valid until after Send returns without error.
1098//
1099// See UntagResource for more information on using the UntagResource
1100// API call, and error handling.
1101//
1102// This method is useful when you want to inject custom logic or configuration
1103// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1104//
1105//
1106//    // Example sending a request using the UntagResourceRequest method.
1107//    req, resp := client.UntagResourceRequest(params)
1108//
1109//    err := req.Send()
1110//    if err == nil { // resp is now filled
1111//        fmt.Println(resp)
1112//    }
1113//
1114// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UntagResource
1115func (c *Cloud9) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1116	op := &request.Operation{
1117		Name:       opUntagResource,
1118		HTTPMethod: "POST",
1119		HTTPPath:   "/",
1120	}
1121
1122	if input == nil {
1123		input = &UntagResourceInput{}
1124	}
1125
1126	output = &UntagResourceOutput{}
1127	req = c.newRequest(op, input, output)
1128	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1129	return
1130}
1131
1132// UntagResource API operation for AWS Cloud9.
1133//
1134// Removes tags from an Cloud9 development environment.
1135//
1136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1137// with awserr.Error's Code and Message methods to get detailed information about
1138// the error.
1139//
1140// See the AWS API reference guide for AWS Cloud9's
1141// API operation UntagResource for usage and error information.
1142//
1143// Returned Error Types:
1144//   * NotFoundException
1145//   The target resource cannot be found.
1146//
1147//   * InternalServerErrorException
1148//   An internal server error occurred.
1149//
1150//   * BadRequestException
1151//   The target request is invalid.
1152//
1153//   * ConcurrentAccessException
1154//   A concurrent access issue occurred.
1155//
1156// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UntagResource
1157func (c *Cloud9) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1158	req, out := c.UntagResourceRequest(input)
1159	return out, req.Send()
1160}
1161
1162// UntagResourceWithContext is the same as UntagResource with the addition of
1163// the ability to pass a context and additional request options.
1164//
1165// See UntagResource for details on how to use this API operation.
1166//
1167// The context must be non-nil and will be used for request cancellation. If
1168// the context is nil a panic will occur. In the future the SDK may create
1169// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1170// for more information on using Contexts.
1171func (c *Cloud9) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1172	req, out := c.UntagResourceRequest(input)
1173	req.SetContext(ctx)
1174	req.ApplyOptions(opts...)
1175	return out, req.Send()
1176}
1177
1178const opUpdateEnvironment = "UpdateEnvironment"
1179
1180// UpdateEnvironmentRequest generates a "aws/request.Request" representing the
1181// client's request for the UpdateEnvironment operation. The "output" return
1182// value will be populated with the request's response once the request completes
1183// successfully.
1184//
1185// Use "Send" method on the returned Request to send the API call to the service.
1186// the "output" return value is not valid until after Send returns without error.
1187//
1188// See UpdateEnvironment for more information on using the UpdateEnvironment
1189// API call, and error handling.
1190//
1191// This method is useful when you want to inject custom logic or configuration
1192// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1193//
1194//
1195//    // Example sending a request using the UpdateEnvironmentRequest method.
1196//    req, resp := client.UpdateEnvironmentRequest(params)
1197//
1198//    err := req.Send()
1199//    if err == nil { // resp is now filled
1200//        fmt.Println(resp)
1201//    }
1202//
1203// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironment
1204func (c *Cloud9) UpdateEnvironmentRequest(input *UpdateEnvironmentInput) (req *request.Request, output *UpdateEnvironmentOutput) {
1205	op := &request.Operation{
1206		Name:       opUpdateEnvironment,
1207		HTTPMethod: "POST",
1208		HTTPPath:   "/",
1209	}
1210
1211	if input == nil {
1212		input = &UpdateEnvironmentInput{}
1213	}
1214
1215	output = &UpdateEnvironmentOutput{}
1216	req = c.newRequest(op, input, output)
1217	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1218	return
1219}
1220
1221// UpdateEnvironment API operation for AWS Cloud9.
1222//
1223// Changes the settings of an existing Cloud9 development environment.
1224//
1225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1226// with awserr.Error's Code and Message methods to get detailed information about
1227// the error.
1228//
1229// See the AWS API reference guide for AWS Cloud9's
1230// API operation UpdateEnvironment for usage and error information.
1231//
1232// Returned Error Types:
1233//   * BadRequestException
1234//   The target request is invalid.
1235//
1236//   * ConflictException
1237//   A conflict occurred.
1238//
1239//   * NotFoundException
1240//   The target resource cannot be found.
1241//
1242//   * ForbiddenException
1243//   An access permissions issue occurred.
1244//
1245//   * TooManyRequestsException
1246//   Too many service requests were made over the given time period.
1247//
1248//   * LimitExceededException
1249//   A service limit was exceeded.
1250//
1251//   * InternalServerErrorException
1252//   An internal server error occurred.
1253//
1254// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironment
1255func (c *Cloud9) UpdateEnvironment(input *UpdateEnvironmentInput) (*UpdateEnvironmentOutput, error) {
1256	req, out := c.UpdateEnvironmentRequest(input)
1257	return out, req.Send()
1258}
1259
1260// UpdateEnvironmentWithContext is the same as UpdateEnvironment with the addition of
1261// the ability to pass a context and additional request options.
1262//
1263// See UpdateEnvironment for details on how to use this API operation.
1264//
1265// The context must be non-nil and will be used for request cancellation. If
1266// the context is nil a panic will occur. In the future the SDK may create
1267// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1268// for more information on using Contexts.
1269func (c *Cloud9) UpdateEnvironmentWithContext(ctx aws.Context, input *UpdateEnvironmentInput, opts ...request.Option) (*UpdateEnvironmentOutput, error) {
1270	req, out := c.UpdateEnvironmentRequest(input)
1271	req.SetContext(ctx)
1272	req.ApplyOptions(opts...)
1273	return out, req.Send()
1274}
1275
1276const opUpdateEnvironmentMembership = "UpdateEnvironmentMembership"
1277
1278// UpdateEnvironmentMembershipRequest generates a "aws/request.Request" representing the
1279// client's request for the UpdateEnvironmentMembership operation. The "output" return
1280// value will be populated with the request's response once the request completes
1281// successfully.
1282//
1283// Use "Send" method on the returned Request to send the API call to the service.
1284// the "output" return value is not valid until after Send returns without error.
1285//
1286// See UpdateEnvironmentMembership for more information on using the UpdateEnvironmentMembership
1287// API call, and error handling.
1288//
1289// This method is useful when you want to inject custom logic or configuration
1290// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1291//
1292//
1293//    // Example sending a request using the UpdateEnvironmentMembershipRequest method.
1294//    req, resp := client.UpdateEnvironmentMembershipRequest(params)
1295//
1296//    err := req.Send()
1297//    if err == nil { // resp is now filled
1298//        fmt.Println(resp)
1299//    }
1300//
1301// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironmentMembership
1302func (c *Cloud9) UpdateEnvironmentMembershipRequest(input *UpdateEnvironmentMembershipInput) (req *request.Request, output *UpdateEnvironmentMembershipOutput) {
1303	op := &request.Operation{
1304		Name:       opUpdateEnvironmentMembership,
1305		HTTPMethod: "POST",
1306		HTTPPath:   "/",
1307	}
1308
1309	if input == nil {
1310		input = &UpdateEnvironmentMembershipInput{}
1311	}
1312
1313	output = &UpdateEnvironmentMembershipOutput{}
1314	req = c.newRequest(op, input, output)
1315	return
1316}
1317
1318// UpdateEnvironmentMembership API operation for AWS Cloud9.
1319//
1320// Changes the settings of an existing environment member for an Cloud9 development
1321// environment.
1322//
1323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1324// with awserr.Error's Code and Message methods to get detailed information about
1325// the error.
1326//
1327// See the AWS API reference guide for AWS Cloud9's
1328// API operation UpdateEnvironmentMembership for usage and error information.
1329//
1330// Returned Error Types:
1331//   * BadRequestException
1332//   The target request is invalid.
1333//
1334//   * ConflictException
1335//   A conflict occurred.
1336//
1337//   * NotFoundException
1338//   The target resource cannot be found.
1339//
1340//   * ForbiddenException
1341//   An access permissions issue occurred.
1342//
1343//   * TooManyRequestsException
1344//   Too many service requests were made over the given time period.
1345//
1346//   * LimitExceededException
1347//   A service limit was exceeded.
1348//
1349//   * InternalServerErrorException
1350//   An internal server error occurred.
1351//
1352// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironmentMembership
1353func (c *Cloud9) UpdateEnvironmentMembership(input *UpdateEnvironmentMembershipInput) (*UpdateEnvironmentMembershipOutput, error) {
1354	req, out := c.UpdateEnvironmentMembershipRequest(input)
1355	return out, req.Send()
1356}
1357
1358// UpdateEnvironmentMembershipWithContext is the same as UpdateEnvironmentMembership with the addition of
1359// the ability to pass a context and additional request options.
1360//
1361// See UpdateEnvironmentMembership for details on how to use this API operation.
1362//
1363// The context must be non-nil and will be used for request cancellation. If
1364// the context is nil a panic will occur. In the future the SDK may create
1365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1366// for more information on using Contexts.
1367func (c *Cloud9) UpdateEnvironmentMembershipWithContext(ctx aws.Context, input *UpdateEnvironmentMembershipInput, opts ...request.Option) (*UpdateEnvironmentMembershipOutput, error) {
1368	req, out := c.UpdateEnvironmentMembershipRequest(input)
1369	req.SetContext(ctx)
1370	req.ApplyOptions(opts...)
1371	return out, req.Send()
1372}
1373
1374// The target request is invalid.
1375type BadRequestException struct {
1376	_            struct{}                  `type:"structure"`
1377	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1378
1379	Message_ *string `locationName:"message" type:"string"`
1380}
1381
1382// String returns the string representation.
1383//
1384// API parameter values that are decorated as "sensitive" in the API will not
1385// be included in the string output. The member name will be present, but the
1386// value will be replaced with "sensitive".
1387func (s BadRequestException) String() string {
1388	return awsutil.Prettify(s)
1389}
1390
1391// GoString returns the string representation.
1392//
1393// API parameter values that are decorated as "sensitive" in the API will not
1394// be included in the string output. The member name will be present, but the
1395// value will be replaced with "sensitive".
1396func (s BadRequestException) GoString() string {
1397	return s.String()
1398}
1399
1400func newErrorBadRequestException(v protocol.ResponseMetadata) error {
1401	return &BadRequestException{
1402		RespMetadata: v,
1403	}
1404}
1405
1406// Code returns the exception type name.
1407func (s *BadRequestException) Code() string {
1408	return "BadRequestException"
1409}
1410
1411// Message returns the exception's message.
1412func (s *BadRequestException) Message() string {
1413	if s.Message_ != nil {
1414		return *s.Message_
1415	}
1416	return ""
1417}
1418
1419// OrigErr always returns nil, satisfies awserr.Error interface.
1420func (s *BadRequestException) OrigErr() error {
1421	return nil
1422}
1423
1424func (s *BadRequestException) Error() string {
1425	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1426}
1427
1428// Status code returns the HTTP status code for the request's response error.
1429func (s *BadRequestException) StatusCode() int {
1430	return s.RespMetadata.StatusCode
1431}
1432
1433// RequestID returns the service's response RequestID for request.
1434func (s *BadRequestException) RequestID() string {
1435	return s.RespMetadata.RequestID
1436}
1437
1438// A concurrent access issue occurred.
1439type ConcurrentAccessException struct {
1440	_            struct{}                  `type:"structure"`
1441	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1442
1443	Message_ *string `locationName:"message" type:"string"`
1444}
1445
1446// String returns the string representation.
1447//
1448// API parameter values that are decorated as "sensitive" in the API will not
1449// be included in the string output. The member name will be present, but the
1450// value will be replaced with "sensitive".
1451func (s ConcurrentAccessException) String() string {
1452	return awsutil.Prettify(s)
1453}
1454
1455// GoString returns the string representation.
1456//
1457// API parameter values that are decorated as "sensitive" in the API will not
1458// be included in the string output. The member name will be present, but the
1459// value will be replaced with "sensitive".
1460func (s ConcurrentAccessException) GoString() string {
1461	return s.String()
1462}
1463
1464func newErrorConcurrentAccessException(v protocol.ResponseMetadata) error {
1465	return &ConcurrentAccessException{
1466		RespMetadata: v,
1467	}
1468}
1469
1470// Code returns the exception type name.
1471func (s *ConcurrentAccessException) Code() string {
1472	return "ConcurrentAccessException"
1473}
1474
1475// Message returns the exception's message.
1476func (s *ConcurrentAccessException) Message() string {
1477	if s.Message_ != nil {
1478		return *s.Message_
1479	}
1480	return ""
1481}
1482
1483// OrigErr always returns nil, satisfies awserr.Error interface.
1484func (s *ConcurrentAccessException) OrigErr() error {
1485	return nil
1486}
1487
1488func (s *ConcurrentAccessException) Error() string {
1489	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1490}
1491
1492// Status code returns the HTTP status code for the request's response error.
1493func (s *ConcurrentAccessException) StatusCode() int {
1494	return s.RespMetadata.StatusCode
1495}
1496
1497// RequestID returns the service's response RequestID for request.
1498func (s *ConcurrentAccessException) RequestID() string {
1499	return s.RespMetadata.RequestID
1500}
1501
1502// A conflict occurred.
1503type ConflictException struct {
1504	_            struct{}                  `type:"structure"`
1505	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1506
1507	Message_ *string `locationName:"message" type:"string"`
1508}
1509
1510// String returns the string representation.
1511//
1512// API parameter values that are decorated as "sensitive" in the API will not
1513// be included in the string output. The member name will be present, but the
1514// value will be replaced with "sensitive".
1515func (s ConflictException) String() string {
1516	return awsutil.Prettify(s)
1517}
1518
1519// GoString returns the string representation.
1520//
1521// API parameter values that are decorated as "sensitive" in the API will not
1522// be included in the string output. The member name will be present, but the
1523// value will be replaced with "sensitive".
1524func (s ConflictException) GoString() string {
1525	return s.String()
1526}
1527
1528func newErrorConflictException(v protocol.ResponseMetadata) error {
1529	return &ConflictException{
1530		RespMetadata: v,
1531	}
1532}
1533
1534// Code returns the exception type name.
1535func (s *ConflictException) Code() string {
1536	return "ConflictException"
1537}
1538
1539// Message returns the exception's message.
1540func (s *ConflictException) Message() string {
1541	if s.Message_ != nil {
1542		return *s.Message_
1543	}
1544	return ""
1545}
1546
1547// OrigErr always returns nil, satisfies awserr.Error interface.
1548func (s *ConflictException) OrigErr() error {
1549	return nil
1550}
1551
1552func (s *ConflictException) Error() string {
1553	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1554}
1555
1556// Status code returns the HTTP status code for the request's response error.
1557func (s *ConflictException) StatusCode() int {
1558	return s.RespMetadata.StatusCode
1559}
1560
1561// RequestID returns the service's response RequestID for request.
1562func (s *ConflictException) RequestID() string {
1563	return s.RespMetadata.RequestID
1564}
1565
1566type CreateEnvironmentEC2Input struct {
1567	_ struct{} `type:"structure"`
1568
1569	// The number of minutes until the running instance is shut down after the environment
1570	// has last been used.
1571	AutomaticStopTimeMinutes *int64 `locationName:"automaticStopTimeMinutes" type:"integer"`
1572
1573	// A unique, case-sensitive string that helps Cloud9 to ensure this operation
1574	// completes no more than one time.
1575	//
1576	// For more information, see Client Tokens (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html)
1577	// in the Amazon EC2 API Reference.
1578	ClientRequestToken *string `locationName:"clientRequestToken" type:"string"`
1579
1580	// The connection type used for connecting to an Amazon EC2 environment. Valid
1581	// values are CONNECT_SSH (default) and CONNECT_SSM (connected through Amazon
1582	// EC2 Systems Manager).
1583	//
1584	// For more information, see Accessing no-ingress EC2 instances with Amazon
1585	// EC2 Systems Manager (https://docs.aws.amazon.com/cloud9/latest/user-guide/ec2-ssm.html)
1586	// in the Cloud9 User Guide.
1587	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
1588
1589	// The description of the environment to create.
1590	//
1591	// Description is a sensitive parameter and its value will be
1592	// replaced with "sensitive" in string returned by CreateEnvironmentEC2Input's
1593	// String and GoString methods.
1594	Description *string `locationName:"description" type:"string" sensitive:"true"`
1595
1596	// Checks whether you have the required permissions for the action, without
1597	// actually making the request, and provides an error response. If you have
1598	// the required permissions, the error response is DryRunOperation. Otherwise,
1599	// it is UnauthorizedOperation.
1600	DryRun *bool `locationName:"dryRun" type:"boolean"`
1601
1602	// The identifier for the Amazon Machine Image (AMI) that's used to create the
1603	// EC2 instance. To choose an AMI for the instance, you must specify a valid
1604	// AMI alias or a valid Amazon EC2 Systems Manager (SSM) path.
1605	//
1606	// The default AMI is used if the parameter isn't explicitly assigned a value
1607	// in the request. Because Amazon Linux AMI has ended standard support as of
1608	// December 31, 2020, we recommend you choose Amazon Linux 2, which includes
1609	// long term support through 2023.
1610	//
1611	// AMI aliases
1612	//
1613	//    * Amazon Linux (default): amazonlinux-1-x86_64
1614	//
1615	//    * Amazon Linux 2: amazonlinux-2-x86_64
1616	//
1617	//    * Ubuntu 18.04: ubuntu-18.04-x86_64
1618	//
1619	// SSM paths
1620	//
1621	//    * Amazon Linux (default): resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64
1622	//
1623	//    * Amazon Linux 2: resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64
1624	//
1625	//    * Ubuntu 18.04: resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64
1626	ImageId *string `locationName:"imageId" type:"string"`
1627
1628	// The type of instance to connect to the environment (for example, t2.micro).
1629	//
1630	// InstanceType is a required field
1631	InstanceType *string `locationName:"instanceType" min:"5" type:"string" required:"true"`
1632
1633	// The name of the environment to create.
1634	//
1635	// This name is visible to other IAM users in the same Amazon Web Services account.
1636	//
1637	// Name is a required field
1638	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
1639
1640	// The Amazon Resource Name (ARN) of the environment owner. This ARN can be
1641	// the ARN of any IAM principal. If this value is not specified, the ARN defaults
1642	// to this environment's creator.
1643	OwnerArn *string `locationName:"ownerArn" type:"string"`
1644
1645	// The ID of the subnet in Amazon VPC that Cloud9 will use to communicate with
1646	// the Amazon EC2 instance.
1647	SubnetId *string `locationName:"subnetId" min:"15" type:"string"`
1648
1649	// An array of key-value pairs that will be associated with the new Cloud9 development
1650	// environment.
1651	//
1652	// Tags is a sensitive parameter and its value will be
1653	// replaced with "sensitive" in string returned by CreateEnvironmentEC2Input's
1654	// String and GoString methods.
1655	Tags []*Tag `locationName:"tags" type:"list" sensitive:"true"`
1656}
1657
1658// String returns the string representation.
1659//
1660// API parameter values that are decorated as "sensitive" in the API will not
1661// be included in the string output. The member name will be present, but the
1662// value will be replaced with "sensitive".
1663func (s CreateEnvironmentEC2Input) String() string {
1664	return awsutil.Prettify(s)
1665}
1666
1667// GoString returns the string representation.
1668//
1669// API parameter values that are decorated as "sensitive" in the API will not
1670// be included in the string output. The member name will be present, but the
1671// value will be replaced with "sensitive".
1672func (s CreateEnvironmentEC2Input) GoString() string {
1673	return s.String()
1674}
1675
1676// Validate inspects the fields of the type to determine if they are valid.
1677func (s *CreateEnvironmentEC2Input) Validate() error {
1678	invalidParams := request.ErrInvalidParams{Context: "CreateEnvironmentEC2Input"}
1679	if s.InstanceType == nil {
1680		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
1681	}
1682	if s.InstanceType != nil && len(*s.InstanceType) < 5 {
1683		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 5))
1684	}
1685	if s.Name == nil {
1686		invalidParams.Add(request.NewErrParamRequired("Name"))
1687	}
1688	if s.Name != nil && len(*s.Name) < 1 {
1689		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
1690	}
1691	if s.SubnetId != nil && len(*s.SubnetId) < 15 {
1692		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 15))
1693	}
1694	if s.Tags != nil {
1695		for i, v := range s.Tags {
1696			if v == nil {
1697				continue
1698			}
1699			if err := v.Validate(); err != nil {
1700				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
1701			}
1702		}
1703	}
1704
1705	if invalidParams.Len() > 0 {
1706		return invalidParams
1707	}
1708	return nil
1709}
1710
1711// SetAutomaticStopTimeMinutes sets the AutomaticStopTimeMinutes field's value.
1712func (s *CreateEnvironmentEC2Input) SetAutomaticStopTimeMinutes(v int64) *CreateEnvironmentEC2Input {
1713	s.AutomaticStopTimeMinutes = &v
1714	return s
1715}
1716
1717// SetClientRequestToken sets the ClientRequestToken field's value.
1718func (s *CreateEnvironmentEC2Input) SetClientRequestToken(v string) *CreateEnvironmentEC2Input {
1719	s.ClientRequestToken = &v
1720	return s
1721}
1722
1723// SetConnectionType sets the ConnectionType field's value.
1724func (s *CreateEnvironmentEC2Input) SetConnectionType(v string) *CreateEnvironmentEC2Input {
1725	s.ConnectionType = &v
1726	return s
1727}
1728
1729// SetDescription sets the Description field's value.
1730func (s *CreateEnvironmentEC2Input) SetDescription(v string) *CreateEnvironmentEC2Input {
1731	s.Description = &v
1732	return s
1733}
1734
1735// SetDryRun sets the DryRun field's value.
1736func (s *CreateEnvironmentEC2Input) SetDryRun(v bool) *CreateEnvironmentEC2Input {
1737	s.DryRun = &v
1738	return s
1739}
1740
1741// SetImageId sets the ImageId field's value.
1742func (s *CreateEnvironmentEC2Input) SetImageId(v string) *CreateEnvironmentEC2Input {
1743	s.ImageId = &v
1744	return s
1745}
1746
1747// SetInstanceType sets the InstanceType field's value.
1748func (s *CreateEnvironmentEC2Input) SetInstanceType(v string) *CreateEnvironmentEC2Input {
1749	s.InstanceType = &v
1750	return s
1751}
1752
1753// SetName sets the Name field's value.
1754func (s *CreateEnvironmentEC2Input) SetName(v string) *CreateEnvironmentEC2Input {
1755	s.Name = &v
1756	return s
1757}
1758
1759// SetOwnerArn sets the OwnerArn field's value.
1760func (s *CreateEnvironmentEC2Input) SetOwnerArn(v string) *CreateEnvironmentEC2Input {
1761	s.OwnerArn = &v
1762	return s
1763}
1764
1765// SetSubnetId sets the SubnetId field's value.
1766func (s *CreateEnvironmentEC2Input) SetSubnetId(v string) *CreateEnvironmentEC2Input {
1767	s.SubnetId = &v
1768	return s
1769}
1770
1771// SetTags sets the Tags field's value.
1772func (s *CreateEnvironmentEC2Input) SetTags(v []*Tag) *CreateEnvironmentEC2Input {
1773	s.Tags = v
1774	return s
1775}
1776
1777type CreateEnvironmentEC2Output struct {
1778	_ struct{} `type:"structure"`
1779
1780	// The ID of the environment that was created.
1781	EnvironmentId *string `locationName:"environmentId" type:"string"`
1782}
1783
1784// String returns the string representation.
1785//
1786// API parameter values that are decorated as "sensitive" in the API will not
1787// be included in the string output. The member name will be present, but the
1788// value will be replaced with "sensitive".
1789func (s CreateEnvironmentEC2Output) String() string {
1790	return awsutil.Prettify(s)
1791}
1792
1793// GoString returns the string representation.
1794//
1795// API parameter values that are decorated as "sensitive" in the API will not
1796// be included in the string output. The member name will be present, but the
1797// value will be replaced with "sensitive".
1798func (s CreateEnvironmentEC2Output) GoString() string {
1799	return s.String()
1800}
1801
1802// SetEnvironmentId sets the EnvironmentId field's value.
1803func (s *CreateEnvironmentEC2Output) SetEnvironmentId(v string) *CreateEnvironmentEC2Output {
1804	s.EnvironmentId = &v
1805	return s
1806}
1807
1808type CreateEnvironmentMembershipInput struct {
1809	_ struct{} `type:"structure"`
1810
1811	// The ID of the environment that contains the environment member you want to
1812	// add.
1813	//
1814	// EnvironmentId is a required field
1815	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
1816
1817	// The type of environment member permissions you want to associate with this
1818	// environment member. Available values include:
1819	//
1820	//    * read-only: Has read-only access to the environment.
1821	//
1822	//    * read-write: Has read-write access to the environment.
1823	//
1824	// Permissions is a required field
1825	Permissions *string `locationName:"permissions" type:"string" required:"true" enum:"MemberPermissions"`
1826
1827	// The Amazon Resource Name (ARN) of the environment member you want to add.
1828	//
1829	// UserArn is a required field
1830	UserArn *string `locationName:"userArn" type:"string" required:"true"`
1831}
1832
1833// String returns the string representation.
1834//
1835// API parameter values that are decorated as "sensitive" in the API will not
1836// be included in the string output. The member name will be present, but the
1837// value will be replaced with "sensitive".
1838func (s CreateEnvironmentMembershipInput) String() string {
1839	return awsutil.Prettify(s)
1840}
1841
1842// GoString returns the string representation.
1843//
1844// API parameter values that are decorated as "sensitive" in the API will not
1845// be included in the string output. The member name will be present, but the
1846// value will be replaced with "sensitive".
1847func (s CreateEnvironmentMembershipInput) GoString() string {
1848	return s.String()
1849}
1850
1851// Validate inspects the fields of the type to determine if they are valid.
1852func (s *CreateEnvironmentMembershipInput) Validate() error {
1853	invalidParams := request.ErrInvalidParams{Context: "CreateEnvironmentMembershipInput"}
1854	if s.EnvironmentId == nil {
1855		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
1856	}
1857	if s.Permissions == nil {
1858		invalidParams.Add(request.NewErrParamRequired("Permissions"))
1859	}
1860	if s.UserArn == nil {
1861		invalidParams.Add(request.NewErrParamRequired("UserArn"))
1862	}
1863
1864	if invalidParams.Len() > 0 {
1865		return invalidParams
1866	}
1867	return nil
1868}
1869
1870// SetEnvironmentId sets the EnvironmentId field's value.
1871func (s *CreateEnvironmentMembershipInput) SetEnvironmentId(v string) *CreateEnvironmentMembershipInput {
1872	s.EnvironmentId = &v
1873	return s
1874}
1875
1876// SetPermissions sets the Permissions field's value.
1877func (s *CreateEnvironmentMembershipInput) SetPermissions(v string) *CreateEnvironmentMembershipInput {
1878	s.Permissions = &v
1879	return s
1880}
1881
1882// SetUserArn sets the UserArn field's value.
1883func (s *CreateEnvironmentMembershipInput) SetUserArn(v string) *CreateEnvironmentMembershipInput {
1884	s.UserArn = &v
1885	return s
1886}
1887
1888type CreateEnvironmentMembershipOutput struct {
1889	_ struct{} `type:"structure"`
1890
1891	// Information about the environment member that was added.
1892	//
1893	// Membership is a required field
1894	Membership *EnvironmentMember `locationName:"membership" type:"structure" required:"true"`
1895}
1896
1897// String returns the string representation.
1898//
1899// API parameter values that are decorated as "sensitive" in the API will not
1900// be included in the string output. The member name will be present, but the
1901// value will be replaced with "sensitive".
1902func (s CreateEnvironmentMembershipOutput) String() string {
1903	return awsutil.Prettify(s)
1904}
1905
1906// GoString returns the string representation.
1907//
1908// API parameter values that are decorated as "sensitive" in the API will not
1909// be included in the string output. The member name will be present, but the
1910// value will be replaced with "sensitive".
1911func (s CreateEnvironmentMembershipOutput) GoString() string {
1912	return s.String()
1913}
1914
1915// SetMembership sets the Membership field's value.
1916func (s *CreateEnvironmentMembershipOutput) SetMembership(v *EnvironmentMember) *CreateEnvironmentMembershipOutput {
1917	s.Membership = v
1918	return s
1919}
1920
1921type DeleteEnvironmentInput struct {
1922	_ struct{} `type:"structure"`
1923
1924	// The ID of the environment to delete.
1925	//
1926	// EnvironmentId is a required field
1927	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
1928}
1929
1930// String returns the string representation.
1931//
1932// API parameter values that are decorated as "sensitive" in the API will not
1933// be included in the string output. The member name will be present, but the
1934// value will be replaced with "sensitive".
1935func (s DeleteEnvironmentInput) String() string {
1936	return awsutil.Prettify(s)
1937}
1938
1939// GoString returns the string representation.
1940//
1941// API parameter values that are decorated as "sensitive" in the API will not
1942// be included in the string output. The member name will be present, but the
1943// value will be replaced with "sensitive".
1944func (s DeleteEnvironmentInput) GoString() string {
1945	return s.String()
1946}
1947
1948// Validate inspects the fields of the type to determine if they are valid.
1949func (s *DeleteEnvironmentInput) Validate() error {
1950	invalidParams := request.ErrInvalidParams{Context: "DeleteEnvironmentInput"}
1951	if s.EnvironmentId == nil {
1952		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
1953	}
1954
1955	if invalidParams.Len() > 0 {
1956		return invalidParams
1957	}
1958	return nil
1959}
1960
1961// SetEnvironmentId sets the EnvironmentId field's value.
1962func (s *DeleteEnvironmentInput) SetEnvironmentId(v string) *DeleteEnvironmentInput {
1963	s.EnvironmentId = &v
1964	return s
1965}
1966
1967type DeleteEnvironmentMembershipInput struct {
1968	_ struct{} `type:"structure"`
1969
1970	// The ID of the environment to delete the environment member from.
1971	//
1972	// EnvironmentId is a required field
1973	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
1974
1975	// The Amazon Resource Name (ARN) of the environment member to delete from the
1976	// environment.
1977	//
1978	// UserArn is a required field
1979	UserArn *string `locationName:"userArn" type:"string" required:"true"`
1980}
1981
1982// String returns the string representation.
1983//
1984// API parameter values that are decorated as "sensitive" in the API will not
1985// be included in the string output. The member name will be present, but the
1986// value will be replaced with "sensitive".
1987func (s DeleteEnvironmentMembershipInput) String() string {
1988	return awsutil.Prettify(s)
1989}
1990
1991// GoString returns the string representation.
1992//
1993// API parameter values that are decorated as "sensitive" in the API will not
1994// be included in the string output. The member name will be present, but the
1995// value will be replaced with "sensitive".
1996func (s DeleteEnvironmentMembershipInput) GoString() string {
1997	return s.String()
1998}
1999
2000// Validate inspects the fields of the type to determine if they are valid.
2001func (s *DeleteEnvironmentMembershipInput) Validate() error {
2002	invalidParams := request.ErrInvalidParams{Context: "DeleteEnvironmentMembershipInput"}
2003	if s.EnvironmentId == nil {
2004		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
2005	}
2006	if s.UserArn == nil {
2007		invalidParams.Add(request.NewErrParamRequired("UserArn"))
2008	}
2009
2010	if invalidParams.Len() > 0 {
2011		return invalidParams
2012	}
2013	return nil
2014}
2015
2016// SetEnvironmentId sets the EnvironmentId field's value.
2017func (s *DeleteEnvironmentMembershipInput) SetEnvironmentId(v string) *DeleteEnvironmentMembershipInput {
2018	s.EnvironmentId = &v
2019	return s
2020}
2021
2022// SetUserArn sets the UserArn field's value.
2023func (s *DeleteEnvironmentMembershipInput) SetUserArn(v string) *DeleteEnvironmentMembershipInput {
2024	s.UserArn = &v
2025	return s
2026}
2027
2028type DeleteEnvironmentMembershipOutput struct {
2029	_ struct{} `type:"structure"`
2030}
2031
2032// String returns the string representation.
2033//
2034// API parameter values that are decorated as "sensitive" in the API will not
2035// be included in the string output. The member name will be present, but the
2036// value will be replaced with "sensitive".
2037func (s DeleteEnvironmentMembershipOutput) String() string {
2038	return awsutil.Prettify(s)
2039}
2040
2041// GoString returns the string representation.
2042//
2043// API parameter values that are decorated as "sensitive" in the API will not
2044// be included in the string output. The member name will be present, but the
2045// value will be replaced with "sensitive".
2046func (s DeleteEnvironmentMembershipOutput) GoString() string {
2047	return s.String()
2048}
2049
2050type DeleteEnvironmentOutput struct {
2051	_ struct{} `type:"structure"`
2052}
2053
2054// String returns the string representation.
2055//
2056// API parameter values that are decorated as "sensitive" in the API will not
2057// be included in the string output. The member name will be present, but the
2058// value will be replaced with "sensitive".
2059func (s DeleteEnvironmentOutput) String() string {
2060	return awsutil.Prettify(s)
2061}
2062
2063// GoString returns the string representation.
2064//
2065// API parameter values that are decorated as "sensitive" in the API will not
2066// be included in the string output. The member name will be present, but the
2067// value will be replaced with "sensitive".
2068func (s DeleteEnvironmentOutput) GoString() string {
2069	return s.String()
2070}
2071
2072type DescribeEnvironmentMembershipsInput struct {
2073	_ struct{} `type:"structure"`
2074
2075	// The ID of the environment to get environment member information about.
2076	EnvironmentId *string `locationName:"environmentId" type:"string"`
2077
2078	// The maximum number of environment members to get information about.
2079	MaxResults *int64 `locationName:"maxResults" type:"integer"`
2080
2081	// During a previous call, if there are more than 25 items in the list, only
2082	// the first 25 items are returned, along with a unique string called a next
2083	// token. To get the next batch of items in the list, call this operation again,
2084	// adding the next token to the call. To get all of the items in the list, keep
2085	// calling this operation with each subsequent next token that is returned,
2086	// until no more next tokens are returned.
2087	NextToken *string `locationName:"nextToken" type:"string"`
2088
2089	// The type of environment member permissions to get information about. Available
2090	// values include:
2091	//
2092	//    * owner: Owns the environment.
2093	//
2094	//    * read-only: Has read-only access to the environment.
2095	//
2096	//    * read-write: Has read-write access to the environment.
2097	//
2098	// If no value is specified, information about all environment members are returned.
2099	Permissions []*string `locationName:"permissions" type:"list"`
2100
2101	// The Amazon Resource Name (ARN) of an individual environment member to get
2102	// information about. If no value is specified, information about all environment
2103	// members are returned.
2104	UserArn *string `locationName:"userArn" type:"string"`
2105}
2106
2107// String returns the string representation.
2108//
2109// API parameter values that are decorated as "sensitive" in the API will not
2110// be included in the string output. The member name will be present, but the
2111// value will be replaced with "sensitive".
2112func (s DescribeEnvironmentMembershipsInput) String() string {
2113	return awsutil.Prettify(s)
2114}
2115
2116// GoString returns the string representation.
2117//
2118// API parameter values that are decorated as "sensitive" in the API will not
2119// be included in the string output. The member name will be present, but the
2120// value will be replaced with "sensitive".
2121func (s DescribeEnvironmentMembershipsInput) GoString() string {
2122	return s.String()
2123}
2124
2125// SetEnvironmentId sets the EnvironmentId field's value.
2126func (s *DescribeEnvironmentMembershipsInput) SetEnvironmentId(v string) *DescribeEnvironmentMembershipsInput {
2127	s.EnvironmentId = &v
2128	return s
2129}
2130
2131// SetMaxResults sets the MaxResults field's value.
2132func (s *DescribeEnvironmentMembershipsInput) SetMaxResults(v int64) *DescribeEnvironmentMembershipsInput {
2133	s.MaxResults = &v
2134	return s
2135}
2136
2137// SetNextToken sets the NextToken field's value.
2138func (s *DescribeEnvironmentMembershipsInput) SetNextToken(v string) *DescribeEnvironmentMembershipsInput {
2139	s.NextToken = &v
2140	return s
2141}
2142
2143// SetPermissions sets the Permissions field's value.
2144func (s *DescribeEnvironmentMembershipsInput) SetPermissions(v []*string) *DescribeEnvironmentMembershipsInput {
2145	s.Permissions = v
2146	return s
2147}
2148
2149// SetUserArn sets the UserArn field's value.
2150func (s *DescribeEnvironmentMembershipsInput) SetUserArn(v string) *DescribeEnvironmentMembershipsInput {
2151	s.UserArn = &v
2152	return s
2153}
2154
2155type DescribeEnvironmentMembershipsOutput struct {
2156	_ struct{} `type:"structure"`
2157
2158	// Information about the environment members for the environment.
2159	Memberships []*EnvironmentMember `locationName:"memberships" type:"list"`
2160
2161	// If there are more than 25 items in the list, only the first 25 items are
2162	// returned, along with a unique string called a next token. To get the next
2163	// batch of items in the list, call this operation again, adding the next token
2164	// to the call.
2165	NextToken *string `locationName:"nextToken" type:"string"`
2166}
2167
2168// String returns the string representation.
2169//
2170// API parameter values that are decorated as "sensitive" in the API will not
2171// be included in the string output. The member name will be present, but the
2172// value will be replaced with "sensitive".
2173func (s DescribeEnvironmentMembershipsOutput) String() string {
2174	return awsutil.Prettify(s)
2175}
2176
2177// GoString returns the string representation.
2178//
2179// API parameter values that are decorated as "sensitive" in the API will not
2180// be included in the string output. The member name will be present, but the
2181// value will be replaced with "sensitive".
2182func (s DescribeEnvironmentMembershipsOutput) GoString() string {
2183	return s.String()
2184}
2185
2186// SetMemberships sets the Memberships field's value.
2187func (s *DescribeEnvironmentMembershipsOutput) SetMemberships(v []*EnvironmentMember) *DescribeEnvironmentMembershipsOutput {
2188	s.Memberships = v
2189	return s
2190}
2191
2192// SetNextToken sets the NextToken field's value.
2193func (s *DescribeEnvironmentMembershipsOutput) SetNextToken(v string) *DescribeEnvironmentMembershipsOutput {
2194	s.NextToken = &v
2195	return s
2196}
2197
2198type DescribeEnvironmentStatusInput struct {
2199	_ struct{} `type:"structure"`
2200
2201	// The ID of the environment to get status information about.
2202	//
2203	// EnvironmentId is a required field
2204	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
2205}
2206
2207// String returns the string representation.
2208//
2209// API parameter values that are decorated as "sensitive" in the API will not
2210// be included in the string output. The member name will be present, but the
2211// value will be replaced with "sensitive".
2212func (s DescribeEnvironmentStatusInput) String() string {
2213	return awsutil.Prettify(s)
2214}
2215
2216// GoString returns the string representation.
2217//
2218// API parameter values that are decorated as "sensitive" in the API will not
2219// be included in the string output. The member name will be present, but the
2220// value will be replaced with "sensitive".
2221func (s DescribeEnvironmentStatusInput) GoString() string {
2222	return s.String()
2223}
2224
2225// Validate inspects the fields of the type to determine if they are valid.
2226func (s *DescribeEnvironmentStatusInput) Validate() error {
2227	invalidParams := request.ErrInvalidParams{Context: "DescribeEnvironmentStatusInput"}
2228	if s.EnvironmentId == nil {
2229		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
2230	}
2231
2232	if invalidParams.Len() > 0 {
2233		return invalidParams
2234	}
2235	return nil
2236}
2237
2238// SetEnvironmentId sets the EnvironmentId field's value.
2239func (s *DescribeEnvironmentStatusInput) SetEnvironmentId(v string) *DescribeEnvironmentStatusInput {
2240	s.EnvironmentId = &v
2241	return s
2242}
2243
2244type DescribeEnvironmentStatusOutput struct {
2245	_ struct{} `type:"structure"`
2246
2247	// Any informational message about the status of the environment.
2248	//
2249	// Message is a required field
2250	Message *string `locationName:"message" type:"string" required:"true"`
2251
2252	// The status of the environment. Available values include:
2253	//
2254	//    * connecting: The environment is connecting.
2255	//
2256	//    * creating: The environment is being created.
2257	//
2258	//    * deleting: The environment is being deleted.
2259	//
2260	//    * error: The environment is in an error state.
2261	//
2262	//    * ready: The environment is ready.
2263	//
2264	//    * stopped: The environment is stopped.
2265	//
2266	//    * stopping: The environment is stopping.
2267	//
2268	// Status is a required field
2269	Status *string `locationName:"status" type:"string" required:"true" enum:"EnvironmentStatus"`
2270}
2271
2272// String returns the string representation.
2273//
2274// API parameter values that are decorated as "sensitive" in the API will not
2275// be included in the string output. The member name will be present, but the
2276// value will be replaced with "sensitive".
2277func (s DescribeEnvironmentStatusOutput) String() string {
2278	return awsutil.Prettify(s)
2279}
2280
2281// GoString returns the string representation.
2282//
2283// API parameter values that are decorated as "sensitive" in the API will not
2284// be included in the string output. The member name will be present, but the
2285// value will be replaced with "sensitive".
2286func (s DescribeEnvironmentStatusOutput) GoString() string {
2287	return s.String()
2288}
2289
2290// SetMessage sets the Message field's value.
2291func (s *DescribeEnvironmentStatusOutput) SetMessage(v string) *DescribeEnvironmentStatusOutput {
2292	s.Message = &v
2293	return s
2294}
2295
2296// SetStatus sets the Status field's value.
2297func (s *DescribeEnvironmentStatusOutput) SetStatus(v string) *DescribeEnvironmentStatusOutput {
2298	s.Status = &v
2299	return s
2300}
2301
2302type DescribeEnvironmentsInput struct {
2303	_ struct{} `type:"structure"`
2304
2305	// The IDs of individual environments to get information about.
2306	//
2307	// EnvironmentIds is a required field
2308	EnvironmentIds []*string `locationName:"environmentIds" min:"1" type:"list" required:"true"`
2309}
2310
2311// String returns the string representation.
2312//
2313// API parameter values that are decorated as "sensitive" in the API will not
2314// be included in the string output. The member name will be present, but the
2315// value will be replaced with "sensitive".
2316func (s DescribeEnvironmentsInput) String() string {
2317	return awsutil.Prettify(s)
2318}
2319
2320// GoString returns the string representation.
2321//
2322// API parameter values that are decorated as "sensitive" in the API will not
2323// be included in the string output. The member name will be present, but the
2324// value will be replaced with "sensitive".
2325func (s DescribeEnvironmentsInput) GoString() string {
2326	return s.String()
2327}
2328
2329// Validate inspects the fields of the type to determine if they are valid.
2330func (s *DescribeEnvironmentsInput) Validate() error {
2331	invalidParams := request.ErrInvalidParams{Context: "DescribeEnvironmentsInput"}
2332	if s.EnvironmentIds == nil {
2333		invalidParams.Add(request.NewErrParamRequired("EnvironmentIds"))
2334	}
2335	if s.EnvironmentIds != nil && len(s.EnvironmentIds) < 1 {
2336		invalidParams.Add(request.NewErrParamMinLen("EnvironmentIds", 1))
2337	}
2338
2339	if invalidParams.Len() > 0 {
2340		return invalidParams
2341	}
2342	return nil
2343}
2344
2345// SetEnvironmentIds sets the EnvironmentIds field's value.
2346func (s *DescribeEnvironmentsInput) SetEnvironmentIds(v []*string) *DescribeEnvironmentsInput {
2347	s.EnvironmentIds = v
2348	return s
2349}
2350
2351type DescribeEnvironmentsOutput struct {
2352	_ struct{} `type:"structure"`
2353
2354	// Information about the environments that are returned.
2355	Environments []*Environment `locationName:"environments" type:"list"`
2356}
2357
2358// String returns the string representation.
2359//
2360// API parameter values that are decorated as "sensitive" in the API will not
2361// be included in the string output. The member name will be present, but the
2362// value will be replaced with "sensitive".
2363func (s DescribeEnvironmentsOutput) String() string {
2364	return awsutil.Prettify(s)
2365}
2366
2367// GoString returns the string representation.
2368//
2369// API parameter values that are decorated as "sensitive" in the API will not
2370// be included in the string output. The member name will be present, but the
2371// value will be replaced with "sensitive".
2372func (s DescribeEnvironmentsOutput) GoString() string {
2373	return s.String()
2374}
2375
2376// SetEnvironments sets the Environments field's value.
2377func (s *DescribeEnvironmentsOutput) SetEnvironments(v []*Environment) *DescribeEnvironmentsOutput {
2378	s.Environments = v
2379	return s
2380}
2381
2382// Information about an Cloud9 development environment.
2383type Environment struct {
2384	_ struct{} `type:"structure"`
2385
2386	// The Amazon Resource Name (ARN) of the environment.
2387	//
2388	// Arn is a required field
2389	Arn *string `locationName:"arn" type:"string" required:"true"`
2390
2391	// The connection type used for connecting to an Amazon EC2 environment. CONNECT_SSH
2392	// is selected by default.
2393	ConnectionType *string `locationName:"connectionType" type:"string" enum:"ConnectionType"`
2394
2395	// The description for the environment.
2396	//
2397	// Description is a sensitive parameter and its value will be
2398	// replaced with "sensitive" in string returned by Environment's
2399	// String and GoString methods.
2400	Description *string `locationName:"description" type:"string" sensitive:"true"`
2401
2402	// The ID of the environment.
2403	Id *string `locationName:"id" type:"string"`
2404
2405	// The state of the environment in its creation or deletion lifecycle.
2406	Lifecycle *EnvironmentLifecycle `locationName:"lifecycle" type:"structure"`
2407
2408	// Describes the status of Amazon Web Services managed temporary credentials
2409	// for the Cloud9 environment. Available values are:
2410	//
2411	//    * ENABLED_ON_CREATE
2412	//
2413	//    * ENABLED_BY_OWNER
2414	//
2415	//    * DISABLED_BY_DEFAULT
2416	//
2417	//    * DISABLED_BY_OWNER
2418	//
2419	//    * DISABLED_BY_COLLABORATOR
2420	//
2421	//    * PENDING_REMOVAL_BY_COLLABORATOR
2422	//
2423	//    * PENDING_REMOVAL_BY_OWNER
2424	//
2425	//    * FAILED_REMOVAL_BY_COLLABORATOR
2426	//
2427	//    * ENABLED_BY_OWNER
2428	//
2429	//    * DISABLED_BY_DEFAULT
2430	ManagedCredentialsStatus *string `locationName:"managedCredentialsStatus" type:"string" enum:"ManagedCredentialsStatus"`
2431
2432	// The name of the environment.
2433	Name *string `locationName:"name" min:"1" type:"string"`
2434
2435	// The Amazon Resource Name (ARN) of the environment owner.
2436	//
2437	// OwnerArn is a required field
2438	OwnerArn *string `locationName:"ownerArn" type:"string" required:"true"`
2439
2440	// The type of environment. Valid values include the following:
2441	//
2442	//    * ec2: An Amazon Elastic Compute Cloud (Amazon EC2) instance connects
2443	//    to the environment.
2444	//
2445	//    * ssh: Your own server connects to the environment.
2446	//
2447	// Type is a required field
2448	Type *string `locationName:"type" type:"string" required:"true" enum:"EnvironmentType"`
2449}
2450
2451// String returns the string representation.
2452//
2453// API parameter values that are decorated as "sensitive" in the API will not
2454// be included in the string output. The member name will be present, but the
2455// value will be replaced with "sensitive".
2456func (s Environment) String() string {
2457	return awsutil.Prettify(s)
2458}
2459
2460// GoString returns the string representation.
2461//
2462// API parameter values that are decorated as "sensitive" in the API will not
2463// be included in the string output. The member name will be present, but the
2464// value will be replaced with "sensitive".
2465func (s Environment) GoString() string {
2466	return s.String()
2467}
2468
2469// SetArn sets the Arn field's value.
2470func (s *Environment) SetArn(v string) *Environment {
2471	s.Arn = &v
2472	return s
2473}
2474
2475// SetConnectionType sets the ConnectionType field's value.
2476func (s *Environment) SetConnectionType(v string) *Environment {
2477	s.ConnectionType = &v
2478	return s
2479}
2480
2481// SetDescription sets the Description field's value.
2482func (s *Environment) SetDescription(v string) *Environment {
2483	s.Description = &v
2484	return s
2485}
2486
2487// SetId sets the Id field's value.
2488func (s *Environment) SetId(v string) *Environment {
2489	s.Id = &v
2490	return s
2491}
2492
2493// SetLifecycle sets the Lifecycle field's value.
2494func (s *Environment) SetLifecycle(v *EnvironmentLifecycle) *Environment {
2495	s.Lifecycle = v
2496	return s
2497}
2498
2499// SetManagedCredentialsStatus sets the ManagedCredentialsStatus field's value.
2500func (s *Environment) SetManagedCredentialsStatus(v string) *Environment {
2501	s.ManagedCredentialsStatus = &v
2502	return s
2503}
2504
2505// SetName sets the Name field's value.
2506func (s *Environment) SetName(v string) *Environment {
2507	s.Name = &v
2508	return s
2509}
2510
2511// SetOwnerArn sets the OwnerArn field's value.
2512func (s *Environment) SetOwnerArn(v string) *Environment {
2513	s.OwnerArn = &v
2514	return s
2515}
2516
2517// SetType sets the Type field's value.
2518func (s *Environment) SetType(v string) *Environment {
2519	s.Type = &v
2520	return s
2521}
2522
2523// Information about the current creation or deletion lifecycle state of an
2524// Cloud9 development environment.
2525type EnvironmentLifecycle struct {
2526	_ struct{} `type:"structure"`
2527
2528	// If the environment failed to delete, the Amazon Resource Name (ARN) of the
2529	// related Amazon Web Services resource.
2530	FailureResource *string `locationName:"failureResource" type:"string"`
2531
2532	// Any informational message about the lifecycle state of the environment.
2533	Reason *string `locationName:"reason" type:"string"`
2534
2535	// The current creation or deletion lifecycle state of the environment.
2536	//
2537	//    * CREATING: The environment is in the process of being created.
2538	//
2539	//    * CREATED: The environment was successfully created.
2540	//
2541	//    * CREATE_FAILED: The environment failed to be created.
2542	//
2543	//    * DELETING: The environment is in the process of being deleted.
2544	//
2545	//    * DELETE_FAILED: The environment failed to delete.
2546	Status *string `locationName:"status" type:"string" enum:"EnvironmentLifecycleStatus"`
2547}
2548
2549// String returns the string representation.
2550//
2551// API parameter values that are decorated as "sensitive" in the API will not
2552// be included in the string output. The member name will be present, but the
2553// value will be replaced with "sensitive".
2554func (s EnvironmentLifecycle) String() string {
2555	return awsutil.Prettify(s)
2556}
2557
2558// GoString returns the string representation.
2559//
2560// API parameter values that are decorated as "sensitive" in the API will not
2561// be included in the string output. The member name will be present, but the
2562// value will be replaced with "sensitive".
2563func (s EnvironmentLifecycle) GoString() string {
2564	return s.String()
2565}
2566
2567// SetFailureResource sets the FailureResource field's value.
2568func (s *EnvironmentLifecycle) SetFailureResource(v string) *EnvironmentLifecycle {
2569	s.FailureResource = &v
2570	return s
2571}
2572
2573// SetReason sets the Reason field's value.
2574func (s *EnvironmentLifecycle) SetReason(v string) *EnvironmentLifecycle {
2575	s.Reason = &v
2576	return s
2577}
2578
2579// SetStatus sets the Status field's value.
2580func (s *EnvironmentLifecycle) SetStatus(v string) *EnvironmentLifecycle {
2581	s.Status = &v
2582	return s
2583}
2584
2585// Information about an environment member for an Cloud9 development environment.
2586type EnvironmentMember struct {
2587	_ struct{} `type:"structure"`
2588
2589	// The ID of the environment for the environment member.
2590	//
2591	// EnvironmentId is a required field
2592	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
2593
2594	// The time, expressed in epoch time format, when the environment member last
2595	// opened the environment.
2596	LastAccess *time.Time `locationName:"lastAccess" type:"timestamp"`
2597
2598	// The type of environment member permissions associated with this environment
2599	// member. Available values include:
2600	//
2601	//    * owner: Owns the environment.
2602	//
2603	//    * read-only: Has read-only access to the environment.
2604	//
2605	//    * read-write: Has read-write access to the environment.
2606	//
2607	// Permissions is a required field
2608	Permissions *string `locationName:"permissions" type:"string" required:"true" enum:"Permissions"`
2609
2610	// The Amazon Resource Name (ARN) of the environment member.
2611	//
2612	// UserArn is a required field
2613	UserArn *string `locationName:"userArn" type:"string" required:"true"`
2614
2615	// The user ID in Identity and Access Management (IAM) of the environment member.
2616	//
2617	// UserId is a required field
2618	UserId *string `locationName:"userId" type:"string" required:"true"`
2619}
2620
2621// String returns the string representation.
2622//
2623// API parameter values that are decorated as "sensitive" in the API will not
2624// be included in the string output. The member name will be present, but the
2625// value will be replaced with "sensitive".
2626func (s EnvironmentMember) String() string {
2627	return awsutil.Prettify(s)
2628}
2629
2630// GoString returns the string representation.
2631//
2632// API parameter values that are decorated as "sensitive" in the API will not
2633// be included in the string output. The member name will be present, but the
2634// value will be replaced with "sensitive".
2635func (s EnvironmentMember) GoString() string {
2636	return s.String()
2637}
2638
2639// SetEnvironmentId sets the EnvironmentId field's value.
2640func (s *EnvironmentMember) SetEnvironmentId(v string) *EnvironmentMember {
2641	s.EnvironmentId = &v
2642	return s
2643}
2644
2645// SetLastAccess sets the LastAccess field's value.
2646func (s *EnvironmentMember) SetLastAccess(v time.Time) *EnvironmentMember {
2647	s.LastAccess = &v
2648	return s
2649}
2650
2651// SetPermissions sets the Permissions field's value.
2652func (s *EnvironmentMember) SetPermissions(v string) *EnvironmentMember {
2653	s.Permissions = &v
2654	return s
2655}
2656
2657// SetUserArn sets the UserArn field's value.
2658func (s *EnvironmentMember) SetUserArn(v string) *EnvironmentMember {
2659	s.UserArn = &v
2660	return s
2661}
2662
2663// SetUserId sets the UserId field's value.
2664func (s *EnvironmentMember) SetUserId(v string) *EnvironmentMember {
2665	s.UserId = &v
2666	return s
2667}
2668
2669// An access permissions issue occurred.
2670type ForbiddenException struct {
2671	_            struct{}                  `type:"structure"`
2672	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2673
2674	Message_ *string `locationName:"message" type:"string"`
2675}
2676
2677// String returns the string representation.
2678//
2679// API parameter values that are decorated as "sensitive" in the API will not
2680// be included in the string output. The member name will be present, but the
2681// value will be replaced with "sensitive".
2682func (s ForbiddenException) String() string {
2683	return awsutil.Prettify(s)
2684}
2685
2686// GoString returns the string representation.
2687//
2688// API parameter values that are decorated as "sensitive" in the API will not
2689// be included in the string output. The member name will be present, but the
2690// value will be replaced with "sensitive".
2691func (s ForbiddenException) GoString() string {
2692	return s.String()
2693}
2694
2695func newErrorForbiddenException(v protocol.ResponseMetadata) error {
2696	return &ForbiddenException{
2697		RespMetadata: v,
2698	}
2699}
2700
2701// Code returns the exception type name.
2702func (s *ForbiddenException) Code() string {
2703	return "ForbiddenException"
2704}
2705
2706// Message returns the exception's message.
2707func (s *ForbiddenException) Message() string {
2708	if s.Message_ != nil {
2709		return *s.Message_
2710	}
2711	return ""
2712}
2713
2714// OrigErr always returns nil, satisfies awserr.Error interface.
2715func (s *ForbiddenException) OrigErr() error {
2716	return nil
2717}
2718
2719func (s *ForbiddenException) Error() string {
2720	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2721}
2722
2723// Status code returns the HTTP status code for the request's response error.
2724func (s *ForbiddenException) StatusCode() int {
2725	return s.RespMetadata.StatusCode
2726}
2727
2728// RequestID returns the service's response RequestID for request.
2729func (s *ForbiddenException) RequestID() string {
2730	return s.RespMetadata.RequestID
2731}
2732
2733// An internal server error occurred.
2734type InternalServerErrorException struct {
2735	_            struct{}                  `type:"structure"`
2736	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2737
2738	Message_ *string `locationName:"message" type:"string"`
2739}
2740
2741// String returns the string representation.
2742//
2743// API parameter values that are decorated as "sensitive" in the API will not
2744// be included in the string output. The member name will be present, but the
2745// value will be replaced with "sensitive".
2746func (s InternalServerErrorException) String() string {
2747	return awsutil.Prettify(s)
2748}
2749
2750// GoString returns the string representation.
2751//
2752// API parameter values that are decorated as "sensitive" in the API will not
2753// be included in the string output. The member name will be present, but the
2754// value will be replaced with "sensitive".
2755func (s InternalServerErrorException) GoString() string {
2756	return s.String()
2757}
2758
2759func newErrorInternalServerErrorException(v protocol.ResponseMetadata) error {
2760	return &InternalServerErrorException{
2761		RespMetadata: v,
2762	}
2763}
2764
2765// Code returns the exception type name.
2766func (s *InternalServerErrorException) Code() string {
2767	return "InternalServerErrorException"
2768}
2769
2770// Message returns the exception's message.
2771func (s *InternalServerErrorException) Message() string {
2772	if s.Message_ != nil {
2773		return *s.Message_
2774	}
2775	return ""
2776}
2777
2778// OrigErr always returns nil, satisfies awserr.Error interface.
2779func (s *InternalServerErrorException) OrigErr() error {
2780	return nil
2781}
2782
2783func (s *InternalServerErrorException) Error() string {
2784	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2785}
2786
2787// Status code returns the HTTP status code for the request's response error.
2788func (s *InternalServerErrorException) StatusCode() int {
2789	return s.RespMetadata.StatusCode
2790}
2791
2792// RequestID returns the service's response RequestID for request.
2793func (s *InternalServerErrorException) RequestID() string {
2794	return s.RespMetadata.RequestID
2795}
2796
2797// A service limit was exceeded.
2798type LimitExceededException struct {
2799	_            struct{}                  `type:"structure"`
2800	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2801
2802	Message_ *string `locationName:"message" type:"string"`
2803}
2804
2805// String returns the string representation.
2806//
2807// API parameter values that are decorated as "sensitive" in the API will not
2808// be included in the string output. The member name will be present, but the
2809// value will be replaced with "sensitive".
2810func (s LimitExceededException) String() string {
2811	return awsutil.Prettify(s)
2812}
2813
2814// GoString returns the string representation.
2815//
2816// API parameter values that are decorated as "sensitive" in the API will not
2817// be included in the string output. The member name will be present, but the
2818// value will be replaced with "sensitive".
2819func (s LimitExceededException) GoString() string {
2820	return s.String()
2821}
2822
2823func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
2824	return &LimitExceededException{
2825		RespMetadata: v,
2826	}
2827}
2828
2829// Code returns the exception type name.
2830func (s *LimitExceededException) Code() string {
2831	return "LimitExceededException"
2832}
2833
2834// Message returns the exception's message.
2835func (s *LimitExceededException) Message() string {
2836	if s.Message_ != nil {
2837		return *s.Message_
2838	}
2839	return ""
2840}
2841
2842// OrigErr always returns nil, satisfies awserr.Error interface.
2843func (s *LimitExceededException) OrigErr() error {
2844	return nil
2845}
2846
2847func (s *LimitExceededException) Error() string {
2848	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2849}
2850
2851// Status code returns the HTTP status code for the request's response error.
2852func (s *LimitExceededException) StatusCode() int {
2853	return s.RespMetadata.StatusCode
2854}
2855
2856// RequestID returns the service's response RequestID for request.
2857func (s *LimitExceededException) RequestID() string {
2858	return s.RespMetadata.RequestID
2859}
2860
2861type ListEnvironmentsInput struct {
2862	_ struct{} `type:"structure"`
2863
2864	// The maximum number of environments to get identifiers for.
2865	MaxResults *int64 `locationName:"maxResults" type:"integer"`
2866
2867	// During a previous call, if there are more than 25 items in the list, only
2868	// the first 25 items are returned, along with a unique string called a next
2869	// token. To get the next batch of items in the list, call this operation again,
2870	// adding the next token to the call. To get all of the items in the list, keep
2871	// calling this operation with each subsequent next token that is returned,
2872	// until no more next tokens are returned.
2873	NextToken *string `locationName:"nextToken" type:"string"`
2874}
2875
2876// String returns the string representation.
2877//
2878// API parameter values that are decorated as "sensitive" in the API will not
2879// be included in the string output. The member name will be present, but the
2880// value will be replaced with "sensitive".
2881func (s ListEnvironmentsInput) String() string {
2882	return awsutil.Prettify(s)
2883}
2884
2885// GoString returns the string representation.
2886//
2887// API parameter values that are decorated as "sensitive" in the API will not
2888// be included in the string output. The member name will be present, but the
2889// value will be replaced with "sensitive".
2890func (s ListEnvironmentsInput) GoString() string {
2891	return s.String()
2892}
2893
2894// SetMaxResults sets the MaxResults field's value.
2895func (s *ListEnvironmentsInput) SetMaxResults(v int64) *ListEnvironmentsInput {
2896	s.MaxResults = &v
2897	return s
2898}
2899
2900// SetNextToken sets the NextToken field's value.
2901func (s *ListEnvironmentsInput) SetNextToken(v string) *ListEnvironmentsInput {
2902	s.NextToken = &v
2903	return s
2904}
2905
2906type ListEnvironmentsOutput struct {
2907	_ struct{} `type:"structure"`
2908
2909	// The list of environment identifiers.
2910	EnvironmentIds []*string `locationName:"environmentIds" type:"list"`
2911
2912	// If there are more than 25 items in the list, only the first 25 items are
2913	// returned, along with a unique string called a next token. To get the next
2914	// batch of items in the list, call this operation again, adding the next token
2915	// to the call.
2916	NextToken *string `locationName:"nextToken" type:"string"`
2917}
2918
2919// String returns the string representation.
2920//
2921// API parameter values that are decorated as "sensitive" in the API will not
2922// be included in the string output. The member name will be present, but the
2923// value will be replaced with "sensitive".
2924func (s ListEnvironmentsOutput) String() string {
2925	return awsutil.Prettify(s)
2926}
2927
2928// GoString returns the string representation.
2929//
2930// API parameter values that are decorated as "sensitive" in the API will not
2931// be included in the string output. The member name will be present, but the
2932// value will be replaced with "sensitive".
2933func (s ListEnvironmentsOutput) GoString() string {
2934	return s.String()
2935}
2936
2937// SetEnvironmentIds sets the EnvironmentIds field's value.
2938func (s *ListEnvironmentsOutput) SetEnvironmentIds(v []*string) *ListEnvironmentsOutput {
2939	s.EnvironmentIds = v
2940	return s
2941}
2942
2943// SetNextToken sets the NextToken field's value.
2944func (s *ListEnvironmentsOutput) SetNextToken(v string) *ListEnvironmentsOutput {
2945	s.NextToken = &v
2946	return s
2947}
2948
2949type ListTagsForResourceInput struct {
2950	_ struct{} `type:"structure"`
2951
2952	// The Amazon Resource Name (ARN) of the Cloud9 development environment to get
2953	// the tags for.
2954	//
2955	// ResourceARN is a required field
2956	ResourceARN *string `type:"string" required:"true"`
2957}
2958
2959// String returns the string representation.
2960//
2961// API parameter values that are decorated as "sensitive" in the API will not
2962// be included in the string output. The member name will be present, but the
2963// value will be replaced with "sensitive".
2964func (s ListTagsForResourceInput) String() string {
2965	return awsutil.Prettify(s)
2966}
2967
2968// GoString returns the string representation.
2969//
2970// API parameter values that are decorated as "sensitive" in the API will not
2971// be included in the string output. The member name will be present, but the
2972// value will be replaced with "sensitive".
2973func (s ListTagsForResourceInput) GoString() string {
2974	return s.String()
2975}
2976
2977// Validate inspects the fields of the type to determine if they are valid.
2978func (s *ListTagsForResourceInput) Validate() error {
2979	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
2980	if s.ResourceARN == nil {
2981		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
2982	}
2983
2984	if invalidParams.Len() > 0 {
2985		return invalidParams
2986	}
2987	return nil
2988}
2989
2990// SetResourceARN sets the ResourceARN field's value.
2991func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
2992	s.ResourceARN = &v
2993	return s
2994}
2995
2996type ListTagsForResourceOutput struct {
2997	_ struct{} `type:"structure"`
2998
2999	// The list of tags associated with the Cloud9 development environment.
3000	//
3001	// Tags is a sensitive parameter and its value will be
3002	// replaced with "sensitive" in string returned by ListTagsForResourceOutput's
3003	// String and GoString methods.
3004	Tags []*Tag `type:"list" sensitive:"true"`
3005}
3006
3007// String returns the string representation.
3008//
3009// API parameter values that are decorated as "sensitive" in the API will not
3010// be included in the string output. The member name will be present, but the
3011// value will be replaced with "sensitive".
3012func (s ListTagsForResourceOutput) String() string {
3013	return awsutil.Prettify(s)
3014}
3015
3016// GoString returns the string representation.
3017//
3018// API parameter values that are decorated as "sensitive" in the API will not
3019// be included in the string output. The member name will be present, but the
3020// value will be replaced with "sensitive".
3021func (s ListTagsForResourceOutput) GoString() string {
3022	return s.String()
3023}
3024
3025// SetTags sets the Tags field's value.
3026func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
3027	s.Tags = v
3028	return s
3029}
3030
3031// The target resource cannot be found.
3032type NotFoundException struct {
3033	_            struct{}                  `type:"structure"`
3034	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3035
3036	Message_ *string `locationName:"message" type:"string"`
3037}
3038
3039// String returns the string representation.
3040//
3041// API parameter values that are decorated as "sensitive" in the API will not
3042// be included in the string output. The member name will be present, but the
3043// value will be replaced with "sensitive".
3044func (s NotFoundException) String() string {
3045	return awsutil.Prettify(s)
3046}
3047
3048// GoString returns the string representation.
3049//
3050// API parameter values that are decorated as "sensitive" in the API will not
3051// be included in the string output. The member name will be present, but the
3052// value will be replaced with "sensitive".
3053func (s NotFoundException) GoString() string {
3054	return s.String()
3055}
3056
3057func newErrorNotFoundException(v protocol.ResponseMetadata) error {
3058	return &NotFoundException{
3059		RespMetadata: v,
3060	}
3061}
3062
3063// Code returns the exception type name.
3064func (s *NotFoundException) Code() string {
3065	return "NotFoundException"
3066}
3067
3068// Message returns the exception's message.
3069func (s *NotFoundException) Message() string {
3070	if s.Message_ != nil {
3071		return *s.Message_
3072	}
3073	return ""
3074}
3075
3076// OrigErr always returns nil, satisfies awserr.Error interface.
3077func (s *NotFoundException) OrigErr() error {
3078	return nil
3079}
3080
3081func (s *NotFoundException) Error() string {
3082	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3083}
3084
3085// Status code returns the HTTP status code for the request's response error.
3086func (s *NotFoundException) StatusCode() int {
3087	return s.RespMetadata.StatusCode
3088}
3089
3090// RequestID returns the service's response RequestID for request.
3091func (s *NotFoundException) RequestID() string {
3092	return s.RespMetadata.RequestID
3093}
3094
3095// Metadata that is associated with Amazon Web Services resources. In particular,
3096// a name-value pair that can be associated with an Cloud9 development environment.
3097// There are two types of tags: user tags and system tags. A user tag is created
3098// by the user. A system tag is automatically created by Amazon Web Services
3099// services. A system tag is prefixed with "aws:" and cannot be modified by
3100// the user.
3101type Tag struct {
3102	_ struct{} `type:"structure" sensitive:"true"`
3103
3104	// The name part of a tag.
3105	//
3106	// Key is a sensitive parameter and its value will be
3107	// replaced with "sensitive" in string returned by Tag's
3108	// String and GoString methods.
3109	//
3110	// Key is a required field
3111	Key *string `min:"1" type:"string" required:"true" sensitive:"true"`
3112
3113	// The value part of a tag.
3114	//
3115	// Value is a sensitive parameter and its value will be
3116	// replaced with "sensitive" in string returned by Tag's
3117	// String and GoString methods.
3118	//
3119	// Value is a required field
3120	Value *string `type:"string" required:"true" sensitive:"true"`
3121}
3122
3123// String returns the string representation.
3124//
3125// API parameter values that are decorated as "sensitive" in the API will not
3126// be included in the string output. The member name will be present, but the
3127// value will be replaced with "sensitive".
3128func (s Tag) String() string {
3129	return awsutil.Prettify(s)
3130}
3131
3132// GoString returns the string representation.
3133//
3134// API parameter values that are decorated as "sensitive" in the API will not
3135// be included in the string output. The member name will be present, but the
3136// value will be replaced with "sensitive".
3137func (s Tag) GoString() string {
3138	return s.String()
3139}
3140
3141// Validate inspects the fields of the type to determine if they are valid.
3142func (s *Tag) Validate() error {
3143	invalidParams := request.ErrInvalidParams{Context: "Tag"}
3144	if s.Key == nil {
3145		invalidParams.Add(request.NewErrParamRequired("Key"))
3146	}
3147	if s.Key != nil && len(*s.Key) < 1 {
3148		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
3149	}
3150	if s.Value == nil {
3151		invalidParams.Add(request.NewErrParamRequired("Value"))
3152	}
3153
3154	if invalidParams.Len() > 0 {
3155		return invalidParams
3156	}
3157	return nil
3158}
3159
3160// SetKey sets the Key field's value.
3161func (s *Tag) SetKey(v string) *Tag {
3162	s.Key = &v
3163	return s
3164}
3165
3166// SetValue sets the Value field's value.
3167func (s *Tag) SetValue(v string) *Tag {
3168	s.Value = &v
3169	return s
3170}
3171
3172type TagResourceInput struct {
3173	_ struct{} `type:"structure"`
3174
3175	// The Amazon Resource Name (ARN) of the Cloud9 development environment to add
3176	// tags to.
3177	//
3178	// ResourceARN is a required field
3179	ResourceARN *string `type:"string" required:"true"`
3180
3181	// The list of tags to add to the given Cloud9 development environment.
3182	//
3183	// Tags is a sensitive parameter and its value will be
3184	// replaced with "sensitive" in string returned by TagResourceInput's
3185	// String and GoString methods.
3186	//
3187	// Tags is a required field
3188	Tags []*Tag `type:"list" required:"true" sensitive:"true"`
3189}
3190
3191// String returns the string representation.
3192//
3193// API parameter values that are decorated as "sensitive" in the API will not
3194// be included in the string output. The member name will be present, but the
3195// value will be replaced with "sensitive".
3196func (s TagResourceInput) String() string {
3197	return awsutil.Prettify(s)
3198}
3199
3200// GoString returns the string representation.
3201//
3202// API parameter values that are decorated as "sensitive" in the API will not
3203// be included in the string output. The member name will be present, but the
3204// value will be replaced with "sensitive".
3205func (s TagResourceInput) GoString() string {
3206	return s.String()
3207}
3208
3209// Validate inspects the fields of the type to determine if they are valid.
3210func (s *TagResourceInput) Validate() error {
3211	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
3212	if s.ResourceARN == nil {
3213		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
3214	}
3215	if s.Tags == nil {
3216		invalidParams.Add(request.NewErrParamRequired("Tags"))
3217	}
3218	if s.Tags != nil {
3219		for i, v := range s.Tags {
3220			if v == nil {
3221				continue
3222			}
3223			if err := v.Validate(); err != nil {
3224				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3225			}
3226		}
3227	}
3228
3229	if invalidParams.Len() > 0 {
3230		return invalidParams
3231	}
3232	return nil
3233}
3234
3235// SetResourceARN sets the ResourceARN field's value.
3236func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
3237	s.ResourceARN = &v
3238	return s
3239}
3240
3241// SetTags sets the Tags field's value.
3242func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
3243	s.Tags = v
3244	return s
3245}
3246
3247type TagResourceOutput struct {
3248	_ struct{} `type:"structure"`
3249}
3250
3251// String returns the string representation.
3252//
3253// API parameter values that are decorated as "sensitive" in the API will not
3254// be included in the string output. The member name will be present, but the
3255// value will be replaced with "sensitive".
3256func (s TagResourceOutput) String() string {
3257	return awsutil.Prettify(s)
3258}
3259
3260// GoString returns the string representation.
3261//
3262// API parameter values that are decorated as "sensitive" in the API will not
3263// be included in the string output. The member name will be present, but the
3264// value will be replaced with "sensitive".
3265func (s TagResourceOutput) GoString() string {
3266	return s.String()
3267}
3268
3269// Too many service requests were made over the given time period.
3270type TooManyRequestsException struct {
3271	_            struct{}                  `type:"structure"`
3272	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3273
3274	Message_ *string `locationName:"message" type:"string"`
3275}
3276
3277// String returns the string representation.
3278//
3279// API parameter values that are decorated as "sensitive" in the API will not
3280// be included in the string output. The member name will be present, but the
3281// value will be replaced with "sensitive".
3282func (s TooManyRequestsException) String() string {
3283	return awsutil.Prettify(s)
3284}
3285
3286// GoString returns the string representation.
3287//
3288// API parameter values that are decorated as "sensitive" in the API will not
3289// be included in the string output. The member name will be present, but the
3290// value will be replaced with "sensitive".
3291func (s TooManyRequestsException) GoString() string {
3292	return s.String()
3293}
3294
3295func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
3296	return &TooManyRequestsException{
3297		RespMetadata: v,
3298	}
3299}
3300
3301// Code returns the exception type name.
3302func (s *TooManyRequestsException) Code() string {
3303	return "TooManyRequestsException"
3304}
3305
3306// Message returns the exception's message.
3307func (s *TooManyRequestsException) Message() string {
3308	if s.Message_ != nil {
3309		return *s.Message_
3310	}
3311	return ""
3312}
3313
3314// OrigErr always returns nil, satisfies awserr.Error interface.
3315func (s *TooManyRequestsException) OrigErr() error {
3316	return nil
3317}
3318
3319func (s *TooManyRequestsException) Error() string {
3320	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3321}
3322
3323// Status code returns the HTTP status code for the request's response error.
3324func (s *TooManyRequestsException) StatusCode() int {
3325	return s.RespMetadata.StatusCode
3326}
3327
3328// RequestID returns the service's response RequestID for request.
3329func (s *TooManyRequestsException) RequestID() string {
3330	return s.RespMetadata.RequestID
3331}
3332
3333type UntagResourceInput struct {
3334	_ struct{} `type:"structure"`
3335
3336	// The Amazon Resource Name (ARN) of the Cloud9 development environment to remove
3337	// tags from.
3338	//
3339	// ResourceARN is a required field
3340	ResourceARN *string `type:"string" required:"true"`
3341
3342	// The tag names of the tags to remove from the given Cloud9 development environment.
3343	//
3344	// TagKeys is a sensitive parameter and its value will be
3345	// replaced with "sensitive" in string returned by UntagResourceInput's
3346	// String and GoString methods.
3347	//
3348	// TagKeys is a required field
3349	TagKeys []*string `type:"list" required:"true" sensitive:"true"`
3350}
3351
3352// String returns the string representation.
3353//
3354// API parameter values that are decorated as "sensitive" in the API will not
3355// be included in the string output. The member name will be present, but the
3356// value will be replaced with "sensitive".
3357func (s UntagResourceInput) String() string {
3358	return awsutil.Prettify(s)
3359}
3360
3361// GoString returns the string representation.
3362//
3363// API parameter values that are decorated as "sensitive" in the API will not
3364// be included in the string output. The member name will be present, but the
3365// value will be replaced with "sensitive".
3366func (s UntagResourceInput) GoString() string {
3367	return s.String()
3368}
3369
3370// Validate inspects the fields of the type to determine if they are valid.
3371func (s *UntagResourceInput) Validate() error {
3372	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
3373	if s.ResourceARN == nil {
3374		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
3375	}
3376	if s.TagKeys == nil {
3377		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
3378	}
3379
3380	if invalidParams.Len() > 0 {
3381		return invalidParams
3382	}
3383	return nil
3384}
3385
3386// SetResourceARN sets the ResourceARN field's value.
3387func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
3388	s.ResourceARN = &v
3389	return s
3390}
3391
3392// SetTagKeys sets the TagKeys field's value.
3393func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
3394	s.TagKeys = v
3395	return s
3396}
3397
3398type UntagResourceOutput struct {
3399	_ struct{} `type:"structure"`
3400}
3401
3402// String returns the string representation.
3403//
3404// API parameter values that are decorated as "sensitive" in the API will not
3405// be included in the string output. The member name will be present, but the
3406// value will be replaced with "sensitive".
3407func (s UntagResourceOutput) String() string {
3408	return awsutil.Prettify(s)
3409}
3410
3411// GoString returns the string representation.
3412//
3413// API parameter values that are decorated as "sensitive" in the API will not
3414// be included in the string output. The member name will be present, but the
3415// value will be replaced with "sensitive".
3416func (s UntagResourceOutput) GoString() string {
3417	return s.String()
3418}
3419
3420type UpdateEnvironmentInput struct {
3421	_ struct{} `type:"structure"`
3422
3423	// Any new or replacement description for the environment.
3424	//
3425	// Description is a sensitive parameter and its value will be
3426	// replaced with "sensitive" in string returned by UpdateEnvironmentInput's
3427	// String and GoString methods.
3428	Description *string `locationName:"description" type:"string" sensitive:"true"`
3429
3430	// The ID of the environment to change settings.
3431	//
3432	// EnvironmentId is a required field
3433	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
3434
3435	// Allows the environment owner to turn on or turn off the Amazon Web Services
3436	// managed temporary credentials for an Cloud9 environment by using one of the
3437	// following values:
3438	//
3439	//    * ENABLE
3440	//
3441	//    * DISABLE
3442	//
3443	// Only the environment owner can change the status of managed temporary credentials.
3444	// An AccessDeniedException is thrown if an attempt to turn on or turn off managed
3445	// temporary credentials is made by an account that's not the environment owner.
3446	ManagedCredentialsAction *string `locationName:"managedCredentialsAction" type:"string" enum:"ManagedCredentialsAction"`
3447
3448	// A replacement name for the environment.
3449	Name *string `locationName:"name" min:"1" type:"string"`
3450}
3451
3452// String returns the string representation.
3453//
3454// API parameter values that are decorated as "sensitive" in the API will not
3455// be included in the string output. The member name will be present, but the
3456// value will be replaced with "sensitive".
3457func (s UpdateEnvironmentInput) String() string {
3458	return awsutil.Prettify(s)
3459}
3460
3461// GoString returns the string representation.
3462//
3463// API parameter values that are decorated as "sensitive" in the API will not
3464// be included in the string output. The member name will be present, but the
3465// value will be replaced with "sensitive".
3466func (s UpdateEnvironmentInput) GoString() string {
3467	return s.String()
3468}
3469
3470// Validate inspects the fields of the type to determine if they are valid.
3471func (s *UpdateEnvironmentInput) Validate() error {
3472	invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentInput"}
3473	if s.EnvironmentId == nil {
3474		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
3475	}
3476	if s.Name != nil && len(*s.Name) < 1 {
3477		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3478	}
3479
3480	if invalidParams.Len() > 0 {
3481		return invalidParams
3482	}
3483	return nil
3484}
3485
3486// SetDescription sets the Description field's value.
3487func (s *UpdateEnvironmentInput) SetDescription(v string) *UpdateEnvironmentInput {
3488	s.Description = &v
3489	return s
3490}
3491
3492// SetEnvironmentId sets the EnvironmentId field's value.
3493func (s *UpdateEnvironmentInput) SetEnvironmentId(v string) *UpdateEnvironmentInput {
3494	s.EnvironmentId = &v
3495	return s
3496}
3497
3498// SetManagedCredentialsAction sets the ManagedCredentialsAction field's value.
3499func (s *UpdateEnvironmentInput) SetManagedCredentialsAction(v string) *UpdateEnvironmentInput {
3500	s.ManagedCredentialsAction = &v
3501	return s
3502}
3503
3504// SetName sets the Name field's value.
3505func (s *UpdateEnvironmentInput) SetName(v string) *UpdateEnvironmentInput {
3506	s.Name = &v
3507	return s
3508}
3509
3510type UpdateEnvironmentMembershipInput struct {
3511	_ struct{} `type:"structure"`
3512
3513	// The ID of the environment for the environment member whose settings you want
3514	// to change.
3515	//
3516	// EnvironmentId is a required field
3517	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`
3518
3519	// The replacement type of environment member permissions you want to associate
3520	// with this environment member. Available values include:
3521	//
3522	//    * read-only: Has read-only access to the environment.
3523	//
3524	//    * read-write: Has read-write access to the environment.
3525	//
3526	// Permissions is a required field
3527	Permissions *string `locationName:"permissions" type:"string" required:"true" enum:"MemberPermissions"`
3528
3529	// The Amazon Resource Name (ARN) of the environment member whose settings you
3530	// want to change.
3531	//
3532	// UserArn is a required field
3533	UserArn *string `locationName:"userArn" type:"string" required:"true"`
3534}
3535
3536// String returns the string representation.
3537//
3538// API parameter values that are decorated as "sensitive" in the API will not
3539// be included in the string output. The member name will be present, but the
3540// value will be replaced with "sensitive".
3541func (s UpdateEnvironmentMembershipInput) String() string {
3542	return awsutil.Prettify(s)
3543}
3544
3545// GoString returns the string representation.
3546//
3547// API parameter values that are decorated as "sensitive" in the API will not
3548// be included in the string output. The member name will be present, but the
3549// value will be replaced with "sensitive".
3550func (s UpdateEnvironmentMembershipInput) GoString() string {
3551	return s.String()
3552}
3553
3554// Validate inspects the fields of the type to determine if they are valid.
3555func (s *UpdateEnvironmentMembershipInput) Validate() error {
3556	invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentMembershipInput"}
3557	if s.EnvironmentId == nil {
3558		invalidParams.Add(request.NewErrParamRequired("EnvironmentId"))
3559	}
3560	if s.Permissions == nil {
3561		invalidParams.Add(request.NewErrParamRequired("Permissions"))
3562	}
3563	if s.UserArn == nil {
3564		invalidParams.Add(request.NewErrParamRequired("UserArn"))
3565	}
3566
3567	if invalidParams.Len() > 0 {
3568		return invalidParams
3569	}
3570	return nil
3571}
3572
3573// SetEnvironmentId sets the EnvironmentId field's value.
3574func (s *UpdateEnvironmentMembershipInput) SetEnvironmentId(v string) *UpdateEnvironmentMembershipInput {
3575	s.EnvironmentId = &v
3576	return s
3577}
3578
3579// SetPermissions sets the Permissions field's value.
3580func (s *UpdateEnvironmentMembershipInput) SetPermissions(v string) *UpdateEnvironmentMembershipInput {
3581	s.Permissions = &v
3582	return s
3583}
3584
3585// SetUserArn sets the UserArn field's value.
3586func (s *UpdateEnvironmentMembershipInput) SetUserArn(v string) *UpdateEnvironmentMembershipInput {
3587	s.UserArn = &v
3588	return s
3589}
3590
3591type UpdateEnvironmentMembershipOutput struct {
3592	_ struct{} `type:"structure"`
3593
3594	// Information about the environment member whose settings were changed.
3595	Membership *EnvironmentMember `locationName:"membership" type:"structure"`
3596}
3597
3598// String returns the string representation.
3599//
3600// API parameter values that are decorated as "sensitive" in the API will not
3601// be included in the string output. The member name will be present, but the
3602// value will be replaced with "sensitive".
3603func (s UpdateEnvironmentMembershipOutput) String() string {
3604	return awsutil.Prettify(s)
3605}
3606
3607// GoString returns the string representation.
3608//
3609// API parameter values that are decorated as "sensitive" in the API will not
3610// be included in the string output. The member name will be present, but the
3611// value will be replaced with "sensitive".
3612func (s UpdateEnvironmentMembershipOutput) GoString() string {
3613	return s.String()
3614}
3615
3616// SetMembership sets the Membership field's value.
3617func (s *UpdateEnvironmentMembershipOutput) SetMembership(v *EnvironmentMember) *UpdateEnvironmentMembershipOutput {
3618	s.Membership = v
3619	return s
3620}
3621
3622type UpdateEnvironmentOutput struct {
3623	_ struct{} `type:"structure"`
3624}
3625
3626// String returns the string representation.
3627//
3628// API parameter values that are decorated as "sensitive" in the API will not
3629// be included in the string output. The member name will be present, but the
3630// value will be replaced with "sensitive".
3631func (s UpdateEnvironmentOutput) String() string {
3632	return awsutil.Prettify(s)
3633}
3634
3635// GoString returns the string representation.
3636//
3637// API parameter values that are decorated as "sensitive" in the API will not
3638// be included in the string output. The member name will be present, but the
3639// value will be replaced with "sensitive".
3640func (s UpdateEnvironmentOutput) GoString() string {
3641	return s.String()
3642}
3643
3644const (
3645	// ConnectionTypeConnectSsh is a ConnectionType enum value
3646	ConnectionTypeConnectSsh = "CONNECT_SSH"
3647
3648	// ConnectionTypeConnectSsm is a ConnectionType enum value
3649	ConnectionTypeConnectSsm = "CONNECT_SSM"
3650)
3651
3652// ConnectionType_Values returns all elements of the ConnectionType enum
3653func ConnectionType_Values() []string {
3654	return []string{
3655		ConnectionTypeConnectSsh,
3656		ConnectionTypeConnectSsm,
3657	}
3658}
3659
3660const (
3661	// EnvironmentLifecycleStatusCreating is a EnvironmentLifecycleStatus enum value
3662	EnvironmentLifecycleStatusCreating = "CREATING"
3663
3664	// EnvironmentLifecycleStatusCreated is a EnvironmentLifecycleStatus enum value
3665	EnvironmentLifecycleStatusCreated = "CREATED"
3666
3667	// EnvironmentLifecycleStatusCreateFailed is a EnvironmentLifecycleStatus enum value
3668	EnvironmentLifecycleStatusCreateFailed = "CREATE_FAILED"
3669
3670	// EnvironmentLifecycleStatusDeleting is a EnvironmentLifecycleStatus enum value
3671	EnvironmentLifecycleStatusDeleting = "DELETING"
3672
3673	// EnvironmentLifecycleStatusDeleteFailed is a EnvironmentLifecycleStatus enum value
3674	EnvironmentLifecycleStatusDeleteFailed = "DELETE_FAILED"
3675)
3676
3677// EnvironmentLifecycleStatus_Values returns all elements of the EnvironmentLifecycleStatus enum
3678func EnvironmentLifecycleStatus_Values() []string {
3679	return []string{
3680		EnvironmentLifecycleStatusCreating,
3681		EnvironmentLifecycleStatusCreated,
3682		EnvironmentLifecycleStatusCreateFailed,
3683		EnvironmentLifecycleStatusDeleting,
3684		EnvironmentLifecycleStatusDeleteFailed,
3685	}
3686}
3687
3688const (
3689	// EnvironmentStatusError is a EnvironmentStatus enum value
3690	EnvironmentStatusError = "error"
3691
3692	// EnvironmentStatusCreating is a EnvironmentStatus enum value
3693	EnvironmentStatusCreating = "creating"
3694
3695	// EnvironmentStatusConnecting is a EnvironmentStatus enum value
3696	EnvironmentStatusConnecting = "connecting"
3697
3698	// EnvironmentStatusReady is a EnvironmentStatus enum value
3699	EnvironmentStatusReady = "ready"
3700
3701	// EnvironmentStatusStopping is a EnvironmentStatus enum value
3702	EnvironmentStatusStopping = "stopping"
3703
3704	// EnvironmentStatusStopped is a EnvironmentStatus enum value
3705	EnvironmentStatusStopped = "stopped"
3706
3707	// EnvironmentStatusDeleting is a EnvironmentStatus enum value
3708	EnvironmentStatusDeleting = "deleting"
3709)
3710
3711// EnvironmentStatus_Values returns all elements of the EnvironmentStatus enum
3712func EnvironmentStatus_Values() []string {
3713	return []string{
3714		EnvironmentStatusError,
3715		EnvironmentStatusCreating,
3716		EnvironmentStatusConnecting,
3717		EnvironmentStatusReady,
3718		EnvironmentStatusStopping,
3719		EnvironmentStatusStopped,
3720		EnvironmentStatusDeleting,
3721	}
3722}
3723
3724const (
3725	// EnvironmentTypeSsh is a EnvironmentType enum value
3726	EnvironmentTypeSsh = "ssh"
3727
3728	// EnvironmentTypeEc2 is a EnvironmentType enum value
3729	EnvironmentTypeEc2 = "ec2"
3730)
3731
3732// EnvironmentType_Values returns all elements of the EnvironmentType enum
3733func EnvironmentType_Values() []string {
3734	return []string{
3735		EnvironmentTypeSsh,
3736		EnvironmentTypeEc2,
3737	}
3738}
3739
3740const (
3741	// ManagedCredentialsActionEnable is a ManagedCredentialsAction enum value
3742	ManagedCredentialsActionEnable = "ENABLE"
3743
3744	// ManagedCredentialsActionDisable is a ManagedCredentialsAction enum value
3745	ManagedCredentialsActionDisable = "DISABLE"
3746)
3747
3748// ManagedCredentialsAction_Values returns all elements of the ManagedCredentialsAction enum
3749func ManagedCredentialsAction_Values() []string {
3750	return []string{
3751		ManagedCredentialsActionEnable,
3752		ManagedCredentialsActionDisable,
3753	}
3754}
3755
3756const (
3757	// ManagedCredentialsStatusEnabledOnCreate is a ManagedCredentialsStatus enum value
3758	ManagedCredentialsStatusEnabledOnCreate = "ENABLED_ON_CREATE"
3759
3760	// ManagedCredentialsStatusEnabledByOwner is a ManagedCredentialsStatus enum value
3761	ManagedCredentialsStatusEnabledByOwner = "ENABLED_BY_OWNER"
3762
3763	// ManagedCredentialsStatusDisabledByDefault is a ManagedCredentialsStatus enum value
3764	ManagedCredentialsStatusDisabledByDefault = "DISABLED_BY_DEFAULT"
3765
3766	// ManagedCredentialsStatusDisabledByOwner is a ManagedCredentialsStatus enum value
3767	ManagedCredentialsStatusDisabledByOwner = "DISABLED_BY_OWNER"
3768
3769	// ManagedCredentialsStatusDisabledByCollaborator is a ManagedCredentialsStatus enum value
3770	ManagedCredentialsStatusDisabledByCollaborator = "DISABLED_BY_COLLABORATOR"
3771
3772	// ManagedCredentialsStatusPendingRemovalByCollaborator is a ManagedCredentialsStatus enum value
3773	ManagedCredentialsStatusPendingRemovalByCollaborator = "PENDING_REMOVAL_BY_COLLABORATOR"
3774
3775	// ManagedCredentialsStatusPendingStartRemovalByCollaborator is a ManagedCredentialsStatus enum value
3776	ManagedCredentialsStatusPendingStartRemovalByCollaborator = "PENDING_START_REMOVAL_BY_COLLABORATOR"
3777
3778	// ManagedCredentialsStatusPendingRemovalByOwner is a ManagedCredentialsStatus enum value
3779	ManagedCredentialsStatusPendingRemovalByOwner = "PENDING_REMOVAL_BY_OWNER"
3780
3781	// ManagedCredentialsStatusPendingStartRemovalByOwner is a ManagedCredentialsStatus enum value
3782	ManagedCredentialsStatusPendingStartRemovalByOwner = "PENDING_START_REMOVAL_BY_OWNER"
3783
3784	// ManagedCredentialsStatusFailedRemovalByCollaborator is a ManagedCredentialsStatus enum value
3785	ManagedCredentialsStatusFailedRemovalByCollaborator = "FAILED_REMOVAL_BY_COLLABORATOR"
3786
3787	// ManagedCredentialsStatusFailedRemovalByOwner is a ManagedCredentialsStatus enum value
3788	ManagedCredentialsStatusFailedRemovalByOwner = "FAILED_REMOVAL_BY_OWNER"
3789)
3790
3791// ManagedCredentialsStatus_Values returns all elements of the ManagedCredentialsStatus enum
3792func ManagedCredentialsStatus_Values() []string {
3793	return []string{
3794		ManagedCredentialsStatusEnabledOnCreate,
3795		ManagedCredentialsStatusEnabledByOwner,
3796		ManagedCredentialsStatusDisabledByDefault,
3797		ManagedCredentialsStatusDisabledByOwner,
3798		ManagedCredentialsStatusDisabledByCollaborator,
3799		ManagedCredentialsStatusPendingRemovalByCollaborator,
3800		ManagedCredentialsStatusPendingStartRemovalByCollaborator,
3801		ManagedCredentialsStatusPendingRemovalByOwner,
3802		ManagedCredentialsStatusPendingStartRemovalByOwner,
3803		ManagedCredentialsStatusFailedRemovalByCollaborator,
3804		ManagedCredentialsStatusFailedRemovalByOwner,
3805	}
3806}
3807
3808const (
3809	// MemberPermissionsReadWrite is a MemberPermissions enum value
3810	MemberPermissionsReadWrite = "read-write"
3811
3812	// MemberPermissionsReadOnly is a MemberPermissions enum value
3813	MemberPermissionsReadOnly = "read-only"
3814)
3815
3816// MemberPermissions_Values returns all elements of the MemberPermissions enum
3817func MemberPermissions_Values() []string {
3818	return []string{
3819		MemberPermissionsReadWrite,
3820		MemberPermissionsReadOnly,
3821	}
3822}
3823
3824const (
3825	// PermissionsOwner is a Permissions enum value
3826	PermissionsOwner = "owner"
3827
3828	// PermissionsReadWrite is a Permissions enum value
3829	PermissionsReadWrite = "read-write"
3830
3831	// PermissionsReadOnly is a Permissions enum value
3832	PermissionsReadOnly = "read-only"
3833)
3834
3835// Permissions_Values returns all elements of the Permissions enum
3836func Permissions_Values() []string {
3837	return []string{
3838		PermissionsOwner,
3839		PermissionsReadWrite,
3840		PermissionsReadOnly,
3841	}
3842}
3843