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

     1  // Code generated by models/protocol_tests/generate.go. DO NOT EDIT.
     2  
     3  package query_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/query"
    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  // InputService1ProtocolTest 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  // InputService1ProtocolTest methods are safe to use concurrently. It is not safe to
    54  // modify mutate any of the struct's properties though.
    55  type InputService1ProtocolTest struct {
    56  	*client.Client
    57  }
    58  
    59  // New creates a new instance of the InputService1ProtocolTest 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 InputService1ProtocolTest client from just a session.
    67  //     svc := inputservice1protocoltest.New(mySession)
    68  //
    69  //     // Create a InputService1ProtocolTest client with additional configuration
    70  //     svc := inputservice1protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
    71  func NewInputService1ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService1ProtocolTest {
    72  	c := p.ClientConfig("inputservice1protocoltest", cfgs...)
    73  	return newInputService1ProtocolTestClient(*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 newInputService1ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService1ProtocolTest {
    78  	svc := &InputService1ProtocolTest{
    79  		Client: client.New(
    80  			cfg,
    81  			metadata.ClientInfo{
    82  				ServiceName:   "InputService1ProtocolTest",
    83  				ServiceID:     "InputService1ProtocolTest",
    84  				SigningName:   signingName,
    85  				SigningRegion: signingRegion,
    86  				PartitionID:   partitionID,
    87  				Endpoint:      endpoint,
    88  				APIVersion:    "2014-01-01",
    89  			},
    90  			handlers,
    91  		),
    92  	}
    93  
    94  	// Handlers
    95  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
    96  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
    97  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
    98  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
    99  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
   100  
   101  	return svc
   102  }
   103  
   104  // newRequest creates a new request for a InputService1ProtocolTest operation and runs any
   105  // custom request initialization.
   106  func (c *InputService1ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   107  	req := c.NewRequest(op, params, data)
   108  
   109  	return req
   110  }
   111  
   112  const opInputService1TestCaseOperation1 = "OperationName"
   113  
   114  // InputService1TestCaseOperation1Request generates a "aws/request.Request" representing the
   115  // client's request for the InputService1TestCaseOperation1 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 InputService1TestCaseOperation1 for more information on using the InputService1TestCaseOperation1
   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 InputService1TestCaseOperation1Request method.
   130  //    req, resp := client.InputService1TestCaseOperation1Request(params)
   131  //
   132  //    err := req.Send()
   133  //    if err == nil { // resp is now filled
   134  //        fmt.Println(resp)
   135  //    }
   136  func (c *InputService1ProtocolTest) InputService1TestCaseOperation1Request(input *InputService1TestShapeInputService1TestCaseOperation1Input) (req *request.Request, output *InputService1TestShapeInputService1TestCaseOperation1Output) {
   137  	op := &request.Operation{
   138  		Name:     opInputService1TestCaseOperation1,
   139  		HTTPPath: "/",
   140  	}
   141  
   142  	if input == nil {
   143  		input = &InputService1TestShapeInputService1TestCaseOperation1Input{}
   144  	}
   145  
   146  	output = &InputService1TestShapeInputService1TestCaseOperation1Output{}
   147  	req = c.newRequest(op, input, output)
   148  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   149  	return
   150  }
   151  
   152  // InputService1TestCaseOperation1 API operation for .
   153  //
   154  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   155  // with awserr.Error's Code and Message methods to get detailed information about
   156  // the error.
   157  //
   158  // See the AWS API reference guide for 's
   159  // API operation InputService1TestCaseOperation1 for usage and error information.
   160  func (c *InputService1ProtocolTest) InputService1TestCaseOperation1(input *InputService1TestShapeInputService1TestCaseOperation1Input) (*InputService1TestShapeInputService1TestCaseOperation1Output, error) {
   161  	req, out := c.InputService1TestCaseOperation1Request(input)
   162  	return out, req.Send()
   163  }
   164  
   165  // InputService1TestCaseOperation1WithContext is the same as InputService1TestCaseOperation1 with the addition of
   166  // the ability to pass a context and additional request options.
   167  //
   168  // See InputService1TestCaseOperation1 for details on how to use this API operation.
   169  //
   170  // The context must be non-nil and will be used for request cancellation. If
   171  // the context is nil a panic will occur. In the future the SDK may create
   172  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   173  // for more information on using Contexts.
   174  func (c *InputService1ProtocolTest) InputService1TestCaseOperation1WithContext(ctx aws.Context, input *InputService1TestShapeInputService1TestCaseOperation1Input, opts ...request.Option) (*InputService1TestShapeInputService1TestCaseOperation1Output, error) {
   175  	req, out := c.InputService1TestCaseOperation1Request(input)
   176  	req.SetContext(ctx)
   177  	req.ApplyOptions(opts...)
   178  	return out, req.Send()
   179  }
   180  
   181  const opInputService1TestCaseOperation2 = "OperationName"
   182  
   183  // InputService1TestCaseOperation2Request generates a "aws/request.Request" representing the
   184  // client's request for the InputService1TestCaseOperation2 operation. The "output" return
   185  // value will be populated with the request's response once the request completes
   186  // successfully.
   187  //
   188  // Use "Send" method on the returned Request to send the API call to the service.
   189  // the "output" return value is not valid until after Send returns without error.
   190  //
   191  // See InputService1TestCaseOperation2 for more information on using the InputService1TestCaseOperation2
   192  // API call, and error handling.
   193  //
   194  // This method is useful when you want to inject custom logic or configuration
   195  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   196  //
   197  //
   198  //    // Example sending a request using the InputService1TestCaseOperation2Request method.
   199  //    req, resp := client.InputService1TestCaseOperation2Request(params)
   200  //
   201  //    err := req.Send()
   202  //    if err == nil { // resp is now filled
   203  //        fmt.Println(resp)
   204  //    }
   205  func (c *InputService1ProtocolTest) InputService1TestCaseOperation2Request(input *InputService1TestShapeInputService1TestCaseOperation2Input) (req *request.Request, output *InputService1TestShapeInputService1TestCaseOperation2Output) {
   206  	op := &request.Operation{
   207  		Name:     opInputService1TestCaseOperation2,
   208  		HTTPPath: "/",
   209  	}
   210  
   211  	if input == nil {
   212  		input = &InputService1TestShapeInputService1TestCaseOperation2Input{}
   213  	}
   214  
   215  	output = &InputService1TestShapeInputService1TestCaseOperation2Output{}
   216  	req = c.newRequest(op, input, output)
   217  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   218  	return
   219  }
   220  
   221  // InputService1TestCaseOperation2 API operation for .
   222  //
   223  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   224  // with awserr.Error's Code and Message methods to get detailed information about
   225  // the error.
   226  //
   227  // See the AWS API reference guide for 's
   228  // API operation InputService1TestCaseOperation2 for usage and error information.
   229  func (c *InputService1ProtocolTest) InputService1TestCaseOperation2(input *InputService1TestShapeInputService1TestCaseOperation2Input) (*InputService1TestShapeInputService1TestCaseOperation2Output, error) {
   230  	req, out := c.InputService1TestCaseOperation2Request(input)
   231  	return out, req.Send()
   232  }
   233  
   234  // InputService1TestCaseOperation2WithContext is the same as InputService1TestCaseOperation2 with the addition of
   235  // the ability to pass a context and additional request options.
   236  //
   237  // See InputService1TestCaseOperation2 for details on how to use this API operation.
   238  //
   239  // The context must be non-nil and will be used for request cancellation. If
   240  // the context is nil a panic will occur. In the future the SDK may create
   241  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   242  // for more information on using Contexts.
   243  func (c *InputService1ProtocolTest) InputService1TestCaseOperation2WithContext(ctx aws.Context, input *InputService1TestShapeInputService1TestCaseOperation2Input, opts ...request.Option) (*InputService1TestShapeInputService1TestCaseOperation2Output, error) {
   244  	req, out := c.InputService1TestCaseOperation2Request(input)
   245  	req.SetContext(ctx)
   246  	req.ApplyOptions(opts...)
   247  	return out, req.Send()
   248  }
   249  
   250  const opInputService1TestCaseOperation3 = "OperationName"
   251  
   252  // InputService1TestCaseOperation3Request generates a "aws/request.Request" representing the
   253  // client's request for the InputService1TestCaseOperation3 operation. The "output" return
   254  // value will be populated with the request's response once the request completes
   255  // successfully.
   256  //
   257  // Use "Send" method on the returned Request to send the API call to the service.
   258  // the "output" return value is not valid until after Send returns without error.
   259  //
   260  // See InputService1TestCaseOperation3 for more information on using the InputService1TestCaseOperation3
   261  // API call, and error handling.
   262  //
   263  // This method is useful when you want to inject custom logic or configuration
   264  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   265  //
   266  //
   267  //    // Example sending a request using the InputService1TestCaseOperation3Request method.
   268  //    req, resp := client.InputService1TestCaseOperation3Request(params)
   269  //
   270  //    err := req.Send()
   271  //    if err == nil { // resp is now filled
   272  //        fmt.Println(resp)
   273  //    }
   274  func (c *InputService1ProtocolTest) InputService1TestCaseOperation3Request(input *InputService1TestShapeInputService1TestCaseOperation3Input) (req *request.Request, output *InputService1TestShapeInputService1TestCaseOperation3Output) {
   275  	op := &request.Operation{
   276  		Name:     opInputService1TestCaseOperation3,
   277  		HTTPPath: "/",
   278  	}
   279  
   280  	if input == nil {
   281  		input = &InputService1TestShapeInputService1TestCaseOperation3Input{}
   282  	}
   283  
   284  	output = &InputService1TestShapeInputService1TestCaseOperation3Output{}
   285  	req = c.newRequest(op, input, output)
   286  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   287  	return
   288  }
   289  
   290  // InputService1TestCaseOperation3 API operation for .
   291  //
   292  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   293  // with awserr.Error's Code and Message methods to get detailed information about
   294  // the error.
   295  //
   296  // See the AWS API reference guide for 's
   297  // API operation InputService1TestCaseOperation3 for usage and error information.
   298  func (c *InputService1ProtocolTest) InputService1TestCaseOperation3(input *InputService1TestShapeInputService1TestCaseOperation3Input) (*InputService1TestShapeInputService1TestCaseOperation3Output, error) {
   299  	req, out := c.InputService1TestCaseOperation3Request(input)
   300  	return out, req.Send()
   301  }
   302  
   303  // InputService1TestCaseOperation3WithContext is the same as InputService1TestCaseOperation3 with the addition of
   304  // the ability to pass a context and additional request options.
   305  //
   306  // See InputService1TestCaseOperation3 for details on how to use this API operation.
   307  //
   308  // The context must be non-nil and will be used for request cancellation. If
   309  // the context is nil a panic will occur. In the future the SDK may create
   310  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   311  // for more information on using Contexts.
   312  func (c *InputService1ProtocolTest) InputService1TestCaseOperation3WithContext(ctx aws.Context, input *InputService1TestShapeInputService1TestCaseOperation3Input, opts ...request.Option) (*InputService1TestShapeInputService1TestCaseOperation3Output, error) {
   313  	req, out := c.InputService1TestCaseOperation3Request(input)
   314  	req.SetContext(ctx)
   315  	req.ApplyOptions(opts...)
   316  	return out, req.Send()
   317  }
   318  
   319  type InputService1TestShapeInputService1TestCaseOperation1Input struct {
   320  	_ struct{} `type:"structure"`
   321  
   322  	Bar *string `type:"string"`
   323  
   324  	Baz *bool `type:"boolean"`
   325  
   326  	Foo *string `type:"string"`
   327  }
   328  
   329  // SetBar sets the Bar field's value.
   330  func (s *InputService1TestShapeInputService1TestCaseOperation1Input) SetBar(v string) *InputService1TestShapeInputService1TestCaseOperation1Input {
   331  	s.Bar = &v
   332  	return s
   333  }
   334  
   335  // SetBaz sets the Baz field's value.
   336  func (s *InputService1TestShapeInputService1TestCaseOperation1Input) SetBaz(v bool) *InputService1TestShapeInputService1TestCaseOperation1Input {
   337  	s.Baz = &v
   338  	return s
   339  }
   340  
   341  // SetFoo sets the Foo field's value.
   342  func (s *InputService1TestShapeInputService1TestCaseOperation1Input) SetFoo(v string) *InputService1TestShapeInputService1TestCaseOperation1Input {
   343  	s.Foo = &v
   344  	return s
   345  }
   346  
   347  type InputService1TestShapeInputService1TestCaseOperation1Output struct {
   348  	_ struct{} `type:"structure"`
   349  }
   350  
   351  type InputService1TestShapeInputService1TestCaseOperation2Input struct {
   352  	_ struct{} `type:"structure"`
   353  
   354  	Bar *string `type:"string"`
   355  
   356  	Baz *bool `type:"boolean"`
   357  
   358  	Foo *string `type:"string"`
   359  }
   360  
   361  // SetBar sets the Bar field's value.
   362  func (s *InputService1TestShapeInputService1TestCaseOperation2Input) SetBar(v string) *InputService1TestShapeInputService1TestCaseOperation2Input {
   363  	s.Bar = &v
   364  	return s
   365  }
   366  
   367  // SetBaz sets the Baz field's value.
   368  func (s *InputService1TestShapeInputService1TestCaseOperation2Input) SetBaz(v bool) *InputService1TestShapeInputService1TestCaseOperation2Input {
   369  	s.Baz = &v
   370  	return s
   371  }
   372  
   373  // SetFoo sets the Foo field's value.
   374  func (s *InputService1TestShapeInputService1TestCaseOperation2Input) SetFoo(v string) *InputService1TestShapeInputService1TestCaseOperation2Input {
   375  	s.Foo = &v
   376  	return s
   377  }
   378  
   379  type InputService1TestShapeInputService1TestCaseOperation2Output struct {
   380  	_ struct{} `type:"structure"`
   381  }
   382  
   383  type InputService1TestShapeInputService1TestCaseOperation3Input struct {
   384  	_ struct{} `type:"structure"`
   385  
   386  	Bar *string `type:"string"`
   387  
   388  	Baz *bool `type:"boolean"`
   389  
   390  	Foo *string `type:"string"`
   391  }
   392  
   393  // SetBar sets the Bar field's value.
   394  func (s *InputService1TestShapeInputService1TestCaseOperation3Input) SetBar(v string) *InputService1TestShapeInputService1TestCaseOperation3Input {
   395  	s.Bar = &v
   396  	return s
   397  }
   398  
   399  // SetBaz sets the Baz field's value.
   400  func (s *InputService1TestShapeInputService1TestCaseOperation3Input) SetBaz(v bool) *InputService1TestShapeInputService1TestCaseOperation3Input {
   401  	s.Baz = &v
   402  	return s
   403  }
   404  
   405  // SetFoo sets the Foo field's value.
   406  func (s *InputService1TestShapeInputService1TestCaseOperation3Input) SetFoo(v string) *InputService1TestShapeInputService1TestCaseOperation3Input {
   407  	s.Foo = &v
   408  	return s
   409  }
   410  
   411  type InputService1TestShapeInputService1TestCaseOperation3Output struct {
   412  	_ struct{} `type:"structure"`
   413  }
   414  
   415  // InputService2ProtocolTest provides the API operation methods for making requests to
   416  // . See this package's package overview docs
   417  // for details on the service.
   418  //
   419  // InputService2ProtocolTest methods are safe to use concurrently. It is not safe to
   420  // modify mutate any of the struct's properties though.
   421  type InputService2ProtocolTest struct {
   422  	*client.Client
   423  }
   424  
   425  // New creates a new instance of the InputService2ProtocolTest client with a session.
   426  // If additional configuration is needed for the client instance use the optional
   427  // aws.Config parameter to add your extra config.
   428  //
   429  // Example:
   430  //     mySession := session.Must(session.NewSession())
   431  //
   432  //     // Create a InputService2ProtocolTest client from just a session.
   433  //     svc := inputservice2protocoltest.New(mySession)
   434  //
   435  //     // Create a InputService2ProtocolTest client with additional configuration
   436  //     svc := inputservice2protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   437  func NewInputService2ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService2ProtocolTest {
   438  	c := p.ClientConfig("inputservice2protocoltest", cfgs...)
   439  	return newInputService2ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   440  }
   441  
   442  // newClient creates, initializes and returns a new service client instance.
   443  func newInputService2ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService2ProtocolTest {
   444  	svc := &InputService2ProtocolTest{
   445  		Client: client.New(
   446  			cfg,
   447  			metadata.ClientInfo{
   448  				ServiceName:   "InputService2ProtocolTest",
   449  				ServiceID:     "InputService2ProtocolTest",
   450  				SigningName:   signingName,
   451  				SigningRegion: signingRegion,
   452  				PartitionID:   partitionID,
   453  				Endpoint:      endpoint,
   454  				APIVersion:    "2014-01-01",
   455  			},
   456  			handlers,
   457  		),
   458  	}
   459  
   460  	// Handlers
   461  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   462  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
   463  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
   464  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
   465  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
   466  
   467  	return svc
   468  }
   469  
   470  // newRequest creates a new request for a InputService2ProtocolTest operation and runs any
   471  // custom request initialization.
   472  func (c *InputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   473  	req := c.NewRequest(op, params, data)
   474  
   475  	return req
   476  }
   477  
   478  const opInputService2TestCaseOperation1 = "OperationName"
   479  
   480  // InputService2TestCaseOperation1Request generates a "aws/request.Request" representing the
   481  // client's request for the InputService2TestCaseOperation1 operation. The "output" return
   482  // value will be populated with the request's response once the request completes
   483  // successfully.
   484  //
   485  // Use "Send" method on the returned Request to send the API call to the service.
   486  // the "output" return value is not valid until after Send returns without error.
   487  //
   488  // See InputService2TestCaseOperation1 for more information on using the InputService2TestCaseOperation1
   489  // API call, and error handling.
   490  //
   491  // This method is useful when you want to inject custom logic or configuration
   492  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   493  //
   494  //
   495  //    // Example sending a request using the InputService2TestCaseOperation1Request method.
   496  //    req, resp := client.InputService2TestCaseOperation1Request(params)
   497  //
   498  //    err := req.Send()
   499  //    if err == nil { // resp is now filled
   500  //        fmt.Println(resp)
   501  //    }
   502  func (c *InputService2ProtocolTest) InputService2TestCaseOperation1Request(input *InputService2TestShapeInputService2TestCaseOperation1Input) (req *request.Request, output *InputService2TestShapeInputService2TestCaseOperation1Output) {
   503  	op := &request.Operation{
   504  		Name:     opInputService2TestCaseOperation1,
   505  		HTTPPath: "/",
   506  	}
   507  
   508  	if input == nil {
   509  		input = &InputService2TestShapeInputService2TestCaseOperation1Input{}
   510  	}
   511  
   512  	output = &InputService2TestShapeInputService2TestCaseOperation1Output{}
   513  	req = c.newRequest(op, input, output)
   514  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   515  	return
   516  }
   517  
   518  // InputService2TestCaseOperation1 API operation for .
   519  //
   520  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   521  // with awserr.Error's Code and Message methods to get detailed information about
   522  // the error.
   523  //
   524  // See the AWS API reference guide for 's
   525  // API operation InputService2TestCaseOperation1 for usage and error information.
   526  func (c *InputService2ProtocolTest) InputService2TestCaseOperation1(input *InputService2TestShapeInputService2TestCaseOperation1Input) (*InputService2TestShapeInputService2TestCaseOperation1Output, error) {
   527  	req, out := c.InputService2TestCaseOperation1Request(input)
   528  	return out, req.Send()
   529  }
   530  
   531  // InputService2TestCaseOperation1WithContext is the same as InputService2TestCaseOperation1 with the addition of
   532  // the ability to pass a context and additional request options.
   533  //
   534  // See InputService2TestCaseOperation1 for details on how to use this API operation.
   535  //
   536  // The context must be non-nil and will be used for request cancellation. If
   537  // the context is nil a panic will occur. In the future the SDK may create
   538  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   539  // for more information on using Contexts.
   540  func (c *InputService2ProtocolTest) InputService2TestCaseOperation1WithContext(ctx aws.Context, input *InputService2TestShapeInputService2TestCaseOperation1Input, opts ...request.Option) (*InputService2TestShapeInputService2TestCaseOperation1Output, error) {
   541  	req, out := c.InputService2TestCaseOperation1Request(input)
   542  	req.SetContext(ctx)
   543  	req.ApplyOptions(opts...)
   544  	return out, req.Send()
   545  }
   546  
   547  type InputService2TestShapeInputService2TestCaseOperation1Input struct {
   548  	_ struct{} `type:"structure"`
   549  
   550  	StructArg *InputService2TestShapeStructType `type:"structure"`
   551  }
   552  
   553  // SetStructArg sets the StructArg field's value.
   554  func (s *InputService2TestShapeInputService2TestCaseOperation1Input) SetStructArg(v *InputService2TestShapeStructType) *InputService2TestShapeInputService2TestCaseOperation1Input {
   555  	s.StructArg = v
   556  	return s
   557  }
   558  
   559  type InputService2TestShapeInputService2TestCaseOperation1Output struct {
   560  	_ struct{} `type:"structure"`
   561  }
   562  
   563  type InputService2TestShapeStructType struct {
   564  	_ struct{} `type:"structure"`
   565  
   566  	ScalarArg *string `type:"string"`
   567  }
   568  
   569  // SetScalarArg sets the ScalarArg field's value.
   570  func (s *InputService2TestShapeStructType) SetScalarArg(v string) *InputService2TestShapeStructType {
   571  	s.ScalarArg = &v
   572  	return s
   573  }
   574  
   575  // InputService3ProtocolTest provides the API operation methods for making requests to
   576  // . See this package's package overview docs
   577  // for details on the service.
   578  //
   579  // InputService3ProtocolTest methods are safe to use concurrently. It is not safe to
   580  // modify mutate any of the struct's properties though.
   581  type InputService3ProtocolTest struct {
   582  	*client.Client
   583  }
   584  
   585  // New creates a new instance of the InputService3ProtocolTest client with a session.
   586  // If additional configuration is needed for the client instance use the optional
   587  // aws.Config parameter to add your extra config.
   588  //
   589  // Example:
   590  //     mySession := session.Must(session.NewSession())
   591  //
   592  //     // Create a InputService3ProtocolTest client from just a session.
   593  //     svc := inputservice3protocoltest.New(mySession)
   594  //
   595  //     // Create a InputService3ProtocolTest client with additional configuration
   596  //     svc := inputservice3protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   597  func NewInputService3ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService3ProtocolTest {
   598  	c := p.ClientConfig("inputservice3protocoltest", cfgs...)
   599  	return newInputService3ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   600  }
   601  
   602  // newClient creates, initializes and returns a new service client instance.
   603  func newInputService3ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService3ProtocolTest {
   604  	svc := &InputService3ProtocolTest{
   605  		Client: client.New(
   606  			cfg,
   607  			metadata.ClientInfo{
   608  				ServiceName:   "InputService3ProtocolTest",
   609  				ServiceID:     "InputService3ProtocolTest",
   610  				SigningName:   signingName,
   611  				SigningRegion: signingRegion,
   612  				PartitionID:   partitionID,
   613  				Endpoint:      endpoint,
   614  				APIVersion:    "2014-01-01",
   615  			},
   616  			handlers,
   617  		),
   618  	}
   619  
   620  	// Handlers
   621  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   622  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
   623  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
   624  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
   625  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
   626  
   627  	return svc
   628  }
   629  
   630  // newRequest creates a new request for a InputService3ProtocolTest operation and runs any
   631  // custom request initialization.
   632  func (c *InputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   633  	req := c.NewRequest(op, params, data)
   634  
   635  	return req
   636  }
   637  
   638  const opInputService3TestCaseOperation1 = "OperationName"
   639  
   640  // InputService3TestCaseOperation1Request generates a "aws/request.Request" representing the
   641  // client's request for the InputService3TestCaseOperation1 operation. The "output" return
   642  // value will be populated with the request's response once the request completes
   643  // successfully.
   644  //
   645  // Use "Send" method on the returned Request to send the API call to the service.
   646  // the "output" return value is not valid until after Send returns without error.
   647  //
   648  // See InputService3TestCaseOperation1 for more information on using the InputService3TestCaseOperation1
   649  // API call, and error handling.
   650  //
   651  // This method is useful when you want to inject custom logic or configuration
   652  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   653  //
   654  //
   655  //    // Example sending a request using the InputService3TestCaseOperation1Request method.
   656  //    req, resp := client.InputService3TestCaseOperation1Request(params)
   657  //
   658  //    err := req.Send()
   659  //    if err == nil { // resp is now filled
   660  //        fmt.Println(resp)
   661  //    }
   662  func (c *InputService3ProtocolTest) InputService3TestCaseOperation1Request(input *InputService3TestShapeInputService3TestCaseOperation1Input) (req *request.Request, output *InputService3TestShapeInputService3TestCaseOperation1Output) {
   663  	op := &request.Operation{
   664  		Name:     opInputService3TestCaseOperation1,
   665  		HTTPPath: "/",
   666  	}
   667  
   668  	if input == nil {
   669  		input = &InputService3TestShapeInputService3TestCaseOperation1Input{}
   670  	}
   671  
   672  	output = &InputService3TestShapeInputService3TestCaseOperation1Output{}
   673  	req = c.newRequest(op, input, output)
   674  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   675  	return
   676  }
   677  
   678  // InputService3TestCaseOperation1 API operation for .
   679  //
   680  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   681  // with awserr.Error's Code and Message methods to get detailed information about
   682  // the error.
   683  //
   684  // See the AWS API reference guide for 's
   685  // API operation InputService3TestCaseOperation1 for usage and error information.
   686  func (c *InputService3ProtocolTest) InputService3TestCaseOperation1(input *InputService3TestShapeInputService3TestCaseOperation1Input) (*InputService3TestShapeInputService3TestCaseOperation1Output, error) {
   687  	req, out := c.InputService3TestCaseOperation1Request(input)
   688  	return out, req.Send()
   689  }
   690  
   691  // InputService3TestCaseOperation1WithContext is the same as InputService3TestCaseOperation1 with the addition of
   692  // the ability to pass a context and additional request options.
   693  //
   694  // See InputService3TestCaseOperation1 for details on how to use this API operation.
   695  //
   696  // The context must be non-nil and will be used for request cancellation. If
   697  // the context is nil a panic will occur. In the future the SDK may create
   698  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   699  // for more information on using Contexts.
   700  func (c *InputService3ProtocolTest) InputService3TestCaseOperation1WithContext(ctx aws.Context, input *InputService3TestShapeInputService3TestCaseOperation1Input, opts ...request.Option) (*InputService3TestShapeInputService3TestCaseOperation1Output, error) {
   701  	req, out := c.InputService3TestCaseOperation1Request(input)
   702  	req.SetContext(ctx)
   703  	req.ApplyOptions(opts...)
   704  	return out, req.Send()
   705  }
   706  
   707  const opInputService3TestCaseOperation2 = "OperationName"
   708  
   709  // InputService3TestCaseOperation2Request generates a "aws/request.Request" representing the
   710  // client's request for the InputService3TestCaseOperation2 operation. The "output" return
   711  // value will be populated with the request's response once the request completes
   712  // successfully.
   713  //
   714  // Use "Send" method on the returned Request to send the API call to the service.
   715  // the "output" return value is not valid until after Send returns without error.
   716  //
   717  // See InputService3TestCaseOperation2 for more information on using the InputService3TestCaseOperation2
   718  // API call, and error handling.
   719  //
   720  // This method is useful when you want to inject custom logic or configuration
   721  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   722  //
   723  //
   724  //    // Example sending a request using the InputService3TestCaseOperation2Request method.
   725  //    req, resp := client.InputService3TestCaseOperation2Request(params)
   726  //
   727  //    err := req.Send()
   728  //    if err == nil { // resp is now filled
   729  //        fmt.Println(resp)
   730  //    }
   731  func (c *InputService3ProtocolTest) InputService3TestCaseOperation2Request(input *InputService3TestShapeInputService3TestCaseOperation2Input) (req *request.Request, output *InputService3TestShapeInputService3TestCaseOperation2Output) {
   732  	op := &request.Operation{
   733  		Name:     opInputService3TestCaseOperation2,
   734  		HTTPPath: "/",
   735  	}
   736  
   737  	if input == nil {
   738  		input = &InputService3TestShapeInputService3TestCaseOperation2Input{}
   739  	}
   740  
   741  	output = &InputService3TestShapeInputService3TestCaseOperation2Output{}
   742  	req = c.newRequest(op, input, output)
   743  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   744  	return
   745  }
   746  
   747  // InputService3TestCaseOperation2 API operation for .
   748  //
   749  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   750  // with awserr.Error's Code and Message methods to get detailed information about
   751  // the error.
   752  //
   753  // See the AWS API reference guide for 's
   754  // API operation InputService3TestCaseOperation2 for usage and error information.
   755  func (c *InputService3ProtocolTest) InputService3TestCaseOperation2(input *InputService3TestShapeInputService3TestCaseOperation2Input) (*InputService3TestShapeInputService3TestCaseOperation2Output, error) {
   756  	req, out := c.InputService3TestCaseOperation2Request(input)
   757  	return out, req.Send()
   758  }
   759  
   760  // InputService3TestCaseOperation2WithContext is the same as InputService3TestCaseOperation2 with the addition of
   761  // the ability to pass a context and additional request options.
   762  //
   763  // See InputService3TestCaseOperation2 for details on how to use this API operation.
   764  //
   765  // The context must be non-nil and will be used for request cancellation. If
   766  // the context is nil a panic will occur. In the future the SDK may create
   767  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   768  // for more information on using Contexts.
   769  func (c *InputService3ProtocolTest) InputService3TestCaseOperation2WithContext(ctx aws.Context, input *InputService3TestShapeInputService3TestCaseOperation2Input, opts ...request.Option) (*InputService3TestShapeInputService3TestCaseOperation2Output, error) {
   770  	req, out := c.InputService3TestCaseOperation2Request(input)
   771  	req.SetContext(ctx)
   772  	req.ApplyOptions(opts...)
   773  	return out, req.Send()
   774  }
   775  
   776  type InputService3TestShapeInputService3TestCaseOperation1Input struct {
   777  	_ struct{} `type:"structure"`
   778  
   779  	ListArg []*string `type:"list"`
   780  }
   781  
   782  // SetListArg sets the ListArg field's value.
   783  func (s *InputService3TestShapeInputService3TestCaseOperation1Input) SetListArg(v []*string) *InputService3TestShapeInputService3TestCaseOperation1Input {
   784  	s.ListArg = v
   785  	return s
   786  }
   787  
   788  type InputService3TestShapeInputService3TestCaseOperation1Output struct {
   789  	_ struct{} `type:"structure"`
   790  }
   791  
   792  type InputService3TestShapeInputService3TestCaseOperation2Input struct {
   793  	_ struct{} `type:"structure"`
   794  
   795  	ListArg []*string `type:"list"`
   796  }
   797  
   798  // SetListArg sets the ListArg field's value.
   799  func (s *InputService3TestShapeInputService3TestCaseOperation2Input) SetListArg(v []*string) *InputService3TestShapeInputService3TestCaseOperation2Input {
   800  	s.ListArg = v
   801  	return s
   802  }
   803  
   804  type InputService3TestShapeInputService3TestCaseOperation2Output struct {
   805  	_ struct{} `type:"structure"`
   806  }
   807  
   808  // InputService4ProtocolTest provides the API operation methods for making requests to
   809  // . See this package's package overview docs
   810  // for details on the service.
   811  //
   812  // InputService4ProtocolTest methods are safe to use concurrently. It is not safe to
   813  // modify mutate any of the struct's properties though.
   814  type InputService4ProtocolTest struct {
   815  	*client.Client
   816  }
   817  
   818  // New creates a new instance of the InputService4ProtocolTest client with a session.
   819  // If additional configuration is needed for the client instance use the optional
   820  // aws.Config parameter to add your extra config.
   821  //
   822  // Example:
   823  //     mySession := session.Must(session.NewSession())
   824  //
   825  //     // Create a InputService4ProtocolTest client from just a session.
   826  //     svc := inputservice4protocoltest.New(mySession)
   827  //
   828  //     // Create a InputService4ProtocolTest client with additional configuration
   829  //     svc := inputservice4protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   830  func NewInputService4ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService4ProtocolTest {
   831  	c := p.ClientConfig("inputservice4protocoltest", cfgs...)
   832  	return newInputService4ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   833  }
   834  
   835  // newClient creates, initializes and returns a new service client instance.
   836  func newInputService4ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService4ProtocolTest {
   837  	svc := &InputService4ProtocolTest{
   838  		Client: client.New(
   839  			cfg,
   840  			metadata.ClientInfo{
   841  				ServiceName:   "InputService4ProtocolTest",
   842  				ServiceID:     "InputService4ProtocolTest",
   843  				SigningName:   signingName,
   844  				SigningRegion: signingRegion,
   845  				PartitionID:   partitionID,
   846  				Endpoint:      endpoint,
   847  				APIVersion:    "2014-01-01",
   848  			},
   849  			handlers,
   850  		),
   851  	}
   852  
   853  	// Handlers
   854  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   855  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
   856  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
   857  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
   858  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
   859  
   860  	return svc
   861  }
   862  
   863  // newRequest creates a new request for a InputService4ProtocolTest operation and runs any
   864  // custom request initialization.
   865  func (c *InputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   866  	req := c.NewRequest(op, params, data)
   867  
   868  	return req
   869  }
   870  
   871  const opInputService4TestCaseOperation1 = "OperationName"
   872  
   873  // InputService4TestCaseOperation1Request generates a "aws/request.Request" representing the
   874  // client's request for the InputService4TestCaseOperation1 operation. The "output" return
   875  // value will be populated with the request's response once the request completes
   876  // successfully.
   877  //
   878  // Use "Send" method on the returned Request to send the API call to the service.
   879  // the "output" return value is not valid until after Send returns without error.
   880  //
   881  // See InputService4TestCaseOperation1 for more information on using the InputService4TestCaseOperation1
   882  // API call, and error handling.
   883  //
   884  // This method is useful when you want to inject custom logic or configuration
   885  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   886  //
   887  //
   888  //    // Example sending a request using the InputService4TestCaseOperation1Request method.
   889  //    req, resp := client.InputService4TestCaseOperation1Request(params)
   890  //
   891  //    err := req.Send()
   892  //    if err == nil { // resp is now filled
   893  //        fmt.Println(resp)
   894  //    }
   895  func (c *InputService4ProtocolTest) InputService4TestCaseOperation1Request(input *InputService4TestShapeInputService4TestCaseOperation1Input) (req *request.Request, output *InputService4TestShapeInputService4TestCaseOperation1Output) {
   896  	op := &request.Operation{
   897  		Name:     opInputService4TestCaseOperation1,
   898  		HTTPPath: "/",
   899  	}
   900  
   901  	if input == nil {
   902  		input = &InputService4TestShapeInputService4TestCaseOperation1Input{}
   903  	}
   904  
   905  	output = &InputService4TestShapeInputService4TestCaseOperation1Output{}
   906  	req = c.newRequest(op, input, output)
   907  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   908  	return
   909  }
   910  
   911  // InputService4TestCaseOperation1 API operation for .
   912  //
   913  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   914  // with awserr.Error's Code and Message methods to get detailed information about
   915  // the error.
   916  //
   917  // See the AWS API reference guide for 's
   918  // API operation InputService4TestCaseOperation1 for usage and error information.
   919  func (c *InputService4ProtocolTest) InputService4TestCaseOperation1(input *InputService4TestShapeInputService4TestCaseOperation1Input) (*InputService4TestShapeInputService4TestCaseOperation1Output, error) {
   920  	req, out := c.InputService4TestCaseOperation1Request(input)
   921  	return out, req.Send()
   922  }
   923  
   924  // InputService4TestCaseOperation1WithContext is the same as InputService4TestCaseOperation1 with the addition of
   925  // the ability to pass a context and additional request options.
   926  //
   927  // See InputService4TestCaseOperation1 for details on how to use this API operation.
   928  //
   929  // The context must be non-nil and will be used for request cancellation. If
   930  // the context is nil a panic will occur. In the future the SDK may create
   931  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   932  // for more information on using Contexts.
   933  func (c *InputService4ProtocolTest) InputService4TestCaseOperation1WithContext(ctx aws.Context, input *InputService4TestShapeInputService4TestCaseOperation1Input, opts ...request.Option) (*InputService4TestShapeInputService4TestCaseOperation1Output, error) {
   934  	req, out := c.InputService4TestCaseOperation1Request(input)
   935  	req.SetContext(ctx)
   936  	req.ApplyOptions(opts...)
   937  	return out, req.Send()
   938  }
   939  
   940  const opInputService4TestCaseOperation2 = "OperationName"
   941  
   942  // InputService4TestCaseOperation2Request generates a "aws/request.Request" representing the
   943  // client's request for the InputService4TestCaseOperation2 operation. The "output" return
   944  // value will be populated with the request's response once the request completes
   945  // successfully.
   946  //
   947  // Use "Send" method on the returned Request to send the API call to the service.
   948  // the "output" return value is not valid until after Send returns without error.
   949  //
   950  // See InputService4TestCaseOperation2 for more information on using the InputService4TestCaseOperation2
   951  // API call, and error handling.
   952  //
   953  // This method is useful when you want to inject custom logic or configuration
   954  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   955  //
   956  //
   957  //    // Example sending a request using the InputService4TestCaseOperation2Request method.
   958  //    req, resp := client.InputService4TestCaseOperation2Request(params)
   959  //
   960  //    err := req.Send()
   961  //    if err == nil { // resp is now filled
   962  //        fmt.Println(resp)
   963  //    }
   964  func (c *InputService4ProtocolTest) InputService4TestCaseOperation2Request(input *InputService4TestShapeInputService4TestCaseOperation2Input) (req *request.Request, output *InputService4TestShapeInputService4TestCaseOperation2Output) {
   965  	op := &request.Operation{
   966  		Name:     opInputService4TestCaseOperation2,
   967  		HTTPPath: "/",
   968  	}
   969  
   970  	if input == nil {
   971  		input = &InputService4TestShapeInputService4TestCaseOperation2Input{}
   972  	}
   973  
   974  	output = &InputService4TestShapeInputService4TestCaseOperation2Output{}
   975  	req = c.newRequest(op, input, output)
   976  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   977  	return
   978  }
   979  
   980  // InputService4TestCaseOperation2 API operation for .
   981  //
   982  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   983  // with awserr.Error's Code and Message methods to get detailed information about
   984  // the error.
   985  //
   986  // See the AWS API reference guide for 's
   987  // API operation InputService4TestCaseOperation2 for usage and error information.
   988  func (c *InputService4ProtocolTest) InputService4TestCaseOperation2(input *InputService4TestShapeInputService4TestCaseOperation2Input) (*InputService4TestShapeInputService4TestCaseOperation2Output, error) {
   989  	req, out := c.InputService4TestCaseOperation2Request(input)
   990  	return out, req.Send()
   991  }
   992  
   993  // InputService4TestCaseOperation2WithContext is the same as InputService4TestCaseOperation2 with the addition of
   994  // the ability to pass a context and additional request options.
   995  //
   996  // See InputService4TestCaseOperation2 for details on how to use this API operation.
   997  //
   998  // The context must be non-nil and will be used for request cancellation. If
   999  // the context is nil a panic will occur. In the future the SDK may create
  1000  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1001  // for more information on using Contexts.
  1002  func (c *InputService4ProtocolTest) InputService4TestCaseOperation2WithContext(ctx aws.Context, input *InputService4TestShapeInputService4TestCaseOperation2Input, opts ...request.Option) (*InputService4TestShapeInputService4TestCaseOperation2Output, error) {
  1003  	req, out := c.InputService4TestCaseOperation2Request(input)
  1004  	req.SetContext(ctx)
  1005  	req.ApplyOptions(opts...)
  1006  	return out, req.Send()
  1007  }
  1008  
  1009  type InputService4TestShapeInputService4TestCaseOperation1Input struct {
  1010  	_ struct{} `type:"structure"`
  1011  
  1012  	ListArg []*string `type:"list" flattened:"true"`
  1013  
  1014  	NamedListArg []*string `locationNameList:"Foo" type:"list" flattened:"true"`
  1015  
  1016  	ScalarArg *string `type:"string"`
  1017  }
  1018  
  1019  // SetListArg sets the ListArg field's value.
  1020  func (s *InputService4TestShapeInputService4TestCaseOperation1Input) SetListArg(v []*string) *InputService4TestShapeInputService4TestCaseOperation1Input {
  1021  	s.ListArg = v
  1022  	return s
  1023  }
  1024  
  1025  // SetNamedListArg sets the NamedListArg field's value.
  1026  func (s *InputService4TestShapeInputService4TestCaseOperation1Input) SetNamedListArg(v []*string) *InputService4TestShapeInputService4TestCaseOperation1Input {
  1027  	s.NamedListArg = v
  1028  	return s
  1029  }
  1030  
  1031  // SetScalarArg sets the ScalarArg field's value.
  1032  func (s *InputService4TestShapeInputService4TestCaseOperation1Input) SetScalarArg(v string) *InputService4TestShapeInputService4TestCaseOperation1Input {
  1033  	s.ScalarArg = &v
  1034  	return s
  1035  }
  1036  
  1037  type InputService4TestShapeInputService4TestCaseOperation1Output struct {
  1038  	_ struct{} `type:"structure"`
  1039  }
  1040  
  1041  type InputService4TestShapeInputService4TestCaseOperation2Input struct {
  1042  	_ struct{} `type:"structure"`
  1043  
  1044  	ListArg []*string `type:"list" flattened:"true"`
  1045  
  1046  	NamedListArg []*string `locationNameList:"Foo" type:"list" flattened:"true"`
  1047  
  1048  	ScalarArg *string `type:"string"`
  1049  }
  1050  
  1051  // SetListArg sets the ListArg field's value.
  1052  func (s *InputService4TestShapeInputService4TestCaseOperation2Input) SetListArg(v []*string) *InputService4TestShapeInputService4TestCaseOperation2Input {
  1053  	s.ListArg = v
  1054  	return s
  1055  }
  1056  
  1057  // SetNamedListArg sets the NamedListArg field's value.
  1058  func (s *InputService4TestShapeInputService4TestCaseOperation2Input) SetNamedListArg(v []*string) *InputService4TestShapeInputService4TestCaseOperation2Input {
  1059  	s.NamedListArg = v
  1060  	return s
  1061  }
  1062  
  1063  // SetScalarArg sets the ScalarArg field's value.
  1064  func (s *InputService4TestShapeInputService4TestCaseOperation2Input) SetScalarArg(v string) *InputService4TestShapeInputService4TestCaseOperation2Input {
  1065  	s.ScalarArg = &v
  1066  	return s
  1067  }
  1068  
  1069  type InputService4TestShapeInputService4TestCaseOperation2Output struct {
  1070  	_ struct{} `type:"structure"`
  1071  }
  1072  
  1073  // InputService5ProtocolTest provides the API operation methods for making requests to
  1074  // . See this package's package overview docs
  1075  // for details on the service.
  1076  //
  1077  // InputService5ProtocolTest methods are safe to use concurrently. It is not safe to
  1078  // modify mutate any of the struct's properties though.
  1079  type InputService5ProtocolTest struct {
  1080  	*client.Client
  1081  }
  1082  
  1083  // New creates a new instance of the InputService5ProtocolTest client with a session.
  1084  // If additional configuration is needed for the client instance use the optional
  1085  // aws.Config parameter to add your extra config.
  1086  //
  1087  // Example:
  1088  //     mySession := session.Must(session.NewSession())
  1089  //
  1090  //     // Create a InputService5ProtocolTest client from just a session.
  1091  //     svc := inputservice5protocoltest.New(mySession)
  1092  //
  1093  //     // Create a InputService5ProtocolTest client with additional configuration
  1094  //     svc := inputservice5protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1095  func NewInputService5ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService5ProtocolTest {
  1096  	c := p.ClientConfig("inputservice5protocoltest", cfgs...)
  1097  	return newInputService5ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1098  }
  1099  
  1100  // newClient creates, initializes and returns a new service client instance.
  1101  func newInputService5ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService5ProtocolTest {
  1102  	svc := &InputService5ProtocolTest{
  1103  		Client: client.New(
  1104  			cfg,
  1105  			metadata.ClientInfo{
  1106  				ServiceName:   "InputService5ProtocolTest",
  1107  				ServiceID:     "InputService5ProtocolTest",
  1108  				SigningName:   signingName,
  1109  				SigningRegion: signingRegion,
  1110  				PartitionID:   partitionID,
  1111  				Endpoint:      endpoint,
  1112  				APIVersion:    "2014-01-01",
  1113  			},
  1114  			handlers,
  1115  		),
  1116  	}
  1117  
  1118  	// Handlers
  1119  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1120  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  1121  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  1122  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  1123  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  1124  
  1125  	return svc
  1126  }
  1127  
  1128  // newRequest creates a new request for a InputService5ProtocolTest operation and runs any
  1129  // custom request initialization.
  1130  func (c *InputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1131  	req := c.NewRequest(op, params, data)
  1132  
  1133  	return req
  1134  }
  1135  
  1136  const opInputService5TestCaseOperation1 = "OperationName"
  1137  
  1138  // InputService5TestCaseOperation1Request generates a "aws/request.Request" representing the
  1139  // client's request for the InputService5TestCaseOperation1 operation. The "output" return
  1140  // value will be populated with the request's response once the request completes
  1141  // successfully.
  1142  //
  1143  // Use "Send" method on the returned Request to send the API call to the service.
  1144  // the "output" return value is not valid until after Send returns without error.
  1145  //
  1146  // See InputService5TestCaseOperation1 for more information on using the InputService5TestCaseOperation1
  1147  // API call, and error handling.
  1148  //
  1149  // This method is useful when you want to inject custom logic or configuration
  1150  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1151  //
  1152  //
  1153  //    // Example sending a request using the InputService5TestCaseOperation1Request method.
  1154  //    req, resp := client.InputService5TestCaseOperation1Request(params)
  1155  //
  1156  //    err := req.Send()
  1157  //    if err == nil { // resp is now filled
  1158  //        fmt.Println(resp)
  1159  //    }
  1160  func (c *InputService5ProtocolTest) InputService5TestCaseOperation1Request(input *InputService5TestShapeInputService5TestCaseOperation1Input) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation1Output) {
  1161  	op := &request.Operation{
  1162  		Name:     opInputService5TestCaseOperation1,
  1163  		HTTPPath: "/",
  1164  	}
  1165  
  1166  	if input == nil {
  1167  		input = &InputService5TestShapeInputService5TestCaseOperation1Input{}
  1168  	}
  1169  
  1170  	output = &InputService5TestShapeInputService5TestCaseOperation1Output{}
  1171  	req = c.newRequest(op, input, output)
  1172  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1173  	return
  1174  }
  1175  
  1176  // InputService5TestCaseOperation1 API operation for .
  1177  //
  1178  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1179  // with awserr.Error's Code and Message methods to get detailed information about
  1180  // the error.
  1181  //
  1182  // See the AWS API reference guide for 's
  1183  // API operation InputService5TestCaseOperation1 for usage and error information.
  1184  func (c *InputService5ProtocolTest) InputService5TestCaseOperation1(input *InputService5TestShapeInputService5TestCaseOperation1Input) (*InputService5TestShapeInputService5TestCaseOperation1Output, error) {
  1185  	req, out := c.InputService5TestCaseOperation1Request(input)
  1186  	return out, req.Send()
  1187  }
  1188  
  1189  // InputService5TestCaseOperation1WithContext is the same as InputService5TestCaseOperation1 with the addition of
  1190  // the ability to pass a context and additional request options.
  1191  //
  1192  // See InputService5TestCaseOperation1 for details on how to use this API operation.
  1193  //
  1194  // The context must be non-nil and will be used for request cancellation. If
  1195  // the context is nil a panic will occur. In the future the SDK may create
  1196  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1197  // for more information on using Contexts.
  1198  func (c *InputService5ProtocolTest) InputService5TestCaseOperation1WithContext(ctx aws.Context, input *InputService5TestShapeInputService5TestCaseOperation1Input, opts ...request.Option) (*InputService5TestShapeInputService5TestCaseOperation1Output, error) {
  1199  	req, out := c.InputService5TestCaseOperation1Request(input)
  1200  	req.SetContext(ctx)
  1201  	req.ApplyOptions(opts...)
  1202  	return out, req.Send()
  1203  }
  1204  
  1205  type InputService5TestShapeInputService5TestCaseOperation1Input struct {
  1206  	_ struct{} `type:"structure"`
  1207  
  1208  	MapArg map[string]*string `type:"map" flattened:"true"`
  1209  }
  1210  
  1211  // SetMapArg sets the MapArg field's value.
  1212  func (s *InputService5TestShapeInputService5TestCaseOperation1Input) SetMapArg(v map[string]*string) *InputService5TestShapeInputService5TestCaseOperation1Input {
  1213  	s.MapArg = v
  1214  	return s
  1215  }
  1216  
  1217  type InputService5TestShapeInputService5TestCaseOperation1Output struct {
  1218  	_ struct{} `type:"structure"`
  1219  }
  1220  
  1221  // InputService6ProtocolTest provides the API operation methods for making requests to
  1222  // . See this package's package overview docs
  1223  // for details on the service.
  1224  //
  1225  // InputService6ProtocolTest methods are safe to use concurrently. It is not safe to
  1226  // modify mutate any of the struct's properties though.
  1227  type InputService6ProtocolTest struct {
  1228  	*client.Client
  1229  }
  1230  
  1231  // New creates a new instance of the InputService6ProtocolTest client with a session.
  1232  // If additional configuration is needed for the client instance use the optional
  1233  // aws.Config parameter to add your extra config.
  1234  //
  1235  // Example:
  1236  //     mySession := session.Must(session.NewSession())
  1237  //
  1238  //     // Create a InputService6ProtocolTest client from just a session.
  1239  //     svc := inputservice6protocoltest.New(mySession)
  1240  //
  1241  //     // Create a InputService6ProtocolTest client with additional configuration
  1242  //     svc := inputservice6protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1243  func NewInputService6ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService6ProtocolTest {
  1244  	c := p.ClientConfig("inputservice6protocoltest", cfgs...)
  1245  	return newInputService6ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1246  }
  1247  
  1248  // newClient creates, initializes and returns a new service client instance.
  1249  func newInputService6ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService6ProtocolTest {
  1250  	svc := &InputService6ProtocolTest{
  1251  		Client: client.New(
  1252  			cfg,
  1253  			metadata.ClientInfo{
  1254  				ServiceName:   "InputService6ProtocolTest",
  1255  				ServiceID:     "InputService6ProtocolTest",
  1256  				SigningName:   signingName,
  1257  				SigningRegion: signingRegion,
  1258  				PartitionID:   partitionID,
  1259  				Endpoint:      endpoint,
  1260  				APIVersion:    "2014-01-01",
  1261  			},
  1262  			handlers,
  1263  		),
  1264  	}
  1265  
  1266  	// Handlers
  1267  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1268  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  1269  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  1270  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  1271  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  1272  
  1273  	return svc
  1274  }
  1275  
  1276  // newRequest creates a new request for a InputService6ProtocolTest operation and runs any
  1277  // custom request initialization.
  1278  func (c *InputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1279  	req := c.NewRequest(op, params, data)
  1280  
  1281  	return req
  1282  }
  1283  
  1284  const opInputService6TestCaseOperation1 = "OperationName"
  1285  
  1286  // InputService6TestCaseOperation1Request generates a "aws/request.Request" representing the
  1287  // client's request for the InputService6TestCaseOperation1 operation. The "output" return
  1288  // value will be populated with the request's response once the request completes
  1289  // successfully.
  1290  //
  1291  // Use "Send" method on the returned Request to send the API call to the service.
  1292  // the "output" return value is not valid until after Send returns without error.
  1293  //
  1294  // See InputService6TestCaseOperation1 for more information on using the InputService6TestCaseOperation1
  1295  // API call, and error handling.
  1296  //
  1297  // This method is useful when you want to inject custom logic or configuration
  1298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1299  //
  1300  //
  1301  //    // Example sending a request using the InputService6TestCaseOperation1Request method.
  1302  //    req, resp := client.InputService6TestCaseOperation1Request(params)
  1303  //
  1304  //    err := req.Send()
  1305  //    if err == nil { // resp is now filled
  1306  //        fmt.Println(resp)
  1307  //    }
  1308  func (c *InputService6ProtocolTest) InputService6TestCaseOperation1Request(input *InputService6TestShapeInputService6TestCaseOperation1Input) (req *request.Request, output *InputService6TestShapeInputService6TestCaseOperation1Output) {
  1309  	op := &request.Operation{
  1310  		Name:     opInputService6TestCaseOperation1,
  1311  		HTTPPath: "/",
  1312  	}
  1313  
  1314  	if input == nil {
  1315  		input = &InputService6TestShapeInputService6TestCaseOperation1Input{}
  1316  	}
  1317  
  1318  	output = &InputService6TestShapeInputService6TestCaseOperation1Output{}
  1319  	req = c.newRequest(op, input, output)
  1320  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1321  	return
  1322  }
  1323  
  1324  // InputService6TestCaseOperation1 API operation for .
  1325  //
  1326  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1327  // with awserr.Error's Code and Message methods to get detailed information about
  1328  // the error.
  1329  //
  1330  // See the AWS API reference guide for 's
  1331  // API operation InputService6TestCaseOperation1 for usage and error information.
  1332  func (c *InputService6ProtocolTest) InputService6TestCaseOperation1(input *InputService6TestShapeInputService6TestCaseOperation1Input) (*InputService6TestShapeInputService6TestCaseOperation1Output, error) {
  1333  	req, out := c.InputService6TestCaseOperation1Request(input)
  1334  	return out, req.Send()
  1335  }
  1336  
  1337  // InputService6TestCaseOperation1WithContext is the same as InputService6TestCaseOperation1 with the addition of
  1338  // the ability to pass a context and additional request options.
  1339  //
  1340  // See InputService6TestCaseOperation1 for details on how to use this API operation.
  1341  //
  1342  // The context must be non-nil and will be used for request cancellation. If
  1343  // the context is nil a panic will occur. In the future the SDK may create
  1344  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1345  // for more information on using Contexts.
  1346  func (c *InputService6ProtocolTest) InputService6TestCaseOperation1WithContext(ctx aws.Context, input *InputService6TestShapeInputService6TestCaseOperation1Input, opts ...request.Option) (*InputService6TestShapeInputService6TestCaseOperation1Output, error) {
  1347  	req, out := c.InputService6TestCaseOperation1Request(input)
  1348  	req.SetContext(ctx)
  1349  	req.ApplyOptions(opts...)
  1350  	return out, req.Send()
  1351  }
  1352  
  1353  type InputService6TestShapeInputService6TestCaseOperation1Input struct {
  1354  	_ struct{} `type:"structure"`
  1355  
  1356  	ListArg []*string `locationNameList:"item" type:"list"`
  1357  }
  1358  
  1359  // SetListArg sets the ListArg field's value.
  1360  func (s *InputService6TestShapeInputService6TestCaseOperation1Input) SetListArg(v []*string) *InputService6TestShapeInputService6TestCaseOperation1Input {
  1361  	s.ListArg = v
  1362  	return s
  1363  }
  1364  
  1365  type InputService6TestShapeInputService6TestCaseOperation1Output struct {
  1366  	_ struct{} `type:"structure"`
  1367  }
  1368  
  1369  // InputService7ProtocolTest provides the API operation methods for making requests to
  1370  // . See this package's package overview docs
  1371  // for details on the service.
  1372  //
  1373  // InputService7ProtocolTest methods are safe to use concurrently. It is not safe to
  1374  // modify mutate any of the struct's properties though.
  1375  type InputService7ProtocolTest struct {
  1376  	*client.Client
  1377  }
  1378  
  1379  // New creates a new instance of the InputService7ProtocolTest client with a session.
  1380  // If additional configuration is needed for the client instance use the optional
  1381  // aws.Config parameter to add your extra config.
  1382  //
  1383  // Example:
  1384  //     mySession := session.Must(session.NewSession())
  1385  //
  1386  //     // Create a InputService7ProtocolTest client from just a session.
  1387  //     svc := inputservice7protocoltest.New(mySession)
  1388  //
  1389  //     // Create a InputService7ProtocolTest client with additional configuration
  1390  //     svc := inputservice7protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1391  func NewInputService7ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService7ProtocolTest {
  1392  	c := p.ClientConfig("inputservice7protocoltest", cfgs...)
  1393  	return newInputService7ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1394  }
  1395  
  1396  // newClient creates, initializes and returns a new service client instance.
  1397  func newInputService7ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService7ProtocolTest {
  1398  	svc := &InputService7ProtocolTest{
  1399  		Client: client.New(
  1400  			cfg,
  1401  			metadata.ClientInfo{
  1402  				ServiceName:   "InputService7ProtocolTest",
  1403  				ServiceID:     "InputService7ProtocolTest",
  1404  				SigningName:   signingName,
  1405  				SigningRegion: signingRegion,
  1406  				PartitionID:   partitionID,
  1407  				Endpoint:      endpoint,
  1408  				APIVersion:    "2014-01-01",
  1409  			},
  1410  			handlers,
  1411  		),
  1412  	}
  1413  
  1414  	// Handlers
  1415  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1416  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  1417  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  1418  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  1419  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  1420  
  1421  	return svc
  1422  }
  1423  
  1424  // newRequest creates a new request for a InputService7ProtocolTest operation and runs any
  1425  // custom request initialization.
  1426  func (c *InputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1427  	req := c.NewRequest(op, params, data)
  1428  
  1429  	return req
  1430  }
  1431  
  1432  const opInputService7TestCaseOperation1 = "OperationName"
  1433  
  1434  // InputService7TestCaseOperation1Request generates a "aws/request.Request" representing the
  1435  // client's request for the InputService7TestCaseOperation1 operation. The "output" return
  1436  // value will be populated with the request's response once the request completes
  1437  // successfully.
  1438  //
  1439  // Use "Send" method on the returned Request to send the API call to the service.
  1440  // the "output" return value is not valid until after Send returns without error.
  1441  //
  1442  // See InputService7TestCaseOperation1 for more information on using the InputService7TestCaseOperation1
  1443  // API call, and error handling.
  1444  //
  1445  // This method is useful when you want to inject custom logic or configuration
  1446  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1447  //
  1448  //
  1449  //    // Example sending a request using the InputService7TestCaseOperation1Request method.
  1450  //    req, resp := client.InputService7TestCaseOperation1Request(params)
  1451  //
  1452  //    err := req.Send()
  1453  //    if err == nil { // resp is now filled
  1454  //        fmt.Println(resp)
  1455  //    }
  1456  func (c *InputService7ProtocolTest) InputService7TestCaseOperation1Request(input *InputService7TestShapeInputService7TestCaseOperation1Input) (req *request.Request, output *InputService7TestShapeInputService7TestCaseOperation1Output) {
  1457  	op := &request.Operation{
  1458  		Name:     opInputService7TestCaseOperation1,
  1459  		HTTPPath: "/",
  1460  	}
  1461  
  1462  	if input == nil {
  1463  		input = &InputService7TestShapeInputService7TestCaseOperation1Input{}
  1464  	}
  1465  
  1466  	output = &InputService7TestShapeInputService7TestCaseOperation1Output{}
  1467  	req = c.newRequest(op, input, output)
  1468  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1469  	return
  1470  }
  1471  
  1472  // InputService7TestCaseOperation1 API operation for .
  1473  //
  1474  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1475  // with awserr.Error's Code and Message methods to get detailed information about
  1476  // the error.
  1477  //
  1478  // See the AWS API reference guide for 's
  1479  // API operation InputService7TestCaseOperation1 for usage and error information.
  1480  func (c *InputService7ProtocolTest) InputService7TestCaseOperation1(input *InputService7TestShapeInputService7TestCaseOperation1Input) (*InputService7TestShapeInputService7TestCaseOperation1Output, error) {
  1481  	req, out := c.InputService7TestCaseOperation1Request(input)
  1482  	return out, req.Send()
  1483  }
  1484  
  1485  // InputService7TestCaseOperation1WithContext is the same as InputService7TestCaseOperation1 with the addition of
  1486  // the ability to pass a context and additional request options.
  1487  //
  1488  // See InputService7TestCaseOperation1 for details on how to use this API operation.
  1489  //
  1490  // The context must be non-nil and will be used for request cancellation. If
  1491  // the context is nil a panic will occur. In the future the SDK may create
  1492  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1493  // for more information on using Contexts.
  1494  func (c *InputService7ProtocolTest) InputService7TestCaseOperation1WithContext(ctx aws.Context, input *InputService7TestShapeInputService7TestCaseOperation1Input, opts ...request.Option) (*InputService7TestShapeInputService7TestCaseOperation1Output, error) {
  1495  	req, out := c.InputService7TestCaseOperation1Request(input)
  1496  	req.SetContext(ctx)
  1497  	req.ApplyOptions(opts...)
  1498  	return out, req.Send()
  1499  }
  1500  
  1501  type InputService7TestShapeInputService7TestCaseOperation1Input struct {
  1502  	_ struct{} `type:"structure"`
  1503  
  1504  	ListArg []*string `locationNameList:"ListArgLocation" type:"list" flattened:"true"`
  1505  
  1506  	ScalarArg *string `type:"string"`
  1507  }
  1508  
  1509  // SetListArg sets the ListArg field's value.
  1510  func (s *InputService7TestShapeInputService7TestCaseOperation1Input) SetListArg(v []*string) *InputService7TestShapeInputService7TestCaseOperation1Input {
  1511  	s.ListArg = v
  1512  	return s
  1513  }
  1514  
  1515  // SetScalarArg sets the ScalarArg field's value.
  1516  func (s *InputService7TestShapeInputService7TestCaseOperation1Input) SetScalarArg(v string) *InputService7TestShapeInputService7TestCaseOperation1Input {
  1517  	s.ScalarArg = &v
  1518  	return s
  1519  }
  1520  
  1521  type InputService7TestShapeInputService7TestCaseOperation1Output struct {
  1522  	_ struct{} `type:"structure"`
  1523  }
  1524  
  1525  // InputService8ProtocolTest provides the API operation methods for making requests to
  1526  // . See this package's package overview docs
  1527  // for details on the service.
  1528  //
  1529  // InputService8ProtocolTest methods are safe to use concurrently. It is not safe to
  1530  // modify mutate any of the struct's properties though.
  1531  type InputService8ProtocolTest struct {
  1532  	*client.Client
  1533  }
  1534  
  1535  // New creates a new instance of the InputService8ProtocolTest client with a session.
  1536  // If additional configuration is needed for the client instance use the optional
  1537  // aws.Config parameter to add your extra config.
  1538  //
  1539  // Example:
  1540  //     mySession := session.Must(session.NewSession())
  1541  //
  1542  //     // Create a InputService8ProtocolTest client from just a session.
  1543  //     svc := inputservice8protocoltest.New(mySession)
  1544  //
  1545  //     // Create a InputService8ProtocolTest client with additional configuration
  1546  //     svc := inputservice8protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1547  func NewInputService8ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService8ProtocolTest {
  1548  	c := p.ClientConfig("inputservice8protocoltest", cfgs...)
  1549  	return newInputService8ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1550  }
  1551  
  1552  // newClient creates, initializes and returns a new service client instance.
  1553  func newInputService8ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService8ProtocolTest {
  1554  	svc := &InputService8ProtocolTest{
  1555  		Client: client.New(
  1556  			cfg,
  1557  			metadata.ClientInfo{
  1558  				ServiceName:   "InputService8ProtocolTest",
  1559  				ServiceID:     "InputService8ProtocolTest",
  1560  				SigningName:   signingName,
  1561  				SigningRegion: signingRegion,
  1562  				PartitionID:   partitionID,
  1563  				Endpoint:      endpoint,
  1564  				APIVersion:    "2014-01-01",
  1565  			},
  1566  			handlers,
  1567  		),
  1568  	}
  1569  
  1570  	// Handlers
  1571  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1572  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  1573  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  1574  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  1575  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  1576  
  1577  	return svc
  1578  }
  1579  
  1580  // newRequest creates a new request for a InputService8ProtocolTest operation and runs any
  1581  // custom request initialization.
  1582  func (c *InputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1583  	req := c.NewRequest(op, params, data)
  1584  
  1585  	return req
  1586  }
  1587  
  1588  const opInputService8TestCaseOperation1 = "OperationName"
  1589  
  1590  // InputService8TestCaseOperation1Request generates a "aws/request.Request" representing the
  1591  // client's request for the InputService8TestCaseOperation1 operation. The "output" return
  1592  // value will be populated with the request's response once the request completes
  1593  // successfully.
  1594  //
  1595  // Use "Send" method on the returned Request to send the API call to the service.
  1596  // the "output" return value is not valid until after Send returns without error.
  1597  //
  1598  // See InputService8TestCaseOperation1 for more information on using the InputService8TestCaseOperation1
  1599  // API call, and error handling.
  1600  //
  1601  // This method is useful when you want to inject custom logic or configuration
  1602  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1603  //
  1604  //
  1605  //    // Example sending a request using the InputService8TestCaseOperation1Request method.
  1606  //    req, resp := client.InputService8TestCaseOperation1Request(params)
  1607  //
  1608  //    err := req.Send()
  1609  //    if err == nil { // resp is now filled
  1610  //        fmt.Println(resp)
  1611  //    }
  1612  func (c *InputService8ProtocolTest) InputService8TestCaseOperation1Request(input *InputService8TestShapeInputService8TestCaseOperation1Input) (req *request.Request, output *InputService8TestShapeInputService8TestCaseOperation1Output) {
  1613  	op := &request.Operation{
  1614  		Name:     opInputService8TestCaseOperation1,
  1615  		HTTPPath: "/",
  1616  	}
  1617  
  1618  	if input == nil {
  1619  		input = &InputService8TestShapeInputService8TestCaseOperation1Input{}
  1620  	}
  1621  
  1622  	output = &InputService8TestShapeInputService8TestCaseOperation1Output{}
  1623  	req = c.newRequest(op, input, output)
  1624  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1625  	return
  1626  }
  1627  
  1628  // InputService8TestCaseOperation1 API operation for .
  1629  //
  1630  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1631  // with awserr.Error's Code and Message methods to get detailed information about
  1632  // the error.
  1633  //
  1634  // See the AWS API reference guide for 's
  1635  // API operation InputService8TestCaseOperation1 for usage and error information.
  1636  func (c *InputService8ProtocolTest) InputService8TestCaseOperation1(input *InputService8TestShapeInputService8TestCaseOperation1Input) (*InputService8TestShapeInputService8TestCaseOperation1Output, error) {
  1637  	req, out := c.InputService8TestCaseOperation1Request(input)
  1638  	return out, req.Send()
  1639  }
  1640  
  1641  // InputService8TestCaseOperation1WithContext is the same as InputService8TestCaseOperation1 with the addition of
  1642  // the ability to pass a context and additional request options.
  1643  //
  1644  // See InputService8TestCaseOperation1 for details on how to use this API operation.
  1645  //
  1646  // The context must be non-nil and will be used for request cancellation. If
  1647  // the context is nil a panic will occur. In the future the SDK may create
  1648  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1649  // for more information on using Contexts.
  1650  func (c *InputService8ProtocolTest) InputService8TestCaseOperation1WithContext(ctx aws.Context, input *InputService8TestShapeInputService8TestCaseOperation1Input, opts ...request.Option) (*InputService8TestShapeInputService8TestCaseOperation1Output, error) {
  1651  	req, out := c.InputService8TestCaseOperation1Request(input)
  1652  	req.SetContext(ctx)
  1653  	req.ApplyOptions(opts...)
  1654  	return out, req.Send()
  1655  }
  1656  
  1657  type InputService8TestShapeInputService8TestCaseOperation1Input struct {
  1658  	_ struct{} `type:"structure"`
  1659  
  1660  	MapArg map[string]*string `type:"map"`
  1661  }
  1662  
  1663  // SetMapArg sets the MapArg field's value.
  1664  func (s *InputService8TestShapeInputService8TestCaseOperation1Input) SetMapArg(v map[string]*string) *InputService8TestShapeInputService8TestCaseOperation1Input {
  1665  	s.MapArg = v
  1666  	return s
  1667  }
  1668  
  1669  type InputService8TestShapeInputService8TestCaseOperation1Output struct {
  1670  	_ struct{} `type:"structure"`
  1671  }
  1672  
  1673  // InputService9ProtocolTest provides the API operation methods for making requests to
  1674  // . See this package's package overview docs
  1675  // for details on the service.
  1676  //
  1677  // InputService9ProtocolTest methods are safe to use concurrently. It is not safe to
  1678  // modify mutate any of the struct's properties though.
  1679  type InputService9ProtocolTest struct {
  1680  	*client.Client
  1681  }
  1682  
  1683  // New creates a new instance of the InputService9ProtocolTest client with a session.
  1684  // If additional configuration is needed for the client instance use the optional
  1685  // aws.Config parameter to add your extra config.
  1686  //
  1687  // Example:
  1688  //     mySession := session.Must(session.NewSession())
  1689  //
  1690  //     // Create a InputService9ProtocolTest client from just a session.
  1691  //     svc := inputservice9protocoltest.New(mySession)
  1692  //
  1693  //     // Create a InputService9ProtocolTest client with additional configuration
  1694  //     svc := inputservice9protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1695  func NewInputService9ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService9ProtocolTest {
  1696  	c := p.ClientConfig("inputservice9protocoltest", cfgs...)
  1697  	return newInputService9ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1698  }
  1699  
  1700  // newClient creates, initializes and returns a new service client instance.
  1701  func newInputService9ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService9ProtocolTest {
  1702  	svc := &InputService9ProtocolTest{
  1703  		Client: client.New(
  1704  			cfg,
  1705  			metadata.ClientInfo{
  1706  				ServiceName:   "InputService9ProtocolTest",
  1707  				ServiceID:     "InputService9ProtocolTest",
  1708  				SigningName:   signingName,
  1709  				SigningRegion: signingRegion,
  1710  				PartitionID:   partitionID,
  1711  				Endpoint:      endpoint,
  1712  				APIVersion:    "2014-01-01",
  1713  			},
  1714  			handlers,
  1715  		),
  1716  	}
  1717  
  1718  	// Handlers
  1719  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1720  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  1721  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  1722  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  1723  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  1724  
  1725  	return svc
  1726  }
  1727  
  1728  // newRequest creates a new request for a InputService9ProtocolTest operation and runs any
  1729  // custom request initialization.
  1730  func (c *InputService9ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1731  	req := c.NewRequest(op, params, data)
  1732  
  1733  	return req
  1734  }
  1735  
  1736  const opInputService9TestCaseOperation1 = "OperationName"
  1737  
  1738  // InputService9TestCaseOperation1Request generates a "aws/request.Request" representing the
  1739  // client's request for the InputService9TestCaseOperation1 operation. The "output" return
  1740  // value will be populated with the request's response once the request completes
  1741  // successfully.
  1742  //
  1743  // Use "Send" method on the returned Request to send the API call to the service.
  1744  // the "output" return value is not valid until after Send returns without error.
  1745  //
  1746  // See InputService9TestCaseOperation1 for more information on using the InputService9TestCaseOperation1
  1747  // API call, and error handling.
  1748  //
  1749  // This method is useful when you want to inject custom logic or configuration
  1750  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1751  //
  1752  //
  1753  //    // Example sending a request using the InputService9TestCaseOperation1Request method.
  1754  //    req, resp := client.InputService9TestCaseOperation1Request(params)
  1755  //
  1756  //    err := req.Send()
  1757  //    if err == nil { // resp is now filled
  1758  //        fmt.Println(resp)
  1759  //    }
  1760  func (c *InputService9ProtocolTest) InputService9TestCaseOperation1Request(input *InputService9TestShapeInputService9TestCaseOperation1Input) (req *request.Request, output *InputService9TestShapeInputService9TestCaseOperation1Output) {
  1761  	op := &request.Operation{
  1762  		Name:     opInputService9TestCaseOperation1,
  1763  		HTTPPath: "/",
  1764  	}
  1765  
  1766  	if input == nil {
  1767  		input = &InputService9TestShapeInputService9TestCaseOperation1Input{}
  1768  	}
  1769  
  1770  	output = &InputService9TestShapeInputService9TestCaseOperation1Output{}
  1771  	req = c.newRequest(op, input, output)
  1772  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1773  	return
  1774  }
  1775  
  1776  // InputService9TestCaseOperation1 API operation for .
  1777  //
  1778  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1779  // with awserr.Error's Code and Message methods to get detailed information about
  1780  // the error.
  1781  //
  1782  // See the AWS API reference guide for 's
  1783  // API operation InputService9TestCaseOperation1 for usage and error information.
  1784  func (c *InputService9ProtocolTest) InputService9TestCaseOperation1(input *InputService9TestShapeInputService9TestCaseOperation1Input) (*InputService9TestShapeInputService9TestCaseOperation1Output, error) {
  1785  	req, out := c.InputService9TestCaseOperation1Request(input)
  1786  	return out, req.Send()
  1787  }
  1788  
  1789  // InputService9TestCaseOperation1WithContext is the same as InputService9TestCaseOperation1 with the addition of
  1790  // the ability to pass a context and additional request options.
  1791  //
  1792  // See InputService9TestCaseOperation1 for details on how to use this API operation.
  1793  //
  1794  // The context must be non-nil and will be used for request cancellation. If
  1795  // the context is nil a panic will occur. In the future the SDK may create
  1796  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1797  // for more information on using Contexts.
  1798  func (c *InputService9ProtocolTest) InputService9TestCaseOperation1WithContext(ctx aws.Context, input *InputService9TestShapeInputService9TestCaseOperation1Input, opts ...request.Option) (*InputService9TestShapeInputService9TestCaseOperation1Output, error) {
  1799  	req, out := c.InputService9TestCaseOperation1Request(input)
  1800  	req.SetContext(ctx)
  1801  	req.ApplyOptions(opts...)
  1802  	return out, req.Send()
  1803  }
  1804  
  1805  type InputService9TestShapeInputService9TestCaseOperation1Input struct {
  1806  	_ struct{} `type:"structure"`
  1807  
  1808  	MapArg map[string]*string `locationNameKey:"TheKey" locationNameValue:"TheValue" type:"map"`
  1809  }
  1810  
  1811  // SetMapArg sets the MapArg field's value.
  1812  func (s *InputService9TestShapeInputService9TestCaseOperation1Input) SetMapArg(v map[string]*string) *InputService9TestShapeInputService9TestCaseOperation1Input {
  1813  	s.MapArg = v
  1814  	return s
  1815  }
  1816  
  1817  type InputService9TestShapeInputService9TestCaseOperation1Output struct {
  1818  	_ struct{} `type:"structure"`
  1819  }
  1820  
  1821  // InputService10ProtocolTest provides the API operation methods for making requests to
  1822  // . See this package's package overview docs
  1823  // for details on the service.
  1824  //
  1825  // InputService10ProtocolTest methods are safe to use concurrently. It is not safe to
  1826  // modify mutate any of the struct's properties though.
  1827  type InputService10ProtocolTest struct {
  1828  	*client.Client
  1829  }
  1830  
  1831  // New creates a new instance of the InputService10ProtocolTest client with a session.
  1832  // If additional configuration is needed for the client instance use the optional
  1833  // aws.Config parameter to add your extra config.
  1834  //
  1835  // Example:
  1836  //     mySession := session.Must(session.NewSession())
  1837  //
  1838  //     // Create a InputService10ProtocolTest client from just a session.
  1839  //     svc := inputservice10protocoltest.New(mySession)
  1840  //
  1841  //     // Create a InputService10ProtocolTest client with additional configuration
  1842  //     svc := inputservice10protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1843  func NewInputService10ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService10ProtocolTest {
  1844  	c := p.ClientConfig("inputservice10protocoltest", cfgs...)
  1845  	return newInputService10ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1846  }
  1847  
  1848  // newClient creates, initializes and returns a new service client instance.
  1849  func newInputService10ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService10ProtocolTest {
  1850  	svc := &InputService10ProtocolTest{
  1851  		Client: client.New(
  1852  			cfg,
  1853  			metadata.ClientInfo{
  1854  				ServiceName:   "InputService10ProtocolTest",
  1855  				ServiceID:     "InputService10ProtocolTest",
  1856  				SigningName:   signingName,
  1857  				SigningRegion: signingRegion,
  1858  				PartitionID:   partitionID,
  1859  				Endpoint:      endpoint,
  1860  				APIVersion:    "2014-01-01",
  1861  			},
  1862  			handlers,
  1863  		),
  1864  	}
  1865  
  1866  	// Handlers
  1867  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1868  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  1869  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  1870  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  1871  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  1872  
  1873  	return svc
  1874  }
  1875  
  1876  // newRequest creates a new request for a InputService10ProtocolTest operation and runs any
  1877  // custom request initialization.
  1878  func (c *InputService10ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1879  	req := c.NewRequest(op, params, data)
  1880  
  1881  	return req
  1882  }
  1883  
  1884  const opInputService10TestCaseOperation1 = "OperationName"
  1885  
  1886  // InputService10TestCaseOperation1Request generates a "aws/request.Request" representing the
  1887  // client's request for the InputService10TestCaseOperation1 operation. The "output" return
  1888  // value will be populated with the request's response once the request completes
  1889  // successfully.
  1890  //
  1891  // Use "Send" method on the returned Request to send the API call to the service.
  1892  // the "output" return value is not valid until after Send returns without error.
  1893  //
  1894  // See InputService10TestCaseOperation1 for more information on using the InputService10TestCaseOperation1
  1895  // API call, and error handling.
  1896  //
  1897  // This method is useful when you want to inject custom logic or configuration
  1898  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1899  //
  1900  //
  1901  //    // Example sending a request using the InputService10TestCaseOperation1Request method.
  1902  //    req, resp := client.InputService10TestCaseOperation1Request(params)
  1903  //
  1904  //    err := req.Send()
  1905  //    if err == nil { // resp is now filled
  1906  //        fmt.Println(resp)
  1907  //    }
  1908  func (c *InputService10ProtocolTest) InputService10TestCaseOperation1Request(input *InputService10TestShapeInputService10TestCaseOperation1Input) (req *request.Request, output *InputService10TestShapeInputService10TestCaseOperation1Output) {
  1909  	op := &request.Operation{
  1910  		Name:     opInputService10TestCaseOperation1,
  1911  		HTTPPath: "/",
  1912  	}
  1913  
  1914  	if input == nil {
  1915  		input = &InputService10TestShapeInputService10TestCaseOperation1Input{}
  1916  	}
  1917  
  1918  	output = &InputService10TestShapeInputService10TestCaseOperation1Output{}
  1919  	req = c.newRequest(op, input, output)
  1920  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1921  	return
  1922  }
  1923  
  1924  // InputService10TestCaseOperation1 API operation for .
  1925  //
  1926  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1927  // with awserr.Error's Code and Message methods to get detailed information about
  1928  // the error.
  1929  //
  1930  // See the AWS API reference guide for 's
  1931  // API operation InputService10TestCaseOperation1 for usage and error information.
  1932  func (c *InputService10ProtocolTest) InputService10TestCaseOperation1(input *InputService10TestShapeInputService10TestCaseOperation1Input) (*InputService10TestShapeInputService10TestCaseOperation1Output, error) {
  1933  	req, out := c.InputService10TestCaseOperation1Request(input)
  1934  	return out, req.Send()
  1935  }
  1936  
  1937  // InputService10TestCaseOperation1WithContext is the same as InputService10TestCaseOperation1 with the addition of
  1938  // the ability to pass a context and additional request options.
  1939  //
  1940  // See InputService10TestCaseOperation1 for details on how to use this API operation.
  1941  //
  1942  // The context must be non-nil and will be used for request cancellation. If
  1943  // the context is nil a panic will occur. In the future the SDK may create
  1944  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1945  // for more information on using Contexts.
  1946  func (c *InputService10ProtocolTest) InputService10TestCaseOperation1WithContext(ctx aws.Context, input *InputService10TestShapeInputService10TestCaseOperation1Input, opts ...request.Option) (*InputService10TestShapeInputService10TestCaseOperation1Output, error) {
  1947  	req, out := c.InputService10TestCaseOperation1Request(input)
  1948  	req.SetContext(ctx)
  1949  	req.ApplyOptions(opts...)
  1950  	return out, req.Send()
  1951  }
  1952  
  1953  type InputService10TestShapeInputService10TestCaseOperation1Input struct {
  1954  	_ struct{} `type:"structure"`
  1955  
  1956  	// BlobArg is automatically base64 encoded/decoded by the SDK.
  1957  	BlobArg []byte `type:"blob"`
  1958  }
  1959  
  1960  // SetBlobArg sets the BlobArg field's value.
  1961  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) SetBlobArg(v []byte) *InputService10TestShapeInputService10TestCaseOperation1Input {
  1962  	s.BlobArg = v
  1963  	return s
  1964  }
  1965  
  1966  type InputService10TestShapeInputService10TestCaseOperation1Output struct {
  1967  	_ struct{} `type:"structure"`
  1968  }
  1969  
  1970  // InputService11ProtocolTest provides the API operation methods for making requests to
  1971  // . See this package's package overview docs
  1972  // for details on the service.
  1973  //
  1974  // InputService11ProtocolTest methods are safe to use concurrently. It is not safe to
  1975  // modify mutate any of the struct's properties though.
  1976  type InputService11ProtocolTest struct {
  1977  	*client.Client
  1978  }
  1979  
  1980  // New creates a new instance of the InputService11ProtocolTest client with a session.
  1981  // If additional configuration is needed for the client instance use the optional
  1982  // aws.Config parameter to add your extra config.
  1983  //
  1984  // Example:
  1985  //     mySession := session.Must(session.NewSession())
  1986  //
  1987  //     // Create a InputService11ProtocolTest client from just a session.
  1988  //     svc := inputservice11protocoltest.New(mySession)
  1989  //
  1990  //     // Create a InputService11ProtocolTest client with additional configuration
  1991  //     svc := inputservice11protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1992  func NewInputService11ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService11ProtocolTest {
  1993  	c := p.ClientConfig("inputservice11protocoltest", cfgs...)
  1994  	return newInputService11ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1995  }
  1996  
  1997  // newClient creates, initializes and returns a new service client instance.
  1998  func newInputService11ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService11ProtocolTest {
  1999  	svc := &InputService11ProtocolTest{
  2000  		Client: client.New(
  2001  			cfg,
  2002  			metadata.ClientInfo{
  2003  				ServiceName:   "InputService11ProtocolTest",
  2004  				ServiceID:     "InputService11ProtocolTest",
  2005  				SigningName:   signingName,
  2006  				SigningRegion: signingRegion,
  2007  				PartitionID:   partitionID,
  2008  				Endpoint:      endpoint,
  2009  				APIVersion:    "2014-01-01",
  2010  			},
  2011  			handlers,
  2012  		),
  2013  	}
  2014  
  2015  	// Handlers
  2016  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2017  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  2018  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  2019  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  2020  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  2021  
  2022  	return svc
  2023  }
  2024  
  2025  // newRequest creates a new request for a InputService11ProtocolTest operation and runs any
  2026  // custom request initialization.
  2027  func (c *InputService11ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2028  	req := c.NewRequest(op, params, data)
  2029  
  2030  	return req
  2031  }
  2032  
  2033  const opInputService11TestCaseOperation1 = "OperationName"
  2034  
  2035  // InputService11TestCaseOperation1Request generates a "aws/request.Request" representing the
  2036  // client's request for the InputService11TestCaseOperation1 operation. The "output" return
  2037  // value will be populated with the request's response once the request completes
  2038  // successfully.
  2039  //
  2040  // Use "Send" method on the returned Request to send the API call to the service.
  2041  // the "output" return value is not valid until after Send returns without error.
  2042  //
  2043  // See InputService11TestCaseOperation1 for more information on using the InputService11TestCaseOperation1
  2044  // API call, and error handling.
  2045  //
  2046  // This method is useful when you want to inject custom logic or configuration
  2047  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2048  //
  2049  //
  2050  //    // Example sending a request using the InputService11TestCaseOperation1Request method.
  2051  //    req, resp := client.InputService11TestCaseOperation1Request(params)
  2052  //
  2053  //    err := req.Send()
  2054  //    if err == nil { // resp is now filled
  2055  //        fmt.Println(resp)
  2056  //    }
  2057  func (c *InputService11ProtocolTest) InputService11TestCaseOperation1Request(input *InputService11TestShapeInputService11TestCaseOperation1Input) (req *request.Request, output *InputService11TestShapeInputService11TestCaseOperation1Output) {
  2058  	op := &request.Operation{
  2059  		Name:     opInputService11TestCaseOperation1,
  2060  		HTTPPath: "/",
  2061  	}
  2062  
  2063  	if input == nil {
  2064  		input = &InputService11TestShapeInputService11TestCaseOperation1Input{}
  2065  	}
  2066  
  2067  	output = &InputService11TestShapeInputService11TestCaseOperation1Output{}
  2068  	req = c.newRequest(op, input, output)
  2069  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2070  	return
  2071  }
  2072  
  2073  // InputService11TestCaseOperation1 API operation for .
  2074  //
  2075  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2076  // with awserr.Error's Code and Message methods to get detailed information about
  2077  // the error.
  2078  //
  2079  // See the AWS API reference guide for 's
  2080  // API operation InputService11TestCaseOperation1 for usage and error information.
  2081  func (c *InputService11ProtocolTest) InputService11TestCaseOperation1(input *InputService11TestShapeInputService11TestCaseOperation1Input) (*InputService11TestShapeInputService11TestCaseOperation1Output, error) {
  2082  	req, out := c.InputService11TestCaseOperation1Request(input)
  2083  	return out, req.Send()
  2084  }
  2085  
  2086  // InputService11TestCaseOperation1WithContext is the same as InputService11TestCaseOperation1 with the addition of
  2087  // the ability to pass a context and additional request options.
  2088  //
  2089  // See InputService11TestCaseOperation1 for details on how to use this API operation.
  2090  //
  2091  // The context must be non-nil and will be used for request cancellation. If
  2092  // the context is nil a panic will occur. In the future the SDK may create
  2093  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2094  // for more information on using Contexts.
  2095  func (c *InputService11ProtocolTest) InputService11TestCaseOperation1WithContext(ctx aws.Context, input *InputService11TestShapeInputService11TestCaseOperation1Input, opts ...request.Option) (*InputService11TestShapeInputService11TestCaseOperation1Output, error) {
  2096  	req, out := c.InputService11TestCaseOperation1Request(input)
  2097  	req.SetContext(ctx)
  2098  	req.ApplyOptions(opts...)
  2099  	return out, req.Send()
  2100  }
  2101  
  2102  type InputService11TestShapeInputService11TestCaseOperation1Input struct {
  2103  	_ struct{} `type:"structure"`
  2104  
  2105  	BlobArgs [][]byte `type:"list" flattened:"true"`
  2106  }
  2107  
  2108  // SetBlobArgs sets the BlobArgs field's value.
  2109  func (s *InputService11TestShapeInputService11TestCaseOperation1Input) SetBlobArgs(v [][]byte) *InputService11TestShapeInputService11TestCaseOperation1Input {
  2110  	s.BlobArgs = v
  2111  	return s
  2112  }
  2113  
  2114  type InputService11TestShapeInputService11TestCaseOperation1Output struct {
  2115  	_ struct{} `type:"structure"`
  2116  }
  2117  
  2118  // InputService12ProtocolTest provides the API operation methods for making requests to
  2119  // . See this package's package overview docs
  2120  // for details on the service.
  2121  //
  2122  // InputService12ProtocolTest methods are safe to use concurrently. It is not safe to
  2123  // modify mutate any of the struct's properties though.
  2124  type InputService12ProtocolTest struct {
  2125  	*client.Client
  2126  }
  2127  
  2128  // New creates a new instance of the InputService12ProtocolTest client with a session.
  2129  // If additional configuration is needed for the client instance use the optional
  2130  // aws.Config parameter to add your extra config.
  2131  //
  2132  // Example:
  2133  //     mySession := session.Must(session.NewSession())
  2134  //
  2135  //     // Create a InputService12ProtocolTest client from just a session.
  2136  //     svc := inputservice12protocoltest.New(mySession)
  2137  //
  2138  //     // Create a InputService12ProtocolTest client with additional configuration
  2139  //     svc := inputservice12protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2140  func NewInputService12ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService12ProtocolTest {
  2141  	c := p.ClientConfig("inputservice12protocoltest", cfgs...)
  2142  	return newInputService12ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2143  }
  2144  
  2145  // newClient creates, initializes and returns a new service client instance.
  2146  func newInputService12ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService12ProtocolTest {
  2147  	svc := &InputService12ProtocolTest{
  2148  		Client: client.New(
  2149  			cfg,
  2150  			metadata.ClientInfo{
  2151  				ServiceName:   "InputService12ProtocolTest",
  2152  				ServiceID:     "InputService12ProtocolTest",
  2153  				SigningName:   signingName,
  2154  				SigningRegion: signingRegion,
  2155  				PartitionID:   partitionID,
  2156  				Endpoint:      endpoint,
  2157  				APIVersion:    "2014-01-01",
  2158  			},
  2159  			handlers,
  2160  		),
  2161  	}
  2162  
  2163  	// Handlers
  2164  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2165  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  2166  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  2167  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  2168  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  2169  
  2170  	return svc
  2171  }
  2172  
  2173  // newRequest creates a new request for a InputService12ProtocolTest operation and runs any
  2174  // custom request initialization.
  2175  func (c *InputService12ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2176  	req := c.NewRequest(op, params, data)
  2177  
  2178  	return req
  2179  }
  2180  
  2181  const opInputService12TestCaseOperation1 = "OperationName"
  2182  
  2183  // InputService12TestCaseOperation1Request generates a "aws/request.Request" representing the
  2184  // client's request for the InputService12TestCaseOperation1 operation. The "output" return
  2185  // value will be populated with the request's response once the request completes
  2186  // successfully.
  2187  //
  2188  // Use "Send" method on the returned Request to send the API call to the service.
  2189  // the "output" return value is not valid until after Send returns without error.
  2190  //
  2191  // See InputService12TestCaseOperation1 for more information on using the InputService12TestCaseOperation1
  2192  // API call, and error handling.
  2193  //
  2194  // This method is useful when you want to inject custom logic or configuration
  2195  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2196  //
  2197  //
  2198  //    // Example sending a request using the InputService12TestCaseOperation1Request method.
  2199  //    req, resp := client.InputService12TestCaseOperation1Request(params)
  2200  //
  2201  //    err := req.Send()
  2202  //    if err == nil { // resp is now filled
  2203  //        fmt.Println(resp)
  2204  //    }
  2205  func (c *InputService12ProtocolTest) InputService12TestCaseOperation1Request(input *InputService12TestShapeInputService12TestCaseOperation1Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation1Output) {
  2206  	op := &request.Operation{
  2207  		Name:     opInputService12TestCaseOperation1,
  2208  		HTTPPath: "/",
  2209  	}
  2210  
  2211  	if input == nil {
  2212  		input = &InputService12TestShapeInputService12TestCaseOperation1Input{}
  2213  	}
  2214  
  2215  	output = &InputService12TestShapeInputService12TestCaseOperation1Output{}
  2216  	req = c.newRequest(op, input, output)
  2217  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2218  	return
  2219  }
  2220  
  2221  // InputService12TestCaseOperation1 API operation for .
  2222  //
  2223  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2224  // with awserr.Error's Code and Message methods to get detailed information about
  2225  // the error.
  2226  //
  2227  // See the AWS API reference guide for 's
  2228  // API operation InputService12TestCaseOperation1 for usage and error information.
  2229  func (c *InputService12ProtocolTest) InputService12TestCaseOperation1(input *InputService12TestShapeInputService12TestCaseOperation1Input) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) {
  2230  	req, out := c.InputService12TestCaseOperation1Request(input)
  2231  	return out, req.Send()
  2232  }
  2233  
  2234  // InputService12TestCaseOperation1WithContext is the same as InputService12TestCaseOperation1 with the addition of
  2235  // the ability to pass a context and additional request options.
  2236  //
  2237  // See InputService12TestCaseOperation1 for details on how to use this API operation.
  2238  //
  2239  // The context must be non-nil and will be used for request cancellation. If
  2240  // the context is nil a panic will occur. In the future the SDK may create
  2241  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2242  // for more information on using Contexts.
  2243  func (c *InputService12ProtocolTest) InputService12TestCaseOperation1WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation1Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) {
  2244  	req, out := c.InputService12TestCaseOperation1Request(input)
  2245  	req.SetContext(ctx)
  2246  	req.ApplyOptions(opts...)
  2247  	return out, req.Send()
  2248  }
  2249  
  2250  type InputService12TestShapeInputService12TestCaseOperation1Input struct {
  2251  	_ struct{} `type:"structure"`
  2252  
  2253  	TimeArg *time.Time `type:"timestamp"`
  2254  
  2255  	TimeCustom *time.Time `type:"timestamp" timestampFormat:"unixTimestamp"`
  2256  
  2257  	TimeFormat *time.Time `type:"timestamp" timestampFormat:"unixTimestamp"`
  2258  }
  2259  
  2260  // SetTimeArg sets the TimeArg field's value.
  2261  func (s *InputService12TestShapeInputService12TestCaseOperation1Input) SetTimeArg(v time.Time) *InputService12TestShapeInputService12TestCaseOperation1Input {
  2262  	s.TimeArg = &v
  2263  	return s
  2264  }
  2265  
  2266  // SetTimeCustom sets the TimeCustom field's value.
  2267  func (s *InputService12TestShapeInputService12TestCaseOperation1Input) SetTimeCustom(v time.Time) *InputService12TestShapeInputService12TestCaseOperation1Input {
  2268  	s.TimeCustom = &v
  2269  	return s
  2270  }
  2271  
  2272  // SetTimeFormat sets the TimeFormat field's value.
  2273  func (s *InputService12TestShapeInputService12TestCaseOperation1Input) SetTimeFormat(v time.Time) *InputService12TestShapeInputService12TestCaseOperation1Input {
  2274  	s.TimeFormat = &v
  2275  	return s
  2276  }
  2277  
  2278  type InputService12TestShapeInputService12TestCaseOperation1Output struct {
  2279  	_ struct{} `type:"structure"`
  2280  }
  2281  
  2282  // InputService13ProtocolTest provides the API operation methods for making requests to
  2283  // . See this package's package overview docs
  2284  // for details on the service.
  2285  //
  2286  // InputService13ProtocolTest methods are safe to use concurrently. It is not safe to
  2287  // modify mutate any of the struct's properties though.
  2288  type InputService13ProtocolTest struct {
  2289  	*client.Client
  2290  }
  2291  
  2292  // New creates a new instance of the InputService13ProtocolTest client with a session.
  2293  // If additional configuration is needed for the client instance use the optional
  2294  // aws.Config parameter to add your extra config.
  2295  //
  2296  // Example:
  2297  //     mySession := session.Must(session.NewSession())
  2298  //
  2299  //     // Create a InputService13ProtocolTest client from just a session.
  2300  //     svc := inputservice13protocoltest.New(mySession)
  2301  //
  2302  //     // Create a InputService13ProtocolTest client with additional configuration
  2303  //     svc := inputservice13protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2304  func NewInputService13ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService13ProtocolTest {
  2305  	c := p.ClientConfig("inputservice13protocoltest", cfgs...)
  2306  	return newInputService13ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2307  }
  2308  
  2309  // newClient creates, initializes and returns a new service client instance.
  2310  func newInputService13ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService13ProtocolTest {
  2311  	svc := &InputService13ProtocolTest{
  2312  		Client: client.New(
  2313  			cfg,
  2314  			metadata.ClientInfo{
  2315  				ServiceName:   "InputService13ProtocolTest",
  2316  				ServiceID:     "InputService13ProtocolTest",
  2317  				SigningName:   signingName,
  2318  				SigningRegion: signingRegion,
  2319  				PartitionID:   partitionID,
  2320  				Endpoint:      endpoint,
  2321  				APIVersion:    "2014-01-01",
  2322  			},
  2323  			handlers,
  2324  		),
  2325  	}
  2326  
  2327  	// Handlers
  2328  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2329  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  2330  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  2331  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  2332  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  2333  
  2334  	return svc
  2335  }
  2336  
  2337  // newRequest creates a new request for a InputService13ProtocolTest operation and runs any
  2338  // custom request initialization.
  2339  func (c *InputService13ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2340  	req := c.NewRequest(op, params, data)
  2341  
  2342  	return req
  2343  }
  2344  
  2345  const opInputService13TestCaseOperation1 = "OperationName"
  2346  
  2347  // InputService13TestCaseOperation1Request generates a "aws/request.Request" representing the
  2348  // client's request for the InputService13TestCaseOperation1 operation. The "output" return
  2349  // value will be populated with the request's response once the request completes
  2350  // successfully.
  2351  //
  2352  // Use "Send" method on the returned Request to send the API call to the service.
  2353  // the "output" return value is not valid until after Send returns without error.
  2354  //
  2355  // See InputService13TestCaseOperation1 for more information on using the InputService13TestCaseOperation1
  2356  // API call, and error handling.
  2357  //
  2358  // This method is useful when you want to inject custom logic or configuration
  2359  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2360  //
  2361  //
  2362  //    // Example sending a request using the InputService13TestCaseOperation1Request method.
  2363  //    req, resp := client.InputService13TestCaseOperation1Request(params)
  2364  //
  2365  //    err := req.Send()
  2366  //    if err == nil { // resp is now filled
  2367  //        fmt.Println(resp)
  2368  //    }
  2369  func (c *InputService13ProtocolTest) InputService13TestCaseOperation1Request(input *InputService13TestShapeInputService13TestCaseOperation1Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation1Output) {
  2370  	op := &request.Operation{
  2371  		Name:     opInputService13TestCaseOperation1,
  2372  		HTTPPath: "/",
  2373  	}
  2374  
  2375  	if input == nil {
  2376  		input = &InputService13TestShapeInputService13TestCaseOperation1Input{}
  2377  	}
  2378  
  2379  	output = &InputService13TestShapeInputService13TestCaseOperation1Output{}
  2380  	req = c.newRequest(op, input, output)
  2381  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2382  	return
  2383  }
  2384  
  2385  // InputService13TestCaseOperation1 API operation for .
  2386  //
  2387  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2388  // with awserr.Error's Code and Message methods to get detailed information about
  2389  // the error.
  2390  //
  2391  // See the AWS API reference guide for 's
  2392  // API operation InputService13TestCaseOperation1 for usage and error information.
  2393  func (c *InputService13ProtocolTest) InputService13TestCaseOperation1(input *InputService13TestShapeInputService13TestCaseOperation1Input) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) {
  2394  	req, out := c.InputService13TestCaseOperation1Request(input)
  2395  	return out, req.Send()
  2396  }
  2397  
  2398  // InputService13TestCaseOperation1WithContext is the same as InputService13TestCaseOperation1 with the addition of
  2399  // the ability to pass a context and additional request options.
  2400  //
  2401  // See InputService13TestCaseOperation1 for details on how to use this API operation.
  2402  //
  2403  // The context must be non-nil and will be used for request cancellation. If
  2404  // the context is nil a panic will occur. In the future the SDK may create
  2405  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2406  // for more information on using Contexts.
  2407  func (c *InputService13ProtocolTest) InputService13TestCaseOperation1WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation1Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) {
  2408  	req, out := c.InputService13TestCaseOperation1Request(input)
  2409  	req.SetContext(ctx)
  2410  	req.ApplyOptions(opts...)
  2411  	return out, req.Send()
  2412  }
  2413  
  2414  const opInputService13TestCaseOperation2 = "OperationName"
  2415  
  2416  // InputService13TestCaseOperation2Request generates a "aws/request.Request" representing the
  2417  // client's request for the InputService13TestCaseOperation2 operation. The "output" return
  2418  // value will be populated with the request's response once the request completes
  2419  // successfully.
  2420  //
  2421  // Use "Send" method on the returned Request to send the API call to the service.
  2422  // the "output" return value is not valid until after Send returns without error.
  2423  //
  2424  // See InputService13TestCaseOperation2 for more information on using the InputService13TestCaseOperation2
  2425  // API call, and error handling.
  2426  //
  2427  // This method is useful when you want to inject custom logic or configuration
  2428  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2429  //
  2430  //
  2431  //    // Example sending a request using the InputService13TestCaseOperation2Request method.
  2432  //    req, resp := client.InputService13TestCaseOperation2Request(params)
  2433  //
  2434  //    err := req.Send()
  2435  //    if err == nil { // resp is now filled
  2436  //        fmt.Println(resp)
  2437  //    }
  2438  func (c *InputService13ProtocolTest) InputService13TestCaseOperation2Request(input *InputService13TestShapeInputService13TestCaseOperation2Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation2Output) {
  2439  	op := &request.Operation{
  2440  		Name:     opInputService13TestCaseOperation2,
  2441  		HTTPPath: "/",
  2442  	}
  2443  
  2444  	if input == nil {
  2445  		input = &InputService13TestShapeInputService13TestCaseOperation2Input{}
  2446  	}
  2447  
  2448  	output = &InputService13TestShapeInputService13TestCaseOperation2Output{}
  2449  	req = c.newRequest(op, input, output)
  2450  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2451  	return
  2452  }
  2453  
  2454  // InputService13TestCaseOperation2 API operation for .
  2455  //
  2456  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2457  // with awserr.Error's Code and Message methods to get detailed information about
  2458  // the error.
  2459  //
  2460  // See the AWS API reference guide for 's
  2461  // API operation InputService13TestCaseOperation2 for usage and error information.
  2462  func (c *InputService13ProtocolTest) InputService13TestCaseOperation2(input *InputService13TestShapeInputService13TestCaseOperation2Input) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) {
  2463  	req, out := c.InputService13TestCaseOperation2Request(input)
  2464  	return out, req.Send()
  2465  }
  2466  
  2467  // InputService13TestCaseOperation2WithContext is the same as InputService13TestCaseOperation2 with the addition of
  2468  // the ability to pass a context and additional request options.
  2469  //
  2470  // See InputService13TestCaseOperation2 for details on how to use this API operation.
  2471  //
  2472  // The context must be non-nil and will be used for request cancellation. If
  2473  // the context is nil a panic will occur. In the future the SDK may create
  2474  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2475  // for more information on using Contexts.
  2476  func (c *InputService13ProtocolTest) InputService13TestCaseOperation2WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation2Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) {
  2477  	req, out := c.InputService13TestCaseOperation2Request(input)
  2478  	req.SetContext(ctx)
  2479  	req.ApplyOptions(opts...)
  2480  	return out, req.Send()
  2481  }
  2482  
  2483  const opInputService13TestCaseOperation3 = "OperationName"
  2484  
  2485  // InputService13TestCaseOperation3Request generates a "aws/request.Request" representing the
  2486  // client's request for the InputService13TestCaseOperation3 operation. The "output" return
  2487  // value will be populated with the request's response once the request completes
  2488  // successfully.
  2489  //
  2490  // Use "Send" method on the returned Request to send the API call to the service.
  2491  // the "output" return value is not valid until after Send returns without error.
  2492  //
  2493  // See InputService13TestCaseOperation3 for more information on using the InputService13TestCaseOperation3
  2494  // API call, and error handling.
  2495  //
  2496  // This method is useful when you want to inject custom logic or configuration
  2497  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2498  //
  2499  //
  2500  //    // Example sending a request using the InputService13TestCaseOperation3Request method.
  2501  //    req, resp := client.InputService13TestCaseOperation3Request(params)
  2502  //
  2503  //    err := req.Send()
  2504  //    if err == nil { // resp is now filled
  2505  //        fmt.Println(resp)
  2506  //    }
  2507  func (c *InputService13ProtocolTest) InputService13TestCaseOperation3Request(input *InputService13TestShapeInputService13TestCaseOperation3Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation3Output) {
  2508  	op := &request.Operation{
  2509  		Name:     opInputService13TestCaseOperation3,
  2510  		HTTPPath: "/",
  2511  	}
  2512  
  2513  	if input == nil {
  2514  		input = &InputService13TestShapeInputService13TestCaseOperation3Input{}
  2515  	}
  2516  
  2517  	output = &InputService13TestShapeInputService13TestCaseOperation3Output{}
  2518  	req = c.newRequest(op, input, output)
  2519  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2520  	return
  2521  }
  2522  
  2523  // InputService13TestCaseOperation3 API operation for .
  2524  //
  2525  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2526  // with awserr.Error's Code and Message methods to get detailed information about
  2527  // the error.
  2528  //
  2529  // See the AWS API reference guide for 's
  2530  // API operation InputService13TestCaseOperation3 for usage and error information.
  2531  func (c *InputService13ProtocolTest) InputService13TestCaseOperation3(input *InputService13TestShapeInputService13TestCaseOperation3Input) (*InputService13TestShapeInputService13TestCaseOperation3Output, error) {
  2532  	req, out := c.InputService13TestCaseOperation3Request(input)
  2533  	return out, req.Send()
  2534  }
  2535  
  2536  // InputService13TestCaseOperation3WithContext is the same as InputService13TestCaseOperation3 with the addition of
  2537  // the ability to pass a context and additional request options.
  2538  //
  2539  // See InputService13TestCaseOperation3 for details on how to use this API operation.
  2540  //
  2541  // The context must be non-nil and will be used for request cancellation. If
  2542  // the context is nil a panic will occur. In the future the SDK may create
  2543  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2544  // for more information on using Contexts.
  2545  func (c *InputService13ProtocolTest) InputService13TestCaseOperation3WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation3Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation3Output, error) {
  2546  	req, out := c.InputService13TestCaseOperation3Request(input)
  2547  	req.SetContext(ctx)
  2548  	req.ApplyOptions(opts...)
  2549  	return out, req.Send()
  2550  }
  2551  
  2552  const opInputService13TestCaseOperation4 = "OperationName"
  2553  
  2554  // InputService13TestCaseOperation4Request generates a "aws/request.Request" representing the
  2555  // client's request for the InputService13TestCaseOperation4 operation. The "output" return
  2556  // value will be populated with the request's response once the request completes
  2557  // successfully.
  2558  //
  2559  // Use "Send" method on the returned Request to send the API call to the service.
  2560  // the "output" return value is not valid until after Send returns without error.
  2561  //
  2562  // See InputService13TestCaseOperation4 for more information on using the InputService13TestCaseOperation4
  2563  // API call, and error handling.
  2564  //
  2565  // This method is useful when you want to inject custom logic or configuration
  2566  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2567  //
  2568  //
  2569  //    // Example sending a request using the InputService13TestCaseOperation4Request method.
  2570  //    req, resp := client.InputService13TestCaseOperation4Request(params)
  2571  //
  2572  //    err := req.Send()
  2573  //    if err == nil { // resp is now filled
  2574  //        fmt.Println(resp)
  2575  //    }
  2576  func (c *InputService13ProtocolTest) InputService13TestCaseOperation4Request(input *InputService13TestShapeInputService13TestCaseOperation4Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation4Output) {
  2577  	op := &request.Operation{
  2578  		Name:     opInputService13TestCaseOperation4,
  2579  		HTTPPath: "/",
  2580  	}
  2581  
  2582  	if input == nil {
  2583  		input = &InputService13TestShapeInputService13TestCaseOperation4Input{}
  2584  	}
  2585  
  2586  	output = &InputService13TestShapeInputService13TestCaseOperation4Output{}
  2587  	req = c.newRequest(op, input, output)
  2588  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2589  	return
  2590  }
  2591  
  2592  // InputService13TestCaseOperation4 API operation for .
  2593  //
  2594  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2595  // with awserr.Error's Code and Message methods to get detailed information about
  2596  // the error.
  2597  //
  2598  // See the AWS API reference guide for 's
  2599  // API operation InputService13TestCaseOperation4 for usage and error information.
  2600  func (c *InputService13ProtocolTest) InputService13TestCaseOperation4(input *InputService13TestShapeInputService13TestCaseOperation4Input) (*InputService13TestShapeInputService13TestCaseOperation4Output, error) {
  2601  	req, out := c.InputService13TestCaseOperation4Request(input)
  2602  	return out, req.Send()
  2603  }
  2604  
  2605  // InputService13TestCaseOperation4WithContext is the same as InputService13TestCaseOperation4 with the addition of
  2606  // the ability to pass a context and additional request options.
  2607  //
  2608  // See InputService13TestCaseOperation4 for details on how to use this API operation.
  2609  //
  2610  // The context must be non-nil and will be used for request cancellation. If
  2611  // the context is nil a panic will occur. In the future the SDK may create
  2612  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2613  // for more information on using Contexts.
  2614  func (c *InputService13ProtocolTest) InputService13TestCaseOperation4WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation4Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation4Output, error) {
  2615  	req, out := c.InputService13TestCaseOperation4Request(input)
  2616  	req.SetContext(ctx)
  2617  	req.ApplyOptions(opts...)
  2618  	return out, req.Send()
  2619  }
  2620  
  2621  const opInputService13TestCaseOperation5 = "OperationName"
  2622  
  2623  // InputService13TestCaseOperation5Request generates a "aws/request.Request" representing the
  2624  // client's request for the InputService13TestCaseOperation5 operation. The "output" return
  2625  // value will be populated with the request's response once the request completes
  2626  // successfully.
  2627  //
  2628  // Use "Send" method on the returned Request to send the API call to the service.
  2629  // the "output" return value is not valid until after Send returns without error.
  2630  //
  2631  // See InputService13TestCaseOperation5 for more information on using the InputService13TestCaseOperation5
  2632  // API call, and error handling.
  2633  //
  2634  // This method is useful when you want to inject custom logic or configuration
  2635  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2636  //
  2637  //
  2638  //    // Example sending a request using the InputService13TestCaseOperation5Request method.
  2639  //    req, resp := client.InputService13TestCaseOperation5Request(params)
  2640  //
  2641  //    err := req.Send()
  2642  //    if err == nil { // resp is now filled
  2643  //        fmt.Println(resp)
  2644  //    }
  2645  func (c *InputService13ProtocolTest) InputService13TestCaseOperation5Request(input *InputService13TestShapeInputService13TestCaseOperation5Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation5Output) {
  2646  	op := &request.Operation{
  2647  		Name:     opInputService13TestCaseOperation5,
  2648  		HTTPPath: "/",
  2649  	}
  2650  
  2651  	if input == nil {
  2652  		input = &InputService13TestShapeInputService13TestCaseOperation5Input{}
  2653  	}
  2654  
  2655  	output = &InputService13TestShapeInputService13TestCaseOperation5Output{}
  2656  	req = c.newRequest(op, input, output)
  2657  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2658  	return
  2659  }
  2660  
  2661  // InputService13TestCaseOperation5 API operation for .
  2662  //
  2663  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2664  // with awserr.Error's Code and Message methods to get detailed information about
  2665  // the error.
  2666  //
  2667  // See the AWS API reference guide for 's
  2668  // API operation InputService13TestCaseOperation5 for usage and error information.
  2669  func (c *InputService13ProtocolTest) InputService13TestCaseOperation5(input *InputService13TestShapeInputService13TestCaseOperation5Input) (*InputService13TestShapeInputService13TestCaseOperation5Output, error) {
  2670  	req, out := c.InputService13TestCaseOperation5Request(input)
  2671  	return out, req.Send()
  2672  }
  2673  
  2674  // InputService13TestCaseOperation5WithContext is the same as InputService13TestCaseOperation5 with the addition of
  2675  // the ability to pass a context and additional request options.
  2676  //
  2677  // See InputService13TestCaseOperation5 for details on how to use this API operation.
  2678  //
  2679  // The context must be non-nil and will be used for request cancellation. If
  2680  // the context is nil a panic will occur. In the future the SDK may create
  2681  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2682  // for more information on using Contexts.
  2683  func (c *InputService13ProtocolTest) InputService13TestCaseOperation5WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation5Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation5Output, error) {
  2684  	req, out := c.InputService13TestCaseOperation5Request(input)
  2685  	req.SetContext(ctx)
  2686  	req.ApplyOptions(opts...)
  2687  	return out, req.Send()
  2688  }
  2689  
  2690  const opInputService13TestCaseOperation6 = "OperationName"
  2691  
  2692  // InputService13TestCaseOperation6Request generates a "aws/request.Request" representing the
  2693  // client's request for the InputService13TestCaseOperation6 operation. The "output" return
  2694  // value will be populated with the request's response once the request completes
  2695  // successfully.
  2696  //
  2697  // Use "Send" method on the returned Request to send the API call to the service.
  2698  // the "output" return value is not valid until after Send returns without error.
  2699  //
  2700  // See InputService13TestCaseOperation6 for more information on using the InputService13TestCaseOperation6
  2701  // API call, and error handling.
  2702  //
  2703  // This method is useful when you want to inject custom logic or configuration
  2704  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2705  //
  2706  //
  2707  //    // Example sending a request using the InputService13TestCaseOperation6Request method.
  2708  //    req, resp := client.InputService13TestCaseOperation6Request(params)
  2709  //
  2710  //    err := req.Send()
  2711  //    if err == nil { // resp is now filled
  2712  //        fmt.Println(resp)
  2713  //    }
  2714  func (c *InputService13ProtocolTest) InputService13TestCaseOperation6Request(input *InputService13TestShapeInputService13TestCaseOperation6Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation6Output) {
  2715  	op := &request.Operation{
  2716  		Name:     opInputService13TestCaseOperation6,
  2717  		HTTPPath: "/",
  2718  	}
  2719  
  2720  	if input == nil {
  2721  		input = &InputService13TestShapeInputService13TestCaseOperation6Input{}
  2722  	}
  2723  
  2724  	output = &InputService13TestShapeInputService13TestCaseOperation6Output{}
  2725  	req = c.newRequest(op, input, output)
  2726  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2727  	return
  2728  }
  2729  
  2730  // InputService13TestCaseOperation6 API operation for .
  2731  //
  2732  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2733  // with awserr.Error's Code and Message methods to get detailed information about
  2734  // the error.
  2735  //
  2736  // See the AWS API reference guide for 's
  2737  // API operation InputService13TestCaseOperation6 for usage and error information.
  2738  func (c *InputService13ProtocolTest) InputService13TestCaseOperation6(input *InputService13TestShapeInputService13TestCaseOperation6Input) (*InputService13TestShapeInputService13TestCaseOperation6Output, error) {
  2739  	req, out := c.InputService13TestCaseOperation6Request(input)
  2740  	return out, req.Send()
  2741  }
  2742  
  2743  // InputService13TestCaseOperation6WithContext is the same as InputService13TestCaseOperation6 with the addition of
  2744  // the ability to pass a context and additional request options.
  2745  //
  2746  // See InputService13TestCaseOperation6 for details on how to use this API operation.
  2747  //
  2748  // The context must be non-nil and will be used for request cancellation. If
  2749  // the context is nil a panic will occur. In the future the SDK may create
  2750  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2751  // for more information on using Contexts.
  2752  func (c *InputService13ProtocolTest) InputService13TestCaseOperation6WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation6Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation6Output, error) {
  2753  	req, out := c.InputService13TestCaseOperation6Request(input)
  2754  	req.SetContext(ctx)
  2755  	req.ApplyOptions(opts...)
  2756  	return out, req.Send()
  2757  }
  2758  
  2759  type InputService13TestShapeInputService13TestCaseOperation1Input struct {
  2760  	_ struct{} `type:"structure"`
  2761  
  2762  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2763  }
  2764  
  2765  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2766  func (s *InputService13TestShapeInputService13TestCaseOperation1Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation1Input {
  2767  	s.RecursiveStruct = v
  2768  	return s
  2769  }
  2770  
  2771  type InputService13TestShapeInputService13TestCaseOperation1Output struct {
  2772  	_ struct{} `type:"structure"`
  2773  }
  2774  
  2775  type InputService13TestShapeInputService13TestCaseOperation2Input struct {
  2776  	_ struct{} `type:"structure"`
  2777  
  2778  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2779  }
  2780  
  2781  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2782  func (s *InputService13TestShapeInputService13TestCaseOperation2Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation2Input {
  2783  	s.RecursiveStruct = v
  2784  	return s
  2785  }
  2786  
  2787  type InputService13TestShapeInputService13TestCaseOperation2Output struct {
  2788  	_ struct{} `type:"structure"`
  2789  }
  2790  
  2791  type InputService13TestShapeInputService13TestCaseOperation3Input struct {
  2792  	_ struct{} `type:"structure"`
  2793  
  2794  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2795  }
  2796  
  2797  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2798  func (s *InputService13TestShapeInputService13TestCaseOperation3Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation3Input {
  2799  	s.RecursiveStruct = v
  2800  	return s
  2801  }
  2802  
  2803  type InputService13TestShapeInputService13TestCaseOperation3Output struct {
  2804  	_ struct{} `type:"structure"`
  2805  }
  2806  
  2807  type InputService13TestShapeInputService13TestCaseOperation4Input struct {
  2808  	_ struct{} `type:"structure"`
  2809  
  2810  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2811  }
  2812  
  2813  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2814  func (s *InputService13TestShapeInputService13TestCaseOperation4Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation4Input {
  2815  	s.RecursiveStruct = v
  2816  	return s
  2817  }
  2818  
  2819  type InputService13TestShapeInputService13TestCaseOperation4Output struct {
  2820  	_ struct{} `type:"structure"`
  2821  }
  2822  
  2823  type InputService13TestShapeInputService13TestCaseOperation5Input struct {
  2824  	_ struct{} `type:"structure"`
  2825  
  2826  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2827  }
  2828  
  2829  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2830  func (s *InputService13TestShapeInputService13TestCaseOperation5Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation5Input {
  2831  	s.RecursiveStruct = v
  2832  	return s
  2833  }
  2834  
  2835  type InputService13TestShapeInputService13TestCaseOperation5Output struct {
  2836  	_ struct{} `type:"structure"`
  2837  }
  2838  
  2839  type InputService13TestShapeInputService13TestCaseOperation6Input struct {
  2840  	_ struct{} `type:"structure"`
  2841  
  2842  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2843  }
  2844  
  2845  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2846  func (s *InputService13TestShapeInputService13TestCaseOperation6Input) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeInputService13TestCaseOperation6Input {
  2847  	s.RecursiveStruct = v
  2848  	return s
  2849  }
  2850  
  2851  type InputService13TestShapeInputService13TestCaseOperation6Output struct {
  2852  	_ struct{} `type:"structure"`
  2853  }
  2854  
  2855  type InputService13TestShapeRecursiveStructType struct {
  2856  	_ struct{} `type:"structure"`
  2857  
  2858  	NoRecurse *string `type:"string"`
  2859  
  2860  	RecursiveList []*InputService13TestShapeRecursiveStructType `type:"list"`
  2861  
  2862  	RecursiveMap map[string]*InputService13TestShapeRecursiveStructType `type:"map"`
  2863  
  2864  	RecursiveStruct *InputService13TestShapeRecursiveStructType `type:"structure"`
  2865  }
  2866  
  2867  // SetNoRecurse sets the NoRecurse field's value.
  2868  func (s *InputService13TestShapeRecursiveStructType) SetNoRecurse(v string) *InputService13TestShapeRecursiveStructType {
  2869  	s.NoRecurse = &v
  2870  	return s
  2871  }
  2872  
  2873  // SetRecursiveList sets the RecursiveList field's value.
  2874  func (s *InputService13TestShapeRecursiveStructType) SetRecursiveList(v []*InputService13TestShapeRecursiveStructType) *InputService13TestShapeRecursiveStructType {
  2875  	s.RecursiveList = v
  2876  	return s
  2877  }
  2878  
  2879  // SetRecursiveMap sets the RecursiveMap field's value.
  2880  func (s *InputService13TestShapeRecursiveStructType) SetRecursiveMap(v map[string]*InputService13TestShapeRecursiveStructType) *InputService13TestShapeRecursiveStructType {
  2881  	s.RecursiveMap = v
  2882  	return s
  2883  }
  2884  
  2885  // SetRecursiveStruct sets the RecursiveStruct field's value.
  2886  func (s *InputService13TestShapeRecursiveStructType) SetRecursiveStruct(v *InputService13TestShapeRecursiveStructType) *InputService13TestShapeRecursiveStructType {
  2887  	s.RecursiveStruct = v
  2888  	return s
  2889  }
  2890  
  2891  // InputService14ProtocolTest provides the API operation methods for making requests to
  2892  // . See this package's package overview docs
  2893  // for details on the service.
  2894  //
  2895  // InputService14ProtocolTest methods are safe to use concurrently. It is not safe to
  2896  // modify mutate any of the struct's properties though.
  2897  type InputService14ProtocolTest struct {
  2898  	*client.Client
  2899  }
  2900  
  2901  // New creates a new instance of the InputService14ProtocolTest client with a session.
  2902  // If additional configuration is needed for the client instance use the optional
  2903  // aws.Config parameter to add your extra config.
  2904  //
  2905  // Example:
  2906  //     mySession := session.Must(session.NewSession())
  2907  //
  2908  //     // Create a InputService14ProtocolTest client from just a session.
  2909  //     svc := inputservice14protocoltest.New(mySession)
  2910  //
  2911  //     // Create a InputService14ProtocolTest client with additional configuration
  2912  //     svc := inputservice14protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2913  func NewInputService14ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService14ProtocolTest {
  2914  	c := p.ClientConfig("inputservice14protocoltest", cfgs...)
  2915  	return newInputService14ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2916  }
  2917  
  2918  // newClient creates, initializes and returns a new service client instance.
  2919  func newInputService14ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService14ProtocolTest {
  2920  	svc := &InputService14ProtocolTest{
  2921  		Client: client.New(
  2922  			cfg,
  2923  			metadata.ClientInfo{
  2924  				ServiceName:   "InputService14ProtocolTest",
  2925  				ServiceID:     "InputService14ProtocolTest",
  2926  				SigningName:   signingName,
  2927  				SigningRegion: signingRegion,
  2928  				PartitionID:   partitionID,
  2929  				Endpoint:      endpoint,
  2930  				APIVersion:    "2014-01-01",
  2931  			},
  2932  			handlers,
  2933  		),
  2934  	}
  2935  
  2936  	// Handlers
  2937  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2938  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  2939  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  2940  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  2941  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  2942  
  2943  	return svc
  2944  }
  2945  
  2946  // newRequest creates a new request for a InputService14ProtocolTest operation and runs any
  2947  // custom request initialization.
  2948  func (c *InputService14ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2949  	req := c.NewRequest(op, params, data)
  2950  
  2951  	return req
  2952  }
  2953  
  2954  const opInputService14TestCaseOperation1 = "OperationName"
  2955  
  2956  // InputService14TestCaseOperation1Request generates a "aws/request.Request" representing the
  2957  // client's request for the InputService14TestCaseOperation1 operation. The "output" return
  2958  // value will be populated with the request's response once the request completes
  2959  // successfully.
  2960  //
  2961  // Use "Send" method on the returned Request to send the API call to the service.
  2962  // the "output" return value is not valid until after Send returns without error.
  2963  //
  2964  // See InputService14TestCaseOperation1 for more information on using the InputService14TestCaseOperation1
  2965  // API call, and error handling.
  2966  //
  2967  // This method is useful when you want to inject custom logic or configuration
  2968  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2969  //
  2970  //
  2971  //    // Example sending a request using the InputService14TestCaseOperation1Request method.
  2972  //    req, resp := client.InputService14TestCaseOperation1Request(params)
  2973  //
  2974  //    err := req.Send()
  2975  //    if err == nil { // resp is now filled
  2976  //        fmt.Println(resp)
  2977  //    }
  2978  func (c *InputService14ProtocolTest) InputService14TestCaseOperation1Request(input *InputService14TestShapeInputService14TestCaseOperation1Input) (req *request.Request, output *InputService14TestShapeInputService14TestCaseOperation1Output) {
  2979  	op := &request.Operation{
  2980  		Name:       opInputService14TestCaseOperation1,
  2981  		HTTPMethod: "POST",
  2982  		HTTPPath:   "/",
  2983  	}
  2984  
  2985  	if input == nil {
  2986  		input = &InputService14TestShapeInputService14TestCaseOperation1Input{}
  2987  	}
  2988  
  2989  	output = &InputService14TestShapeInputService14TestCaseOperation1Output{}
  2990  	req = c.newRequest(op, input, output)
  2991  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2992  	return
  2993  }
  2994  
  2995  // InputService14TestCaseOperation1 API operation for .
  2996  //
  2997  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2998  // with awserr.Error's Code and Message methods to get detailed information about
  2999  // the error.
  3000  //
  3001  // See the AWS API reference guide for 's
  3002  // API operation InputService14TestCaseOperation1 for usage and error information.
  3003  func (c *InputService14ProtocolTest) InputService14TestCaseOperation1(input *InputService14TestShapeInputService14TestCaseOperation1Input) (*InputService14TestShapeInputService14TestCaseOperation1Output, error) {
  3004  	req, out := c.InputService14TestCaseOperation1Request(input)
  3005  	return out, req.Send()
  3006  }
  3007  
  3008  // InputService14TestCaseOperation1WithContext is the same as InputService14TestCaseOperation1 with the addition of
  3009  // the ability to pass a context and additional request options.
  3010  //
  3011  // See InputService14TestCaseOperation1 for details on how to use this API operation.
  3012  //
  3013  // The context must be non-nil and will be used for request cancellation. If
  3014  // the context is nil a panic will occur. In the future the SDK may create
  3015  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3016  // for more information on using Contexts.
  3017  func (c *InputService14ProtocolTest) InputService14TestCaseOperation1WithContext(ctx aws.Context, input *InputService14TestShapeInputService14TestCaseOperation1Input, opts ...request.Option) (*InputService14TestShapeInputService14TestCaseOperation1Output, error) {
  3018  	req, out := c.InputService14TestCaseOperation1Request(input)
  3019  	req.SetContext(ctx)
  3020  	req.ApplyOptions(opts...)
  3021  	return out, req.Send()
  3022  }
  3023  
  3024  const opInputService14TestCaseOperation2 = "OperationName"
  3025  
  3026  // InputService14TestCaseOperation2Request generates a "aws/request.Request" representing the
  3027  // client's request for the InputService14TestCaseOperation2 operation. The "output" return
  3028  // value will be populated with the request's response once the request completes
  3029  // successfully.
  3030  //
  3031  // Use "Send" method on the returned Request to send the API call to the service.
  3032  // the "output" return value is not valid until after Send returns without error.
  3033  //
  3034  // See InputService14TestCaseOperation2 for more information on using the InputService14TestCaseOperation2
  3035  // API call, and error handling.
  3036  //
  3037  // This method is useful when you want to inject custom logic or configuration
  3038  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3039  //
  3040  //
  3041  //    // Example sending a request using the InputService14TestCaseOperation2Request method.
  3042  //    req, resp := client.InputService14TestCaseOperation2Request(params)
  3043  //
  3044  //    err := req.Send()
  3045  //    if err == nil { // resp is now filled
  3046  //        fmt.Println(resp)
  3047  //    }
  3048  func (c *InputService14ProtocolTest) InputService14TestCaseOperation2Request(input *InputService14TestShapeInputService14TestCaseOperation2Input) (req *request.Request, output *InputService14TestShapeInputService14TestCaseOperation2Output) {
  3049  	op := &request.Operation{
  3050  		Name:       opInputService14TestCaseOperation2,
  3051  		HTTPMethod: "POST",
  3052  		HTTPPath:   "/",
  3053  	}
  3054  
  3055  	if input == nil {
  3056  		input = &InputService14TestShapeInputService14TestCaseOperation2Input{}
  3057  	}
  3058  
  3059  	output = &InputService14TestShapeInputService14TestCaseOperation2Output{}
  3060  	req = c.newRequest(op, input, output)
  3061  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3062  	return
  3063  }
  3064  
  3065  // InputService14TestCaseOperation2 API operation for .
  3066  //
  3067  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3068  // with awserr.Error's Code and Message methods to get detailed information about
  3069  // the error.
  3070  //
  3071  // See the AWS API reference guide for 's
  3072  // API operation InputService14TestCaseOperation2 for usage and error information.
  3073  func (c *InputService14ProtocolTest) InputService14TestCaseOperation2(input *InputService14TestShapeInputService14TestCaseOperation2Input) (*InputService14TestShapeInputService14TestCaseOperation2Output, error) {
  3074  	req, out := c.InputService14TestCaseOperation2Request(input)
  3075  	return out, req.Send()
  3076  }
  3077  
  3078  // InputService14TestCaseOperation2WithContext is the same as InputService14TestCaseOperation2 with the addition of
  3079  // the ability to pass a context and additional request options.
  3080  //
  3081  // See InputService14TestCaseOperation2 for details on how to use this API operation.
  3082  //
  3083  // The context must be non-nil and will be used for request cancellation. If
  3084  // the context is nil a panic will occur. In the future the SDK may create
  3085  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3086  // for more information on using Contexts.
  3087  func (c *InputService14ProtocolTest) InputService14TestCaseOperation2WithContext(ctx aws.Context, input *InputService14TestShapeInputService14TestCaseOperation2Input, opts ...request.Option) (*InputService14TestShapeInputService14TestCaseOperation2Output, error) {
  3088  	req, out := c.InputService14TestCaseOperation2Request(input)
  3089  	req.SetContext(ctx)
  3090  	req.ApplyOptions(opts...)
  3091  	return out, req.Send()
  3092  }
  3093  
  3094  type InputService14TestShapeInputService14TestCaseOperation1Input struct {
  3095  	_ struct{} `type:"structure"`
  3096  
  3097  	Token *string `type:"string" idempotencyToken:"true"`
  3098  }
  3099  
  3100  // SetToken sets the Token field's value.
  3101  func (s *InputService14TestShapeInputService14TestCaseOperation1Input) SetToken(v string) *InputService14TestShapeInputService14TestCaseOperation1Input {
  3102  	s.Token = &v
  3103  	return s
  3104  }
  3105  
  3106  type InputService14TestShapeInputService14TestCaseOperation1Output struct {
  3107  	_ struct{} `type:"structure"`
  3108  }
  3109  
  3110  type InputService14TestShapeInputService14TestCaseOperation2Input struct {
  3111  	_ struct{} `type:"structure"`
  3112  
  3113  	Token *string `type:"string" idempotencyToken:"true"`
  3114  }
  3115  
  3116  // SetToken sets the Token field's value.
  3117  func (s *InputService14TestShapeInputService14TestCaseOperation2Input) SetToken(v string) *InputService14TestShapeInputService14TestCaseOperation2Input {
  3118  	s.Token = &v
  3119  	return s
  3120  }
  3121  
  3122  type InputService14TestShapeInputService14TestCaseOperation2Output struct {
  3123  	_ struct{} `type:"structure"`
  3124  }
  3125  
  3126  // InputService15ProtocolTest provides the API operation methods for making requests to
  3127  // . See this package's package overview docs
  3128  // for details on the service.
  3129  //
  3130  // InputService15ProtocolTest methods are safe to use concurrently. It is not safe to
  3131  // modify mutate any of the struct's properties though.
  3132  type InputService15ProtocolTest struct {
  3133  	*client.Client
  3134  }
  3135  
  3136  // New creates a new instance of the InputService15ProtocolTest client with a session.
  3137  // If additional configuration is needed for the client instance use the optional
  3138  // aws.Config parameter to add your extra config.
  3139  //
  3140  // Example:
  3141  //     mySession := session.Must(session.NewSession())
  3142  //
  3143  //     // Create a InputService15ProtocolTest client from just a session.
  3144  //     svc := inputservice15protocoltest.New(mySession)
  3145  //
  3146  //     // Create a InputService15ProtocolTest client with additional configuration
  3147  //     svc := inputservice15protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  3148  func NewInputService15ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService15ProtocolTest {
  3149  	c := p.ClientConfig("inputservice15protocoltest", cfgs...)
  3150  	return newInputService15ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  3151  }
  3152  
  3153  // newClient creates, initializes and returns a new service client instance.
  3154  func newInputService15ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService15ProtocolTest {
  3155  	svc := &InputService15ProtocolTest{
  3156  		Client: client.New(
  3157  			cfg,
  3158  			metadata.ClientInfo{
  3159  				ServiceName:   "InputService15ProtocolTest",
  3160  				ServiceID:     "InputService15ProtocolTest",
  3161  				SigningName:   signingName,
  3162  				SigningRegion: signingRegion,
  3163  				PartitionID:   partitionID,
  3164  				Endpoint:      endpoint,
  3165  				APIVersion:    "2014-01-01",
  3166  			},
  3167  			handlers,
  3168  		),
  3169  	}
  3170  
  3171  	// Handlers
  3172  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  3173  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  3174  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  3175  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  3176  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  3177  
  3178  	return svc
  3179  }
  3180  
  3181  // newRequest creates a new request for a InputService15ProtocolTest operation and runs any
  3182  // custom request initialization.
  3183  func (c *InputService15ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  3184  	req := c.NewRequest(op, params, data)
  3185  
  3186  	return req
  3187  }
  3188  
  3189  const opInputService15TestCaseOperation1 = "OperationName"
  3190  
  3191  // InputService15TestCaseOperation1Request generates a "aws/request.Request" representing the
  3192  // client's request for the InputService15TestCaseOperation1 operation. The "output" return
  3193  // value will be populated with the request's response once the request completes
  3194  // successfully.
  3195  //
  3196  // Use "Send" method on the returned Request to send the API call to the service.
  3197  // the "output" return value is not valid until after Send returns without error.
  3198  //
  3199  // See InputService15TestCaseOperation1 for more information on using the InputService15TestCaseOperation1
  3200  // API call, and error handling.
  3201  //
  3202  // This method is useful when you want to inject custom logic or configuration
  3203  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3204  //
  3205  //
  3206  //    // Example sending a request using the InputService15TestCaseOperation1Request method.
  3207  //    req, resp := client.InputService15TestCaseOperation1Request(params)
  3208  //
  3209  //    err := req.Send()
  3210  //    if err == nil { // resp is now filled
  3211  //        fmt.Println(resp)
  3212  //    }
  3213  func (c *InputService15ProtocolTest) InputService15TestCaseOperation1Request(input *InputService15TestShapeInputService15TestCaseOperation1Input) (req *request.Request, output *InputService15TestShapeInputService15TestCaseOperation1Output) {
  3214  	op := &request.Operation{
  3215  		Name:       opInputService15TestCaseOperation1,
  3216  		HTTPMethod: "POST",
  3217  		HTTPPath:   "/",
  3218  	}
  3219  
  3220  	if input == nil {
  3221  		input = &InputService15TestShapeInputService15TestCaseOperation1Input{}
  3222  	}
  3223  
  3224  	output = &InputService15TestShapeInputService15TestCaseOperation1Output{}
  3225  	req = c.newRequest(op, input, output)
  3226  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3227  	return
  3228  }
  3229  
  3230  // InputService15TestCaseOperation1 API operation for .
  3231  //
  3232  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3233  // with awserr.Error's Code and Message methods to get detailed information about
  3234  // the error.
  3235  //
  3236  // See the AWS API reference guide for 's
  3237  // API operation InputService15TestCaseOperation1 for usage and error information.
  3238  func (c *InputService15ProtocolTest) InputService15TestCaseOperation1(input *InputService15TestShapeInputService15TestCaseOperation1Input) (*InputService15TestShapeInputService15TestCaseOperation1Output, error) {
  3239  	req, out := c.InputService15TestCaseOperation1Request(input)
  3240  	return out, req.Send()
  3241  }
  3242  
  3243  // InputService15TestCaseOperation1WithContext is the same as InputService15TestCaseOperation1 with the addition of
  3244  // the ability to pass a context and additional request options.
  3245  //
  3246  // See InputService15TestCaseOperation1 for details on how to use this API operation.
  3247  //
  3248  // The context must be non-nil and will be used for request cancellation. If
  3249  // the context is nil a panic will occur. In the future the SDK may create
  3250  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3251  // for more information on using Contexts.
  3252  func (c *InputService15ProtocolTest) InputService15TestCaseOperation1WithContext(ctx aws.Context, input *InputService15TestShapeInputService15TestCaseOperation1Input, opts ...request.Option) (*InputService15TestShapeInputService15TestCaseOperation1Output, error) {
  3253  	req, out := c.InputService15TestCaseOperation1Request(input)
  3254  	req.SetContext(ctx)
  3255  	req.ApplyOptions(opts...)
  3256  	return out, req.Send()
  3257  }
  3258  
  3259  const opInputService15TestCaseOperation2 = "OperationName"
  3260  
  3261  // InputService15TestCaseOperation2Request generates a "aws/request.Request" representing the
  3262  // client's request for the InputService15TestCaseOperation2 operation. The "output" return
  3263  // value will be populated with the request's response once the request completes
  3264  // successfully.
  3265  //
  3266  // Use "Send" method on the returned Request to send the API call to the service.
  3267  // the "output" return value is not valid until after Send returns without error.
  3268  //
  3269  // See InputService15TestCaseOperation2 for more information on using the InputService15TestCaseOperation2
  3270  // API call, and error handling.
  3271  //
  3272  // This method is useful when you want to inject custom logic or configuration
  3273  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3274  //
  3275  //
  3276  //    // Example sending a request using the InputService15TestCaseOperation2Request method.
  3277  //    req, resp := client.InputService15TestCaseOperation2Request(params)
  3278  //
  3279  //    err := req.Send()
  3280  //    if err == nil { // resp is now filled
  3281  //        fmt.Println(resp)
  3282  //    }
  3283  func (c *InputService15ProtocolTest) InputService15TestCaseOperation2Request(input *InputService15TestShapeInputService15TestCaseOperation2Input) (req *request.Request, output *InputService15TestShapeInputService15TestCaseOperation2Output) {
  3284  	op := &request.Operation{
  3285  		Name:       opInputService15TestCaseOperation2,
  3286  		HTTPMethod: "POST",
  3287  		HTTPPath:   "/",
  3288  	}
  3289  
  3290  	if input == nil {
  3291  		input = &InputService15TestShapeInputService15TestCaseOperation2Input{}
  3292  	}
  3293  
  3294  	output = &InputService15TestShapeInputService15TestCaseOperation2Output{}
  3295  	req = c.newRequest(op, input, output)
  3296  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3297  	return
  3298  }
  3299  
  3300  // InputService15TestCaseOperation2 API operation for .
  3301  //
  3302  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3303  // with awserr.Error's Code and Message methods to get detailed information about
  3304  // the error.
  3305  //
  3306  // See the AWS API reference guide for 's
  3307  // API operation InputService15TestCaseOperation2 for usage and error information.
  3308  func (c *InputService15ProtocolTest) InputService15TestCaseOperation2(input *InputService15TestShapeInputService15TestCaseOperation2Input) (*InputService15TestShapeInputService15TestCaseOperation2Output, error) {
  3309  	req, out := c.InputService15TestCaseOperation2Request(input)
  3310  	return out, req.Send()
  3311  }
  3312  
  3313  // InputService15TestCaseOperation2WithContext is the same as InputService15TestCaseOperation2 with the addition of
  3314  // the ability to pass a context and additional request options.
  3315  //
  3316  // See InputService15TestCaseOperation2 for details on how to use this API operation.
  3317  //
  3318  // The context must be non-nil and will be used for request cancellation. If
  3319  // the context is nil a panic will occur. In the future the SDK may create
  3320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3321  // for more information on using Contexts.
  3322  func (c *InputService15ProtocolTest) InputService15TestCaseOperation2WithContext(ctx aws.Context, input *InputService15TestShapeInputService15TestCaseOperation2Input, opts ...request.Option) (*InputService15TestShapeInputService15TestCaseOperation2Output, error) {
  3323  	req, out := c.InputService15TestCaseOperation2Request(input)
  3324  	req.SetContext(ctx)
  3325  	req.ApplyOptions(opts...)
  3326  	return out, req.Send()
  3327  }
  3328  
  3329  const opInputService15TestCaseOperation3 = "OperationName"
  3330  
  3331  // InputService15TestCaseOperation3Request generates a "aws/request.Request" representing the
  3332  // client's request for the InputService15TestCaseOperation3 operation. The "output" return
  3333  // value will be populated with the request's response once the request completes
  3334  // successfully.
  3335  //
  3336  // Use "Send" method on the returned Request to send the API call to the service.
  3337  // the "output" return value is not valid until after Send returns without error.
  3338  //
  3339  // See InputService15TestCaseOperation3 for more information on using the InputService15TestCaseOperation3
  3340  // API call, and error handling.
  3341  //
  3342  // This method is useful when you want to inject custom logic or configuration
  3343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3344  //
  3345  //
  3346  //    // Example sending a request using the InputService15TestCaseOperation3Request method.
  3347  //    req, resp := client.InputService15TestCaseOperation3Request(params)
  3348  //
  3349  //    err := req.Send()
  3350  //    if err == nil { // resp is now filled
  3351  //        fmt.Println(resp)
  3352  //    }
  3353  func (c *InputService15ProtocolTest) InputService15TestCaseOperation3Request(input *InputService15TestShapeInputService15TestCaseOperation3Input) (req *request.Request, output *InputService15TestShapeInputService15TestCaseOperation3Output) {
  3354  	op := &request.Operation{
  3355  		Name:       opInputService15TestCaseOperation3,
  3356  		HTTPMethod: "POST",
  3357  		HTTPPath:   "/",
  3358  	}
  3359  
  3360  	if input == nil {
  3361  		input = &InputService15TestShapeInputService15TestCaseOperation3Input{}
  3362  	}
  3363  
  3364  	output = &InputService15TestShapeInputService15TestCaseOperation3Output{}
  3365  	req = c.newRequest(op, input, output)
  3366  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3367  	return
  3368  }
  3369  
  3370  // InputService15TestCaseOperation3 API operation for .
  3371  //
  3372  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3373  // with awserr.Error's Code and Message methods to get detailed information about
  3374  // the error.
  3375  //
  3376  // See the AWS API reference guide for 's
  3377  // API operation InputService15TestCaseOperation3 for usage and error information.
  3378  func (c *InputService15ProtocolTest) InputService15TestCaseOperation3(input *InputService15TestShapeInputService15TestCaseOperation3Input) (*InputService15TestShapeInputService15TestCaseOperation3Output, error) {
  3379  	req, out := c.InputService15TestCaseOperation3Request(input)
  3380  	return out, req.Send()
  3381  }
  3382  
  3383  // InputService15TestCaseOperation3WithContext is the same as InputService15TestCaseOperation3 with the addition of
  3384  // the ability to pass a context and additional request options.
  3385  //
  3386  // See InputService15TestCaseOperation3 for details on how to use this API operation.
  3387  //
  3388  // The context must be non-nil and will be used for request cancellation. If
  3389  // the context is nil a panic will occur. In the future the SDK may create
  3390  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3391  // for more information on using Contexts.
  3392  func (c *InputService15ProtocolTest) InputService15TestCaseOperation3WithContext(ctx aws.Context, input *InputService15TestShapeInputService15TestCaseOperation3Input, opts ...request.Option) (*InputService15TestShapeInputService15TestCaseOperation3Output, error) {
  3393  	req, out := c.InputService15TestCaseOperation3Request(input)
  3394  	req.SetContext(ctx)
  3395  	req.ApplyOptions(opts...)
  3396  	return out, req.Send()
  3397  }
  3398  
  3399  type InputService15TestShapeInputService15TestCaseOperation1Input struct {
  3400  	_ struct{} `type:"structure"`
  3401  
  3402  	FooEnum *string `type:"string" enum:"InputService15TestShapeEnumType"`
  3403  
  3404  	ListEnums []*string `type:"list"`
  3405  }
  3406  
  3407  // SetFooEnum sets the FooEnum field's value.
  3408  func (s *InputService15TestShapeInputService15TestCaseOperation1Input) SetFooEnum(v string) *InputService15TestShapeInputService15TestCaseOperation1Input {
  3409  	s.FooEnum = &v
  3410  	return s
  3411  }
  3412  
  3413  // SetListEnums sets the ListEnums field's value.
  3414  func (s *InputService15TestShapeInputService15TestCaseOperation1Input) SetListEnums(v []*string) *InputService15TestShapeInputService15TestCaseOperation1Input {
  3415  	s.ListEnums = v
  3416  	return s
  3417  }
  3418  
  3419  type InputService15TestShapeInputService15TestCaseOperation1Output struct {
  3420  	_ struct{} `type:"structure"`
  3421  }
  3422  
  3423  type InputService15TestShapeInputService15TestCaseOperation2Input struct {
  3424  	_ struct{} `type:"structure"`
  3425  
  3426  	FooEnum *string `type:"string" enum:"InputService15TestShapeEnumType"`
  3427  
  3428  	ListEnums []*string `type:"list"`
  3429  }
  3430  
  3431  // SetFooEnum sets the FooEnum field's value.
  3432  func (s *InputService15TestShapeInputService15TestCaseOperation2Input) SetFooEnum(v string) *InputService15TestShapeInputService15TestCaseOperation2Input {
  3433  	s.FooEnum = &v
  3434  	return s
  3435  }
  3436  
  3437  // SetListEnums sets the ListEnums field's value.
  3438  func (s *InputService15TestShapeInputService15TestCaseOperation2Input) SetListEnums(v []*string) *InputService15TestShapeInputService15TestCaseOperation2Input {
  3439  	s.ListEnums = v
  3440  	return s
  3441  }
  3442  
  3443  type InputService15TestShapeInputService15TestCaseOperation2Output struct {
  3444  	_ struct{} `type:"structure"`
  3445  }
  3446  
  3447  type InputService15TestShapeInputService15TestCaseOperation3Input struct {
  3448  	_ struct{} `type:"structure"`
  3449  
  3450  	FooEnum *string `type:"string" enum:"InputService15TestShapeEnumType"`
  3451  
  3452  	ListEnums []*string `type:"list"`
  3453  }
  3454  
  3455  // SetFooEnum sets the FooEnum field's value.
  3456  func (s *InputService15TestShapeInputService15TestCaseOperation3Input) SetFooEnum(v string) *InputService15TestShapeInputService15TestCaseOperation3Input {
  3457  	s.FooEnum = &v
  3458  	return s
  3459  }
  3460  
  3461  // SetListEnums sets the ListEnums field's value.
  3462  func (s *InputService15TestShapeInputService15TestCaseOperation3Input) SetListEnums(v []*string) *InputService15TestShapeInputService15TestCaseOperation3Input {
  3463  	s.ListEnums = v
  3464  	return s
  3465  }
  3466  
  3467  type InputService15TestShapeInputService15TestCaseOperation3Output struct {
  3468  	_ struct{} `type:"structure"`
  3469  }
  3470  
  3471  const (
  3472  	// EnumTypeFoo is a InputService15TestShapeEnumType enum value
  3473  	EnumTypeFoo = "foo"
  3474  
  3475  	// EnumTypeBar is a InputService15TestShapeEnumType enum value
  3476  	EnumTypeBar = "bar"
  3477  )
  3478  
  3479  // InputService15TestShapeEnumType_Values returns all elements of the InputService15TestShapeEnumType enum
  3480  func InputService15TestShapeEnumType_Values() []string {
  3481  	return []string{
  3482  		EnumTypeFoo,
  3483  		EnumTypeBar,
  3484  	}
  3485  }
  3486  
  3487  // InputService16ProtocolTest provides the API operation methods for making requests to
  3488  // . See this package's package overview docs
  3489  // for details on the service.
  3490  //
  3491  // InputService16ProtocolTest methods are safe to use concurrently. It is not safe to
  3492  // modify mutate any of the struct's properties though.
  3493  type InputService16ProtocolTest struct {
  3494  	*client.Client
  3495  }
  3496  
  3497  // New creates a new instance of the InputService16ProtocolTest client with a session.
  3498  // If additional configuration is needed for the client instance use the optional
  3499  // aws.Config parameter to add your extra config.
  3500  //
  3501  // Example:
  3502  //     mySession := session.Must(session.NewSession())
  3503  //
  3504  //     // Create a InputService16ProtocolTest client from just a session.
  3505  //     svc := inputservice16protocoltest.New(mySession)
  3506  //
  3507  //     // Create a InputService16ProtocolTest client with additional configuration
  3508  //     svc := inputservice16protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  3509  func NewInputService16ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService16ProtocolTest {
  3510  	c := p.ClientConfig("inputservice16protocoltest", cfgs...)
  3511  	return newInputService16ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  3512  }
  3513  
  3514  // newClient creates, initializes and returns a new service client instance.
  3515  func newInputService16ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService16ProtocolTest {
  3516  	svc := &InputService16ProtocolTest{
  3517  		Client: client.New(
  3518  			cfg,
  3519  			metadata.ClientInfo{
  3520  				ServiceName:   "InputService16ProtocolTest",
  3521  				ServiceID:     "InputService16ProtocolTest",
  3522  				SigningName:   signingName,
  3523  				SigningRegion: signingRegion,
  3524  				PartitionID:   partitionID,
  3525  				Endpoint:      endpoint,
  3526  				APIVersion:    "2014-01-01",
  3527  			},
  3528  			handlers,
  3529  		),
  3530  	}
  3531  
  3532  	// Handlers
  3533  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  3534  	svc.Handlers.Build.PushBackNamed(query.BuildHandler)
  3535  	svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler)
  3536  	svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler)
  3537  	svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler)
  3538  
  3539  	return svc
  3540  }
  3541  
  3542  // newRequest creates a new request for a InputService16ProtocolTest operation and runs any
  3543  // custom request initialization.
  3544  func (c *InputService16ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  3545  	req := c.NewRequest(op, params, data)
  3546  
  3547  	return req
  3548  }
  3549  
  3550  const opInputService16TestCaseOperation1 = "StaticOp"
  3551  
  3552  // InputService16TestCaseOperation1Request generates a "aws/request.Request" representing the
  3553  // client's request for the InputService16TestCaseOperation1 operation. The "output" return
  3554  // value will be populated with the request's response once the request completes
  3555  // successfully.
  3556  //
  3557  // Use "Send" method on the returned Request to send the API call to the service.
  3558  // the "output" return value is not valid until after Send returns without error.
  3559  //
  3560  // See InputService16TestCaseOperation1 for more information on using the InputService16TestCaseOperation1
  3561  // API call, and error handling.
  3562  //
  3563  // This method is useful when you want to inject custom logic or configuration
  3564  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3565  //
  3566  //
  3567  //    // Example sending a request using the InputService16TestCaseOperation1Request method.
  3568  //    req, resp := client.InputService16TestCaseOperation1Request(params)
  3569  //
  3570  //    err := req.Send()
  3571  //    if err == nil { // resp is now filled
  3572  //        fmt.Println(resp)
  3573  //    }
  3574  func (c *InputService16ProtocolTest) InputService16TestCaseOperation1Request(input *InputService16TestShapeInputService16TestCaseOperation1Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation1Output) {
  3575  	op := &request.Operation{
  3576  		Name:       opInputService16TestCaseOperation1,
  3577  		HTTPMethod: "POST",
  3578  		HTTPPath:   "/",
  3579  	}
  3580  
  3581  	if input == nil {
  3582  		input = &InputService16TestShapeInputService16TestCaseOperation1Input{}
  3583  	}
  3584  
  3585  	output = &InputService16TestShapeInputService16TestCaseOperation1Output{}
  3586  	req = c.newRequest(op, input, output)
  3587  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3588  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("data-", nil))
  3589  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3590  	return
  3591  }
  3592  
  3593  // InputService16TestCaseOperation1 API operation for .
  3594  //
  3595  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3596  // with awserr.Error's Code and Message methods to get detailed information about
  3597  // the error.
  3598  //
  3599  // See the AWS API reference guide for 's
  3600  // API operation InputService16TestCaseOperation1 for usage and error information.
  3601  func (c *InputService16ProtocolTest) InputService16TestCaseOperation1(input *InputService16TestShapeInputService16TestCaseOperation1Input) (*InputService16TestShapeInputService16TestCaseOperation1Output, error) {
  3602  	req, out := c.InputService16TestCaseOperation1Request(input)
  3603  	return out, req.Send()
  3604  }
  3605  
  3606  // InputService16TestCaseOperation1WithContext is the same as InputService16TestCaseOperation1 with the addition of
  3607  // the ability to pass a context and additional request options.
  3608  //
  3609  // See InputService16TestCaseOperation1 for details on how to use this API operation.
  3610  //
  3611  // The context must be non-nil and will be used for request cancellation. If
  3612  // the context is nil a panic will occur. In the future the SDK may create
  3613  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3614  // for more information on using Contexts.
  3615  func (c *InputService16ProtocolTest) InputService16TestCaseOperation1WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation1Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation1Output, error) {
  3616  	req, out := c.InputService16TestCaseOperation1Request(input)
  3617  	req.SetContext(ctx)
  3618  	req.ApplyOptions(opts...)
  3619  	return out, req.Send()
  3620  }
  3621  
  3622  const opInputService16TestCaseOperation2 = "MemberRefOp"
  3623  
  3624  // InputService16TestCaseOperation2Request generates a "aws/request.Request" representing the
  3625  // client's request for the InputService16TestCaseOperation2 operation. The "output" return
  3626  // value will be populated with the request's response once the request completes
  3627  // successfully.
  3628  //
  3629  // Use "Send" method on the returned Request to send the API call to the service.
  3630  // the "output" return value is not valid until after Send returns without error.
  3631  //
  3632  // See InputService16TestCaseOperation2 for more information on using the InputService16TestCaseOperation2
  3633  // API call, and error handling.
  3634  //
  3635  // This method is useful when you want to inject custom logic or configuration
  3636  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3637  //
  3638  //
  3639  //    // Example sending a request using the InputService16TestCaseOperation2Request method.
  3640  //    req, resp := client.InputService16TestCaseOperation2Request(params)
  3641  //
  3642  //    err := req.Send()
  3643  //    if err == nil { // resp is now filled
  3644  //        fmt.Println(resp)
  3645  //    }
  3646  func (c *InputService16ProtocolTest) InputService16TestCaseOperation2Request(input *InputService16TestShapeInputService16TestCaseOperation2Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation2Output) {
  3647  	op := &request.Operation{
  3648  		Name:       opInputService16TestCaseOperation2,
  3649  		HTTPMethod: "POST",
  3650  		HTTPPath:   "/",
  3651  	}
  3652  
  3653  	if input == nil {
  3654  		input = &InputService16TestShapeInputService16TestCaseOperation2Input{}
  3655  	}
  3656  
  3657  	output = &InputService16TestShapeInputService16TestCaseOperation2Output{}
  3658  	req = c.newRequest(op, input, output)
  3659  	req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3660  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("foo-{Name}.", input.hostLabels))
  3661  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  3662  	return
  3663  }
  3664  
  3665  // InputService16TestCaseOperation2 API operation for .
  3666  //
  3667  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3668  // with awserr.Error's Code and Message methods to get detailed information about
  3669  // the error.
  3670  //
  3671  // See the AWS API reference guide for 's
  3672  // API operation InputService16TestCaseOperation2 for usage and error information.
  3673  func (c *InputService16ProtocolTest) InputService16TestCaseOperation2(input *InputService16TestShapeInputService16TestCaseOperation2Input) (*InputService16TestShapeInputService16TestCaseOperation2Output, error) {
  3674  	req, out := c.InputService16TestCaseOperation2Request(input)
  3675  	return out, req.Send()
  3676  }
  3677  
  3678  // InputService16TestCaseOperation2WithContext is the same as InputService16TestCaseOperation2 with the addition of
  3679  // the ability to pass a context and additional request options.
  3680  //
  3681  // See InputService16TestCaseOperation2 for details on how to use this API operation.
  3682  //
  3683  // The context must be non-nil and will be used for request cancellation. If
  3684  // the context is nil a panic will occur. In the future the SDK may create
  3685  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3686  // for more information on using Contexts.
  3687  func (c *InputService16ProtocolTest) InputService16TestCaseOperation2WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation2Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation2Output, error) {
  3688  	req, out := c.InputService16TestCaseOperation2Request(input)
  3689  	req.SetContext(ctx)
  3690  	req.ApplyOptions(opts...)
  3691  	return out, req.Send()
  3692  }
  3693  
  3694  type InputService16TestShapeInputService16TestCaseOperation1Input struct {
  3695  	_ struct{} `type:"structure"`
  3696  
  3697  	Name *string `type:"string"`
  3698  }
  3699  
  3700  // SetName sets the Name field's value.
  3701  func (s *InputService16TestShapeInputService16TestCaseOperation1Input) SetName(v string) *InputService16TestShapeInputService16TestCaseOperation1Input {
  3702  	s.Name = &v
  3703  	return s
  3704  }
  3705  
  3706  type InputService16TestShapeInputService16TestCaseOperation1Output struct {
  3707  	_ struct{} `type:"structure"`
  3708  }
  3709  
  3710  type InputService16TestShapeInputService16TestCaseOperation2Input struct {
  3711  	_ struct{} `type:"structure"`
  3712  
  3713  	// Name is a required field
  3714  	Name *string `type:"string" required:"true"`
  3715  }
  3716  
  3717  // Validate inspects the fields of the type to determine if they are valid.
  3718  func (s *InputService16TestShapeInputService16TestCaseOperation2Input) Validate() error {
  3719  	invalidParams := request.ErrInvalidParams{Context: "InputService16TestShapeInputService16TestCaseOperation2Input"}
  3720  	if s.Name == nil {
  3721  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3722  	}
  3723  	if s.Name != nil && len(*s.Name) < 1 {
  3724  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3725  	}
  3726  
  3727  	if invalidParams.Len() > 0 {
  3728  		return invalidParams
  3729  	}
  3730  	return nil
  3731  }
  3732  
  3733  // SetName sets the Name field's value.
  3734  func (s *InputService16TestShapeInputService16TestCaseOperation2Input) SetName(v string) *InputService16TestShapeInputService16TestCaseOperation2Input {
  3735  	s.Name = &v
  3736  	return s
  3737  }
  3738  
  3739  func (s *InputService16TestShapeInputService16TestCaseOperation2Input) hostLabels() map[string]string {
  3740  	return map[string]string{
  3741  		"Name": aws.StringValue(s.Name),
  3742  	}
  3743  }
  3744  
  3745  type InputService16TestShapeInputService16TestCaseOperation2Output struct {
  3746  	_ struct{} `type:"structure"`
  3747  }
  3748  
  3749  //
  3750  // Tests begin here
  3751  //
  3752  
  3753  func TestInputService1ProtocolTestScalarMembersCase1(t *testing.T) {
  3754  	svc := NewInputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3755  	input := &InputService1TestShapeInputService1TestCaseOperation1Input{
  3756  		Bar: aws.String("val2"),
  3757  		Foo: aws.String("val1"),
  3758  	}
  3759  	req, _ := svc.InputService1TestCaseOperation1Request(input)
  3760  	r := req.HTTPRequest
  3761  
  3762  	// build request
  3763  	req.Build()
  3764  	if req.Error != nil {
  3765  		t.Errorf("expect no error, got %v", req.Error)
  3766  	}
  3767  	req.Sign()
  3768  	if req.Error != nil {
  3769  		t.Errorf("expect no error, got %v", req.Error)
  3770  	}
  3771  
  3772  	// assert body
  3773  	if r.Body == nil {
  3774  		t.Errorf("expect body not to be nil")
  3775  	}
  3776  	body, _ := ioutil.ReadAll(r.Body)
  3777  	awstesting.AssertQuery(t, `Action=OperationName&Bar=val2&Foo=val1&Version=2014-01-01`, util.Trim(string(body)))
  3778  
  3779  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3780  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3781  	}
  3782  
  3783  	// assert URL
  3784  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3785  }
  3786  
  3787  func TestInputService1ProtocolTestScalarMembersCase2(t *testing.T) {
  3788  	svc := NewInputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3789  	input := &InputService1TestShapeInputService1TestCaseOperation2Input{
  3790  		Baz: aws.Bool(true),
  3791  	}
  3792  	req, _ := svc.InputService1TestCaseOperation2Request(input)
  3793  	r := req.HTTPRequest
  3794  
  3795  	// build request
  3796  	req.Build()
  3797  	if req.Error != nil {
  3798  		t.Errorf("expect no error, got %v", req.Error)
  3799  	}
  3800  	req.Sign()
  3801  	if req.Error != nil {
  3802  		t.Errorf("expect no error, got %v", req.Error)
  3803  	}
  3804  
  3805  	// assert body
  3806  	if r.Body == nil {
  3807  		t.Errorf("expect body not to be nil")
  3808  	}
  3809  	body, _ := ioutil.ReadAll(r.Body)
  3810  	awstesting.AssertQuery(t, `Action=OperationName&Baz=true&Version=2014-01-01`, util.Trim(string(body)))
  3811  
  3812  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3813  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3814  	}
  3815  
  3816  	// assert URL
  3817  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3818  }
  3819  
  3820  func TestInputService1ProtocolTestScalarMembersCase3(t *testing.T) {
  3821  	svc := NewInputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3822  	input := &InputService1TestShapeInputService1TestCaseOperation3Input{
  3823  		Baz: aws.Bool(false),
  3824  	}
  3825  	req, _ := svc.InputService1TestCaseOperation3Request(input)
  3826  	r := req.HTTPRequest
  3827  
  3828  	// build request
  3829  	req.Build()
  3830  	if req.Error != nil {
  3831  		t.Errorf("expect no error, got %v", req.Error)
  3832  	}
  3833  	req.Sign()
  3834  	if req.Error != nil {
  3835  		t.Errorf("expect no error, got %v", req.Error)
  3836  	}
  3837  
  3838  	// assert body
  3839  	if r.Body == nil {
  3840  		t.Errorf("expect body not to be nil")
  3841  	}
  3842  	body, _ := ioutil.ReadAll(r.Body)
  3843  	awstesting.AssertQuery(t, `Action=OperationName&Baz=false&Version=2014-01-01`, util.Trim(string(body)))
  3844  
  3845  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3846  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3847  	}
  3848  
  3849  	// assert URL
  3850  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3851  }
  3852  
  3853  func TestInputService2ProtocolTestNestedStructureMembersCase1(t *testing.T) {
  3854  	svc := NewInputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3855  	input := &InputService2TestShapeInputService2TestCaseOperation1Input{
  3856  		StructArg: &InputService2TestShapeStructType{
  3857  			ScalarArg: aws.String("foo"),
  3858  		},
  3859  	}
  3860  	req, _ := svc.InputService2TestCaseOperation1Request(input)
  3861  	r := req.HTTPRequest
  3862  
  3863  	// build request
  3864  	req.Build()
  3865  	if req.Error != nil {
  3866  		t.Errorf("expect no error, got %v", req.Error)
  3867  	}
  3868  	req.Sign()
  3869  	if req.Error != nil {
  3870  		t.Errorf("expect no error, got %v", req.Error)
  3871  	}
  3872  
  3873  	// assert body
  3874  	if r.Body == nil {
  3875  		t.Errorf("expect body not to be nil")
  3876  	}
  3877  	body, _ := ioutil.ReadAll(r.Body)
  3878  	awstesting.AssertQuery(t, `Action=OperationName&StructArg.ScalarArg=foo&Version=2014-01-01`, util.Trim(string(body)))
  3879  
  3880  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3881  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3882  	}
  3883  
  3884  	// assert URL
  3885  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3886  }
  3887  
  3888  func TestInputService3ProtocolTestListTypesCase1(t *testing.T) {
  3889  	svc := NewInputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3890  	input := &InputService3TestShapeInputService3TestCaseOperation1Input{
  3891  		ListArg: []*string{
  3892  			aws.String("foo"),
  3893  			aws.String("bar"),
  3894  			aws.String("baz"),
  3895  		},
  3896  	}
  3897  	req, _ := svc.InputService3TestCaseOperation1Request(input)
  3898  	r := req.HTTPRequest
  3899  
  3900  	// build request
  3901  	req.Build()
  3902  	if req.Error != nil {
  3903  		t.Errorf("expect no error, got %v", req.Error)
  3904  	}
  3905  	req.Sign()
  3906  	if req.Error != nil {
  3907  		t.Errorf("expect no error, got %v", req.Error)
  3908  	}
  3909  
  3910  	// assert body
  3911  	if r.Body == nil {
  3912  		t.Errorf("expect body not to be nil")
  3913  	}
  3914  	body, _ := ioutil.ReadAll(r.Body)
  3915  	awstesting.AssertQuery(t, `Action=OperationName&ListArg.member.1=foo&ListArg.member.2=bar&ListArg.member.3=baz&Version=2014-01-01`, util.Trim(string(body)))
  3916  
  3917  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3918  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3919  	}
  3920  
  3921  	// assert URL
  3922  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3923  }
  3924  
  3925  func TestInputService3ProtocolTestListTypesCase2(t *testing.T) {
  3926  	svc := NewInputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3927  	input := &InputService3TestShapeInputService3TestCaseOperation2Input{
  3928  		ListArg: []*string{},
  3929  	}
  3930  	req, _ := svc.InputService3TestCaseOperation2Request(input)
  3931  	r := req.HTTPRequest
  3932  
  3933  	// build request
  3934  	req.Build()
  3935  	if req.Error != nil {
  3936  		t.Errorf("expect no error, got %v", req.Error)
  3937  	}
  3938  	req.Sign()
  3939  	if req.Error != nil {
  3940  		t.Errorf("expect no error, got %v", req.Error)
  3941  	}
  3942  
  3943  	// assert body
  3944  	if r.Body == nil {
  3945  		t.Errorf("expect body not to be nil")
  3946  	}
  3947  	body, _ := ioutil.ReadAll(r.Body)
  3948  	awstesting.AssertQuery(t, `Action=OperationName&ListArg=&Version=2014-01-01`, util.Trim(string(body)))
  3949  
  3950  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3951  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3952  	}
  3953  
  3954  	// assert URL
  3955  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3956  }
  3957  
  3958  func TestInputService4ProtocolTestFlattenedListCase1(t *testing.T) {
  3959  	svc := NewInputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3960  	input := &InputService4TestShapeInputService4TestCaseOperation1Input{
  3961  		ListArg: []*string{
  3962  			aws.String("a"),
  3963  			aws.String("b"),
  3964  			aws.String("c"),
  3965  		},
  3966  		ScalarArg: aws.String("foo"),
  3967  	}
  3968  	req, _ := svc.InputService4TestCaseOperation1Request(input)
  3969  	r := req.HTTPRequest
  3970  
  3971  	// build request
  3972  	req.Build()
  3973  	if req.Error != nil {
  3974  		t.Errorf("expect no error, got %v", req.Error)
  3975  	}
  3976  	req.Sign()
  3977  	if req.Error != nil {
  3978  		t.Errorf("expect no error, got %v", req.Error)
  3979  	}
  3980  
  3981  	// assert body
  3982  	if r.Body == nil {
  3983  		t.Errorf("expect body not to be nil")
  3984  	}
  3985  	body, _ := ioutil.ReadAll(r.Body)
  3986  	awstesting.AssertQuery(t, `Action=OperationName&ListArg.1=a&ListArg.2=b&ListArg.3=c&ScalarArg=foo&Version=2014-01-01`, util.Trim(string(body)))
  3987  
  3988  	if e, a := int64(len(body)), r.ContentLength; e != a {
  3989  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  3990  	}
  3991  
  3992  	// assert URL
  3993  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  3994  }
  3995  
  3996  func TestInputService4ProtocolTestFlattenedListCase2(t *testing.T) {
  3997  	svc := NewInputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  3998  	input := &InputService4TestShapeInputService4TestCaseOperation2Input{
  3999  		NamedListArg: []*string{
  4000  			aws.String("a"),
  4001  		},
  4002  	}
  4003  	req, _ := svc.InputService4TestCaseOperation2Request(input)
  4004  	r := req.HTTPRequest
  4005  
  4006  	// build request
  4007  	req.Build()
  4008  	if req.Error != nil {
  4009  		t.Errorf("expect no error, got %v", req.Error)
  4010  	}
  4011  	req.Sign()
  4012  	if req.Error != nil {
  4013  		t.Errorf("expect no error, got %v", req.Error)
  4014  	}
  4015  
  4016  	// assert body
  4017  	if r.Body == nil {
  4018  		t.Errorf("expect body not to be nil")
  4019  	}
  4020  	body, _ := ioutil.ReadAll(r.Body)
  4021  	awstesting.AssertQuery(t, `Action=OperationName&Foo.1=a&Version=2014-01-01`, util.Trim(string(body)))
  4022  
  4023  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4024  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4025  	}
  4026  
  4027  	// assert URL
  4028  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4029  }
  4030  
  4031  func TestInputService5ProtocolTestSerializeFlattenedMapTypeCase1(t *testing.T) {
  4032  	svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4033  	input := &InputService5TestShapeInputService5TestCaseOperation1Input{
  4034  		MapArg: map[string]*string{
  4035  			"key1": aws.String("val1"),
  4036  			"key2": aws.String("val2"),
  4037  		},
  4038  	}
  4039  	req, _ := svc.InputService5TestCaseOperation1Request(input)
  4040  	r := req.HTTPRequest
  4041  
  4042  	// build request
  4043  	req.Build()
  4044  	if req.Error != nil {
  4045  		t.Errorf("expect no error, got %v", req.Error)
  4046  	}
  4047  	req.Sign()
  4048  	if req.Error != nil {
  4049  		t.Errorf("expect no error, got %v", req.Error)
  4050  	}
  4051  
  4052  	// assert body
  4053  	if r.Body == nil {
  4054  		t.Errorf("expect body not to be nil")
  4055  	}
  4056  	body, _ := ioutil.ReadAll(r.Body)
  4057  	awstesting.AssertQuery(t, `Action=OperationName&MapArg.1.key=key1&MapArg.1.value=val1&MapArg.2.key=key2&MapArg.2.value=val2&Version=2014-01-01`, util.Trim(string(body)))
  4058  
  4059  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4060  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4061  	}
  4062  
  4063  	// assert URL
  4064  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4065  }
  4066  
  4067  func TestInputService6ProtocolTestNonFlattenedListWithLocationNameCase1(t *testing.T) {
  4068  	svc := NewInputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4069  	input := &InputService6TestShapeInputService6TestCaseOperation1Input{
  4070  		ListArg: []*string{
  4071  			aws.String("a"),
  4072  			aws.String("b"),
  4073  			aws.String("c"),
  4074  		},
  4075  	}
  4076  	req, _ := svc.InputService6TestCaseOperation1Request(input)
  4077  	r := req.HTTPRequest
  4078  
  4079  	// build request
  4080  	req.Build()
  4081  	if req.Error != nil {
  4082  		t.Errorf("expect no error, got %v", req.Error)
  4083  	}
  4084  	req.Sign()
  4085  	if req.Error != nil {
  4086  		t.Errorf("expect no error, got %v", req.Error)
  4087  	}
  4088  
  4089  	// assert body
  4090  	if r.Body == nil {
  4091  		t.Errorf("expect body not to be nil")
  4092  	}
  4093  	body, _ := ioutil.ReadAll(r.Body)
  4094  	awstesting.AssertQuery(t, `Action=OperationName&ListArg.item.1=a&ListArg.item.2=b&ListArg.item.3=c&Version=2014-01-01`, util.Trim(string(body)))
  4095  
  4096  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4097  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4098  	}
  4099  
  4100  	// assert URL
  4101  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4102  }
  4103  
  4104  func TestInputService7ProtocolTestFlattenedListWithLocationNameCase1(t *testing.T) {
  4105  	svc := NewInputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4106  	input := &InputService7TestShapeInputService7TestCaseOperation1Input{
  4107  		ListArg: []*string{
  4108  			aws.String("a"),
  4109  			aws.String("b"),
  4110  			aws.String("c"),
  4111  		},
  4112  		ScalarArg: aws.String("foo"),
  4113  	}
  4114  	req, _ := svc.InputService7TestCaseOperation1Request(input)
  4115  	r := req.HTTPRequest
  4116  
  4117  	// build request
  4118  	req.Build()
  4119  	if req.Error != nil {
  4120  		t.Errorf("expect no error, got %v", req.Error)
  4121  	}
  4122  	req.Sign()
  4123  	if req.Error != nil {
  4124  		t.Errorf("expect no error, got %v", req.Error)
  4125  	}
  4126  
  4127  	// assert body
  4128  	if r.Body == nil {
  4129  		t.Errorf("expect body not to be nil")
  4130  	}
  4131  	body, _ := ioutil.ReadAll(r.Body)
  4132  	awstesting.AssertQuery(t, `Action=OperationName&ListArgLocation.1=a&ListArgLocation.2=b&ListArgLocation.3=c&ScalarArg=foo&Version=2014-01-01`, util.Trim(string(body)))
  4133  
  4134  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4135  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4136  	}
  4137  
  4138  	// assert URL
  4139  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4140  }
  4141  
  4142  func TestInputService8ProtocolTestSerializeMapTypeCase1(t *testing.T) {
  4143  	svc := NewInputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4144  	input := &InputService8TestShapeInputService8TestCaseOperation1Input{
  4145  		MapArg: map[string]*string{
  4146  			"key1": aws.String("val1"),
  4147  			"key2": aws.String("val2"),
  4148  		},
  4149  	}
  4150  	req, _ := svc.InputService8TestCaseOperation1Request(input)
  4151  	r := req.HTTPRequest
  4152  
  4153  	// build request
  4154  	req.Build()
  4155  	if req.Error != nil {
  4156  		t.Errorf("expect no error, got %v", req.Error)
  4157  	}
  4158  	req.Sign()
  4159  	if req.Error != nil {
  4160  		t.Errorf("expect no error, got %v", req.Error)
  4161  	}
  4162  
  4163  	// assert body
  4164  	if r.Body == nil {
  4165  		t.Errorf("expect body not to be nil")
  4166  	}
  4167  	body, _ := ioutil.ReadAll(r.Body)
  4168  	awstesting.AssertQuery(t, `Action=OperationName&MapArg.entry.1.key=key1&MapArg.entry.1.value=val1&MapArg.entry.2.key=key2&MapArg.entry.2.value=val2&Version=2014-01-01`, util.Trim(string(body)))
  4169  
  4170  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4171  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4172  	}
  4173  
  4174  	// assert URL
  4175  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4176  }
  4177  
  4178  func TestInputService9ProtocolTestSerializeMapTypeWithLocationNameCase1(t *testing.T) {
  4179  	svc := NewInputService9ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4180  	input := &InputService9TestShapeInputService9TestCaseOperation1Input{
  4181  		MapArg: map[string]*string{
  4182  			"key1": aws.String("val1"),
  4183  			"key2": aws.String("val2"),
  4184  		},
  4185  	}
  4186  	req, _ := svc.InputService9TestCaseOperation1Request(input)
  4187  	r := req.HTTPRequest
  4188  
  4189  	// build request
  4190  	req.Build()
  4191  	if req.Error != nil {
  4192  		t.Errorf("expect no error, got %v", req.Error)
  4193  	}
  4194  	req.Sign()
  4195  	if req.Error != nil {
  4196  		t.Errorf("expect no error, got %v", req.Error)
  4197  	}
  4198  
  4199  	// assert body
  4200  	if r.Body == nil {
  4201  		t.Errorf("expect body not to be nil")
  4202  	}
  4203  	body, _ := ioutil.ReadAll(r.Body)
  4204  	awstesting.AssertQuery(t, `Action=OperationName&MapArg.entry.1.TheKey=key1&MapArg.entry.1.TheValue=val1&MapArg.entry.2.TheKey=key2&MapArg.entry.2.TheValue=val2&Version=2014-01-01`, util.Trim(string(body)))
  4205  
  4206  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4207  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4208  	}
  4209  
  4210  	// assert URL
  4211  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4212  }
  4213  
  4214  func TestInputService10ProtocolTestBase64EncodedBlobsCase1(t *testing.T) {
  4215  	svc := NewInputService10ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4216  	input := &InputService10TestShapeInputService10TestCaseOperation1Input{
  4217  		BlobArg: []byte("foo"),
  4218  	}
  4219  	req, _ := svc.InputService10TestCaseOperation1Request(input)
  4220  	r := req.HTTPRequest
  4221  
  4222  	// build request
  4223  	req.Build()
  4224  	if req.Error != nil {
  4225  		t.Errorf("expect no error, got %v", req.Error)
  4226  	}
  4227  	req.Sign()
  4228  	if req.Error != nil {
  4229  		t.Errorf("expect no error, got %v", req.Error)
  4230  	}
  4231  
  4232  	// assert body
  4233  	if r.Body == nil {
  4234  		t.Errorf("expect body not to be nil")
  4235  	}
  4236  	body, _ := ioutil.ReadAll(r.Body)
  4237  	awstesting.AssertQuery(t, `Action=OperationName&BlobArg=Zm9v&Version=2014-01-01`, util.Trim(string(body)))
  4238  
  4239  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4240  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4241  	}
  4242  
  4243  	// assert URL
  4244  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4245  }
  4246  
  4247  func TestInputService11ProtocolTestBase64EncodedBlobsNestedCase1(t *testing.T) {
  4248  	svc := NewInputService11ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4249  	input := &InputService11TestShapeInputService11TestCaseOperation1Input{
  4250  		BlobArgs: [][]byte{
  4251  			[]byte("foo"),
  4252  		},
  4253  	}
  4254  	req, _ := svc.InputService11TestCaseOperation1Request(input)
  4255  	r := req.HTTPRequest
  4256  
  4257  	// build request
  4258  	req.Build()
  4259  	if req.Error != nil {
  4260  		t.Errorf("expect no error, got %v", req.Error)
  4261  	}
  4262  	req.Sign()
  4263  	if req.Error != nil {
  4264  		t.Errorf("expect no error, got %v", req.Error)
  4265  	}
  4266  
  4267  	// assert body
  4268  	if r.Body == nil {
  4269  		t.Errorf("expect body not to be nil")
  4270  	}
  4271  	body, _ := ioutil.ReadAll(r.Body)
  4272  	awstesting.AssertQuery(t, `Action=OperationName&BlobArgs.1=Zm9v&Version=2014-01-01`, util.Trim(string(body)))
  4273  
  4274  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4275  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4276  	}
  4277  
  4278  	// assert URL
  4279  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4280  }
  4281  
  4282  func TestInputService12ProtocolTestTimestampValuesCase1(t *testing.T) {
  4283  	svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4284  	input := &InputService12TestShapeInputService12TestCaseOperation1Input{
  4285  		TimeArg:    aws.Time(time.Unix(1422172800, 0)),
  4286  		TimeCustom: aws.Time(time.Unix(1422172800, 0)),
  4287  		TimeFormat: aws.Time(time.Unix(1422172800, 0)),
  4288  	}
  4289  	req, _ := svc.InputService12TestCaseOperation1Request(input)
  4290  	r := req.HTTPRequest
  4291  
  4292  	// build request
  4293  	req.Build()
  4294  	if req.Error != nil {
  4295  		t.Errorf("expect no error, got %v", req.Error)
  4296  	}
  4297  	req.Sign()
  4298  	if req.Error != nil {
  4299  		t.Errorf("expect no error, got %v", req.Error)
  4300  	}
  4301  
  4302  	// assert body
  4303  	if r.Body == nil {
  4304  		t.Errorf("expect body not to be nil")
  4305  	}
  4306  	body, _ := ioutil.ReadAll(r.Body)
  4307  	awstesting.AssertQuery(t, `Action=OperationName&TimeArg=2015-01-25T08%3A00%3A00Z&TimeCustom=1422172800&TimeFormat=1422172800&Version=2014-01-01`, util.Trim(string(body)))
  4308  
  4309  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4310  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4311  	}
  4312  
  4313  	// assert URL
  4314  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4315  }
  4316  
  4317  func TestInputService13ProtocolTestRecursiveShapesCase1(t *testing.T) {
  4318  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4319  	input := &InputService13TestShapeInputService13TestCaseOperation1Input{
  4320  		RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4321  			NoRecurse: aws.String("foo"),
  4322  		},
  4323  	}
  4324  	req, _ := svc.InputService13TestCaseOperation1Request(input)
  4325  	r := req.HTTPRequest
  4326  
  4327  	// build request
  4328  	req.Build()
  4329  	if req.Error != nil {
  4330  		t.Errorf("expect no error, got %v", req.Error)
  4331  	}
  4332  	req.Sign()
  4333  	if req.Error != nil {
  4334  		t.Errorf("expect no error, got %v", req.Error)
  4335  	}
  4336  
  4337  	// assert body
  4338  	if r.Body == nil {
  4339  		t.Errorf("expect body not to be nil")
  4340  	}
  4341  	body, _ := ioutil.ReadAll(r.Body)
  4342  	awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.NoRecurse=foo&Version=2014-01-01`, util.Trim(string(body)))
  4343  
  4344  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4345  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4346  	}
  4347  
  4348  	// assert URL
  4349  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4350  }
  4351  
  4352  func TestInputService13ProtocolTestRecursiveShapesCase2(t *testing.T) {
  4353  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4354  	input := &InputService13TestShapeInputService13TestCaseOperation2Input{
  4355  		RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4356  			RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4357  				NoRecurse: aws.String("foo"),
  4358  			},
  4359  		},
  4360  	}
  4361  	req, _ := svc.InputService13TestCaseOperation2Request(input)
  4362  	r := req.HTTPRequest
  4363  
  4364  	// build request
  4365  	req.Build()
  4366  	if req.Error != nil {
  4367  		t.Errorf("expect no error, got %v", req.Error)
  4368  	}
  4369  	req.Sign()
  4370  	if req.Error != nil {
  4371  		t.Errorf("expect no error, got %v", req.Error)
  4372  	}
  4373  
  4374  	// assert body
  4375  	if r.Body == nil {
  4376  		t.Errorf("expect body not to be nil")
  4377  	}
  4378  	body, _ := ioutil.ReadAll(r.Body)
  4379  	awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveStruct.NoRecurse=foo&Version=2014-01-01`, util.Trim(string(body)))
  4380  
  4381  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4382  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4383  	}
  4384  
  4385  	// assert URL
  4386  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4387  }
  4388  
  4389  func TestInputService13ProtocolTestRecursiveShapesCase3(t *testing.T) {
  4390  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4391  	input := &InputService13TestShapeInputService13TestCaseOperation3Input{
  4392  		RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4393  			RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4394  				RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4395  					RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4396  						NoRecurse: aws.String("foo"),
  4397  					},
  4398  				},
  4399  			},
  4400  		},
  4401  	}
  4402  	req, _ := svc.InputService13TestCaseOperation3Request(input)
  4403  	r := req.HTTPRequest
  4404  
  4405  	// build request
  4406  	req.Build()
  4407  	if req.Error != nil {
  4408  		t.Errorf("expect no error, got %v", req.Error)
  4409  	}
  4410  	req.Sign()
  4411  	if req.Error != nil {
  4412  		t.Errorf("expect no error, got %v", req.Error)
  4413  	}
  4414  
  4415  	// assert body
  4416  	if r.Body == nil {
  4417  		t.Errorf("expect body not to be nil")
  4418  	}
  4419  	body, _ := ioutil.ReadAll(r.Body)
  4420  	awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveStruct.RecursiveStruct.RecursiveStruct.NoRecurse=foo&Version=2014-01-01`, util.Trim(string(body)))
  4421  
  4422  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4423  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4424  	}
  4425  
  4426  	// assert URL
  4427  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4428  }
  4429  
  4430  func TestInputService13ProtocolTestRecursiveShapesCase4(t *testing.T) {
  4431  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4432  	input := &InputService13TestShapeInputService13TestCaseOperation4Input{
  4433  		RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4434  			RecursiveList: []*InputService13TestShapeRecursiveStructType{
  4435  				{
  4436  					NoRecurse: aws.String("foo"),
  4437  				},
  4438  				{
  4439  					NoRecurse: aws.String("bar"),
  4440  				},
  4441  			},
  4442  		},
  4443  	}
  4444  	req, _ := svc.InputService13TestCaseOperation4Request(input)
  4445  	r := req.HTTPRequest
  4446  
  4447  	// build request
  4448  	req.Build()
  4449  	if req.Error != nil {
  4450  		t.Errorf("expect no error, got %v", req.Error)
  4451  	}
  4452  	req.Sign()
  4453  	if req.Error != nil {
  4454  		t.Errorf("expect no error, got %v", req.Error)
  4455  	}
  4456  
  4457  	// assert body
  4458  	if r.Body == nil {
  4459  		t.Errorf("expect body not to be nil")
  4460  	}
  4461  	body, _ := ioutil.ReadAll(r.Body)
  4462  	awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveList.member.1.NoRecurse=foo&RecursiveStruct.RecursiveList.member.2.NoRecurse=bar&Version=2014-01-01`, util.Trim(string(body)))
  4463  
  4464  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4465  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4466  	}
  4467  
  4468  	// assert URL
  4469  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4470  }
  4471  
  4472  func TestInputService13ProtocolTestRecursiveShapesCase5(t *testing.T) {
  4473  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4474  	input := &InputService13TestShapeInputService13TestCaseOperation5Input{
  4475  		RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4476  			RecursiveList: []*InputService13TestShapeRecursiveStructType{
  4477  				{
  4478  					NoRecurse: aws.String("foo"),
  4479  				},
  4480  				{
  4481  					RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4482  						NoRecurse: aws.String("bar"),
  4483  					},
  4484  				},
  4485  			},
  4486  		},
  4487  	}
  4488  	req, _ := svc.InputService13TestCaseOperation5Request(input)
  4489  	r := req.HTTPRequest
  4490  
  4491  	// build request
  4492  	req.Build()
  4493  	if req.Error != nil {
  4494  		t.Errorf("expect no error, got %v", req.Error)
  4495  	}
  4496  	req.Sign()
  4497  	if req.Error != nil {
  4498  		t.Errorf("expect no error, got %v", req.Error)
  4499  	}
  4500  
  4501  	// assert body
  4502  	if r.Body == nil {
  4503  		t.Errorf("expect body not to be nil")
  4504  	}
  4505  	body, _ := ioutil.ReadAll(r.Body)
  4506  	awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveList.member.1.NoRecurse=foo&RecursiveStruct.RecursiveList.member.2.RecursiveStruct.NoRecurse=bar&Version=2014-01-01`, util.Trim(string(body)))
  4507  
  4508  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4509  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4510  	}
  4511  
  4512  	// assert URL
  4513  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4514  }
  4515  
  4516  func TestInputService13ProtocolTestRecursiveShapesCase6(t *testing.T) {
  4517  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4518  	input := &InputService13TestShapeInputService13TestCaseOperation6Input{
  4519  		RecursiveStruct: &InputService13TestShapeRecursiveStructType{
  4520  			RecursiveMap: map[string]*InputService13TestShapeRecursiveStructType{
  4521  				"bar": {
  4522  					NoRecurse: aws.String("bar"),
  4523  				},
  4524  				"foo": {
  4525  					NoRecurse: aws.String("foo"),
  4526  				},
  4527  			},
  4528  		},
  4529  	}
  4530  	req, _ := svc.InputService13TestCaseOperation6Request(input)
  4531  	r := req.HTTPRequest
  4532  
  4533  	// build request
  4534  	req.Build()
  4535  	if req.Error != nil {
  4536  		t.Errorf("expect no error, got %v", req.Error)
  4537  	}
  4538  	req.Sign()
  4539  	if req.Error != nil {
  4540  		t.Errorf("expect no error, got %v", req.Error)
  4541  	}
  4542  
  4543  	// assert body
  4544  	if r.Body == nil {
  4545  		t.Errorf("expect body not to be nil")
  4546  	}
  4547  	body, _ := ioutil.ReadAll(r.Body)
  4548  	awstesting.AssertQuery(t, `Action=OperationName&RecursiveStruct.RecursiveMap.entry.1.key=foo&RecursiveStruct.RecursiveMap.entry.1.value.NoRecurse=foo&RecursiveStruct.RecursiveMap.entry.2.key=bar&RecursiveStruct.RecursiveMap.entry.2.value.NoRecurse=bar&Version=2014-01-01`, util.Trim(string(body)))
  4549  
  4550  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4551  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4552  	}
  4553  
  4554  	// assert URL
  4555  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4556  }
  4557  
  4558  func TestInputService14ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) {
  4559  	svc := NewInputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4560  	input := &InputService14TestShapeInputService14TestCaseOperation1Input{
  4561  		Token: aws.String("abc123"),
  4562  	}
  4563  	req, _ := svc.InputService14TestCaseOperation1Request(input)
  4564  	r := req.HTTPRequest
  4565  
  4566  	// build request
  4567  	req.Build()
  4568  	if req.Error != nil {
  4569  		t.Errorf("expect no error, got %v", req.Error)
  4570  	}
  4571  	req.Sign()
  4572  	if req.Error != nil {
  4573  		t.Errorf("expect no error, got %v", req.Error)
  4574  	}
  4575  
  4576  	// assert body
  4577  	if r.Body == nil {
  4578  		t.Errorf("expect body not to be nil")
  4579  	}
  4580  	body, _ := ioutil.ReadAll(r.Body)
  4581  	awstesting.AssertQuery(t, `Action=OperationName&Token=abc123&Version=2014-01-01`, util.Trim(string(body)))
  4582  
  4583  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4584  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4585  	}
  4586  
  4587  	// assert URL
  4588  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4589  }
  4590  
  4591  func TestInputService14ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) {
  4592  	svc := NewInputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4593  	input := &InputService14TestShapeInputService14TestCaseOperation2Input{}
  4594  	req, _ := svc.InputService14TestCaseOperation2Request(input)
  4595  	r := req.HTTPRequest
  4596  
  4597  	// build request
  4598  	req.Build()
  4599  	if req.Error != nil {
  4600  		t.Errorf("expect no error, got %v", req.Error)
  4601  	}
  4602  	req.Sign()
  4603  	if req.Error != nil {
  4604  		t.Errorf("expect no error, got %v", req.Error)
  4605  	}
  4606  
  4607  	// assert body
  4608  	if r.Body == nil {
  4609  		t.Errorf("expect body not to be nil")
  4610  	}
  4611  	body, _ := ioutil.ReadAll(r.Body)
  4612  	awstesting.AssertQuery(t, `Action=OperationName&Token=00000000-0000-4000-8000-000000000000&Version=2014-01-01`, util.Trim(string(body)))
  4613  
  4614  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4615  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4616  	}
  4617  
  4618  	// assert URL
  4619  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4620  }
  4621  
  4622  func TestInputService15ProtocolTestEnumCase1(t *testing.T) {
  4623  	svc := NewInputService15ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4624  	input := &InputService15TestShapeInputService15TestCaseOperation1Input{
  4625  		FooEnum: aws.String("foo"),
  4626  		ListEnums: []*string{
  4627  			aws.String("foo"),
  4628  			aws.String(""),
  4629  			aws.String("bar"),
  4630  		},
  4631  	}
  4632  	req, _ := svc.InputService15TestCaseOperation1Request(input)
  4633  	r := req.HTTPRequest
  4634  
  4635  	// build request
  4636  	req.Build()
  4637  	if req.Error != nil {
  4638  		t.Errorf("expect no error, got %v", req.Error)
  4639  	}
  4640  	req.Sign()
  4641  	if req.Error != nil {
  4642  		t.Errorf("expect no error, got %v", req.Error)
  4643  	}
  4644  
  4645  	// assert body
  4646  	if r.Body == nil {
  4647  		t.Errorf("expect body not to be nil")
  4648  	}
  4649  	body, _ := ioutil.ReadAll(r.Body)
  4650  	awstesting.AssertQuery(t, `Action=OperationName&FooEnum=foo&ListEnums.member.1=foo&ListEnums.member.2=&ListEnums.member.3=bar&Version=2014-01-01`, util.Trim(string(body)))
  4651  
  4652  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4653  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4654  	}
  4655  
  4656  	// assert URL
  4657  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4658  }
  4659  
  4660  func TestInputService15ProtocolTestEnumCase2(t *testing.T) {
  4661  	svc := NewInputService15ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4662  	input := &InputService15TestShapeInputService15TestCaseOperation2Input{
  4663  		FooEnum: aws.String("foo"),
  4664  	}
  4665  	req, _ := svc.InputService15TestCaseOperation2Request(input)
  4666  	r := req.HTTPRequest
  4667  
  4668  	// build request
  4669  	req.Build()
  4670  	if req.Error != nil {
  4671  		t.Errorf("expect no error, got %v", req.Error)
  4672  	}
  4673  	req.Sign()
  4674  	if req.Error != nil {
  4675  		t.Errorf("expect no error, got %v", req.Error)
  4676  	}
  4677  
  4678  	// assert body
  4679  	if r.Body == nil {
  4680  		t.Errorf("expect body not to be nil")
  4681  	}
  4682  	body, _ := ioutil.ReadAll(r.Body)
  4683  	awstesting.AssertQuery(t, `Action=OperationName&FooEnum=foo&Version=2014-01-01`, util.Trim(string(body)))
  4684  
  4685  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4686  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4687  	}
  4688  
  4689  	// assert URL
  4690  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4691  }
  4692  
  4693  func TestInputService15ProtocolTestEnumCase3(t *testing.T) {
  4694  	svc := NewInputService15ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  4695  	input := &InputService15TestShapeInputService15TestCaseOperation3Input{}
  4696  	req, _ := svc.InputService15TestCaseOperation3Request(input)
  4697  	r := req.HTTPRequest
  4698  
  4699  	// build request
  4700  	req.Build()
  4701  	if req.Error != nil {
  4702  		t.Errorf("expect no error, got %v", req.Error)
  4703  	}
  4704  	req.Sign()
  4705  	if req.Error != nil {
  4706  		t.Errorf("expect no error, got %v", req.Error)
  4707  	}
  4708  
  4709  	// assert body
  4710  	if r.Body == nil {
  4711  		t.Errorf("expect body not to be nil")
  4712  	}
  4713  	body, _ := ioutil.ReadAll(r.Body)
  4714  	awstesting.AssertQuery(t, `Action=OperationName&Version=2014-01-01`, util.Trim(string(body)))
  4715  
  4716  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4717  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4718  	}
  4719  
  4720  	// assert URL
  4721  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  4722  }
  4723  
  4724  func TestInputService16ProtocolTestEndpointHostTraitCase1(t *testing.T) {
  4725  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://service.region.amazonaws.com")})
  4726  	input := &InputService16TestShapeInputService16TestCaseOperation1Input{
  4727  		Name: aws.String("myname"),
  4728  	}
  4729  	req, _ := svc.InputService16TestCaseOperation1Request(input)
  4730  	r := req.HTTPRequest
  4731  
  4732  	// build request
  4733  	req.Build()
  4734  	if req.Error != nil {
  4735  		t.Errorf("expect no error, got %v", req.Error)
  4736  	}
  4737  	req.Sign()
  4738  	if req.Error != nil {
  4739  		t.Errorf("expect no error, got %v", req.Error)
  4740  	}
  4741  
  4742  	// assert body
  4743  	if r.Body == nil {
  4744  		t.Errorf("expect body not to be nil")
  4745  	}
  4746  	body, _ := ioutil.ReadAll(r.Body)
  4747  	awstesting.AssertQuery(t, `Action=StaticOp&Name=myname&Version=2014-01-01`, util.Trim(string(body)))
  4748  
  4749  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4750  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4751  	}
  4752  
  4753  	// assert URL
  4754  	awstesting.AssertURL(t, "https://data-service.region.amazonaws.com/", r.URL.String())
  4755  }
  4756  
  4757  func TestInputService16ProtocolTestEndpointHostTraitCase2(t *testing.T) {
  4758  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://service.region.amazonaws.com")})
  4759  	input := &InputService16TestShapeInputService16TestCaseOperation2Input{
  4760  		Name: aws.String("myname"),
  4761  	}
  4762  	req, _ := svc.InputService16TestCaseOperation2Request(input)
  4763  	r := req.HTTPRequest
  4764  
  4765  	// build request
  4766  	req.Build()
  4767  	if req.Error != nil {
  4768  		t.Errorf("expect no error, got %v", req.Error)
  4769  	}
  4770  	req.Sign()
  4771  	if req.Error != nil {
  4772  		t.Errorf("expect no error, got %v", req.Error)
  4773  	}
  4774  
  4775  	// assert body
  4776  	if r.Body == nil {
  4777  		t.Errorf("expect body not to be nil")
  4778  	}
  4779  	body, _ := ioutil.ReadAll(r.Body)
  4780  	awstesting.AssertQuery(t, `Action=MemberRefOp&Name=myname&Version=2014-01-01`, util.Trim(string(body)))
  4781  
  4782  	if e, a := int64(len(body)), r.ContentLength; e != a {
  4783  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  4784  	}
  4785  
  4786  	// assert URL
  4787  	awstesting.AssertURL(t, "https://foo-myname.service.region.amazonaws.com/", r.URL.String())
  4788  }