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// OutputService8ProtocolTest provides the API operation methods for making requests to
1337// . See this package's package overview docs
1338// for details on the service.
1339//
1340// OutputService8ProtocolTest methods are safe to use concurrently. It is not safe to
1341// modify mutate any of the struct's properties though.
1342type OutputService8ProtocolTest struct {
1343	*client.Client
1344}
1345
1346// New creates a new instance of the OutputService8ProtocolTest client with a session.
1347// If additional configuration is needed for the client instance use the optional
1348// aws.Config parameter to add your extra config.
1349//
1350// Example:
1351//     mySession := session.Must(session.NewSession())
1352//
1353//     // Create a OutputService8ProtocolTest client from just a session.
1354//     svc := outputservice8protocoltest.New(mySession)
1355//
1356//     // Create a OutputService8ProtocolTest client with additional configuration
1357//     svc := outputservice8protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
1358func NewOutputService8ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService8ProtocolTest {
1359	c := p.ClientConfig("outputservice8protocoltest", cfgs...)
1360	return newOutputService8ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
1361}
1362
1363// newClient creates, initializes and returns a new service client instance.
1364func newOutputService8ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService8ProtocolTest {
1365	svc := &OutputService8ProtocolTest{
1366		Client: client.New(
1367			cfg,
1368			metadata.ClientInfo{
1369				ServiceName:   "OutputService8ProtocolTest",
1370				ServiceID:     "OutputService8ProtocolTest",
1371				SigningName:   signingName,
1372				SigningRegion: signingRegion,
1373				PartitionID:   partitionID,
1374				Endpoint:      endpoint,
1375				APIVersion:    "",
1376			},
1377			handlers,
1378		),
1379	}
1380
1381	// Handlers
1382	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
1383	svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
1384	svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
1385	svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
1386	svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
1387
1388	return svc
1389}
1390
1391// newRequest creates a new request for a OutputService8ProtocolTest operation and runs any
1392// custom request initialization.
1393func (c *OutputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
1394	req := c.NewRequest(op, params, data)
1395
1396	return req
1397}
1398
1399const opOutputService8TestCaseOperation1 = "OperationName"
1400
1401// OutputService8TestCaseOperation1Request generates a "aws/request.Request" representing the
1402// client's request for the OutputService8TestCaseOperation1 operation. The "output" return
1403// value will be populated with the request's response once the request completes
1404// successfully.
1405//
1406// Use "Send" method on the returned Request to send the API call to the service.
1407// the "output" return value is not valid until after Send returns without error.
1408//
1409// See OutputService8TestCaseOperation1 for more information on using the OutputService8TestCaseOperation1
1410// API call, and error handling.
1411//
1412// This method is useful when you want to inject custom logic or configuration
1413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1414//
1415//
1416//    // Example sending a request using the OutputService8TestCaseOperation1Request method.
1417//    req, resp := client.OutputService8TestCaseOperation1Request(params)
1418//
1419//    err := req.Send()
1420//    if err == nil { // resp is now filled
1421//        fmt.Println(resp)
1422//    }
1423func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1Request(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation1Output) {
1424	op := &request.Operation{
1425		Name:     opOutputService8TestCaseOperation1,
1426		HTTPPath: "/",
1427	}
1428
1429	if input == nil {
1430		input = &OutputService8TestShapeOutputService8TestCaseOperation1Input{}
1431	}
1432
1433	output = &OutputService8TestShapeOutputService8TestCaseOperation1Output{}
1434	req = c.newRequest(op, input, output)
1435	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1436	return
1437}
1438
1439// OutputService8TestCaseOperation1 API operation for .
1440//
1441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1442// with awserr.Error's Code and Message methods to get detailed information about
1443// the error.
1444//
1445// See the AWS API reference guide for 's
1446// API operation OutputService8TestCaseOperation1 for usage and error information.
1447func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
1448	req, out := c.OutputService8TestCaseOperation1Request(input)
1449	return out, req.Send()
1450}
1451
1452// OutputService8TestCaseOperation1WithContext is the same as OutputService8TestCaseOperation1 with the addition of
1453// the ability to pass a context and additional request options.
1454//
1455// See OutputService8TestCaseOperation1 for details on how to use this API operation.
1456//
1457// The context must be non-nil and will be used for request cancellation. If
1458// the context is nil a panic will occur. In the future the SDK may create
1459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1460// for more information on using Contexts.
1461func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation1Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
1462	req, out := c.OutputService8TestCaseOperation1Request(input)
1463	req.SetContext(ctx)
1464	req.ApplyOptions(opts...)
1465	return out, req.Send()
1466}
1467
1468const opOutputService8TestCaseOperation2 = "OperationName"
1469
1470// OutputService8TestCaseOperation2Request generates a "aws/request.Request" representing the
1471// client's request for the OutputService8TestCaseOperation2 operation. The "output" return
1472// value will be populated with the request's response once the request completes
1473// successfully.
1474//
1475// Use "Send" method on the returned Request to send the API call to the service.
1476// the "output" return value is not valid until after Send returns without error.
1477//
1478// See OutputService8TestCaseOperation2 for more information on using the OutputService8TestCaseOperation2
1479// API call, and error handling.
1480//
1481// This method is useful when you want to inject custom logic or configuration
1482// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1483//
1484//
1485//    // Example sending a request using the OutputService8TestCaseOperation2Request method.
1486//    req, resp := client.OutputService8TestCaseOperation2Request(params)
1487//
1488//    err := req.Send()
1489//    if err == nil { // resp is now filled
1490//        fmt.Println(resp)
1491//    }
1492func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation2Request(input *OutputService8TestShapeOutputService8TestCaseOperation2Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation2Output) {
1493	op := &request.Operation{
1494		Name:     opOutputService8TestCaseOperation2,
1495		HTTPPath: "/",
1496	}
1497
1498	if input == nil {
1499		input = &OutputService8TestShapeOutputService8TestCaseOperation2Input{}
1500	}
1501
1502	output = &OutputService8TestShapeOutputService8TestCaseOperation2Output{}
1503	req = c.newRequest(op, input, output)
1504	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1505	return
1506}
1507
1508// OutputService8TestCaseOperation2 API operation for .
1509//
1510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1511// with awserr.Error's Code and Message methods to get detailed information about
1512// the error.
1513//
1514// See the AWS API reference guide for 's
1515// API operation OutputService8TestCaseOperation2 for usage and error information.
1516func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation2(input *OutputService8TestShapeOutputService8TestCaseOperation2Input) (*OutputService8TestShapeOutputService8TestCaseOperation2Output, error) {
1517	req, out := c.OutputService8TestCaseOperation2Request(input)
1518	return out, req.Send()
1519}
1520
1521// OutputService8TestCaseOperation2WithContext is the same as OutputService8TestCaseOperation2 with the addition of
1522// the ability to pass a context and additional request options.
1523//
1524// See OutputService8TestCaseOperation2 for details on how to use this API operation.
1525//
1526// The context must be non-nil and will be used for request cancellation. If
1527// the context is nil a panic will occur. In the future the SDK may create
1528// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1529// for more information on using Contexts.
1530func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation2WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation2Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation2Output, error) {
1531	req, out := c.OutputService8TestCaseOperation2Request(input)
1532	req.SetContext(ctx)
1533	req.ApplyOptions(opts...)
1534	return out, req.Send()
1535}
1536
1537const opOutputService8TestCaseOperation3 = "OperationName"
1538
1539// OutputService8TestCaseOperation3Request generates a "aws/request.Request" representing the
1540// client's request for the OutputService8TestCaseOperation3 operation. The "output" return
1541// value will be populated with the request's response once the request completes
1542// successfully.
1543//
1544// Use "Send" method on the returned Request to send the API call to the service.
1545// the "output" return value is not valid until after Send returns without error.
1546//
1547// See OutputService8TestCaseOperation3 for more information on using the OutputService8TestCaseOperation3
1548// API call, and error handling.
1549//
1550// This method is useful when you want to inject custom logic or configuration
1551// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1552//
1553//
1554//    // Example sending a request using the OutputService8TestCaseOperation3Request method.
1555//    req, resp := client.OutputService8TestCaseOperation3Request(params)
1556//
1557//    err := req.Send()
1558//    if err == nil { // resp is now filled
1559//        fmt.Println(resp)
1560//    }
1561func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation3Request(input *OutputService8TestShapeOutputService8TestCaseOperation3Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation3Output) {
1562	op := &request.Operation{
1563		Name:     opOutputService8TestCaseOperation3,
1564		HTTPPath: "/",
1565	}
1566
1567	if input == nil {
1568		input = &OutputService8TestShapeOutputService8TestCaseOperation3Input{}
1569	}
1570
1571	output = &OutputService8TestShapeOutputService8TestCaseOperation3Output{}
1572	req = c.newRequest(op, input, output)
1573	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1574	return
1575}
1576
1577// OutputService8TestCaseOperation3 API operation for .
1578//
1579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1580// with awserr.Error's Code and Message methods to get detailed information about
1581// the error.
1582//
1583// See the AWS API reference guide for 's
1584// API operation OutputService8TestCaseOperation3 for usage and error information.
1585func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation3(input *OutputService8TestShapeOutputService8TestCaseOperation3Input) (*OutputService8TestShapeOutputService8TestCaseOperation3Output, error) {
1586	req, out := c.OutputService8TestCaseOperation3Request(input)
1587	return out, req.Send()
1588}
1589
1590// OutputService8TestCaseOperation3WithContext is the same as OutputService8TestCaseOperation3 with the addition of
1591// the ability to pass a context and additional request options.
1592//
1593// See OutputService8TestCaseOperation3 for details on how to use this API operation.
1594//
1595// The context must be non-nil and will be used for request cancellation. If
1596// the context is nil a panic will occur. In the future the SDK may create
1597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1598// for more information on using Contexts.
1599func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation3WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation3Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation3Output, error) {
1600	req, out := c.OutputService8TestCaseOperation3Request(input)
1601	req.SetContext(ctx)
1602	req.ApplyOptions(opts...)
1603	return out, req.Send()
1604}
1605
1606type OutputService8TestShapeOutputService8TestCaseOperation1Input struct {
1607	_ struct{} `type:"structure"`
1608}
1609
1610type OutputService8TestShapeOutputService8TestCaseOperation1Output struct {
1611	_ struct{} `type:"structure"`
1612}
1613
1614type OutputService8TestShapeOutputService8TestCaseOperation2Input struct {
1615	_ struct{} `type:"structure"`
1616}
1617
1618type OutputService8TestShapeOutputService8TestCaseOperation2Output struct {
1619	_ struct{} `type:"structure"`
1620}
1621
1622type OutputService8TestShapeOutputService8TestCaseOperation3Input struct {
1623	_ struct{} `type:"structure"`
1624}
1625
1626type OutputService8TestShapeOutputService8TestCaseOperation3Output struct {
1627	_ struct{} `type:"structure"`
1628}
1629
1630//
1631// Tests begin here
1632//
1633
1634func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) {
1635	svc := NewOutputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1636
1637	buf := bytes.NewReader([]byte("{\"Str\": \"myname\", \"Num\": 123, \"FalseBool\": false, \"TrueBool\": true, \"Float\": 1.2, \"Double\": 1.3, \"Long\": 200, \"Char\": \"a\"}"))
1638	req, out := svc.OutputService1TestCaseOperation1Request(nil)
1639	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1640
1641	// set headers
1642
1643	// unmarshal response
1644	req.Handlers.UnmarshalMeta.Run(req)
1645	req.Handlers.Unmarshal.Run(req)
1646	if req.Error != nil {
1647		t.Errorf("expect not error, got %v", req.Error)
1648	}
1649
1650	// assert response
1651	if out == nil {
1652		t.Errorf("expect not to be nil")
1653	}
1654	if e, a := "a", *out.Char; e != a {
1655		t.Errorf("expect %v, got %v", e, a)
1656	}
1657	if e, a := 1.3, *out.Double; e != a {
1658		t.Errorf("expect %v, got %v", e, a)
1659	}
1660	if e, a := false, *out.FalseBool; e != a {
1661		t.Errorf("expect %v, got %v", e, a)
1662	}
1663	if e, a := 1.2, *out.Float; e != a {
1664		t.Errorf("expect %v, got %v", e, a)
1665	}
1666	if e, a := int64(200), *out.Long; e != a {
1667		t.Errorf("expect %v, got %v", e, a)
1668	}
1669	if e, a := int64(123), *out.Num; e != a {
1670		t.Errorf("expect %v, got %v", e, a)
1671	}
1672	if e, a := "myname", *out.Str; e != a {
1673		t.Errorf("expect %v, got %v", e, a)
1674	}
1675	if e, a := true, *out.TrueBool; e != a {
1676		t.Errorf("expect %v, got %v", e, a)
1677	}
1678
1679}
1680
1681func TestOutputService2ProtocolTestBlobMembersCase1(t *testing.T) {
1682	svc := NewOutputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1683
1684	buf := bytes.NewReader([]byte("{\"BlobMember\": \"aGkh\", \"StructMember\": {\"foo\": \"dGhlcmUh\"}}"))
1685	req, out := svc.OutputService2TestCaseOperation1Request(nil)
1686	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1687
1688	// set headers
1689
1690	// unmarshal response
1691	req.Handlers.UnmarshalMeta.Run(req)
1692	req.Handlers.Unmarshal.Run(req)
1693	if req.Error != nil {
1694		t.Errorf("expect not error, got %v", req.Error)
1695	}
1696
1697	// assert response
1698	if out == nil {
1699		t.Errorf("expect not to be nil")
1700	}
1701	if e, a := "hi!", string(out.BlobMember); e != a {
1702		t.Errorf("expect %v, got %v", e, a)
1703	}
1704	if e, a := "there!", string(out.StructMember.Foo); e != a {
1705		t.Errorf("expect %v, got %v", e, a)
1706	}
1707
1708}
1709
1710func TestOutputService3ProtocolTestTimestampMembersCase1(t *testing.T) {
1711	svc := NewOutputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1712
1713	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\"}}"))
1714	req, out := svc.OutputService3TestCaseOperation1Request(nil)
1715	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1716
1717	// set headers
1718
1719	// unmarshal response
1720	req.Handlers.UnmarshalMeta.Run(req)
1721	req.Handlers.Unmarshal.Run(req)
1722	if req.Error != nil {
1723		t.Errorf("expect not error, got %v", req.Error)
1724	}
1725
1726	// assert response
1727	if out == nil {
1728		t.Errorf("expect not to be nil")
1729	}
1730	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Bar.UTC().String(); e != a {
1731		t.Errorf("expect %v, got %v", e, a)
1732	}
1733	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.UTC().String(); e != a {
1734		t.Errorf("expect %v, got %v", e, a)
1735	}
1736	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeArg.UTC().String(); e != a {
1737		t.Errorf("expect %v, got %v", e, a)
1738	}
1739	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeCustom.UTC().String(); e != a {
1740		t.Errorf("expect %v, got %v", e, a)
1741	}
1742	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeFormat.UTC().String(); e != a {
1743		t.Errorf("expect %v, got %v", e, a)
1744	}
1745
1746}
1747
1748func TestOutputService4ProtocolTestListsCase1(t *testing.T) {
1749	svc := NewOutputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1750
1751	buf := bytes.NewReader([]byte("{\"ListMember\": [\"a\", \"b\"]}"))
1752	req, out := svc.OutputService4TestCaseOperation1Request(nil)
1753	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1754
1755	// set headers
1756
1757	// unmarshal response
1758	req.Handlers.UnmarshalMeta.Run(req)
1759	req.Handlers.Unmarshal.Run(req)
1760	if req.Error != nil {
1761		t.Errorf("expect not error, got %v", req.Error)
1762	}
1763
1764	// assert response
1765	if out == nil {
1766		t.Errorf("expect not to be nil")
1767	}
1768	if e, a := "a", *out.ListMember[0]; e != a {
1769		t.Errorf("expect %v, got %v", e, a)
1770	}
1771	if e, a := "b", *out.ListMember[1]; e != a {
1772		t.Errorf("expect %v, got %v", e, a)
1773	}
1774
1775}
1776
1777func TestOutputService4ProtocolTestListsCase2(t *testing.T) {
1778	svc := NewOutputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1779
1780	buf := bytes.NewReader([]byte("{\"ListMember\": [\"a\", null], \"ListMemberMap\": [{}, null, null, {}], \"ListMemberStruct\": [{}, null, null, {}]}"))
1781	req, out := svc.OutputService4TestCaseOperation2Request(nil)
1782	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1783
1784	// set headers
1785
1786	// unmarshal response
1787	req.Handlers.UnmarshalMeta.Run(req)
1788	req.Handlers.Unmarshal.Run(req)
1789	if req.Error != nil {
1790		t.Errorf("expect not error, got %v", req.Error)
1791	}
1792
1793	// assert response
1794	if out == nil {
1795		t.Errorf("expect not to be nil")
1796	}
1797	if e, a := "a", *out.ListMember[0]; e != a {
1798		t.Errorf("expect %v, got %v", e, a)
1799	}
1800	if e := out.ListMember[1]; e != nil {
1801		t.Errorf("expect nil, got %v", e)
1802	}
1803	if e := out.ListMemberMap[1]; e != nil {
1804		t.Errorf("expect nil, got %v", e)
1805	}
1806	if e := out.ListMemberMap[2]; e != nil {
1807		t.Errorf("expect nil, got %v", e)
1808	}
1809	if e := out.ListMemberStruct[1]; e != nil {
1810		t.Errorf("expect nil, got %v", e)
1811	}
1812	if e := out.ListMemberStruct[2]; e != nil {
1813		t.Errorf("expect nil, got %v", e)
1814	}
1815
1816}
1817
1818func TestOutputService5ProtocolTestMapsCase1(t *testing.T) {
1819	svc := NewOutputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1820
1821	buf := bytes.NewReader([]byte("{\"MapMember\": {\"a\": [1, 2], \"b\": [3, 4]}}"))
1822	req, out := svc.OutputService5TestCaseOperation1Request(nil)
1823	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1824
1825	// set headers
1826
1827	// unmarshal response
1828	req.Handlers.UnmarshalMeta.Run(req)
1829	req.Handlers.Unmarshal.Run(req)
1830	if req.Error != nil {
1831		t.Errorf("expect not error, got %v", req.Error)
1832	}
1833
1834	// assert response
1835	if out == nil {
1836		t.Errorf("expect not to be nil")
1837	}
1838	if e, a := int64(1), *out.MapMember["a"][0]; e != a {
1839		t.Errorf("expect %v, got %v", e, a)
1840	}
1841	if e, a := int64(2), *out.MapMember["a"][1]; e != a {
1842		t.Errorf("expect %v, got %v", e, a)
1843	}
1844	if e, a := int64(3), *out.MapMember["b"][0]; e != a {
1845		t.Errorf("expect %v, got %v", e, a)
1846	}
1847	if e, a := int64(4), *out.MapMember["b"][1]; e != a {
1848		t.Errorf("expect %v, got %v", e, a)
1849	}
1850
1851}
1852
1853func TestOutputService6ProtocolTestIgnoresExtraDataCase1(t *testing.T) {
1854	svc := NewOutputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1855
1856	buf := bytes.NewReader([]byte("{\"foo\": \"bar\"}"))
1857	req, out := svc.OutputService6TestCaseOperation1Request(nil)
1858	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1859
1860	// set headers
1861
1862	// unmarshal response
1863	req.Handlers.UnmarshalMeta.Run(req)
1864	req.Handlers.Unmarshal.Run(req)
1865	if req.Error != nil {
1866		t.Errorf("expect not error, got %v", req.Error)
1867	}
1868
1869	// assert response
1870	if out == nil {
1871		t.Errorf("expect not to be nil")
1872	}
1873
1874}
1875
1876func TestOutputService7ProtocolTestEnumOutputCase1(t *testing.T) {
1877	svc := NewOutputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1878
1879	buf := bytes.NewReader([]byte("{\"FooEnum\": \"foo\", \"ListEnums\": [\"foo\", \"bar\"]}"))
1880	req, out := svc.OutputService7TestCaseOperation1Request(nil)
1881	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1882
1883	// set headers
1884
1885	// unmarshal response
1886	req.Handlers.UnmarshalMeta.Run(req)
1887	req.Handlers.Unmarshal.Run(req)
1888	if req.Error != nil {
1889		t.Errorf("expect not error, got %v", req.Error)
1890	}
1891
1892	// assert response
1893	if out == nil {
1894		t.Errorf("expect not to be nil")
1895	}
1896	if e, a := "foo", *out.FooEnum; e != a {
1897		t.Errorf("expect %v, got %v", e, a)
1898	}
1899	if e, a := "foo", *out.ListEnums[0]; e != a {
1900		t.Errorf("expect %v, got %v", e, a)
1901	}
1902	if e, a := "bar", *out.ListEnums[1]; e != a {
1903		t.Errorf("expect %v, got %v", e, a)
1904	}
1905
1906}
1907
1908func TestOutputService8ProtocolTestunmodeledNonjsonResponsePayloadCase1(t *testing.T) {
1909	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1910
1911	buf := bytes.NewReader([]byte("success"))
1912	req, out := svc.OutputService8TestCaseOperation1Request(nil)
1913	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1914
1915	// set headers
1916
1917	// unmarshal response
1918	req.Handlers.UnmarshalMeta.Run(req)
1919	req.Handlers.Unmarshal.Run(req)
1920	if req.Error != nil {
1921		t.Errorf("expect not error, got %v", req.Error)
1922	}
1923
1924	// assert response
1925	if out == nil {
1926		t.Errorf("expect not to be nil")
1927	}
1928
1929}
1930
1931func TestOutputService8ProtocolTestunmodeledNonjsonResponsePayloadCase2(t *testing.T) {
1932	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1933
1934	buf := bytes.NewReader([]byte("\"success\""))
1935	req, out := svc.OutputService8TestCaseOperation2Request(nil)
1936	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1937
1938	// set headers
1939
1940	// unmarshal response
1941	req.Handlers.UnmarshalMeta.Run(req)
1942	req.Handlers.Unmarshal.Run(req)
1943	if req.Error != nil {
1944		t.Errorf("expect not error, got %v", req.Error)
1945	}
1946
1947	// assert response
1948	if out == nil {
1949		t.Errorf("expect not to be nil")
1950	}
1951
1952}
1953
1954func TestOutputService8ProtocolTestunmodeledNonjsonResponsePayloadCase3(t *testing.T) {
1955	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
1956
1957	buf := bytes.NewReader([]byte("{}"))
1958	req, out := svc.OutputService8TestCaseOperation3Request(nil)
1959	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
1960
1961	// set headers
1962
1963	// unmarshal response
1964	req.Handlers.UnmarshalMeta.Run(req)
1965	req.Handlers.Unmarshal.Run(req)
1966	if req.Error != nil {
1967		t.Errorf("expect not error, got %v", req.Error)
1968	}
1969
1970	// assert response
1971	if out == nil {
1972		t.Errorf("expect not to be nil")
1973	}
1974
1975}
1976