github.com/aavshr/aws-sdk-go@v1.41.3/private/protocol/restjson/unmarshal_test.go (about)

     1  // Code generated by models/protocol_tests/generate.go. DO NOT EDIT.
     2  
     3  package restjson_test
     4  
     5  import (
     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/aavshr/aws-sdk-go/aws"
    19  	"github.com/aavshr/aws-sdk-go/aws/client"
    20  	"github.com/aavshr/aws-sdk-go/aws/client/metadata"
    21  	"github.com/aavshr/aws-sdk-go/aws/request"
    22  	"github.com/aavshr/aws-sdk-go/aws/signer/v4"
    23  	"github.com/aavshr/aws-sdk-go/awstesting"
    24  	"github.com/aavshr/aws-sdk-go/awstesting/unit"
    25  	"github.com/aavshr/aws-sdk-go/private/protocol"
    26  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    27  	"github.com/aavshr/aws-sdk-go/private/protocol/xml/xmlutil"
    28  	"github.com/aavshr/aws-sdk-go/private/util"
    29  )
    30  
    31  var _ bytes.Buffer // always import bytes
    32  var _ http.Request
    33  var _ json.Marshaler
    34  var _ time.Time
    35  var _ xmlutil.XMLNode
    36  var _ xml.Attr
    37  var _ = ioutil.Discard
    38  var _ = util.Trim("")
    39  var _ = url.Values{}
    40  var _ = io.EOF
    41  var _ = aws.String
    42  var _ = fmt.Println
    43  var _ = reflect.Value{}
    44  
    45  func 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.
    55  type 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"))
    71  func 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.
    77  func 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(restjson.BuildHandler)
    97  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
    98  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
    99  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   100  
   101  	return svc
   102  }
   103  
   104  // newRequest creates a new request for a OutputService1ProtocolTest operation and runs any
   105  // custom request initialization.
   106  func (c *OutputService1ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   107  	req := c.NewRequest(op, params, data)
   108  
   109  	return req
   110  }
   111  
   112  const 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  //    }
   136  func (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.
   159  func (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.
   173  func (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  
   180  type OutputService1TestShapeOutputService1TestCaseOperation1Input struct {
   181  	_ struct{} `type:"structure" nopayload:"true"`
   182  }
   183  
   184  type OutputService1TestShapeOutputService1TestCaseOperation1Output struct {
   185  	_ struct{} `type:"structure"`
   186  
   187  	// Blob is automatically base64 encoded/decoded by the SDK.
   188  	Blob []byte `type:"blob"`
   189  
   190  	// BlobHeader is automatically base64 encoded/decoded by the SDK.
   191  	BlobHeader []byte `location:"header" type:"blob"`
   192  
   193  	Char *string `type:"character"`
   194  
   195  	Double *float64 `type:"double"`
   196  
   197  	FalseBool *bool `type:"boolean"`
   198  
   199  	Float *float64 `type:"float"`
   200  
   201  	ImaHeader *string `location:"header" type:"string"`
   202  
   203  	ImaHeaderLocation *string `location:"header" locationName:"X-Foo" type:"string"`
   204  
   205  	Long *int64 `type:"long"`
   206  
   207  	Num *int64 `type:"integer"`
   208  
   209  	Status *int64 `location:"statusCode" type:"integer"`
   210  
   211  	Str *string `type:"string"`
   212  
   213  	Timestamp *time.Time `type:"timestamp"`
   214  
   215  	TrueBool *bool `type:"boolean"`
   216  }
   217  
   218  // SetBlob sets the Blob field's value.
   219  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetBlob(v []byte) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   220  	s.Blob = v
   221  	return s
   222  }
   223  
   224  // SetBlobHeader sets the BlobHeader field's value.
   225  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetBlobHeader(v []byte) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   226  	s.BlobHeader = v
   227  	return s
   228  }
   229  
   230  // SetChar sets the Char field's value.
   231  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetChar(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   232  	s.Char = &v
   233  	return s
   234  }
   235  
   236  // SetDouble sets the Double field's value.
   237  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetDouble(v float64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   238  	s.Double = &v
   239  	return s
   240  }
   241  
   242  // SetFalseBool sets the FalseBool field's value.
   243  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetFalseBool(v bool) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   244  	s.FalseBool = &v
   245  	return s
   246  }
   247  
   248  // SetFloat sets the Float field's value.
   249  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetFloat(v float64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   250  	s.Float = &v
   251  	return s
   252  }
   253  
   254  // SetImaHeader sets the ImaHeader field's value.
   255  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetImaHeader(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   256  	s.ImaHeader = &v
   257  	return s
   258  }
   259  
   260  // SetImaHeaderLocation sets the ImaHeaderLocation field's value.
   261  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetImaHeaderLocation(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   262  	s.ImaHeaderLocation = &v
   263  	return s
   264  }
   265  
   266  // SetLong sets the Long field's value.
   267  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetLong(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   268  	s.Long = &v
   269  	return s
   270  }
   271  
   272  // SetNum sets the Num field's value.
   273  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetNum(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   274  	s.Num = &v
   275  	return s
   276  }
   277  
   278  // SetStatus sets the Status field's value.
   279  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetStatus(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   280  	s.Status = &v
   281  	return s
   282  }
   283  
   284  // SetStr sets the Str field's value.
   285  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetStr(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   286  	s.Str = &v
   287  	return s
   288  }
   289  
   290  // SetTimestamp sets the Timestamp field's value.
   291  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetTimestamp(v time.Time) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   292  	s.Timestamp = &v
   293  	return s
   294  }
   295  
   296  // SetTrueBool sets the TrueBool field's value.
   297  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetTrueBool(v bool) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   298  	s.TrueBool = &v
   299  	return s
   300  }
   301  
   302  // OutputService2ProtocolTest provides the API operation methods for making requests to
   303  // . See this package's package overview docs
   304  // for details on the service.
   305  //
   306  // OutputService2ProtocolTest methods are safe to use concurrently. It is not safe to
   307  // modify mutate any of the struct's properties though.
   308  type OutputService2ProtocolTest struct {
   309  	*client.Client
   310  }
   311  
   312  // New creates a new instance of the OutputService2ProtocolTest client with a session.
   313  // If additional configuration is needed for the client instance use the optional
   314  // aws.Config parameter to add your extra config.
   315  //
   316  // Example:
   317  //     mySession := session.Must(session.NewSession())
   318  //
   319  //     // Create a OutputService2ProtocolTest client from just a session.
   320  //     svc := outputservice2protocoltest.New(mySession)
   321  //
   322  //     // Create a OutputService2ProtocolTest client with additional configuration
   323  //     svc := outputservice2protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   324  func NewOutputService2ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService2ProtocolTest {
   325  	c := p.ClientConfig("outputservice2protocoltest", cfgs...)
   326  	return newOutputService2ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   327  }
   328  
   329  // newClient creates, initializes and returns a new service client instance.
   330  func newOutputService2ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService2ProtocolTest {
   331  	svc := &OutputService2ProtocolTest{
   332  		Client: client.New(
   333  			cfg,
   334  			metadata.ClientInfo{
   335  				ServiceName:   "OutputService2ProtocolTest",
   336  				ServiceID:     "OutputService2ProtocolTest",
   337  				SigningName:   signingName,
   338  				SigningRegion: signingRegion,
   339  				PartitionID:   partitionID,
   340  				Endpoint:      endpoint,
   341  				APIVersion:    "",
   342  			},
   343  			handlers,
   344  		),
   345  	}
   346  
   347  	// Handlers
   348  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   349  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   350  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   351  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   352  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   353  
   354  	return svc
   355  }
   356  
   357  // newRequest creates a new request for a OutputService2ProtocolTest operation and runs any
   358  // custom request initialization.
   359  func (c *OutputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   360  	req := c.NewRequest(op, params, data)
   361  
   362  	return req
   363  }
   364  
   365  const opOutputService2TestCaseOperation1 = "OperationName"
   366  
   367  // OutputService2TestCaseOperation1Request generates a "aws/request.Request" representing the
   368  // client's request for the OutputService2TestCaseOperation1 operation. The "output" return
   369  // value will be populated with the request's response once the request completes
   370  // successfully.
   371  //
   372  // Use "Send" method on the returned Request to send the API call to the service.
   373  // the "output" return value is not valid until after Send returns without error.
   374  //
   375  // See OutputService2TestCaseOperation1 for more information on using the OutputService2TestCaseOperation1
   376  // API call, and error handling.
   377  //
   378  // This method is useful when you want to inject custom logic or configuration
   379  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   380  //
   381  //
   382  //    // Example sending a request using the OutputService2TestCaseOperation1Request method.
   383  //    req, resp := client.OutputService2TestCaseOperation1Request(params)
   384  //
   385  //    err := req.Send()
   386  //    if err == nil { // resp is now filled
   387  //        fmt.Println(resp)
   388  //    }
   389  func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1Request(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (req *request.Request, output *OutputService2TestShapeOutputService2TestCaseOperation1Output) {
   390  	op := &request.Operation{
   391  		Name:     opOutputService2TestCaseOperation1,
   392  		HTTPPath: "/",
   393  	}
   394  
   395  	if input == nil {
   396  		input = &OutputService2TestShapeOutputService2TestCaseOperation1Input{}
   397  	}
   398  
   399  	output = &OutputService2TestShapeOutputService2TestCaseOperation1Output{}
   400  	req = c.newRequest(op, input, output)
   401  	return
   402  }
   403  
   404  // OutputService2TestCaseOperation1 API operation for .
   405  //
   406  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   407  // with awserr.Error's Code and Message methods to get detailed information about
   408  // the error.
   409  //
   410  // See the AWS API reference guide for 's
   411  // API operation OutputService2TestCaseOperation1 for usage and error information.
   412  func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
   413  	req, out := c.OutputService2TestCaseOperation1Request(input)
   414  	return out, req.Send()
   415  }
   416  
   417  // OutputService2TestCaseOperation1WithContext is the same as OutputService2TestCaseOperation1 with the addition of
   418  // the ability to pass a context and additional request options.
   419  //
   420  // See OutputService2TestCaseOperation1 for details on how to use this API operation.
   421  //
   422  // The context must be non-nil and will be used for request cancellation. If
   423  // the context is nil a panic will occur. In the future the SDK may create
   424  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   425  // for more information on using Contexts.
   426  func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1WithContext(ctx aws.Context, input *OutputService2TestShapeOutputService2TestCaseOperation1Input, opts ...request.Option) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
   427  	req, out := c.OutputService2TestCaseOperation1Request(input)
   428  	req.SetContext(ctx)
   429  	req.ApplyOptions(opts...)
   430  	return out, req.Send()
   431  }
   432  
   433  type OutputService2TestShapeBlobContainer struct {
   434  	_ struct{} `type:"structure"`
   435  
   436  	// Foo is automatically base64 encoded/decoded by the SDK.
   437  	Foo []byte `locationName:"foo" type:"blob"`
   438  }
   439  
   440  // SetFoo sets the Foo field's value.
   441  func (s *OutputService2TestShapeBlobContainer) SetFoo(v []byte) *OutputService2TestShapeBlobContainer {
   442  	s.Foo = v
   443  	return s
   444  }
   445  
   446  type OutputService2TestShapeOutputService2TestCaseOperation1Input struct {
   447  	_ struct{} `type:"structure" nopayload:"true"`
   448  }
   449  
   450  type OutputService2TestShapeOutputService2TestCaseOperation1Output struct {
   451  	_ struct{} `type:"structure"`
   452  
   453  	// BlobMember is automatically base64 encoded/decoded by the SDK.
   454  	BlobMember []byte `type:"blob"`
   455  
   456  	StructMember *OutputService2TestShapeBlobContainer `type:"structure"`
   457  }
   458  
   459  // SetBlobMember sets the BlobMember field's value.
   460  func (s *OutputService2TestShapeOutputService2TestCaseOperation1Output) SetBlobMember(v []byte) *OutputService2TestShapeOutputService2TestCaseOperation1Output {
   461  	s.BlobMember = v
   462  	return s
   463  }
   464  
   465  // SetStructMember sets the StructMember field's value.
   466  func (s *OutputService2TestShapeOutputService2TestCaseOperation1Output) SetStructMember(v *OutputService2TestShapeBlobContainer) *OutputService2TestShapeOutputService2TestCaseOperation1Output {
   467  	s.StructMember = v
   468  	return s
   469  }
   470  
   471  // OutputService3ProtocolTest provides the API operation methods for making requests to
   472  // . See this package's package overview docs
   473  // for details on the service.
   474  //
   475  // OutputService3ProtocolTest methods are safe to use concurrently. It is not safe to
   476  // modify mutate any of the struct's properties though.
   477  type OutputService3ProtocolTest struct {
   478  	*client.Client
   479  }
   480  
   481  // New creates a new instance of the OutputService3ProtocolTest client with a session.
   482  // If additional configuration is needed for the client instance use the optional
   483  // aws.Config parameter to add your extra config.
   484  //
   485  // Example:
   486  //     mySession := session.Must(session.NewSession())
   487  //
   488  //     // Create a OutputService3ProtocolTest client from just a session.
   489  //     svc := outputservice3protocoltest.New(mySession)
   490  //
   491  //     // Create a OutputService3ProtocolTest client with additional configuration
   492  //     svc := outputservice3protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   493  func NewOutputService3ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService3ProtocolTest {
   494  	c := p.ClientConfig("outputservice3protocoltest", cfgs...)
   495  	return newOutputService3ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   496  }
   497  
   498  // newClient creates, initializes and returns a new service client instance.
   499  func newOutputService3ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService3ProtocolTest {
   500  	svc := &OutputService3ProtocolTest{
   501  		Client: client.New(
   502  			cfg,
   503  			metadata.ClientInfo{
   504  				ServiceName:   "OutputService3ProtocolTest",
   505  				ServiceID:     "OutputService3ProtocolTest",
   506  				SigningName:   signingName,
   507  				SigningRegion: signingRegion,
   508  				PartitionID:   partitionID,
   509  				Endpoint:      endpoint,
   510  				APIVersion:    "",
   511  			},
   512  			handlers,
   513  		),
   514  	}
   515  
   516  	// Handlers
   517  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   518  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   519  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   520  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   521  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   522  
   523  	return svc
   524  }
   525  
   526  // newRequest creates a new request for a OutputService3ProtocolTest operation and runs any
   527  // custom request initialization.
   528  func (c *OutputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   529  	req := c.NewRequest(op, params, data)
   530  
   531  	return req
   532  }
   533  
   534  const opOutputService3TestCaseOperation1 = "OperationName"
   535  
   536  // OutputService3TestCaseOperation1Request generates a "aws/request.Request" representing the
   537  // client's request for the OutputService3TestCaseOperation1 operation. The "output" return
   538  // value will be populated with the request's response once the request completes
   539  // successfully.
   540  //
   541  // Use "Send" method on the returned Request to send the API call to the service.
   542  // the "output" return value is not valid until after Send returns without error.
   543  //
   544  // See OutputService3TestCaseOperation1 for more information on using the OutputService3TestCaseOperation1
   545  // API call, and error handling.
   546  //
   547  // This method is useful when you want to inject custom logic or configuration
   548  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   549  //
   550  //
   551  //    // Example sending a request using the OutputService3TestCaseOperation1Request method.
   552  //    req, resp := client.OutputService3TestCaseOperation1Request(params)
   553  //
   554  //    err := req.Send()
   555  //    if err == nil { // resp is now filled
   556  //        fmt.Println(resp)
   557  //    }
   558  func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1Request(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (req *request.Request, output *OutputService3TestShapeOutputService3TestCaseOperation1Output) {
   559  	op := &request.Operation{
   560  		Name:     opOutputService3TestCaseOperation1,
   561  		HTTPPath: "/",
   562  	}
   563  
   564  	if input == nil {
   565  		input = &OutputService3TestShapeOutputService3TestCaseOperation1Input{}
   566  	}
   567  
   568  	output = &OutputService3TestShapeOutputService3TestCaseOperation1Output{}
   569  	req = c.newRequest(op, input, output)
   570  	return
   571  }
   572  
   573  // OutputService3TestCaseOperation1 API operation for .
   574  //
   575  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   576  // with awserr.Error's Code and Message methods to get detailed information about
   577  // the error.
   578  //
   579  // See the AWS API reference guide for 's
   580  // API operation OutputService3TestCaseOperation1 for usage and error information.
   581  func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
   582  	req, out := c.OutputService3TestCaseOperation1Request(input)
   583  	return out, req.Send()
   584  }
   585  
   586  // OutputService3TestCaseOperation1WithContext is the same as OutputService3TestCaseOperation1 with the addition of
   587  // the ability to pass a context and additional request options.
   588  //
   589  // See OutputService3TestCaseOperation1 for details on how to use this API operation.
   590  //
   591  // The context must be non-nil and will be used for request cancellation. If
   592  // the context is nil a panic will occur. In the future the SDK may create
   593  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   594  // for more information on using Contexts.
   595  func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1WithContext(ctx aws.Context, input *OutputService3TestShapeOutputService3TestCaseOperation1Input, opts ...request.Option) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
   596  	req, out := c.OutputService3TestCaseOperation1Request(input)
   597  	req.SetContext(ctx)
   598  	req.ApplyOptions(opts...)
   599  	return out, req.Send()
   600  }
   601  
   602  type OutputService3TestShapeOutputService3TestCaseOperation1Input struct {
   603  	_ struct{} `type:"structure" nopayload:"true"`
   604  }
   605  
   606  type OutputService3TestShapeOutputService3TestCaseOperation1Output struct {
   607  	_ struct{} `type:"structure"`
   608  
   609  	StructMember *OutputService3TestShapeTimeContainer `type:"structure"`
   610  
   611  	TimeArg *time.Time `type:"timestamp"`
   612  
   613  	TimeArgInHeader *time.Time `location:"header" locationName:"x-amz-timearg" type:"timestamp"`
   614  
   615  	TimeCustom *time.Time `type:"timestamp" timestampFormat:"rfc822"`
   616  
   617  	TimeCustomInHeader *time.Time `location:"header" locationName:"x-amz-timecustom" type:"timestamp" timestampFormat:"unixTimestamp"`
   618  
   619  	TimeFormat *time.Time `type:"timestamp" timestampFormat:"iso8601"`
   620  
   621  	TimeFormatInHeader *time.Time `location:"header" locationName:"x-amz-timeformat" type:"timestamp" timestampFormat:"iso8601"`
   622  }
   623  
   624  // SetStructMember sets the StructMember field's value.
   625  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetStructMember(v *OutputService3TestShapeTimeContainer) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   626  	s.StructMember = v
   627  	return s
   628  }
   629  
   630  // SetTimeArg sets the TimeArg field's value.
   631  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeArg(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   632  	s.TimeArg = &v
   633  	return s
   634  }
   635  
   636  // SetTimeArgInHeader sets the TimeArgInHeader field's value.
   637  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeArgInHeader(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   638  	s.TimeArgInHeader = &v
   639  	return s
   640  }
   641  
   642  // SetTimeCustom sets the TimeCustom field's value.
   643  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeCustom(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   644  	s.TimeCustom = &v
   645  	return s
   646  }
   647  
   648  // SetTimeCustomInHeader sets the TimeCustomInHeader field's value.
   649  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeCustomInHeader(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   650  	s.TimeCustomInHeader = &v
   651  	return s
   652  }
   653  
   654  // SetTimeFormat sets the TimeFormat field's value.
   655  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeFormat(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   656  	s.TimeFormat = &v
   657  	return s
   658  }
   659  
   660  // SetTimeFormatInHeader sets the TimeFormatInHeader field's value.
   661  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetTimeFormatInHeader(v time.Time) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   662  	s.TimeFormatInHeader = &v
   663  	return s
   664  }
   665  
   666  type OutputService3TestShapeTimeContainer struct {
   667  	_ struct{} `type:"structure"`
   668  
   669  	Bar *time.Time `locationName:"bar" type:"timestamp" timestampFormat:"iso8601"`
   670  
   671  	Foo *time.Time `locationName:"foo" type:"timestamp"`
   672  }
   673  
   674  // SetBar sets the Bar field's value.
   675  func (s *OutputService3TestShapeTimeContainer) SetBar(v time.Time) *OutputService3TestShapeTimeContainer {
   676  	s.Bar = &v
   677  	return s
   678  }
   679  
   680  // SetFoo sets the Foo field's value.
   681  func (s *OutputService3TestShapeTimeContainer) SetFoo(v time.Time) *OutputService3TestShapeTimeContainer {
   682  	s.Foo = &v
   683  	return s
   684  }
   685  
   686  // OutputService4ProtocolTest provides the API operation methods for making requests to
   687  // . See this package's package overview docs
   688  // for details on the service.
   689  //
   690  // OutputService4ProtocolTest methods are safe to use concurrently. It is not safe to
   691  // modify mutate any of the struct's properties though.
   692  type OutputService4ProtocolTest struct {
   693  	*client.Client
   694  }
   695  
   696  // New creates a new instance of the OutputService4ProtocolTest client with a session.
   697  // If additional configuration is needed for the client instance use the optional
   698  // aws.Config parameter to add your extra config.
   699  //
   700  // Example:
   701  //     mySession := session.Must(session.NewSession())
   702  //
   703  //     // Create a OutputService4ProtocolTest client from just a session.
   704  //     svc := outputservice4protocoltest.New(mySession)
   705  //
   706  //     // Create a OutputService4ProtocolTest client with additional configuration
   707  //     svc := outputservice4protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   708  func NewOutputService4ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService4ProtocolTest {
   709  	c := p.ClientConfig("outputservice4protocoltest", cfgs...)
   710  	return newOutputService4ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   711  }
   712  
   713  // newClient creates, initializes and returns a new service client instance.
   714  func newOutputService4ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService4ProtocolTest {
   715  	svc := &OutputService4ProtocolTest{
   716  		Client: client.New(
   717  			cfg,
   718  			metadata.ClientInfo{
   719  				ServiceName:   "OutputService4ProtocolTest",
   720  				ServiceID:     "OutputService4ProtocolTest",
   721  				SigningName:   signingName,
   722  				SigningRegion: signingRegion,
   723  				PartitionID:   partitionID,
   724  				Endpoint:      endpoint,
   725  				APIVersion:    "",
   726  			},
   727  			handlers,
   728  		),
   729  	}
   730  
   731  	// Handlers
   732  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   733  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   734  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   735  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   736  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   737  
   738  	return svc
   739  }
   740  
   741  // newRequest creates a new request for a OutputService4ProtocolTest operation and runs any
   742  // custom request initialization.
   743  func (c *OutputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   744  	req := c.NewRequest(op, params, data)
   745  
   746  	return req
   747  }
   748  
   749  const opOutputService4TestCaseOperation1 = "OperationName"
   750  
   751  // OutputService4TestCaseOperation1Request generates a "aws/request.Request" representing the
   752  // client's request for the OutputService4TestCaseOperation1 operation. The "output" return
   753  // value will be populated with the request's response once the request completes
   754  // successfully.
   755  //
   756  // Use "Send" method on the returned Request to send the API call to the service.
   757  // the "output" return value is not valid until after Send returns without error.
   758  //
   759  // See OutputService4TestCaseOperation1 for more information on using the OutputService4TestCaseOperation1
   760  // API call, and error handling.
   761  //
   762  // This method is useful when you want to inject custom logic or configuration
   763  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   764  //
   765  //
   766  //    // Example sending a request using the OutputService4TestCaseOperation1Request method.
   767  //    req, resp := client.OutputService4TestCaseOperation1Request(params)
   768  //
   769  //    err := req.Send()
   770  //    if err == nil { // resp is now filled
   771  //        fmt.Println(resp)
   772  //    }
   773  func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1Request(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (req *request.Request, output *OutputService4TestShapeOutputService4TestCaseOperation1Output) {
   774  	op := &request.Operation{
   775  		Name:     opOutputService4TestCaseOperation1,
   776  		HTTPPath: "/",
   777  	}
   778  
   779  	if input == nil {
   780  		input = &OutputService4TestShapeOutputService4TestCaseOperation1Input{}
   781  	}
   782  
   783  	output = &OutputService4TestShapeOutputService4TestCaseOperation1Output{}
   784  	req = c.newRequest(op, input, output)
   785  	return
   786  }
   787  
   788  // OutputService4TestCaseOperation1 API operation for .
   789  //
   790  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   791  // with awserr.Error's Code and Message methods to get detailed information about
   792  // the error.
   793  //
   794  // See the AWS API reference guide for 's
   795  // API operation OutputService4TestCaseOperation1 for usage and error information.
   796  func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
   797  	req, out := c.OutputService4TestCaseOperation1Request(input)
   798  	return out, req.Send()
   799  }
   800  
   801  // OutputService4TestCaseOperation1WithContext is the same as OutputService4TestCaseOperation1 with the addition of
   802  // the ability to pass a context and additional request options.
   803  //
   804  // See OutputService4TestCaseOperation1 for details on how to use this API operation.
   805  //
   806  // The context must be non-nil and will be used for request cancellation. If
   807  // the context is nil a panic will occur. In the future the SDK may create
   808  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   809  // for more information on using Contexts.
   810  func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1WithContext(ctx aws.Context, input *OutputService4TestShapeOutputService4TestCaseOperation1Input, opts ...request.Option) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
   811  	req, out := c.OutputService4TestCaseOperation1Request(input)
   812  	req.SetContext(ctx)
   813  	req.ApplyOptions(opts...)
   814  	return out, req.Send()
   815  }
   816  
   817  type OutputService4TestShapeOutputService4TestCaseOperation1Input struct {
   818  	_ struct{} `type:"structure" nopayload:"true"`
   819  }
   820  
   821  type OutputService4TestShapeOutputService4TestCaseOperation1Output struct {
   822  	_ struct{} `type:"structure"`
   823  
   824  	ListMember []*string `type:"list"`
   825  }
   826  
   827  // SetListMember sets the ListMember field's value.
   828  func (s *OutputService4TestShapeOutputService4TestCaseOperation1Output) SetListMember(v []*string) *OutputService4TestShapeOutputService4TestCaseOperation1Output {
   829  	s.ListMember = v
   830  	return s
   831  }
   832  
   833  // OutputService5ProtocolTest provides the API operation methods for making requests to
   834  // . See this package's package overview docs
   835  // for details on the service.
   836  //
   837  // OutputService5ProtocolTest methods are safe to use concurrently. It is not safe to
   838  // modify mutate any of the struct's properties though.
   839  type OutputService5ProtocolTest struct {
   840  	*client.Client
   841  }
   842  
   843  // New creates a new instance of the OutputService5ProtocolTest client with a session.
   844  // If additional configuration is needed for the client instance use the optional
   845  // aws.Config parameter to add your extra config.
   846  //
   847  // Example:
   848  //     mySession := session.Must(session.NewSession())
   849  //
   850  //     // Create a OutputService5ProtocolTest client from just a session.
   851  //     svc := outputservice5protocoltest.New(mySession)
   852  //
   853  //     // Create a OutputService5ProtocolTest client with additional configuration
   854  //     svc := outputservice5protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   855  func NewOutputService5ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService5ProtocolTest {
   856  	c := p.ClientConfig("outputservice5protocoltest", cfgs...)
   857  	return newOutputService5ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   858  }
   859  
   860  // newClient creates, initializes and returns a new service client instance.
   861  func newOutputService5ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService5ProtocolTest {
   862  	svc := &OutputService5ProtocolTest{
   863  		Client: client.New(
   864  			cfg,
   865  			metadata.ClientInfo{
   866  				ServiceName:   "OutputService5ProtocolTest",
   867  				ServiceID:     "OutputService5ProtocolTest",
   868  				SigningName:   signingName,
   869  				SigningRegion: signingRegion,
   870  				PartitionID:   partitionID,
   871  				Endpoint:      endpoint,
   872  				APIVersion:    "",
   873  			},
   874  			handlers,
   875  		),
   876  	}
   877  
   878  	// Handlers
   879  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   880  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   881  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   882  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   883  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   884  
   885  	return svc
   886  }
   887  
   888  // newRequest creates a new request for a OutputService5ProtocolTest operation and runs any
   889  // custom request initialization.
   890  func (c *OutputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   891  	req := c.NewRequest(op, params, data)
   892  
   893  	return req
   894  }
   895  
   896  const opOutputService5TestCaseOperation1 = "OperationName"
   897  
   898  // OutputService5TestCaseOperation1Request generates a "aws/request.Request" representing the
   899  // client's request for the OutputService5TestCaseOperation1 operation. The "output" return
   900  // value will be populated with the request's response once the request completes
   901  // successfully.
   902  //
   903  // Use "Send" method on the returned Request to send the API call to the service.
   904  // the "output" return value is not valid until after Send returns without error.
   905  //
   906  // See OutputService5TestCaseOperation1 for more information on using the OutputService5TestCaseOperation1
   907  // API call, and error handling.
   908  //
   909  // This method is useful when you want to inject custom logic or configuration
   910  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   911  //
   912  //
   913  //    // Example sending a request using the OutputService5TestCaseOperation1Request method.
   914  //    req, resp := client.OutputService5TestCaseOperation1Request(params)
   915  //
   916  //    err := req.Send()
   917  //    if err == nil { // resp is now filled
   918  //        fmt.Println(resp)
   919  //    }
   920  func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1Request(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (req *request.Request, output *OutputService5TestShapeOutputService5TestCaseOperation1Output) {
   921  	op := &request.Operation{
   922  		Name:     opOutputService5TestCaseOperation1,
   923  		HTTPPath: "/",
   924  	}
   925  
   926  	if input == nil {
   927  		input = &OutputService5TestShapeOutputService5TestCaseOperation1Input{}
   928  	}
   929  
   930  	output = &OutputService5TestShapeOutputService5TestCaseOperation1Output{}
   931  	req = c.newRequest(op, input, output)
   932  	return
   933  }
   934  
   935  // OutputService5TestCaseOperation1 API operation for .
   936  //
   937  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   938  // with awserr.Error's Code and Message methods to get detailed information about
   939  // the error.
   940  //
   941  // See the AWS API reference guide for 's
   942  // API operation OutputService5TestCaseOperation1 for usage and error information.
   943  func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
   944  	req, out := c.OutputService5TestCaseOperation1Request(input)
   945  	return out, req.Send()
   946  }
   947  
   948  // OutputService5TestCaseOperation1WithContext is the same as OutputService5TestCaseOperation1 with the addition of
   949  // the ability to pass a context and additional request options.
   950  //
   951  // See OutputService5TestCaseOperation1 for details on how to use this API operation.
   952  //
   953  // The context must be non-nil and will be used for request cancellation. If
   954  // the context is nil a panic will occur. In the future the SDK may create
   955  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   956  // for more information on using Contexts.
   957  func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1WithContext(ctx aws.Context, input *OutputService5TestShapeOutputService5TestCaseOperation1Input, opts ...request.Option) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
   958  	req, out := c.OutputService5TestCaseOperation1Request(input)
   959  	req.SetContext(ctx)
   960  	req.ApplyOptions(opts...)
   961  	return out, req.Send()
   962  }
   963  
   964  type OutputService5TestShapeOutputService5TestCaseOperation1Input struct {
   965  	_ struct{} `type:"structure" nopayload:"true"`
   966  }
   967  
   968  type OutputService5TestShapeOutputService5TestCaseOperation1Output struct {
   969  	_ struct{} `type:"structure"`
   970  
   971  	ListMember []*OutputService5TestShapeSingleStruct `type:"list"`
   972  }
   973  
   974  // SetListMember sets the ListMember field's value.
   975  func (s *OutputService5TestShapeOutputService5TestCaseOperation1Output) SetListMember(v []*OutputService5TestShapeSingleStruct) *OutputService5TestShapeOutputService5TestCaseOperation1Output {
   976  	s.ListMember = v
   977  	return s
   978  }
   979  
   980  type OutputService5TestShapeSingleStruct struct {
   981  	_ struct{} `type:"structure"`
   982  
   983  	Foo *string `type:"string"`
   984  }
   985  
   986  // SetFoo sets the Foo field's value.
   987  func (s *OutputService5TestShapeSingleStruct) SetFoo(v string) *OutputService5TestShapeSingleStruct {
   988  	s.Foo = &v
   989  	return s
   990  }
   991  
   992  // OutputService6ProtocolTest provides the API operation methods for making requests to
   993  // . See this package's package overview docs
   994  // for details on the service.
   995  //
   996  // OutputService6ProtocolTest methods are safe to use concurrently. It is not safe to
   997  // modify mutate any of the struct's properties though.
   998  type OutputService6ProtocolTest struct {
   999  	*client.Client
  1000  }
  1001  
  1002  // New creates a new instance of the OutputService6ProtocolTest client with a session.
  1003  // If additional configuration is needed for the client instance use the optional
  1004  // aws.Config parameter to add your extra config.
  1005  //
  1006  // Example:
  1007  //     mySession := session.Must(session.NewSession())
  1008  //
  1009  //     // Create a OutputService6ProtocolTest client from just a session.
  1010  //     svc := outputservice6protocoltest.New(mySession)
  1011  //
  1012  //     // Create a OutputService6ProtocolTest client with additional configuration
  1013  //     svc := outputservice6protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1014  func NewOutputService6ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService6ProtocolTest {
  1015  	c := p.ClientConfig("outputservice6protocoltest", cfgs...)
  1016  	return newOutputService6ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1017  }
  1018  
  1019  // newClient creates, initializes and returns a new service client instance.
  1020  func newOutputService6ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService6ProtocolTest {
  1021  	svc := &OutputService6ProtocolTest{
  1022  		Client: client.New(
  1023  			cfg,
  1024  			metadata.ClientInfo{
  1025  				ServiceName:   "OutputService6ProtocolTest",
  1026  				ServiceID:     "OutputService6ProtocolTest",
  1027  				SigningName:   signingName,
  1028  				SigningRegion: signingRegion,
  1029  				PartitionID:   partitionID,
  1030  				Endpoint:      endpoint,
  1031  				APIVersion:    "",
  1032  			},
  1033  			handlers,
  1034  		),
  1035  	}
  1036  
  1037  	// Handlers
  1038  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1039  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1040  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1041  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1042  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1043  
  1044  	return svc
  1045  }
  1046  
  1047  // newRequest creates a new request for a OutputService6ProtocolTest operation and runs any
  1048  // custom request initialization.
  1049  func (c *OutputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1050  	req := c.NewRequest(op, params, data)
  1051  
  1052  	return req
  1053  }
  1054  
  1055  const opOutputService6TestCaseOperation1 = "OperationName"
  1056  
  1057  // OutputService6TestCaseOperation1Request generates a "aws/request.Request" representing the
  1058  // client's request for the OutputService6TestCaseOperation1 operation. The "output" return
  1059  // value will be populated with the request's response once the request completes
  1060  // successfully.
  1061  //
  1062  // Use "Send" method on the returned Request to send the API call to the service.
  1063  // the "output" return value is not valid until after Send returns without error.
  1064  //
  1065  // See OutputService6TestCaseOperation1 for more information on using the OutputService6TestCaseOperation1
  1066  // API call, and error handling.
  1067  //
  1068  // This method is useful when you want to inject custom logic or configuration
  1069  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1070  //
  1071  //
  1072  //    // Example sending a request using the OutputService6TestCaseOperation1Request method.
  1073  //    req, resp := client.OutputService6TestCaseOperation1Request(params)
  1074  //
  1075  //    err := req.Send()
  1076  //    if err == nil { // resp is now filled
  1077  //        fmt.Println(resp)
  1078  //    }
  1079  func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1Request(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (req *request.Request, output *OutputService6TestShapeOutputService6TestCaseOperation1Output) {
  1080  	op := &request.Operation{
  1081  		Name:     opOutputService6TestCaseOperation1,
  1082  		HTTPPath: "/",
  1083  	}
  1084  
  1085  	if input == nil {
  1086  		input = &OutputService6TestShapeOutputService6TestCaseOperation1Input{}
  1087  	}
  1088  
  1089  	output = &OutputService6TestShapeOutputService6TestCaseOperation1Output{}
  1090  	req = c.newRequest(op, input, output)
  1091  	return
  1092  }
  1093  
  1094  // OutputService6TestCaseOperation1 API operation for .
  1095  //
  1096  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1097  // with awserr.Error's Code and Message methods to get detailed information about
  1098  // the error.
  1099  //
  1100  // See the AWS API reference guide for 's
  1101  // API operation OutputService6TestCaseOperation1 for usage and error information.
  1102  func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
  1103  	req, out := c.OutputService6TestCaseOperation1Request(input)
  1104  	return out, req.Send()
  1105  }
  1106  
  1107  // OutputService6TestCaseOperation1WithContext is the same as OutputService6TestCaseOperation1 with the addition of
  1108  // the ability to pass a context and additional request options.
  1109  //
  1110  // See OutputService6TestCaseOperation1 for details on how to use this API operation.
  1111  //
  1112  // The context must be non-nil and will be used for request cancellation. If
  1113  // the context is nil a panic will occur. In the future the SDK may create
  1114  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1115  // for more information on using Contexts.
  1116  func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1WithContext(ctx aws.Context, input *OutputService6TestShapeOutputService6TestCaseOperation1Input, opts ...request.Option) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
  1117  	req, out := c.OutputService6TestCaseOperation1Request(input)
  1118  	req.SetContext(ctx)
  1119  	req.ApplyOptions(opts...)
  1120  	return out, req.Send()
  1121  }
  1122  
  1123  type OutputService6TestShapeOutputService6TestCaseOperation1Input struct {
  1124  	_ struct{} `type:"structure" nopayload:"true"`
  1125  }
  1126  
  1127  type OutputService6TestShapeOutputService6TestCaseOperation1Output struct {
  1128  	_ struct{} `type:"structure"`
  1129  
  1130  	MapMember map[string][]*int64 `type:"map"`
  1131  }
  1132  
  1133  // SetMapMember sets the MapMember field's value.
  1134  func (s *OutputService6TestShapeOutputService6TestCaseOperation1Output) SetMapMember(v map[string][]*int64) *OutputService6TestShapeOutputService6TestCaseOperation1Output {
  1135  	s.MapMember = v
  1136  	return s
  1137  }
  1138  
  1139  // OutputService7ProtocolTest provides the API operation methods for making requests to
  1140  // . See this package's package overview docs
  1141  // for details on the service.
  1142  //
  1143  // OutputService7ProtocolTest methods are safe to use concurrently. It is not safe to
  1144  // modify mutate any of the struct's properties though.
  1145  type OutputService7ProtocolTest struct {
  1146  	*client.Client
  1147  }
  1148  
  1149  // New creates a new instance of the OutputService7ProtocolTest client with a session.
  1150  // If additional configuration is needed for the client instance use the optional
  1151  // aws.Config parameter to add your extra config.
  1152  //
  1153  // Example:
  1154  //     mySession := session.Must(session.NewSession())
  1155  //
  1156  //     // Create a OutputService7ProtocolTest client from just a session.
  1157  //     svc := outputservice7protocoltest.New(mySession)
  1158  //
  1159  //     // Create a OutputService7ProtocolTest client with additional configuration
  1160  //     svc := outputservice7protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1161  func NewOutputService7ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService7ProtocolTest {
  1162  	c := p.ClientConfig("outputservice7protocoltest", cfgs...)
  1163  	return newOutputService7ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1164  }
  1165  
  1166  // newClient creates, initializes and returns a new service client instance.
  1167  func newOutputService7ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService7ProtocolTest {
  1168  	svc := &OutputService7ProtocolTest{
  1169  		Client: client.New(
  1170  			cfg,
  1171  			metadata.ClientInfo{
  1172  				ServiceName:   "OutputService7ProtocolTest",
  1173  				ServiceID:     "OutputService7ProtocolTest",
  1174  				SigningName:   signingName,
  1175  				SigningRegion: signingRegion,
  1176  				PartitionID:   partitionID,
  1177  				Endpoint:      endpoint,
  1178  				APIVersion:    "",
  1179  			},
  1180  			handlers,
  1181  		),
  1182  	}
  1183  
  1184  	// Handlers
  1185  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1186  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1187  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1188  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1189  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1190  
  1191  	return svc
  1192  }
  1193  
  1194  // newRequest creates a new request for a OutputService7ProtocolTest operation and runs any
  1195  // custom request initialization.
  1196  func (c *OutputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1197  	req := c.NewRequest(op, params, data)
  1198  
  1199  	return req
  1200  }
  1201  
  1202  const opOutputService7TestCaseOperation1 = "OperationName"
  1203  
  1204  // OutputService7TestCaseOperation1Request generates a "aws/request.Request" representing the
  1205  // client's request for the OutputService7TestCaseOperation1 operation. The "output" return
  1206  // value will be populated with the request's response once the request completes
  1207  // successfully.
  1208  //
  1209  // Use "Send" method on the returned Request to send the API call to the service.
  1210  // the "output" return value is not valid until after Send returns without error.
  1211  //
  1212  // See OutputService7TestCaseOperation1 for more information on using the OutputService7TestCaseOperation1
  1213  // API call, and error handling.
  1214  //
  1215  // This method is useful when you want to inject custom logic or configuration
  1216  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1217  //
  1218  //
  1219  //    // Example sending a request using the OutputService7TestCaseOperation1Request method.
  1220  //    req, resp := client.OutputService7TestCaseOperation1Request(params)
  1221  //
  1222  //    err := req.Send()
  1223  //    if err == nil { // resp is now filled
  1224  //        fmt.Println(resp)
  1225  //    }
  1226  func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1Request(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (req *request.Request, output *OutputService7TestShapeOutputService7TestCaseOperation1Output) {
  1227  	op := &request.Operation{
  1228  		Name:     opOutputService7TestCaseOperation1,
  1229  		HTTPPath: "/",
  1230  	}
  1231  
  1232  	if input == nil {
  1233  		input = &OutputService7TestShapeOutputService7TestCaseOperation1Input{}
  1234  	}
  1235  
  1236  	output = &OutputService7TestShapeOutputService7TestCaseOperation1Output{}
  1237  	req = c.newRequest(op, input, output)
  1238  	return
  1239  }
  1240  
  1241  // OutputService7TestCaseOperation1 API operation for .
  1242  //
  1243  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1244  // with awserr.Error's Code and Message methods to get detailed information about
  1245  // the error.
  1246  //
  1247  // See the AWS API reference guide for 's
  1248  // API operation OutputService7TestCaseOperation1 for usage and error information.
  1249  func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
  1250  	req, out := c.OutputService7TestCaseOperation1Request(input)
  1251  	return out, req.Send()
  1252  }
  1253  
  1254  // OutputService7TestCaseOperation1WithContext is the same as OutputService7TestCaseOperation1 with the addition of
  1255  // the ability to pass a context and additional request options.
  1256  //
  1257  // See OutputService7TestCaseOperation1 for details on how to use this API operation.
  1258  //
  1259  // The context must be non-nil and will be used for request cancellation. If
  1260  // the context is nil a panic will occur. In the future the SDK may create
  1261  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1262  // for more information on using Contexts.
  1263  func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1WithContext(ctx aws.Context, input *OutputService7TestShapeOutputService7TestCaseOperation1Input, opts ...request.Option) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
  1264  	req, out := c.OutputService7TestCaseOperation1Request(input)
  1265  	req.SetContext(ctx)
  1266  	req.ApplyOptions(opts...)
  1267  	return out, req.Send()
  1268  }
  1269  
  1270  type OutputService7TestShapeOutputService7TestCaseOperation1Input struct {
  1271  	_ struct{} `type:"structure" nopayload:"true"`
  1272  }
  1273  
  1274  type OutputService7TestShapeOutputService7TestCaseOperation1Output struct {
  1275  	_ struct{} `type:"structure"`
  1276  
  1277  	MapMember map[string]*time.Time `type:"map"`
  1278  }
  1279  
  1280  // SetMapMember sets the MapMember field's value.
  1281  func (s *OutputService7TestShapeOutputService7TestCaseOperation1Output) SetMapMember(v map[string]*time.Time) *OutputService7TestShapeOutputService7TestCaseOperation1Output {
  1282  	s.MapMember = v
  1283  	return s
  1284  }
  1285  
  1286  // OutputService8ProtocolTest provides the API operation methods for making requests to
  1287  // . See this package's package overview docs
  1288  // for details on the service.
  1289  //
  1290  // OutputService8ProtocolTest methods are safe to use concurrently. It is not safe to
  1291  // modify mutate any of the struct's properties though.
  1292  type OutputService8ProtocolTest struct {
  1293  	*client.Client
  1294  }
  1295  
  1296  // New creates a new instance of the OutputService8ProtocolTest client with a session.
  1297  // If additional configuration is needed for the client instance use the optional
  1298  // aws.Config parameter to add your extra config.
  1299  //
  1300  // Example:
  1301  //     mySession := session.Must(session.NewSession())
  1302  //
  1303  //     // Create a OutputService8ProtocolTest client from just a session.
  1304  //     svc := outputservice8protocoltest.New(mySession)
  1305  //
  1306  //     // Create a OutputService8ProtocolTest client with additional configuration
  1307  //     svc := outputservice8protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1308  func NewOutputService8ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService8ProtocolTest {
  1309  	c := p.ClientConfig("outputservice8protocoltest", cfgs...)
  1310  	return newOutputService8ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1311  }
  1312  
  1313  // newClient creates, initializes and returns a new service client instance.
  1314  func newOutputService8ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService8ProtocolTest {
  1315  	svc := &OutputService8ProtocolTest{
  1316  		Client: client.New(
  1317  			cfg,
  1318  			metadata.ClientInfo{
  1319  				ServiceName:   "OutputService8ProtocolTest",
  1320  				ServiceID:     "OutputService8ProtocolTest",
  1321  				SigningName:   signingName,
  1322  				SigningRegion: signingRegion,
  1323  				PartitionID:   partitionID,
  1324  				Endpoint:      endpoint,
  1325  				APIVersion:    "",
  1326  			},
  1327  			handlers,
  1328  		),
  1329  	}
  1330  
  1331  	// Handlers
  1332  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1333  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1334  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1335  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1336  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1337  
  1338  	return svc
  1339  }
  1340  
  1341  // newRequest creates a new request for a OutputService8ProtocolTest operation and runs any
  1342  // custom request initialization.
  1343  func (c *OutputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1344  	req := c.NewRequest(op, params, data)
  1345  
  1346  	return req
  1347  }
  1348  
  1349  const opOutputService8TestCaseOperation1 = "OperationName"
  1350  
  1351  // OutputService8TestCaseOperation1Request generates a "aws/request.Request" representing the
  1352  // client's request for the OutputService8TestCaseOperation1 operation. The "output" return
  1353  // value will be populated with the request's response once the request completes
  1354  // successfully.
  1355  //
  1356  // Use "Send" method on the returned Request to send the API call to the service.
  1357  // the "output" return value is not valid until after Send returns without error.
  1358  //
  1359  // See OutputService8TestCaseOperation1 for more information on using the OutputService8TestCaseOperation1
  1360  // API call, and error handling.
  1361  //
  1362  // This method is useful when you want to inject custom logic or configuration
  1363  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1364  //
  1365  //
  1366  //    // Example sending a request using the OutputService8TestCaseOperation1Request method.
  1367  //    req, resp := client.OutputService8TestCaseOperation1Request(params)
  1368  //
  1369  //    err := req.Send()
  1370  //    if err == nil { // resp is now filled
  1371  //        fmt.Println(resp)
  1372  //    }
  1373  func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1Request(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation1Output) {
  1374  	op := &request.Operation{
  1375  		Name:     opOutputService8TestCaseOperation1,
  1376  		HTTPPath: "/",
  1377  	}
  1378  
  1379  	if input == nil {
  1380  		input = &OutputService8TestShapeOutputService8TestCaseOperation1Input{}
  1381  	}
  1382  
  1383  	output = &OutputService8TestShapeOutputService8TestCaseOperation1Output{}
  1384  	req = c.newRequest(op, input, output)
  1385  	return
  1386  }
  1387  
  1388  // OutputService8TestCaseOperation1 API operation for .
  1389  //
  1390  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1391  // with awserr.Error's Code and Message methods to get detailed information about
  1392  // the error.
  1393  //
  1394  // See the AWS API reference guide for 's
  1395  // API operation OutputService8TestCaseOperation1 for usage and error information.
  1396  func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
  1397  	req, out := c.OutputService8TestCaseOperation1Request(input)
  1398  	return out, req.Send()
  1399  }
  1400  
  1401  // OutputService8TestCaseOperation1WithContext is the same as OutputService8TestCaseOperation1 with the addition of
  1402  // the ability to pass a context and additional request options.
  1403  //
  1404  // See OutputService8TestCaseOperation1 for details on how to use this API operation.
  1405  //
  1406  // The context must be non-nil and will be used for request cancellation. If
  1407  // the context is nil a panic will occur. In the future the SDK may create
  1408  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1409  // for more information on using Contexts.
  1410  func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation1Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
  1411  	req, out := c.OutputService8TestCaseOperation1Request(input)
  1412  	req.SetContext(ctx)
  1413  	req.ApplyOptions(opts...)
  1414  	return out, req.Send()
  1415  }
  1416  
  1417  type OutputService8TestShapeOutputService8TestCaseOperation1Input struct {
  1418  	_ struct{} `type:"structure" nopayload:"true"`
  1419  }
  1420  
  1421  type OutputService8TestShapeOutputService8TestCaseOperation1Output struct {
  1422  	_ struct{} `type:"structure"`
  1423  
  1424  	StrType *string `type:"string"`
  1425  }
  1426  
  1427  // SetStrType sets the StrType field's value.
  1428  func (s *OutputService8TestShapeOutputService8TestCaseOperation1Output) SetStrType(v string) *OutputService8TestShapeOutputService8TestCaseOperation1Output {
  1429  	s.StrType = &v
  1430  	return s
  1431  }
  1432  
  1433  // OutputService9ProtocolTest provides the API operation methods for making requests to
  1434  // . See this package's package overview docs
  1435  // for details on the service.
  1436  //
  1437  // OutputService9ProtocolTest methods are safe to use concurrently. It is not safe to
  1438  // modify mutate any of the struct's properties though.
  1439  type OutputService9ProtocolTest struct {
  1440  	*client.Client
  1441  }
  1442  
  1443  // New creates a new instance of the OutputService9ProtocolTest client with a session.
  1444  // If additional configuration is needed for the client instance use the optional
  1445  // aws.Config parameter to add your extra config.
  1446  //
  1447  // Example:
  1448  //     mySession := session.Must(session.NewSession())
  1449  //
  1450  //     // Create a OutputService9ProtocolTest client from just a session.
  1451  //     svc := outputservice9protocoltest.New(mySession)
  1452  //
  1453  //     // Create a OutputService9ProtocolTest client with additional configuration
  1454  //     svc := outputservice9protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1455  func NewOutputService9ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService9ProtocolTest {
  1456  	c := p.ClientConfig("outputservice9protocoltest", cfgs...)
  1457  	return newOutputService9ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1458  }
  1459  
  1460  // newClient creates, initializes and returns a new service client instance.
  1461  func newOutputService9ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService9ProtocolTest {
  1462  	svc := &OutputService9ProtocolTest{
  1463  		Client: client.New(
  1464  			cfg,
  1465  			metadata.ClientInfo{
  1466  				ServiceName:   "OutputService9ProtocolTest",
  1467  				ServiceID:     "OutputService9ProtocolTest",
  1468  				SigningName:   signingName,
  1469  				SigningRegion: signingRegion,
  1470  				PartitionID:   partitionID,
  1471  				Endpoint:      endpoint,
  1472  				APIVersion:    "",
  1473  			},
  1474  			handlers,
  1475  		),
  1476  	}
  1477  
  1478  	// Handlers
  1479  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1480  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1481  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1482  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1483  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1484  
  1485  	return svc
  1486  }
  1487  
  1488  // newRequest creates a new request for a OutputService9ProtocolTest operation and runs any
  1489  // custom request initialization.
  1490  func (c *OutputService9ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1491  	req := c.NewRequest(op, params, data)
  1492  
  1493  	return req
  1494  }
  1495  
  1496  const opOutputService9TestCaseOperation1 = "OperationName"
  1497  
  1498  // OutputService9TestCaseOperation1Request generates a "aws/request.Request" representing the
  1499  // client's request for the OutputService9TestCaseOperation1 operation. The "output" return
  1500  // value will be populated with the request's response once the request completes
  1501  // successfully.
  1502  //
  1503  // Use "Send" method on the returned Request to send the API call to the service.
  1504  // the "output" return value is not valid until after Send returns without error.
  1505  //
  1506  // See OutputService9TestCaseOperation1 for more information on using the OutputService9TestCaseOperation1
  1507  // API call, and error handling.
  1508  //
  1509  // This method is useful when you want to inject custom logic or configuration
  1510  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1511  //
  1512  //
  1513  //    // Example sending a request using the OutputService9TestCaseOperation1Request method.
  1514  //    req, resp := client.OutputService9TestCaseOperation1Request(params)
  1515  //
  1516  //    err := req.Send()
  1517  //    if err == nil { // resp is now filled
  1518  //        fmt.Println(resp)
  1519  //    }
  1520  func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1Request(input *OutputService9TestShapeOutputService9TestCaseOperation1Input) (req *request.Request, output *OutputService9TestShapeOutputService9TestCaseOperation1Output) {
  1521  	op := &request.Operation{
  1522  		Name:     opOutputService9TestCaseOperation1,
  1523  		HTTPPath: "/",
  1524  	}
  1525  
  1526  	if input == nil {
  1527  		input = &OutputService9TestShapeOutputService9TestCaseOperation1Input{}
  1528  	}
  1529  
  1530  	output = &OutputService9TestShapeOutputService9TestCaseOperation1Output{}
  1531  	req = c.newRequest(op, input, output)
  1532  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1533  	return
  1534  }
  1535  
  1536  // OutputService9TestCaseOperation1 API operation for .
  1537  //
  1538  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1539  // with awserr.Error's Code and Message methods to get detailed information about
  1540  // the error.
  1541  //
  1542  // See the AWS API reference guide for 's
  1543  // API operation OutputService9TestCaseOperation1 for usage and error information.
  1544  func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1(input *OutputService9TestShapeOutputService9TestCaseOperation1Input) (*OutputService9TestShapeOutputService9TestCaseOperation1Output, error) {
  1545  	req, out := c.OutputService9TestCaseOperation1Request(input)
  1546  	return out, req.Send()
  1547  }
  1548  
  1549  // OutputService9TestCaseOperation1WithContext is the same as OutputService9TestCaseOperation1 with the addition of
  1550  // the ability to pass a context and additional request options.
  1551  //
  1552  // See OutputService9TestCaseOperation1 for details on how to use this API operation.
  1553  //
  1554  // The context must be non-nil and will be used for request cancellation. If
  1555  // the context is nil a panic will occur. In the future the SDK may create
  1556  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1557  // for more information on using Contexts.
  1558  func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1WithContext(ctx aws.Context, input *OutputService9TestShapeOutputService9TestCaseOperation1Input, opts ...request.Option) (*OutputService9TestShapeOutputService9TestCaseOperation1Output, error) {
  1559  	req, out := c.OutputService9TestCaseOperation1Request(input)
  1560  	req.SetContext(ctx)
  1561  	req.ApplyOptions(opts...)
  1562  	return out, req.Send()
  1563  }
  1564  
  1565  type OutputService9TestShapeOutputService9TestCaseOperation1Input struct {
  1566  	_ struct{} `type:"structure" nopayload:"true"`
  1567  }
  1568  
  1569  type OutputService9TestShapeOutputService9TestCaseOperation1Output struct {
  1570  	_ struct{} `type:"structure" nopayload:"true"`
  1571  }
  1572  
  1573  // OutputService10ProtocolTest provides the API operation methods for making requests to
  1574  // . See this package's package overview docs
  1575  // for details on the service.
  1576  //
  1577  // OutputService10ProtocolTest methods are safe to use concurrently. It is not safe to
  1578  // modify mutate any of the struct's properties though.
  1579  type OutputService10ProtocolTest struct {
  1580  	*client.Client
  1581  }
  1582  
  1583  // New creates a new instance of the OutputService10ProtocolTest client with a session.
  1584  // If additional configuration is needed for the client instance use the optional
  1585  // aws.Config parameter to add your extra config.
  1586  //
  1587  // Example:
  1588  //     mySession := session.Must(session.NewSession())
  1589  //
  1590  //     // Create a OutputService10ProtocolTest client from just a session.
  1591  //     svc := outputservice10protocoltest.New(mySession)
  1592  //
  1593  //     // Create a OutputService10ProtocolTest client with additional configuration
  1594  //     svc := outputservice10protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1595  func NewOutputService10ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService10ProtocolTest {
  1596  	c := p.ClientConfig("outputservice10protocoltest", cfgs...)
  1597  	return newOutputService10ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1598  }
  1599  
  1600  // newClient creates, initializes and returns a new service client instance.
  1601  func newOutputService10ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService10ProtocolTest {
  1602  	svc := &OutputService10ProtocolTest{
  1603  		Client: client.New(
  1604  			cfg,
  1605  			metadata.ClientInfo{
  1606  				ServiceName:   "OutputService10ProtocolTest",
  1607  				ServiceID:     "OutputService10ProtocolTest",
  1608  				SigningName:   signingName,
  1609  				SigningRegion: signingRegion,
  1610  				PartitionID:   partitionID,
  1611  				Endpoint:      endpoint,
  1612  				APIVersion:    "",
  1613  			},
  1614  			handlers,
  1615  		),
  1616  	}
  1617  
  1618  	// Handlers
  1619  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1620  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1621  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1622  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1623  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1624  
  1625  	return svc
  1626  }
  1627  
  1628  // newRequest creates a new request for a OutputService10ProtocolTest operation and runs any
  1629  // custom request initialization.
  1630  func (c *OutputService10ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1631  	req := c.NewRequest(op, params, data)
  1632  
  1633  	return req
  1634  }
  1635  
  1636  const opOutputService10TestCaseOperation1 = "OperationName"
  1637  
  1638  // OutputService10TestCaseOperation1Request generates a "aws/request.Request" representing the
  1639  // client's request for the OutputService10TestCaseOperation1 operation. The "output" return
  1640  // value will be populated with the request's response once the request completes
  1641  // successfully.
  1642  //
  1643  // Use "Send" method on the returned Request to send the API call to the service.
  1644  // the "output" return value is not valid until after Send returns without error.
  1645  //
  1646  // See OutputService10TestCaseOperation1 for more information on using the OutputService10TestCaseOperation1
  1647  // API call, and error handling.
  1648  //
  1649  // This method is useful when you want to inject custom logic or configuration
  1650  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1651  //
  1652  //
  1653  //    // Example sending a request using the OutputService10TestCaseOperation1Request method.
  1654  //    req, resp := client.OutputService10TestCaseOperation1Request(params)
  1655  //
  1656  //    err := req.Send()
  1657  //    if err == nil { // resp is now filled
  1658  //        fmt.Println(resp)
  1659  //    }
  1660  func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1Request(input *OutputService10TestShapeOutputService10TestCaseOperation1Input) (req *request.Request, output *OutputService10TestShapeOutputService10TestCaseOperation1Output) {
  1661  	op := &request.Operation{
  1662  		Name:     opOutputService10TestCaseOperation1,
  1663  		HTTPPath: "/",
  1664  	}
  1665  
  1666  	if input == nil {
  1667  		input = &OutputService10TestShapeOutputService10TestCaseOperation1Input{}
  1668  	}
  1669  
  1670  	output = &OutputService10TestShapeOutputService10TestCaseOperation1Output{}
  1671  	req = c.newRequest(op, input, output)
  1672  	return
  1673  }
  1674  
  1675  // OutputService10TestCaseOperation1 API operation for .
  1676  //
  1677  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1678  // with awserr.Error's Code and Message methods to get detailed information about
  1679  // the error.
  1680  //
  1681  // See the AWS API reference guide for 's
  1682  // API operation OutputService10TestCaseOperation1 for usage and error information.
  1683  func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1(input *OutputService10TestShapeOutputService10TestCaseOperation1Input) (*OutputService10TestShapeOutputService10TestCaseOperation1Output, error) {
  1684  	req, out := c.OutputService10TestCaseOperation1Request(input)
  1685  	return out, req.Send()
  1686  }
  1687  
  1688  // OutputService10TestCaseOperation1WithContext is the same as OutputService10TestCaseOperation1 with the addition of
  1689  // the ability to pass a context and additional request options.
  1690  //
  1691  // See OutputService10TestCaseOperation1 for details on how to use this API operation.
  1692  //
  1693  // The context must be non-nil and will be used for request cancellation. If
  1694  // the context is nil a panic will occur. In the future the SDK may create
  1695  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1696  // for more information on using Contexts.
  1697  func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1WithContext(ctx aws.Context, input *OutputService10TestShapeOutputService10TestCaseOperation1Input, opts ...request.Option) (*OutputService10TestShapeOutputService10TestCaseOperation1Output, error) {
  1698  	req, out := c.OutputService10TestCaseOperation1Request(input)
  1699  	req.SetContext(ctx)
  1700  	req.ApplyOptions(opts...)
  1701  	return out, req.Send()
  1702  }
  1703  
  1704  type OutputService10TestShapeOutputService10TestCaseOperation1Input struct {
  1705  	_ struct{} `type:"structure" nopayload:"true"`
  1706  }
  1707  
  1708  type OutputService10TestShapeOutputService10TestCaseOperation1Output struct {
  1709  	_ struct{} `type:"structure" nopayload:"true"`
  1710  
  1711  	// By default unmarshaled keys are written as a map keys in following canonicalized format:
  1712  	// the first letter and any letter following a hyphen will be capitalized, and the rest as lowercase.
  1713  	// Set `aws.Config.LowerCaseHeaderMaps` to `true` to write unmarshaled keys to the map as lowercase.
  1714  	AllHeaders map[string]*string `location:"headers" type:"map"`
  1715  
  1716  	// By default unmarshaled keys are written as a map keys in following canonicalized format:
  1717  	// the first letter and any letter following a hyphen will be capitalized, and the rest as lowercase.
  1718  	// Set `aws.Config.LowerCaseHeaderMaps` to `true` to write unmarshaled keys to the map as lowercase.
  1719  	PrefixedHeaders map[string]*string `location:"headers" locationName:"X-" type:"map"`
  1720  }
  1721  
  1722  // SetAllHeaders sets the AllHeaders field's value.
  1723  func (s *OutputService10TestShapeOutputService10TestCaseOperation1Output) SetAllHeaders(v map[string]*string) *OutputService10TestShapeOutputService10TestCaseOperation1Output {
  1724  	s.AllHeaders = v
  1725  	return s
  1726  }
  1727  
  1728  // SetPrefixedHeaders sets the PrefixedHeaders field's value.
  1729  func (s *OutputService10TestShapeOutputService10TestCaseOperation1Output) SetPrefixedHeaders(v map[string]*string) *OutputService10TestShapeOutputService10TestCaseOperation1Output {
  1730  	s.PrefixedHeaders = v
  1731  	return s
  1732  }
  1733  
  1734  // OutputService11ProtocolTest provides the API operation methods for making requests to
  1735  // . See this package's package overview docs
  1736  // for details on the service.
  1737  //
  1738  // OutputService11ProtocolTest methods are safe to use concurrently. It is not safe to
  1739  // modify mutate any of the struct's properties though.
  1740  type OutputService11ProtocolTest struct {
  1741  	*client.Client
  1742  }
  1743  
  1744  // New creates a new instance of the OutputService11ProtocolTest client with a session.
  1745  // If additional configuration is needed for the client instance use the optional
  1746  // aws.Config parameter to add your extra config.
  1747  //
  1748  // Example:
  1749  //     mySession := session.Must(session.NewSession())
  1750  //
  1751  //     // Create a OutputService11ProtocolTest client from just a session.
  1752  //     svc := outputservice11protocoltest.New(mySession)
  1753  //
  1754  //     // Create a OutputService11ProtocolTest client with additional configuration
  1755  //     svc := outputservice11protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1756  func NewOutputService11ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService11ProtocolTest {
  1757  	c := p.ClientConfig("outputservice11protocoltest", cfgs...)
  1758  	return newOutputService11ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1759  }
  1760  
  1761  // newClient creates, initializes and returns a new service client instance.
  1762  func newOutputService11ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService11ProtocolTest {
  1763  	svc := &OutputService11ProtocolTest{
  1764  		Client: client.New(
  1765  			cfg,
  1766  			metadata.ClientInfo{
  1767  				ServiceName:   "OutputService11ProtocolTest",
  1768  				ServiceID:     "OutputService11ProtocolTest",
  1769  				SigningName:   signingName,
  1770  				SigningRegion: signingRegion,
  1771  				PartitionID:   partitionID,
  1772  				Endpoint:      endpoint,
  1773  				APIVersion:    "",
  1774  			},
  1775  			handlers,
  1776  		),
  1777  	}
  1778  
  1779  	// Handlers
  1780  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1781  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1782  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1783  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1784  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1785  
  1786  	return svc
  1787  }
  1788  
  1789  // newRequest creates a new request for a OutputService11ProtocolTest operation and runs any
  1790  // custom request initialization.
  1791  func (c *OutputService11ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1792  	req := c.NewRequest(op, params, data)
  1793  
  1794  	return req
  1795  }
  1796  
  1797  const opOutputService11TestCaseOperation1 = "OperationName"
  1798  
  1799  // OutputService11TestCaseOperation1Request generates a "aws/request.Request" representing the
  1800  // client's request for the OutputService11TestCaseOperation1 operation. The "output" return
  1801  // value will be populated with the request's response once the request completes
  1802  // successfully.
  1803  //
  1804  // Use "Send" method on the returned Request to send the API call to the service.
  1805  // the "output" return value is not valid until after Send returns without error.
  1806  //
  1807  // See OutputService11TestCaseOperation1 for more information on using the OutputService11TestCaseOperation1
  1808  // API call, and error handling.
  1809  //
  1810  // This method is useful when you want to inject custom logic or configuration
  1811  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1812  //
  1813  //
  1814  //    // Example sending a request using the OutputService11TestCaseOperation1Request method.
  1815  //    req, resp := client.OutputService11TestCaseOperation1Request(params)
  1816  //
  1817  //    err := req.Send()
  1818  //    if err == nil { // resp is now filled
  1819  //        fmt.Println(resp)
  1820  //    }
  1821  func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1Request(input *OutputService11TestShapeOutputService11TestCaseOperation1Input) (req *request.Request, output *OutputService11TestShapeOutputService11TestCaseOperation1Output) {
  1822  	op := &request.Operation{
  1823  		Name:     opOutputService11TestCaseOperation1,
  1824  		HTTPPath: "/",
  1825  	}
  1826  
  1827  	if input == nil {
  1828  		input = &OutputService11TestShapeOutputService11TestCaseOperation1Input{}
  1829  	}
  1830  
  1831  	output = &OutputService11TestShapeOutputService11TestCaseOperation1Output{}
  1832  	req = c.newRequest(op, input, output)
  1833  	return
  1834  }
  1835  
  1836  // OutputService11TestCaseOperation1 API operation for .
  1837  //
  1838  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1839  // with awserr.Error's Code and Message methods to get detailed information about
  1840  // the error.
  1841  //
  1842  // See the AWS API reference guide for 's
  1843  // API operation OutputService11TestCaseOperation1 for usage and error information.
  1844  func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1(input *OutputService11TestShapeOutputService11TestCaseOperation1Input) (*OutputService11TestShapeOutputService11TestCaseOperation1Output, error) {
  1845  	req, out := c.OutputService11TestCaseOperation1Request(input)
  1846  	return out, req.Send()
  1847  }
  1848  
  1849  // OutputService11TestCaseOperation1WithContext is the same as OutputService11TestCaseOperation1 with the addition of
  1850  // the ability to pass a context and additional request options.
  1851  //
  1852  // See OutputService11TestCaseOperation1 for details on how to use this API operation.
  1853  //
  1854  // The context must be non-nil and will be used for request cancellation. If
  1855  // the context is nil a panic will occur. In the future the SDK may create
  1856  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1857  // for more information on using Contexts.
  1858  func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1WithContext(ctx aws.Context, input *OutputService11TestShapeOutputService11TestCaseOperation1Input, opts ...request.Option) (*OutputService11TestShapeOutputService11TestCaseOperation1Output, error) {
  1859  	req, out := c.OutputService11TestCaseOperation1Request(input)
  1860  	req.SetContext(ctx)
  1861  	req.ApplyOptions(opts...)
  1862  	return out, req.Send()
  1863  }
  1864  
  1865  type OutputService11TestShapeBodyStructure struct {
  1866  	_ struct{} `type:"structure"`
  1867  
  1868  	Foo *string `type:"string"`
  1869  }
  1870  
  1871  // SetFoo sets the Foo field's value.
  1872  func (s *OutputService11TestShapeBodyStructure) SetFoo(v string) *OutputService11TestShapeBodyStructure {
  1873  	s.Foo = &v
  1874  	return s
  1875  }
  1876  
  1877  type OutputService11TestShapeOutputService11TestCaseOperation1Input struct {
  1878  	_ struct{} `type:"structure" nopayload:"true"`
  1879  }
  1880  
  1881  type OutputService11TestShapeOutputService11TestCaseOperation1Output struct {
  1882  	_ struct{} `type:"structure" payload:"Data"`
  1883  
  1884  	Data *OutputService11TestShapeBodyStructure `type:"structure"`
  1885  
  1886  	Header *string `location:"header" locationName:"X-Foo" type:"string"`
  1887  }
  1888  
  1889  // SetData sets the Data field's value.
  1890  func (s *OutputService11TestShapeOutputService11TestCaseOperation1Output) SetData(v *OutputService11TestShapeBodyStructure) *OutputService11TestShapeOutputService11TestCaseOperation1Output {
  1891  	s.Data = v
  1892  	return s
  1893  }
  1894  
  1895  // SetHeader sets the Header field's value.
  1896  func (s *OutputService11TestShapeOutputService11TestCaseOperation1Output) SetHeader(v string) *OutputService11TestShapeOutputService11TestCaseOperation1Output {
  1897  	s.Header = &v
  1898  	return s
  1899  }
  1900  
  1901  // OutputService12ProtocolTest provides the API operation methods for making requests to
  1902  // . See this package's package overview docs
  1903  // for details on the service.
  1904  //
  1905  // OutputService12ProtocolTest methods are safe to use concurrently. It is not safe to
  1906  // modify mutate any of the struct's properties though.
  1907  type OutputService12ProtocolTest struct {
  1908  	*client.Client
  1909  }
  1910  
  1911  // New creates a new instance of the OutputService12ProtocolTest client with a session.
  1912  // If additional configuration is needed for the client instance use the optional
  1913  // aws.Config parameter to add your extra config.
  1914  //
  1915  // Example:
  1916  //     mySession := session.Must(session.NewSession())
  1917  //
  1918  //     // Create a OutputService12ProtocolTest client from just a session.
  1919  //     svc := outputservice12protocoltest.New(mySession)
  1920  //
  1921  //     // Create a OutputService12ProtocolTest client with additional configuration
  1922  //     svc := outputservice12protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1923  func NewOutputService12ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService12ProtocolTest {
  1924  	c := p.ClientConfig("outputservice12protocoltest", cfgs...)
  1925  	return newOutputService12ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1926  }
  1927  
  1928  // newClient creates, initializes and returns a new service client instance.
  1929  func newOutputService12ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService12ProtocolTest {
  1930  	svc := &OutputService12ProtocolTest{
  1931  		Client: client.New(
  1932  			cfg,
  1933  			metadata.ClientInfo{
  1934  				ServiceName:   "OutputService12ProtocolTest",
  1935  				ServiceID:     "OutputService12ProtocolTest",
  1936  				SigningName:   signingName,
  1937  				SigningRegion: signingRegion,
  1938  				PartitionID:   partitionID,
  1939  				Endpoint:      endpoint,
  1940  				APIVersion:    "",
  1941  			},
  1942  			handlers,
  1943  		),
  1944  	}
  1945  
  1946  	// Handlers
  1947  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1948  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1949  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1950  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1951  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1952  
  1953  	return svc
  1954  }
  1955  
  1956  // newRequest creates a new request for a OutputService12ProtocolTest operation and runs any
  1957  // custom request initialization.
  1958  func (c *OutputService12ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1959  	req := c.NewRequest(op, params, data)
  1960  
  1961  	return req
  1962  }
  1963  
  1964  const opOutputService12TestCaseOperation1 = "OperationName"
  1965  
  1966  // OutputService12TestCaseOperation1Request generates a "aws/request.Request" representing the
  1967  // client's request for the OutputService12TestCaseOperation1 operation. The "output" return
  1968  // value will be populated with the request's response once the request completes
  1969  // successfully.
  1970  //
  1971  // Use "Send" method on the returned Request to send the API call to the service.
  1972  // the "output" return value is not valid until after Send returns without error.
  1973  //
  1974  // See OutputService12TestCaseOperation1 for more information on using the OutputService12TestCaseOperation1
  1975  // API call, and error handling.
  1976  //
  1977  // This method is useful when you want to inject custom logic or configuration
  1978  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1979  //
  1980  //
  1981  //    // Example sending a request using the OutputService12TestCaseOperation1Request method.
  1982  //    req, resp := client.OutputService12TestCaseOperation1Request(params)
  1983  //
  1984  //    err := req.Send()
  1985  //    if err == nil { // resp is now filled
  1986  //        fmt.Println(resp)
  1987  //    }
  1988  func (c *OutputService12ProtocolTest) OutputService12TestCaseOperation1Request(input *OutputService12TestShapeOutputService12TestCaseOperation1Input) (req *request.Request, output *OutputService12TestShapeOutputService12TestCaseOperation1Output) {
  1989  	op := &request.Operation{
  1990  		Name:     opOutputService12TestCaseOperation1,
  1991  		HTTPPath: "/",
  1992  	}
  1993  
  1994  	if input == nil {
  1995  		input = &OutputService12TestShapeOutputService12TestCaseOperation1Input{}
  1996  	}
  1997  
  1998  	output = &OutputService12TestShapeOutputService12TestCaseOperation1Output{}
  1999  	req = c.newRequest(op, input, output)
  2000  	return
  2001  }
  2002  
  2003  // OutputService12TestCaseOperation1 API operation for .
  2004  //
  2005  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2006  // with awserr.Error's Code and Message methods to get detailed information about
  2007  // the error.
  2008  //
  2009  // See the AWS API reference guide for 's
  2010  // API operation OutputService12TestCaseOperation1 for usage and error information.
  2011  func (c *OutputService12ProtocolTest) OutputService12TestCaseOperation1(input *OutputService12TestShapeOutputService12TestCaseOperation1Input) (*OutputService12TestShapeOutputService12TestCaseOperation1Output, error) {
  2012  	req, out := c.OutputService12TestCaseOperation1Request(input)
  2013  	return out, req.Send()
  2014  }
  2015  
  2016  // OutputService12TestCaseOperation1WithContext is the same as OutputService12TestCaseOperation1 with the addition of
  2017  // the ability to pass a context and additional request options.
  2018  //
  2019  // See OutputService12TestCaseOperation1 for details on how to use this API operation.
  2020  //
  2021  // The context must be non-nil and will be used for request cancellation. If
  2022  // the context is nil a panic will occur. In the future the SDK may create
  2023  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2024  // for more information on using Contexts.
  2025  func (c *OutputService12ProtocolTest) OutputService12TestCaseOperation1WithContext(ctx aws.Context, input *OutputService12TestShapeOutputService12TestCaseOperation1Input, opts ...request.Option) (*OutputService12TestShapeOutputService12TestCaseOperation1Output, error) {
  2026  	req, out := c.OutputService12TestCaseOperation1Request(input)
  2027  	req.SetContext(ctx)
  2028  	req.ApplyOptions(opts...)
  2029  	return out, req.Send()
  2030  }
  2031  
  2032  type OutputService12TestShapeOutputService12TestCaseOperation1Input struct {
  2033  	_ struct{} `type:"structure" nopayload:"true"`
  2034  }
  2035  
  2036  type OutputService12TestShapeOutputService12TestCaseOperation1Output struct {
  2037  	_ struct{} `type:"structure" payload:"Stream"`
  2038  
  2039  	Stream []byte `type:"blob"`
  2040  }
  2041  
  2042  // SetStream sets the Stream field's value.
  2043  func (s *OutputService12TestShapeOutputService12TestCaseOperation1Output) SetStream(v []byte) *OutputService12TestShapeOutputService12TestCaseOperation1Output {
  2044  	s.Stream = v
  2045  	return s
  2046  }
  2047  
  2048  // OutputService13ProtocolTest provides the API operation methods for making requests to
  2049  // . See this package's package overview docs
  2050  // for details on the service.
  2051  //
  2052  // OutputService13ProtocolTest methods are safe to use concurrently. It is not safe to
  2053  // modify mutate any of the struct's properties though.
  2054  type OutputService13ProtocolTest struct {
  2055  	*client.Client
  2056  }
  2057  
  2058  // New creates a new instance of the OutputService13ProtocolTest client with a session.
  2059  // If additional configuration is needed for the client instance use the optional
  2060  // aws.Config parameter to add your extra config.
  2061  //
  2062  // Example:
  2063  //     mySession := session.Must(session.NewSession())
  2064  //
  2065  //     // Create a OutputService13ProtocolTest client from just a session.
  2066  //     svc := outputservice13protocoltest.New(mySession)
  2067  //
  2068  //     // Create a OutputService13ProtocolTest client with additional configuration
  2069  //     svc := outputservice13protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2070  func NewOutputService13ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService13ProtocolTest {
  2071  	c := p.ClientConfig("outputservice13protocoltest", cfgs...)
  2072  	return newOutputService13ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2073  }
  2074  
  2075  // newClient creates, initializes and returns a new service client instance.
  2076  func newOutputService13ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService13ProtocolTest {
  2077  	svc := &OutputService13ProtocolTest{
  2078  		Client: client.New(
  2079  			cfg,
  2080  			metadata.ClientInfo{
  2081  				ServiceName:   "OutputService13ProtocolTest",
  2082  				ServiceID:     "OutputService13ProtocolTest",
  2083  				SigningName:   signingName,
  2084  				SigningRegion: signingRegion,
  2085  				PartitionID:   partitionID,
  2086  				Endpoint:      endpoint,
  2087  				APIVersion:    "",
  2088  			},
  2089  			handlers,
  2090  		),
  2091  	}
  2092  
  2093  	// Handlers
  2094  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2095  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2096  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2097  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2098  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2099  
  2100  	return svc
  2101  }
  2102  
  2103  // newRequest creates a new request for a OutputService13ProtocolTest operation and runs any
  2104  // custom request initialization.
  2105  func (c *OutputService13ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2106  	req := c.NewRequest(op, params, data)
  2107  
  2108  	return req
  2109  }
  2110  
  2111  const opOutputService13TestCaseOperation1 = "OperationName"
  2112  
  2113  // OutputService13TestCaseOperation1Request generates a "aws/request.Request" representing the
  2114  // client's request for the OutputService13TestCaseOperation1 operation. The "output" return
  2115  // value will be populated with the request's response once the request completes
  2116  // successfully.
  2117  //
  2118  // Use "Send" method on the returned Request to send the API call to the service.
  2119  // the "output" return value is not valid until after Send returns without error.
  2120  //
  2121  // See OutputService13TestCaseOperation1 for more information on using the OutputService13TestCaseOperation1
  2122  // API call, and error handling.
  2123  //
  2124  // This method is useful when you want to inject custom logic or configuration
  2125  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2126  //
  2127  //
  2128  //    // Example sending a request using the OutputService13TestCaseOperation1Request method.
  2129  //    req, resp := client.OutputService13TestCaseOperation1Request(params)
  2130  //
  2131  //    err := req.Send()
  2132  //    if err == nil { // resp is now filled
  2133  //        fmt.Println(resp)
  2134  //    }
  2135  func (c *OutputService13ProtocolTest) OutputService13TestCaseOperation1Request(input *OutputService13TestShapeOutputService13TestCaseOperation1Input) (req *request.Request, output *OutputService13TestShapeOutputService13TestCaseOperation1Output) {
  2136  	op := &request.Operation{
  2137  		Name:     opOutputService13TestCaseOperation1,
  2138  		HTTPPath: "/",
  2139  	}
  2140  
  2141  	if input == nil {
  2142  		input = &OutputService13TestShapeOutputService13TestCaseOperation1Input{}
  2143  	}
  2144  
  2145  	output = &OutputService13TestShapeOutputService13TestCaseOperation1Output{}
  2146  	req = c.newRequest(op, input, output)
  2147  	return
  2148  }
  2149  
  2150  // OutputService13TestCaseOperation1 API operation for .
  2151  //
  2152  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2153  // with awserr.Error's Code and Message methods to get detailed information about
  2154  // the error.
  2155  //
  2156  // See the AWS API reference guide for 's
  2157  // API operation OutputService13TestCaseOperation1 for usage and error information.
  2158  func (c *OutputService13ProtocolTest) OutputService13TestCaseOperation1(input *OutputService13TestShapeOutputService13TestCaseOperation1Input) (*OutputService13TestShapeOutputService13TestCaseOperation1Output, error) {
  2159  	req, out := c.OutputService13TestCaseOperation1Request(input)
  2160  	return out, req.Send()
  2161  }
  2162  
  2163  // OutputService13TestCaseOperation1WithContext is the same as OutputService13TestCaseOperation1 with the addition of
  2164  // the ability to pass a context and additional request options.
  2165  //
  2166  // See OutputService13TestCaseOperation1 for details on how to use this API operation.
  2167  //
  2168  // The context must be non-nil and will be used for request cancellation. If
  2169  // the context is nil a panic will occur. In the future the SDK may create
  2170  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2171  // for more information on using Contexts.
  2172  func (c *OutputService13ProtocolTest) OutputService13TestCaseOperation1WithContext(ctx aws.Context, input *OutputService13TestShapeOutputService13TestCaseOperation1Input, opts ...request.Option) (*OutputService13TestShapeOutputService13TestCaseOperation1Output, error) {
  2173  	req, out := c.OutputService13TestCaseOperation1Request(input)
  2174  	req.SetContext(ctx)
  2175  	req.ApplyOptions(opts...)
  2176  	return out, req.Send()
  2177  }
  2178  
  2179  const opOutputService13TestCaseOperation2 = "OperationName"
  2180  
  2181  // OutputService13TestCaseOperation2Request generates a "aws/request.Request" representing the
  2182  // client's request for the OutputService13TestCaseOperation2 operation. The "output" return
  2183  // value will be populated with the request's response once the request completes
  2184  // successfully.
  2185  //
  2186  // Use "Send" method on the returned Request to send the API call to the service.
  2187  // the "output" return value is not valid until after Send returns without error.
  2188  //
  2189  // See OutputService13TestCaseOperation2 for more information on using the OutputService13TestCaseOperation2
  2190  // API call, and error handling.
  2191  //
  2192  // This method is useful when you want to inject custom logic or configuration
  2193  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2194  //
  2195  //
  2196  //    // Example sending a request using the OutputService13TestCaseOperation2Request method.
  2197  //    req, resp := client.OutputService13TestCaseOperation2Request(params)
  2198  //
  2199  //    err := req.Send()
  2200  //    if err == nil { // resp is now filled
  2201  //        fmt.Println(resp)
  2202  //    }
  2203  func (c *OutputService13ProtocolTest) OutputService13TestCaseOperation2Request(input *OutputService13TestShapeOutputService13TestCaseOperation2Input) (req *request.Request, output *OutputService13TestShapeOutputService13TestCaseOperation2Output) {
  2204  	op := &request.Operation{
  2205  		Name:     opOutputService13TestCaseOperation2,
  2206  		HTTPPath: "/",
  2207  	}
  2208  
  2209  	if input == nil {
  2210  		input = &OutputService13TestShapeOutputService13TestCaseOperation2Input{}
  2211  	}
  2212  
  2213  	output = &OutputService13TestShapeOutputService13TestCaseOperation2Output{}
  2214  	req = c.newRequest(op, input, output)
  2215  	return
  2216  }
  2217  
  2218  // OutputService13TestCaseOperation2 API operation for .
  2219  //
  2220  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2221  // with awserr.Error's Code and Message methods to get detailed information about
  2222  // the error.
  2223  //
  2224  // See the AWS API reference guide for 's
  2225  // API operation OutputService13TestCaseOperation2 for usage and error information.
  2226  func (c *OutputService13ProtocolTest) OutputService13TestCaseOperation2(input *OutputService13TestShapeOutputService13TestCaseOperation2Input) (*OutputService13TestShapeOutputService13TestCaseOperation2Output, error) {
  2227  	req, out := c.OutputService13TestCaseOperation2Request(input)
  2228  	return out, req.Send()
  2229  }
  2230  
  2231  // OutputService13TestCaseOperation2WithContext is the same as OutputService13TestCaseOperation2 with the addition of
  2232  // the ability to pass a context and additional request options.
  2233  //
  2234  // See OutputService13TestCaseOperation2 for details on how to use this API operation.
  2235  //
  2236  // The context must be non-nil and will be used for request cancellation. If
  2237  // the context is nil a panic will occur. In the future the SDK may create
  2238  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2239  // for more information on using Contexts.
  2240  func (c *OutputService13ProtocolTest) OutputService13TestCaseOperation2WithContext(ctx aws.Context, input *OutputService13TestShapeOutputService13TestCaseOperation2Input, opts ...request.Option) (*OutputService13TestShapeOutputService13TestCaseOperation2Output, error) {
  2241  	req, out := c.OutputService13TestCaseOperation2Request(input)
  2242  	req.SetContext(ctx)
  2243  	req.ApplyOptions(opts...)
  2244  	return out, req.Send()
  2245  }
  2246  
  2247  type OutputService13TestShapeOutputService13TestCaseOperation1Input struct {
  2248  	_ struct{} `type:"structure" nopayload:"true"`
  2249  }
  2250  
  2251  type OutputService13TestShapeOutputService13TestCaseOperation1Output struct {
  2252  	_ struct{} `type:"structure"`
  2253  
  2254  	BodyField aws.JSONValue `type:"jsonvalue"`
  2255  
  2256  	BodyListField []aws.JSONValue `type:"list"`
  2257  
  2258  	HeaderField aws.JSONValue `location:"header" locationName:"X-Amz-Foo" type:"jsonvalue"`
  2259  }
  2260  
  2261  // SetBodyField sets the BodyField field's value.
  2262  func (s *OutputService13TestShapeOutputService13TestCaseOperation1Output) SetBodyField(v aws.JSONValue) *OutputService13TestShapeOutputService13TestCaseOperation1Output {
  2263  	s.BodyField = v
  2264  	return s
  2265  }
  2266  
  2267  // SetBodyListField sets the BodyListField field's value.
  2268  func (s *OutputService13TestShapeOutputService13TestCaseOperation1Output) SetBodyListField(v []aws.JSONValue) *OutputService13TestShapeOutputService13TestCaseOperation1Output {
  2269  	s.BodyListField = v
  2270  	return s
  2271  }
  2272  
  2273  // SetHeaderField sets the HeaderField field's value.
  2274  func (s *OutputService13TestShapeOutputService13TestCaseOperation1Output) SetHeaderField(v aws.JSONValue) *OutputService13TestShapeOutputService13TestCaseOperation1Output {
  2275  	s.HeaderField = v
  2276  	return s
  2277  }
  2278  
  2279  type OutputService13TestShapeOutputService13TestCaseOperation2Input struct {
  2280  	_ struct{} `type:"structure" nopayload:"true"`
  2281  }
  2282  
  2283  type OutputService13TestShapeOutputService13TestCaseOperation2Output struct {
  2284  	_ struct{} `type:"structure"`
  2285  
  2286  	BodyField aws.JSONValue `type:"jsonvalue"`
  2287  
  2288  	BodyListField []aws.JSONValue `type:"list"`
  2289  
  2290  	HeaderField aws.JSONValue `location:"header" locationName:"X-Amz-Foo" type:"jsonvalue"`
  2291  }
  2292  
  2293  // SetBodyField sets the BodyField field's value.
  2294  func (s *OutputService13TestShapeOutputService13TestCaseOperation2Output) SetBodyField(v aws.JSONValue) *OutputService13TestShapeOutputService13TestCaseOperation2Output {
  2295  	s.BodyField = v
  2296  	return s
  2297  }
  2298  
  2299  // SetBodyListField sets the BodyListField field's value.
  2300  func (s *OutputService13TestShapeOutputService13TestCaseOperation2Output) SetBodyListField(v []aws.JSONValue) *OutputService13TestShapeOutputService13TestCaseOperation2Output {
  2301  	s.BodyListField = v
  2302  	return s
  2303  }
  2304  
  2305  // SetHeaderField sets the HeaderField field's value.
  2306  func (s *OutputService13TestShapeOutputService13TestCaseOperation2Output) SetHeaderField(v aws.JSONValue) *OutputService13TestShapeOutputService13TestCaseOperation2Output {
  2307  	s.HeaderField = v
  2308  	return s
  2309  }
  2310  
  2311  // OutputService14ProtocolTest provides the API operation methods for making requests to
  2312  // . See this package's package overview docs
  2313  // for details on the service.
  2314  //
  2315  // OutputService14ProtocolTest methods are safe to use concurrently. It is not safe to
  2316  // modify mutate any of the struct's properties though.
  2317  type OutputService14ProtocolTest struct {
  2318  	*client.Client
  2319  }
  2320  
  2321  // New creates a new instance of the OutputService14ProtocolTest client with a session.
  2322  // If additional configuration is needed for the client instance use the optional
  2323  // aws.Config parameter to add your extra config.
  2324  //
  2325  // Example:
  2326  //     mySession := session.Must(session.NewSession())
  2327  //
  2328  //     // Create a OutputService14ProtocolTest client from just a session.
  2329  //     svc := outputservice14protocoltest.New(mySession)
  2330  //
  2331  //     // Create a OutputService14ProtocolTest client with additional configuration
  2332  //     svc := outputservice14protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2333  func NewOutputService14ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService14ProtocolTest {
  2334  	c := p.ClientConfig("outputservice14protocoltest", cfgs...)
  2335  	return newOutputService14ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2336  }
  2337  
  2338  // newClient creates, initializes and returns a new service client instance.
  2339  func newOutputService14ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService14ProtocolTest {
  2340  	svc := &OutputService14ProtocolTest{
  2341  		Client: client.New(
  2342  			cfg,
  2343  			metadata.ClientInfo{
  2344  				ServiceName:   "OutputService14ProtocolTest",
  2345  				ServiceID:     "OutputService14ProtocolTest",
  2346  				SigningName:   signingName,
  2347  				SigningRegion: signingRegion,
  2348  				PartitionID:   partitionID,
  2349  				Endpoint:      endpoint,
  2350  				APIVersion:    "2014-01-01",
  2351  			},
  2352  			handlers,
  2353  		),
  2354  	}
  2355  
  2356  	// Handlers
  2357  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2358  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2359  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2360  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2361  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2362  
  2363  	return svc
  2364  }
  2365  
  2366  // newRequest creates a new request for a OutputService14ProtocolTest operation and runs any
  2367  // custom request initialization.
  2368  func (c *OutputService14ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2369  	req := c.NewRequest(op, params, data)
  2370  
  2371  	return req
  2372  }
  2373  
  2374  const opOutputService14TestCaseOperation1 = "OperationName"
  2375  
  2376  // OutputService14TestCaseOperation1Request generates a "aws/request.Request" representing the
  2377  // client's request for the OutputService14TestCaseOperation1 operation. The "output" return
  2378  // value will be populated with the request's response once the request completes
  2379  // successfully.
  2380  //
  2381  // Use "Send" method on the returned Request to send the API call to the service.
  2382  // the "output" return value is not valid until after Send returns without error.
  2383  //
  2384  // See OutputService14TestCaseOperation1 for more information on using the OutputService14TestCaseOperation1
  2385  // API call, and error handling.
  2386  //
  2387  // This method is useful when you want to inject custom logic or configuration
  2388  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2389  //
  2390  //
  2391  //    // Example sending a request using the OutputService14TestCaseOperation1Request method.
  2392  //    req, resp := client.OutputService14TestCaseOperation1Request(params)
  2393  //
  2394  //    err := req.Send()
  2395  //    if err == nil { // resp is now filled
  2396  //        fmt.Println(resp)
  2397  //    }
  2398  func (c *OutputService14ProtocolTest) OutputService14TestCaseOperation1Request(input *OutputService14TestShapeOutputService14TestCaseOperation1Input) (req *request.Request, output *OutputService14TestShapeOutputService14TestCaseOperation1Output) {
  2399  	op := &request.Operation{
  2400  		Name:       opOutputService14TestCaseOperation1,
  2401  		HTTPMethod: "POST",
  2402  		HTTPPath:   "/path",
  2403  	}
  2404  
  2405  	if input == nil {
  2406  		input = &OutputService14TestShapeOutputService14TestCaseOperation1Input{}
  2407  	}
  2408  
  2409  	output = &OutputService14TestShapeOutputService14TestCaseOperation1Output{}
  2410  	req = c.newRequest(op, input, output)
  2411  	return
  2412  }
  2413  
  2414  // OutputService14TestCaseOperation1 API operation for .
  2415  //
  2416  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2417  // with awserr.Error's Code and Message methods to get detailed information about
  2418  // the error.
  2419  //
  2420  // See the AWS API reference guide for 's
  2421  // API operation OutputService14TestCaseOperation1 for usage and error information.
  2422  func (c *OutputService14ProtocolTest) OutputService14TestCaseOperation1(input *OutputService14TestShapeOutputService14TestCaseOperation1Input) (*OutputService14TestShapeOutputService14TestCaseOperation1Output, error) {
  2423  	req, out := c.OutputService14TestCaseOperation1Request(input)
  2424  	return out, req.Send()
  2425  }
  2426  
  2427  // OutputService14TestCaseOperation1WithContext is the same as OutputService14TestCaseOperation1 with the addition of
  2428  // the ability to pass a context and additional request options.
  2429  //
  2430  // See OutputService14TestCaseOperation1 for details on how to use this API operation.
  2431  //
  2432  // The context must be non-nil and will be used for request cancellation. If
  2433  // the context is nil a panic will occur. In the future the SDK may create
  2434  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2435  // for more information on using Contexts.
  2436  func (c *OutputService14ProtocolTest) OutputService14TestCaseOperation1WithContext(ctx aws.Context, input *OutputService14TestShapeOutputService14TestCaseOperation1Input, opts ...request.Option) (*OutputService14TestShapeOutputService14TestCaseOperation1Output, error) {
  2437  	req, out := c.OutputService14TestCaseOperation1Request(input)
  2438  	req.SetContext(ctx)
  2439  	req.ApplyOptions(opts...)
  2440  	return out, req.Send()
  2441  }
  2442  
  2443  const opOutputService14TestCaseOperation2 = "OperationName"
  2444  
  2445  // OutputService14TestCaseOperation2Request generates a "aws/request.Request" representing the
  2446  // client's request for the OutputService14TestCaseOperation2 operation. The "output" return
  2447  // value will be populated with the request's response once the request completes
  2448  // successfully.
  2449  //
  2450  // Use "Send" method on the returned Request to send the API call to the service.
  2451  // the "output" return value is not valid until after Send returns without error.
  2452  //
  2453  // See OutputService14TestCaseOperation2 for more information on using the OutputService14TestCaseOperation2
  2454  // API call, and error handling.
  2455  //
  2456  // This method is useful when you want to inject custom logic or configuration
  2457  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2458  //
  2459  //
  2460  //    // Example sending a request using the OutputService14TestCaseOperation2Request method.
  2461  //    req, resp := client.OutputService14TestCaseOperation2Request(params)
  2462  //
  2463  //    err := req.Send()
  2464  //    if err == nil { // resp is now filled
  2465  //        fmt.Println(resp)
  2466  //    }
  2467  func (c *OutputService14ProtocolTest) OutputService14TestCaseOperation2Request(input *OutputService14TestShapeOutputService14TestCaseOperation2Input) (req *request.Request, output *OutputService14TestShapeOutputService14TestCaseOperation2Output) {
  2468  	op := &request.Operation{
  2469  		Name:       opOutputService14TestCaseOperation2,
  2470  		HTTPMethod: "POST",
  2471  		HTTPPath:   "/path",
  2472  	}
  2473  
  2474  	if input == nil {
  2475  		input = &OutputService14TestShapeOutputService14TestCaseOperation2Input{}
  2476  	}
  2477  
  2478  	output = &OutputService14TestShapeOutputService14TestCaseOperation2Output{}
  2479  	req = c.newRequest(op, input, output)
  2480  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2481  	return
  2482  }
  2483  
  2484  // OutputService14TestCaseOperation2 API operation for .
  2485  //
  2486  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2487  // with awserr.Error's Code and Message methods to get detailed information about
  2488  // the error.
  2489  //
  2490  // See the AWS API reference guide for 's
  2491  // API operation OutputService14TestCaseOperation2 for usage and error information.
  2492  func (c *OutputService14ProtocolTest) OutputService14TestCaseOperation2(input *OutputService14TestShapeOutputService14TestCaseOperation2Input) (*OutputService14TestShapeOutputService14TestCaseOperation2Output, error) {
  2493  	req, out := c.OutputService14TestCaseOperation2Request(input)
  2494  	return out, req.Send()
  2495  }
  2496  
  2497  // OutputService14TestCaseOperation2WithContext is the same as OutputService14TestCaseOperation2 with the addition of
  2498  // the ability to pass a context and additional request options.
  2499  //
  2500  // See OutputService14TestCaseOperation2 for details on how to use this API operation.
  2501  //
  2502  // The context must be non-nil and will be used for request cancellation. If
  2503  // the context is nil a panic will occur. In the future the SDK may create
  2504  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2505  // for more information on using Contexts.
  2506  func (c *OutputService14ProtocolTest) OutputService14TestCaseOperation2WithContext(ctx aws.Context, input *OutputService14TestShapeOutputService14TestCaseOperation2Input, opts ...request.Option) (*OutputService14TestShapeOutputService14TestCaseOperation2Output, error) {
  2507  	req, out := c.OutputService14TestCaseOperation2Request(input)
  2508  	req.SetContext(ctx)
  2509  	req.ApplyOptions(opts...)
  2510  	return out, req.Send()
  2511  }
  2512  
  2513  type OutputService14TestShapeOutputService14TestCaseOperation1Input struct {
  2514  	_ struct{} `type:"structure" nopayload:"true"`
  2515  }
  2516  
  2517  type OutputService14TestShapeOutputService14TestCaseOperation1Output struct {
  2518  	_ struct{} `type:"structure"`
  2519  
  2520  	FooEnum *string `type:"string" enum:"OutputService14TestShapeRESTJSONEnumType"`
  2521  
  2522  	HeaderEnum *string `location:"header" locationName:"x-amz-enum" type:"string" enum:"OutputService14TestShapeRESTJSONEnumType"`
  2523  
  2524  	ListEnums []*string `type:"list"`
  2525  }
  2526  
  2527  // SetFooEnum sets the FooEnum field's value.
  2528  func (s *OutputService14TestShapeOutputService14TestCaseOperation1Output) SetFooEnum(v string) *OutputService14TestShapeOutputService14TestCaseOperation1Output {
  2529  	s.FooEnum = &v
  2530  	return s
  2531  }
  2532  
  2533  // SetHeaderEnum sets the HeaderEnum field's value.
  2534  func (s *OutputService14TestShapeOutputService14TestCaseOperation1Output) SetHeaderEnum(v string) *OutputService14TestShapeOutputService14TestCaseOperation1Output {
  2535  	s.HeaderEnum = &v
  2536  	return s
  2537  }
  2538  
  2539  // SetListEnums sets the ListEnums field's value.
  2540  func (s *OutputService14TestShapeOutputService14TestCaseOperation1Output) SetListEnums(v []*string) *OutputService14TestShapeOutputService14TestCaseOperation1Output {
  2541  	s.ListEnums = v
  2542  	return s
  2543  }
  2544  
  2545  type OutputService14TestShapeOutputService14TestCaseOperation2Input struct {
  2546  	_ struct{} `type:"structure"`
  2547  
  2548  	FooEnum *string `type:"string" enum:"OutputService14TestShapeRESTJSONEnumType"`
  2549  
  2550  	HeaderEnum *string `location:"header" locationName:"x-amz-enum" type:"string" enum:"OutputService14TestShapeRESTJSONEnumType"`
  2551  
  2552  	ListEnums []*string `type:"list"`
  2553  }
  2554  
  2555  // SetFooEnum sets the FooEnum field's value.
  2556  func (s *OutputService14TestShapeOutputService14TestCaseOperation2Input) SetFooEnum(v string) *OutputService14TestShapeOutputService14TestCaseOperation2Input {
  2557  	s.FooEnum = &v
  2558  	return s
  2559  }
  2560  
  2561  // SetHeaderEnum sets the HeaderEnum field's value.
  2562  func (s *OutputService14TestShapeOutputService14TestCaseOperation2Input) SetHeaderEnum(v string) *OutputService14TestShapeOutputService14TestCaseOperation2Input {
  2563  	s.HeaderEnum = &v
  2564  	return s
  2565  }
  2566  
  2567  // SetListEnums sets the ListEnums field's value.
  2568  func (s *OutputService14TestShapeOutputService14TestCaseOperation2Input) SetListEnums(v []*string) *OutputService14TestShapeOutputService14TestCaseOperation2Input {
  2569  	s.ListEnums = v
  2570  	return s
  2571  }
  2572  
  2573  type OutputService14TestShapeOutputService14TestCaseOperation2Output struct {
  2574  	_ struct{} `type:"structure" nopayload:"true"`
  2575  }
  2576  
  2577  const (
  2578  	// RESTJSONEnumTypeFoo is a OutputService14TestShapeRESTJSONEnumType enum value
  2579  	RESTJSONEnumTypeFoo = "foo"
  2580  
  2581  	// RESTJSONEnumTypeBar is a OutputService14TestShapeRESTJSONEnumType enum value
  2582  	RESTJSONEnumTypeBar = "bar"
  2583  
  2584  	// RESTJSONEnumType0 is a OutputService14TestShapeRESTJSONEnumType enum value
  2585  	RESTJSONEnumType0 = "0"
  2586  
  2587  	// RESTJSONEnumType1 is a OutputService14TestShapeRESTJSONEnumType enum value
  2588  	RESTJSONEnumType1 = "1"
  2589  )
  2590  
  2591  // OutputService14TestShapeRESTJSONEnumType_Values returns all elements of the OutputService14TestShapeRESTJSONEnumType enum
  2592  func OutputService14TestShapeRESTJSONEnumType_Values() []string {
  2593  	return []string{
  2594  		RESTJSONEnumTypeFoo,
  2595  		RESTJSONEnumTypeBar,
  2596  		RESTJSONEnumType0,
  2597  		RESTJSONEnumType1,
  2598  	}
  2599  }
  2600  
  2601  //
  2602  // Tests begin here
  2603  //
  2604  
  2605  func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) {
  2606  	svc := NewOutputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2607  
  2608  	buf := bytes.NewReader([]byte("{\"Str\": \"myname\", \"Num\": 123, \"FalseBool\": false, \"TrueBool\": true, \"Float\": 1.2, \"Double\": 1.3, \"Long\": 200, \"Char\": \"a\", \"Timestamp\": \"2015-01-25T08:00:00Z\", \"Blob\": \"aGVsbG8=\"}"))
  2609  	req, out := svc.OutputService1TestCaseOperation1Request(nil)
  2610  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2611  
  2612  	// set headers
  2613  	req.HTTPResponse.Header.Set("BlobHeader", "aGVsbG8=")
  2614  	req.HTTPResponse.Header.Set("ImaHeader", "test")
  2615  	req.HTTPResponse.Header.Set("X-Foo", "abc")
  2616  
  2617  	// unmarshal response
  2618  	req.Handlers.UnmarshalMeta.Run(req)
  2619  	req.Handlers.Unmarshal.Run(req)
  2620  	if req.Error != nil {
  2621  		t.Errorf("expect not error, got %v", req.Error)
  2622  	}
  2623  
  2624  	// assert response
  2625  	if out == nil {
  2626  		t.Errorf("expect not to be nil")
  2627  	}
  2628  	if e, a := "hello", string(out.Blob); e != a {
  2629  		t.Errorf("expect %v, got %v", e, a)
  2630  	}
  2631  	if e, a := "hello", string(out.BlobHeader); e != a {
  2632  		t.Errorf("expect %v, got %v", e, a)
  2633  	}
  2634  	if e, a := "a", *out.Char; e != a {
  2635  		t.Errorf("expect %v, got %v", e, a)
  2636  	}
  2637  	if e, a := 1.3, *out.Double; e != a {
  2638  		t.Errorf("expect %v, got %v", e, a)
  2639  	}
  2640  	if e, a := false, *out.FalseBool; e != a {
  2641  		t.Errorf("expect %v, got %v", e, a)
  2642  	}
  2643  	if e, a := 1.2, *out.Float; e != a {
  2644  		t.Errorf("expect %v, got %v", e, a)
  2645  	}
  2646  	if e, a := "test", *out.ImaHeader; e != a {
  2647  		t.Errorf("expect %v, got %v", e, a)
  2648  	}
  2649  	if e, a := "abc", *out.ImaHeaderLocation; e != a {
  2650  		t.Errorf("expect %v, got %v", e, a)
  2651  	}
  2652  	if e, a := int64(200), *out.Long; e != a {
  2653  		t.Errorf("expect %v, got %v", e, a)
  2654  	}
  2655  	if e, a := int64(123), *out.Num; e != a {
  2656  		t.Errorf("expect %v, got %v", e, a)
  2657  	}
  2658  	if e, a := int64(200), *out.Status; e != a {
  2659  		t.Errorf("expect %v, got %v", e, a)
  2660  	}
  2661  	if e, a := "myname", *out.Str; e != a {
  2662  		t.Errorf("expect %v, got %v", e, a)
  2663  	}
  2664  	if e, a := time.Unix(1.4221728e+09, 0).UTC().String(), out.Timestamp.UTC().String(); e != a {
  2665  		t.Errorf("expect %v, got %v", e, a)
  2666  	}
  2667  	if e, a := true, *out.TrueBool; e != a {
  2668  		t.Errorf("expect %v, got %v", e, a)
  2669  	}
  2670  
  2671  }
  2672  
  2673  func TestOutputService2ProtocolTestBlobMembersCase1(t *testing.T) {
  2674  	svc := NewOutputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2675  
  2676  	buf := bytes.NewReader([]byte("{\"BlobMember\": \"aGkh\", \"StructMember\": {\"foo\": \"dGhlcmUh\"}}"))
  2677  	req, out := svc.OutputService2TestCaseOperation1Request(nil)
  2678  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2679  
  2680  	// set headers
  2681  
  2682  	// unmarshal response
  2683  	req.Handlers.UnmarshalMeta.Run(req)
  2684  	req.Handlers.Unmarshal.Run(req)
  2685  	if req.Error != nil {
  2686  		t.Errorf("expect not error, got %v", req.Error)
  2687  	}
  2688  
  2689  	// assert response
  2690  	if out == nil {
  2691  		t.Errorf("expect not to be nil")
  2692  	}
  2693  	if e, a := "hi!", string(out.BlobMember); e != a {
  2694  		t.Errorf("expect %v, got %v", e, a)
  2695  	}
  2696  	if e, a := "there!", string(out.StructMember.Foo); e != a {
  2697  		t.Errorf("expect %v, got %v", e, a)
  2698  	}
  2699  
  2700  }
  2701  
  2702  func TestOutputService3ProtocolTestTimestampMembersCase1(t *testing.T) {
  2703  	svc := NewOutputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2704  
  2705  	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\"}}"))
  2706  	req, out := svc.OutputService3TestCaseOperation1Request(nil)
  2707  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2708  
  2709  	// set headers
  2710  	req.HTTPResponse.Header.Set("x-amz-timearg", "Tue, 29 Apr 2014 18:30:38 GMT")
  2711  	req.HTTPResponse.Header.Set("x-amz-timecustom", "1398796238")
  2712  	req.HTTPResponse.Header.Set("x-amz-timeformat", "2014-04-29T18:30:38Z")
  2713  
  2714  	// unmarshal response
  2715  	req.Handlers.UnmarshalMeta.Run(req)
  2716  	req.Handlers.Unmarshal.Run(req)
  2717  	if req.Error != nil {
  2718  		t.Errorf("expect not error, got %v", req.Error)
  2719  	}
  2720  
  2721  	// assert response
  2722  	if out == nil {
  2723  		t.Errorf("expect not to be nil")
  2724  	}
  2725  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Bar.UTC().String(); e != a {
  2726  		t.Errorf("expect %v, got %v", e, a)
  2727  	}
  2728  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.UTC().String(); e != a {
  2729  		t.Errorf("expect %v, got %v", e, a)
  2730  	}
  2731  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeArg.UTC().String(); e != a {
  2732  		t.Errorf("expect %v, got %v", e, a)
  2733  	}
  2734  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeArgInHeader.UTC().String(); e != a {
  2735  		t.Errorf("expect %v, got %v", e, a)
  2736  	}
  2737  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeCustom.UTC().String(); e != a {
  2738  		t.Errorf("expect %v, got %v", e, a)
  2739  	}
  2740  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeCustomInHeader.UTC().String(); e != a {
  2741  		t.Errorf("expect %v, got %v", e, a)
  2742  	}
  2743  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeFormat.UTC().String(); e != a {
  2744  		t.Errorf("expect %v, got %v", e, a)
  2745  	}
  2746  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeFormatInHeader.UTC().String(); e != a {
  2747  		t.Errorf("expect %v, got %v", e, a)
  2748  	}
  2749  
  2750  }
  2751  
  2752  func TestOutputService4ProtocolTestListsCase1(t *testing.T) {
  2753  	svc := NewOutputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2754  
  2755  	buf := bytes.NewReader([]byte("{\"ListMember\": [\"a\", \"b\"]}"))
  2756  	req, out := svc.OutputService4TestCaseOperation1Request(nil)
  2757  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2758  
  2759  	// set headers
  2760  
  2761  	// unmarshal response
  2762  	req.Handlers.UnmarshalMeta.Run(req)
  2763  	req.Handlers.Unmarshal.Run(req)
  2764  	if req.Error != nil {
  2765  		t.Errorf("expect not error, got %v", req.Error)
  2766  	}
  2767  
  2768  	// assert response
  2769  	if out == nil {
  2770  		t.Errorf("expect not to be nil")
  2771  	}
  2772  	if e, a := "a", *out.ListMember[0]; e != a {
  2773  		t.Errorf("expect %v, got %v", e, a)
  2774  	}
  2775  	if e, a := "b", *out.ListMember[1]; e != a {
  2776  		t.Errorf("expect %v, got %v", e, a)
  2777  	}
  2778  
  2779  }
  2780  
  2781  func TestOutputService5ProtocolTestListsWithStructureMemberCase1(t *testing.T) {
  2782  	svc := NewOutputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2783  
  2784  	buf := bytes.NewReader([]byte("{\"ListMember\": [{\"Foo\": \"a\"}, {\"Foo\": \"b\"}]}"))
  2785  	req, out := svc.OutputService5TestCaseOperation1Request(nil)
  2786  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2787  
  2788  	// set headers
  2789  
  2790  	// unmarshal response
  2791  	req.Handlers.UnmarshalMeta.Run(req)
  2792  	req.Handlers.Unmarshal.Run(req)
  2793  	if req.Error != nil {
  2794  		t.Errorf("expect not error, got %v", req.Error)
  2795  	}
  2796  
  2797  	// assert response
  2798  	if out == nil {
  2799  		t.Errorf("expect not to be nil")
  2800  	}
  2801  	if e, a := "a", *out.ListMember[0].Foo; e != a {
  2802  		t.Errorf("expect %v, got %v", e, a)
  2803  	}
  2804  	if e, a := "b", *out.ListMember[1].Foo; e != a {
  2805  		t.Errorf("expect %v, got %v", e, a)
  2806  	}
  2807  
  2808  }
  2809  
  2810  func TestOutputService6ProtocolTestMapsCase1(t *testing.T) {
  2811  	svc := NewOutputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2812  
  2813  	buf := bytes.NewReader([]byte("{\"MapMember\": {\"a\": [1, 2], \"b\": [3, 4]}}"))
  2814  	req, out := svc.OutputService6TestCaseOperation1Request(nil)
  2815  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2816  
  2817  	// set headers
  2818  
  2819  	// unmarshal response
  2820  	req.Handlers.UnmarshalMeta.Run(req)
  2821  	req.Handlers.Unmarshal.Run(req)
  2822  	if req.Error != nil {
  2823  		t.Errorf("expect not error, got %v", req.Error)
  2824  	}
  2825  
  2826  	// assert response
  2827  	if out == nil {
  2828  		t.Errorf("expect not to be nil")
  2829  	}
  2830  	if e, a := int64(1), *out.MapMember["a"][0]; e != a {
  2831  		t.Errorf("expect %v, got %v", e, a)
  2832  	}
  2833  	if e, a := int64(2), *out.MapMember["a"][1]; e != a {
  2834  		t.Errorf("expect %v, got %v", e, a)
  2835  	}
  2836  	if e, a := int64(3), *out.MapMember["b"][0]; e != a {
  2837  		t.Errorf("expect %v, got %v", e, a)
  2838  	}
  2839  	if e, a := int64(4), *out.MapMember["b"][1]; e != a {
  2840  		t.Errorf("expect %v, got %v", e, a)
  2841  	}
  2842  
  2843  }
  2844  
  2845  func TestOutputService7ProtocolTestComplexMapValuesCase1(t *testing.T) {
  2846  	svc := NewOutputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2847  
  2848  	buf := bytes.NewReader([]byte("{\"MapMember\": {\"a\": 1398796238, \"b\": 1398796238}}"))
  2849  	req, out := svc.OutputService7TestCaseOperation1Request(nil)
  2850  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2851  
  2852  	// set headers
  2853  
  2854  	// unmarshal response
  2855  	req.Handlers.UnmarshalMeta.Run(req)
  2856  	req.Handlers.Unmarshal.Run(req)
  2857  	if req.Error != nil {
  2858  		t.Errorf("expect not error, got %v", req.Error)
  2859  	}
  2860  
  2861  	// assert response
  2862  	if out == nil {
  2863  		t.Errorf("expect not to be nil")
  2864  	}
  2865  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["a"].UTC().String(); e != a {
  2866  		t.Errorf("expect %v, got %v", e, a)
  2867  	}
  2868  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.MapMember["b"].UTC().String(); e != a {
  2869  		t.Errorf("expect %v, got %v", e, a)
  2870  	}
  2871  
  2872  }
  2873  
  2874  func TestOutputService8ProtocolTestIgnoresExtraDataCase1(t *testing.T) {
  2875  	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2876  
  2877  	buf := bytes.NewReader([]byte("{\"foo\": \"bar\"}"))
  2878  	req, out := svc.OutputService8TestCaseOperation1Request(nil)
  2879  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2880  
  2881  	// set headers
  2882  
  2883  	// unmarshal response
  2884  	req.Handlers.UnmarshalMeta.Run(req)
  2885  	req.Handlers.Unmarshal.Run(req)
  2886  	if req.Error != nil {
  2887  		t.Errorf("expect not error, got %v", req.Error)
  2888  	}
  2889  
  2890  	// assert response
  2891  	if out == nil {
  2892  		t.Errorf("expect not to be nil")
  2893  	}
  2894  
  2895  }
  2896  
  2897  func TestOutputService9ProtocolTestIgnoresUndefinedOutputCase1(t *testing.T) {
  2898  	svc := NewOutputService9ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2899  
  2900  	buf := bytes.NewReader([]byte("OK"))
  2901  	req, out := svc.OutputService9TestCaseOperation1Request(nil)
  2902  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2903  
  2904  	// set headers
  2905  
  2906  	// unmarshal response
  2907  	req.Handlers.UnmarshalMeta.Run(req)
  2908  	req.Handlers.Unmarshal.Run(req)
  2909  	if req.Error != nil {
  2910  		t.Errorf("expect not error, got %v", req.Error)
  2911  	}
  2912  
  2913  	// assert response
  2914  	if out == nil {
  2915  		t.Errorf("expect not to be nil")
  2916  	}
  2917  
  2918  }
  2919  
  2920  func TestOutputService10ProtocolTestSupportsHeaderMapsCase1(t *testing.T) {
  2921  	svc := NewOutputService10ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2922  
  2923  	buf := bytes.NewReader([]byte("{}"))
  2924  	req, out := svc.OutputService10TestCaseOperation1Request(nil)
  2925  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2926  
  2927  	// set headers
  2928  	req.HTTPResponse.Header.Set("Content-Length", "10")
  2929  	req.HTTPResponse.Header.Set("X-Bam", "boo")
  2930  	req.HTTPResponse.Header.Set("X-Foo", "bar")
  2931  
  2932  	// unmarshal response
  2933  	req.Handlers.UnmarshalMeta.Run(req)
  2934  	req.Handlers.Unmarshal.Run(req)
  2935  	if req.Error != nil {
  2936  		t.Errorf("expect not error, got %v", req.Error)
  2937  	}
  2938  
  2939  	// assert response
  2940  	if out == nil {
  2941  		t.Errorf("expect not to be nil")
  2942  	}
  2943  	if e, a := "10", *out.AllHeaders["Content-Length"]; e != a {
  2944  		t.Errorf("expect %v, got %v", e, a)
  2945  	}
  2946  	if e, a := "boo", *out.AllHeaders["X-Bam"]; e != a {
  2947  		t.Errorf("expect %v, got %v", e, a)
  2948  	}
  2949  	if e, a := "bar", *out.AllHeaders["X-Foo"]; e != a {
  2950  		t.Errorf("expect %v, got %v", e, a)
  2951  	}
  2952  	if e, a := "boo", *out.PrefixedHeaders["Bam"]; e != a {
  2953  		t.Errorf("expect %v, got %v", e, a)
  2954  	}
  2955  	if e, a := "bar", *out.PrefixedHeaders["Foo"]; e != a {
  2956  		t.Errorf("expect %v, got %v", e, a)
  2957  	}
  2958  
  2959  }
  2960  
  2961  func TestOutputService11ProtocolTestJSONPayloadCase1(t *testing.T) {
  2962  	svc := NewOutputService11ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2963  
  2964  	buf := bytes.NewReader([]byte("{\"Foo\": \"abc\"}"))
  2965  	req, out := svc.OutputService11TestCaseOperation1Request(nil)
  2966  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2967  
  2968  	// set headers
  2969  	req.HTTPResponse.Header.Set("X-Foo", "baz")
  2970  
  2971  	// unmarshal response
  2972  	req.Handlers.UnmarshalMeta.Run(req)
  2973  	req.Handlers.Unmarshal.Run(req)
  2974  	if req.Error != nil {
  2975  		t.Errorf("expect not error, got %v", req.Error)
  2976  	}
  2977  
  2978  	// assert response
  2979  	if out == nil {
  2980  		t.Errorf("expect not to be nil")
  2981  	}
  2982  	if e, a := "abc", *out.Data.Foo; e != a {
  2983  		t.Errorf("expect %v, got %v", e, a)
  2984  	}
  2985  	if e, a := "baz", *out.Header; e != a {
  2986  		t.Errorf("expect %v, got %v", e, a)
  2987  	}
  2988  
  2989  }
  2990  
  2991  func TestOutputService12ProtocolTestStreamingPayloadCase1(t *testing.T) {
  2992  	svc := NewOutputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2993  
  2994  	buf := bytes.NewReader([]byte("abc"))
  2995  	req, out := svc.OutputService12TestCaseOperation1Request(nil)
  2996  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2997  
  2998  	// set headers
  2999  
  3000  	// unmarshal response
  3001  	req.Handlers.UnmarshalMeta.Run(req)
  3002  	req.Handlers.Unmarshal.Run(req)
  3003  	if req.Error != nil {
  3004  		t.Errorf("expect not error, got %v", req.Error)
  3005  	}
  3006  
  3007  	// assert response
  3008  	if out == nil {
  3009  		t.Errorf("expect not to be nil")
  3010  	}
  3011  	if e, a := "abc", string(out.Stream); e != a {
  3012  		t.Errorf("expect %v, got %v", e, a)
  3013  	}
  3014  
  3015  }
  3016  
  3017  func TestOutputService13ProtocolTestJSONValueTraitCase1(t *testing.T) {
  3018  	svc := NewOutputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3019  
  3020  	buf := bytes.NewReader([]byte("{\"BodyField\":\"{\\\"Foo\\\":\\\"Bar\\\"}\"}"))
  3021  	req, out := svc.OutputService13TestCaseOperation1Request(nil)
  3022  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  3023  
  3024  	// set headers
  3025  	req.HTTPResponse.Header.Set("X-Amz-Foo", "eyJGb28iOiJCYXIifQ==")
  3026  
  3027  	// unmarshal response
  3028  	req.Handlers.UnmarshalMeta.Run(req)
  3029  	req.Handlers.Unmarshal.Run(req)
  3030  	if req.Error != nil {
  3031  		t.Errorf("expect not error, got %v", req.Error)
  3032  	}
  3033  
  3034  	// assert response
  3035  	if out == nil {
  3036  		t.Errorf("expect not to be nil")
  3037  	}
  3038  	reflect.DeepEqual(out.BodyField, map[string]interface{}{"Foo": "Bar"})
  3039  	reflect.DeepEqual(out.HeaderField, map[string]interface{}{"Foo": "Bar"})
  3040  
  3041  }
  3042  
  3043  func TestOutputService13ProtocolTestJSONValueTraitCase2(t *testing.T) {
  3044  	svc := NewOutputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3045  
  3046  	buf := bytes.NewReader([]byte("{\"BodyListField\":[\"{\\\"Foo\\\":\\\"Bar\\\"}\"]}"))
  3047  	req, out := svc.OutputService13TestCaseOperation2Request(nil)
  3048  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  3049  
  3050  	// set headers
  3051  
  3052  	// unmarshal response
  3053  	req.Handlers.UnmarshalMeta.Run(req)
  3054  	req.Handlers.Unmarshal.Run(req)
  3055  	if req.Error != nil {
  3056  		t.Errorf("expect not error, got %v", req.Error)
  3057  	}
  3058  
  3059  	// assert response
  3060  	if out == nil {
  3061  		t.Errorf("expect not to be nil")
  3062  	}
  3063  	reflect.DeepEqual(out.BodyListField[0], map[string]interface{}{"Foo": "Bar"})
  3064  
  3065  }
  3066  
  3067  func TestOutputService14ProtocolTestEnumCase1(t *testing.T) {
  3068  	svc := NewOutputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3069  
  3070  	buf := bytes.NewReader([]byte("{\"FooEnum\": \"foo\", \"ListEnums\": [\"foo\", \"bar\"]}"))
  3071  	req, out := svc.OutputService14TestCaseOperation1Request(nil)
  3072  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  3073  
  3074  	// set headers
  3075  	req.HTTPResponse.Header.Set("x-amz-enum", "baz")
  3076  
  3077  	// unmarshal response
  3078  	req.Handlers.UnmarshalMeta.Run(req)
  3079  	req.Handlers.Unmarshal.Run(req)
  3080  	if req.Error != nil {
  3081  		t.Errorf("expect not error, got %v", req.Error)
  3082  	}
  3083  
  3084  	// assert response
  3085  	if out == nil {
  3086  		t.Errorf("expect not to be nil")
  3087  	}
  3088  	if e, a := "foo", *out.FooEnum; e != a {
  3089  		t.Errorf("expect %v, got %v", e, a)
  3090  	}
  3091  	if e, a := "baz", *out.HeaderEnum; e != a {
  3092  		t.Errorf("expect %v, got %v", e, a)
  3093  	}
  3094  	if e, a := "foo", *out.ListEnums[0]; e != a {
  3095  		t.Errorf("expect %v, got %v", e, a)
  3096  	}
  3097  	if e, a := "bar", *out.ListEnums[1]; e != a {
  3098  		t.Errorf("expect %v, got %v", e, a)
  3099  	}
  3100  
  3101  }
  3102  
  3103  func TestOutputService14ProtocolTestEnumCase2(t *testing.T) {
  3104  	svc := NewOutputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3105  
  3106  	buf := bytes.NewReader([]byte(""))
  3107  	req, out := svc.OutputService14TestCaseOperation2Request(nil)
  3108  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  3109  
  3110  	// set headers
  3111  
  3112  	// unmarshal response
  3113  	req.Handlers.UnmarshalMeta.Run(req)
  3114  	req.Handlers.Unmarshal.Run(req)
  3115  	if req.Error != nil {
  3116  		t.Errorf("expect not error, got %v", req.Error)
  3117  	}
  3118  
  3119  	// assert response
  3120  	if out == nil {
  3121  		t.Errorf("expect not to be nil")
  3122  	}
  3123  
  3124  }