1// Code generated by models/protocol_tests/generate.go. DO NOT EDIT.
2
3package jsonrpc_test
4
5import (
6	"bytes"
7	"encoding/json"
8	"encoding/xml"
9	"fmt"
10	"io"
11	"io/ioutil"
12	"net/http"
13	"net/url"
14	"reflect"
15	"testing"
16	"time"
17
18	"github.com/aws/aws-sdk-go/aws"
19	"github.com/aws/aws-sdk-go/aws/client"
20	"github.com/aws/aws-sdk-go/aws/client/metadata"
21	"github.com/aws/aws-sdk-go/aws/request"
22	"github.com/aws/aws-sdk-go/aws/signer/v4"
23	"github.com/aws/aws-sdk-go/awstesting"
24	"github.com/aws/aws-sdk-go/awstesting/unit"
25	"github.com/aws/aws-sdk-go/private/protocol"
26	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
27	"github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil"
28	"github.com/aws/aws-sdk-go/private/util"
29)
30
31var _ bytes.Buffer // always import bytes
32var _ http.Request
33var _ json.Marshaler
34var _ time.Time
35var _ xmlutil.XMLNode
36var _ xml.Attr
37var _ = ioutil.Discard
38var _ = util.Trim("")
39var _ = url.Values{}
40var _ = io.EOF
41var _ = aws.String
42var _ = fmt.Println
43var _ = reflect.Value{}
44
45func init() {
46	protocol.RandReader = &awstesting.ZeroReader{}
47}
48
49// OutputService1ProtocolTest provides the API operation methods for making requests to
50// . See this package's package overview docs
51// for details on the service.
52//
53// OutputService1ProtocolTest methods are safe to use concurrently. It is not safe to
54// modify mutate any of the struct's properties though.
55type OutputService1ProtocolTest struct {
56	*client.Client
57}
58
59// New creates a new instance of the OutputService1ProtocolTest client with a session.
60// If additional configuration is needed for the client instance use the optional
61// aws.Config parameter to add your extra config.
62//
63// Example:
64//     mySession := session.Must(session.NewSession())
65//
66//     // Create a OutputService1ProtocolTest client from just a session.
67//     svc := outputservice1protocoltest.New(mySession)
68//
69//     // Create a OutputService1ProtocolTest client with additional configuration
70//     svc := outputservice1protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
71func NewOutputService1ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService1ProtocolTest {
72	c := p.ClientConfig("outputservice1protocoltest", cfgs...)
73	return newOutputService1ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
74}
75
76// newClient creates, initializes and returns a new service client instance.
77func newOutputService1ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService1ProtocolTest {
78	svc := &OutputService1ProtocolTest{
79		Client: client.New(
80			cfg,
81			metadata.ClientInfo{
82				ServiceName:   "OutputService1ProtocolTest",
83				ServiceID:     "OutputService1ProtocolTest",
84				SigningName:   signingName,
85				SigningRegion: signingRegion,
86				PartitionID:   partitionID,
87				Endpoint:      endpoint,
88				APIVersion:    "",
89			},
90			handlers,
91		),
92	}
93
94	// Handlers
95	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
96	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
97	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
98	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
99	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
100
101	return svc
102}
103
104// newRequest creates a new request for a OutputService1ProtocolTest operation and runs any
105// custom request initialization.
106func (c *OutputService1ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
107	req := c.NewRequest(op, params, data)
108
109	return req
110}
111
112const opOutputService1TestCaseOperation1 = "OperationName"
113
114// OutputService1TestCaseOperation1Request generates a "aws/request.Request" representing the
115// client's request for the OutputService1TestCaseOperation1 operation. The "output" return
116// value will be populated with the request's response once the request completes
117// successfully.
118//
119// Use "Send" method on the returned Request to send the API call to the service.
120// the "output" return value is not valid until after Send returns without error.
121//
122// See OutputService1TestCaseOperation1 for more information on using the OutputService1TestCaseOperation1
123// API call, and error handling.
124//
125// This method is useful when you want to inject custom logic or configuration
126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
127//
128//
129//    // Example sending a request using the OutputService1TestCaseOperation1Request method.
130//    req, resp := client.OutputService1TestCaseOperation1Request(params)
131//
132//    err := req.Send()
133//    if err == nil { // resp is now filled
134//        fmt.Println(resp)
135//    }
136func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1Request(input *OutputService1TestShapeOutputService1TestCaseOperation1Input) (req *request.Request, output *OutputService1TestShapeOutputService1TestCaseOperation1Output) {
137	op := &request.Operation{
138		Name:     opOutputService1TestCaseOperation1,
139		HTTPPath: "/",
140	}
141
142	if input == nil {
143		input = &OutputService1TestShapeOutputService1TestCaseOperation1Input{}
144	}
145
146	output = &OutputService1TestShapeOutputService1TestCaseOperation1Output{}
147	req = c.newRequest(op, input, output)
148	return
149}
150
151// OutputService1TestCaseOperation1 API operation for .
152//
153// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
154// with awserr.Error's Code and Message methods to get detailed information about
155// the error.
156//
157// See the AWS API reference guide for 's
158// API operation OutputService1TestCaseOperation1 for usage and error information.
159func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1(input *OutputService1TestShapeOutputService1TestCaseOperation1Input) (*OutputService1TestShapeOutputService1TestCaseOperation1Output, error) {
160	req, out := c.OutputService1TestCaseOperation1Request(input)
161	return out, req.Send()
162}
163
164// OutputService1TestCaseOperation1WithContext is the same as OutputService1TestCaseOperation1 with the addition of
165// the ability to pass a context and additional request options.
166//
167// See OutputService1TestCaseOperation1 for details on how to use this API operation.
168//
169// The context must be non-nil and will be used for request cancellation. If
170// the context is nil a panic will occur. In the future the SDK may create
171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
172// for more information on using Contexts.
173func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1WithContext(ctx aws.Context, input *OutputService1TestShapeOutputService1TestCaseOperation1Input, opts ...request.Option) (*OutputService1TestShapeOutputService1TestCaseOperation1Output, error) {
174	req, out := c.OutputService1TestCaseOperation1Request(input)
175	req.SetContext(ctx)
176	req.ApplyOptions(opts...)
177	return out, req.Send()
178}
179
180type OutputService1TestShapeOutputService1TestCaseOperation1Input struct {
181	_ struct{} `type:"structure"`
182}
183
184type OutputService1TestShapeOutputService1TestCaseOperation1Output struct {
185	_ struct{} `type:"structure"`
186
187	Char *string `type:"character"`
188
189	Double *float64 `type:"double"`
190
191	FalseBool *bool `type:"boolean"`
192
193	Float *float64 `type:"float"`
194
195	Long *int64 `type:"long"`
196
197	Num *int64 `type:"integer"`
198
199	Str *string `type:"string"`
200
201	TrueBool *bool `type:"boolean"`
202}
203
204// SetChar sets the Char field's value.
205func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetChar(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
206	s.Char = &v
207	return s
208}
209
210// SetDouble sets the Double field's value.
211func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetDouble(v float64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
212	s.Double = &v
213	return s
214}
215
216// SetFalseBool sets the FalseBool field's value.
217func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetFalseBool(v bool) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
218	s.FalseBool = &v
219	return s
220}
221
222// SetFloat sets the Float field's value.
223func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetFloat(v float64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
224	s.Float = &v
225	return s
226}
227
228// SetLong sets the Long field's value.
229func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetLong(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
230	s.Long = &v
231	return s
232}
233
234// SetNum sets the Num field's value.
235func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetNum(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
236	s.Num = &v
237	return s
238}
239
240// SetStr sets the Str field's value.
241func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetStr(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
242	s.Str = &v
243	return s
244}
245
246// SetTrueBool sets the TrueBool field's value.
247func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetTrueBool(v bool) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
248	s.TrueBool = &v
249	return s
250}
251
252// OutputService2ProtocolTest provides the API operation methods for making requests to
253// . See this package's package overview docs
254// for details on the service.
255//
256// OutputService2ProtocolTest methods are safe to use concurrently. It is not safe to
257// modify mutate any of the struct's properties though.
258type OutputService2ProtocolTest struct {
259	*client.Client
260}
261
262// New creates a new instance of the OutputService2ProtocolTest client with a session.
263// If additional configuration is needed for the client instance use the optional
264// aws.Config parameter to add your extra config.
265//
266// Example:
267//     mySession := session.Must(session.NewSession())
268//
269//     // Create a OutputService2ProtocolTest client from just a session.
270//     svc := outputservice2protocoltest.New(mySession)
271//
272//     // Create a OutputService2ProtocolTest client with additional configuration
273//     svc := outputservice2protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
274func NewOutputService2ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService2ProtocolTest {
275	c := p.ClientConfig("outputservice2protocoltest", cfgs...)
276	return newOutputService2ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
277}
278
279// newClient creates, initializes and returns a new service client instance.
280func newOutputService2ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService2ProtocolTest {
281	svc := &OutputService2ProtocolTest{
282		Client: client.New(
283			cfg,
284			metadata.ClientInfo{
285				ServiceName:   "OutputService2ProtocolTest",
286				ServiceID:     "OutputService2ProtocolTest",
287				SigningName:   signingName,
288				SigningRegion: signingRegion,
289				PartitionID:   partitionID,
290				Endpoint:      endpoint,
291				APIVersion:    "",
292			},
293			handlers,
294		),
295	}
296
297	// Handlers
298	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
299	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
300	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
301	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
302	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
303
304	return svc
305}
306
307// newRequest creates a new request for a OutputService2ProtocolTest operation and runs any
308// custom request initialization.
309func (c *OutputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
310	req := c.NewRequest(op, params, data)
311
312	return req
313}
314
315const opOutputService2TestCaseOperation1 = "OperationName"
316
317// OutputService2TestCaseOperation1Request generates a "aws/request.Request" representing the
318// client's request for the OutputService2TestCaseOperation1 operation. The "output" return
319// value will be populated with the request's response once the request completes
320// successfully.
321//
322// Use "Send" method on the returned Request to send the API call to the service.
323// the "output" return value is not valid until after Send returns without error.
324//
325// See OutputService2TestCaseOperation1 for more information on using the OutputService2TestCaseOperation1
326// API call, and error handling.
327//
328// This method is useful when you want to inject custom logic or configuration
329// into the SDK's request lifecycle. Such as custom headers, or retry logic.
330//
331//
332//    // Example sending a request using the OutputService2TestCaseOperation1Request method.
333//    req, resp := client.OutputService2TestCaseOperation1Request(params)
334//
335//    err := req.Send()
336//    if err == nil { // resp is now filled
337//        fmt.Println(resp)
338//    }
339func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1Request(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (req *request.Request, output *OutputService2TestShapeOutputService2TestCaseOperation1Output) {
340	op := &request.Operation{
341		Name:     opOutputService2TestCaseOperation1,
342		HTTPPath: "/",
343	}
344
345	if input == nil {
346		input = &OutputService2TestShapeOutputService2TestCaseOperation1Input{}
347	}
348
349	output = &OutputService2TestShapeOutputService2TestCaseOperation1Output{}
350	req = c.newRequest(op, input, output)
351	return
352}
353
354// OutputService2TestCaseOperation1 API operation for .
355//
356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
357// with awserr.Error's Code and Message methods to get detailed information about
358// the error.
359//
360// See the AWS API reference guide for 's
361// API operation OutputService2TestCaseOperation1 for usage and error information.
362func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
363	req, out := c.OutputService2TestCaseOperation1Request(input)
364	return out, req.Send()
365}
366
367// OutputService2TestCaseOperation1WithContext is the same as OutputService2TestCaseOperation1 with the addition of
368// the ability to pass a context and additional request options.
369//
370// See OutputService2TestCaseOperation1 for details on how to use this API operation.
371//
372// The context must be non-nil and will be used for request cancellation. If
373// the context is nil a panic will occur. In the future the SDK may create
374// sub-contexts for http.Requests. See https://golang.org/pkg/context/
375// for more information on using Contexts.
376func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1WithContext(ctx aws.Context, input *OutputService2TestShapeOutputService2TestCaseOperation1Input, opts ...request.Option) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
377	req, out := c.OutputService2TestCaseOperation1Request(input)
378	req.SetContext(ctx)
379	req.ApplyOptions(opts...)
380	return out, req.Send()
381}
382
383type OutputService2TestShapeBlobContainer struct {
384	_ struct{} `type:"structure"`
385
386	// Foo is automatically base64 encoded/decoded by the SDK.
387	Foo []byte `locationName:"foo" type:"blob"`
388}
389
390// SetFoo sets the Foo field's value.
391func (s *OutputService2TestShapeBlobContainer) SetFoo(v []byte) *OutputService2TestShapeBlobContainer {
392	s.Foo = v
393	return s
394}
395
396type OutputService2TestShapeOutputService2TestCaseOperation1Input struct {
397	_ struct{} `type:"structure"`
398}
399
400type OutputService2TestShapeOutputService2TestCaseOperation1Output struct {
401	_ struct{} `type:"structure"`
402
403	// BlobMember is automatically base64 encoded/decoded by the SDK.
404	BlobMember []byte `type:"blob"`
405
406	StructMember *OutputService2TestShapeBlobContainer `type:"structure"`
407}
408
409// SetBlobMember sets the BlobMember field's value.
410func (s *OutputService2TestShapeOutputService2TestCaseOperation1Output) SetBlobMember(v []byte) *OutputService2TestShapeOutputService2TestCaseOperation1Output {
411	s.BlobMember = v
412	return s
413}
414
415// SetStructMember sets the StructMember field's value.
416func (s *OutputService2TestShapeOutputService2TestCaseOperation1Output) SetStructMember(v *OutputService2TestShapeBlobContainer) *OutputService2TestShapeOutputService2TestCaseOperation1Output {
417	s.StructMember = v
418	return s
419}
420
421// OutputService3ProtocolTest provides the API operation methods for making requests to
422// . See this package's package overview docs
423// for details on the service.
424//
425// OutputService3ProtocolTest methods are safe to use concurrently. It is not safe to
426// modify mutate any of the struct's properties though.
427type OutputService3ProtocolTest struct {
428	*client.Client
429}
430
431// New creates a new instance of the OutputService3ProtocolTest client with a session.
432// If additional configuration is needed for the client instance use the optional
433// aws.Config parameter to add your extra config.
434//
435// Example:
436//     mySession := session.Must(session.NewSession())
437//
438//     // Create a OutputService3ProtocolTest client from just a session.
439//     svc := outputservice3protocoltest.New(mySession)
440//
441//     // Create a OutputService3ProtocolTest client with additional configuration
442//     svc := outputservice3protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
443func NewOutputService3ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService3ProtocolTest {
444	c := p.ClientConfig("outputservice3protocoltest", cfgs...)
445	return newOutputService3ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
446}
447
448// newClient creates, initializes and returns a new service client instance.
449func newOutputService3ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService3ProtocolTest {
450	svc := &OutputService3ProtocolTest{
451		Client: client.New(
452			cfg,
453			metadata.ClientInfo{
454				ServiceName:   "OutputService3ProtocolTest",
455				ServiceID:     "OutputService3ProtocolTest",
456				SigningName:   signingName,
457				SigningRegion: signingRegion,
458				PartitionID:   partitionID,
459				Endpoint:      endpoint,
460				APIVersion:    "",
461			},
462			handlers,
463		),
464	}
465
466	// Handlers
467	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
468	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
469	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
470	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
471	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
472
473	return svc
474}
475
476// newRequest creates a new request for a OutputService3ProtocolTest operation and runs any
477// custom request initialization.
478func (c *OutputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
479	req := c.NewRequest(op, params, data)
480
481	return req
482}
483
484const opOutputService3TestCaseOperation1 = "OperationName"
485
486// OutputService3TestCaseOperation1Request generates a "aws/request.Request" representing the
487// client's request for the OutputService3TestCaseOperation1 operation. The "output" return
488// value will be populated with the request's response once the request completes
489// successfully.
490//
491// Use "Send" method on the returned Request to send the API call to the service.
492// the "output" return value is not valid until after Send returns without error.
493//
494// See OutputService3TestCaseOperation1 for more information on using the OutputService3TestCaseOperation1
495// API call, and error handling.
496//
497// This method is useful when you want to inject custom logic or configuration
498// into the SDK's request lifecycle. Such as custom headers, or retry logic.
499//
500//
501//    // Example sending a request using the OutputService3TestCaseOperation1Request method.
502//    req, resp := client.OutputService3TestCaseOperation1Request(params)
503//
504//    err := req.Send()
505//    if err == nil { // resp is now filled
506//        fmt.Println(resp)
507//    }
508func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1Request(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (req *request.Request, output *OutputService3TestShapeOutputService3TestCaseOperation1Output) {
509	op := &request.Operation{
510		Name:     opOutputService3TestCaseOperation1,
511		HTTPPath: "/",
512	}
513
514	if input == nil {
515		input = &OutputService3TestShapeOutputService3TestCaseOperation1Input{}
516	}
517
518	output = &OutputService3TestShapeOutputService3TestCaseOperation1Output{}
519	req = c.newRequest(op, input, output)
520	return
521}
522
523// OutputService3TestCaseOperation1 API operation for .
524//
525// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
526// with awserr.Error's Code and Message methods to get detailed information about
527// the error.
528//
529// See the AWS API reference guide for 's
530// API operation OutputService3TestCaseOperation1 for usage and error information.
531func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
532	req, out := c.OutputService3TestCaseOperation1Request(input)
533	return out, req.Send()
534}
535
536// OutputService3TestCaseOperation1WithContext is the same as OutputService3TestCaseOperation1 with the addition of
537// the ability to pass a context and additional request options.
538//
539// See OutputService3TestCaseOperation1 for details on how to use this API operation.
540//
541// The context must be non-nil and will be used for request cancellation. If
542// the context is nil a panic will occur. In the future the SDK may create
543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
544// for more information on using Contexts.
545func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1WithContext(ctx aws.Context, input *OutputService3TestShapeOutputService3TestCaseOperation1Input, opts ...request.Option) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
546	req, out := c.OutputService3TestCaseOperation1Request(input)
547	req.SetContext(ctx)
548	req.ApplyOptions(opts...)
549	return out, req.Send()
550}
551
552type OutputService3TestShapeOutputService3TestCaseOperation1Input struct {
553	_ struct{} `type:"structure"`
554}
555
556type OutputService3TestShapeOutputService3TestCaseOperation1Output struct {
557	_ struct{} `type:"structure"`
558
559	StructMember *OutputService3TestShapeTimeContainer `type:"structure"`
560
561	TimeArg *time.Time `type:"timestamp"`
562
563	TimeCustom *time.Time `type:"timestamp" timestampFormat:"rfc822"`
564
565	TimeFormat *time.Time `type:"timestamp" timestampFormat:"iso8601"`
566}
567
568// SetStructMember sets the StructMember field's value.
569func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetStructMember(v *OutputService3TestShapeTimeContainer) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
570	s.StructMember = v
571	return s
572}
573
574// SetTimeArg sets the TimeArg field's value.
575func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeArg(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
576	s.TimeArg = &v
577	return s
578}
579
580// SetTimeCustom sets the TimeCustom field's value.
581func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeCustom(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
582	s.TimeCustom = &v
583	return s
584}
585
586// SetTimeFormat sets the TimeFormat field's value.
587func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeFormat(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
588	s.TimeFormat = &v
589	return s
590}
591
592type OutputService3TestShapeTimeContainer struct {
593	_ struct{} `type:"structure"`
594
595	Bar *time.Time `locationName:"bar" type:"timestamp" timestampFormat:"iso8601"`
596
597	Foo *time.Time `locationName:"foo" type:"timestamp"`
598}
599
600// SetBar sets the Bar field's value.
601func (s *OutputService3TestShapeTimeContainer) SetBar(v time.Time) *OutputService3TestShapeTimeContainer {
602	s.Bar = &v
603	return s
604}
605
606// SetFoo sets the Foo field's value.
607func (s *OutputService3TestShapeTimeContainer) SetFoo(v time.Time) *OutputService3TestShapeTimeContainer {
608	s.Foo = &v
609	return s
610}
611
612// OutputService4ProtocolTest provides the API operation methods for making requests to
613// . See this package's package overview docs
614// for details on the service.
615//
616// OutputService4ProtocolTest methods are safe to use concurrently. It is not safe to
617// modify mutate any of the struct's properties though.
618type OutputService4ProtocolTest struct {
619	*client.Client
620}
621
622// New creates a new instance of the OutputService4ProtocolTest client with a session.
623// If additional configuration is needed for the client instance use the optional
624// aws.Config parameter to add your extra config.
625//
626// Example:
627//     mySession := session.Must(session.NewSession())
628//
629//     // Create a OutputService4ProtocolTest client from just a session.
630//     svc := outputservice4protocoltest.New(mySession)
631//
632//     // Create a OutputService4ProtocolTest client with additional configuration
633//     svc := outputservice4protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
634func NewOutputService4ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService4ProtocolTest {
635	c := p.ClientConfig("outputservice4protocoltest", cfgs...)
636	return newOutputService4ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
637}
638
639// newClient creates, initializes and returns a new service client instance.
640func newOutputService4ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService4ProtocolTest {
641	svc := &OutputService4ProtocolTest{
642		Client: client.New(
643			cfg,
644			metadata.ClientInfo{
645				ServiceName:   "OutputService4ProtocolTest",
646				ServiceID:     "OutputService4ProtocolTest",
647				SigningName:   signingName,
648				SigningRegion: signingRegion,
649				PartitionID:   partitionID,
650				Endpoint:      endpoint,
651				APIVersion:    "",
652			},
653			handlers,
654		),
655	}
656
657	// Handlers
658	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
659	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
660	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
661	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
662	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
663
664	return svc
665}
666
667// newRequest creates a new request for a OutputService4ProtocolTest operation and runs any
668// custom request initialization.
669func (c *OutputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
670	req := c.NewRequest(op, params, data)
671
672	return req
673}
674
675const opOutputService4TestCaseOperation1 = "OperationName"
676
677// OutputService4TestCaseOperation1Request generates a "aws/request.Request" representing the
678// client's request for the OutputService4TestCaseOperation1 operation. The "output" return
679// value will be populated with the request's response once the request completes
680// successfully.
681//
682// Use "Send" method on the returned Request to send the API call to the service.
683// the "output" return value is not valid until after Send returns without error.
684//
685// See OutputService4TestCaseOperation1 for more information on using the OutputService4TestCaseOperation1
686// API call, and error handling.
687//
688// This method is useful when you want to inject custom logic or configuration
689// into the SDK's request lifecycle. Such as custom headers, or retry logic.
690//
691//
692//    // Example sending a request using the OutputService4TestCaseOperation1Request method.
693//    req, resp := client.OutputService4TestCaseOperation1Request(params)
694//
695//    err := req.Send()
696//    if err == nil { // resp is now filled
697//        fmt.Println(resp)
698//    }
699func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1Request(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (req *request.Request, output *OutputService4TestShapeOutputService4TestCaseOperation1Output) {
700	op := &request.Operation{
701		Name:     opOutputService4TestCaseOperation1,
702		HTTPPath: "/",
703	}
704
705	if input == nil {
706		input = &OutputService4TestShapeOutputService4TestCaseOperation1Input{}
707	}
708
709	output = &OutputService4TestShapeOutputService4TestCaseOperation1Output{}
710	req = c.newRequest(op, input, output)
711	return
712}
713
714// OutputService4TestCaseOperation1 API operation for .
715//
716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
717// with awserr.Error's Code and Message methods to get detailed information about
718// the error.
719//
720// See the AWS API reference guide for 's
721// API operation OutputService4TestCaseOperation1 for usage and error information.
722func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
723	req, out := c.OutputService4TestCaseOperation1Request(input)
724	return out, req.Send()
725}
726
727// OutputService4TestCaseOperation1WithContext is the same as OutputService4TestCaseOperation1 with the addition of
728// the ability to pass a context and additional request options.
729//
730// See OutputService4TestCaseOperation1 for details on how to use this API operation.
731//
732// The context must be non-nil and will be used for request cancellation. If
733// the context is nil a panic will occur. In the future the SDK may create
734// sub-contexts for http.Requests. See https://golang.org/pkg/context/
735// for more information on using Contexts.
736func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1WithContext(ctx aws.Context, input *OutputService4TestShapeOutputService4TestCaseOperation1Input, opts ...request.Option) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
737	req, out := c.OutputService4TestCaseOperation1Request(input)
738	req.SetContext(ctx)
739	req.ApplyOptions(opts...)
740	return out, req.Send()
741}
742
743const opOutputService4TestCaseOperation2 = "OperationName"
744
745// OutputService4TestCaseOperation2Request generates a "aws/request.Request" representing the
746// client's request for the OutputService4TestCaseOperation2 operation. The "output" return
747// value will be populated with the request's response once the request completes
748// successfully.
749//
750// Use "Send" method on the returned Request to send the API call to the service.
751// the "output" return value is not valid until after Send returns without error.
752//
753// See OutputService4TestCaseOperation2 for more information on using the OutputService4TestCaseOperation2
754// API call, and error handling.
755//
756// This method is useful when you want to inject custom logic or configuration
757// into the SDK's request lifecycle. Such as custom headers, or retry logic.
758//
759//
760//    // Example sending a request using the OutputService4TestCaseOperation2Request method.
761//    req, resp := client.OutputService4TestCaseOperation2Request(params)
762//
763//    err := req.Send()
764//    if err == nil { // resp is now filled
765//        fmt.Println(resp)
766//    }
767func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation2Request(input *OutputService4TestShapeOutputService4TestCaseOperation2Input) (req *request.Request, output *OutputService4TestShapeOutputService4TestCaseOperation2Output) {
768	op := &request.Operation{
769		Name:     opOutputService4TestCaseOperation2,
770		HTTPPath: "/",
771	}
772
773	if input == nil {
774		input = &OutputService4TestShapeOutputService4TestCaseOperation2Input{}
775	}
776
777	output = &OutputService4TestShapeOutputService4TestCaseOperation2Output{}
778	req = c.newRequest(op, input, output)
779	return
780}
781
782// OutputService4TestCaseOperation2 API operation for .
783//
784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
785// with awserr.Error's Code and Message methods to get detailed information about
786// the error.
787//
788// See the AWS API reference guide for 's
789// API operation OutputService4TestCaseOperation2 for usage and error information.
790func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation2(input *OutputService4TestShapeOutputService4TestCaseOperation2Input) (*OutputService4TestShapeOutputService4TestCaseOperation2Output, error) {
791	req, out := c.OutputService4TestCaseOperation2Request(input)
792	return out, req.Send()
793}
794
795// OutputService4TestCaseOperation2WithContext is the same as OutputService4TestCaseOperation2 with the addition of
796// the ability to pass a context and additional request options.
797//
798// See OutputService4TestCaseOperation2 for details on how to use this API operation.
799//
800// The context must be non-nil and will be used for request cancellation. If
801// the context is nil a panic will occur. In the future the SDK may create
802// sub-contexts for http.Requests. See https://golang.org/pkg/context/
803// for more information on using Contexts.
804func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation2WithContext(ctx aws.Context, input *OutputService4TestShapeOutputService4TestCaseOperation2Input, opts ...request.Option) (*OutputService4TestShapeOutputService4TestCaseOperation2Output, error) {
805	req, out := c.OutputService4TestCaseOperation2Request(input)
806	req.SetContext(ctx)
807	req.ApplyOptions(opts...)
808	return out, req.Send()
809}
810
811type OutputService4TestShapeOutputService4TestCaseOperation1Input struct {
812	_ struct{} `type:"structure"`
813}
814
815type OutputService4TestShapeOutputService4TestCaseOperation1Output struct {
816	_ struct{} `type:"structure"`
817
818	ListMember []*string `type:"list"`
819
820	ListMemberMap []map[string]*string `type:"list"`
821
822	ListMemberStruct []*OutputService4TestShapeStructType `type:"list"`
823}
824
825// SetListMember sets the ListMember field's value.
826func (s *OutputService4TestShapeOutputService4TestCaseOperation1Output) SetListMember(v []*string) *OutputService4TestShapeOutputService4TestCaseOperation1Output {
827	s.ListMember = v
828	return s
829}
830
831// SetListMemberMap sets the ListMemberMap field's value.
832func (s *OutputService4TestShapeOutputService4TestCaseOperation1Output) SetListMemberMap(v []map[string]*string) *OutputService4TestShapeOutputService4TestCaseOperation1Output {
833	s.ListMemberMap = v
834	return s
835}
836
837// SetListMemberStruct sets the ListMemberStruct field's value.
838func (s *OutputService4TestShapeOutputService4TestCaseOperation1Output) SetListMemberStruct(v []*OutputService4TestShapeStructType) *OutputService4TestShapeOutputService4TestCaseOperation1Output {
839	s.ListMemberStruct = v
840	return s
841}
842
843type OutputService4TestShapeOutputService4TestCaseOperation2Input struct {
844	_ struct{} `type:"structure"`
845}
846
847type OutputService4TestShapeOutputService4TestCaseOperation2Output struct {
848	_ struct{} `type:"structure"`
849
850	ListMember []*string `type:"list"`
851
852	ListMemberMap []map[string]*string `type:"list"`
853
854	ListMemberStruct []*OutputService4TestShapeStructType `type:"list"`
855}
856
857// SetListMember sets the ListMember field's value.
858func (s *OutputService4TestShapeOutputService4TestCaseOperation2Output) SetListMember(v []*string) *OutputService4TestShapeOutputService4TestCaseOperation2Output {
859	s.ListMember = v
860	return s
861}
862
863// SetListMemberMap sets the ListMemberMap field's value.
864func (s *OutputService4TestShapeOutputService4TestCaseOperation2Output) SetListMemberMap(v []map[string]*string) *OutputService4TestShapeOutputService4TestCaseOperation2Output {
865	s.ListMemberMap = v
866	return s
867}
868
869// SetListMemberStruct sets the ListMemberStruct field's value.
870func (s *OutputService4TestShapeOutputService4TestCaseOperation2Output) SetListMemberStruct(v []*OutputService4TestShapeStructType) *OutputService4TestShapeOutputService4TestCaseOperation2Output {
871	s.ListMemberStruct = v
872	return s
873}
874
875type OutputService4TestShapeStructType struct {
876	_ struct{} `type:"structure"`
877}
878
879// OutputService5ProtocolTest provides the API operation methods for making requests to
880// . See this package's package overview docs
881// for details on the service.
882//
883// OutputService5ProtocolTest methods are safe to use concurrently. It is not safe to
884// modify mutate any of the struct's properties though.
885type OutputService5ProtocolTest struct {
886	*client.Client
887}
888
889// New creates a new instance of the OutputService5ProtocolTest client with a session.
890// If additional configuration is needed for the client instance use the optional
891// aws.Config parameter to add your extra config.
892//
893// Example:
894//     mySession := session.Must(session.NewSession())
895//
896//     // Create a OutputService5ProtocolTest client from just a session.
897//     svc := outputservice5protocoltest.New(mySession)
898//
899//     // Create a OutputService5ProtocolTest client with additional configuration
900//     svc := outputservice5protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
901func NewOutputService5ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService5ProtocolTest {
902	c := p.ClientConfig("outputservice5protocoltest", cfgs...)
903	return newOutputService5ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
904}
905
906// newClient creates, initializes and returns a new service client instance.
907func newOutputService5ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService5ProtocolTest {
908	svc := &OutputService5ProtocolTest{
909		Client: client.New(
910			cfg,
911			metadata.ClientInfo{
912				ServiceName:   "OutputService5ProtocolTest",
913				ServiceID:     "OutputService5ProtocolTest",
914				SigningName:   signingName,
915				SigningRegion: signingRegion,
916				PartitionID:   partitionID,
917				Endpoint:      endpoint,
918				APIVersion:    "",
919			},
920			handlers,
921		),
922	}
923
924	// Handlers
925	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
926	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
927	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
928	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
929	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
930
931	return svc
932}
933
934// newRequest creates a new request for a OutputService5ProtocolTest operation and runs any
935// custom request initialization.
936func (c *OutputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
937	req := c.NewRequest(op, params, data)
938
939	return req
940}
941
942const opOutputService5TestCaseOperation1 = "OperationName"
943
944// OutputService5TestCaseOperation1Request generates a "aws/request.Request" representing the
945// client's request for the OutputService5TestCaseOperation1 operation. The "output" return
946// value will be populated with the request's response once the request completes
947// successfully.
948//
949// Use "Send" method on the returned Request to send the API call to the service.
950// the "output" return value is not valid until after Send returns without error.
951//
952// See OutputService5TestCaseOperation1 for more information on using the OutputService5TestCaseOperation1
953// API call, and error handling.
954//
955// This method is useful when you want to inject custom logic or configuration
956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
957//
958//
959//    // Example sending a request using the OutputService5TestCaseOperation1Request method.
960//    req, resp := client.OutputService5TestCaseOperation1Request(params)
961//
962//    err := req.Send()
963//    if err == nil { // resp is now filled
964//        fmt.Println(resp)
965//    }
966func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1Request(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (req *request.Request, output *OutputService5TestShapeOutputService5TestCaseOperation1Output) {
967	op := &request.Operation{
968		Name:     opOutputService5TestCaseOperation1,
969		HTTPPath: "/",
970	}
971
972	if input == nil {
973		input = &OutputService5TestShapeOutputService5TestCaseOperation1Input{}
974	}
975
976	output = &OutputService5TestShapeOutputService5TestCaseOperation1Output{}
977	req = c.newRequest(op, input, output)
978	return
979}
980
981// OutputService5TestCaseOperation1 API operation for .
982//
983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
984// with awserr.Error's Code and Message methods to get detailed information about
985// the error.
986//
987// See the AWS API reference guide for 's
988// API operation OutputService5TestCaseOperation1 for usage and error information.
989func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
990	req, out := c.OutputService5TestCaseOperation1Request(input)
991	return out, req.Send()
992}
993
994// OutputService5TestCaseOperation1WithContext is the same as OutputService5TestCaseOperation1 with the addition of
995// the ability to pass a context and additional request options.
996//
997// See OutputService5TestCaseOperation1 for details on how to use this API operation.
998//
999// The context must be non-nil and will be used for request cancellation. If
1000// the context is nil a panic will occur. In the future the SDK may create
1001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1002// for more information on using Contexts.
1003func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1WithContext(ctx aws.Context, input *OutputService5TestShapeOutputService5TestCaseOperation1Input, opts ...request.Option) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
1004	req, out := c.OutputService5TestCaseOperation1Request(input)
1005	req.SetContext(ctx)
1006	req.ApplyOptions(opts...)
1007	return out, req.Send()
1008}
1009
1010type OutputService5TestShapeOutputService5TestCaseOperation1Input struct {
1011	_ struct{} `type:"structure"`
1012}
1013
1014type OutputService5TestShapeOutputService5TestCaseOperation1Output struct {
1015	_ struct{} `type:"structure"`
1016
1017	MapMember map[string][]*int64 `type:"map"`
1018}
1019
1020// SetMapMember sets the MapMember field's value.
1021func (s *OutputService5TestShapeOutputService5TestCaseOperation1Output) SetMapMember(v map[string][]*int64) *OutputService5TestShapeOutputService5TestCaseOperation1Output {
1022	s.MapMember = v
1023	return s
1024}
1025
1026// OutputService6ProtocolTest provides the API operation methods for making requests to
1027// . See this package's package overview docs
1028// for details on the service.
1029//
1030// OutputService6ProtocolTest methods are safe to use concurrently. It is not safe to
1031// modify mutate any of the struct's properties though.
1032type OutputService6ProtocolTest struct {
1033	*client.Client
1034}
1035
1036// New creates a new instance of the OutputService6ProtocolTest client with a session.
1037// If additional configuration is needed for the client instance use the optional
1038// aws.Config parameter to add your extra config.
1039//
1040// Example:
1041//     mySession := session.Must(session.NewSession())
1042//
1043//     // Create a OutputService6ProtocolTest client from just a session.
1044//     svc := outputservice6protocoltest.New(mySession)
1045//
1046//     // Create a OutputService6ProtocolTest client with additional configuration
1047//     svc := outputservice6protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
1048func NewOutputService6ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService6ProtocolTest {
1049	c := p.ClientConfig("outputservice6protocoltest", cfgs...)
1050	return newOutputService6ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
1051}
1052
1053// newClient creates, initializes and returns a new service client instance.
1054func newOutputService6ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService6ProtocolTest {
1055	svc := &OutputService6ProtocolTest{
1056		Client: client.New(
1057			cfg,
1058			metadata.ClientInfo{
1059				ServiceName:   "OutputService6ProtocolTest",
1060				ServiceID:     "OutputService6ProtocolTest",
1061				SigningName:   signingName,
1062				SigningRegion: signingRegion,
1063				PartitionID:   partitionID,
1064				Endpoint:      endpoint,
1065				APIVersion:    "",
1066			},
1067			handlers,
1068		),
1069	}
1070
1071	// Handlers
1072	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
1073	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
1074	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
1075	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
1076	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
1077
1078	return svc
1079}
1080
1081// newRequest creates a new request for a OutputService6ProtocolTest operation and runs any
1082// custom request initialization.
1083func (c *OutputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
1084	req := c.NewRequest(op, params, data)
1085
1086	return req
1087}
1088
1089const opOutputService6TestCaseOperation1 = "OperationName"
1090
1091// OutputService6TestCaseOperation1Request generates a "aws/request.Request" representing the
1092// client's request for the OutputService6TestCaseOperation1 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 OutputService6TestCaseOperation1 for more information on using the OutputService6TestCaseOperation1
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 OutputService6TestCaseOperation1Request method.
1107//    req, resp := client.OutputService6TestCaseOperation1Request(params)
1108//
1109//    err := req.Send()
1110//    if err == nil { // resp is now filled
1111//        fmt.Println(resp)
1112//    }
1113func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1Request(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (req *request.Request, output *OutputService6TestShapeOutputService6TestCaseOperation1Output) {
1114	op := &request.Operation{
1115		Name:     opOutputService6TestCaseOperation1,
1116		HTTPPath: "/",
1117	}
1118
1119	if input == nil {
1120		input = &OutputService6TestShapeOutputService6TestCaseOperation1Input{}
1121	}
1122
1123	output = &OutputService6TestShapeOutputService6TestCaseOperation1Output{}
1124	req = c.newRequest(op, input, output)
1125	return
1126}
1127
1128// OutputService6TestCaseOperation1 API operation for .
1129//
1130// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1131// with awserr.Error's Code and Message methods to get detailed information about
1132// the error.
1133//
1134// See the AWS API reference guide for 's
1135// API operation OutputService6TestCaseOperation1 for usage and error information.
1136func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
1137	req, out := c.OutputService6TestCaseOperation1Request(input)
1138	return out, req.Send()
1139}
1140
1141// OutputService6TestCaseOperation1WithContext is the same as OutputService6TestCaseOperation1 with the addition of
1142// the ability to pass a context and additional request options.
1143//
1144// See OutputService6TestCaseOperation1 for details on how to use this API operation.
1145//
1146// The context must be non-nil and will be used for request cancellation. If
1147// the context is nil a panic will occur. In the future the SDK may create
1148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1149// for more information on using Contexts.
1150func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1WithContext(ctx aws.Context, input *OutputService6TestShapeOutputService6TestCaseOperation1Input, opts ...request.Option) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
1151	req, out := c.OutputService6TestCaseOperation1Request(input)
1152	req.SetContext(ctx)
1153	req.ApplyOptions(opts...)
1154	return out, req.Send()
1155}
1156
1157type OutputService6TestShapeOutputService6TestCaseOperation1Input struct {
1158	_ struct{} `type:"structure"`
1159}
1160
1161type OutputService6TestShapeOutputService6TestCaseOperation1Output struct {
1162	_ struct{} `type:"structure"`
1163
1164	StrType *string `type:"string"`
1165}
1166
1167// SetStrType sets the StrType field's value.
1168func (s *OutputService6TestShapeOutputService6TestCaseOperation1Output) SetStrType(v string) *OutputService6TestShapeOutputService6TestCaseOperation1Output {
1169	s.StrType = &v
1170	return s
1171}
1172
1173// OutputService7ProtocolTest provides the API operation methods for making requests to
1174// . See this package's package overview docs
1175// for details on the service.
1176//
1177// OutputService7ProtocolTest methods are safe to use concurrently. It is not safe to
1178// modify mutate any of the struct's properties though.
1179type OutputService7ProtocolTest struct {
1180	*client.Client
1181}
1182
1183// New creates a new instance of the OutputService7ProtocolTest client with a session.
1184// If additional configuration is needed for the client instance use the optional
1185// aws.Config parameter to add your extra config.
1186//
1187// Example:
1188//     mySession := session.Must(session.NewSession())
1189//
1190//     // Create a OutputService7ProtocolTest client from just a session.
1191//     svc := outputservice7protocoltest.New(mySession)
1192//
1193//     // Create a OutputService7ProtocolTest client with additional configuration
1194//     svc := outputservice7protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
1195func NewOutputService7ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService7ProtocolTest {
1196	c := p.ClientConfig("outputservice7protocoltest", cfgs...)
1197	return newOutputService7ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
1198}
1199
1200// newClient creates, initializes and returns a new service client instance.
1201func newOutputService7ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService7ProtocolTest {
1202	svc := &OutputService7ProtocolTest{
1203		Client: client.New(
1204			cfg,
1205			metadata.ClientInfo{
1206				ServiceName:   "OutputService7ProtocolTest",
1207				ServiceID:     "OutputService7ProtocolTest",
1208				SigningName:   signingName,
1209				SigningRegion: signingRegion,
1210				PartitionID:   partitionID,
1211				Endpoint:      endpoint,
1212				APIVersion:    "",
1213			},
1214			handlers,
1215		),
1216	}
1217
1218	// Handlers
1219	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
1220	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
1221	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
1222	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
1223	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
1224
1225	return svc
1226}
1227
1228// newRequest creates a new request for a OutputService7ProtocolTest operation and runs any
1229// custom request initialization.
1230func (c *OutputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
1231	req := c.NewRequest(op, params, data)
1232
1233	return req
1234}
1235
1236const opOutputService7TestCaseOperation1 = "OperationName"
1237
1238// OutputService7TestCaseOperation1Request generates a "aws/request.Request" representing the
1239// client's request for the OutputService7TestCaseOperation1 operation. The "output" return
1240// value will be populated with the request's response once the request completes
1241// successfully.
1242//
1243// Use "Send" method on the returned Request to send the API call to the service.
1244// the "output" return value is not valid until after Send returns without error.
1245//
1246// See OutputService7TestCaseOperation1 for more information on using the OutputService7TestCaseOperation1
1247// API call, and error handling.
1248//
1249// This method is useful when you want to inject custom logic or configuration
1250// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1251//
1252//
1253//    // Example sending a request using the OutputService7TestCaseOperation1Request method.
1254//    req, resp := client.OutputService7TestCaseOperation1Request(params)
1255//
1256//    err := req.Send()
1257//    if err == nil { // resp is now filled
1258//        fmt.Println(resp)
1259//    }
1260func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1Request(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (req *request.Request, output *OutputService7TestShapeOutputService7TestCaseOperation1Output) {
1261	op := &request.Operation{
1262		Name:     opOutputService7TestCaseOperation1,
1263		HTTPPath: "/",
1264	}
1265
1266	if input == nil {
1267		input = &OutputService7TestShapeOutputService7TestCaseOperation1Input{}
1268	}
1269
1270	output = &OutputService7TestShapeOutputService7TestCaseOperation1Output{}
1271	req = c.newRequest(op, input, output)
1272	return
1273}
1274
1275// OutputService7TestCaseOperation1 API operation for .
1276//
1277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1278// with awserr.Error's Code and Message methods to get detailed information about
1279// the error.
1280//
1281// See the AWS API reference guide for 's
1282// API operation OutputService7TestCaseOperation1 for usage and error information.
1283func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
1284	req, out := c.OutputService7TestCaseOperation1Request(input)
1285	return out, req.Send()
1286}
1287
1288// OutputService7TestCaseOperation1WithContext is the same as OutputService7TestCaseOperation1 with the addition of
1289// the ability to pass a context and additional request options.
1290//
1291// See OutputService7TestCaseOperation1 for details on how to use this API operation.
1292//
1293// The context must be non-nil and will be used for request cancellation. If
1294// the context is nil a panic will occur. In the future the SDK may create
1295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1296// for more information on using Contexts.
1297func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1WithContext(ctx aws.Context, input *OutputService7TestShapeOutputService7TestCaseOperation1Input, opts ...request.Option) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
1298	req, out := c.OutputService7TestCaseOperation1Request(input)
1299	req.SetContext(ctx)
1300	req.ApplyOptions(opts...)
1301	return out, req.Send()
1302}
1303
1304type OutputService7TestShapeOutputService7TestCaseOperation1Input struct {
1305	_ struct{} `type:"structure"`
1306}
1307
1308type OutputService7TestShapeOutputService7TestCaseOperation1Output struct {
1309	_ struct{} `type:"structure"`
1310
1311	FooEnum *string `type:"string" enum:"OutputService7TestShapeJSONEnumType"`
1312
1313	ListEnums []*string `type:"list"`
1314}
1315
1316// SetFooEnum sets the FooEnum field's value.
1317func (s *OutputService7TestShapeOutputService7TestCaseOperation1Output) SetFooEnum(v string) *OutputService7TestShapeOutputService7TestCaseOperation1Output {
1318	s.FooEnum = &v
1319	return s
1320}
1321
1322// SetListEnums sets the ListEnums field's value.
1323func (s *OutputService7TestShapeOutputService7TestCaseOperation1Output) SetListEnums(v []*string) *OutputService7TestShapeOutputService7TestCaseOperation1Output {
1324	s.ListEnums = v
1325	return s
1326}
1327
1328const (
1329	// JSONEnumTypeFoo is a OutputService7TestShapeJSONEnumType enum value
1330	JSONEnumTypeFoo = "foo"
1331
1332	// JSONEnumTypeBar is a OutputService7TestShapeJSONEnumType enum value
1333	JSONEnumTypeBar = "bar"
1334)
1335
1336// OutputService7TestShapeJSONEnumType_Values returns all elements of the OutputService7TestShapeJSONEnumType enum
1337func OutputService7TestShapeJSONEnumType_Values() []string {
1338	return []string{
1339		JSONEnumTypeFoo,
1340		JSONEnumTypeBar,
1341	}
1342}
1343
1344// OutputService8ProtocolTest provides the API operation methods for making requests to
1345// . See this package's package overview docs
1346// for details on the service.
1347//
1348// OutputService8ProtocolTest methods are safe to use concurrently. It is not safe to
1349// modify mutate any of the struct's properties though.
1350type OutputService8ProtocolTest struct {
1351	*client.Client
1352}
1353
1354// New creates a new instance of the OutputService8ProtocolTest client with a session.
1355// If additional configuration is needed for the client instance use the optional
1356// aws.Config parameter to add your extra config.
1357//
1358// Example:
1359//     mySession := session.Must(session.NewSession())
1360//
1361//     // Create a OutputService8ProtocolTest client from just a session.
1362//     svc := outputservice8protocoltest.New(mySession)
1363//
1364//     // Create a OutputService8ProtocolTest client with additional configuration
1365//     svc := outputservice8protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
1366func NewOutputService8ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService8ProtocolTest {
1367	c := p.ClientConfig("outputservice8protocoltest", cfgs...)
1368	return newOutputService8ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
1369}
1370
1371// newClient creates, initializes and returns a new service client instance.
1372func newOutputService8ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService8ProtocolTest {
1373	svc := &OutputService8ProtocolTest{
1374		Client: client.New(
1375			cfg,
1376			metadata.ClientInfo{
1377				ServiceName:   "OutputService8ProtocolTest",
1378				ServiceID:     "OutputService8ProtocolTest",
1379				SigningName:   signingName,
1380				SigningRegion: signingRegion,
1381				PartitionID:   partitionID,
1382				Endpoint:      endpoint,
1383				APIVersion:    "",
1384			},
1385			handlers,
1386		),
1387	}
1388
1389	// Handlers
1390	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
1391	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
1392	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
1393	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
1394	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
1395
1396	return svc
1397}
1398
1399// newRequest creates a new request for a OutputService8ProtocolTest operation and runs any
1400// custom request initialization.
1401func (c *OutputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
1402	req := c.NewRequest(op, params, data)
1403
1404	return req
1405}
1406
1407const opOutputService8TestCaseOperation1 = "OperationName"
1408
1409// OutputService8TestCaseOperation1Request generates a "aws/request.Request" representing the
1410// client's request for the OutputService8TestCaseOperation1 operation. The "output" return
1411// value will be populated with the request's response once the request completes
1412// successfully.
1413//
1414// Use "Send" method on the returned Request to send the API call to the service.
1415// the "output" return value is not valid until after Send returns without error.
1416//
1417// See OutputService8TestCaseOperation1 for more information on using the OutputService8TestCaseOperation1
1418// API call, and error handling.
1419//
1420// This method is useful when you want to inject custom logic or configuration
1421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1422//
1423//
1424//    // Example sending a request using the OutputService8TestCaseOperation1Request method.
1425//    req, resp := client.OutputService8TestCaseOperation1Request(params)
1426//
1427//    err := req.Send()
1428//    if err == nil { // resp is now filled
1429//        fmt.Println(resp)
1430//    }
1431func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1Request(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation1Output) {
1432	op := &request.Operation{
1433		Name:     opOutputService8TestCaseOperation1,
1434		HTTPPath: "/",
1435	}
1436
1437	if input == nil {
1438		input = &OutputService8TestShapeOutputService8TestCaseOperation1Input{}
1439	}
1440
1441	output = &OutputService8TestShapeOutputService8TestCaseOperation1Output{}
1442	req = c.newRequest(op, input, output)
1443	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1444	return
1445}
1446
1447// OutputService8TestCaseOperation1 API operation for .
1448//
1449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1450// with awserr.Error's Code and Message methods to get detailed information about
1451// the error.
1452//
1453// See the AWS API reference guide for 's
1454// API operation OutputService8TestCaseOperation1 for usage and error information.
1455func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
1456	req, out := c.OutputService8TestCaseOperation1Request(input)
1457	return out, req.Send()
1458}
1459
1460// OutputService8TestCaseOperation1WithContext is the same as OutputService8TestCaseOperation1 with the addition of
1461// the ability to pass a context and additional request options.
1462//
1463// See OutputService8TestCaseOperation1 for details on how to use this API operation.
1464//
1465// The context must be non-nil and will be used for request cancellation. If
1466// the context is nil a panic will occur. In the future the SDK may create
1467// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1468// for more information on using Contexts.
1469func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation1Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
1470	req, out := c.OutputService8TestCaseOperation1Request(input)
1471	req.SetContext(ctx)
1472	req.ApplyOptions(opts...)
1473	return out, req.Send()
1474}
1475
1476const opOutputService8TestCaseOperation2 = "OperationName"
1477
1478// OutputService8TestCaseOperation2Request generates a "aws/request.Request" representing the
1479// client's request for the OutputService8TestCaseOperation2 operation. The "output" return
1480// value will be populated with the request's response once the request completes
1481// successfully.
1482//
1483// Use "Send" method on the returned Request to send the API call to the service.
1484// the "output" return value is not valid until after Send returns without error.
1485//
1486// See OutputService8TestCaseOperation2 for more information on using the OutputService8TestCaseOperation2
1487// API call, and error handling.
1488//
1489// This method is useful when you want to inject custom logic or configuration
1490// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1491//
1492//
1493//    // Example sending a request using the OutputService8TestCaseOperation2Request method.
1494//    req, resp := client.OutputService8TestCaseOperation2Request(params)
1495//
1496//    err := req.Send()
1497//    if err == nil { // resp is now filled
1498//        fmt.Println(resp)
1499//    }
1500func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation2Request(input *OutputService8TestShapeOutputService8TestCaseOperation2Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation2Output) {
1501	op := &request.Operation{
1502		Name:     opOutputService8TestCaseOperation2,
1503		HTTPPath: "/",
1504	}
1505
1506	if input == nil {
1507		input = &OutputService8TestShapeOutputService8TestCaseOperation2Input{}
1508	}
1509
1510	output = &OutputService8TestShapeOutputService8TestCaseOperation2Output{}
1511	req = c.newRequest(op, input, output)
1512	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1513	return
1514}
1515
1516// OutputService8TestCaseOperation2 API operation for .
1517//
1518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1519// with awserr.Error's Code and Message methods to get detailed information about
1520// the error.
1521//
1522// See the AWS API reference guide for 's
1523// API operation OutputService8TestCaseOperation2 for usage and error information.
1524func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation2(input *OutputService8TestShapeOutputService8TestCaseOperation2Input) (*OutputService8TestShapeOutputService8TestCaseOperation2Output, error) {
1525	req, out := c.OutputService8TestCaseOperation2Request(input)
1526	return out, req.Send()
1527}
1528
1529// OutputService8TestCaseOperation2WithContext is the same as OutputService8TestCaseOperation2 with the addition of
1530// the ability to pass a context and additional request options.
1531//
1532// See OutputService8TestCaseOperation2 for details on how to use this API operation.
1533//
1534// The context must be non-nil and will be used for request cancellation. If
1535// the context is nil a panic will occur. In the future the SDK may create
1536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1537// for more information on using Contexts.
1538func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation2WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation2Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation2Output, error) {
1539	req, out := c.OutputService8TestCaseOperation2Request(input)
1540	req.SetContext(ctx)
1541	req.ApplyOptions(opts...)
1542	return out, req.Send()
1543}
1544
1545const opOutputService8TestCaseOperation3 = "OperationName"
1546
1547// OutputService8TestCaseOperation3Request generates a "aws/request.Request" representing the
1548// client's request for the OutputService8TestCaseOperation3 operation. The "output" return
1549// value will be populated with the request's response once the request completes
1550// successfully.
1551//
1552// Use "Send" method on the returned Request to send the API call to the service.
1553// the "output" return value is not valid until after Send returns without error.
1554//
1555// See OutputService8TestCaseOperation3 for more information on using the OutputService8TestCaseOperation3
1556// API call, and error handling.
1557//
1558// This method is useful when you want to inject custom logic or configuration
1559// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1560//
1561//
1562//    // Example sending a request using the OutputService8TestCaseOperation3Request method.
1563//    req, resp := client.OutputService8TestCaseOperation3Request(params)
1564//
1565//    err := req.Send()
1566//    if err == nil { // resp is now filled
1567//        fmt.Println(resp)
1568//    }
1569func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation3Request(input *OutputService8TestShapeOutputService8TestCaseOperation3Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation3Output) {
1570	op := &request.Operation{
1571		Name:     opOutputService8TestCaseOperation3,
1572		HTTPPath: "/",
1573	}
1574
1575	if input == nil {
1576		input = &OutputService8TestShapeOutputService8TestCaseOperation3Input{}
1577	}
1578
1579	output = &OutputService8TestShapeOutputService8TestCaseOperation3Output{}
1580	req = c.newRequest(op, input, output)
1581	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1582	return
1583}
1584
1585// OutputService8TestCaseOperation3 API operation for .
1586//
1587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1588// with awserr.Error's Code and Message methods to get detailed information about
1589// the error.
1590//
1591// See the AWS API reference guide for 's
1592// API operation OutputService8TestCaseOperation3 for usage and error information.
1593func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation3(input *OutputService8TestShapeOutputService8TestCaseOperation3Input) (*OutputService8TestShapeOutputService8TestCaseOperation3Output, error) {
1594	req, out := c.OutputService8TestCaseOperation3Request(input)
1595	return out, req.Send()
1596}
1597
1598// OutputService8TestCaseOperation3WithContext is the same as OutputService8TestCaseOperation3 with the addition of
1599// the ability to pass a context and additional request options.
1600//
1601// See OutputService8TestCaseOperation3 for details on how to use this API operation.
1602//
1603// The context must be non-nil and will be used for request cancellation. If
1604// the context is nil a panic will occur. In the future the SDK may create
1605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1606// for more information on using Contexts.
1607func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation3WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation3Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation3Output, error) {
1608	req, out := c.OutputService8TestCaseOperation3Request(input)
1609	req.SetContext(ctx)
1610	req.ApplyOptions(opts...)
1611	return out, req.Send()
1612}
1613
1614type OutputService8TestShapeOutputService8TestCaseOperation1Input struct {
1615	_ struct{} `type:"structure"`
1616}
1617
1618type OutputService8TestShapeOutputService8TestCaseOperation1Output struct {
1619	_ struct{} `type:"structure"`
1620}
1621
1622type OutputService8TestShapeOutputService8TestCaseOperation2Input struct {
1623	_ struct{} `type:"structure"`
1624}
1625
1626type OutputService8TestShapeOutputService8TestCaseOperation2Output struct {
1627	_ struct{} `type:"structure"`
1628}
1629
1630type OutputService8TestShapeOutputService8TestCaseOperation3Input struct {
1631	_ struct{} `type:"structure"`
1632}
1633
1634type OutputService8TestShapeOutputService8TestCaseOperation3Output struct {
1635	_ struct{} `type:"structure"`
1636}
1637
1638//
1639// Tests begin here
1640//
1641
1642func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) {
1643	svc := NewOutputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1644
1645	buf := bytes.NewReader([]byte("{\"Str\": \"myname\", \"Num\": 123, \"FalseBool\": false, \"TrueBool\": true, \"Float\": 1.2, \"Double\": 1.3, \"Long\": 200, \"Char\": \"a\"}"))
1646	req, out := svc.OutputService1TestCaseOperation1Request(nil)
1647	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1648
1649	// set headers
1650
1651	// unmarshal response
1652	req.Handlers.UnmarshalMeta.Run(req)
1653	req.Handlers.Unmarshal.Run(req)
1654	if req.Error != nil {
1655		t.Errorf("expect not error, got %v", req.Error)
1656	}
1657
1658	// assert response
1659	if out == nil {
1660		t.Errorf("expect not to be nil")
1661	}
1662	if e, a := "a", *out.Char; e != a {
1663		t.Errorf("expect %v, got %v", e, a)
1664	}
1665	if e, a := 1.3, *out.Double; e != a {
1666		t.Errorf("expect %v, got %v", e, a)
1667	}
1668	if e, a := false, *out.FalseBool; e != a {
1669		t.Errorf("expect %v, got %v", e, a)
1670	}
1671	if e, a := 1.2, *out.Float; e != a {
1672		t.Errorf("expect %v, got %v", e, a)
1673	}
1674	if e, a := int64(200), *out.Long; e != a {
1675		t.Errorf("expect %v, got %v", e, a)
1676	}
1677	if e, a := int64(123), *out.Num; e != a {
1678		t.Errorf("expect %v, got %v", e, a)
1679	}
1680	if e, a := "myname", *out.Str; e != a {
1681		t.Errorf("expect %v, got %v", e, a)
1682	}
1683	if e, a := true, *out.TrueBool; e != a {
1684		t.Errorf("expect %v, got %v", e, a)
1685	}
1686
1687}
1688
1689func TestOutputService2ProtocolTestBlobMembersCase1(t *testing.T) {
1690	svc := NewOutputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1691
1692	buf := bytes.NewReader([]byte("{\"BlobMember\": \"aGkh\", \"StructMember\": {\"foo\": \"dGhlcmUh\"}}"))
1693	req, out := svc.OutputService2TestCaseOperation1Request(nil)
1694	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1695
1696	// set headers
1697
1698	// unmarshal response
1699	req.Handlers.UnmarshalMeta.Run(req)
1700	req.Handlers.Unmarshal.Run(req)
1701	if req.Error != nil {
1702		t.Errorf("expect not error, got %v", req.Error)
1703	}
1704
1705	// assert response
1706	if out == nil {
1707		t.Errorf("expect not to be nil")
1708	}
1709	if e, a := "hi!", string(out.BlobMember); e != a {
1710		t.Errorf("expect %v, got %v", e, a)
1711	}
1712	if e, a := "there!", string(out.StructMember.Foo); e != a {
1713		t.Errorf("expect %v, got %v", e, a)
1714	}
1715
1716}
1717
1718func TestOutputService3ProtocolTestTimestampMembersCase1(t *testing.T) {
1719	svc := NewOutputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1720
1721	buf := bytes.NewReader([]byte("{\"TimeArg\": 1398796238, \"TimeCustom\": \"Tue, 29 Apr 2014 18:30:38 GMT\", \"TimeFormat\": \"2014-04-29T18:30:38Z\", \"StructMember\": {\"foo\": 1398796238, \"bar\": \"2014-04-29T18:30:38Z\"}}"))
1722	req, out := svc.OutputService3TestCaseOperation1Request(nil)
1723	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1724
1725	// set headers
1726
1727	// unmarshal response
1728	req.Handlers.UnmarshalMeta.Run(req)
1729	req.Handlers.Unmarshal.Run(req)
1730	if req.Error != nil {
1731		t.Errorf("expect not error, got %v", req.Error)
1732	}
1733
1734	// assert response
1735	if out == nil {
1736		t.Errorf("expect not to be nil")
1737	}
1738	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Bar.UTC().String(); e != a {
1739		t.Errorf("expect %v, got %v", e, a)
1740	}
1741	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.UTC().String(); e != a {
1742		t.Errorf("expect %v, got %v", e, a)
1743	}
1744	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeArg.UTC().String(); e != a {
1745		t.Errorf("expect %v, got %v", e, a)
1746	}
1747	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeCustom.UTC().String(); e != a {
1748		t.Errorf("expect %v, got %v", e, a)
1749	}
1750	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeFormat.UTC().String(); e != a {
1751		t.Errorf("expect %v, got %v", e, a)
1752	}
1753
1754}
1755
1756func TestOutputService4ProtocolTestListsCase1(t *testing.T) {
1757	svc := NewOutputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1758
1759	buf := bytes.NewReader([]byte("{\"ListMember\": [\"a\", \"b\"]}"))
1760	req, out := svc.OutputService4TestCaseOperation1Request(nil)
1761	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1762
1763	// set headers
1764
1765	// unmarshal response
1766	req.Handlers.UnmarshalMeta.Run(req)
1767	req.Handlers.Unmarshal.Run(req)
1768	if req.Error != nil {
1769		t.Errorf("expect not error, got %v", req.Error)
1770	}
1771
1772	// assert response
1773	if out == nil {
1774		t.Errorf("expect not to be nil")
1775	}
1776	if e, a := "a", *out.ListMember[0]; e != a {
1777		t.Errorf("expect %v, got %v", e, a)
1778	}
1779	if e, a := "b", *out.ListMember[1]; e != a {
1780		t.Errorf("expect %v, got %v", e, a)
1781	}
1782
1783}
1784
1785func TestOutputService4ProtocolTestListsCase2(t *testing.T) {
1786	svc := NewOutputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1787
1788	buf := bytes.NewReader([]byte("{\"ListMember\": [\"a\", null], \"ListMemberMap\": [{}, null, null, {}], \"ListMemberStruct\": [{}, null, null, {}]}"))
1789	req, out := svc.OutputService4TestCaseOperation2Request(nil)
1790	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1791
1792	// set headers
1793
1794	// unmarshal response
1795	req.Handlers.UnmarshalMeta.Run(req)
1796	req.Handlers.Unmarshal.Run(req)
1797	if req.Error != nil {
1798		t.Errorf("expect not error, got %v", req.Error)
1799	}
1800
1801	// assert response
1802	if out == nil {
1803		t.Errorf("expect not to be nil")
1804	}
1805	if e, a := "a", *out.ListMember[0]; e != a {
1806		t.Errorf("expect %v, got %v", e, a)
1807	}
1808	if e := out.ListMember[1]; e != nil {
1809		t.Errorf("expect nil, got %v", e)
1810	}
1811	if e := out.ListMemberMap[1]; e != nil {
1812		t.Errorf("expect nil, got %v", e)
1813	}
1814	if e := out.ListMemberMap[2]; e != nil {
1815		t.Errorf("expect nil, got %v", e)
1816	}
1817	if e := out.ListMemberStruct[1]; e != nil {
1818		t.Errorf("expect nil, got %v", e)
1819	}
1820	if e := out.ListMemberStruct[2]; e != nil {
1821		t.Errorf("expect nil, got %v", e)
1822	}
1823
1824}
1825
1826func TestOutputService5ProtocolTestMapsCase1(t *testing.T) {
1827	svc := NewOutputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1828
1829	buf := bytes.NewReader([]byte("{\"MapMember\": {\"a\": [1, 2], \"b\": [3, 4]}}"))
1830	req, out := svc.OutputService5TestCaseOperation1Request(nil)
1831	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1832
1833	// set headers
1834
1835	// unmarshal response
1836	req.Handlers.UnmarshalMeta.Run(req)
1837	req.Handlers.Unmarshal.Run(req)
1838	if req.Error != nil {
1839		t.Errorf("expect not error, got %v", req.Error)
1840	}
1841
1842	// assert response
1843	if out == nil {
1844		t.Errorf("expect not to be nil")
1845	}
1846	if e, a := int64(1), *out.MapMember["a"][0]; e != a {
1847		t.Errorf("expect %v, got %v", e, a)
1848	}
1849	if e, a := int64(2), *out.MapMember["a"][1]; e != a {
1850		t.Errorf("expect %v, got %v", e, a)
1851	}
1852	if e, a := int64(3), *out.MapMember["b"][0]; e != a {
1853		t.Errorf("expect %v, got %v", e, a)
1854	}
1855	if e, a := int64(4), *out.MapMember["b"][1]; e != a {
1856		t.Errorf("expect %v, got %v", e, a)
1857	}
1858
1859}
1860
1861func TestOutputService6ProtocolTestIgnoresExtraDataCase1(t *testing.T) {
1862	svc := NewOutputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1863
1864	buf := bytes.NewReader([]byte("{\"foo\": \"bar\"}"))
1865	req, out := svc.OutputService6TestCaseOperation1Request(nil)
1866	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1867
1868	// set headers
1869
1870	// unmarshal response
1871	req.Handlers.UnmarshalMeta.Run(req)
1872	req.Handlers.Unmarshal.Run(req)
1873	if req.Error != nil {
1874		t.Errorf("expect not error, got %v", req.Error)
1875	}
1876
1877	// assert response
1878	if out == nil {
1879		t.Errorf("expect not to be nil")
1880	}
1881
1882}
1883
1884func TestOutputService7ProtocolTestEnumOutputCase1(t *testing.T) {
1885	svc := NewOutputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1886
1887	buf := bytes.NewReader([]byte("{\"FooEnum\": \"foo\", \"ListEnums\": [\"foo\", \"bar\"]}"))
1888	req, out := svc.OutputService7TestCaseOperation1Request(nil)
1889	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1890
1891	// set headers
1892
1893	// unmarshal response
1894	req.Handlers.UnmarshalMeta.Run(req)
1895	req.Handlers.Unmarshal.Run(req)
1896	if req.Error != nil {
1897		t.Errorf("expect not error, got %v", req.Error)
1898	}
1899
1900	// assert response
1901	if out == nil {
1902		t.Errorf("expect not to be nil")
1903	}
1904	if e, a := "foo", *out.FooEnum; e != a {
1905		t.Errorf("expect %v, got %v", e, a)
1906	}
1907	if e, a := "foo", *out.ListEnums[0]; e != a {
1908		t.Errorf("expect %v, got %v", e, a)
1909	}
1910	if e, a := "bar", *out.ListEnums[1]; e != a {
1911		t.Errorf("expect %v, got %v", e, a)
1912	}
1913
1914}
1915
1916func TestOutputService8ProtocolTestunmodeledNonjsonResponsePayloadCase1(t *testing.T) {
1917	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1918
1919	buf := bytes.NewReader([]byte("success"))
1920	req, out := svc.OutputService8TestCaseOperation1Request(nil)
1921	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1922
1923	// set headers
1924
1925	// unmarshal response
1926	req.Handlers.UnmarshalMeta.Run(req)
1927	req.Handlers.Unmarshal.Run(req)
1928	if req.Error != nil {
1929		t.Errorf("expect not error, got %v", req.Error)
1930	}
1931
1932	// assert response
1933	if out == nil {
1934		t.Errorf("expect not to be nil")
1935	}
1936
1937}
1938
1939func TestOutputService8ProtocolTestunmodeledNonjsonResponsePayloadCase2(t *testing.T) {
1940	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1941
1942	buf := bytes.NewReader([]byte("\"success\""))
1943	req, out := svc.OutputService8TestCaseOperation2Request(nil)
1944	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1945
1946	// set headers
1947
1948	// unmarshal response
1949	req.Handlers.UnmarshalMeta.Run(req)
1950	req.Handlers.Unmarshal.Run(req)
1951	if req.Error != nil {
1952		t.Errorf("expect not error, got %v", req.Error)
1953	}
1954
1955	// assert response
1956	if out == nil {
1957		t.Errorf("expect not to be nil")
1958	}
1959
1960}
1961
1962func TestOutputService8ProtocolTestunmodeledNonjsonResponsePayloadCase3(t *testing.T) {
1963	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1964
1965	buf := bytes.NewReader([]byte("{}"))
1966	req, out := svc.OutputService8TestCaseOperation3Request(nil)
1967	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1968
1969	// set headers
1970
1971	// unmarshal response
1972	req.Handlers.UnmarshalMeta.Run(req)
1973	req.Handlers.Unmarshal.Run(req)
1974	if req.Error != nil {
1975		t.Errorf("expect not error, got %v", req.Error)
1976	}
1977
1978	// assert response
1979	if out == nil {
1980		t.Errorf("expect not to be nil")
1981	}
1982
1983}
1984