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

     1  // Code generated by models/protocol_tests/generate.go. DO NOT EDIT.
     2  
     3  package restjson_test
     4  
     5  import (
     6  	"bytes"
     7  	"encoding/json"
     8  	"encoding/xml"
     9  	"fmt"
    10  	"io"
    11  	"io/ioutil"
    12  	"net/http"
    13  	"net/url"
    14  	"reflect"
    15  	"testing"
    16  	"time"
    17  
    18  	"github.com/aavshr/aws-sdk-go/aws"
    19  	"github.com/aavshr/aws-sdk-go/aws/client"
    20  	"github.com/aavshr/aws-sdk-go/aws/client/metadata"
    21  	"github.com/aavshr/aws-sdk-go/aws/request"
    22  	"github.com/aavshr/aws-sdk-go/aws/signer/v4"
    23  	"github.com/aavshr/aws-sdk-go/awstesting"
    24  	"github.com/aavshr/aws-sdk-go/awstesting/unit"
    25  	"github.com/aavshr/aws-sdk-go/private/protocol"
    26  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    27  	"github.com/aavshr/aws-sdk-go/private/protocol/xml/xmlutil"
    28  	"github.com/aavshr/aws-sdk-go/private/util"
    29  )
    30  
    31  var _ bytes.Buffer // always import bytes
    32  var _ http.Request
    33  var _ json.Marshaler
    34  var _ time.Time
    35  var _ xmlutil.XMLNode
    36  var _ xml.Attr
    37  var _ = ioutil.Discard
    38  var _ = util.Trim("")
    39  var _ = url.Values{}
    40  var _ = io.EOF
    41  var _ = aws.String
    42  var _ = fmt.Println
    43  var _ = reflect.Value{}
    44  
    45  func init() {
    46  	protocol.RandReader = &awstesting.ZeroReader{}
    47  }
    48  
    49  // 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(restjson.BuildHandler)
    97  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
    98  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
    99  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   100  
   101  	return svc
   102  }
   103  
   104  // newRequest creates a new request for a 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  		HTTPMethod: "GET",
   140  		HTTPPath:   "/2014-01-01/jobs",
   141  	}
   142  
   143  	if input == nil {
   144  		input = &InputService1TestShapeInputService1TestCaseOperation1Input{}
   145  	}
   146  
   147  	output = &InputService1TestShapeInputService1TestCaseOperation1Output{}
   148  	req = c.newRequest(op, input, output)
   149  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   150  	return
   151  }
   152  
   153  // InputService1TestCaseOperation1 API operation for .
   154  //
   155  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   156  // with awserr.Error's Code and Message methods to get detailed information about
   157  // the error.
   158  //
   159  // See the AWS API reference guide for 's
   160  // API operation InputService1TestCaseOperation1 for usage and error information.
   161  func (c *InputService1ProtocolTest) InputService1TestCaseOperation1(input *InputService1TestShapeInputService1TestCaseOperation1Input) (*InputService1TestShapeInputService1TestCaseOperation1Output, error) {
   162  	req, out := c.InputService1TestCaseOperation1Request(input)
   163  	return out, req.Send()
   164  }
   165  
   166  // InputService1TestCaseOperation1WithContext is the same as InputService1TestCaseOperation1 with the addition of
   167  // the ability to pass a context and additional request options.
   168  //
   169  // See InputService1TestCaseOperation1 for details on how to use this API operation.
   170  //
   171  // The context must be non-nil and will be used for request cancellation. If
   172  // the context is nil a panic will occur. In the future the SDK may create
   173  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   174  // for more information on using Contexts.
   175  func (c *InputService1ProtocolTest) InputService1TestCaseOperation1WithContext(ctx aws.Context, input *InputService1TestShapeInputService1TestCaseOperation1Input, opts ...request.Option) (*InputService1TestShapeInputService1TestCaseOperation1Output, error) {
   176  	req, out := c.InputService1TestCaseOperation1Request(input)
   177  	req.SetContext(ctx)
   178  	req.ApplyOptions(opts...)
   179  	return out, req.Send()
   180  }
   181  
   182  type InputService1TestShapeInputService1TestCaseOperation1Input struct {
   183  	_ struct{} `type:"structure" nopayload:"true"`
   184  }
   185  
   186  type InputService1TestShapeInputService1TestCaseOperation1Output struct {
   187  	_ struct{} `type:"structure" nopayload:"true"`
   188  }
   189  
   190  // InputService2ProtocolTest provides the API operation methods for making requests to
   191  // . See this package's package overview docs
   192  // for details on the service.
   193  //
   194  // InputService2ProtocolTest methods are safe to use concurrently. It is not safe to
   195  // modify mutate any of the struct's properties though.
   196  type InputService2ProtocolTest struct {
   197  	*client.Client
   198  }
   199  
   200  // New creates a new instance of the InputService2ProtocolTest client with a session.
   201  // If additional configuration is needed for the client instance use the optional
   202  // aws.Config parameter to add your extra config.
   203  //
   204  // Example:
   205  //     mySession := session.Must(session.NewSession())
   206  //
   207  //     // Create a InputService2ProtocolTest client from just a session.
   208  //     svc := inputservice2protocoltest.New(mySession)
   209  //
   210  //     // Create a InputService2ProtocolTest client with additional configuration
   211  //     svc := inputservice2protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   212  func NewInputService2ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService2ProtocolTest {
   213  	c := p.ClientConfig("inputservice2protocoltest", cfgs...)
   214  	return newInputService2ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   215  }
   216  
   217  // newClient creates, initializes and returns a new service client instance.
   218  func newInputService2ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService2ProtocolTest {
   219  	svc := &InputService2ProtocolTest{
   220  		Client: client.New(
   221  			cfg,
   222  			metadata.ClientInfo{
   223  				ServiceName:   "InputService2ProtocolTest",
   224  				ServiceID:     "InputService2ProtocolTest",
   225  				SigningName:   signingName,
   226  				SigningRegion: signingRegion,
   227  				PartitionID:   partitionID,
   228  				Endpoint:      endpoint,
   229  				APIVersion:    "2014-01-01",
   230  			},
   231  			handlers,
   232  		),
   233  	}
   234  
   235  	// Handlers
   236  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   237  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   238  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   239  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   240  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   241  
   242  	return svc
   243  }
   244  
   245  // newRequest creates a new request for a InputService2ProtocolTest operation and runs any
   246  // custom request initialization.
   247  func (c *InputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   248  	req := c.NewRequest(op, params, data)
   249  
   250  	return req
   251  }
   252  
   253  const opInputService2TestCaseOperation1 = "OperationName"
   254  
   255  // InputService2TestCaseOperation1Request generates a "aws/request.Request" representing the
   256  // client's request for the InputService2TestCaseOperation1 operation. The "output" return
   257  // value will be populated with the request's response once the request completes
   258  // successfully.
   259  //
   260  // Use "Send" method on the returned Request to send the API call to the service.
   261  // the "output" return value is not valid until after Send returns without error.
   262  //
   263  // See InputService2TestCaseOperation1 for more information on using the InputService2TestCaseOperation1
   264  // API call, and error handling.
   265  //
   266  // This method is useful when you want to inject custom logic or configuration
   267  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   268  //
   269  //
   270  //    // Example sending a request using the InputService2TestCaseOperation1Request method.
   271  //    req, resp := client.InputService2TestCaseOperation1Request(params)
   272  //
   273  //    err := req.Send()
   274  //    if err == nil { // resp is now filled
   275  //        fmt.Println(resp)
   276  //    }
   277  func (c *InputService2ProtocolTest) InputService2TestCaseOperation1Request(input *InputService2TestShapeInputService2TestCaseOperation1Input) (req *request.Request, output *InputService2TestShapeInputService2TestCaseOperation1Output) {
   278  	op := &request.Operation{
   279  		Name:       opInputService2TestCaseOperation1,
   280  		HTTPMethod: "GET",
   281  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
   282  	}
   283  
   284  	if input == nil {
   285  		input = &InputService2TestShapeInputService2TestCaseOperation1Input{}
   286  	}
   287  
   288  	output = &InputService2TestShapeInputService2TestCaseOperation1Output{}
   289  	req = c.newRequest(op, input, output)
   290  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   291  	return
   292  }
   293  
   294  // InputService2TestCaseOperation1 API operation for .
   295  //
   296  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   297  // with awserr.Error's Code and Message methods to get detailed information about
   298  // the error.
   299  //
   300  // See the AWS API reference guide for 's
   301  // API operation InputService2TestCaseOperation1 for usage and error information.
   302  func (c *InputService2ProtocolTest) InputService2TestCaseOperation1(input *InputService2TestShapeInputService2TestCaseOperation1Input) (*InputService2TestShapeInputService2TestCaseOperation1Output, error) {
   303  	req, out := c.InputService2TestCaseOperation1Request(input)
   304  	return out, req.Send()
   305  }
   306  
   307  // InputService2TestCaseOperation1WithContext is the same as InputService2TestCaseOperation1 with the addition of
   308  // the ability to pass a context and additional request options.
   309  //
   310  // See InputService2TestCaseOperation1 for details on how to use this API operation.
   311  //
   312  // The context must be non-nil and will be used for request cancellation. If
   313  // the context is nil a panic will occur. In the future the SDK may create
   314  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   315  // for more information on using Contexts.
   316  func (c *InputService2ProtocolTest) InputService2TestCaseOperation1WithContext(ctx aws.Context, input *InputService2TestShapeInputService2TestCaseOperation1Input, opts ...request.Option) (*InputService2TestShapeInputService2TestCaseOperation1Output, error) {
   317  	req, out := c.InputService2TestCaseOperation1Request(input)
   318  	req.SetContext(ctx)
   319  	req.ApplyOptions(opts...)
   320  	return out, req.Send()
   321  }
   322  
   323  type InputService2TestShapeInputService2TestCaseOperation1Input struct {
   324  	_ struct{} `type:"structure" nopayload:"true"`
   325  
   326  	// PipelineId is a required field
   327  	PipelineId *string `location:"uri" type:"string" required:"true"`
   328  }
   329  
   330  // Validate inspects the fields of the type to determine if they are valid.
   331  func (s *InputService2TestShapeInputService2TestCaseOperation1Input) Validate() error {
   332  	invalidParams := request.ErrInvalidParams{Context: "InputService2TestShapeInputService2TestCaseOperation1Input"}
   333  	if s.PipelineId == nil {
   334  		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
   335  	}
   336  	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
   337  		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
   338  	}
   339  
   340  	if invalidParams.Len() > 0 {
   341  		return invalidParams
   342  	}
   343  	return nil
   344  }
   345  
   346  // SetPipelineId sets the PipelineId field's value.
   347  func (s *InputService2TestShapeInputService2TestCaseOperation1Input) SetPipelineId(v string) *InputService2TestShapeInputService2TestCaseOperation1Input {
   348  	s.PipelineId = &v
   349  	return s
   350  }
   351  
   352  type InputService2TestShapeInputService2TestCaseOperation1Output struct {
   353  	_ struct{} `type:"structure" nopayload:"true"`
   354  }
   355  
   356  // InputService3ProtocolTest provides the API operation methods for making requests to
   357  // . See this package's package overview docs
   358  // for details on the service.
   359  //
   360  // InputService3ProtocolTest methods are safe to use concurrently. It is not safe to
   361  // modify mutate any of the struct's properties though.
   362  type InputService3ProtocolTest struct {
   363  	*client.Client
   364  }
   365  
   366  // New creates a new instance of the InputService3ProtocolTest client with a session.
   367  // If additional configuration is needed for the client instance use the optional
   368  // aws.Config parameter to add your extra config.
   369  //
   370  // Example:
   371  //     mySession := session.Must(session.NewSession())
   372  //
   373  //     // Create a InputService3ProtocolTest client from just a session.
   374  //     svc := inputservice3protocoltest.New(mySession)
   375  //
   376  //     // Create a InputService3ProtocolTest client with additional configuration
   377  //     svc := inputservice3protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   378  func NewInputService3ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService3ProtocolTest {
   379  	c := p.ClientConfig("inputservice3protocoltest", cfgs...)
   380  	return newInputService3ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   381  }
   382  
   383  // newClient creates, initializes and returns a new service client instance.
   384  func newInputService3ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService3ProtocolTest {
   385  	svc := &InputService3ProtocolTest{
   386  		Client: client.New(
   387  			cfg,
   388  			metadata.ClientInfo{
   389  				ServiceName:   "InputService3ProtocolTest",
   390  				ServiceID:     "InputService3ProtocolTest",
   391  				SigningName:   signingName,
   392  				SigningRegion: signingRegion,
   393  				PartitionID:   partitionID,
   394  				Endpoint:      endpoint,
   395  				APIVersion:    "2014-01-01",
   396  			},
   397  			handlers,
   398  		),
   399  	}
   400  
   401  	// Handlers
   402  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   403  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   404  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   405  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   406  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   407  
   408  	return svc
   409  }
   410  
   411  // newRequest creates a new request for a InputService3ProtocolTest operation and runs any
   412  // custom request initialization.
   413  func (c *InputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   414  	req := c.NewRequest(op, params, data)
   415  
   416  	return req
   417  }
   418  
   419  const opInputService3TestCaseOperation1 = "OperationName"
   420  
   421  // InputService3TestCaseOperation1Request generates a "aws/request.Request" representing the
   422  // client's request for the InputService3TestCaseOperation1 operation. The "output" return
   423  // value will be populated with the request's response once the request completes
   424  // successfully.
   425  //
   426  // Use "Send" method on the returned Request to send the API call to the service.
   427  // the "output" return value is not valid until after Send returns without error.
   428  //
   429  // See InputService3TestCaseOperation1 for more information on using the InputService3TestCaseOperation1
   430  // API call, and error handling.
   431  //
   432  // This method is useful when you want to inject custom logic or configuration
   433  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   434  //
   435  //
   436  //    // Example sending a request using the InputService3TestCaseOperation1Request method.
   437  //    req, resp := client.InputService3TestCaseOperation1Request(params)
   438  //
   439  //    err := req.Send()
   440  //    if err == nil { // resp is now filled
   441  //        fmt.Println(resp)
   442  //    }
   443  func (c *InputService3ProtocolTest) InputService3TestCaseOperation1Request(input *InputService3TestShapeInputService3TestCaseOperation1Input) (req *request.Request, output *InputService3TestShapeInputService3TestCaseOperation1Output) {
   444  	op := &request.Operation{
   445  		Name:       opInputService3TestCaseOperation1,
   446  		HTTPMethod: "GET",
   447  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
   448  	}
   449  
   450  	if input == nil {
   451  		input = &InputService3TestShapeInputService3TestCaseOperation1Input{}
   452  	}
   453  
   454  	output = &InputService3TestShapeInputService3TestCaseOperation1Output{}
   455  	req = c.newRequest(op, input, output)
   456  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   457  	return
   458  }
   459  
   460  // InputService3TestCaseOperation1 API operation for .
   461  //
   462  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   463  // with awserr.Error's Code and Message methods to get detailed information about
   464  // the error.
   465  //
   466  // See the AWS API reference guide for 's
   467  // API operation InputService3TestCaseOperation1 for usage and error information.
   468  func (c *InputService3ProtocolTest) InputService3TestCaseOperation1(input *InputService3TestShapeInputService3TestCaseOperation1Input) (*InputService3TestShapeInputService3TestCaseOperation1Output, error) {
   469  	req, out := c.InputService3TestCaseOperation1Request(input)
   470  	return out, req.Send()
   471  }
   472  
   473  // InputService3TestCaseOperation1WithContext is the same as InputService3TestCaseOperation1 with the addition of
   474  // the ability to pass a context and additional request options.
   475  //
   476  // See InputService3TestCaseOperation1 for details on how to use this API operation.
   477  //
   478  // The context must be non-nil and will be used for request cancellation. If
   479  // the context is nil a panic will occur. In the future the SDK may create
   480  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   481  // for more information on using Contexts.
   482  func (c *InputService3ProtocolTest) InputService3TestCaseOperation1WithContext(ctx aws.Context, input *InputService3TestShapeInputService3TestCaseOperation1Input, opts ...request.Option) (*InputService3TestShapeInputService3TestCaseOperation1Output, error) {
   483  	req, out := c.InputService3TestCaseOperation1Request(input)
   484  	req.SetContext(ctx)
   485  	req.ApplyOptions(opts...)
   486  	return out, req.Send()
   487  }
   488  
   489  type InputService3TestShapeInputService3TestCaseOperation1Input struct {
   490  	_ struct{} `type:"structure" nopayload:"true"`
   491  
   492  	// Foo is a required field
   493  	Foo *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
   494  }
   495  
   496  // Validate inspects the fields of the type to determine if they are valid.
   497  func (s *InputService3TestShapeInputService3TestCaseOperation1Input) Validate() error {
   498  	invalidParams := request.ErrInvalidParams{Context: "InputService3TestShapeInputService3TestCaseOperation1Input"}
   499  	if s.Foo == nil {
   500  		invalidParams.Add(request.NewErrParamRequired("Foo"))
   501  	}
   502  	if s.Foo != nil && len(*s.Foo) < 1 {
   503  		invalidParams.Add(request.NewErrParamMinLen("Foo", 1))
   504  	}
   505  
   506  	if invalidParams.Len() > 0 {
   507  		return invalidParams
   508  	}
   509  	return nil
   510  }
   511  
   512  // SetFoo sets the Foo field's value.
   513  func (s *InputService3TestShapeInputService3TestCaseOperation1Input) SetFoo(v string) *InputService3TestShapeInputService3TestCaseOperation1Input {
   514  	s.Foo = &v
   515  	return s
   516  }
   517  
   518  type InputService3TestShapeInputService3TestCaseOperation1Output struct {
   519  	_ struct{} `type:"structure" nopayload:"true"`
   520  }
   521  
   522  // InputService4ProtocolTest provides the API operation methods for making requests to
   523  // . See this package's package overview docs
   524  // for details on the service.
   525  //
   526  // InputService4ProtocolTest methods are safe to use concurrently. It is not safe to
   527  // modify mutate any of the struct's properties though.
   528  type InputService4ProtocolTest struct {
   529  	*client.Client
   530  }
   531  
   532  // New creates a new instance of the InputService4ProtocolTest client with a session.
   533  // If additional configuration is needed for the client instance use the optional
   534  // aws.Config parameter to add your extra config.
   535  //
   536  // Example:
   537  //     mySession := session.Must(session.NewSession())
   538  //
   539  //     // Create a InputService4ProtocolTest client from just a session.
   540  //     svc := inputservice4protocoltest.New(mySession)
   541  //
   542  //     // Create a InputService4ProtocolTest client with additional configuration
   543  //     svc := inputservice4protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   544  func NewInputService4ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService4ProtocolTest {
   545  	c := p.ClientConfig("inputservice4protocoltest", cfgs...)
   546  	return newInputService4ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   547  }
   548  
   549  // newClient creates, initializes and returns a new service client instance.
   550  func newInputService4ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService4ProtocolTest {
   551  	svc := &InputService4ProtocolTest{
   552  		Client: client.New(
   553  			cfg,
   554  			metadata.ClientInfo{
   555  				ServiceName:   "InputService4ProtocolTest",
   556  				ServiceID:     "InputService4ProtocolTest",
   557  				SigningName:   signingName,
   558  				SigningRegion: signingRegion,
   559  				PartitionID:   partitionID,
   560  				Endpoint:      endpoint,
   561  				APIVersion:    "2014-01-01",
   562  			},
   563  			handlers,
   564  		),
   565  	}
   566  
   567  	// Handlers
   568  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   569  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   570  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   571  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   572  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   573  
   574  	return svc
   575  }
   576  
   577  // newRequest creates a new request for a InputService4ProtocolTest operation and runs any
   578  // custom request initialization.
   579  func (c *InputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   580  	req := c.NewRequest(op, params, data)
   581  
   582  	return req
   583  }
   584  
   585  const opInputService4TestCaseOperation1 = "OperationName"
   586  
   587  // InputService4TestCaseOperation1Request generates a "aws/request.Request" representing the
   588  // client's request for the InputService4TestCaseOperation1 operation. The "output" return
   589  // value will be populated with the request's response once the request completes
   590  // successfully.
   591  //
   592  // Use "Send" method on the returned Request to send the API call to the service.
   593  // the "output" return value is not valid until after Send returns without error.
   594  //
   595  // See InputService4TestCaseOperation1 for more information on using the InputService4TestCaseOperation1
   596  // API call, and error handling.
   597  //
   598  // This method is useful when you want to inject custom logic or configuration
   599  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   600  //
   601  //
   602  //    // Example sending a request using the InputService4TestCaseOperation1Request method.
   603  //    req, resp := client.InputService4TestCaseOperation1Request(params)
   604  //
   605  //    err := req.Send()
   606  //    if err == nil { // resp is now filled
   607  //        fmt.Println(resp)
   608  //    }
   609  func (c *InputService4ProtocolTest) InputService4TestCaseOperation1Request(input *InputService4TestShapeInputService4TestCaseOperation1Input) (req *request.Request, output *InputService4TestShapeInputService4TestCaseOperation1Output) {
   610  	op := &request.Operation{
   611  		Name:       opInputService4TestCaseOperation1,
   612  		HTTPMethod: "GET",
   613  		HTTPPath:   "/path",
   614  	}
   615  
   616  	if input == nil {
   617  		input = &InputService4TestShapeInputService4TestCaseOperation1Input{}
   618  	}
   619  
   620  	output = &InputService4TestShapeInputService4TestCaseOperation1Output{}
   621  	req = c.newRequest(op, input, output)
   622  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   623  	return
   624  }
   625  
   626  // InputService4TestCaseOperation1 API operation for .
   627  //
   628  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   629  // with awserr.Error's Code and Message methods to get detailed information about
   630  // the error.
   631  //
   632  // See the AWS API reference guide for 's
   633  // API operation InputService4TestCaseOperation1 for usage and error information.
   634  func (c *InputService4ProtocolTest) InputService4TestCaseOperation1(input *InputService4TestShapeInputService4TestCaseOperation1Input) (*InputService4TestShapeInputService4TestCaseOperation1Output, error) {
   635  	req, out := c.InputService4TestCaseOperation1Request(input)
   636  	return out, req.Send()
   637  }
   638  
   639  // InputService4TestCaseOperation1WithContext is the same as InputService4TestCaseOperation1 with the addition of
   640  // the ability to pass a context and additional request options.
   641  //
   642  // See InputService4TestCaseOperation1 for details on how to use this API operation.
   643  //
   644  // The context must be non-nil and will be used for request cancellation. If
   645  // the context is nil a panic will occur. In the future the SDK may create
   646  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   647  // for more information on using Contexts.
   648  func (c *InputService4ProtocolTest) InputService4TestCaseOperation1WithContext(ctx aws.Context, input *InputService4TestShapeInputService4TestCaseOperation1Input, opts ...request.Option) (*InputService4TestShapeInputService4TestCaseOperation1Output, error) {
   649  	req, out := c.InputService4TestCaseOperation1Request(input)
   650  	req.SetContext(ctx)
   651  	req.ApplyOptions(opts...)
   652  	return out, req.Send()
   653  }
   654  
   655  type InputService4TestShapeInputService4TestCaseOperation1Input struct {
   656  	_ struct{} `type:"structure" nopayload:"true"`
   657  
   658  	Items []*string `location:"querystring" locationName:"item" type:"list"`
   659  }
   660  
   661  // SetItems sets the Items field's value.
   662  func (s *InputService4TestShapeInputService4TestCaseOperation1Input) SetItems(v []*string) *InputService4TestShapeInputService4TestCaseOperation1Input {
   663  	s.Items = v
   664  	return s
   665  }
   666  
   667  type InputService4TestShapeInputService4TestCaseOperation1Output struct {
   668  	_ struct{} `type:"structure" nopayload:"true"`
   669  }
   670  
   671  // InputService5ProtocolTest provides the API operation methods for making requests to
   672  // . See this package's package overview docs
   673  // for details on the service.
   674  //
   675  // InputService5ProtocolTest methods are safe to use concurrently. It is not safe to
   676  // modify mutate any of the struct's properties though.
   677  type InputService5ProtocolTest struct {
   678  	*client.Client
   679  }
   680  
   681  // New creates a new instance of the InputService5ProtocolTest client with a session.
   682  // If additional configuration is needed for the client instance use the optional
   683  // aws.Config parameter to add your extra config.
   684  //
   685  // Example:
   686  //     mySession := session.Must(session.NewSession())
   687  //
   688  //     // Create a InputService5ProtocolTest client from just a session.
   689  //     svc := inputservice5protocoltest.New(mySession)
   690  //
   691  //     // Create a InputService5ProtocolTest client with additional configuration
   692  //     svc := inputservice5protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   693  func NewInputService5ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService5ProtocolTest {
   694  	c := p.ClientConfig("inputservice5protocoltest", cfgs...)
   695  	return newInputService5ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   696  }
   697  
   698  // newClient creates, initializes and returns a new service client instance.
   699  func newInputService5ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService5ProtocolTest {
   700  	svc := &InputService5ProtocolTest{
   701  		Client: client.New(
   702  			cfg,
   703  			metadata.ClientInfo{
   704  				ServiceName:   "InputService5ProtocolTest",
   705  				ServiceID:     "InputService5ProtocolTest",
   706  				SigningName:   signingName,
   707  				SigningRegion: signingRegion,
   708  				PartitionID:   partitionID,
   709  				Endpoint:      endpoint,
   710  				APIVersion:    "2014-01-01",
   711  			},
   712  			handlers,
   713  		),
   714  	}
   715  
   716  	// Handlers
   717  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   718  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   719  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   720  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   721  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   722  
   723  	return svc
   724  }
   725  
   726  // newRequest creates a new request for a InputService5ProtocolTest operation and runs any
   727  // custom request initialization.
   728  func (c *InputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   729  	req := c.NewRequest(op, params, data)
   730  
   731  	return req
   732  }
   733  
   734  const opInputService5TestCaseOperation1 = "OperationName"
   735  
   736  // InputService5TestCaseOperation1Request generates a "aws/request.Request" representing the
   737  // client's request for the InputService5TestCaseOperation1 operation. The "output" return
   738  // value will be populated with the request's response once the request completes
   739  // successfully.
   740  //
   741  // Use "Send" method on the returned Request to send the API call to the service.
   742  // the "output" return value is not valid until after Send returns without error.
   743  //
   744  // See InputService5TestCaseOperation1 for more information on using the InputService5TestCaseOperation1
   745  // API call, and error handling.
   746  //
   747  // This method is useful when you want to inject custom logic or configuration
   748  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   749  //
   750  //
   751  //    // Example sending a request using the InputService5TestCaseOperation1Request method.
   752  //    req, resp := client.InputService5TestCaseOperation1Request(params)
   753  //
   754  //    err := req.Send()
   755  //    if err == nil { // resp is now filled
   756  //        fmt.Println(resp)
   757  //    }
   758  func (c *InputService5ProtocolTest) InputService5TestCaseOperation1Request(input *InputService5TestShapeInputService5TestCaseOperation1Input) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation1Output) {
   759  	op := &request.Operation{
   760  		Name:       opInputService5TestCaseOperation1,
   761  		HTTPMethod: "GET",
   762  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
   763  	}
   764  
   765  	if input == nil {
   766  		input = &InputService5TestShapeInputService5TestCaseOperation1Input{}
   767  	}
   768  
   769  	output = &InputService5TestShapeInputService5TestCaseOperation1Output{}
   770  	req = c.newRequest(op, input, output)
   771  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   772  	return
   773  }
   774  
   775  // InputService5TestCaseOperation1 API operation for .
   776  //
   777  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   778  // with awserr.Error's Code and Message methods to get detailed information about
   779  // the error.
   780  //
   781  // See the AWS API reference guide for 's
   782  // API operation InputService5TestCaseOperation1 for usage and error information.
   783  func (c *InputService5ProtocolTest) InputService5TestCaseOperation1(input *InputService5TestShapeInputService5TestCaseOperation1Input) (*InputService5TestShapeInputService5TestCaseOperation1Output, error) {
   784  	req, out := c.InputService5TestCaseOperation1Request(input)
   785  	return out, req.Send()
   786  }
   787  
   788  // InputService5TestCaseOperation1WithContext is the same as InputService5TestCaseOperation1 with the addition of
   789  // the ability to pass a context and additional request options.
   790  //
   791  // See InputService5TestCaseOperation1 for details on how to use this API operation.
   792  //
   793  // The context must be non-nil and will be used for request cancellation. If
   794  // the context is nil a panic will occur. In the future the SDK may create
   795  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   796  // for more information on using Contexts.
   797  func (c *InputService5ProtocolTest) InputService5TestCaseOperation1WithContext(ctx aws.Context, input *InputService5TestShapeInputService5TestCaseOperation1Input, opts ...request.Option) (*InputService5TestShapeInputService5TestCaseOperation1Output, error) {
   798  	req, out := c.InputService5TestCaseOperation1Request(input)
   799  	req.SetContext(ctx)
   800  	req.ApplyOptions(opts...)
   801  	return out, req.Send()
   802  }
   803  
   804  type InputService5TestShapeInputService5TestCaseOperation1Input struct {
   805  	_ struct{} `type:"structure" nopayload:"true"`
   806  
   807  	// PipelineId is a required field
   808  	PipelineId *string `location:"uri" type:"string" required:"true"`
   809  
   810  	QueryDoc map[string]*string `location:"querystring" type:"map"`
   811  }
   812  
   813  // Validate inspects the fields of the type to determine if they are valid.
   814  func (s *InputService5TestShapeInputService5TestCaseOperation1Input) Validate() error {
   815  	invalidParams := request.ErrInvalidParams{Context: "InputService5TestShapeInputService5TestCaseOperation1Input"}
   816  	if s.PipelineId == nil {
   817  		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
   818  	}
   819  	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
   820  		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
   821  	}
   822  
   823  	if invalidParams.Len() > 0 {
   824  		return invalidParams
   825  	}
   826  	return nil
   827  }
   828  
   829  // SetPipelineId sets the PipelineId field's value.
   830  func (s *InputService5TestShapeInputService5TestCaseOperation1Input) SetPipelineId(v string) *InputService5TestShapeInputService5TestCaseOperation1Input {
   831  	s.PipelineId = &v
   832  	return s
   833  }
   834  
   835  // SetQueryDoc sets the QueryDoc field's value.
   836  func (s *InputService5TestShapeInputService5TestCaseOperation1Input) SetQueryDoc(v map[string]*string) *InputService5TestShapeInputService5TestCaseOperation1Input {
   837  	s.QueryDoc = v
   838  	return s
   839  }
   840  
   841  type InputService5TestShapeInputService5TestCaseOperation1Output struct {
   842  	_ struct{} `type:"structure" nopayload:"true"`
   843  }
   844  
   845  // InputService6ProtocolTest provides the API operation methods for making requests to
   846  // . See this package's package overview docs
   847  // for details on the service.
   848  //
   849  // InputService6ProtocolTest methods are safe to use concurrently. It is not safe to
   850  // modify mutate any of the struct's properties though.
   851  type InputService6ProtocolTest struct {
   852  	*client.Client
   853  }
   854  
   855  // New creates a new instance of the InputService6ProtocolTest client with a session.
   856  // If additional configuration is needed for the client instance use the optional
   857  // aws.Config parameter to add your extra config.
   858  //
   859  // Example:
   860  //     mySession := session.Must(session.NewSession())
   861  //
   862  //     // Create a InputService6ProtocolTest client from just a session.
   863  //     svc := inputservice6protocoltest.New(mySession)
   864  //
   865  //     // Create a InputService6ProtocolTest client with additional configuration
   866  //     svc := inputservice6protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   867  func NewInputService6ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService6ProtocolTest {
   868  	c := p.ClientConfig("inputservice6protocoltest", cfgs...)
   869  	return newInputService6ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   870  }
   871  
   872  // newClient creates, initializes and returns a new service client instance.
   873  func newInputService6ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService6ProtocolTest {
   874  	svc := &InputService6ProtocolTest{
   875  		Client: client.New(
   876  			cfg,
   877  			metadata.ClientInfo{
   878  				ServiceName:   "InputService6ProtocolTest",
   879  				ServiceID:     "InputService6ProtocolTest",
   880  				SigningName:   signingName,
   881  				SigningRegion: signingRegion,
   882  				PartitionID:   partitionID,
   883  				Endpoint:      endpoint,
   884  				APIVersion:    "2014-01-01",
   885  			},
   886  			handlers,
   887  		),
   888  	}
   889  
   890  	// Handlers
   891  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   892  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
   893  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
   894  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
   895  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
   896  
   897  	return svc
   898  }
   899  
   900  // newRequest creates a new request for a InputService6ProtocolTest operation and runs any
   901  // custom request initialization.
   902  func (c *InputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   903  	req := c.NewRequest(op, params, data)
   904  
   905  	return req
   906  }
   907  
   908  const opInputService6TestCaseOperation1 = "OperationName"
   909  
   910  // InputService6TestCaseOperation1Request generates a "aws/request.Request" representing the
   911  // client's request for the InputService6TestCaseOperation1 operation. The "output" return
   912  // value will be populated with the request's response once the request completes
   913  // successfully.
   914  //
   915  // Use "Send" method on the returned Request to send the API call to the service.
   916  // the "output" return value is not valid until after Send returns without error.
   917  //
   918  // See InputService6TestCaseOperation1 for more information on using the InputService6TestCaseOperation1
   919  // API call, and error handling.
   920  //
   921  // This method is useful when you want to inject custom logic or configuration
   922  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   923  //
   924  //
   925  //    // Example sending a request using the InputService6TestCaseOperation1Request method.
   926  //    req, resp := client.InputService6TestCaseOperation1Request(params)
   927  //
   928  //    err := req.Send()
   929  //    if err == nil { // resp is now filled
   930  //        fmt.Println(resp)
   931  //    }
   932  func (c *InputService6ProtocolTest) InputService6TestCaseOperation1Request(input *InputService6TestShapeInputService6TestCaseOperation1Input) (req *request.Request, output *InputService6TestShapeInputService6TestCaseOperation1Output) {
   933  	op := &request.Operation{
   934  		Name:       opInputService6TestCaseOperation1,
   935  		HTTPMethod: "GET",
   936  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
   937  	}
   938  
   939  	if input == nil {
   940  		input = &InputService6TestShapeInputService6TestCaseOperation1Input{}
   941  	}
   942  
   943  	output = &InputService6TestShapeInputService6TestCaseOperation1Output{}
   944  	req = c.newRequest(op, input, output)
   945  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   946  	return
   947  }
   948  
   949  // InputService6TestCaseOperation1 API operation for .
   950  //
   951  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   952  // with awserr.Error's Code and Message methods to get detailed information about
   953  // the error.
   954  //
   955  // See the AWS API reference guide for 's
   956  // API operation InputService6TestCaseOperation1 for usage and error information.
   957  func (c *InputService6ProtocolTest) InputService6TestCaseOperation1(input *InputService6TestShapeInputService6TestCaseOperation1Input) (*InputService6TestShapeInputService6TestCaseOperation1Output, error) {
   958  	req, out := c.InputService6TestCaseOperation1Request(input)
   959  	return out, req.Send()
   960  }
   961  
   962  // InputService6TestCaseOperation1WithContext is the same as InputService6TestCaseOperation1 with the addition of
   963  // the ability to pass a context and additional request options.
   964  //
   965  // See InputService6TestCaseOperation1 for details on how to use this API operation.
   966  //
   967  // The context must be non-nil and will be used for request cancellation. If
   968  // the context is nil a panic will occur. In the future the SDK may create
   969  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   970  // for more information on using Contexts.
   971  func (c *InputService6ProtocolTest) InputService6TestCaseOperation1WithContext(ctx aws.Context, input *InputService6TestShapeInputService6TestCaseOperation1Input, opts ...request.Option) (*InputService6TestShapeInputService6TestCaseOperation1Output, error) {
   972  	req, out := c.InputService6TestCaseOperation1Request(input)
   973  	req.SetContext(ctx)
   974  	req.ApplyOptions(opts...)
   975  	return out, req.Send()
   976  }
   977  
   978  type InputService6TestShapeInputService6TestCaseOperation1Input struct {
   979  	_ struct{} `type:"structure" nopayload:"true"`
   980  
   981  	// PipelineId is a required field
   982  	PipelineId *string `location:"uri" type:"string" required:"true"`
   983  
   984  	QueryDoc map[string][]*string `location:"querystring" type:"map"`
   985  }
   986  
   987  // Validate inspects the fields of the type to determine if they are valid.
   988  func (s *InputService6TestShapeInputService6TestCaseOperation1Input) Validate() error {
   989  	invalidParams := request.ErrInvalidParams{Context: "InputService6TestShapeInputService6TestCaseOperation1Input"}
   990  	if s.PipelineId == nil {
   991  		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
   992  	}
   993  	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
   994  		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
   995  	}
   996  
   997  	if invalidParams.Len() > 0 {
   998  		return invalidParams
   999  	}
  1000  	return nil
  1001  }
  1002  
  1003  // SetPipelineId sets the PipelineId field's value.
  1004  func (s *InputService6TestShapeInputService6TestCaseOperation1Input) SetPipelineId(v string) *InputService6TestShapeInputService6TestCaseOperation1Input {
  1005  	s.PipelineId = &v
  1006  	return s
  1007  }
  1008  
  1009  // SetQueryDoc sets the QueryDoc field's value.
  1010  func (s *InputService6TestShapeInputService6TestCaseOperation1Input) SetQueryDoc(v map[string][]*string) *InputService6TestShapeInputService6TestCaseOperation1Input {
  1011  	s.QueryDoc = v
  1012  	return s
  1013  }
  1014  
  1015  type InputService6TestShapeInputService6TestCaseOperation1Output struct {
  1016  	_ struct{} `type:"structure" nopayload:"true"`
  1017  }
  1018  
  1019  // InputService7ProtocolTest provides the API operation methods for making requests to
  1020  // . See this package's package overview docs
  1021  // for details on the service.
  1022  //
  1023  // InputService7ProtocolTest methods are safe to use concurrently. It is not safe to
  1024  // modify mutate any of the struct's properties though.
  1025  type InputService7ProtocolTest struct {
  1026  	*client.Client
  1027  }
  1028  
  1029  // New creates a new instance of the InputService7ProtocolTest client with a session.
  1030  // If additional configuration is needed for the client instance use the optional
  1031  // aws.Config parameter to add your extra config.
  1032  //
  1033  // Example:
  1034  //     mySession := session.Must(session.NewSession())
  1035  //
  1036  //     // Create a InputService7ProtocolTest client from just a session.
  1037  //     svc := inputservice7protocoltest.New(mySession)
  1038  //
  1039  //     // Create a InputService7ProtocolTest client with additional configuration
  1040  //     svc := inputservice7protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1041  func NewInputService7ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService7ProtocolTest {
  1042  	c := p.ClientConfig("inputservice7protocoltest", cfgs...)
  1043  	return newInputService7ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1044  }
  1045  
  1046  // newClient creates, initializes and returns a new service client instance.
  1047  func newInputService7ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService7ProtocolTest {
  1048  	svc := &InputService7ProtocolTest{
  1049  		Client: client.New(
  1050  			cfg,
  1051  			metadata.ClientInfo{
  1052  				ServiceName:   "InputService7ProtocolTest",
  1053  				ServiceID:     "InputService7ProtocolTest",
  1054  				SigningName:   signingName,
  1055  				SigningRegion: signingRegion,
  1056  				PartitionID:   partitionID,
  1057  				Endpoint:      endpoint,
  1058  				APIVersion:    "2014-01-01",
  1059  			},
  1060  			handlers,
  1061  		),
  1062  	}
  1063  
  1064  	// Handlers
  1065  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1066  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1067  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1068  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1069  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1070  
  1071  	return svc
  1072  }
  1073  
  1074  // newRequest creates a new request for a InputService7ProtocolTest operation and runs any
  1075  // custom request initialization.
  1076  func (c *InputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1077  	req := c.NewRequest(op, params, data)
  1078  
  1079  	return req
  1080  }
  1081  
  1082  const opInputService7TestCaseOperation1 = "OperationName"
  1083  
  1084  // InputService7TestCaseOperation1Request generates a "aws/request.Request" representing the
  1085  // client's request for the InputService7TestCaseOperation1 operation. The "output" return
  1086  // value will be populated with the request's response once the request completes
  1087  // successfully.
  1088  //
  1089  // Use "Send" method on the returned Request to send the API call to the service.
  1090  // the "output" return value is not valid until after Send returns without error.
  1091  //
  1092  // See InputService7TestCaseOperation1 for more information on using the InputService7TestCaseOperation1
  1093  // API call, and error handling.
  1094  //
  1095  // This method is useful when you want to inject custom logic or configuration
  1096  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1097  //
  1098  //
  1099  //    // Example sending a request using the InputService7TestCaseOperation1Request method.
  1100  //    req, resp := client.InputService7TestCaseOperation1Request(params)
  1101  //
  1102  //    err := req.Send()
  1103  //    if err == nil { // resp is now filled
  1104  //        fmt.Println(resp)
  1105  //    }
  1106  func (c *InputService7ProtocolTest) InputService7TestCaseOperation1Request(input *InputService7TestShapeInputService7TestCaseOperation1Input) (req *request.Request, output *InputService7TestShapeInputService7TestCaseOperation1Output) {
  1107  	op := &request.Operation{
  1108  		Name:       opInputService7TestCaseOperation1,
  1109  		HTTPMethod: "GET",
  1110  		HTTPPath:   "/path",
  1111  	}
  1112  
  1113  	if input == nil {
  1114  		input = &InputService7TestShapeInputService7TestCaseOperation1Input{}
  1115  	}
  1116  
  1117  	output = &InputService7TestShapeInputService7TestCaseOperation1Output{}
  1118  	req = c.newRequest(op, input, output)
  1119  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1120  	return
  1121  }
  1122  
  1123  // InputService7TestCaseOperation1 API operation for .
  1124  //
  1125  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1126  // with awserr.Error's Code and Message methods to get detailed information about
  1127  // the error.
  1128  //
  1129  // See the AWS API reference guide for 's
  1130  // API operation InputService7TestCaseOperation1 for usage and error information.
  1131  func (c *InputService7ProtocolTest) InputService7TestCaseOperation1(input *InputService7TestShapeInputService7TestCaseOperation1Input) (*InputService7TestShapeInputService7TestCaseOperation1Output, error) {
  1132  	req, out := c.InputService7TestCaseOperation1Request(input)
  1133  	return out, req.Send()
  1134  }
  1135  
  1136  // InputService7TestCaseOperation1WithContext is the same as InputService7TestCaseOperation1 with the addition of
  1137  // the ability to pass a context and additional request options.
  1138  //
  1139  // See InputService7TestCaseOperation1 for details on how to use this API operation.
  1140  //
  1141  // The context must be non-nil and will be used for request cancellation. If
  1142  // the context is nil a panic will occur. In the future the SDK may create
  1143  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1144  // for more information on using Contexts.
  1145  func (c *InputService7ProtocolTest) InputService7TestCaseOperation1WithContext(ctx aws.Context, input *InputService7TestShapeInputService7TestCaseOperation1Input, opts ...request.Option) (*InputService7TestShapeInputService7TestCaseOperation1Output, error) {
  1146  	req, out := c.InputService7TestCaseOperation1Request(input)
  1147  	req.SetContext(ctx)
  1148  	req.ApplyOptions(opts...)
  1149  	return out, req.Send()
  1150  }
  1151  
  1152  const opInputService7TestCaseOperation2 = "OperationName"
  1153  
  1154  // InputService7TestCaseOperation2Request generates a "aws/request.Request" representing the
  1155  // client's request for the InputService7TestCaseOperation2 operation. The "output" return
  1156  // value will be populated with the request's response once the request completes
  1157  // successfully.
  1158  //
  1159  // Use "Send" method on the returned Request to send the API call to the service.
  1160  // the "output" return value is not valid until after Send returns without error.
  1161  //
  1162  // See InputService7TestCaseOperation2 for more information on using the InputService7TestCaseOperation2
  1163  // API call, and error handling.
  1164  //
  1165  // This method is useful when you want to inject custom logic or configuration
  1166  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1167  //
  1168  //
  1169  //    // Example sending a request using the InputService7TestCaseOperation2Request method.
  1170  //    req, resp := client.InputService7TestCaseOperation2Request(params)
  1171  //
  1172  //    err := req.Send()
  1173  //    if err == nil { // resp is now filled
  1174  //        fmt.Println(resp)
  1175  //    }
  1176  func (c *InputService7ProtocolTest) InputService7TestCaseOperation2Request(input *InputService7TestShapeInputService7TestCaseOperation2Input) (req *request.Request, output *InputService7TestShapeInputService7TestCaseOperation2Output) {
  1177  	op := &request.Operation{
  1178  		Name:       opInputService7TestCaseOperation2,
  1179  		HTTPMethod: "GET",
  1180  		HTTPPath:   "/path",
  1181  	}
  1182  
  1183  	if input == nil {
  1184  		input = &InputService7TestShapeInputService7TestCaseOperation2Input{}
  1185  	}
  1186  
  1187  	output = &InputService7TestShapeInputService7TestCaseOperation2Output{}
  1188  	req = c.newRequest(op, input, output)
  1189  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1190  	return
  1191  }
  1192  
  1193  // InputService7TestCaseOperation2 API operation for .
  1194  //
  1195  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1196  // with awserr.Error's Code and Message methods to get detailed information about
  1197  // the error.
  1198  //
  1199  // See the AWS API reference guide for 's
  1200  // API operation InputService7TestCaseOperation2 for usage and error information.
  1201  func (c *InputService7ProtocolTest) InputService7TestCaseOperation2(input *InputService7TestShapeInputService7TestCaseOperation2Input) (*InputService7TestShapeInputService7TestCaseOperation2Output, error) {
  1202  	req, out := c.InputService7TestCaseOperation2Request(input)
  1203  	return out, req.Send()
  1204  }
  1205  
  1206  // InputService7TestCaseOperation2WithContext is the same as InputService7TestCaseOperation2 with the addition of
  1207  // the ability to pass a context and additional request options.
  1208  //
  1209  // See InputService7TestCaseOperation2 for details on how to use this API operation.
  1210  //
  1211  // The context must be non-nil and will be used for request cancellation. If
  1212  // the context is nil a panic will occur. In the future the SDK may create
  1213  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1214  // for more information on using Contexts.
  1215  func (c *InputService7ProtocolTest) InputService7TestCaseOperation2WithContext(ctx aws.Context, input *InputService7TestShapeInputService7TestCaseOperation2Input, opts ...request.Option) (*InputService7TestShapeInputService7TestCaseOperation2Output, error) {
  1216  	req, out := c.InputService7TestCaseOperation2Request(input)
  1217  	req.SetContext(ctx)
  1218  	req.ApplyOptions(opts...)
  1219  	return out, req.Send()
  1220  }
  1221  
  1222  type InputService7TestShapeInputService7TestCaseOperation1Input struct {
  1223  	_ struct{} `type:"structure" nopayload:"true"`
  1224  
  1225  	BoolQuery *bool `location:"querystring" locationName:"bool-query" type:"boolean"`
  1226  }
  1227  
  1228  // SetBoolQuery sets the BoolQuery field's value.
  1229  func (s *InputService7TestShapeInputService7TestCaseOperation1Input) SetBoolQuery(v bool) *InputService7TestShapeInputService7TestCaseOperation1Input {
  1230  	s.BoolQuery = &v
  1231  	return s
  1232  }
  1233  
  1234  type InputService7TestShapeInputService7TestCaseOperation1Output struct {
  1235  	_ struct{} `type:"structure" nopayload:"true"`
  1236  }
  1237  
  1238  type InputService7TestShapeInputService7TestCaseOperation2Input struct {
  1239  	_ struct{} `type:"structure" nopayload:"true"`
  1240  
  1241  	BoolQuery *bool `location:"querystring" locationName:"bool-query" type:"boolean"`
  1242  }
  1243  
  1244  // SetBoolQuery sets the BoolQuery field's value.
  1245  func (s *InputService7TestShapeInputService7TestCaseOperation2Input) SetBoolQuery(v bool) *InputService7TestShapeInputService7TestCaseOperation2Input {
  1246  	s.BoolQuery = &v
  1247  	return s
  1248  }
  1249  
  1250  type InputService7TestShapeInputService7TestCaseOperation2Output struct {
  1251  	_ struct{} `type:"structure" nopayload:"true"`
  1252  }
  1253  
  1254  // InputService8ProtocolTest provides the API operation methods for making requests to
  1255  // . See this package's package overview docs
  1256  // for details on the service.
  1257  //
  1258  // InputService8ProtocolTest methods are safe to use concurrently. It is not safe to
  1259  // modify mutate any of the struct's properties though.
  1260  type InputService8ProtocolTest struct {
  1261  	*client.Client
  1262  }
  1263  
  1264  // New creates a new instance of the InputService8ProtocolTest client with a session.
  1265  // If additional configuration is needed for the client instance use the optional
  1266  // aws.Config parameter to add your extra config.
  1267  //
  1268  // Example:
  1269  //     mySession := session.Must(session.NewSession())
  1270  //
  1271  //     // Create a InputService8ProtocolTest client from just a session.
  1272  //     svc := inputservice8protocoltest.New(mySession)
  1273  //
  1274  //     // Create a InputService8ProtocolTest client with additional configuration
  1275  //     svc := inputservice8protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1276  func NewInputService8ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService8ProtocolTest {
  1277  	c := p.ClientConfig("inputservice8protocoltest", cfgs...)
  1278  	return newInputService8ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1279  }
  1280  
  1281  // newClient creates, initializes and returns a new service client instance.
  1282  func newInputService8ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService8ProtocolTest {
  1283  	svc := &InputService8ProtocolTest{
  1284  		Client: client.New(
  1285  			cfg,
  1286  			metadata.ClientInfo{
  1287  				ServiceName:   "InputService8ProtocolTest",
  1288  				ServiceID:     "InputService8ProtocolTest",
  1289  				SigningName:   signingName,
  1290  				SigningRegion: signingRegion,
  1291  				PartitionID:   partitionID,
  1292  				Endpoint:      endpoint,
  1293  				APIVersion:    "2014-01-01",
  1294  			},
  1295  			handlers,
  1296  		),
  1297  	}
  1298  
  1299  	// Handlers
  1300  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1301  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1302  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1303  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1304  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1305  
  1306  	return svc
  1307  }
  1308  
  1309  // newRequest creates a new request for a InputService8ProtocolTest operation and runs any
  1310  // custom request initialization.
  1311  func (c *InputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1312  	req := c.NewRequest(op, params, data)
  1313  
  1314  	return req
  1315  }
  1316  
  1317  const opInputService8TestCaseOperation1 = "OperationName"
  1318  
  1319  // InputService8TestCaseOperation1Request generates a "aws/request.Request" representing the
  1320  // client's request for the InputService8TestCaseOperation1 operation. The "output" return
  1321  // value will be populated with the request's response once the request completes
  1322  // successfully.
  1323  //
  1324  // Use "Send" method on the returned Request to send the API call to the service.
  1325  // the "output" return value is not valid until after Send returns without error.
  1326  //
  1327  // See InputService8TestCaseOperation1 for more information on using the InputService8TestCaseOperation1
  1328  // API call, and error handling.
  1329  //
  1330  // This method is useful when you want to inject custom logic or configuration
  1331  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1332  //
  1333  //
  1334  //    // Example sending a request using the InputService8TestCaseOperation1Request method.
  1335  //    req, resp := client.InputService8TestCaseOperation1Request(params)
  1336  //
  1337  //    err := req.Send()
  1338  //    if err == nil { // resp is now filled
  1339  //        fmt.Println(resp)
  1340  //    }
  1341  func (c *InputService8ProtocolTest) InputService8TestCaseOperation1Request(input *InputService8TestShapeInputService8TestCaseOperation1Input) (req *request.Request, output *InputService8TestShapeInputService8TestCaseOperation1Output) {
  1342  	op := &request.Operation{
  1343  		Name:       opInputService8TestCaseOperation1,
  1344  		HTTPMethod: "GET",
  1345  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
  1346  	}
  1347  
  1348  	if input == nil {
  1349  		input = &InputService8TestShapeInputService8TestCaseOperation1Input{}
  1350  	}
  1351  
  1352  	output = &InputService8TestShapeInputService8TestCaseOperation1Output{}
  1353  	req = c.newRequest(op, input, output)
  1354  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1355  	return
  1356  }
  1357  
  1358  // InputService8TestCaseOperation1 API operation for .
  1359  //
  1360  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1361  // with awserr.Error's Code and Message methods to get detailed information about
  1362  // the error.
  1363  //
  1364  // See the AWS API reference guide for 's
  1365  // API operation InputService8TestCaseOperation1 for usage and error information.
  1366  func (c *InputService8ProtocolTest) InputService8TestCaseOperation1(input *InputService8TestShapeInputService8TestCaseOperation1Input) (*InputService8TestShapeInputService8TestCaseOperation1Output, error) {
  1367  	req, out := c.InputService8TestCaseOperation1Request(input)
  1368  	return out, req.Send()
  1369  }
  1370  
  1371  // InputService8TestCaseOperation1WithContext is the same as InputService8TestCaseOperation1 with the addition of
  1372  // the ability to pass a context and additional request options.
  1373  //
  1374  // See InputService8TestCaseOperation1 for details on how to use this API operation.
  1375  //
  1376  // The context must be non-nil and will be used for request cancellation. If
  1377  // the context is nil a panic will occur. In the future the SDK may create
  1378  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1379  // for more information on using Contexts.
  1380  func (c *InputService8ProtocolTest) InputService8TestCaseOperation1WithContext(ctx aws.Context, input *InputService8TestShapeInputService8TestCaseOperation1Input, opts ...request.Option) (*InputService8TestShapeInputService8TestCaseOperation1Output, error) {
  1381  	req, out := c.InputService8TestCaseOperation1Request(input)
  1382  	req.SetContext(ctx)
  1383  	req.ApplyOptions(opts...)
  1384  	return out, req.Send()
  1385  }
  1386  
  1387  type InputService8TestShapeInputService8TestCaseOperation1Input struct {
  1388  	_ struct{} `type:"structure" nopayload:"true"`
  1389  
  1390  	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  1391  
  1392  	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  1393  
  1394  	// PipelineId is a required field
  1395  	PipelineId *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
  1396  }
  1397  
  1398  // Validate inspects the fields of the type to determine if they are valid.
  1399  func (s *InputService8TestShapeInputService8TestCaseOperation1Input) Validate() error {
  1400  	invalidParams := request.ErrInvalidParams{Context: "InputService8TestShapeInputService8TestCaseOperation1Input"}
  1401  	if s.PipelineId == nil {
  1402  		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
  1403  	}
  1404  	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
  1405  		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
  1406  	}
  1407  
  1408  	if invalidParams.Len() > 0 {
  1409  		return invalidParams
  1410  	}
  1411  	return nil
  1412  }
  1413  
  1414  // SetAscending sets the Ascending field's value.
  1415  func (s *InputService8TestShapeInputService8TestCaseOperation1Input) SetAscending(v string) *InputService8TestShapeInputService8TestCaseOperation1Input {
  1416  	s.Ascending = &v
  1417  	return s
  1418  }
  1419  
  1420  // SetPageToken sets the PageToken field's value.
  1421  func (s *InputService8TestShapeInputService8TestCaseOperation1Input) SetPageToken(v string) *InputService8TestShapeInputService8TestCaseOperation1Input {
  1422  	s.PageToken = &v
  1423  	return s
  1424  }
  1425  
  1426  // SetPipelineId sets the PipelineId field's value.
  1427  func (s *InputService8TestShapeInputService8TestCaseOperation1Input) SetPipelineId(v string) *InputService8TestShapeInputService8TestCaseOperation1Input {
  1428  	s.PipelineId = &v
  1429  	return s
  1430  }
  1431  
  1432  type InputService8TestShapeInputService8TestCaseOperation1Output struct {
  1433  	_ struct{} `type:"structure" nopayload:"true"`
  1434  }
  1435  
  1436  // InputService9ProtocolTest provides the API operation methods for making requests to
  1437  // . See this package's package overview docs
  1438  // for details on the service.
  1439  //
  1440  // InputService9ProtocolTest methods are safe to use concurrently. It is not safe to
  1441  // modify mutate any of the struct's properties though.
  1442  type InputService9ProtocolTest struct {
  1443  	*client.Client
  1444  }
  1445  
  1446  // New creates a new instance of the InputService9ProtocolTest client with a session.
  1447  // If additional configuration is needed for the client instance use the optional
  1448  // aws.Config parameter to add your extra config.
  1449  //
  1450  // Example:
  1451  //     mySession := session.Must(session.NewSession())
  1452  //
  1453  //     // Create a InputService9ProtocolTest client from just a session.
  1454  //     svc := inputservice9protocoltest.New(mySession)
  1455  //
  1456  //     // Create a InputService9ProtocolTest client with additional configuration
  1457  //     svc := inputservice9protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1458  func NewInputService9ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService9ProtocolTest {
  1459  	c := p.ClientConfig("inputservice9protocoltest", cfgs...)
  1460  	return newInputService9ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1461  }
  1462  
  1463  // newClient creates, initializes and returns a new service client instance.
  1464  func newInputService9ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService9ProtocolTest {
  1465  	svc := &InputService9ProtocolTest{
  1466  		Client: client.New(
  1467  			cfg,
  1468  			metadata.ClientInfo{
  1469  				ServiceName:   "InputService9ProtocolTest",
  1470  				ServiceID:     "InputService9ProtocolTest",
  1471  				SigningName:   signingName,
  1472  				SigningRegion: signingRegion,
  1473  				PartitionID:   partitionID,
  1474  				Endpoint:      endpoint,
  1475  				APIVersion:    "2014-01-01",
  1476  			},
  1477  			handlers,
  1478  		),
  1479  	}
  1480  
  1481  	// Handlers
  1482  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1483  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1484  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1485  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1486  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1487  
  1488  	return svc
  1489  }
  1490  
  1491  // newRequest creates a new request for a InputService9ProtocolTest operation and runs any
  1492  // custom request initialization.
  1493  func (c *InputService9ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1494  	req := c.NewRequest(op, params, data)
  1495  
  1496  	return req
  1497  }
  1498  
  1499  const opInputService9TestCaseOperation1 = "OperationName"
  1500  
  1501  // InputService9TestCaseOperation1Request generates a "aws/request.Request" representing the
  1502  // client's request for the InputService9TestCaseOperation1 operation. The "output" return
  1503  // value will be populated with the request's response once the request completes
  1504  // successfully.
  1505  //
  1506  // Use "Send" method on the returned Request to send the API call to the service.
  1507  // the "output" return value is not valid until after Send returns without error.
  1508  //
  1509  // See InputService9TestCaseOperation1 for more information on using the InputService9TestCaseOperation1
  1510  // API call, and error handling.
  1511  //
  1512  // This method is useful when you want to inject custom logic or configuration
  1513  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1514  //
  1515  //
  1516  //    // Example sending a request using the InputService9TestCaseOperation1Request method.
  1517  //    req, resp := client.InputService9TestCaseOperation1Request(params)
  1518  //
  1519  //    err := req.Send()
  1520  //    if err == nil { // resp is now filled
  1521  //        fmt.Println(resp)
  1522  //    }
  1523  func (c *InputService9ProtocolTest) InputService9TestCaseOperation1Request(input *InputService9TestShapeInputService9TestCaseOperation1Input) (req *request.Request, output *InputService9TestShapeInputService9TestCaseOperation1Output) {
  1524  	op := &request.Operation{
  1525  		Name:       opInputService9TestCaseOperation1,
  1526  		HTTPMethod: "POST",
  1527  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
  1528  	}
  1529  
  1530  	if input == nil {
  1531  		input = &InputService9TestShapeInputService9TestCaseOperation1Input{}
  1532  	}
  1533  
  1534  	output = &InputService9TestShapeInputService9TestCaseOperation1Output{}
  1535  	req = c.newRequest(op, input, output)
  1536  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1537  	return
  1538  }
  1539  
  1540  // InputService9TestCaseOperation1 API operation for .
  1541  //
  1542  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1543  // with awserr.Error's Code and Message methods to get detailed information about
  1544  // the error.
  1545  //
  1546  // See the AWS API reference guide for 's
  1547  // API operation InputService9TestCaseOperation1 for usage and error information.
  1548  func (c *InputService9ProtocolTest) InputService9TestCaseOperation1(input *InputService9TestShapeInputService9TestCaseOperation1Input) (*InputService9TestShapeInputService9TestCaseOperation1Output, error) {
  1549  	req, out := c.InputService9TestCaseOperation1Request(input)
  1550  	return out, req.Send()
  1551  }
  1552  
  1553  // InputService9TestCaseOperation1WithContext is the same as InputService9TestCaseOperation1 with the addition of
  1554  // the ability to pass a context and additional request options.
  1555  //
  1556  // See InputService9TestCaseOperation1 for details on how to use this API operation.
  1557  //
  1558  // The context must be non-nil and will be used for request cancellation. If
  1559  // the context is nil a panic will occur. In the future the SDK may create
  1560  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1561  // for more information on using Contexts.
  1562  func (c *InputService9ProtocolTest) InputService9TestCaseOperation1WithContext(ctx aws.Context, input *InputService9TestShapeInputService9TestCaseOperation1Input, opts ...request.Option) (*InputService9TestShapeInputService9TestCaseOperation1Output, error) {
  1563  	req, out := c.InputService9TestCaseOperation1Request(input)
  1564  	req.SetContext(ctx)
  1565  	req.ApplyOptions(opts...)
  1566  	return out, req.Send()
  1567  }
  1568  
  1569  type InputService9TestShapeInputService9TestCaseOperation1Input struct {
  1570  	_ struct{} `type:"structure"`
  1571  
  1572  	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  1573  
  1574  	Config *InputService9TestShapeStructType `type:"structure"`
  1575  
  1576  	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  1577  
  1578  	// PipelineId is a required field
  1579  	PipelineId *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
  1580  }
  1581  
  1582  // Validate inspects the fields of the type to determine if they are valid.
  1583  func (s *InputService9TestShapeInputService9TestCaseOperation1Input) Validate() error {
  1584  	invalidParams := request.ErrInvalidParams{Context: "InputService9TestShapeInputService9TestCaseOperation1Input"}
  1585  	if s.PipelineId == nil {
  1586  		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
  1587  	}
  1588  	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
  1589  		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
  1590  	}
  1591  
  1592  	if invalidParams.Len() > 0 {
  1593  		return invalidParams
  1594  	}
  1595  	return nil
  1596  }
  1597  
  1598  // SetAscending sets the Ascending field's value.
  1599  func (s *InputService9TestShapeInputService9TestCaseOperation1Input) SetAscending(v string) *InputService9TestShapeInputService9TestCaseOperation1Input {
  1600  	s.Ascending = &v
  1601  	return s
  1602  }
  1603  
  1604  // SetConfig sets the Config field's value.
  1605  func (s *InputService9TestShapeInputService9TestCaseOperation1Input) SetConfig(v *InputService9TestShapeStructType) *InputService9TestShapeInputService9TestCaseOperation1Input {
  1606  	s.Config = v
  1607  	return s
  1608  }
  1609  
  1610  // SetPageToken sets the PageToken field's value.
  1611  func (s *InputService9TestShapeInputService9TestCaseOperation1Input) SetPageToken(v string) *InputService9TestShapeInputService9TestCaseOperation1Input {
  1612  	s.PageToken = &v
  1613  	return s
  1614  }
  1615  
  1616  // SetPipelineId sets the PipelineId field's value.
  1617  func (s *InputService9TestShapeInputService9TestCaseOperation1Input) SetPipelineId(v string) *InputService9TestShapeInputService9TestCaseOperation1Input {
  1618  	s.PipelineId = &v
  1619  	return s
  1620  }
  1621  
  1622  type InputService9TestShapeInputService9TestCaseOperation1Output struct {
  1623  	_ struct{} `type:"structure" nopayload:"true"`
  1624  }
  1625  
  1626  type InputService9TestShapeStructType struct {
  1627  	_ struct{} `type:"structure"`
  1628  
  1629  	A *string `type:"string"`
  1630  
  1631  	B *string `type:"string"`
  1632  }
  1633  
  1634  // SetA sets the A field's value.
  1635  func (s *InputService9TestShapeStructType) SetA(v string) *InputService9TestShapeStructType {
  1636  	s.A = &v
  1637  	return s
  1638  }
  1639  
  1640  // SetB sets the B field's value.
  1641  func (s *InputService9TestShapeStructType) SetB(v string) *InputService9TestShapeStructType {
  1642  	s.B = &v
  1643  	return s
  1644  }
  1645  
  1646  // InputService10ProtocolTest provides the API operation methods for making requests to
  1647  // . See this package's package overview docs
  1648  // for details on the service.
  1649  //
  1650  // InputService10ProtocolTest methods are safe to use concurrently. It is not safe to
  1651  // modify mutate any of the struct's properties though.
  1652  type InputService10ProtocolTest struct {
  1653  	*client.Client
  1654  }
  1655  
  1656  // New creates a new instance of the InputService10ProtocolTest client with a session.
  1657  // If additional configuration is needed for the client instance use the optional
  1658  // aws.Config parameter to add your extra config.
  1659  //
  1660  // Example:
  1661  //     mySession := session.Must(session.NewSession())
  1662  //
  1663  //     // Create a InputService10ProtocolTest client from just a session.
  1664  //     svc := inputservice10protocoltest.New(mySession)
  1665  //
  1666  //     // Create a InputService10ProtocolTest client with additional configuration
  1667  //     svc := inputservice10protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1668  func NewInputService10ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService10ProtocolTest {
  1669  	c := p.ClientConfig("inputservice10protocoltest", cfgs...)
  1670  	return newInputService10ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1671  }
  1672  
  1673  // newClient creates, initializes and returns a new service client instance.
  1674  func newInputService10ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService10ProtocolTest {
  1675  	svc := &InputService10ProtocolTest{
  1676  		Client: client.New(
  1677  			cfg,
  1678  			metadata.ClientInfo{
  1679  				ServiceName:   "InputService10ProtocolTest",
  1680  				ServiceID:     "InputService10ProtocolTest",
  1681  				SigningName:   signingName,
  1682  				SigningRegion: signingRegion,
  1683  				PartitionID:   partitionID,
  1684  				Endpoint:      endpoint,
  1685  				APIVersion:    "2014-01-01",
  1686  			},
  1687  			handlers,
  1688  		),
  1689  	}
  1690  
  1691  	// Handlers
  1692  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1693  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1694  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1695  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1696  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1697  
  1698  	return svc
  1699  }
  1700  
  1701  // newRequest creates a new request for a InputService10ProtocolTest operation and runs any
  1702  // custom request initialization.
  1703  func (c *InputService10ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1704  	req := c.NewRequest(op, params, data)
  1705  
  1706  	return req
  1707  }
  1708  
  1709  const opInputService10TestCaseOperation1 = "OperationName"
  1710  
  1711  // InputService10TestCaseOperation1Request generates a "aws/request.Request" representing the
  1712  // client's request for the InputService10TestCaseOperation1 operation. The "output" return
  1713  // value will be populated with the request's response once the request completes
  1714  // successfully.
  1715  //
  1716  // Use "Send" method on the returned Request to send the API call to the service.
  1717  // the "output" return value is not valid until after Send returns without error.
  1718  //
  1719  // See InputService10TestCaseOperation1 for more information on using the InputService10TestCaseOperation1
  1720  // API call, and error handling.
  1721  //
  1722  // This method is useful when you want to inject custom logic or configuration
  1723  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1724  //
  1725  //
  1726  //    // Example sending a request using the InputService10TestCaseOperation1Request method.
  1727  //    req, resp := client.InputService10TestCaseOperation1Request(params)
  1728  //
  1729  //    err := req.Send()
  1730  //    if err == nil { // resp is now filled
  1731  //        fmt.Println(resp)
  1732  //    }
  1733  func (c *InputService10ProtocolTest) InputService10TestCaseOperation1Request(input *InputService10TestShapeInputService10TestCaseOperation1Input) (req *request.Request, output *InputService10TestShapeInputService10TestCaseOperation1Output) {
  1734  	op := &request.Operation{
  1735  		Name:       opInputService10TestCaseOperation1,
  1736  		HTTPMethod: "POST",
  1737  		HTTPPath:   "/2014-01-01/jobsByPipeline/{PipelineId}",
  1738  	}
  1739  
  1740  	if input == nil {
  1741  		input = &InputService10TestShapeInputService10TestCaseOperation1Input{}
  1742  	}
  1743  
  1744  	output = &InputService10TestShapeInputService10TestCaseOperation1Output{}
  1745  	req = c.newRequest(op, input, output)
  1746  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1747  	return
  1748  }
  1749  
  1750  // InputService10TestCaseOperation1 API operation for .
  1751  //
  1752  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1753  // with awserr.Error's Code and Message methods to get detailed information about
  1754  // the error.
  1755  //
  1756  // See the AWS API reference guide for 's
  1757  // API operation InputService10TestCaseOperation1 for usage and error information.
  1758  func (c *InputService10ProtocolTest) InputService10TestCaseOperation1(input *InputService10TestShapeInputService10TestCaseOperation1Input) (*InputService10TestShapeInputService10TestCaseOperation1Output, error) {
  1759  	req, out := c.InputService10TestCaseOperation1Request(input)
  1760  	return out, req.Send()
  1761  }
  1762  
  1763  // InputService10TestCaseOperation1WithContext is the same as InputService10TestCaseOperation1 with the addition of
  1764  // the ability to pass a context and additional request options.
  1765  //
  1766  // See InputService10TestCaseOperation1 for details on how to use this API operation.
  1767  //
  1768  // The context must be non-nil and will be used for request cancellation. If
  1769  // the context is nil a panic will occur. In the future the SDK may create
  1770  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1771  // for more information on using Contexts.
  1772  func (c *InputService10ProtocolTest) InputService10TestCaseOperation1WithContext(ctx aws.Context, input *InputService10TestShapeInputService10TestCaseOperation1Input, opts ...request.Option) (*InputService10TestShapeInputService10TestCaseOperation1Output, error) {
  1773  	req, out := c.InputService10TestCaseOperation1Request(input)
  1774  	req.SetContext(ctx)
  1775  	req.ApplyOptions(opts...)
  1776  	return out, req.Send()
  1777  }
  1778  
  1779  type InputService10TestShapeInputService10TestCaseOperation1Input struct {
  1780  	_ struct{} `type:"structure"`
  1781  
  1782  	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
  1783  
  1784  	Checksum *string `location:"header" locationName:"x-amz-checksum" type:"string"`
  1785  
  1786  	Config *InputService10TestShapeStructType `type:"structure"`
  1787  
  1788  	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
  1789  
  1790  	// PipelineId is a required field
  1791  	PipelineId *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
  1792  }
  1793  
  1794  // Validate inspects the fields of the type to determine if they are valid.
  1795  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) Validate() error {
  1796  	invalidParams := request.ErrInvalidParams{Context: "InputService10TestShapeInputService10TestCaseOperation1Input"}
  1797  	if s.PipelineId == nil {
  1798  		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
  1799  	}
  1800  	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
  1801  		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
  1802  	}
  1803  
  1804  	if invalidParams.Len() > 0 {
  1805  		return invalidParams
  1806  	}
  1807  	return nil
  1808  }
  1809  
  1810  // SetAscending sets the Ascending field's value.
  1811  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) SetAscending(v string) *InputService10TestShapeInputService10TestCaseOperation1Input {
  1812  	s.Ascending = &v
  1813  	return s
  1814  }
  1815  
  1816  // SetChecksum sets the Checksum field's value.
  1817  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) SetChecksum(v string) *InputService10TestShapeInputService10TestCaseOperation1Input {
  1818  	s.Checksum = &v
  1819  	return s
  1820  }
  1821  
  1822  // SetConfig sets the Config field's value.
  1823  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) SetConfig(v *InputService10TestShapeStructType) *InputService10TestShapeInputService10TestCaseOperation1Input {
  1824  	s.Config = v
  1825  	return s
  1826  }
  1827  
  1828  // SetPageToken sets the PageToken field's value.
  1829  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) SetPageToken(v string) *InputService10TestShapeInputService10TestCaseOperation1Input {
  1830  	s.PageToken = &v
  1831  	return s
  1832  }
  1833  
  1834  // SetPipelineId sets the PipelineId field's value.
  1835  func (s *InputService10TestShapeInputService10TestCaseOperation1Input) SetPipelineId(v string) *InputService10TestShapeInputService10TestCaseOperation1Input {
  1836  	s.PipelineId = &v
  1837  	return s
  1838  }
  1839  
  1840  type InputService10TestShapeInputService10TestCaseOperation1Output struct {
  1841  	_ struct{} `type:"structure" nopayload:"true"`
  1842  }
  1843  
  1844  type InputService10TestShapeStructType struct {
  1845  	_ struct{} `type:"structure"`
  1846  
  1847  	A *string `type:"string"`
  1848  
  1849  	B *string `type:"string"`
  1850  }
  1851  
  1852  // SetA sets the A field's value.
  1853  func (s *InputService10TestShapeStructType) SetA(v string) *InputService10TestShapeStructType {
  1854  	s.A = &v
  1855  	return s
  1856  }
  1857  
  1858  // SetB sets the B field's value.
  1859  func (s *InputService10TestShapeStructType) SetB(v string) *InputService10TestShapeStructType {
  1860  	s.B = &v
  1861  	return s
  1862  }
  1863  
  1864  // InputService11ProtocolTest provides the API operation methods for making requests to
  1865  // . See this package's package overview docs
  1866  // for details on the service.
  1867  //
  1868  // InputService11ProtocolTest methods are safe to use concurrently. It is not safe to
  1869  // modify mutate any of the struct's properties though.
  1870  type InputService11ProtocolTest struct {
  1871  	*client.Client
  1872  }
  1873  
  1874  // New creates a new instance of the InputService11ProtocolTest client with a session.
  1875  // If additional configuration is needed for the client instance use the optional
  1876  // aws.Config parameter to add your extra config.
  1877  //
  1878  // Example:
  1879  //     mySession := session.Must(session.NewSession())
  1880  //
  1881  //     // Create a InputService11ProtocolTest client from just a session.
  1882  //     svc := inputservice11protocoltest.New(mySession)
  1883  //
  1884  //     // Create a InputService11ProtocolTest client with additional configuration
  1885  //     svc := inputservice11protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1886  func NewInputService11ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService11ProtocolTest {
  1887  	c := p.ClientConfig("inputservice11protocoltest", cfgs...)
  1888  	return newInputService11ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1889  }
  1890  
  1891  // newClient creates, initializes and returns a new service client instance.
  1892  func newInputService11ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService11ProtocolTest {
  1893  	svc := &InputService11ProtocolTest{
  1894  		Client: client.New(
  1895  			cfg,
  1896  			metadata.ClientInfo{
  1897  				ServiceName:   "InputService11ProtocolTest",
  1898  				ServiceID:     "InputService11ProtocolTest",
  1899  				SigningName:   signingName,
  1900  				SigningRegion: signingRegion,
  1901  				PartitionID:   partitionID,
  1902  				Endpoint:      endpoint,
  1903  				APIVersion:    "2014-01-01",
  1904  			},
  1905  			handlers,
  1906  		),
  1907  	}
  1908  
  1909  	// Handlers
  1910  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1911  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  1912  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  1913  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  1914  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  1915  
  1916  	return svc
  1917  }
  1918  
  1919  // newRequest creates a new request for a InputService11ProtocolTest operation and runs any
  1920  // custom request initialization.
  1921  func (c *InputService11ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1922  	req := c.NewRequest(op, params, data)
  1923  
  1924  	return req
  1925  }
  1926  
  1927  const opInputService11TestCaseOperation1 = "OperationName"
  1928  
  1929  // InputService11TestCaseOperation1Request generates a "aws/request.Request" representing the
  1930  // client's request for the InputService11TestCaseOperation1 operation. The "output" return
  1931  // value will be populated with the request's response once the request completes
  1932  // successfully.
  1933  //
  1934  // Use "Send" method on the returned Request to send the API call to the service.
  1935  // the "output" return value is not valid until after Send returns without error.
  1936  //
  1937  // See InputService11TestCaseOperation1 for more information on using the InputService11TestCaseOperation1
  1938  // API call, and error handling.
  1939  //
  1940  // This method is useful when you want to inject custom logic or configuration
  1941  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1942  //
  1943  //
  1944  //    // Example sending a request using the InputService11TestCaseOperation1Request method.
  1945  //    req, resp := client.InputService11TestCaseOperation1Request(params)
  1946  //
  1947  //    err := req.Send()
  1948  //    if err == nil { // resp is now filled
  1949  //        fmt.Println(resp)
  1950  //    }
  1951  func (c *InputService11ProtocolTest) InputService11TestCaseOperation1Request(input *InputService11TestShapeInputService11TestCaseOperation1Input) (req *request.Request, output *InputService11TestShapeInputService11TestCaseOperation1Output) {
  1952  	op := &request.Operation{
  1953  		Name:       opInputService11TestCaseOperation1,
  1954  		HTTPMethod: "POST",
  1955  		HTTPPath:   "/2014-01-01/vaults/{vaultName}/archives",
  1956  	}
  1957  
  1958  	if input == nil {
  1959  		input = &InputService11TestShapeInputService11TestCaseOperation1Input{}
  1960  	}
  1961  
  1962  	output = &InputService11TestShapeInputService11TestCaseOperation1Output{}
  1963  	req = c.newRequest(op, input, output)
  1964  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1965  	return
  1966  }
  1967  
  1968  // InputService11TestCaseOperation1 API operation for .
  1969  //
  1970  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1971  // with awserr.Error's Code and Message methods to get detailed information about
  1972  // the error.
  1973  //
  1974  // See the AWS API reference guide for 's
  1975  // API operation InputService11TestCaseOperation1 for usage and error information.
  1976  func (c *InputService11ProtocolTest) InputService11TestCaseOperation1(input *InputService11TestShapeInputService11TestCaseOperation1Input) (*InputService11TestShapeInputService11TestCaseOperation1Output, error) {
  1977  	req, out := c.InputService11TestCaseOperation1Request(input)
  1978  	return out, req.Send()
  1979  }
  1980  
  1981  // InputService11TestCaseOperation1WithContext is the same as InputService11TestCaseOperation1 with the addition of
  1982  // the ability to pass a context and additional request options.
  1983  //
  1984  // See InputService11TestCaseOperation1 for details on how to use this API operation.
  1985  //
  1986  // The context must be non-nil and will be used for request cancellation. If
  1987  // the context is nil a panic will occur. In the future the SDK may create
  1988  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1989  // for more information on using Contexts.
  1990  func (c *InputService11ProtocolTest) InputService11TestCaseOperation1WithContext(ctx aws.Context, input *InputService11TestShapeInputService11TestCaseOperation1Input, opts ...request.Option) (*InputService11TestShapeInputService11TestCaseOperation1Output, error) {
  1991  	req, out := c.InputService11TestCaseOperation1Request(input)
  1992  	req.SetContext(ctx)
  1993  	req.ApplyOptions(opts...)
  1994  	return out, req.Send()
  1995  }
  1996  
  1997  type InputService11TestShapeInputService11TestCaseOperation1Input struct {
  1998  	_ struct{} `type:"structure" payload:"Body"`
  1999  
  2000  	Body io.ReadSeeker `locationName:"body" type:"blob"`
  2001  
  2002  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  2003  
  2004  	// VaultName is a required field
  2005  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  2006  }
  2007  
  2008  // Validate inspects the fields of the type to determine if they are valid.
  2009  func (s *InputService11TestShapeInputService11TestCaseOperation1Input) Validate() error {
  2010  	invalidParams := request.ErrInvalidParams{Context: "InputService11TestShapeInputService11TestCaseOperation1Input"}
  2011  	if s.VaultName == nil {
  2012  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  2013  	}
  2014  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  2015  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  2016  	}
  2017  
  2018  	if invalidParams.Len() > 0 {
  2019  		return invalidParams
  2020  	}
  2021  	return nil
  2022  }
  2023  
  2024  // SetBody sets the Body field's value.
  2025  func (s *InputService11TestShapeInputService11TestCaseOperation1Input) SetBody(v io.ReadSeeker) *InputService11TestShapeInputService11TestCaseOperation1Input {
  2026  	s.Body = v
  2027  	return s
  2028  }
  2029  
  2030  // SetChecksum sets the Checksum field's value.
  2031  func (s *InputService11TestShapeInputService11TestCaseOperation1Input) SetChecksum(v string) *InputService11TestShapeInputService11TestCaseOperation1Input {
  2032  	s.Checksum = &v
  2033  	return s
  2034  }
  2035  
  2036  // SetVaultName sets the VaultName field's value.
  2037  func (s *InputService11TestShapeInputService11TestCaseOperation1Input) SetVaultName(v string) *InputService11TestShapeInputService11TestCaseOperation1Input {
  2038  	s.VaultName = &v
  2039  	return s
  2040  }
  2041  
  2042  type InputService11TestShapeInputService11TestCaseOperation1Output struct {
  2043  	_ struct{} `type:"structure" nopayload:"true"`
  2044  }
  2045  
  2046  // InputService12ProtocolTest provides the API operation methods for making requests to
  2047  // . See this package's package overview docs
  2048  // for details on the service.
  2049  //
  2050  // InputService12ProtocolTest methods are safe to use concurrently. It is not safe to
  2051  // modify mutate any of the struct's properties though.
  2052  type InputService12ProtocolTest struct {
  2053  	*client.Client
  2054  }
  2055  
  2056  // New creates a new instance of the InputService12ProtocolTest client with a session.
  2057  // If additional configuration is needed for the client instance use the optional
  2058  // aws.Config parameter to add your extra config.
  2059  //
  2060  // Example:
  2061  //     mySession := session.Must(session.NewSession())
  2062  //
  2063  //     // Create a InputService12ProtocolTest client from just a session.
  2064  //     svc := inputservice12protocoltest.New(mySession)
  2065  //
  2066  //     // Create a InputService12ProtocolTest client with additional configuration
  2067  //     svc := inputservice12protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2068  func NewInputService12ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService12ProtocolTest {
  2069  	c := p.ClientConfig("inputservice12protocoltest", cfgs...)
  2070  	return newInputService12ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2071  }
  2072  
  2073  // newClient creates, initializes and returns a new service client instance.
  2074  func newInputService12ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService12ProtocolTest {
  2075  	svc := &InputService12ProtocolTest{
  2076  		Client: client.New(
  2077  			cfg,
  2078  			metadata.ClientInfo{
  2079  				ServiceName:   "InputService12ProtocolTest",
  2080  				ServiceID:     "InputService12ProtocolTest",
  2081  				SigningName:   signingName,
  2082  				SigningRegion: signingRegion,
  2083  				PartitionID:   partitionID,
  2084  				Endpoint:      endpoint,
  2085  				APIVersion:    "2014-01-01",
  2086  			},
  2087  			handlers,
  2088  		),
  2089  	}
  2090  
  2091  	// Handlers
  2092  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2093  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2094  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2095  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2096  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2097  
  2098  	return svc
  2099  }
  2100  
  2101  // newRequest creates a new request for a InputService12ProtocolTest operation and runs any
  2102  // custom request initialization.
  2103  func (c *InputService12ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2104  	req := c.NewRequest(op, params, data)
  2105  
  2106  	return req
  2107  }
  2108  
  2109  const opInputService12TestCaseOperation1 = "OperationName"
  2110  
  2111  // InputService12TestCaseOperation1Request generates a "aws/request.Request" representing the
  2112  // client's request for the InputService12TestCaseOperation1 operation. The "output" return
  2113  // value will be populated with the request's response once the request completes
  2114  // successfully.
  2115  //
  2116  // Use "Send" method on the returned Request to send the API call to the service.
  2117  // the "output" return value is not valid until after Send returns without error.
  2118  //
  2119  // See InputService12TestCaseOperation1 for more information on using the InputService12TestCaseOperation1
  2120  // API call, and error handling.
  2121  //
  2122  // This method is useful when you want to inject custom logic or configuration
  2123  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2124  //
  2125  //
  2126  //    // Example sending a request using the InputService12TestCaseOperation1Request method.
  2127  //    req, resp := client.InputService12TestCaseOperation1Request(params)
  2128  //
  2129  //    err := req.Send()
  2130  //    if err == nil { // resp is now filled
  2131  //        fmt.Println(resp)
  2132  //    }
  2133  func (c *InputService12ProtocolTest) InputService12TestCaseOperation1Request(input *InputService12TestShapeInputService12TestCaseOperation1Input) (req *request.Request, output *InputService12TestShapeInputService12TestCaseOperation1Output) {
  2134  	op := &request.Operation{
  2135  		Name:       opInputService12TestCaseOperation1,
  2136  		HTTPMethod: "POST",
  2137  		HTTPPath:   "/2014-01-01/{Foo}",
  2138  	}
  2139  
  2140  	if input == nil {
  2141  		input = &InputService12TestShapeInputService12TestCaseOperation1Input{}
  2142  	}
  2143  
  2144  	output = &InputService12TestShapeInputService12TestCaseOperation1Output{}
  2145  	req = c.newRequest(op, input, output)
  2146  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2147  	return
  2148  }
  2149  
  2150  // InputService12TestCaseOperation1 API operation for .
  2151  //
  2152  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2153  // with awserr.Error's Code and Message methods to get detailed information about
  2154  // the error.
  2155  //
  2156  // See the AWS API reference guide for 's
  2157  // API operation InputService12TestCaseOperation1 for usage and error information.
  2158  func (c *InputService12ProtocolTest) InputService12TestCaseOperation1(input *InputService12TestShapeInputService12TestCaseOperation1Input) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) {
  2159  	req, out := c.InputService12TestCaseOperation1Request(input)
  2160  	return out, req.Send()
  2161  }
  2162  
  2163  // InputService12TestCaseOperation1WithContext is the same as InputService12TestCaseOperation1 with the addition of
  2164  // the ability to pass a context and additional request options.
  2165  //
  2166  // See InputService12TestCaseOperation1 for details on how to use this API operation.
  2167  //
  2168  // The context must be non-nil and will be used for request cancellation. If
  2169  // the context is nil a panic will occur. In the future the SDK may create
  2170  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2171  // for more information on using Contexts.
  2172  func (c *InputService12ProtocolTest) InputService12TestCaseOperation1WithContext(ctx aws.Context, input *InputService12TestShapeInputService12TestCaseOperation1Input, opts ...request.Option) (*InputService12TestShapeInputService12TestCaseOperation1Output, error) {
  2173  	req, out := c.InputService12TestCaseOperation1Request(input)
  2174  	req.SetContext(ctx)
  2175  	req.ApplyOptions(opts...)
  2176  	return out, req.Send()
  2177  }
  2178  
  2179  type InputService12TestShapeInputService12TestCaseOperation1Input struct {
  2180  	_ struct{} `type:"structure"`
  2181  
  2182  	// Bar is automatically base64 encoded/decoded by the SDK.
  2183  	Bar []byte `type:"blob"`
  2184  
  2185  	// Foo is a required field
  2186  	Foo *string `location:"uri" locationName:"Foo" type:"string" required:"true"`
  2187  }
  2188  
  2189  // Validate inspects the fields of the type to determine if they are valid.
  2190  func (s *InputService12TestShapeInputService12TestCaseOperation1Input) Validate() error {
  2191  	invalidParams := request.ErrInvalidParams{Context: "InputService12TestShapeInputService12TestCaseOperation1Input"}
  2192  	if s.Foo == nil {
  2193  		invalidParams.Add(request.NewErrParamRequired("Foo"))
  2194  	}
  2195  	if s.Foo != nil && len(*s.Foo) < 1 {
  2196  		invalidParams.Add(request.NewErrParamMinLen("Foo", 1))
  2197  	}
  2198  
  2199  	if invalidParams.Len() > 0 {
  2200  		return invalidParams
  2201  	}
  2202  	return nil
  2203  }
  2204  
  2205  // SetBar sets the Bar field's value.
  2206  func (s *InputService12TestShapeInputService12TestCaseOperation1Input) SetBar(v []byte) *InputService12TestShapeInputService12TestCaseOperation1Input {
  2207  	s.Bar = v
  2208  	return s
  2209  }
  2210  
  2211  // SetFoo sets the Foo field's value.
  2212  func (s *InputService12TestShapeInputService12TestCaseOperation1Input) SetFoo(v string) *InputService12TestShapeInputService12TestCaseOperation1Input {
  2213  	s.Foo = &v
  2214  	return s
  2215  }
  2216  
  2217  type InputService12TestShapeInputService12TestCaseOperation1Output struct {
  2218  	_ struct{} `type:"structure" nopayload:"true"`
  2219  }
  2220  
  2221  // InputService13ProtocolTest provides the API operation methods for making requests to
  2222  // . See this package's package overview docs
  2223  // for details on the service.
  2224  //
  2225  // InputService13ProtocolTest methods are safe to use concurrently. It is not safe to
  2226  // modify mutate any of the struct's properties though.
  2227  type InputService13ProtocolTest struct {
  2228  	*client.Client
  2229  }
  2230  
  2231  // New creates a new instance of the InputService13ProtocolTest client with a session.
  2232  // If additional configuration is needed for the client instance use the optional
  2233  // aws.Config parameter to add your extra config.
  2234  //
  2235  // Example:
  2236  //     mySession := session.Must(session.NewSession())
  2237  //
  2238  //     // Create a InputService13ProtocolTest client from just a session.
  2239  //     svc := inputservice13protocoltest.New(mySession)
  2240  //
  2241  //     // Create a InputService13ProtocolTest client with additional configuration
  2242  //     svc := inputservice13protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2243  func NewInputService13ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService13ProtocolTest {
  2244  	c := p.ClientConfig("inputservice13protocoltest", cfgs...)
  2245  	return newInputService13ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2246  }
  2247  
  2248  // newClient creates, initializes and returns a new service client instance.
  2249  func newInputService13ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService13ProtocolTest {
  2250  	svc := &InputService13ProtocolTest{
  2251  		Client: client.New(
  2252  			cfg,
  2253  			metadata.ClientInfo{
  2254  				ServiceName:   "InputService13ProtocolTest",
  2255  				ServiceID:     "InputService13ProtocolTest",
  2256  				SigningName:   signingName,
  2257  				SigningRegion: signingRegion,
  2258  				PartitionID:   partitionID,
  2259  				Endpoint:      endpoint,
  2260  				APIVersion:    "2014-01-01",
  2261  			},
  2262  			handlers,
  2263  		),
  2264  	}
  2265  
  2266  	// Handlers
  2267  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2268  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2269  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2270  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2271  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2272  
  2273  	return svc
  2274  }
  2275  
  2276  // newRequest creates a new request for a InputService13ProtocolTest operation and runs any
  2277  // custom request initialization.
  2278  func (c *InputService13ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2279  	req := c.NewRequest(op, params, data)
  2280  
  2281  	return req
  2282  }
  2283  
  2284  const opInputService13TestCaseOperation1 = "OperationName"
  2285  
  2286  // InputService13TestCaseOperation1Request generates a "aws/request.Request" representing the
  2287  // client's request for the InputService13TestCaseOperation1 operation. The "output" return
  2288  // value will be populated with the request's response once the request completes
  2289  // successfully.
  2290  //
  2291  // Use "Send" method on the returned Request to send the API call to the service.
  2292  // the "output" return value is not valid until after Send returns without error.
  2293  //
  2294  // See InputService13TestCaseOperation1 for more information on using the InputService13TestCaseOperation1
  2295  // API call, and error handling.
  2296  //
  2297  // This method is useful when you want to inject custom logic or configuration
  2298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2299  //
  2300  //
  2301  //    // Example sending a request using the InputService13TestCaseOperation1Request method.
  2302  //    req, resp := client.InputService13TestCaseOperation1Request(params)
  2303  //
  2304  //    err := req.Send()
  2305  //    if err == nil { // resp is now filled
  2306  //        fmt.Println(resp)
  2307  //    }
  2308  func (c *InputService13ProtocolTest) InputService13TestCaseOperation1Request(input *InputService13TestShapeInputService13TestCaseOperation1Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation1Output) {
  2309  	op := &request.Operation{
  2310  		Name:       opInputService13TestCaseOperation1,
  2311  		HTTPMethod: "POST",
  2312  		HTTPPath:   "/",
  2313  	}
  2314  
  2315  	if input == nil {
  2316  		input = &InputService13TestShapeInputService13TestCaseOperation1Input{}
  2317  	}
  2318  
  2319  	output = &InputService13TestShapeInputService13TestCaseOperation1Output{}
  2320  	req = c.newRequest(op, input, output)
  2321  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2322  	return
  2323  }
  2324  
  2325  // InputService13TestCaseOperation1 API operation for .
  2326  //
  2327  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2328  // with awserr.Error's Code and Message methods to get detailed information about
  2329  // the error.
  2330  //
  2331  // See the AWS API reference guide for 's
  2332  // API operation InputService13TestCaseOperation1 for usage and error information.
  2333  func (c *InputService13ProtocolTest) InputService13TestCaseOperation1(input *InputService13TestShapeInputService13TestCaseOperation1Input) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) {
  2334  	req, out := c.InputService13TestCaseOperation1Request(input)
  2335  	return out, req.Send()
  2336  }
  2337  
  2338  // InputService13TestCaseOperation1WithContext is the same as InputService13TestCaseOperation1 with the addition of
  2339  // the ability to pass a context and additional request options.
  2340  //
  2341  // See InputService13TestCaseOperation1 for details on how to use this API operation.
  2342  //
  2343  // The context must be non-nil and will be used for request cancellation. If
  2344  // the context is nil a panic will occur. In the future the SDK may create
  2345  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2346  // for more information on using Contexts.
  2347  func (c *InputService13ProtocolTest) InputService13TestCaseOperation1WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation1Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation1Output, error) {
  2348  	req, out := c.InputService13TestCaseOperation1Request(input)
  2349  	req.SetContext(ctx)
  2350  	req.ApplyOptions(opts...)
  2351  	return out, req.Send()
  2352  }
  2353  
  2354  const opInputService13TestCaseOperation2 = "OperationName"
  2355  
  2356  // InputService13TestCaseOperation2Request generates a "aws/request.Request" representing the
  2357  // client's request for the InputService13TestCaseOperation2 operation. The "output" return
  2358  // value will be populated with the request's response once the request completes
  2359  // successfully.
  2360  //
  2361  // Use "Send" method on the returned Request to send the API call to the service.
  2362  // the "output" return value is not valid until after Send returns without error.
  2363  //
  2364  // See InputService13TestCaseOperation2 for more information on using the InputService13TestCaseOperation2
  2365  // API call, and error handling.
  2366  //
  2367  // This method is useful when you want to inject custom logic or configuration
  2368  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2369  //
  2370  //
  2371  //    // Example sending a request using the InputService13TestCaseOperation2Request method.
  2372  //    req, resp := client.InputService13TestCaseOperation2Request(params)
  2373  //
  2374  //    err := req.Send()
  2375  //    if err == nil { // resp is now filled
  2376  //        fmt.Println(resp)
  2377  //    }
  2378  func (c *InputService13ProtocolTest) InputService13TestCaseOperation2Request(input *InputService13TestShapeInputService13TestCaseOperation2Input) (req *request.Request, output *InputService13TestShapeInputService13TestCaseOperation2Output) {
  2379  	op := &request.Operation{
  2380  		Name:       opInputService13TestCaseOperation2,
  2381  		HTTPMethod: "POST",
  2382  		HTTPPath:   "/",
  2383  	}
  2384  
  2385  	if input == nil {
  2386  		input = &InputService13TestShapeInputService13TestCaseOperation2Input{}
  2387  	}
  2388  
  2389  	output = &InputService13TestShapeInputService13TestCaseOperation2Output{}
  2390  	req = c.newRequest(op, input, output)
  2391  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2392  	return
  2393  }
  2394  
  2395  // InputService13TestCaseOperation2 API operation for .
  2396  //
  2397  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2398  // with awserr.Error's Code and Message methods to get detailed information about
  2399  // the error.
  2400  //
  2401  // See the AWS API reference guide for 's
  2402  // API operation InputService13TestCaseOperation2 for usage and error information.
  2403  func (c *InputService13ProtocolTest) InputService13TestCaseOperation2(input *InputService13TestShapeInputService13TestCaseOperation2Input) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) {
  2404  	req, out := c.InputService13TestCaseOperation2Request(input)
  2405  	return out, req.Send()
  2406  }
  2407  
  2408  // InputService13TestCaseOperation2WithContext is the same as InputService13TestCaseOperation2 with the addition of
  2409  // the ability to pass a context and additional request options.
  2410  //
  2411  // See InputService13TestCaseOperation2 for details on how to use this API operation.
  2412  //
  2413  // The context must be non-nil and will be used for request cancellation. If
  2414  // the context is nil a panic will occur. In the future the SDK may create
  2415  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2416  // for more information on using Contexts.
  2417  func (c *InputService13ProtocolTest) InputService13TestCaseOperation2WithContext(ctx aws.Context, input *InputService13TestShapeInputService13TestCaseOperation2Input, opts ...request.Option) (*InputService13TestShapeInputService13TestCaseOperation2Output, error) {
  2418  	req, out := c.InputService13TestCaseOperation2Request(input)
  2419  	req.SetContext(ctx)
  2420  	req.ApplyOptions(opts...)
  2421  	return out, req.Send()
  2422  }
  2423  
  2424  type InputService13TestShapeInputService13TestCaseOperation1Input struct {
  2425  	_ struct{} `type:"structure" payload:"Foo"`
  2426  
  2427  	Foo []byte `locationName:"foo" type:"blob"`
  2428  }
  2429  
  2430  // SetFoo sets the Foo field's value.
  2431  func (s *InputService13TestShapeInputService13TestCaseOperation1Input) SetFoo(v []byte) *InputService13TestShapeInputService13TestCaseOperation1Input {
  2432  	s.Foo = v
  2433  	return s
  2434  }
  2435  
  2436  type InputService13TestShapeInputService13TestCaseOperation1Output struct {
  2437  	_ struct{} `type:"structure" nopayload:"true"`
  2438  }
  2439  
  2440  type InputService13TestShapeInputService13TestCaseOperation2Input struct {
  2441  	_ struct{} `type:"structure" payload:"Foo"`
  2442  
  2443  	Foo []byte `locationName:"foo" type:"blob"`
  2444  }
  2445  
  2446  // SetFoo sets the Foo field's value.
  2447  func (s *InputService13TestShapeInputService13TestCaseOperation2Input) SetFoo(v []byte) *InputService13TestShapeInputService13TestCaseOperation2Input {
  2448  	s.Foo = v
  2449  	return s
  2450  }
  2451  
  2452  type InputService13TestShapeInputService13TestCaseOperation2Output struct {
  2453  	_ struct{} `type:"structure" nopayload:"true"`
  2454  }
  2455  
  2456  // InputService14ProtocolTest provides the API operation methods for making requests to
  2457  // . See this package's package overview docs
  2458  // for details on the service.
  2459  //
  2460  // InputService14ProtocolTest methods are safe to use concurrently. It is not safe to
  2461  // modify mutate any of the struct's properties though.
  2462  type InputService14ProtocolTest struct {
  2463  	*client.Client
  2464  }
  2465  
  2466  // New creates a new instance of the InputService14ProtocolTest client with a session.
  2467  // If additional configuration is needed for the client instance use the optional
  2468  // aws.Config parameter to add your extra config.
  2469  //
  2470  // Example:
  2471  //     mySession := session.Must(session.NewSession())
  2472  //
  2473  //     // Create a InputService14ProtocolTest client from just a session.
  2474  //     svc := inputservice14protocoltest.New(mySession)
  2475  //
  2476  //     // Create a InputService14ProtocolTest client with additional configuration
  2477  //     svc := inputservice14protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2478  func NewInputService14ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService14ProtocolTest {
  2479  	c := p.ClientConfig("inputservice14protocoltest", cfgs...)
  2480  	return newInputService14ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2481  }
  2482  
  2483  // newClient creates, initializes and returns a new service client instance.
  2484  func newInputService14ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService14ProtocolTest {
  2485  	svc := &InputService14ProtocolTest{
  2486  		Client: client.New(
  2487  			cfg,
  2488  			metadata.ClientInfo{
  2489  				ServiceName:   "InputService14ProtocolTest",
  2490  				ServiceID:     "InputService14ProtocolTest",
  2491  				SigningName:   signingName,
  2492  				SigningRegion: signingRegion,
  2493  				PartitionID:   partitionID,
  2494  				Endpoint:      endpoint,
  2495  				APIVersion:    "2014-01-01",
  2496  			},
  2497  			handlers,
  2498  		),
  2499  	}
  2500  
  2501  	// Handlers
  2502  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2503  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2504  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2505  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2506  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2507  
  2508  	return svc
  2509  }
  2510  
  2511  // newRequest creates a new request for a InputService14ProtocolTest operation and runs any
  2512  // custom request initialization.
  2513  func (c *InputService14ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2514  	req := c.NewRequest(op, params, data)
  2515  
  2516  	return req
  2517  }
  2518  
  2519  const opInputService14TestCaseOperation1 = "OperationName"
  2520  
  2521  // InputService14TestCaseOperation1Request generates a "aws/request.Request" representing the
  2522  // client's request for the InputService14TestCaseOperation1 operation. The "output" return
  2523  // value will be populated with the request's response once the request completes
  2524  // successfully.
  2525  //
  2526  // Use "Send" method on the returned Request to send the API call to the service.
  2527  // the "output" return value is not valid until after Send returns without error.
  2528  //
  2529  // See InputService14TestCaseOperation1 for more information on using the InputService14TestCaseOperation1
  2530  // API call, and error handling.
  2531  //
  2532  // This method is useful when you want to inject custom logic or configuration
  2533  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2534  //
  2535  //
  2536  //    // Example sending a request using the InputService14TestCaseOperation1Request method.
  2537  //    req, resp := client.InputService14TestCaseOperation1Request(params)
  2538  //
  2539  //    err := req.Send()
  2540  //    if err == nil { // resp is now filled
  2541  //        fmt.Println(resp)
  2542  //    }
  2543  func (c *InputService14ProtocolTest) InputService14TestCaseOperation1Request(input *InputService14TestShapeInputService14TestCaseOperation1Input) (req *request.Request, output *InputService14TestShapeInputService14TestCaseOperation1Output) {
  2544  	op := &request.Operation{
  2545  		Name:       opInputService14TestCaseOperation1,
  2546  		HTTPMethod: "POST",
  2547  		HTTPPath:   "/",
  2548  	}
  2549  
  2550  	if input == nil {
  2551  		input = &InputService14TestShapeInputService14TestCaseOperation1Input{}
  2552  	}
  2553  
  2554  	output = &InputService14TestShapeInputService14TestCaseOperation1Output{}
  2555  	req = c.newRequest(op, input, output)
  2556  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2557  	return
  2558  }
  2559  
  2560  // InputService14TestCaseOperation1 API operation for .
  2561  //
  2562  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2563  // with awserr.Error's Code and Message methods to get detailed information about
  2564  // the error.
  2565  //
  2566  // See the AWS API reference guide for 's
  2567  // API operation InputService14TestCaseOperation1 for usage and error information.
  2568  func (c *InputService14ProtocolTest) InputService14TestCaseOperation1(input *InputService14TestShapeInputService14TestCaseOperation1Input) (*InputService14TestShapeInputService14TestCaseOperation1Output, error) {
  2569  	req, out := c.InputService14TestCaseOperation1Request(input)
  2570  	return out, req.Send()
  2571  }
  2572  
  2573  // InputService14TestCaseOperation1WithContext is the same as InputService14TestCaseOperation1 with the addition of
  2574  // the ability to pass a context and additional request options.
  2575  //
  2576  // See InputService14TestCaseOperation1 for details on how to use this API operation.
  2577  //
  2578  // The context must be non-nil and will be used for request cancellation. If
  2579  // the context is nil a panic will occur. In the future the SDK may create
  2580  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2581  // for more information on using Contexts.
  2582  func (c *InputService14ProtocolTest) InputService14TestCaseOperation1WithContext(ctx aws.Context, input *InputService14TestShapeInputService14TestCaseOperation1Input, opts ...request.Option) (*InputService14TestShapeInputService14TestCaseOperation1Output, error) {
  2583  	req, out := c.InputService14TestCaseOperation1Request(input)
  2584  	req.SetContext(ctx)
  2585  	req.ApplyOptions(opts...)
  2586  	return out, req.Send()
  2587  }
  2588  
  2589  const opInputService14TestCaseOperation2 = "OperationName"
  2590  
  2591  // InputService14TestCaseOperation2Request generates a "aws/request.Request" representing the
  2592  // client's request for the InputService14TestCaseOperation2 operation. The "output" return
  2593  // value will be populated with the request's response once the request completes
  2594  // successfully.
  2595  //
  2596  // Use "Send" method on the returned Request to send the API call to the service.
  2597  // the "output" return value is not valid until after Send returns without error.
  2598  //
  2599  // See InputService14TestCaseOperation2 for more information on using the InputService14TestCaseOperation2
  2600  // API call, and error handling.
  2601  //
  2602  // This method is useful when you want to inject custom logic or configuration
  2603  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2604  //
  2605  //
  2606  //    // Example sending a request using the InputService14TestCaseOperation2Request method.
  2607  //    req, resp := client.InputService14TestCaseOperation2Request(params)
  2608  //
  2609  //    err := req.Send()
  2610  //    if err == nil { // resp is now filled
  2611  //        fmt.Println(resp)
  2612  //    }
  2613  func (c *InputService14ProtocolTest) InputService14TestCaseOperation2Request(input *InputService14TestShapeInputService14TestCaseOperation2Input) (req *request.Request, output *InputService14TestShapeInputService14TestCaseOperation2Output) {
  2614  	op := &request.Operation{
  2615  		Name:       opInputService14TestCaseOperation2,
  2616  		HTTPMethod: "POST",
  2617  		HTTPPath:   "/",
  2618  	}
  2619  
  2620  	if input == nil {
  2621  		input = &InputService14TestShapeInputService14TestCaseOperation2Input{}
  2622  	}
  2623  
  2624  	output = &InputService14TestShapeInputService14TestCaseOperation2Output{}
  2625  	req = c.newRequest(op, input, output)
  2626  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2627  	return
  2628  }
  2629  
  2630  // InputService14TestCaseOperation2 API operation for .
  2631  //
  2632  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2633  // with awserr.Error's Code and Message methods to get detailed information about
  2634  // the error.
  2635  //
  2636  // See the AWS API reference guide for 's
  2637  // API operation InputService14TestCaseOperation2 for usage and error information.
  2638  func (c *InputService14ProtocolTest) InputService14TestCaseOperation2(input *InputService14TestShapeInputService14TestCaseOperation2Input) (*InputService14TestShapeInputService14TestCaseOperation2Output, error) {
  2639  	req, out := c.InputService14TestCaseOperation2Request(input)
  2640  	return out, req.Send()
  2641  }
  2642  
  2643  // InputService14TestCaseOperation2WithContext is the same as InputService14TestCaseOperation2 with the addition of
  2644  // the ability to pass a context and additional request options.
  2645  //
  2646  // See InputService14TestCaseOperation2 for details on how to use this API operation.
  2647  //
  2648  // The context must be non-nil and will be used for request cancellation. If
  2649  // the context is nil a panic will occur. In the future the SDK may create
  2650  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2651  // for more information on using Contexts.
  2652  func (c *InputService14ProtocolTest) InputService14TestCaseOperation2WithContext(ctx aws.Context, input *InputService14TestShapeInputService14TestCaseOperation2Input, opts ...request.Option) (*InputService14TestShapeInputService14TestCaseOperation2Output, error) {
  2653  	req, out := c.InputService14TestCaseOperation2Request(input)
  2654  	req.SetContext(ctx)
  2655  	req.ApplyOptions(opts...)
  2656  	return out, req.Send()
  2657  }
  2658  
  2659  type InputService14TestShapeFooShape struct {
  2660  	_ struct{} `locationName:"foo" type:"structure"`
  2661  
  2662  	Baz *string `locationName:"baz" type:"string"`
  2663  }
  2664  
  2665  // SetBaz sets the Baz field's value.
  2666  func (s *InputService14TestShapeFooShape) SetBaz(v string) *InputService14TestShapeFooShape {
  2667  	s.Baz = &v
  2668  	return s
  2669  }
  2670  
  2671  type InputService14TestShapeInputService14TestCaseOperation1Input struct {
  2672  	_ struct{} `type:"structure" payload:"Foo"`
  2673  
  2674  	Foo *InputService14TestShapeFooShape `locationName:"foo" type:"structure"`
  2675  }
  2676  
  2677  // SetFoo sets the Foo field's value.
  2678  func (s *InputService14TestShapeInputService14TestCaseOperation1Input) SetFoo(v *InputService14TestShapeFooShape) *InputService14TestShapeInputService14TestCaseOperation1Input {
  2679  	s.Foo = v
  2680  	return s
  2681  }
  2682  
  2683  type InputService14TestShapeInputService14TestCaseOperation1Output struct {
  2684  	_ struct{} `type:"structure" nopayload:"true"`
  2685  }
  2686  
  2687  type InputService14TestShapeInputService14TestCaseOperation2Input struct {
  2688  	_ struct{} `type:"structure" payload:"Foo"`
  2689  
  2690  	Foo *InputService14TestShapeFooShape `locationName:"foo" type:"structure"`
  2691  }
  2692  
  2693  // SetFoo sets the Foo field's value.
  2694  func (s *InputService14TestShapeInputService14TestCaseOperation2Input) SetFoo(v *InputService14TestShapeFooShape) *InputService14TestShapeInputService14TestCaseOperation2Input {
  2695  	s.Foo = v
  2696  	return s
  2697  }
  2698  
  2699  type InputService14TestShapeInputService14TestCaseOperation2Output struct {
  2700  	_ struct{} `type:"structure" nopayload:"true"`
  2701  }
  2702  
  2703  // InputService15ProtocolTest provides the API operation methods for making requests to
  2704  // . See this package's package overview docs
  2705  // for details on the service.
  2706  //
  2707  // InputService15ProtocolTest methods are safe to use concurrently. It is not safe to
  2708  // modify mutate any of the struct's properties though.
  2709  type InputService15ProtocolTest struct {
  2710  	*client.Client
  2711  }
  2712  
  2713  // New creates a new instance of the InputService15ProtocolTest client with a session.
  2714  // If additional configuration is needed for the client instance use the optional
  2715  // aws.Config parameter to add your extra config.
  2716  //
  2717  // Example:
  2718  //     mySession := session.Must(session.NewSession())
  2719  //
  2720  //     // Create a InputService15ProtocolTest client from just a session.
  2721  //     svc := inputservice15protocoltest.New(mySession)
  2722  //
  2723  //     // Create a InputService15ProtocolTest client with additional configuration
  2724  //     svc := inputservice15protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2725  func NewInputService15ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService15ProtocolTest {
  2726  	c := p.ClientConfig("inputservice15protocoltest", cfgs...)
  2727  	return newInputService15ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2728  }
  2729  
  2730  // newClient creates, initializes and returns a new service client instance.
  2731  func newInputService15ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService15ProtocolTest {
  2732  	svc := &InputService15ProtocolTest{
  2733  		Client: client.New(
  2734  			cfg,
  2735  			metadata.ClientInfo{
  2736  				ServiceName:   "InputService15ProtocolTest",
  2737  				ServiceID:     "InputService15ProtocolTest",
  2738  				SigningName:   signingName,
  2739  				SigningRegion: signingRegion,
  2740  				PartitionID:   partitionID,
  2741  				Endpoint:      endpoint,
  2742  				APIVersion:    "2014-01-01",
  2743  			},
  2744  			handlers,
  2745  		),
  2746  	}
  2747  
  2748  	// Handlers
  2749  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2750  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2751  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2752  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2753  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2754  
  2755  	return svc
  2756  }
  2757  
  2758  // newRequest creates a new request for a InputService15ProtocolTest operation and runs any
  2759  // custom request initialization.
  2760  func (c *InputService15ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2761  	req := c.NewRequest(op, params, data)
  2762  
  2763  	return req
  2764  }
  2765  
  2766  const opInputService15TestCaseOperation1 = "OperationName"
  2767  
  2768  // InputService15TestCaseOperation1Request generates a "aws/request.Request" representing the
  2769  // client's request for the InputService15TestCaseOperation1 operation. The "output" return
  2770  // value will be populated with the request's response once the request completes
  2771  // successfully.
  2772  //
  2773  // Use "Send" method on the returned Request to send the API call to the service.
  2774  // the "output" return value is not valid until after Send returns without error.
  2775  //
  2776  // See InputService15TestCaseOperation1 for more information on using the InputService15TestCaseOperation1
  2777  // API call, and error handling.
  2778  //
  2779  // This method is useful when you want to inject custom logic or configuration
  2780  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2781  //
  2782  //
  2783  //    // Example sending a request using the InputService15TestCaseOperation1Request method.
  2784  //    req, resp := client.InputService15TestCaseOperation1Request(params)
  2785  //
  2786  //    err := req.Send()
  2787  //    if err == nil { // resp is now filled
  2788  //        fmt.Println(resp)
  2789  //    }
  2790  func (c *InputService15ProtocolTest) InputService15TestCaseOperation1Request(input *InputService15TestShapeInputService15TestCaseOperation1Input) (req *request.Request, output *InputService15TestShapeInputService15TestCaseOperation1Output) {
  2791  	op := &request.Operation{
  2792  		Name:       opInputService15TestCaseOperation1,
  2793  		HTTPMethod: "POST",
  2794  		HTTPPath:   "/path",
  2795  	}
  2796  
  2797  	if input == nil {
  2798  		input = &InputService15TestShapeInputService15TestCaseOperation1Input{}
  2799  	}
  2800  
  2801  	output = &InputService15TestShapeInputService15TestCaseOperation1Output{}
  2802  	req = c.newRequest(op, input, output)
  2803  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2804  	return
  2805  }
  2806  
  2807  // InputService15TestCaseOperation1 API operation for .
  2808  //
  2809  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2810  // with awserr.Error's Code and Message methods to get detailed information about
  2811  // the error.
  2812  //
  2813  // See the AWS API reference guide for 's
  2814  // API operation InputService15TestCaseOperation1 for usage and error information.
  2815  func (c *InputService15ProtocolTest) InputService15TestCaseOperation1(input *InputService15TestShapeInputService15TestCaseOperation1Input) (*InputService15TestShapeInputService15TestCaseOperation1Output, error) {
  2816  	req, out := c.InputService15TestCaseOperation1Request(input)
  2817  	return out, req.Send()
  2818  }
  2819  
  2820  // InputService15TestCaseOperation1WithContext is the same as InputService15TestCaseOperation1 with the addition of
  2821  // the ability to pass a context and additional request options.
  2822  //
  2823  // See InputService15TestCaseOperation1 for details on how to use this API operation.
  2824  //
  2825  // The context must be non-nil and will be used for request cancellation. If
  2826  // the context is nil a panic will occur. In the future the SDK may create
  2827  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2828  // for more information on using Contexts.
  2829  func (c *InputService15ProtocolTest) InputService15TestCaseOperation1WithContext(ctx aws.Context, input *InputService15TestShapeInputService15TestCaseOperation1Input, opts ...request.Option) (*InputService15TestShapeInputService15TestCaseOperation1Output, error) {
  2830  	req, out := c.InputService15TestCaseOperation1Request(input)
  2831  	req.SetContext(ctx)
  2832  	req.ApplyOptions(opts...)
  2833  	return out, req.Send()
  2834  }
  2835  
  2836  const opInputService15TestCaseOperation2 = "OperationName"
  2837  
  2838  // InputService15TestCaseOperation2Request generates a "aws/request.Request" representing the
  2839  // client's request for the InputService15TestCaseOperation2 operation. The "output" return
  2840  // value will be populated with the request's response once the request completes
  2841  // successfully.
  2842  //
  2843  // Use "Send" method on the returned Request to send the API call to the service.
  2844  // the "output" return value is not valid until after Send returns without error.
  2845  //
  2846  // See InputService15TestCaseOperation2 for more information on using the InputService15TestCaseOperation2
  2847  // API call, and error handling.
  2848  //
  2849  // This method is useful when you want to inject custom logic or configuration
  2850  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2851  //
  2852  //
  2853  //    // Example sending a request using the InputService15TestCaseOperation2Request method.
  2854  //    req, resp := client.InputService15TestCaseOperation2Request(params)
  2855  //
  2856  //    err := req.Send()
  2857  //    if err == nil { // resp is now filled
  2858  //        fmt.Println(resp)
  2859  //    }
  2860  func (c *InputService15ProtocolTest) InputService15TestCaseOperation2Request(input *InputService15TestShapeInputService15TestCaseOperation2Input) (req *request.Request, output *InputService15TestShapeInputService15TestCaseOperation2Output) {
  2861  	op := &request.Operation{
  2862  		Name:       opInputService15TestCaseOperation2,
  2863  		HTTPMethod: "POST",
  2864  		HTTPPath:   "/path?abc=mno",
  2865  	}
  2866  
  2867  	if input == nil {
  2868  		input = &InputService15TestShapeInputService15TestCaseOperation2Input{}
  2869  	}
  2870  
  2871  	output = &InputService15TestShapeInputService15TestCaseOperation2Output{}
  2872  	req = c.newRequest(op, input, output)
  2873  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2874  	return
  2875  }
  2876  
  2877  // InputService15TestCaseOperation2 API operation for .
  2878  //
  2879  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2880  // with awserr.Error's Code and Message methods to get detailed information about
  2881  // the error.
  2882  //
  2883  // See the AWS API reference guide for 's
  2884  // API operation InputService15TestCaseOperation2 for usage and error information.
  2885  func (c *InputService15ProtocolTest) InputService15TestCaseOperation2(input *InputService15TestShapeInputService15TestCaseOperation2Input) (*InputService15TestShapeInputService15TestCaseOperation2Output, error) {
  2886  	req, out := c.InputService15TestCaseOperation2Request(input)
  2887  	return out, req.Send()
  2888  }
  2889  
  2890  // InputService15TestCaseOperation2WithContext is the same as InputService15TestCaseOperation2 with the addition of
  2891  // the ability to pass a context and additional request options.
  2892  //
  2893  // See InputService15TestCaseOperation2 for details on how to use this API operation.
  2894  //
  2895  // The context must be non-nil and will be used for request cancellation. If
  2896  // the context is nil a panic will occur. In the future the SDK may create
  2897  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2898  // for more information on using Contexts.
  2899  func (c *InputService15ProtocolTest) InputService15TestCaseOperation2WithContext(ctx aws.Context, input *InputService15TestShapeInputService15TestCaseOperation2Input, opts ...request.Option) (*InputService15TestShapeInputService15TestCaseOperation2Output, error) {
  2900  	req, out := c.InputService15TestCaseOperation2Request(input)
  2901  	req.SetContext(ctx)
  2902  	req.ApplyOptions(opts...)
  2903  	return out, req.Send()
  2904  }
  2905  
  2906  type InputService15TestShapeInputService15TestCaseOperation1Input struct {
  2907  	_ struct{} `type:"structure" nopayload:"true"`
  2908  
  2909  	Foo *string `location:"querystring" locationName:"param-name" type:"string"`
  2910  }
  2911  
  2912  // SetFoo sets the Foo field's value.
  2913  func (s *InputService15TestShapeInputService15TestCaseOperation1Input) SetFoo(v string) *InputService15TestShapeInputService15TestCaseOperation1Input {
  2914  	s.Foo = &v
  2915  	return s
  2916  }
  2917  
  2918  type InputService15TestShapeInputService15TestCaseOperation1Output struct {
  2919  	_ struct{} `type:"structure" nopayload:"true"`
  2920  }
  2921  
  2922  type InputService15TestShapeInputService15TestCaseOperation2Input struct {
  2923  	_ struct{} `type:"structure" nopayload:"true"`
  2924  
  2925  	Foo *string `location:"querystring" locationName:"param-name" type:"string"`
  2926  }
  2927  
  2928  // SetFoo sets the Foo field's value.
  2929  func (s *InputService15TestShapeInputService15TestCaseOperation2Input) SetFoo(v string) *InputService15TestShapeInputService15TestCaseOperation2Input {
  2930  	s.Foo = &v
  2931  	return s
  2932  }
  2933  
  2934  type InputService15TestShapeInputService15TestCaseOperation2Output struct {
  2935  	_ struct{} `type:"structure" nopayload:"true"`
  2936  }
  2937  
  2938  // InputService16ProtocolTest provides the API operation methods for making requests to
  2939  // . See this package's package overview docs
  2940  // for details on the service.
  2941  //
  2942  // InputService16ProtocolTest methods are safe to use concurrently. It is not safe to
  2943  // modify mutate any of the struct's properties though.
  2944  type InputService16ProtocolTest struct {
  2945  	*client.Client
  2946  }
  2947  
  2948  // New creates a new instance of the InputService16ProtocolTest client with a session.
  2949  // If additional configuration is needed for the client instance use the optional
  2950  // aws.Config parameter to add your extra config.
  2951  //
  2952  // Example:
  2953  //     mySession := session.Must(session.NewSession())
  2954  //
  2955  //     // Create a InputService16ProtocolTest client from just a session.
  2956  //     svc := inputservice16protocoltest.New(mySession)
  2957  //
  2958  //     // Create a InputService16ProtocolTest client with additional configuration
  2959  //     svc := inputservice16protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  2960  func NewInputService16ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService16ProtocolTest {
  2961  	c := p.ClientConfig("inputservice16protocoltest", cfgs...)
  2962  	return newInputService16ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  2963  }
  2964  
  2965  // newClient creates, initializes and returns a new service client instance.
  2966  func newInputService16ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService16ProtocolTest {
  2967  	svc := &InputService16ProtocolTest{
  2968  		Client: client.New(
  2969  			cfg,
  2970  			metadata.ClientInfo{
  2971  				ServiceName:   "InputService16ProtocolTest",
  2972  				ServiceID:     "InputService16ProtocolTest",
  2973  				SigningName:   signingName,
  2974  				SigningRegion: signingRegion,
  2975  				PartitionID:   partitionID,
  2976  				Endpoint:      endpoint,
  2977  				APIVersion:    "2014-01-01",
  2978  			},
  2979  			handlers,
  2980  		),
  2981  	}
  2982  
  2983  	// Handlers
  2984  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  2985  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  2986  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  2987  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  2988  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  2989  
  2990  	return svc
  2991  }
  2992  
  2993  // newRequest creates a new request for a InputService16ProtocolTest operation and runs any
  2994  // custom request initialization.
  2995  func (c *InputService16ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  2996  	req := c.NewRequest(op, params, data)
  2997  
  2998  	return req
  2999  }
  3000  
  3001  const opInputService16TestCaseOperation1 = "OperationName"
  3002  
  3003  // InputService16TestCaseOperation1Request generates a "aws/request.Request" representing the
  3004  // client's request for the InputService16TestCaseOperation1 operation. The "output" return
  3005  // value will be populated with the request's response once the request completes
  3006  // successfully.
  3007  //
  3008  // Use "Send" method on the returned Request to send the API call to the service.
  3009  // the "output" return value is not valid until after Send returns without error.
  3010  //
  3011  // See InputService16TestCaseOperation1 for more information on using the InputService16TestCaseOperation1
  3012  // API call, and error handling.
  3013  //
  3014  // This method is useful when you want to inject custom logic or configuration
  3015  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3016  //
  3017  //
  3018  //    // Example sending a request using the InputService16TestCaseOperation1Request method.
  3019  //    req, resp := client.InputService16TestCaseOperation1Request(params)
  3020  //
  3021  //    err := req.Send()
  3022  //    if err == nil { // resp is now filled
  3023  //        fmt.Println(resp)
  3024  //    }
  3025  func (c *InputService16ProtocolTest) InputService16TestCaseOperation1Request(input *InputService16TestShapeInputService16TestCaseOperation1Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation1Output) {
  3026  	op := &request.Operation{
  3027  		Name:       opInputService16TestCaseOperation1,
  3028  		HTTPMethod: "POST",
  3029  		HTTPPath:   "/path",
  3030  	}
  3031  
  3032  	if input == nil {
  3033  		input = &InputService16TestShapeInputService16TestCaseOperation1Input{}
  3034  	}
  3035  
  3036  	output = &InputService16TestShapeInputService16TestCaseOperation1Output{}
  3037  	req = c.newRequest(op, input, output)
  3038  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3039  	return
  3040  }
  3041  
  3042  // InputService16TestCaseOperation1 API operation for .
  3043  //
  3044  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3045  // with awserr.Error's Code and Message methods to get detailed information about
  3046  // the error.
  3047  //
  3048  // See the AWS API reference guide for 's
  3049  // API operation InputService16TestCaseOperation1 for usage and error information.
  3050  func (c *InputService16ProtocolTest) InputService16TestCaseOperation1(input *InputService16TestShapeInputService16TestCaseOperation1Input) (*InputService16TestShapeInputService16TestCaseOperation1Output, error) {
  3051  	req, out := c.InputService16TestCaseOperation1Request(input)
  3052  	return out, req.Send()
  3053  }
  3054  
  3055  // InputService16TestCaseOperation1WithContext is the same as InputService16TestCaseOperation1 with the addition of
  3056  // the ability to pass a context and additional request options.
  3057  //
  3058  // See InputService16TestCaseOperation1 for details on how to use this API operation.
  3059  //
  3060  // The context must be non-nil and will be used for request cancellation. If
  3061  // the context is nil a panic will occur. In the future the SDK may create
  3062  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3063  // for more information on using Contexts.
  3064  func (c *InputService16ProtocolTest) InputService16TestCaseOperation1WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation1Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation1Output, error) {
  3065  	req, out := c.InputService16TestCaseOperation1Request(input)
  3066  	req.SetContext(ctx)
  3067  	req.ApplyOptions(opts...)
  3068  	return out, req.Send()
  3069  }
  3070  
  3071  const opInputService16TestCaseOperation2 = "OperationName"
  3072  
  3073  // InputService16TestCaseOperation2Request generates a "aws/request.Request" representing the
  3074  // client's request for the InputService16TestCaseOperation2 operation. The "output" return
  3075  // value will be populated with the request's response once the request completes
  3076  // successfully.
  3077  //
  3078  // Use "Send" method on the returned Request to send the API call to the service.
  3079  // the "output" return value is not valid until after Send returns without error.
  3080  //
  3081  // See InputService16TestCaseOperation2 for more information on using the InputService16TestCaseOperation2
  3082  // API call, and error handling.
  3083  //
  3084  // This method is useful when you want to inject custom logic or configuration
  3085  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3086  //
  3087  //
  3088  //    // Example sending a request using the InputService16TestCaseOperation2Request method.
  3089  //    req, resp := client.InputService16TestCaseOperation2Request(params)
  3090  //
  3091  //    err := req.Send()
  3092  //    if err == nil { // resp is now filled
  3093  //        fmt.Println(resp)
  3094  //    }
  3095  func (c *InputService16ProtocolTest) InputService16TestCaseOperation2Request(input *InputService16TestShapeInputService16TestCaseOperation2Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation2Output) {
  3096  	op := &request.Operation{
  3097  		Name:       opInputService16TestCaseOperation2,
  3098  		HTTPMethod: "POST",
  3099  		HTTPPath:   "/path",
  3100  	}
  3101  
  3102  	if input == nil {
  3103  		input = &InputService16TestShapeInputService16TestCaseOperation2Input{}
  3104  	}
  3105  
  3106  	output = &InputService16TestShapeInputService16TestCaseOperation2Output{}
  3107  	req = c.newRequest(op, input, output)
  3108  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3109  	return
  3110  }
  3111  
  3112  // InputService16TestCaseOperation2 API operation for .
  3113  //
  3114  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3115  // with awserr.Error's Code and Message methods to get detailed information about
  3116  // the error.
  3117  //
  3118  // See the AWS API reference guide for 's
  3119  // API operation InputService16TestCaseOperation2 for usage and error information.
  3120  func (c *InputService16ProtocolTest) InputService16TestCaseOperation2(input *InputService16TestShapeInputService16TestCaseOperation2Input) (*InputService16TestShapeInputService16TestCaseOperation2Output, error) {
  3121  	req, out := c.InputService16TestCaseOperation2Request(input)
  3122  	return out, req.Send()
  3123  }
  3124  
  3125  // InputService16TestCaseOperation2WithContext is the same as InputService16TestCaseOperation2 with the addition of
  3126  // the ability to pass a context and additional request options.
  3127  //
  3128  // See InputService16TestCaseOperation2 for details on how to use this API operation.
  3129  //
  3130  // The context must be non-nil and will be used for request cancellation. If
  3131  // the context is nil a panic will occur. In the future the SDK may create
  3132  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3133  // for more information on using Contexts.
  3134  func (c *InputService16ProtocolTest) InputService16TestCaseOperation2WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation2Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation2Output, error) {
  3135  	req, out := c.InputService16TestCaseOperation2Request(input)
  3136  	req.SetContext(ctx)
  3137  	req.ApplyOptions(opts...)
  3138  	return out, req.Send()
  3139  }
  3140  
  3141  const opInputService16TestCaseOperation3 = "OperationName"
  3142  
  3143  // InputService16TestCaseOperation3Request generates a "aws/request.Request" representing the
  3144  // client's request for the InputService16TestCaseOperation3 operation. The "output" return
  3145  // value will be populated with the request's response once the request completes
  3146  // successfully.
  3147  //
  3148  // Use "Send" method on the returned Request to send the API call to the service.
  3149  // the "output" return value is not valid until after Send returns without error.
  3150  //
  3151  // See InputService16TestCaseOperation3 for more information on using the InputService16TestCaseOperation3
  3152  // API call, and error handling.
  3153  //
  3154  // This method is useful when you want to inject custom logic or configuration
  3155  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3156  //
  3157  //
  3158  //    // Example sending a request using the InputService16TestCaseOperation3Request method.
  3159  //    req, resp := client.InputService16TestCaseOperation3Request(params)
  3160  //
  3161  //    err := req.Send()
  3162  //    if err == nil { // resp is now filled
  3163  //        fmt.Println(resp)
  3164  //    }
  3165  func (c *InputService16ProtocolTest) InputService16TestCaseOperation3Request(input *InputService16TestShapeInputService16TestCaseOperation3Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation3Output) {
  3166  	op := &request.Operation{
  3167  		Name:       opInputService16TestCaseOperation3,
  3168  		HTTPMethod: "POST",
  3169  		HTTPPath:   "/path",
  3170  	}
  3171  
  3172  	if input == nil {
  3173  		input = &InputService16TestShapeInputService16TestCaseOperation3Input{}
  3174  	}
  3175  
  3176  	output = &InputService16TestShapeInputService16TestCaseOperation3Output{}
  3177  	req = c.newRequest(op, input, output)
  3178  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3179  	return
  3180  }
  3181  
  3182  // InputService16TestCaseOperation3 API operation for .
  3183  //
  3184  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3185  // with awserr.Error's Code and Message methods to get detailed information about
  3186  // the error.
  3187  //
  3188  // See the AWS API reference guide for 's
  3189  // API operation InputService16TestCaseOperation3 for usage and error information.
  3190  func (c *InputService16ProtocolTest) InputService16TestCaseOperation3(input *InputService16TestShapeInputService16TestCaseOperation3Input) (*InputService16TestShapeInputService16TestCaseOperation3Output, error) {
  3191  	req, out := c.InputService16TestCaseOperation3Request(input)
  3192  	return out, req.Send()
  3193  }
  3194  
  3195  // InputService16TestCaseOperation3WithContext is the same as InputService16TestCaseOperation3 with the addition of
  3196  // the ability to pass a context and additional request options.
  3197  //
  3198  // See InputService16TestCaseOperation3 for details on how to use this API operation.
  3199  //
  3200  // The context must be non-nil and will be used for request cancellation. If
  3201  // the context is nil a panic will occur. In the future the SDK may create
  3202  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3203  // for more information on using Contexts.
  3204  func (c *InputService16ProtocolTest) InputService16TestCaseOperation3WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation3Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation3Output, error) {
  3205  	req, out := c.InputService16TestCaseOperation3Request(input)
  3206  	req.SetContext(ctx)
  3207  	req.ApplyOptions(opts...)
  3208  	return out, req.Send()
  3209  }
  3210  
  3211  const opInputService16TestCaseOperation4 = "OperationName"
  3212  
  3213  // InputService16TestCaseOperation4Request generates a "aws/request.Request" representing the
  3214  // client's request for the InputService16TestCaseOperation4 operation. The "output" return
  3215  // value will be populated with the request's response once the request completes
  3216  // successfully.
  3217  //
  3218  // Use "Send" method on the returned Request to send the API call to the service.
  3219  // the "output" return value is not valid until after Send returns without error.
  3220  //
  3221  // See InputService16TestCaseOperation4 for more information on using the InputService16TestCaseOperation4
  3222  // API call, and error handling.
  3223  //
  3224  // This method is useful when you want to inject custom logic or configuration
  3225  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3226  //
  3227  //
  3228  //    // Example sending a request using the InputService16TestCaseOperation4Request method.
  3229  //    req, resp := client.InputService16TestCaseOperation4Request(params)
  3230  //
  3231  //    err := req.Send()
  3232  //    if err == nil { // resp is now filled
  3233  //        fmt.Println(resp)
  3234  //    }
  3235  func (c *InputService16ProtocolTest) InputService16TestCaseOperation4Request(input *InputService16TestShapeInputService16TestCaseOperation4Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation4Output) {
  3236  	op := &request.Operation{
  3237  		Name:       opInputService16TestCaseOperation4,
  3238  		HTTPMethod: "POST",
  3239  		HTTPPath:   "/path",
  3240  	}
  3241  
  3242  	if input == nil {
  3243  		input = &InputService16TestShapeInputService16TestCaseOperation4Input{}
  3244  	}
  3245  
  3246  	output = &InputService16TestShapeInputService16TestCaseOperation4Output{}
  3247  	req = c.newRequest(op, input, output)
  3248  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3249  	return
  3250  }
  3251  
  3252  // InputService16TestCaseOperation4 API operation for .
  3253  //
  3254  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3255  // with awserr.Error's Code and Message methods to get detailed information about
  3256  // the error.
  3257  //
  3258  // See the AWS API reference guide for 's
  3259  // API operation InputService16TestCaseOperation4 for usage and error information.
  3260  func (c *InputService16ProtocolTest) InputService16TestCaseOperation4(input *InputService16TestShapeInputService16TestCaseOperation4Input) (*InputService16TestShapeInputService16TestCaseOperation4Output, error) {
  3261  	req, out := c.InputService16TestCaseOperation4Request(input)
  3262  	return out, req.Send()
  3263  }
  3264  
  3265  // InputService16TestCaseOperation4WithContext is the same as InputService16TestCaseOperation4 with the addition of
  3266  // the ability to pass a context and additional request options.
  3267  //
  3268  // See InputService16TestCaseOperation4 for details on how to use this API operation.
  3269  //
  3270  // The context must be non-nil and will be used for request cancellation. If
  3271  // the context is nil a panic will occur. In the future the SDK may create
  3272  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3273  // for more information on using Contexts.
  3274  func (c *InputService16ProtocolTest) InputService16TestCaseOperation4WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation4Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation4Output, error) {
  3275  	req, out := c.InputService16TestCaseOperation4Request(input)
  3276  	req.SetContext(ctx)
  3277  	req.ApplyOptions(opts...)
  3278  	return out, req.Send()
  3279  }
  3280  
  3281  const opInputService16TestCaseOperation5 = "OperationName"
  3282  
  3283  // InputService16TestCaseOperation5Request generates a "aws/request.Request" representing the
  3284  // client's request for the InputService16TestCaseOperation5 operation. The "output" return
  3285  // value will be populated with the request's response once the request completes
  3286  // successfully.
  3287  //
  3288  // Use "Send" method on the returned Request to send the API call to the service.
  3289  // the "output" return value is not valid until after Send returns without error.
  3290  //
  3291  // See InputService16TestCaseOperation5 for more information on using the InputService16TestCaseOperation5
  3292  // API call, and error handling.
  3293  //
  3294  // This method is useful when you want to inject custom logic or configuration
  3295  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3296  //
  3297  //
  3298  //    // Example sending a request using the InputService16TestCaseOperation5Request method.
  3299  //    req, resp := client.InputService16TestCaseOperation5Request(params)
  3300  //
  3301  //    err := req.Send()
  3302  //    if err == nil { // resp is now filled
  3303  //        fmt.Println(resp)
  3304  //    }
  3305  func (c *InputService16ProtocolTest) InputService16TestCaseOperation5Request(input *InputService16TestShapeInputService16TestCaseOperation5Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation5Output) {
  3306  	op := &request.Operation{
  3307  		Name:       opInputService16TestCaseOperation5,
  3308  		HTTPMethod: "POST",
  3309  		HTTPPath:   "/path",
  3310  	}
  3311  
  3312  	if input == nil {
  3313  		input = &InputService16TestShapeInputService16TestCaseOperation5Input{}
  3314  	}
  3315  
  3316  	output = &InputService16TestShapeInputService16TestCaseOperation5Output{}
  3317  	req = c.newRequest(op, input, output)
  3318  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3319  	return
  3320  }
  3321  
  3322  // InputService16TestCaseOperation5 API operation for .
  3323  //
  3324  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3325  // with awserr.Error's Code and Message methods to get detailed information about
  3326  // the error.
  3327  //
  3328  // See the AWS API reference guide for 's
  3329  // API operation InputService16TestCaseOperation5 for usage and error information.
  3330  func (c *InputService16ProtocolTest) InputService16TestCaseOperation5(input *InputService16TestShapeInputService16TestCaseOperation5Input) (*InputService16TestShapeInputService16TestCaseOperation5Output, error) {
  3331  	req, out := c.InputService16TestCaseOperation5Request(input)
  3332  	return out, req.Send()
  3333  }
  3334  
  3335  // InputService16TestCaseOperation5WithContext is the same as InputService16TestCaseOperation5 with the addition of
  3336  // the ability to pass a context and additional request options.
  3337  //
  3338  // See InputService16TestCaseOperation5 for details on how to use this API operation.
  3339  //
  3340  // The context must be non-nil and will be used for request cancellation. If
  3341  // the context is nil a panic will occur. In the future the SDK may create
  3342  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3343  // for more information on using Contexts.
  3344  func (c *InputService16ProtocolTest) InputService16TestCaseOperation5WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation5Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation5Output, error) {
  3345  	req, out := c.InputService16TestCaseOperation5Request(input)
  3346  	req.SetContext(ctx)
  3347  	req.ApplyOptions(opts...)
  3348  	return out, req.Send()
  3349  }
  3350  
  3351  const opInputService16TestCaseOperation6 = "OperationName"
  3352  
  3353  // InputService16TestCaseOperation6Request generates a "aws/request.Request" representing the
  3354  // client's request for the InputService16TestCaseOperation6 operation. The "output" return
  3355  // value will be populated with the request's response once the request completes
  3356  // successfully.
  3357  //
  3358  // Use "Send" method on the returned Request to send the API call to the service.
  3359  // the "output" return value is not valid until after Send returns without error.
  3360  //
  3361  // See InputService16TestCaseOperation6 for more information on using the InputService16TestCaseOperation6
  3362  // API call, and error handling.
  3363  //
  3364  // This method is useful when you want to inject custom logic or configuration
  3365  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3366  //
  3367  //
  3368  //    // Example sending a request using the InputService16TestCaseOperation6Request method.
  3369  //    req, resp := client.InputService16TestCaseOperation6Request(params)
  3370  //
  3371  //    err := req.Send()
  3372  //    if err == nil { // resp is now filled
  3373  //        fmt.Println(resp)
  3374  //    }
  3375  func (c *InputService16ProtocolTest) InputService16TestCaseOperation6Request(input *InputService16TestShapeInputService16TestCaseOperation6Input) (req *request.Request, output *InputService16TestShapeInputService16TestCaseOperation6Output) {
  3376  	op := &request.Operation{
  3377  		Name:       opInputService16TestCaseOperation6,
  3378  		HTTPMethod: "POST",
  3379  		HTTPPath:   "/path",
  3380  	}
  3381  
  3382  	if input == nil {
  3383  		input = &InputService16TestShapeInputService16TestCaseOperation6Input{}
  3384  	}
  3385  
  3386  	output = &InputService16TestShapeInputService16TestCaseOperation6Output{}
  3387  	req = c.newRequest(op, input, output)
  3388  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3389  	return
  3390  }
  3391  
  3392  // InputService16TestCaseOperation6 API operation for .
  3393  //
  3394  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3395  // with awserr.Error's Code and Message methods to get detailed information about
  3396  // the error.
  3397  //
  3398  // See the AWS API reference guide for 's
  3399  // API operation InputService16TestCaseOperation6 for usage and error information.
  3400  func (c *InputService16ProtocolTest) InputService16TestCaseOperation6(input *InputService16TestShapeInputService16TestCaseOperation6Input) (*InputService16TestShapeInputService16TestCaseOperation6Output, error) {
  3401  	req, out := c.InputService16TestCaseOperation6Request(input)
  3402  	return out, req.Send()
  3403  }
  3404  
  3405  // InputService16TestCaseOperation6WithContext is the same as InputService16TestCaseOperation6 with the addition of
  3406  // the ability to pass a context and additional request options.
  3407  //
  3408  // See InputService16TestCaseOperation6 for details on how to use this API operation.
  3409  //
  3410  // The context must be non-nil and will be used for request cancellation. If
  3411  // the context is nil a panic will occur. In the future the SDK may create
  3412  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3413  // for more information on using Contexts.
  3414  func (c *InputService16ProtocolTest) InputService16TestCaseOperation6WithContext(ctx aws.Context, input *InputService16TestShapeInputService16TestCaseOperation6Input, opts ...request.Option) (*InputService16TestShapeInputService16TestCaseOperation6Output, error) {
  3415  	req, out := c.InputService16TestCaseOperation6Request(input)
  3416  	req.SetContext(ctx)
  3417  	req.ApplyOptions(opts...)
  3418  	return out, req.Send()
  3419  }
  3420  
  3421  type InputService16TestShapeInputService16TestCaseOperation1Input struct {
  3422  	_ struct{} `type:"structure"`
  3423  
  3424  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3425  }
  3426  
  3427  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3428  func (s *InputService16TestShapeInputService16TestCaseOperation1Input) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeInputService16TestCaseOperation1Input {
  3429  	s.RecursiveStruct = v
  3430  	return s
  3431  }
  3432  
  3433  type InputService16TestShapeInputService16TestCaseOperation1Output struct {
  3434  	_ struct{} `type:"structure" nopayload:"true"`
  3435  }
  3436  
  3437  type InputService16TestShapeInputService16TestCaseOperation2Input struct {
  3438  	_ struct{} `type:"structure"`
  3439  
  3440  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3441  }
  3442  
  3443  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3444  func (s *InputService16TestShapeInputService16TestCaseOperation2Input) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeInputService16TestCaseOperation2Input {
  3445  	s.RecursiveStruct = v
  3446  	return s
  3447  }
  3448  
  3449  type InputService16TestShapeInputService16TestCaseOperation2Output struct {
  3450  	_ struct{} `type:"structure" nopayload:"true"`
  3451  }
  3452  
  3453  type InputService16TestShapeInputService16TestCaseOperation3Input struct {
  3454  	_ struct{} `type:"structure"`
  3455  
  3456  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3457  }
  3458  
  3459  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3460  func (s *InputService16TestShapeInputService16TestCaseOperation3Input) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeInputService16TestCaseOperation3Input {
  3461  	s.RecursiveStruct = v
  3462  	return s
  3463  }
  3464  
  3465  type InputService16TestShapeInputService16TestCaseOperation3Output struct {
  3466  	_ struct{} `type:"structure" nopayload:"true"`
  3467  }
  3468  
  3469  type InputService16TestShapeInputService16TestCaseOperation4Input struct {
  3470  	_ struct{} `type:"structure"`
  3471  
  3472  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3473  }
  3474  
  3475  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3476  func (s *InputService16TestShapeInputService16TestCaseOperation4Input) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeInputService16TestCaseOperation4Input {
  3477  	s.RecursiveStruct = v
  3478  	return s
  3479  }
  3480  
  3481  type InputService16TestShapeInputService16TestCaseOperation4Output struct {
  3482  	_ struct{} `type:"structure" nopayload:"true"`
  3483  }
  3484  
  3485  type InputService16TestShapeInputService16TestCaseOperation5Input struct {
  3486  	_ struct{} `type:"structure"`
  3487  
  3488  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3489  }
  3490  
  3491  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3492  func (s *InputService16TestShapeInputService16TestCaseOperation5Input) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeInputService16TestCaseOperation5Input {
  3493  	s.RecursiveStruct = v
  3494  	return s
  3495  }
  3496  
  3497  type InputService16TestShapeInputService16TestCaseOperation5Output struct {
  3498  	_ struct{} `type:"structure" nopayload:"true"`
  3499  }
  3500  
  3501  type InputService16TestShapeInputService16TestCaseOperation6Input struct {
  3502  	_ struct{} `type:"structure"`
  3503  
  3504  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3505  }
  3506  
  3507  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3508  func (s *InputService16TestShapeInputService16TestCaseOperation6Input) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeInputService16TestCaseOperation6Input {
  3509  	s.RecursiveStruct = v
  3510  	return s
  3511  }
  3512  
  3513  type InputService16TestShapeInputService16TestCaseOperation6Output struct {
  3514  	_ struct{} `type:"structure" nopayload:"true"`
  3515  }
  3516  
  3517  type InputService16TestShapeRecursiveStructType struct {
  3518  	_ struct{} `type:"structure"`
  3519  
  3520  	NoRecurse *string `type:"string"`
  3521  
  3522  	RecursiveList []*InputService16TestShapeRecursiveStructType `type:"list"`
  3523  
  3524  	RecursiveMap map[string]*InputService16TestShapeRecursiveStructType `type:"map"`
  3525  
  3526  	RecursiveStruct *InputService16TestShapeRecursiveStructType `type:"structure"`
  3527  }
  3528  
  3529  // SetNoRecurse sets the NoRecurse field's value.
  3530  func (s *InputService16TestShapeRecursiveStructType) SetNoRecurse(v string) *InputService16TestShapeRecursiveStructType {
  3531  	s.NoRecurse = &v
  3532  	return s
  3533  }
  3534  
  3535  // SetRecursiveList sets the RecursiveList field's value.
  3536  func (s *InputService16TestShapeRecursiveStructType) SetRecursiveList(v []*InputService16TestShapeRecursiveStructType) *InputService16TestShapeRecursiveStructType {
  3537  	s.RecursiveList = v
  3538  	return s
  3539  }
  3540  
  3541  // SetRecursiveMap sets the RecursiveMap field's value.
  3542  func (s *InputService16TestShapeRecursiveStructType) SetRecursiveMap(v map[string]*InputService16TestShapeRecursiveStructType) *InputService16TestShapeRecursiveStructType {
  3543  	s.RecursiveMap = v
  3544  	return s
  3545  }
  3546  
  3547  // SetRecursiveStruct sets the RecursiveStruct field's value.
  3548  func (s *InputService16TestShapeRecursiveStructType) SetRecursiveStruct(v *InputService16TestShapeRecursiveStructType) *InputService16TestShapeRecursiveStructType {
  3549  	s.RecursiveStruct = v
  3550  	return s
  3551  }
  3552  
  3553  // InputService17ProtocolTest provides the API operation methods for making requests to
  3554  // . See this package's package overview docs
  3555  // for details on the service.
  3556  //
  3557  // InputService17ProtocolTest methods are safe to use concurrently. It is not safe to
  3558  // modify mutate any of the struct's properties though.
  3559  type InputService17ProtocolTest struct {
  3560  	*client.Client
  3561  }
  3562  
  3563  // New creates a new instance of the InputService17ProtocolTest client with a session.
  3564  // If additional configuration is needed for the client instance use the optional
  3565  // aws.Config parameter to add your extra config.
  3566  //
  3567  // Example:
  3568  //     mySession := session.Must(session.NewSession())
  3569  //
  3570  //     // Create a InputService17ProtocolTest client from just a session.
  3571  //     svc := inputservice17protocoltest.New(mySession)
  3572  //
  3573  //     // Create a InputService17ProtocolTest client with additional configuration
  3574  //     svc := inputservice17protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  3575  func NewInputService17ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService17ProtocolTest {
  3576  	c := p.ClientConfig("inputservice17protocoltest", cfgs...)
  3577  	return newInputService17ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  3578  }
  3579  
  3580  // newClient creates, initializes and returns a new service client instance.
  3581  func newInputService17ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService17ProtocolTest {
  3582  	svc := &InputService17ProtocolTest{
  3583  		Client: client.New(
  3584  			cfg,
  3585  			metadata.ClientInfo{
  3586  				ServiceName:   "InputService17ProtocolTest",
  3587  				ServiceID:     "InputService17ProtocolTest",
  3588  				SigningName:   signingName,
  3589  				SigningRegion: signingRegion,
  3590  				PartitionID:   partitionID,
  3591  				Endpoint:      endpoint,
  3592  				APIVersion:    "2014-01-01",
  3593  			},
  3594  			handlers,
  3595  		),
  3596  	}
  3597  
  3598  	// Handlers
  3599  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  3600  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  3601  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  3602  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  3603  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  3604  
  3605  	return svc
  3606  }
  3607  
  3608  // newRequest creates a new request for a InputService17ProtocolTest operation and runs any
  3609  // custom request initialization.
  3610  func (c *InputService17ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  3611  	req := c.NewRequest(op, params, data)
  3612  
  3613  	return req
  3614  }
  3615  
  3616  const opInputService17TestCaseOperation1 = "OperationName"
  3617  
  3618  // InputService17TestCaseOperation1Request generates a "aws/request.Request" representing the
  3619  // client's request for the InputService17TestCaseOperation1 operation. The "output" return
  3620  // value will be populated with the request's response once the request completes
  3621  // successfully.
  3622  //
  3623  // Use "Send" method on the returned Request to send the API call to the service.
  3624  // the "output" return value is not valid until after Send returns without error.
  3625  //
  3626  // See InputService17TestCaseOperation1 for more information on using the InputService17TestCaseOperation1
  3627  // API call, and error handling.
  3628  //
  3629  // This method is useful when you want to inject custom logic or configuration
  3630  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3631  //
  3632  //
  3633  //    // Example sending a request using the InputService17TestCaseOperation1Request method.
  3634  //    req, resp := client.InputService17TestCaseOperation1Request(params)
  3635  //
  3636  //    err := req.Send()
  3637  //    if err == nil { // resp is now filled
  3638  //        fmt.Println(resp)
  3639  //    }
  3640  func (c *InputService17ProtocolTest) InputService17TestCaseOperation1Request(input *InputService17TestShapeInputService17TestCaseOperation1Input) (req *request.Request, output *InputService17TestShapeInputService17TestCaseOperation1Output) {
  3641  	op := &request.Operation{
  3642  		Name:       opInputService17TestCaseOperation1,
  3643  		HTTPMethod: "POST",
  3644  		HTTPPath:   "/path",
  3645  	}
  3646  
  3647  	if input == nil {
  3648  		input = &InputService17TestShapeInputService17TestCaseOperation1Input{}
  3649  	}
  3650  
  3651  	output = &InputService17TestShapeInputService17TestCaseOperation1Output{}
  3652  	req = c.newRequest(op, input, output)
  3653  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3654  	return
  3655  }
  3656  
  3657  // InputService17TestCaseOperation1 API operation for .
  3658  //
  3659  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3660  // with awserr.Error's Code and Message methods to get detailed information about
  3661  // the error.
  3662  //
  3663  // See the AWS API reference guide for 's
  3664  // API operation InputService17TestCaseOperation1 for usage and error information.
  3665  func (c *InputService17ProtocolTest) InputService17TestCaseOperation1(input *InputService17TestShapeInputService17TestCaseOperation1Input) (*InputService17TestShapeInputService17TestCaseOperation1Output, error) {
  3666  	req, out := c.InputService17TestCaseOperation1Request(input)
  3667  	return out, req.Send()
  3668  }
  3669  
  3670  // InputService17TestCaseOperation1WithContext is the same as InputService17TestCaseOperation1 with the addition of
  3671  // the ability to pass a context and additional request options.
  3672  //
  3673  // See InputService17TestCaseOperation1 for details on how to use this API operation.
  3674  //
  3675  // The context must be non-nil and will be used for request cancellation. If
  3676  // the context is nil a panic will occur. In the future the SDK may create
  3677  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3678  // for more information on using Contexts.
  3679  func (c *InputService17ProtocolTest) InputService17TestCaseOperation1WithContext(ctx aws.Context, input *InputService17TestShapeInputService17TestCaseOperation1Input, opts ...request.Option) (*InputService17TestShapeInputService17TestCaseOperation1Output, error) {
  3680  	req, out := c.InputService17TestCaseOperation1Request(input)
  3681  	req.SetContext(ctx)
  3682  	req.ApplyOptions(opts...)
  3683  	return out, req.Send()
  3684  }
  3685  
  3686  type InputService17TestShapeInputService17TestCaseOperation1Input struct {
  3687  	_ struct{} `type:"structure"`
  3688  
  3689  	TimeArg *time.Time `type:"timestamp"`
  3690  
  3691  	TimeArgInHeader *time.Time `location:"header" locationName:"x-amz-timearg" type:"timestamp"`
  3692  
  3693  	TimeArgInQuery *time.Time `location:"querystring" locationName:"TimeQuery" type:"timestamp"`
  3694  
  3695  	TimeCustom *time.Time `type:"timestamp" timestampFormat:"iso8601"`
  3696  
  3697  	TimeCustomInHeader *time.Time `location:"header" locationName:"x-amz-timecustom-header" type:"timestamp" timestampFormat:"unixTimestamp"`
  3698  
  3699  	TimeCustomInQuery *time.Time `location:"querystring" locationName:"TimeCustomQuery" type:"timestamp" timestampFormat:"unixTimestamp"`
  3700  
  3701  	TimeFormat *time.Time `type:"timestamp" timestampFormat:"rfc822"`
  3702  
  3703  	TimeFormatInHeader *time.Time `location:"header" locationName:"x-amz-timeformat-header" type:"timestamp" timestampFormat:"unixTimestamp"`
  3704  
  3705  	TimeFormatInQuery *time.Time `location:"querystring" locationName:"TimeFormatQuery" type:"timestamp" timestampFormat:"unixTimestamp"`
  3706  }
  3707  
  3708  // SetTimeArg sets the TimeArg field's value.
  3709  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeArg(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3710  	s.TimeArg = &v
  3711  	return s
  3712  }
  3713  
  3714  // SetTimeArgInHeader sets the TimeArgInHeader field's value.
  3715  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeArgInHeader(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3716  	s.TimeArgInHeader = &v
  3717  	return s
  3718  }
  3719  
  3720  // SetTimeArgInQuery sets the TimeArgInQuery field's value.
  3721  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeArgInQuery(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3722  	s.TimeArgInQuery = &v
  3723  	return s
  3724  }
  3725  
  3726  // SetTimeCustom sets the TimeCustom field's value.
  3727  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeCustom(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3728  	s.TimeCustom = &v
  3729  	return s
  3730  }
  3731  
  3732  // SetTimeCustomInHeader sets the TimeCustomInHeader field's value.
  3733  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeCustomInHeader(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3734  	s.TimeCustomInHeader = &v
  3735  	return s
  3736  }
  3737  
  3738  // SetTimeCustomInQuery sets the TimeCustomInQuery field's value.
  3739  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeCustomInQuery(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3740  	s.TimeCustomInQuery = &v
  3741  	return s
  3742  }
  3743  
  3744  // SetTimeFormat sets the TimeFormat field's value.
  3745  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeFormat(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3746  	s.TimeFormat = &v
  3747  	return s
  3748  }
  3749  
  3750  // SetTimeFormatInHeader sets the TimeFormatInHeader field's value.
  3751  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeFormatInHeader(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3752  	s.TimeFormatInHeader = &v
  3753  	return s
  3754  }
  3755  
  3756  // SetTimeFormatInQuery sets the TimeFormatInQuery field's value.
  3757  func (s *InputService17TestShapeInputService17TestCaseOperation1Input) SetTimeFormatInQuery(v time.Time) *InputService17TestShapeInputService17TestCaseOperation1Input {
  3758  	s.TimeFormatInQuery = &v
  3759  	return s
  3760  }
  3761  
  3762  type InputService17TestShapeInputService17TestCaseOperation1Output struct {
  3763  	_ struct{} `type:"structure" nopayload:"true"`
  3764  }
  3765  
  3766  // InputService18ProtocolTest provides the API operation methods for making requests to
  3767  // . See this package's package overview docs
  3768  // for details on the service.
  3769  //
  3770  // InputService18ProtocolTest methods are safe to use concurrently. It is not safe to
  3771  // modify mutate any of the struct's properties though.
  3772  type InputService18ProtocolTest struct {
  3773  	*client.Client
  3774  }
  3775  
  3776  // New creates a new instance of the InputService18ProtocolTest client with a session.
  3777  // If additional configuration is needed for the client instance use the optional
  3778  // aws.Config parameter to add your extra config.
  3779  //
  3780  // Example:
  3781  //     mySession := session.Must(session.NewSession())
  3782  //
  3783  //     // Create a InputService18ProtocolTest client from just a session.
  3784  //     svc := inputservice18protocoltest.New(mySession)
  3785  //
  3786  //     // Create a InputService18ProtocolTest client with additional configuration
  3787  //     svc := inputservice18protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  3788  func NewInputService18ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService18ProtocolTest {
  3789  	c := p.ClientConfig("inputservice18protocoltest", cfgs...)
  3790  	return newInputService18ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  3791  }
  3792  
  3793  // newClient creates, initializes and returns a new service client instance.
  3794  func newInputService18ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService18ProtocolTest {
  3795  	svc := &InputService18ProtocolTest{
  3796  		Client: client.New(
  3797  			cfg,
  3798  			metadata.ClientInfo{
  3799  				ServiceName:   "InputService18ProtocolTest",
  3800  				ServiceID:     "InputService18ProtocolTest",
  3801  				SigningName:   signingName,
  3802  				SigningRegion: signingRegion,
  3803  				PartitionID:   partitionID,
  3804  				Endpoint:      endpoint,
  3805  				APIVersion:    "2014-01-01",
  3806  			},
  3807  			handlers,
  3808  		),
  3809  	}
  3810  
  3811  	// Handlers
  3812  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  3813  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  3814  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  3815  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  3816  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  3817  
  3818  	return svc
  3819  }
  3820  
  3821  // newRequest creates a new request for a InputService18ProtocolTest operation and runs any
  3822  // custom request initialization.
  3823  func (c *InputService18ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  3824  	req := c.NewRequest(op, params, data)
  3825  
  3826  	return req
  3827  }
  3828  
  3829  const opInputService18TestCaseOperation1 = "OperationName"
  3830  
  3831  // InputService18TestCaseOperation1Request generates a "aws/request.Request" representing the
  3832  // client's request for the InputService18TestCaseOperation1 operation. The "output" return
  3833  // value will be populated with the request's response once the request completes
  3834  // successfully.
  3835  //
  3836  // Use "Send" method on the returned Request to send the API call to the service.
  3837  // the "output" return value is not valid until after Send returns without error.
  3838  //
  3839  // See InputService18TestCaseOperation1 for more information on using the InputService18TestCaseOperation1
  3840  // API call, and error handling.
  3841  //
  3842  // This method is useful when you want to inject custom logic or configuration
  3843  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3844  //
  3845  //
  3846  //    // Example sending a request using the InputService18TestCaseOperation1Request method.
  3847  //    req, resp := client.InputService18TestCaseOperation1Request(params)
  3848  //
  3849  //    err := req.Send()
  3850  //    if err == nil { // resp is now filled
  3851  //        fmt.Println(resp)
  3852  //    }
  3853  func (c *InputService18ProtocolTest) InputService18TestCaseOperation1Request(input *InputService18TestShapeInputService18TestCaseOperation1Input) (req *request.Request, output *InputService18TestShapeInputService18TestCaseOperation1Output) {
  3854  	op := &request.Operation{
  3855  		Name:       opInputService18TestCaseOperation1,
  3856  		HTTPMethod: "POST",
  3857  		HTTPPath:   "/path",
  3858  	}
  3859  
  3860  	if input == nil {
  3861  		input = &InputService18TestShapeInputService18TestCaseOperation1Input{}
  3862  	}
  3863  
  3864  	output = &InputService18TestShapeInputService18TestCaseOperation1Output{}
  3865  	req = c.newRequest(op, input, output)
  3866  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3867  	return
  3868  }
  3869  
  3870  // InputService18TestCaseOperation1 API operation for .
  3871  //
  3872  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3873  // with awserr.Error's Code and Message methods to get detailed information about
  3874  // the error.
  3875  //
  3876  // See the AWS API reference guide for 's
  3877  // API operation InputService18TestCaseOperation1 for usage and error information.
  3878  func (c *InputService18ProtocolTest) InputService18TestCaseOperation1(input *InputService18TestShapeInputService18TestCaseOperation1Input) (*InputService18TestShapeInputService18TestCaseOperation1Output, error) {
  3879  	req, out := c.InputService18TestCaseOperation1Request(input)
  3880  	return out, req.Send()
  3881  }
  3882  
  3883  // InputService18TestCaseOperation1WithContext is the same as InputService18TestCaseOperation1 with the addition of
  3884  // the ability to pass a context and additional request options.
  3885  //
  3886  // See InputService18TestCaseOperation1 for details on how to use this API operation.
  3887  //
  3888  // The context must be non-nil and will be used for request cancellation. If
  3889  // the context is nil a panic will occur. In the future the SDK may create
  3890  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3891  // for more information on using Contexts.
  3892  func (c *InputService18ProtocolTest) InputService18TestCaseOperation1WithContext(ctx aws.Context, input *InputService18TestShapeInputService18TestCaseOperation1Input, opts ...request.Option) (*InputService18TestShapeInputService18TestCaseOperation1Output, error) {
  3893  	req, out := c.InputService18TestCaseOperation1Request(input)
  3894  	req.SetContext(ctx)
  3895  	req.ApplyOptions(opts...)
  3896  	return out, req.Send()
  3897  }
  3898  
  3899  type InputService18TestShapeInputService18TestCaseOperation1Input struct {
  3900  	_ struct{} `type:"structure"`
  3901  
  3902  	TimeArg *time.Time `locationName:"timestamp_location" type:"timestamp"`
  3903  }
  3904  
  3905  // SetTimeArg sets the TimeArg field's value.
  3906  func (s *InputService18TestShapeInputService18TestCaseOperation1Input) SetTimeArg(v time.Time) *InputService18TestShapeInputService18TestCaseOperation1Input {
  3907  	s.TimeArg = &v
  3908  	return s
  3909  }
  3910  
  3911  type InputService18TestShapeInputService18TestCaseOperation1Output struct {
  3912  	_ struct{} `type:"structure" nopayload:"true"`
  3913  }
  3914  
  3915  // InputService19ProtocolTest provides the API operation methods for making requests to
  3916  // . See this package's package overview docs
  3917  // for details on the service.
  3918  //
  3919  // InputService19ProtocolTest methods are safe to use concurrently. It is not safe to
  3920  // modify mutate any of the struct's properties though.
  3921  type InputService19ProtocolTest struct {
  3922  	*client.Client
  3923  }
  3924  
  3925  // New creates a new instance of the InputService19ProtocolTest client with a session.
  3926  // If additional configuration is needed for the client instance use the optional
  3927  // aws.Config parameter to add your extra config.
  3928  //
  3929  // Example:
  3930  //     mySession := session.Must(session.NewSession())
  3931  //
  3932  //     // Create a InputService19ProtocolTest client from just a session.
  3933  //     svc := inputservice19protocoltest.New(mySession)
  3934  //
  3935  //     // Create a InputService19ProtocolTest client with additional configuration
  3936  //     svc := inputservice19protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  3937  func NewInputService19ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService19ProtocolTest {
  3938  	c := p.ClientConfig("inputservice19protocoltest", cfgs...)
  3939  	return newInputService19ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  3940  }
  3941  
  3942  // newClient creates, initializes and returns a new service client instance.
  3943  func newInputService19ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService19ProtocolTest {
  3944  	svc := &InputService19ProtocolTest{
  3945  		Client: client.New(
  3946  			cfg,
  3947  			metadata.ClientInfo{
  3948  				ServiceName:   "InputService19ProtocolTest",
  3949  				ServiceID:     "InputService19ProtocolTest",
  3950  				SigningName:   signingName,
  3951  				SigningRegion: signingRegion,
  3952  				PartitionID:   partitionID,
  3953  				Endpoint:      endpoint,
  3954  				APIVersion:    "2014-01-01",
  3955  			},
  3956  			handlers,
  3957  		),
  3958  	}
  3959  
  3960  	// Handlers
  3961  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  3962  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  3963  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  3964  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  3965  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  3966  
  3967  	return svc
  3968  }
  3969  
  3970  // newRequest creates a new request for a InputService19ProtocolTest operation and runs any
  3971  // custom request initialization.
  3972  func (c *InputService19ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  3973  	req := c.NewRequest(op, params, data)
  3974  
  3975  	return req
  3976  }
  3977  
  3978  const opInputService19TestCaseOperation1 = "OperationName"
  3979  
  3980  // InputService19TestCaseOperation1Request generates a "aws/request.Request" representing the
  3981  // client's request for the InputService19TestCaseOperation1 operation. The "output" return
  3982  // value will be populated with the request's response once the request completes
  3983  // successfully.
  3984  //
  3985  // Use "Send" method on the returned Request to send the API call to the service.
  3986  // the "output" return value is not valid until after Send returns without error.
  3987  //
  3988  // See InputService19TestCaseOperation1 for more information on using the InputService19TestCaseOperation1
  3989  // API call, and error handling.
  3990  //
  3991  // This method is useful when you want to inject custom logic or configuration
  3992  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3993  //
  3994  //
  3995  //    // Example sending a request using the InputService19TestCaseOperation1Request method.
  3996  //    req, resp := client.InputService19TestCaseOperation1Request(params)
  3997  //
  3998  //    err := req.Send()
  3999  //    if err == nil { // resp is now filled
  4000  //        fmt.Println(resp)
  4001  //    }
  4002  func (c *InputService19ProtocolTest) InputService19TestCaseOperation1Request(input *InputService19TestShapeInputService19TestCaseOperation1Input) (req *request.Request, output *InputService19TestShapeInputService19TestCaseOperation1Output) {
  4003  	op := &request.Operation{
  4004  		Name:       opInputService19TestCaseOperation1,
  4005  		HTTPMethod: "POST",
  4006  		HTTPPath:   "/",
  4007  	}
  4008  
  4009  	if input == nil {
  4010  		input = &InputService19TestShapeInputService19TestCaseOperation1Input{}
  4011  	}
  4012  
  4013  	output = &InputService19TestShapeInputService19TestCaseOperation1Output{}
  4014  	req = c.newRequest(op, input, output)
  4015  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4016  	return
  4017  }
  4018  
  4019  // InputService19TestCaseOperation1 API operation for .
  4020  //
  4021  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4022  // with awserr.Error's Code and Message methods to get detailed information about
  4023  // the error.
  4024  //
  4025  // See the AWS API reference guide for 's
  4026  // API operation InputService19TestCaseOperation1 for usage and error information.
  4027  func (c *InputService19ProtocolTest) InputService19TestCaseOperation1(input *InputService19TestShapeInputService19TestCaseOperation1Input) (*InputService19TestShapeInputService19TestCaseOperation1Output, error) {
  4028  	req, out := c.InputService19TestCaseOperation1Request(input)
  4029  	return out, req.Send()
  4030  }
  4031  
  4032  // InputService19TestCaseOperation1WithContext is the same as InputService19TestCaseOperation1 with the addition of
  4033  // the ability to pass a context and additional request options.
  4034  //
  4035  // See InputService19TestCaseOperation1 for details on how to use this API operation.
  4036  //
  4037  // The context must be non-nil and will be used for request cancellation. If
  4038  // the context is nil a panic will occur. In the future the SDK may create
  4039  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4040  // for more information on using Contexts.
  4041  func (c *InputService19ProtocolTest) InputService19TestCaseOperation1WithContext(ctx aws.Context, input *InputService19TestShapeInputService19TestCaseOperation1Input, opts ...request.Option) (*InputService19TestShapeInputService19TestCaseOperation1Output, error) {
  4042  	req, out := c.InputService19TestCaseOperation1Request(input)
  4043  	req.SetContext(ctx)
  4044  	req.ApplyOptions(opts...)
  4045  	return out, req.Send()
  4046  }
  4047  
  4048  type InputService19TestShapeInputService19TestCaseOperation1Input struct {
  4049  	_ struct{} `type:"structure" payload:"Foo"`
  4050  
  4051  	Foo *string `locationName:"foo" type:"string"`
  4052  }
  4053  
  4054  // SetFoo sets the Foo field's value.
  4055  func (s *InputService19TestShapeInputService19TestCaseOperation1Input) SetFoo(v string) *InputService19TestShapeInputService19TestCaseOperation1Input {
  4056  	s.Foo = &v
  4057  	return s
  4058  }
  4059  
  4060  type InputService19TestShapeInputService19TestCaseOperation1Output struct {
  4061  	_ struct{} `type:"structure" nopayload:"true"`
  4062  }
  4063  
  4064  // InputService20ProtocolTest provides the API operation methods for making requests to
  4065  // . See this package's package overview docs
  4066  // for details on the service.
  4067  //
  4068  // InputService20ProtocolTest methods are safe to use concurrently. It is not safe to
  4069  // modify mutate any of the struct's properties though.
  4070  type InputService20ProtocolTest struct {
  4071  	*client.Client
  4072  }
  4073  
  4074  // New creates a new instance of the InputService20ProtocolTest client with a session.
  4075  // If additional configuration is needed for the client instance use the optional
  4076  // aws.Config parameter to add your extra config.
  4077  //
  4078  // Example:
  4079  //     mySession := session.Must(session.NewSession())
  4080  //
  4081  //     // Create a InputService20ProtocolTest client from just a session.
  4082  //     svc := inputservice20protocoltest.New(mySession)
  4083  //
  4084  //     // Create a InputService20ProtocolTest client with additional configuration
  4085  //     svc := inputservice20protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  4086  func NewInputService20ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService20ProtocolTest {
  4087  	c := p.ClientConfig("inputservice20protocoltest", cfgs...)
  4088  	return newInputService20ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  4089  }
  4090  
  4091  // newClient creates, initializes and returns a new service client instance.
  4092  func newInputService20ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService20ProtocolTest {
  4093  	svc := &InputService20ProtocolTest{
  4094  		Client: client.New(
  4095  			cfg,
  4096  			metadata.ClientInfo{
  4097  				ServiceName:   "InputService20ProtocolTest",
  4098  				ServiceID:     "InputService20ProtocolTest",
  4099  				SigningName:   signingName,
  4100  				SigningRegion: signingRegion,
  4101  				PartitionID:   partitionID,
  4102  				Endpoint:      endpoint,
  4103  				APIVersion:    "2014-01-01",
  4104  			},
  4105  			handlers,
  4106  		),
  4107  	}
  4108  
  4109  	// Handlers
  4110  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  4111  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  4112  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  4113  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  4114  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  4115  
  4116  	return svc
  4117  }
  4118  
  4119  // newRequest creates a new request for a InputService20ProtocolTest operation and runs any
  4120  // custom request initialization.
  4121  func (c *InputService20ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  4122  	req := c.NewRequest(op, params, data)
  4123  
  4124  	return req
  4125  }
  4126  
  4127  const opInputService20TestCaseOperation1 = "OperationName"
  4128  
  4129  // InputService20TestCaseOperation1Request generates a "aws/request.Request" representing the
  4130  // client's request for the InputService20TestCaseOperation1 operation. The "output" return
  4131  // value will be populated with the request's response once the request completes
  4132  // successfully.
  4133  //
  4134  // Use "Send" method on the returned Request to send the API call to the service.
  4135  // the "output" return value is not valid until after Send returns without error.
  4136  //
  4137  // See InputService20TestCaseOperation1 for more information on using the InputService20TestCaseOperation1
  4138  // API call, and error handling.
  4139  //
  4140  // This method is useful when you want to inject custom logic or configuration
  4141  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4142  //
  4143  //
  4144  //    // Example sending a request using the InputService20TestCaseOperation1Request method.
  4145  //    req, resp := client.InputService20TestCaseOperation1Request(params)
  4146  //
  4147  //    err := req.Send()
  4148  //    if err == nil { // resp is now filled
  4149  //        fmt.Println(resp)
  4150  //    }
  4151  func (c *InputService20ProtocolTest) InputService20TestCaseOperation1Request(input *InputService20TestShapeInputService20TestCaseOperation1Input) (req *request.Request, output *InputService20TestShapeInputService20TestCaseOperation1Output) {
  4152  	op := &request.Operation{
  4153  		Name:       opInputService20TestCaseOperation1,
  4154  		HTTPMethod: "POST",
  4155  		HTTPPath:   "/path",
  4156  	}
  4157  
  4158  	if input == nil {
  4159  		input = &InputService20TestShapeInputService20TestCaseOperation1Input{}
  4160  	}
  4161  
  4162  	output = &InputService20TestShapeInputService20TestCaseOperation1Output{}
  4163  	req = c.newRequest(op, input, output)
  4164  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4165  	return
  4166  }
  4167  
  4168  // InputService20TestCaseOperation1 API operation for .
  4169  //
  4170  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4171  // with awserr.Error's Code and Message methods to get detailed information about
  4172  // the error.
  4173  //
  4174  // See the AWS API reference guide for 's
  4175  // API operation InputService20TestCaseOperation1 for usage and error information.
  4176  func (c *InputService20ProtocolTest) InputService20TestCaseOperation1(input *InputService20TestShapeInputService20TestCaseOperation1Input) (*InputService20TestShapeInputService20TestCaseOperation1Output, error) {
  4177  	req, out := c.InputService20TestCaseOperation1Request(input)
  4178  	return out, req.Send()
  4179  }
  4180  
  4181  // InputService20TestCaseOperation1WithContext is the same as InputService20TestCaseOperation1 with the addition of
  4182  // the ability to pass a context and additional request options.
  4183  //
  4184  // See InputService20TestCaseOperation1 for details on how to use this API operation.
  4185  //
  4186  // The context must be non-nil and will be used for request cancellation. If
  4187  // the context is nil a panic will occur. In the future the SDK may create
  4188  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4189  // for more information on using Contexts.
  4190  func (c *InputService20ProtocolTest) InputService20TestCaseOperation1WithContext(ctx aws.Context, input *InputService20TestShapeInputService20TestCaseOperation1Input, opts ...request.Option) (*InputService20TestShapeInputService20TestCaseOperation1Output, error) {
  4191  	req, out := c.InputService20TestCaseOperation1Request(input)
  4192  	req.SetContext(ctx)
  4193  	req.ApplyOptions(opts...)
  4194  	return out, req.Send()
  4195  }
  4196  
  4197  const opInputService20TestCaseOperation2 = "OperationName"
  4198  
  4199  // InputService20TestCaseOperation2Request generates a "aws/request.Request" representing the
  4200  // client's request for the InputService20TestCaseOperation2 operation. The "output" return
  4201  // value will be populated with the request's response once the request completes
  4202  // successfully.
  4203  //
  4204  // Use "Send" method on the returned Request to send the API call to the service.
  4205  // the "output" return value is not valid until after Send returns without error.
  4206  //
  4207  // See InputService20TestCaseOperation2 for more information on using the InputService20TestCaseOperation2
  4208  // API call, and error handling.
  4209  //
  4210  // This method is useful when you want to inject custom logic or configuration
  4211  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4212  //
  4213  //
  4214  //    // Example sending a request using the InputService20TestCaseOperation2Request method.
  4215  //    req, resp := client.InputService20TestCaseOperation2Request(params)
  4216  //
  4217  //    err := req.Send()
  4218  //    if err == nil { // resp is now filled
  4219  //        fmt.Println(resp)
  4220  //    }
  4221  func (c *InputService20ProtocolTest) InputService20TestCaseOperation2Request(input *InputService20TestShapeInputService20TestCaseOperation2Input) (req *request.Request, output *InputService20TestShapeInputService20TestCaseOperation2Output) {
  4222  	op := &request.Operation{
  4223  		Name:       opInputService20TestCaseOperation2,
  4224  		HTTPMethod: "POST",
  4225  		HTTPPath:   "/path",
  4226  	}
  4227  
  4228  	if input == nil {
  4229  		input = &InputService20TestShapeInputService20TestCaseOperation2Input{}
  4230  	}
  4231  
  4232  	output = &InputService20TestShapeInputService20TestCaseOperation2Output{}
  4233  	req = c.newRequest(op, input, output)
  4234  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4235  	return
  4236  }
  4237  
  4238  // InputService20TestCaseOperation2 API operation for .
  4239  //
  4240  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4241  // with awserr.Error's Code and Message methods to get detailed information about
  4242  // the error.
  4243  //
  4244  // See the AWS API reference guide for 's
  4245  // API operation InputService20TestCaseOperation2 for usage and error information.
  4246  func (c *InputService20ProtocolTest) InputService20TestCaseOperation2(input *InputService20TestShapeInputService20TestCaseOperation2Input) (*InputService20TestShapeInputService20TestCaseOperation2Output, error) {
  4247  	req, out := c.InputService20TestCaseOperation2Request(input)
  4248  	return out, req.Send()
  4249  }
  4250  
  4251  // InputService20TestCaseOperation2WithContext is the same as InputService20TestCaseOperation2 with the addition of
  4252  // the ability to pass a context and additional request options.
  4253  //
  4254  // See InputService20TestCaseOperation2 for details on how to use this API operation.
  4255  //
  4256  // The context must be non-nil and will be used for request cancellation. If
  4257  // the context is nil a panic will occur. In the future the SDK may create
  4258  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4259  // for more information on using Contexts.
  4260  func (c *InputService20ProtocolTest) InputService20TestCaseOperation2WithContext(ctx aws.Context, input *InputService20TestShapeInputService20TestCaseOperation2Input, opts ...request.Option) (*InputService20TestShapeInputService20TestCaseOperation2Output, error) {
  4261  	req, out := c.InputService20TestCaseOperation2Request(input)
  4262  	req.SetContext(ctx)
  4263  	req.ApplyOptions(opts...)
  4264  	return out, req.Send()
  4265  }
  4266  
  4267  type InputService20TestShapeInputService20TestCaseOperation1Input struct {
  4268  	_ struct{} `type:"structure"`
  4269  
  4270  	Token *string `type:"string" idempotencyToken:"true"`
  4271  }
  4272  
  4273  // SetToken sets the Token field's value.
  4274  func (s *InputService20TestShapeInputService20TestCaseOperation1Input) SetToken(v string) *InputService20TestShapeInputService20TestCaseOperation1Input {
  4275  	s.Token = &v
  4276  	return s
  4277  }
  4278  
  4279  type InputService20TestShapeInputService20TestCaseOperation1Output struct {
  4280  	_ struct{} `type:"structure" nopayload:"true"`
  4281  }
  4282  
  4283  type InputService20TestShapeInputService20TestCaseOperation2Input struct {
  4284  	_ struct{} `type:"structure"`
  4285  
  4286  	Token *string `type:"string" idempotencyToken:"true"`
  4287  }
  4288  
  4289  // SetToken sets the Token field's value.
  4290  func (s *InputService20TestShapeInputService20TestCaseOperation2Input) SetToken(v string) *InputService20TestShapeInputService20TestCaseOperation2Input {
  4291  	s.Token = &v
  4292  	return s
  4293  }
  4294  
  4295  type InputService20TestShapeInputService20TestCaseOperation2Output struct {
  4296  	_ struct{} `type:"structure" nopayload:"true"`
  4297  }
  4298  
  4299  // InputService21ProtocolTest provides the API operation methods for making requests to
  4300  // . See this package's package overview docs
  4301  // for details on the service.
  4302  //
  4303  // InputService21ProtocolTest methods are safe to use concurrently. It is not safe to
  4304  // modify mutate any of the struct's properties though.
  4305  type InputService21ProtocolTest struct {
  4306  	*client.Client
  4307  }
  4308  
  4309  // New creates a new instance of the InputService21ProtocolTest client with a session.
  4310  // If additional configuration is needed for the client instance use the optional
  4311  // aws.Config parameter to add your extra config.
  4312  //
  4313  // Example:
  4314  //     mySession := session.Must(session.NewSession())
  4315  //
  4316  //     // Create a InputService21ProtocolTest client from just a session.
  4317  //     svc := inputservice21protocoltest.New(mySession)
  4318  //
  4319  //     // Create a InputService21ProtocolTest client with additional configuration
  4320  //     svc := inputservice21protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  4321  func NewInputService21ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService21ProtocolTest {
  4322  	c := p.ClientConfig("inputservice21protocoltest", cfgs...)
  4323  	return newInputService21ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  4324  }
  4325  
  4326  // newClient creates, initializes and returns a new service client instance.
  4327  func newInputService21ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService21ProtocolTest {
  4328  	svc := &InputService21ProtocolTest{
  4329  		Client: client.New(
  4330  			cfg,
  4331  			metadata.ClientInfo{
  4332  				ServiceName:   "InputService21ProtocolTest",
  4333  				ServiceID:     "InputService21ProtocolTest",
  4334  				SigningName:   signingName,
  4335  				SigningRegion: signingRegion,
  4336  				PartitionID:   partitionID,
  4337  				Endpoint:      endpoint,
  4338  				APIVersion:    "2014-01-01",
  4339  			},
  4340  			handlers,
  4341  		),
  4342  	}
  4343  
  4344  	// Handlers
  4345  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  4346  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  4347  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  4348  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  4349  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  4350  
  4351  	return svc
  4352  }
  4353  
  4354  // newRequest creates a new request for a InputService21ProtocolTest operation and runs any
  4355  // custom request initialization.
  4356  func (c *InputService21ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  4357  	req := c.NewRequest(op, params, data)
  4358  
  4359  	return req
  4360  }
  4361  
  4362  const opInputService21TestCaseOperation1 = "OperationName"
  4363  
  4364  // InputService21TestCaseOperation1Request generates a "aws/request.Request" representing the
  4365  // client's request for the InputService21TestCaseOperation1 operation. The "output" return
  4366  // value will be populated with the request's response once the request completes
  4367  // successfully.
  4368  //
  4369  // Use "Send" method on the returned Request to send the API call to the service.
  4370  // the "output" return value is not valid until after Send returns without error.
  4371  //
  4372  // See InputService21TestCaseOperation1 for more information on using the InputService21TestCaseOperation1
  4373  // API call, and error handling.
  4374  //
  4375  // This method is useful when you want to inject custom logic or configuration
  4376  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4377  //
  4378  //
  4379  //    // Example sending a request using the InputService21TestCaseOperation1Request method.
  4380  //    req, resp := client.InputService21TestCaseOperation1Request(params)
  4381  //
  4382  //    err := req.Send()
  4383  //    if err == nil { // resp is now filled
  4384  //        fmt.Println(resp)
  4385  //    }
  4386  func (c *InputService21ProtocolTest) InputService21TestCaseOperation1Request(input *InputService21TestShapeInputService21TestCaseOperation1Input) (req *request.Request, output *InputService21TestShapeInputService21TestCaseOperation1Output) {
  4387  	op := &request.Operation{
  4388  		Name:       opInputService21TestCaseOperation1,
  4389  		HTTPMethod: "POST",
  4390  		HTTPPath:   "/",
  4391  	}
  4392  
  4393  	if input == nil {
  4394  		input = &InputService21TestShapeInputService21TestCaseOperation1Input{}
  4395  	}
  4396  
  4397  	output = &InputService21TestShapeInputService21TestCaseOperation1Output{}
  4398  	req = c.newRequest(op, input, output)
  4399  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4400  	return
  4401  }
  4402  
  4403  // InputService21TestCaseOperation1 API operation for .
  4404  //
  4405  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4406  // with awserr.Error's Code and Message methods to get detailed information about
  4407  // the error.
  4408  //
  4409  // See the AWS API reference guide for 's
  4410  // API operation InputService21TestCaseOperation1 for usage and error information.
  4411  func (c *InputService21ProtocolTest) InputService21TestCaseOperation1(input *InputService21TestShapeInputService21TestCaseOperation1Input) (*InputService21TestShapeInputService21TestCaseOperation1Output, error) {
  4412  	req, out := c.InputService21TestCaseOperation1Request(input)
  4413  	return out, req.Send()
  4414  }
  4415  
  4416  // InputService21TestCaseOperation1WithContext is the same as InputService21TestCaseOperation1 with the addition of
  4417  // the ability to pass a context and additional request options.
  4418  //
  4419  // See InputService21TestCaseOperation1 for details on how to use this API operation.
  4420  //
  4421  // The context must be non-nil and will be used for request cancellation. If
  4422  // the context is nil a panic will occur. In the future the SDK may create
  4423  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4424  // for more information on using Contexts.
  4425  func (c *InputService21ProtocolTest) InputService21TestCaseOperation1WithContext(ctx aws.Context, input *InputService21TestShapeInputService21TestCaseOperation1Input, opts ...request.Option) (*InputService21TestShapeInputService21TestCaseOperation1Output, error) {
  4426  	req, out := c.InputService21TestCaseOperation1Request(input)
  4427  	req.SetContext(ctx)
  4428  	req.ApplyOptions(opts...)
  4429  	return out, req.Send()
  4430  }
  4431  
  4432  const opInputService21TestCaseOperation2 = "OperationName"
  4433  
  4434  // InputService21TestCaseOperation2Request generates a "aws/request.Request" representing the
  4435  // client's request for the InputService21TestCaseOperation2 operation. The "output" return
  4436  // value will be populated with the request's response once the request completes
  4437  // successfully.
  4438  //
  4439  // Use "Send" method on the returned Request to send the API call to the service.
  4440  // the "output" return value is not valid until after Send returns without error.
  4441  //
  4442  // See InputService21TestCaseOperation2 for more information on using the InputService21TestCaseOperation2
  4443  // API call, and error handling.
  4444  //
  4445  // This method is useful when you want to inject custom logic or configuration
  4446  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4447  //
  4448  //
  4449  //    // Example sending a request using the InputService21TestCaseOperation2Request method.
  4450  //    req, resp := client.InputService21TestCaseOperation2Request(params)
  4451  //
  4452  //    err := req.Send()
  4453  //    if err == nil { // resp is now filled
  4454  //        fmt.Println(resp)
  4455  //    }
  4456  func (c *InputService21ProtocolTest) InputService21TestCaseOperation2Request(input *InputService21TestShapeInputService21TestCaseOperation2Input) (req *request.Request, output *InputService21TestShapeInputService21TestCaseOperation2Output) {
  4457  	op := &request.Operation{
  4458  		Name:       opInputService21TestCaseOperation2,
  4459  		HTTPMethod: "POST",
  4460  		HTTPPath:   "/",
  4461  	}
  4462  
  4463  	if input == nil {
  4464  		input = &InputService21TestShapeInputService21TestCaseOperation2Input{}
  4465  	}
  4466  
  4467  	output = &InputService21TestShapeInputService21TestCaseOperation2Output{}
  4468  	req = c.newRequest(op, input, output)
  4469  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4470  	return
  4471  }
  4472  
  4473  // InputService21TestCaseOperation2 API operation for .
  4474  //
  4475  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4476  // with awserr.Error's Code and Message methods to get detailed information about
  4477  // the error.
  4478  //
  4479  // See the AWS API reference guide for 's
  4480  // API operation InputService21TestCaseOperation2 for usage and error information.
  4481  func (c *InputService21ProtocolTest) InputService21TestCaseOperation2(input *InputService21TestShapeInputService21TestCaseOperation2Input) (*InputService21TestShapeInputService21TestCaseOperation2Output, error) {
  4482  	req, out := c.InputService21TestCaseOperation2Request(input)
  4483  	return out, req.Send()
  4484  }
  4485  
  4486  // InputService21TestCaseOperation2WithContext is the same as InputService21TestCaseOperation2 with the addition of
  4487  // the ability to pass a context and additional request options.
  4488  //
  4489  // See InputService21TestCaseOperation2 for details on how to use this API operation.
  4490  //
  4491  // The context must be non-nil and will be used for request cancellation. If
  4492  // the context is nil a panic will occur. In the future the SDK may create
  4493  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4494  // for more information on using Contexts.
  4495  func (c *InputService21ProtocolTest) InputService21TestCaseOperation2WithContext(ctx aws.Context, input *InputService21TestShapeInputService21TestCaseOperation2Input, opts ...request.Option) (*InputService21TestShapeInputService21TestCaseOperation2Output, error) {
  4496  	req, out := c.InputService21TestCaseOperation2Request(input)
  4497  	req.SetContext(ctx)
  4498  	req.ApplyOptions(opts...)
  4499  	return out, req.Send()
  4500  }
  4501  
  4502  const opInputService21TestCaseOperation3 = "OperationName"
  4503  
  4504  // InputService21TestCaseOperation3Request generates a "aws/request.Request" representing the
  4505  // client's request for the InputService21TestCaseOperation3 operation. The "output" return
  4506  // value will be populated with the request's response once the request completes
  4507  // successfully.
  4508  //
  4509  // Use "Send" method on the returned Request to send the API call to the service.
  4510  // the "output" return value is not valid until after Send returns without error.
  4511  //
  4512  // See InputService21TestCaseOperation3 for more information on using the InputService21TestCaseOperation3
  4513  // API call, and error handling.
  4514  //
  4515  // This method is useful when you want to inject custom logic or configuration
  4516  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4517  //
  4518  //
  4519  //    // Example sending a request using the InputService21TestCaseOperation3Request method.
  4520  //    req, resp := client.InputService21TestCaseOperation3Request(params)
  4521  //
  4522  //    err := req.Send()
  4523  //    if err == nil { // resp is now filled
  4524  //        fmt.Println(resp)
  4525  //    }
  4526  func (c *InputService21ProtocolTest) InputService21TestCaseOperation3Request(input *InputService21TestShapeInputService21TestCaseOperation3Input) (req *request.Request, output *InputService21TestShapeInputService21TestCaseOperation3Output) {
  4527  	op := &request.Operation{
  4528  		Name:       opInputService21TestCaseOperation3,
  4529  		HTTPMethod: "POST",
  4530  		HTTPPath:   "/",
  4531  	}
  4532  
  4533  	if input == nil {
  4534  		input = &InputService21TestShapeInputService21TestCaseOperation3Input{}
  4535  	}
  4536  
  4537  	output = &InputService21TestShapeInputService21TestCaseOperation3Output{}
  4538  	req = c.newRequest(op, input, output)
  4539  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4540  	return
  4541  }
  4542  
  4543  // InputService21TestCaseOperation3 API operation for .
  4544  //
  4545  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4546  // with awserr.Error's Code and Message methods to get detailed information about
  4547  // the error.
  4548  //
  4549  // See the AWS API reference guide for 's
  4550  // API operation InputService21TestCaseOperation3 for usage and error information.
  4551  func (c *InputService21ProtocolTest) InputService21TestCaseOperation3(input *InputService21TestShapeInputService21TestCaseOperation3Input) (*InputService21TestShapeInputService21TestCaseOperation3Output, error) {
  4552  	req, out := c.InputService21TestCaseOperation3Request(input)
  4553  	return out, req.Send()
  4554  }
  4555  
  4556  // InputService21TestCaseOperation3WithContext is the same as InputService21TestCaseOperation3 with the addition of
  4557  // the ability to pass a context and additional request options.
  4558  //
  4559  // See InputService21TestCaseOperation3 for details on how to use this API operation.
  4560  //
  4561  // The context must be non-nil and will be used for request cancellation. If
  4562  // the context is nil a panic will occur. In the future the SDK may create
  4563  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4564  // for more information on using Contexts.
  4565  func (c *InputService21ProtocolTest) InputService21TestCaseOperation3WithContext(ctx aws.Context, input *InputService21TestShapeInputService21TestCaseOperation3Input, opts ...request.Option) (*InputService21TestShapeInputService21TestCaseOperation3Output, error) {
  4566  	req, out := c.InputService21TestCaseOperation3Request(input)
  4567  	req.SetContext(ctx)
  4568  	req.ApplyOptions(opts...)
  4569  	return out, req.Send()
  4570  }
  4571  
  4572  type InputService21TestShapeBodyStructure struct {
  4573  	_ struct{} `type:"structure"`
  4574  
  4575  	BodyField aws.JSONValue `type:"jsonvalue"`
  4576  
  4577  	BodyListField []aws.JSONValue `type:"list"`
  4578  }
  4579  
  4580  // SetBodyField sets the BodyField field's value.
  4581  func (s *InputService21TestShapeBodyStructure) SetBodyField(v aws.JSONValue) *InputService21TestShapeBodyStructure {
  4582  	s.BodyField = v
  4583  	return s
  4584  }
  4585  
  4586  // SetBodyListField sets the BodyListField field's value.
  4587  func (s *InputService21TestShapeBodyStructure) SetBodyListField(v []aws.JSONValue) *InputService21TestShapeBodyStructure {
  4588  	s.BodyListField = v
  4589  	return s
  4590  }
  4591  
  4592  type InputService21TestShapeInputService21TestCaseOperation1Input struct {
  4593  	_ struct{} `type:"structure" payload:"Body"`
  4594  
  4595  	Body *InputService21TestShapeBodyStructure `type:"structure"`
  4596  
  4597  	HeaderField aws.JSONValue `location:"header" locationName:"X-Amz-Foo" type:"jsonvalue"`
  4598  
  4599  	QueryField aws.JSONValue `location:"querystring" locationName:"Bar" type:"jsonvalue"`
  4600  }
  4601  
  4602  // SetBody sets the Body field's value.
  4603  func (s *InputService21TestShapeInputService21TestCaseOperation1Input) SetBody(v *InputService21TestShapeBodyStructure) *InputService21TestShapeInputService21TestCaseOperation1Input {
  4604  	s.Body = v
  4605  	return s
  4606  }
  4607  
  4608  // SetHeaderField sets the HeaderField field's value.
  4609  func (s *InputService21TestShapeInputService21TestCaseOperation1Input) SetHeaderField(v aws.JSONValue) *InputService21TestShapeInputService21TestCaseOperation1Input {
  4610  	s.HeaderField = v
  4611  	return s
  4612  }
  4613  
  4614  // SetQueryField sets the QueryField field's value.
  4615  func (s *InputService21TestShapeInputService21TestCaseOperation1Input) SetQueryField(v aws.JSONValue) *InputService21TestShapeInputService21TestCaseOperation1Input {
  4616  	s.QueryField = v
  4617  	return s
  4618  }
  4619  
  4620  type InputService21TestShapeInputService21TestCaseOperation1Output struct {
  4621  	_ struct{} `type:"structure" nopayload:"true"`
  4622  }
  4623  
  4624  type InputService21TestShapeInputService21TestCaseOperation2Input struct {
  4625  	_ struct{} `type:"structure" payload:"Body"`
  4626  
  4627  	Body *InputService21TestShapeBodyStructure `type:"structure"`
  4628  
  4629  	HeaderField aws.JSONValue `location:"header" locationName:"X-Amz-Foo" type:"jsonvalue"`
  4630  
  4631  	QueryField aws.JSONValue `location:"querystring" locationName:"Bar" type:"jsonvalue"`
  4632  }
  4633  
  4634  // SetBody sets the Body field's value.
  4635  func (s *InputService21TestShapeInputService21TestCaseOperation2Input) SetBody(v *InputService21TestShapeBodyStructure) *InputService21TestShapeInputService21TestCaseOperation2Input {
  4636  	s.Body = v
  4637  	return s
  4638  }
  4639  
  4640  // SetHeaderField sets the HeaderField field's value.
  4641  func (s *InputService21TestShapeInputService21TestCaseOperation2Input) SetHeaderField(v aws.JSONValue) *InputService21TestShapeInputService21TestCaseOperation2Input {
  4642  	s.HeaderField = v
  4643  	return s
  4644  }
  4645  
  4646  // SetQueryField sets the QueryField field's value.
  4647  func (s *InputService21TestShapeInputService21TestCaseOperation2Input) SetQueryField(v aws.JSONValue) *InputService21TestShapeInputService21TestCaseOperation2Input {
  4648  	s.QueryField = v
  4649  	return s
  4650  }
  4651  
  4652  type InputService21TestShapeInputService21TestCaseOperation2Output struct {
  4653  	_ struct{} `type:"structure" nopayload:"true"`
  4654  }
  4655  
  4656  type InputService21TestShapeInputService21TestCaseOperation3Input struct {
  4657  	_ struct{} `type:"structure" payload:"Body"`
  4658  
  4659  	Body *InputService21TestShapeBodyStructure `type:"structure"`
  4660  
  4661  	HeaderField aws.JSONValue `location:"header" locationName:"X-Amz-Foo" type:"jsonvalue"`
  4662  
  4663  	QueryField aws.JSONValue `location:"querystring" locationName:"Bar" type:"jsonvalue"`
  4664  }
  4665  
  4666  // SetBody sets the Body field's value.
  4667  func (s *InputService21TestShapeInputService21TestCaseOperation3Input) SetBody(v *InputService21TestShapeBodyStructure) *InputService21TestShapeInputService21TestCaseOperation3Input {
  4668  	s.Body = v
  4669  	return s
  4670  }
  4671  
  4672  // SetHeaderField sets the HeaderField field's value.
  4673  func (s *InputService21TestShapeInputService21TestCaseOperation3Input) SetHeaderField(v aws.JSONValue) *InputService21TestShapeInputService21TestCaseOperation3Input {
  4674  	s.HeaderField = v
  4675  	return s
  4676  }
  4677  
  4678  // SetQueryField sets the QueryField field's value.
  4679  func (s *InputService21TestShapeInputService21TestCaseOperation3Input) SetQueryField(v aws.JSONValue) *InputService21TestShapeInputService21TestCaseOperation3Input {
  4680  	s.QueryField = v
  4681  	return s
  4682  }
  4683  
  4684  type InputService21TestShapeInputService21TestCaseOperation3Output struct {
  4685  	_ struct{} `type:"structure" nopayload:"true"`
  4686  }
  4687  
  4688  // InputService22ProtocolTest provides the API operation methods for making requests to
  4689  // . See this package's package overview docs
  4690  // for details on the service.
  4691  //
  4692  // InputService22ProtocolTest methods are safe to use concurrently. It is not safe to
  4693  // modify mutate any of the struct's properties though.
  4694  type InputService22ProtocolTest struct {
  4695  	*client.Client
  4696  }
  4697  
  4698  // New creates a new instance of the InputService22ProtocolTest client with a session.
  4699  // If additional configuration is needed for the client instance use the optional
  4700  // aws.Config parameter to add your extra config.
  4701  //
  4702  // Example:
  4703  //     mySession := session.Must(session.NewSession())
  4704  //
  4705  //     // Create a InputService22ProtocolTest client from just a session.
  4706  //     svc := inputservice22protocoltest.New(mySession)
  4707  //
  4708  //     // Create a InputService22ProtocolTest client with additional configuration
  4709  //     svc := inputservice22protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  4710  func NewInputService22ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService22ProtocolTest {
  4711  	c := p.ClientConfig("inputservice22protocoltest", cfgs...)
  4712  	return newInputService22ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  4713  }
  4714  
  4715  // newClient creates, initializes and returns a new service client instance.
  4716  func newInputService22ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService22ProtocolTest {
  4717  	svc := &InputService22ProtocolTest{
  4718  		Client: client.New(
  4719  			cfg,
  4720  			metadata.ClientInfo{
  4721  				ServiceName:   "InputService22ProtocolTest",
  4722  				ServiceID:     "InputService22ProtocolTest",
  4723  				SigningName:   signingName,
  4724  				SigningRegion: signingRegion,
  4725  				PartitionID:   partitionID,
  4726  				Endpoint:      endpoint,
  4727  				APIVersion:    "2014-01-01",
  4728  			},
  4729  			handlers,
  4730  		),
  4731  	}
  4732  
  4733  	// Handlers
  4734  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  4735  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  4736  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  4737  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  4738  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  4739  
  4740  	return svc
  4741  }
  4742  
  4743  // newRequest creates a new request for a InputService22ProtocolTest operation and runs any
  4744  // custom request initialization.
  4745  func (c *InputService22ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  4746  	req := c.NewRequest(op, params, data)
  4747  
  4748  	return req
  4749  }
  4750  
  4751  const opInputService22TestCaseOperation1 = "OperationName"
  4752  
  4753  // InputService22TestCaseOperation1Request generates a "aws/request.Request" representing the
  4754  // client's request for the InputService22TestCaseOperation1 operation. The "output" return
  4755  // value will be populated with the request's response once the request completes
  4756  // successfully.
  4757  //
  4758  // Use "Send" method on the returned Request to send the API call to the service.
  4759  // the "output" return value is not valid until after Send returns without error.
  4760  //
  4761  // See InputService22TestCaseOperation1 for more information on using the InputService22TestCaseOperation1
  4762  // API call, and error handling.
  4763  //
  4764  // This method is useful when you want to inject custom logic or configuration
  4765  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4766  //
  4767  //
  4768  //    // Example sending a request using the InputService22TestCaseOperation1Request method.
  4769  //    req, resp := client.InputService22TestCaseOperation1Request(params)
  4770  //
  4771  //    err := req.Send()
  4772  //    if err == nil { // resp is now filled
  4773  //        fmt.Println(resp)
  4774  //    }
  4775  func (c *InputService22ProtocolTest) InputService22TestCaseOperation1Request(input *InputService22TestShapeInputService22TestCaseOperation1Input) (req *request.Request, output *InputService22TestShapeInputService22TestCaseOperation1Output) {
  4776  	op := &request.Operation{
  4777  		Name:       opInputService22TestCaseOperation1,
  4778  		HTTPMethod: "POST",
  4779  		HTTPPath:   "/path",
  4780  	}
  4781  
  4782  	if input == nil {
  4783  		input = &InputService22TestShapeInputService22TestCaseOperation1Input{}
  4784  	}
  4785  
  4786  	output = &InputService22TestShapeInputService22TestCaseOperation1Output{}
  4787  	req = c.newRequest(op, input, output)
  4788  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4789  	return
  4790  }
  4791  
  4792  // InputService22TestCaseOperation1 API operation for .
  4793  //
  4794  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4795  // with awserr.Error's Code and Message methods to get detailed information about
  4796  // the error.
  4797  //
  4798  // See the AWS API reference guide for 's
  4799  // API operation InputService22TestCaseOperation1 for usage and error information.
  4800  func (c *InputService22ProtocolTest) InputService22TestCaseOperation1(input *InputService22TestShapeInputService22TestCaseOperation1Input) (*InputService22TestShapeInputService22TestCaseOperation1Output, error) {
  4801  	req, out := c.InputService22TestCaseOperation1Request(input)
  4802  	return out, req.Send()
  4803  }
  4804  
  4805  // InputService22TestCaseOperation1WithContext is the same as InputService22TestCaseOperation1 with the addition of
  4806  // the ability to pass a context and additional request options.
  4807  //
  4808  // See InputService22TestCaseOperation1 for details on how to use this API operation.
  4809  //
  4810  // The context must be non-nil and will be used for request cancellation. If
  4811  // the context is nil a panic will occur. In the future the SDK may create
  4812  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4813  // for more information on using Contexts.
  4814  func (c *InputService22ProtocolTest) InputService22TestCaseOperation1WithContext(ctx aws.Context, input *InputService22TestShapeInputService22TestCaseOperation1Input, opts ...request.Option) (*InputService22TestShapeInputService22TestCaseOperation1Output, error) {
  4815  	req, out := c.InputService22TestCaseOperation1Request(input)
  4816  	req.SetContext(ctx)
  4817  	req.ApplyOptions(opts...)
  4818  	return out, req.Send()
  4819  }
  4820  
  4821  const opInputService22TestCaseOperation2 = "OperationName"
  4822  
  4823  // InputService22TestCaseOperation2Request generates a "aws/request.Request" representing the
  4824  // client's request for the InputService22TestCaseOperation2 operation. The "output" return
  4825  // value will be populated with the request's response once the request completes
  4826  // successfully.
  4827  //
  4828  // Use "Send" method on the returned Request to send the API call to the service.
  4829  // the "output" return value is not valid until after Send returns without error.
  4830  //
  4831  // See InputService22TestCaseOperation2 for more information on using the InputService22TestCaseOperation2
  4832  // API call, and error handling.
  4833  //
  4834  // This method is useful when you want to inject custom logic or configuration
  4835  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4836  //
  4837  //
  4838  //    // Example sending a request using the InputService22TestCaseOperation2Request method.
  4839  //    req, resp := client.InputService22TestCaseOperation2Request(params)
  4840  //
  4841  //    err := req.Send()
  4842  //    if err == nil { // resp is now filled
  4843  //        fmt.Println(resp)
  4844  //    }
  4845  func (c *InputService22ProtocolTest) InputService22TestCaseOperation2Request(input *InputService22TestShapeInputService22TestCaseOperation2Input) (req *request.Request, output *InputService22TestShapeInputService22TestCaseOperation2Output) {
  4846  	op := &request.Operation{
  4847  		Name:       opInputService22TestCaseOperation2,
  4848  		HTTPMethod: "POST",
  4849  		HTTPPath:   "/path",
  4850  	}
  4851  
  4852  	if input == nil {
  4853  		input = &InputService22TestShapeInputService22TestCaseOperation2Input{}
  4854  	}
  4855  
  4856  	output = &InputService22TestShapeInputService22TestCaseOperation2Output{}
  4857  	req = c.newRequest(op, input, output)
  4858  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  4859  	return
  4860  }
  4861  
  4862  // InputService22TestCaseOperation2 API operation for .
  4863  //
  4864  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4865  // with awserr.Error's Code and Message methods to get detailed information about
  4866  // the error.
  4867  //
  4868  // See the AWS API reference guide for 's
  4869  // API operation InputService22TestCaseOperation2 for usage and error information.
  4870  func (c *InputService22ProtocolTest) InputService22TestCaseOperation2(input *InputService22TestShapeInputService22TestCaseOperation2Input) (*InputService22TestShapeInputService22TestCaseOperation2Output, error) {
  4871  	req, out := c.InputService22TestCaseOperation2Request(input)
  4872  	return out, req.Send()
  4873  }
  4874  
  4875  // InputService22TestCaseOperation2WithContext is the same as InputService22TestCaseOperation2 with the addition of
  4876  // the ability to pass a context and additional request options.
  4877  //
  4878  // See InputService22TestCaseOperation2 for details on how to use this API operation.
  4879  //
  4880  // The context must be non-nil and will be used for request cancellation. If
  4881  // the context is nil a panic will occur. In the future the SDK may create
  4882  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4883  // for more information on using Contexts.
  4884  func (c *InputService22ProtocolTest) InputService22TestCaseOperation2WithContext(ctx aws.Context, input *InputService22TestShapeInputService22TestCaseOperation2Input, opts ...request.Option) (*InputService22TestShapeInputService22TestCaseOperation2Output, error) {
  4885  	req, out := c.InputService22TestCaseOperation2Request(input)
  4886  	req.SetContext(ctx)
  4887  	req.ApplyOptions(opts...)
  4888  	return out, req.Send()
  4889  }
  4890  
  4891  type InputService22TestShapeInputService22TestCaseOperation1Input struct {
  4892  	_ struct{} `type:"structure"`
  4893  
  4894  	FooEnum *string `type:"string" enum:"InputService22TestShapeEnumType"`
  4895  
  4896  	HeaderEnum *string `location:"header" locationName:"x-amz-enum" type:"string" enum:"InputService22TestShapeEnumType"`
  4897  
  4898  	ListEnums []*string `type:"list"`
  4899  
  4900  	QueryFooEnum *string `location:"querystring" locationName:"Enum" type:"string" enum:"InputService22TestShapeEnumType"`
  4901  
  4902  	QueryListEnums []*string `location:"querystring" locationName:"List" type:"list"`
  4903  }
  4904  
  4905  // SetFooEnum sets the FooEnum field's value.
  4906  func (s *InputService22TestShapeInputService22TestCaseOperation1Input) SetFooEnum(v string) *InputService22TestShapeInputService22TestCaseOperation1Input {
  4907  	s.FooEnum = &v
  4908  	return s
  4909  }
  4910  
  4911  // SetHeaderEnum sets the HeaderEnum field's value.
  4912  func (s *InputService22TestShapeInputService22TestCaseOperation1Input) SetHeaderEnum(v string) *InputService22TestShapeInputService22TestCaseOperation1Input {
  4913  	s.HeaderEnum = &v
  4914  	return s
  4915  }
  4916  
  4917  // SetListEnums sets the ListEnums field's value.
  4918  func (s *InputService22TestShapeInputService22TestCaseOperation1Input) SetListEnums(v []*string) *InputService22TestShapeInputService22TestCaseOperation1Input {
  4919  	s.ListEnums = v
  4920  	return s
  4921  }
  4922  
  4923  // SetQueryFooEnum sets the QueryFooEnum field's value.
  4924  func (s *InputService22TestShapeInputService22TestCaseOperation1Input) SetQueryFooEnum(v string) *InputService22TestShapeInputService22TestCaseOperation1Input {
  4925  	s.QueryFooEnum = &v
  4926  	return s
  4927  }
  4928  
  4929  // SetQueryListEnums sets the QueryListEnums field's value.
  4930  func (s *InputService22TestShapeInputService22TestCaseOperation1Input) SetQueryListEnums(v []*string) *InputService22TestShapeInputService22TestCaseOperation1Input {
  4931  	s.QueryListEnums = v
  4932  	return s
  4933  }
  4934  
  4935  type InputService22TestShapeInputService22TestCaseOperation1Output struct {
  4936  	_ struct{} `type:"structure" nopayload:"true"`
  4937  }
  4938  
  4939  type InputService22TestShapeInputService22TestCaseOperation2Input struct {
  4940  	_ struct{} `type:"structure"`
  4941  
  4942  	FooEnum *string `type:"string" enum:"InputService22TestShapeEnumType"`
  4943  
  4944  	HeaderEnum *string `location:"header" locationName:"x-amz-enum" type:"string" enum:"InputService22TestShapeEnumType"`
  4945  
  4946  	ListEnums []*string `type:"list"`
  4947  
  4948  	QueryFooEnum *string `location:"querystring" locationName:"Enum" type:"string" enum:"InputService22TestShapeEnumType"`
  4949  
  4950  	QueryListEnums []*string `location:"querystring" locationName:"List" type:"list"`
  4951  }
  4952  
  4953  // SetFooEnum sets the FooEnum field's value.
  4954  func (s *InputService22TestShapeInputService22TestCaseOperation2Input) SetFooEnum(v string) *InputService22TestShapeInputService22TestCaseOperation2Input {
  4955  	s.FooEnum = &v
  4956  	return s
  4957  }
  4958  
  4959  // SetHeaderEnum sets the HeaderEnum field's value.
  4960  func (s *InputService22TestShapeInputService22TestCaseOperation2Input) SetHeaderEnum(v string) *InputService22TestShapeInputService22TestCaseOperation2Input {
  4961  	s.HeaderEnum = &v
  4962  	return s
  4963  }
  4964  
  4965  // SetListEnums sets the ListEnums field's value.
  4966  func (s *InputService22TestShapeInputService22TestCaseOperation2Input) SetListEnums(v []*string) *InputService22TestShapeInputService22TestCaseOperation2Input {
  4967  	s.ListEnums = v
  4968  	return s
  4969  }
  4970  
  4971  // SetQueryFooEnum sets the QueryFooEnum field's value.
  4972  func (s *InputService22TestShapeInputService22TestCaseOperation2Input) SetQueryFooEnum(v string) *InputService22TestShapeInputService22TestCaseOperation2Input {
  4973  	s.QueryFooEnum = &v
  4974  	return s
  4975  }
  4976  
  4977  // SetQueryListEnums sets the QueryListEnums field's value.
  4978  func (s *InputService22TestShapeInputService22TestCaseOperation2Input) SetQueryListEnums(v []*string) *InputService22TestShapeInputService22TestCaseOperation2Input {
  4979  	s.QueryListEnums = v
  4980  	return s
  4981  }
  4982  
  4983  type InputService22TestShapeInputService22TestCaseOperation2Output struct {
  4984  	_ struct{} `type:"structure" nopayload:"true"`
  4985  }
  4986  
  4987  const (
  4988  	// EnumTypeFoo is a InputService22TestShapeEnumType enum value
  4989  	EnumTypeFoo = "foo"
  4990  
  4991  	// EnumTypeBar is a InputService22TestShapeEnumType enum value
  4992  	EnumTypeBar = "bar"
  4993  
  4994  	// EnumType0 is a InputService22TestShapeEnumType enum value
  4995  	EnumType0 = "0"
  4996  
  4997  	// EnumType1 is a InputService22TestShapeEnumType enum value
  4998  	EnumType1 = "1"
  4999  )
  5000  
  5001  // InputService22TestShapeEnumType_Values returns all elements of the InputService22TestShapeEnumType enum
  5002  func InputService22TestShapeEnumType_Values() []string {
  5003  	return []string{
  5004  		EnumTypeFoo,
  5005  		EnumTypeBar,
  5006  		EnumType0,
  5007  		EnumType1,
  5008  	}
  5009  }
  5010  
  5011  // InputService23ProtocolTest provides the API operation methods for making requests to
  5012  // . See this package's package overview docs
  5013  // for details on the service.
  5014  //
  5015  // InputService23ProtocolTest methods are safe to use concurrently. It is not safe to
  5016  // modify mutate any of the struct's properties though.
  5017  type InputService23ProtocolTest struct {
  5018  	*client.Client
  5019  }
  5020  
  5021  // New creates a new instance of the InputService23ProtocolTest client with a session.
  5022  // If additional configuration is needed for the client instance use the optional
  5023  // aws.Config parameter to add your extra config.
  5024  //
  5025  // Example:
  5026  //     mySession := session.Must(session.NewSession())
  5027  //
  5028  //     // Create a InputService23ProtocolTest client from just a session.
  5029  //     svc := inputservice23protocoltest.New(mySession)
  5030  //
  5031  //     // Create a InputService23ProtocolTest client with additional configuration
  5032  //     svc := inputservice23protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  5033  func NewInputService23ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService23ProtocolTest {
  5034  	c := p.ClientConfig("inputservice23protocoltest", cfgs...)
  5035  	return newInputService23ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  5036  }
  5037  
  5038  // newClient creates, initializes and returns a new service client instance.
  5039  func newInputService23ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService23ProtocolTest {
  5040  	svc := &InputService23ProtocolTest{
  5041  		Client: client.New(
  5042  			cfg,
  5043  			metadata.ClientInfo{
  5044  				ServiceName:   "InputService23ProtocolTest",
  5045  				ServiceID:     "InputService23ProtocolTest",
  5046  				SigningName:   signingName,
  5047  				SigningRegion: signingRegion,
  5048  				PartitionID:   partitionID,
  5049  				Endpoint:      endpoint,
  5050  				APIVersion:    "2014-01-01",
  5051  			},
  5052  			handlers,
  5053  		),
  5054  	}
  5055  
  5056  	// Handlers
  5057  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  5058  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  5059  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  5060  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  5061  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  5062  
  5063  	return svc
  5064  }
  5065  
  5066  // newRequest creates a new request for a InputService23ProtocolTest operation and runs any
  5067  // custom request initialization.
  5068  func (c *InputService23ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  5069  	req := c.NewRequest(op, params, data)
  5070  
  5071  	return req
  5072  }
  5073  
  5074  const opInputService23TestCaseOperation1 = "StaticOp"
  5075  
  5076  // InputService23TestCaseOperation1Request generates a "aws/request.Request" representing the
  5077  // client's request for the InputService23TestCaseOperation1 operation. The "output" return
  5078  // value will be populated with the request's response once the request completes
  5079  // successfully.
  5080  //
  5081  // Use "Send" method on the returned Request to send the API call to the service.
  5082  // the "output" return value is not valid until after Send returns without error.
  5083  //
  5084  // See InputService23TestCaseOperation1 for more information on using the InputService23TestCaseOperation1
  5085  // API call, and error handling.
  5086  //
  5087  // This method is useful when you want to inject custom logic or configuration
  5088  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5089  //
  5090  //
  5091  //    // Example sending a request using the InputService23TestCaseOperation1Request method.
  5092  //    req, resp := client.InputService23TestCaseOperation1Request(params)
  5093  //
  5094  //    err := req.Send()
  5095  //    if err == nil { // resp is now filled
  5096  //        fmt.Println(resp)
  5097  //    }
  5098  func (c *InputService23ProtocolTest) InputService23TestCaseOperation1Request(input *InputService23TestShapeInputService23TestCaseOperation1Input) (req *request.Request, output *InputService23TestShapeInputService23TestCaseOperation1Output) {
  5099  	op := &request.Operation{
  5100  		Name:       opInputService23TestCaseOperation1,
  5101  		HTTPMethod: "POST",
  5102  		HTTPPath:   "/path",
  5103  	}
  5104  
  5105  	if input == nil {
  5106  		input = &InputService23TestShapeInputService23TestCaseOperation1Input{}
  5107  	}
  5108  
  5109  	output = &InputService23TestShapeInputService23TestCaseOperation1Output{}
  5110  	req = c.newRequest(op, input, output)
  5111  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5112  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("data-", nil))
  5113  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5114  	return
  5115  }
  5116  
  5117  // InputService23TestCaseOperation1 API operation for .
  5118  //
  5119  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5120  // with awserr.Error's Code and Message methods to get detailed information about
  5121  // the error.
  5122  //
  5123  // See the AWS API reference guide for 's
  5124  // API operation InputService23TestCaseOperation1 for usage and error information.
  5125  func (c *InputService23ProtocolTest) InputService23TestCaseOperation1(input *InputService23TestShapeInputService23TestCaseOperation1Input) (*InputService23TestShapeInputService23TestCaseOperation1Output, error) {
  5126  	req, out := c.InputService23TestCaseOperation1Request(input)
  5127  	return out, req.Send()
  5128  }
  5129  
  5130  // InputService23TestCaseOperation1WithContext is the same as InputService23TestCaseOperation1 with the addition of
  5131  // the ability to pass a context and additional request options.
  5132  //
  5133  // See InputService23TestCaseOperation1 for details on how to use this API operation.
  5134  //
  5135  // The context must be non-nil and will be used for request cancellation. If
  5136  // the context is nil a panic will occur. In the future the SDK may create
  5137  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5138  // for more information on using Contexts.
  5139  func (c *InputService23ProtocolTest) InputService23TestCaseOperation1WithContext(ctx aws.Context, input *InputService23TestShapeInputService23TestCaseOperation1Input, opts ...request.Option) (*InputService23TestShapeInputService23TestCaseOperation1Output, error) {
  5140  	req, out := c.InputService23TestCaseOperation1Request(input)
  5141  	req.SetContext(ctx)
  5142  	req.ApplyOptions(opts...)
  5143  	return out, req.Send()
  5144  }
  5145  
  5146  const opInputService23TestCaseOperation2 = "MemberRefOp"
  5147  
  5148  // InputService23TestCaseOperation2Request generates a "aws/request.Request" representing the
  5149  // client's request for the InputService23TestCaseOperation2 operation. The "output" return
  5150  // value will be populated with the request's response once the request completes
  5151  // successfully.
  5152  //
  5153  // Use "Send" method on the returned Request to send the API call to the service.
  5154  // the "output" return value is not valid until after Send returns without error.
  5155  //
  5156  // See InputService23TestCaseOperation2 for more information on using the InputService23TestCaseOperation2
  5157  // API call, and error handling.
  5158  //
  5159  // This method is useful when you want to inject custom logic or configuration
  5160  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5161  //
  5162  //
  5163  //    // Example sending a request using the InputService23TestCaseOperation2Request method.
  5164  //    req, resp := client.InputService23TestCaseOperation2Request(params)
  5165  //
  5166  //    err := req.Send()
  5167  //    if err == nil { // resp is now filled
  5168  //        fmt.Println(resp)
  5169  //    }
  5170  func (c *InputService23ProtocolTest) InputService23TestCaseOperation2Request(input *InputService23TestShapeInputService23TestCaseOperation2Input) (req *request.Request, output *InputService23TestShapeInputService23TestCaseOperation2Output) {
  5171  	op := &request.Operation{
  5172  		Name:       opInputService23TestCaseOperation2,
  5173  		HTTPMethod: "POST",
  5174  		HTTPPath:   "/path",
  5175  	}
  5176  
  5177  	if input == nil {
  5178  		input = &InputService23TestShapeInputService23TestCaseOperation2Input{}
  5179  	}
  5180  
  5181  	output = &InputService23TestShapeInputService23TestCaseOperation2Output{}
  5182  	req = c.newRequest(op, input, output)
  5183  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5184  	req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("foo-{Name}.", input.hostLabels))
  5185  	req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler)
  5186  	return
  5187  }
  5188  
  5189  // InputService23TestCaseOperation2 API operation for .
  5190  //
  5191  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5192  // with awserr.Error's Code and Message methods to get detailed information about
  5193  // the error.
  5194  //
  5195  // See the AWS API reference guide for 's
  5196  // API operation InputService23TestCaseOperation2 for usage and error information.
  5197  func (c *InputService23ProtocolTest) InputService23TestCaseOperation2(input *InputService23TestShapeInputService23TestCaseOperation2Input) (*InputService23TestShapeInputService23TestCaseOperation2Output, error) {
  5198  	req, out := c.InputService23TestCaseOperation2Request(input)
  5199  	return out, req.Send()
  5200  }
  5201  
  5202  // InputService23TestCaseOperation2WithContext is the same as InputService23TestCaseOperation2 with the addition of
  5203  // the ability to pass a context and additional request options.
  5204  //
  5205  // See InputService23TestCaseOperation2 for details on how to use this API operation.
  5206  //
  5207  // The context must be non-nil and will be used for request cancellation. If
  5208  // the context is nil a panic will occur. In the future the SDK may create
  5209  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5210  // for more information on using Contexts.
  5211  func (c *InputService23ProtocolTest) InputService23TestCaseOperation2WithContext(ctx aws.Context, input *InputService23TestShapeInputService23TestCaseOperation2Input, opts ...request.Option) (*InputService23TestShapeInputService23TestCaseOperation2Output, error) {
  5212  	req, out := c.InputService23TestCaseOperation2Request(input)
  5213  	req.SetContext(ctx)
  5214  	req.ApplyOptions(opts...)
  5215  	return out, req.Send()
  5216  }
  5217  
  5218  type InputService23TestShapeInputService23TestCaseOperation1Input struct {
  5219  	_ struct{} `type:"structure"`
  5220  
  5221  	Name *string `type:"string"`
  5222  }
  5223  
  5224  // SetName sets the Name field's value.
  5225  func (s *InputService23TestShapeInputService23TestCaseOperation1Input) SetName(v string) *InputService23TestShapeInputService23TestCaseOperation1Input {
  5226  	s.Name = &v
  5227  	return s
  5228  }
  5229  
  5230  type InputService23TestShapeInputService23TestCaseOperation1Output struct {
  5231  	_ struct{} `type:"structure" nopayload:"true"`
  5232  }
  5233  
  5234  type InputService23TestShapeInputService23TestCaseOperation2Input struct {
  5235  	_ struct{} `type:"structure"`
  5236  
  5237  	// Name is a required field
  5238  	Name *string `type:"string" required:"true"`
  5239  }
  5240  
  5241  // Validate inspects the fields of the type to determine if they are valid.
  5242  func (s *InputService23TestShapeInputService23TestCaseOperation2Input) Validate() error {
  5243  	invalidParams := request.ErrInvalidParams{Context: "InputService23TestShapeInputService23TestCaseOperation2Input"}
  5244  	if s.Name == nil {
  5245  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5246  	}
  5247  	if s.Name != nil && len(*s.Name) < 1 {
  5248  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5249  	}
  5250  
  5251  	if invalidParams.Len() > 0 {
  5252  		return invalidParams
  5253  	}
  5254  	return nil
  5255  }
  5256  
  5257  // SetName sets the Name field's value.
  5258  func (s *InputService23TestShapeInputService23TestCaseOperation2Input) SetName(v string) *InputService23TestShapeInputService23TestCaseOperation2Input {
  5259  	s.Name = &v
  5260  	return s
  5261  }
  5262  
  5263  func (s *InputService23TestShapeInputService23TestCaseOperation2Input) hostLabels() map[string]string {
  5264  	return map[string]string{
  5265  		"Name": aws.StringValue(s.Name),
  5266  	}
  5267  }
  5268  
  5269  type InputService23TestShapeInputService23TestCaseOperation2Output struct {
  5270  	_ struct{} `type:"structure" nopayload:"true"`
  5271  }
  5272  
  5273  // InputService24ProtocolTest provides the API operation methods for making requests to
  5274  // . See this package's package overview docs
  5275  // for details on the service.
  5276  //
  5277  // InputService24ProtocolTest methods are safe to use concurrently. It is not safe to
  5278  // modify mutate any of the struct's properties though.
  5279  type InputService24ProtocolTest struct {
  5280  	*client.Client
  5281  }
  5282  
  5283  // New creates a new instance of the InputService24ProtocolTest client with a session.
  5284  // If additional configuration is needed for the client instance use the optional
  5285  // aws.Config parameter to add your extra config.
  5286  //
  5287  // Example:
  5288  //     mySession := session.Must(session.NewSession())
  5289  //
  5290  //     // Create a InputService24ProtocolTest client from just a session.
  5291  //     svc := inputservice24protocoltest.New(mySession)
  5292  //
  5293  //     // Create a InputService24ProtocolTest client with additional configuration
  5294  //     svc := inputservice24protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  5295  func NewInputService24ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService24ProtocolTest {
  5296  	c := p.ClientConfig("inputservice24protocoltest", cfgs...)
  5297  	return newInputService24ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  5298  }
  5299  
  5300  // newClient creates, initializes and returns a new service client instance.
  5301  func newInputService24ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService24ProtocolTest {
  5302  	svc := &InputService24ProtocolTest{
  5303  		Client: client.New(
  5304  			cfg,
  5305  			metadata.ClientInfo{
  5306  				ServiceName:   "InputService24ProtocolTest",
  5307  				ServiceID:     "InputService24ProtocolTest",
  5308  				SigningName:   signingName,
  5309  				SigningRegion: signingRegion,
  5310  				PartitionID:   partitionID,
  5311  				Endpoint:      endpoint,
  5312  				APIVersion:    "2014-01-01",
  5313  			},
  5314  			handlers,
  5315  		),
  5316  	}
  5317  
  5318  	// Handlers
  5319  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  5320  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  5321  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  5322  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  5323  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  5324  
  5325  	return svc
  5326  }
  5327  
  5328  // newRequest creates a new request for a InputService24ProtocolTest operation and runs any
  5329  // custom request initialization.
  5330  func (c *InputService24ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  5331  	req := c.NewRequest(op, params, data)
  5332  
  5333  	return req
  5334  }
  5335  
  5336  const opInputService24TestCaseOperation1 = "OperationName"
  5337  
  5338  // InputService24TestCaseOperation1Request generates a "aws/request.Request" representing the
  5339  // client's request for the InputService24TestCaseOperation1 operation. The "output" return
  5340  // value will be populated with the request's response once the request completes
  5341  // successfully.
  5342  //
  5343  // Use "Send" method on the returned Request to send the API call to the service.
  5344  // the "output" return value is not valid until after Send returns without error.
  5345  //
  5346  // See InputService24TestCaseOperation1 for more information on using the InputService24TestCaseOperation1
  5347  // API call, and error handling.
  5348  //
  5349  // This method is useful when you want to inject custom logic or configuration
  5350  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5351  //
  5352  //
  5353  //    // Example sending a request using the InputService24TestCaseOperation1Request method.
  5354  //    req, resp := client.InputService24TestCaseOperation1Request(params)
  5355  //
  5356  //    err := req.Send()
  5357  //    if err == nil { // resp is now filled
  5358  //        fmt.Println(resp)
  5359  //    }
  5360  func (c *InputService24ProtocolTest) InputService24TestCaseOperation1Request(input *InputService24TestShapeInputService24TestCaseOperation1Input) (req *request.Request, output *InputService24TestShapeInputService24TestCaseOperation1Output) {
  5361  	op := &request.Operation{
  5362  		Name:       opInputService24TestCaseOperation1,
  5363  		HTTPMethod: "POST",
  5364  		HTTPPath:   "/",
  5365  	}
  5366  
  5367  	if input == nil {
  5368  		input = &InputService24TestShapeInputService24TestCaseOperation1Input{}
  5369  	}
  5370  
  5371  	output = &InputService24TestShapeInputService24TestCaseOperation1Output{}
  5372  	req = c.newRequest(op, input, output)
  5373  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5374  	return
  5375  }
  5376  
  5377  // InputService24TestCaseOperation1 API operation for .
  5378  //
  5379  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5380  // with awserr.Error's Code and Message methods to get detailed information about
  5381  // the error.
  5382  //
  5383  // See the AWS API reference guide for 's
  5384  // API operation InputService24TestCaseOperation1 for usage and error information.
  5385  func (c *InputService24ProtocolTest) InputService24TestCaseOperation1(input *InputService24TestShapeInputService24TestCaseOperation1Input) (*InputService24TestShapeInputService24TestCaseOperation1Output, error) {
  5386  	req, out := c.InputService24TestCaseOperation1Request(input)
  5387  	return out, req.Send()
  5388  }
  5389  
  5390  // InputService24TestCaseOperation1WithContext is the same as InputService24TestCaseOperation1 with the addition of
  5391  // the ability to pass a context and additional request options.
  5392  //
  5393  // See InputService24TestCaseOperation1 for details on how to use this API operation.
  5394  //
  5395  // The context must be non-nil and will be used for request cancellation. If
  5396  // the context is nil a panic will occur. In the future the SDK may create
  5397  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5398  // for more information on using Contexts.
  5399  func (c *InputService24ProtocolTest) InputService24TestCaseOperation1WithContext(ctx aws.Context, input *InputService24TestShapeInputService24TestCaseOperation1Input, opts ...request.Option) (*InputService24TestShapeInputService24TestCaseOperation1Output, error) {
  5400  	req, out := c.InputService24TestCaseOperation1Request(input)
  5401  	req.SetContext(ctx)
  5402  	req.ApplyOptions(opts...)
  5403  	return out, req.Send()
  5404  }
  5405  
  5406  const opInputService24TestCaseOperation2 = "OperationName"
  5407  
  5408  // InputService24TestCaseOperation2Request generates a "aws/request.Request" representing the
  5409  // client's request for the InputService24TestCaseOperation2 operation. The "output" return
  5410  // value will be populated with the request's response once the request completes
  5411  // successfully.
  5412  //
  5413  // Use "Send" method on the returned Request to send the API call to the service.
  5414  // the "output" return value is not valid until after Send returns without error.
  5415  //
  5416  // See InputService24TestCaseOperation2 for more information on using the InputService24TestCaseOperation2
  5417  // API call, and error handling.
  5418  //
  5419  // This method is useful when you want to inject custom logic or configuration
  5420  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5421  //
  5422  //
  5423  //    // Example sending a request using the InputService24TestCaseOperation2Request method.
  5424  //    req, resp := client.InputService24TestCaseOperation2Request(params)
  5425  //
  5426  //    err := req.Send()
  5427  //    if err == nil { // resp is now filled
  5428  //        fmt.Println(resp)
  5429  //    }
  5430  func (c *InputService24ProtocolTest) InputService24TestCaseOperation2Request(input *InputService24TestShapeInputService24TestCaseOperation2Input) (req *request.Request, output *InputService24TestShapeInputService24TestCaseOperation2Output) {
  5431  	op := &request.Operation{
  5432  		Name:       opInputService24TestCaseOperation2,
  5433  		HTTPMethod: "POST",
  5434  		HTTPPath:   "/",
  5435  	}
  5436  
  5437  	if input == nil {
  5438  		input = &InputService24TestShapeInputService24TestCaseOperation2Input{}
  5439  	}
  5440  
  5441  	output = &InputService24TestShapeInputService24TestCaseOperation2Output{}
  5442  	req = c.newRequest(op, input, output)
  5443  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5444  	return
  5445  }
  5446  
  5447  // InputService24TestCaseOperation2 API operation for .
  5448  //
  5449  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5450  // with awserr.Error's Code and Message methods to get detailed information about
  5451  // the error.
  5452  //
  5453  // See the AWS API reference guide for 's
  5454  // API operation InputService24TestCaseOperation2 for usage and error information.
  5455  func (c *InputService24ProtocolTest) InputService24TestCaseOperation2(input *InputService24TestShapeInputService24TestCaseOperation2Input) (*InputService24TestShapeInputService24TestCaseOperation2Output, error) {
  5456  	req, out := c.InputService24TestCaseOperation2Request(input)
  5457  	return out, req.Send()
  5458  }
  5459  
  5460  // InputService24TestCaseOperation2WithContext is the same as InputService24TestCaseOperation2 with the addition of
  5461  // the ability to pass a context and additional request options.
  5462  //
  5463  // See InputService24TestCaseOperation2 for details on how to use this API operation.
  5464  //
  5465  // The context must be non-nil and will be used for request cancellation. If
  5466  // the context is nil a panic will occur. In the future the SDK may create
  5467  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5468  // for more information on using Contexts.
  5469  func (c *InputService24ProtocolTest) InputService24TestCaseOperation2WithContext(ctx aws.Context, input *InputService24TestShapeInputService24TestCaseOperation2Input, opts ...request.Option) (*InputService24TestShapeInputService24TestCaseOperation2Output, error) {
  5470  	req, out := c.InputService24TestCaseOperation2Request(input)
  5471  	req.SetContext(ctx)
  5472  	req.ApplyOptions(opts...)
  5473  	return out, req.Send()
  5474  }
  5475  
  5476  const opInputService24TestCaseOperation3 = "OperationName"
  5477  
  5478  // InputService24TestCaseOperation3Request generates a "aws/request.Request" representing the
  5479  // client's request for the InputService24TestCaseOperation3 operation. The "output" return
  5480  // value will be populated with the request's response once the request completes
  5481  // successfully.
  5482  //
  5483  // Use "Send" method on the returned Request to send the API call to the service.
  5484  // the "output" return value is not valid until after Send returns without error.
  5485  //
  5486  // See InputService24TestCaseOperation3 for more information on using the InputService24TestCaseOperation3
  5487  // API call, and error handling.
  5488  //
  5489  // This method is useful when you want to inject custom logic or configuration
  5490  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5491  //
  5492  //
  5493  //    // Example sending a request using the InputService24TestCaseOperation3Request method.
  5494  //    req, resp := client.InputService24TestCaseOperation3Request(params)
  5495  //
  5496  //    err := req.Send()
  5497  //    if err == nil { // resp is now filled
  5498  //        fmt.Println(resp)
  5499  //    }
  5500  func (c *InputService24ProtocolTest) InputService24TestCaseOperation3Request(input *InputService24TestShapeInputService24TestCaseOperation3Input) (req *request.Request, output *InputService24TestShapeInputService24TestCaseOperation3Output) {
  5501  	op := &request.Operation{
  5502  		Name:       opInputService24TestCaseOperation3,
  5503  		HTTPMethod: "POST",
  5504  		HTTPPath:   "/",
  5505  	}
  5506  
  5507  	if input == nil {
  5508  		input = &InputService24TestShapeInputService24TestCaseOperation3Input{}
  5509  	}
  5510  
  5511  	output = &InputService24TestShapeInputService24TestCaseOperation3Output{}
  5512  	req = c.newRequest(op, input, output)
  5513  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5514  	return
  5515  }
  5516  
  5517  // InputService24TestCaseOperation3 API operation for .
  5518  //
  5519  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5520  // with awserr.Error's Code and Message methods to get detailed information about
  5521  // the error.
  5522  //
  5523  // See the AWS API reference guide for 's
  5524  // API operation InputService24TestCaseOperation3 for usage and error information.
  5525  func (c *InputService24ProtocolTest) InputService24TestCaseOperation3(input *InputService24TestShapeInputService24TestCaseOperation3Input) (*InputService24TestShapeInputService24TestCaseOperation3Output, error) {
  5526  	req, out := c.InputService24TestCaseOperation3Request(input)
  5527  	return out, req.Send()
  5528  }
  5529  
  5530  // InputService24TestCaseOperation3WithContext is the same as InputService24TestCaseOperation3 with the addition of
  5531  // the ability to pass a context and additional request options.
  5532  //
  5533  // See InputService24TestCaseOperation3 for details on how to use this API operation.
  5534  //
  5535  // The context must be non-nil and will be used for request cancellation. If
  5536  // the context is nil a panic will occur. In the future the SDK may create
  5537  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5538  // for more information on using Contexts.
  5539  func (c *InputService24ProtocolTest) InputService24TestCaseOperation3WithContext(ctx aws.Context, input *InputService24TestShapeInputService24TestCaseOperation3Input, opts ...request.Option) (*InputService24TestShapeInputService24TestCaseOperation3Output, error) {
  5540  	req, out := c.InputService24TestCaseOperation3Request(input)
  5541  	req.SetContext(ctx)
  5542  	req.ApplyOptions(opts...)
  5543  	return out, req.Send()
  5544  }
  5545  
  5546  const opInputService24TestCaseOperation4 = "OperationName"
  5547  
  5548  // InputService24TestCaseOperation4Request generates a "aws/request.Request" representing the
  5549  // client's request for the InputService24TestCaseOperation4 operation. The "output" return
  5550  // value will be populated with the request's response once the request completes
  5551  // successfully.
  5552  //
  5553  // Use "Send" method on the returned Request to send the API call to the service.
  5554  // the "output" return value is not valid until after Send returns without error.
  5555  //
  5556  // See InputService24TestCaseOperation4 for more information on using the InputService24TestCaseOperation4
  5557  // API call, and error handling.
  5558  //
  5559  // This method is useful when you want to inject custom logic or configuration
  5560  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5561  //
  5562  //
  5563  //    // Example sending a request using the InputService24TestCaseOperation4Request method.
  5564  //    req, resp := client.InputService24TestCaseOperation4Request(params)
  5565  //
  5566  //    err := req.Send()
  5567  //    if err == nil { // resp is now filled
  5568  //        fmt.Println(resp)
  5569  //    }
  5570  func (c *InputService24ProtocolTest) InputService24TestCaseOperation4Request(input *InputService24TestShapeInputService24TestCaseOperation4Input) (req *request.Request, output *InputService24TestShapeInputService24TestCaseOperation4Output) {
  5571  	op := &request.Operation{
  5572  		Name:       opInputService24TestCaseOperation4,
  5573  		HTTPMethod: "POST",
  5574  		HTTPPath:   "/",
  5575  	}
  5576  
  5577  	if input == nil {
  5578  		input = &InputService24TestShapeInputService24TestCaseOperation4Input{}
  5579  	}
  5580  
  5581  	output = &InputService24TestShapeInputService24TestCaseOperation4Output{}
  5582  	req = c.newRequest(op, input, output)
  5583  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5584  	return
  5585  }
  5586  
  5587  // InputService24TestCaseOperation4 API operation for .
  5588  //
  5589  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5590  // with awserr.Error's Code and Message methods to get detailed information about
  5591  // the error.
  5592  //
  5593  // See the AWS API reference guide for 's
  5594  // API operation InputService24TestCaseOperation4 for usage and error information.
  5595  func (c *InputService24ProtocolTest) InputService24TestCaseOperation4(input *InputService24TestShapeInputService24TestCaseOperation4Input) (*InputService24TestShapeInputService24TestCaseOperation4Output, error) {
  5596  	req, out := c.InputService24TestCaseOperation4Request(input)
  5597  	return out, req.Send()
  5598  }
  5599  
  5600  // InputService24TestCaseOperation4WithContext is the same as InputService24TestCaseOperation4 with the addition of
  5601  // the ability to pass a context and additional request options.
  5602  //
  5603  // See InputService24TestCaseOperation4 for details on how to use this API operation.
  5604  //
  5605  // The context must be non-nil and will be used for request cancellation. If
  5606  // the context is nil a panic will occur. In the future the SDK may create
  5607  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5608  // for more information on using Contexts.
  5609  func (c *InputService24ProtocolTest) InputService24TestCaseOperation4WithContext(ctx aws.Context, input *InputService24TestShapeInputService24TestCaseOperation4Input, opts ...request.Option) (*InputService24TestShapeInputService24TestCaseOperation4Output, error) {
  5610  	req, out := c.InputService24TestCaseOperation4Request(input)
  5611  	req.SetContext(ctx)
  5612  	req.ApplyOptions(opts...)
  5613  	return out, req.Send()
  5614  }
  5615  
  5616  const opInputService24TestCaseOperation5 = "OperationName"
  5617  
  5618  // InputService24TestCaseOperation5Request generates a "aws/request.Request" representing the
  5619  // client's request for the InputService24TestCaseOperation5 operation. The "output" return
  5620  // value will be populated with the request's response once the request completes
  5621  // successfully.
  5622  //
  5623  // Use "Send" method on the returned Request to send the API call to the service.
  5624  // the "output" return value is not valid until after Send returns without error.
  5625  //
  5626  // See InputService24TestCaseOperation5 for more information on using the InputService24TestCaseOperation5
  5627  // API call, and error handling.
  5628  //
  5629  // This method is useful when you want to inject custom logic or configuration
  5630  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5631  //
  5632  //
  5633  //    // Example sending a request using the InputService24TestCaseOperation5Request method.
  5634  //    req, resp := client.InputService24TestCaseOperation5Request(params)
  5635  //
  5636  //    err := req.Send()
  5637  //    if err == nil { // resp is now filled
  5638  //        fmt.Println(resp)
  5639  //    }
  5640  func (c *InputService24ProtocolTest) InputService24TestCaseOperation5Request(input *InputService24TestShapeInputService24TestCaseOperation5Input) (req *request.Request, output *InputService24TestShapeInputService24TestCaseOperation5Output) {
  5641  	op := &request.Operation{
  5642  		Name:       opInputService24TestCaseOperation5,
  5643  		HTTPMethod: "POST",
  5644  		HTTPPath:   "/",
  5645  	}
  5646  
  5647  	if input == nil {
  5648  		input = &InputService24TestShapeInputService24TestCaseOperation5Input{}
  5649  	}
  5650  
  5651  	output = &InputService24TestShapeInputService24TestCaseOperation5Output{}
  5652  	req = c.newRequest(op, input, output)
  5653  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5654  	return
  5655  }
  5656  
  5657  // InputService24TestCaseOperation5 API operation for .
  5658  //
  5659  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5660  // with awserr.Error's Code and Message methods to get detailed information about
  5661  // the error.
  5662  //
  5663  // See the AWS API reference guide for 's
  5664  // API operation InputService24TestCaseOperation5 for usage and error information.
  5665  func (c *InputService24ProtocolTest) InputService24TestCaseOperation5(input *InputService24TestShapeInputService24TestCaseOperation5Input) (*InputService24TestShapeInputService24TestCaseOperation5Output, error) {
  5666  	req, out := c.InputService24TestCaseOperation5Request(input)
  5667  	return out, req.Send()
  5668  }
  5669  
  5670  // InputService24TestCaseOperation5WithContext is the same as InputService24TestCaseOperation5 with the addition of
  5671  // the ability to pass a context and additional request options.
  5672  //
  5673  // See InputService24TestCaseOperation5 for details on how to use this API operation.
  5674  //
  5675  // The context must be non-nil and will be used for request cancellation. If
  5676  // the context is nil a panic will occur. In the future the SDK may create
  5677  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5678  // for more information on using Contexts.
  5679  func (c *InputService24ProtocolTest) InputService24TestCaseOperation5WithContext(ctx aws.Context, input *InputService24TestShapeInputService24TestCaseOperation5Input, opts ...request.Option) (*InputService24TestShapeInputService24TestCaseOperation5Output, error) {
  5680  	req, out := c.InputService24TestCaseOperation5Request(input)
  5681  	req.SetContext(ctx)
  5682  	req.ApplyOptions(opts...)
  5683  	return out, req.Send()
  5684  }
  5685  
  5686  type InputService24TestShapeInputService24TestCaseOperation1Input struct {
  5687  	_ struct{} `type:"structure"`
  5688  
  5689  	OneOf *InputService24TestShapeMyUnion `type:"structure"`
  5690  }
  5691  
  5692  // SetOneOf sets the OneOf field's value.
  5693  func (s *InputService24TestShapeInputService24TestCaseOperation1Input) SetOneOf(v *InputService24TestShapeMyUnion) *InputService24TestShapeInputService24TestCaseOperation1Input {
  5694  	s.OneOf = v
  5695  	return s
  5696  }
  5697  
  5698  type InputService24TestShapeInputService24TestCaseOperation1Output struct {
  5699  	_ struct{} `type:"structure" nopayload:"true"`
  5700  }
  5701  
  5702  type InputService24TestShapeInputService24TestCaseOperation2Input struct {
  5703  	_ struct{} `type:"structure"`
  5704  
  5705  	OneOf *InputService24TestShapeMyUnion `type:"structure"`
  5706  }
  5707  
  5708  // SetOneOf sets the OneOf field's value.
  5709  func (s *InputService24TestShapeInputService24TestCaseOperation2Input) SetOneOf(v *InputService24TestShapeMyUnion) *InputService24TestShapeInputService24TestCaseOperation2Input {
  5710  	s.OneOf = v
  5711  	return s
  5712  }
  5713  
  5714  type InputService24TestShapeInputService24TestCaseOperation2Output struct {
  5715  	_ struct{} `type:"structure" nopayload:"true"`
  5716  }
  5717  
  5718  type InputService24TestShapeInputService24TestCaseOperation3Input struct {
  5719  	_ struct{} `type:"structure"`
  5720  
  5721  	OneOf *InputService24TestShapeMyUnion `type:"structure"`
  5722  }
  5723  
  5724  // SetOneOf sets the OneOf field's value.
  5725  func (s *InputService24TestShapeInputService24TestCaseOperation3Input) SetOneOf(v *InputService24TestShapeMyUnion) *InputService24TestShapeInputService24TestCaseOperation3Input {
  5726  	s.OneOf = v
  5727  	return s
  5728  }
  5729  
  5730  type InputService24TestShapeInputService24TestCaseOperation3Output struct {
  5731  	_ struct{} `type:"structure" nopayload:"true"`
  5732  }
  5733  
  5734  type InputService24TestShapeInputService24TestCaseOperation4Input struct {
  5735  	_ struct{} `type:"structure"`
  5736  
  5737  	OneOf *InputService24TestShapeMyUnion `type:"structure"`
  5738  }
  5739  
  5740  // SetOneOf sets the OneOf field's value.
  5741  func (s *InputService24TestShapeInputService24TestCaseOperation4Input) SetOneOf(v *InputService24TestShapeMyUnion) *InputService24TestShapeInputService24TestCaseOperation4Input {
  5742  	s.OneOf = v
  5743  	return s
  5744  }
  5745  
  5746  type InputService24TestShapeInputService24TestCaseOperation4Output struct {
  5747  	_ struct{} `type:"structure" nopayload:"true"`
  5748  }
  5749  
  5750  type InputService24TestShapeInputService24TestCaseOperation5Input struct {
  5751  	_ struct{} `type:"structure"`
  5752  
  5753  	OneOf *InputService24TestShapeMyUnion `type:"structure"`
  5754  }
  5755  
  5756  // SetOneOf sets the OneOf field's value.
  5757  func (s *InputService24TestShapeInputService24TestCaseOperation5Input) SetOneOf(v *InputService24TestShapeMyUnion) *InputService24TestShapeInputService24TestCaseOperation5Input {
  5758  	s.OneOf = v
  5759  	return s
  5760  }
  5761  
  5762  type InputService24TestShapeInputService24TestCaseOperation5Output struct {
  5763  	_ struct{} `type:"structure" nopayload:"true"`
  5764  }
  5765  
  5766  type InputService24TestShapeMyUnion struct {
  5767  	_ struct{} `type:"structure"`
  5768  
  5769  	A *string `locationName:"a" type:"string"`
  5770  
  5771  	B *string `locationName:"b" type:"string"`
  5772  
  5773  	C *InputService24TestShapeStruct `locationName:"c" type:"structure"`
  5774  
  5775  	D *InputService24TestShapeStruct `locationName:"d" type:"structure"`
  5776  
  5777  	E []*InputService24TestShapeStruct `locationName:"e" type:"list"`
  5778  }
  5779  
  5780  // SetA sets the A field's value.
  5781  func (s *InputService24TestShapeMyUnion) SetA(v string) *InputService24TestShapeMyUnion {
  5782  	s.A = &v
  5783  	return s
  5784  }
  5785  
  5786  // SetB sets the B field's value.
  5787  func (s *InputService24TestShapeMyUnion) SetB(v string) *InputService24TestShapeMyUnion {
  5788  	s.B = &v
  5789  	return s
  5790  }
  5791  
  5792  // SetC sets the C field's value.
  5793  func (s *InputService24TestShapeMyUnion) SetC(v *InputService24TestShapeStruct) *InputService24TestShapeMyUnion {
  5794  	s.C = v
  5795  	return s
  5796  }
  5797  
  5798  // SetD sets the D field's value.
  5799  func (s *InputService24TestShapeMyUnion) SetD(v *InputService24TestShapeStruct) *InputService24TestShapeMyUnion {
  5800  	s.D = v
  5801  	return s
  5802  }
  5803  
  5804  // SetE sets the E field's value.
  5805  func (s *InputService24TestShapeMyUnion) SetE(v []*InputService24TestShapeStruct) *InputService24TestShapeMyUnion {
  5806  	s.E = v
  5807  	return s
  5808  }
  5809  
  5810  type InputService24TestShapeStruct struct {
  5811  	_ struct{} `type:"structure"`
  5812  
  5813  	Hello *string `locationName:"hello" type:"string"`
  5814  }
  5815  
  5816  // SetHello sets the Hello field's value.
  5817  func (s *InputService24TestShapeStruct) SetHello(v string) *InputService24TestShapeStruct {
  5818  	s.Hello = &v
  5819  	return s
  5820  }
  5821  
  5822  // InputService25ProtocolTest provides the API operation methods for making requests to
  5823  // . See this package's package overview docs
  5824  // for details on the service.
  5825  //
  5826  // InputService25ProtocolTest methods are safe to use concurrently. It is not safe to
  5827  // modify mutate any of the struct's properties though.
  5828  type InputService25ProtocolTest struct {
  5829  	*client.Client
  5830  }
  5831  
  5832  // New creates a new instance of the InputService25ProtocolTest client with a session.
  5833  // If additional configuration is needed for the client instance use the optional
  5834  // aws.Config parameter to add your extra config.
  5835  //
  5836  // Example:
  5837  //     mySession := session.Must(session.NewSession())
  5838  //
  5839  //     // Create a InputService25ProtocolTest client from just a session.
  5840  //     svc := inputservice25protocoltest.New(mySession)
  5841  //
  5842  //     // Create a InputService25ProtocolTest client with additional configuration
  5843  //     svc := inputservice25protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  5844  func NewInputService25ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService25ProtocolTest {
  5845  	c := p.ClientConfig("inputservice25protocoltest", cfgs...)
  5846  	return newInputService25ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  5847  }
  5848  
  5849  // newClient creates, initializes and returns a new service client instance.
  5850  func newInputService25ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *InputService25ProtocolTest {
  5851  	svc := &InputService25ProtocolTest{
  5852  		Client: client.New(
  5853  			cfg,
  5854  			metadata.ClientInfo{
  5855  				ServiceName:   "InputService25ProtocolTest",
  5856  				ServiceID:     "InputService25ProtocolTest",
  5857  				SigningName:   signingName,
  5858  				SigningRegion: signingRegion,
  5859  				PartitionID:   partitionID,
  5860  				Endpoint:      endpoint,
  5861  				APIVersion:    "2021-05-13",
  5862  			},
  5863  			handlers,
  5864  		),
  5865  	}
  5866  
  5867  	// Handlers
  5868  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  5869  	svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
  5870  	svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
  5871  	svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
  5872  	svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
  5873  
  5874  	return svc
  5875  }
  5876  
  5877  // newRequest creates a new request for a InputService25ProtocolTest operation and runs any
  5878  // custom request initialization.
  5879  func (c *InputService25ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  5880  	req := c.NewRequest(op, params, data)
  5881  
  5882  	return req
  5883  }
  5884  
  5885  const opInputService25TestCaseOperation1 = "TestBody"
  5886  
  5887  // InputService25TestCaseOperation1Request generates a "aws/request.Request" representing the
  5888  // client's request for the InputService25TestCaseOperation1 operation. The "output" return
  5889  // value will be populated with the request's response once the request completes
  5890  // successfully.
  5891  //
  5892  // Use "Send" method on the returned Request to send the API call to the service.
  5893  // the "output" return value is not valid until after Send returns without error.
  5894  //
  5895  // See InputService25TestCaseOperation1 for more information on using the InputService25TestCaseOperation1
  5896  // API call, and error handling.
  5897  //
  5898  // This method is useful when you want to inject custom logic or configuration
  5899  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5900  //
  5901  //
  5902  //    // Example sending a request using the InputService25TestCaseOperation1Request method.
  5903  //    req, resp := client.InputService25TestCaseOperation1Request(params)
  5904  //
  5905  //    err := req.Send()
  5906  //    if err == nil { // resp is now filled
  5907  //        fmt.Println(resp)
  5908  //    }
  5909  func (c *InputService25ProtocolTest) InputService25TestCaseOperation1Request(input *InputService25TestShapeInputService25TestCaseOperation1Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation1Output) {
  5910  	op := &request.Operation{
  5911  		Name:       opInputService25TestCaseOperation1,
  5912  		HTTPMethod: "POST",
  5913  		HTTPPath:   "/body",
  5914  	}
  5915  
  5916  	if input == nil {
  5917  		input = &InputService25TestShapeInputService25TestCaseOperation1Input{}
  5918  	}
  5919  
  5920  	output = &InputService25TestShapeInputService25TestCaseOperation1Output{}
  5921  	req = c.newRequest(op, input, output)
  5922  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5923  	return
  5924  }
  5925  
  5926  // InputService25TestCaseOperation1 API operation for .
  5927  //
  5928  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5929  // with awserr.Error's Code and Message methods to get detailed information about
  5930  // the error.
  5931  //
  5932  // See the AWS API reference guide for 's
  5933  // API operation InputService25TestCaseOperation1 for usage and error information.
  5934  func (c *InputService25ProtocolTest) InputService25TestCaseOperation1(input *InputService25TestShapeInputService25TestCaseOperation1Input) (*InputService25TestShapeInputService25TestCaseOperation1Output, error) {
  5935  	req, out := c.InputService25TestCaseOperation1Request(input)
  5936  	return out, req.Send()
  5937  }
  5938  
  5939  // InputService25TestCaseOperation1WithContext is the same as InputService25TestCaseOperation1 with the addition of
  5940  // the ability to pass a context and additional request options.
  5941  //
  5942  // See InputService25TestCaseOperation1 for details on how to use this API operation.
  5943  //
  5944  // The context must be non-nil and will be used for request cancellation. If
  5945  // the context is nil a panic will occur. In the future the SDK may create
  5946  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5947  // for more information on using Contexts.
  5948  func (c *InputService25ProtocolTest) InputService25TestCaseOperation1WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation1Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation1Output, error) {
  5949  	req, out := c.InputService25TestCaseOperation1Request(input)
  5950  	req.SetContext(ctx)
  5951  	req.ApplyOptions(opts...)
  5952  	return out, req.Send()
  5953  }
  5954  
  5955  const opInputService25TestCaseOperation2 = "TestPayloadNoParams"
  5956  
  5957  // InputService25TestCaseOperation2Request generates a "aws/request.Request" representing the
  5958  // client's request for the InputService25TestCaseOperation2 operation. The "output" return
  5959  // value will be populated with the request's response once the request completes
  5960  // successfully.
  5961  //
  5962  // Use "Send" method on the returned Request to send the API call to the service.
  5963  // the "output" return value is not valid until after Send returns without error.
  5964  //
  5965  // See InputService25TestCaseOperation2 for more information on using the InputService25TestCaseOperation2
  5966  // API call, and error handling.
  5967  //
  5968  // This method is useful when you want to inject custom logic or configuration
  5969  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5970  //
  5971  //
  5972  //    // Example sending a request using the InputService25TestCaseOperation2Request method.
  5973  //    req, resp := client.InputService25TestCaseOperation2Request(params)
  5974  //
  5975  //    err := req.Send()
  5976  //    if err == nil { // resp is now filled
  5977  //        fmt.Println(resp)
  5978  //    }
  5979  func (c *InputService25ProtocolTest) InputService25TestCaseOperation2Request(input *InputService25TestShapeInputService25TestCaseOperation2Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation2Output) {
  5980  	op := &request.Operation{
  5981  		Name:       opInputService25TestCaseOperation2,
  5982  		HTTPMethod: "POST",
  5983  		HTTPPath:   "/payload",
  5984  	}
  5985  
  5986  	if input == nil {
  5987  		input = &InputService25TestShapeInputService25TestCaseOperation2Input{}
  5988  	}
  5989  
  5990  	output = &InputService25TestShapeInputService25TestCaseOperation2Output{}
  5991  	req = c.newRequest(op, input, output)
  5992  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  5993  	return
  5994  }
  5995  
  5996  // InputService25TestCaseOperation2 API operation for .
  5997  //
  5998  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5999  // with awserr.Error's Code and Message methods to get detailed information about
  6000  // the error.
  6001  //
  6002  // See the AWS API reference guide for 's
  6003  // API operation InputService25TestCaseOperation2 for usage and error information.
  6004  func (c *InputService25ProtocolTest) InputService25TestCaseOperation2(input *InputService25TestShapeInputService25TestCaseOperation2Input) (*InputService25TestShapeInputService25TestCaseOperation2Output, error) {
  6005  	req, out := c.InputService25TestCaseOperation2Request(input)
  6006  	return out, req.Send()
  6007  }
  6008  
  6009  // InputService25TestCaseOperation2WithContext is the same as InputService25TestCaseOperation2 with the addition of
  6010  // the ability to pass a context and additional request options.
  6011  //
  6012  // See InputService25TestCaseOperation2 for details on how to use this API operation.
  6013  //
  6014  // The context must be non-nil and will be used for request cancellation. If
  6015  // the context is nil a panic will occur. In the future the SDK may create
  6016  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6017  // for more information on using Contexts.
  6018  func (c *InputService25ProtocolTest) InputService25TestCaseOperation2WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation2Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation2Output, error) {
  6019  	req, out := c.InputService25TestCaseOperation2Request(input)
  6020  	req.SetContext(ctx)
  6021  	req.ApplyOptions(opts...)
  6022  	return out, req.Send()
  6023  }
  6024  
  6025  const opInputService25TestCaseOperation3 = "TestPayload"
  6026  
  6027  // InputService25TestCaseOperation3Request generates a "aws/request.Request" representing the
  6028  // client's request for the InputService25TestCaseOperation3 operation. The "output" return
  6029  // value will be populated with the request's response once the request completes
  6030  // successfully.
  6031  //
  6032  // Use "Send" method on the returned Request to send the API call to the service.
  6033  // the "output" return value is not valid until after Send returns without error.
  6034  //
  6035  // See InputService25TestCaseOperation3 for more information on using the InputService25TestCaseOperation3
  6036  // API call, and error handling.
  6037  //
  6038  // This method is useful when you want to inject custom logic or configuration
  6039  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6040  //
  6041  //
  6042  //    // Example sending a request using the InputService25TestCaseOperation3Request method.
  6043  //    req, resp := client.InputService25TestCaseOperation3Request(params)
  6044  //
  6045  //    err := req.Send()
  6046  //    if err == nil { // resp is now filled
  6047  //        fmt.Println(resp)
  6048  //    }
  6049  func (c *InputService25ProtocolTest) InputService25TestCaseOperation3Request(input *InputService25TestShapeInputService25TestCaseOperation3Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation3Output) {
  6050  	op := &request.Operation{
  6051  		Name:       opInputService25TestCaseOperation3,
  6052  		HTTPMethod: "POST",
  6053  		HTTPPath:   "/payload",
  6054  	}
  6055  
  6056  	if input == nil {
  6057  		input = &InputService25TestShapeInputService25TestCaseOperation3Input{}
  6058  	}
  6059  
  6060  	output = &InputService25TestShapeInputService25TestCaseOperation3Output{}
  6061  	req = c.newRequest(op, input, output)
  6062  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6063  	return
  6064  }
  6065  
  6066  // InputService25TestCaseOperation3 API operation for .
  6067  //
  6068  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6069  // with awserr.Error's Code and Message methods to get detailed information about
  6070  // the error.
  6071  //
  6072  // See the AWS API reference guide for 's
  6073  // API operation InputService25TestCaseOperation3 for usage and error information.
  6074  func (c *InputService25ProtocolTest) InputService25TestCaseOperation3(input *InputService25TestShapeInputService25TestCaseOperation3Input) (*InputService25TestShapeInputService25TestCaseOperation3Output, error) {
  6075  	req, out := c.InputService25TestCaseOperation3Request(input)
  6076  	return out, req.Send()
  6077  }
  6078  
  6079  // InputService25TestCaseOperation3WithContext is the same as InputService25TestCaseOperation3 with the addition of
  6080  // the ability to pass a context and additional request options.
  6081  //
  6082  // See InputService25TestCaseOperation3 for details on how to use this API operation.
  6083  //
  6084  // The context must be non-nil and will be used for request cancellation. If
  6085  // the context is nil a panic will occur. In the future the SDK may create
  6086  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6087  // for more information on using Contexts.
  6088  func (c *InputService25ProtocolTest) InputService25TestCaseOperation3WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation3Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation3Output, error) {
  6089  	req, out := c.InputService25TestCaseOperation3Request(input)
  6090  	req.SetContext(ctx)
  6091  	req.ApplyOptions(opts...)
  6092  	return out, req.Send()
  6093  }
  6094  
  6095  const opInputService25TestCaseOperation4 = "TestPayloadNoBody"
  6096  
  6097  // InputService25TestCaseOperation4Request generates a "aws/request.Request" representing the
  6098  // client's request for the InputService25TestCaseOperation4 operation. The "output" return
  6099  // value will be populated with the request's response once the request completes
  6100  // successfully.
  6101  //
  6102  // Use "Send" method on the returned Request to send the API call to the service.
  6103  // the "output" return value is not valid until after Send returns without error.
  6104  //
  6105  // See InputService25TestCaseOperation4 for more information on using the InputService25TestCaseOperation4
  6106  // API call, and error handling.
  6107  //
  6108  // This method is useful when you want to inject custom logic or configuration
  6109  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6110  //
  6111  //
  6112  //    // Example sending a request using the InputService25TestCaseOperation4Request method.
  6113  //    req, resp := client.InputService25TestCaseOperation4Request(params)
  6114  //
  6115  //    err := req.Send()
  6116  //    if err == nil { // resp is now filled
  6117  //        fmt.Println(resp)
  6118  //    }
  6119  func (c *InputService25ProtocolTest) InputService25TestCaseOperation4Request(input *InputService25TestShapeInputService25TestCaseOperation4Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation4Output) {
  6120  	op := &request.Operation{
  6121  		Name:       opInputService25TestCaseOperation4,
  6122  		HTTPMethod: "POST",
  6123  		HTTPPath:   "/payload",
  6124  	}
  6125  
  6126  	if input == nil {
  6127  		input = &InputService25TestShapeInputService25TestCaseOperation4Input{}
  6128  	}
  6129  
  6130  	output = &InputService25TestShapeInputService25TestCaseOperation4Output{}
  6131  	req = c.newRequest(op, input, output)
  6132  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6133  	return
  6134  }
  6135  
  6136  // InputService25TestCaseOperation4 API operation for .
  6137  //
  6138  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6139  // with awserr.Error's Code and Message methods to get detailed information about
  6140  // the error.
  6141  //
  6142  // See the AWS API reference guide for 's
  6143  // API operation InputService25TestCaseOperation4 for usage and error information.
  6144  func (c *InputService25ProtocolTest) InputService25TestCaseOperation4(input *InputService25TestShapeInputService25TestCaseOperation4Input) (*InputService25TestShapeInputService25TestCaseOperation4Output, error) {
  6145  	req, out := c.InputService25TestCaseOperation4Request(input)
  6146  	return out, req.Send()
  6147  }
  6148  
  6149  // InputService25TestCaseOperation4WithContext is the same as InputService25TestCaseOperation4 with the addition of
  6150  // the ability to pass a context and additional request options.
  6151  //
  6152  // See InputService25TestCaseOperation4 for details on how to use this API operation.
  6153  //
  6154  // The context must be non-nil and will be used for request cancellation. If
  6155  // the context is nil a panic will occur. In the future the SDK may create
  6156  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6157  // for more information on using Contexts.
  6158  func (c *InputService25ProtocolTest) InputService25TestCaseOperation4WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation4Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation4Output, error) {
  6159  	req, out := c.InputService25TestCaseOperation4Request(input)
  6160  	req.SetContext(ctx)
  6161  	req.ApplyOptions(opts...)
  6162  	return out, req.Send()
  6163  }
  6164  
  6165  const opInputService25TestCaseOperation5 = "TestBlobPayload"
  6166  
  6167  // InputService25TestCaseOperation5Request generates a "aws/request.Request" representing the
  6168  // client's request for the InputService25TestCaseOperation5 operation. The "output" return
  6169  // value will be populated with the request's response once the request completes
  6170  // successfully.
  6171  //
  6172  // Use "Send" method on the returned Request to send the API call to the service.
  6173  // the "output" return value is not valid until after Send returns without error.
  6174  //
  6175  // See InputService25TestCaseOperation5 for more information on using the InputService25TestCaseOperation5
  6176  // API call, and error handling.
  6177  //
  6178  // This method is useful when you want to inject custom logic or configuration
  6179  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6180  //
  6181  //
  6182  //    // Example sending a request using the InputService25TestCaseOperation5Request method.
  6183  //    req, resp := client.InputService25TestCaseOperation5Request(params)
  6184  //
  6185  //    err := req.Send()
  6186  //    if err == nil { // resp is now filled
  6187  //        fmt.Println(resp)
  6188  //    }
  6189  func (c *InputService25ProtocolTest) InputService25TestCaseOperation5Request(input *InputService25TestShapeInputService25TestCaseOperation5Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation5Output) {
  6190  	op := &request.Operation{
  6191  		Name:       opInputService25TestCaseOperation5,
  6192  		HTTPMethod: "POST",
  6193  		HTTPPath:   "/blob-payload",
  6194  	}
  6195  
  6196  	if input == nil {
  6197  		input = &InputService25TestShapeInputService25TestCaseOperation5Input{}
  6198  	}
  6199  
  6200  	output = &InputService25TestShapeInputService25TestCaseOperation5Output{}
  6201  	req = c.newRequest(op, input, output)
  6202  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6203  	return
  6204  }
  6205  
  6206  // InputService25TestCaseOperation5 API operation for .
  6207  //
  6208  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6209  // with awserr.Error's Code and Message methods to get detailed information about
  6210  // the error.
  6211  //
  6212  // See the AWS API reference guide for 's
  6213  // API operation InputService25TestCaseOperation5 for usage and error information.
  6214  func (c *InputService25ProtocolTest) InputService25TestCaseOperation5(input *InputService25TestShapeInputService25TestCaseOperation5Input) (*InputService25TestShapeInputService25TestCaseOperation5Output, error) {
  6215  	req, out := c.InputService25TestCaseOperation5Request(input)
  6216  	return out, req.Send()
  6217  }
  6218  
  6219  // InputService25TestCaseOperation5WithContext is the same as InputService25TestCaseOperation5 with the addition of
  6220  // the ability to pass a context and additional request options.
  6221  //
  6222  // See InputService25TestCaseOperation5 for details on how to use this API operation.
  6223  //
  6224  // The context must be non-nil and will be used for request cancellation. If
  6225  // the context is nil a panic will occur. In the future the SDK may create
  6226  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6227  // for more information on using Contexts.
  6228  func (c *InputService25ProtocolTest) InputService25TestCaseOperation5WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation5Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation5Output, error) {
  6229  	req, out := c.InputService25TestCaseOperation5Request(input)
  6230  	req.SetContext(ctx)
  6231  	req.ApplyOptions(opts...)
  6232  	return out, req.Send()
  6233  }
  6234  
  6235  const opInputService25TestCaseOperation6 = "TestBlobPayloadNoParams"
  6236  
  6237  // InputService25TestCaseOperation6Request generates a "aws/request.Request" representing the
  6238  // client's request for the InputService25TestCaseOperation6 operation. The "output" return
  6239  // value will be populated with the request's response once the request completes
  6240  // successfully.
  6241  //
  6242  // Use "Send" method on the returned Request to send the API call to the service.
  6243  // the "output" return value is not valid until after Send returns without error.
  6244  //
  6245  // See InputService25TestCaseOperation6 for more information on using the InputService25TestCaseOperation6
  6246  // API call, and error handling.
  6247  //
  6248  // This method is useful when you want to inject custom logic or configuration
  6249  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6250  //
  6251  //
  6252  //    // Example sending a request using the InputService25TestCaseOperation6Request method.
  6253  //    req, resp := client.InputService25TestCaseOperation6Request(params)
  6254  //
  6255  //    err := req.Send()
  6256  //    if err == nil { // resp is now filled
  6257  //        fmt.Println(resp)
  6258  //    }
  6259  func (c *InputService25ProtocolTest) InputService25TestCaseOperation6Request(input *InputService25TestShapeInputService25TestCaseOperation6Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation6Output) {
  6260  	op := &request.Operation{
  6261  		Name:       opInputService25TestCaseOperation6,
  6262  		HTTPMethod: "POST",
  6263  		HTTPPath:   "/blob-payload",
  6264  	}
  6265  
  6266  	if input == nil {
  6267  		input = &InputService25TestShapeInputService25TestCaseOperation6Input{}
  6268  	}
  6269  
  6270  	output = &InputService25TestShapeInputService25TestCaseOperation6Output{}
  6271  	req = c.newRequest(op, input, output)
  6272  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6273  	return
  6274  }
  6275  
  6276  // InputService25TestCaseOperation6 API operation for .
  6277  //
  6278  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6279  // with awserr.Error's Code and Message methods to get detailed information about
  6280  // the error.
  6281  //
  6282  // See the AWS API reference guide for 's
  6283  // API operation InputService25TestCaseOperation6 for usage and error information.
  6284  func (c *InputService25ProtocolTest) InputService25TestCaseOperation6(input *InputService25TestShapeInputService25TestCaseOperation6Input) (*InputService25TestShapeInputService25TestCaseOperation6Output, error) {
  6285  	req, out := c.InputService25TestCaseOperation6Request(input)
  6286  	return out, req.Send()
  6287  }
  6288  
  6289  // InputService25TestCaseOperation6WithContext is the same as InputService25TestCaseOperation6 with the addition of
  6290  // the ability to pass a context and additional request options.
  6291  //
  6292  // See InputService25TestCaseOperation6 for details on how to use this API operation.
  6293  //
  6294  // The context must be non-nil and will be used for request cancellation. If
  6295  // the context is nil a panic will occur. In the future the SDK may create
  6296  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6297  // for more information on using Contexts.
  6298  func (c *InputService25ProtocolTest) InputService25TestCaseOperation6WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation6Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation6Output, error) {
  6299  	req, out := c.InputService25TestCaseOperation6Request(input)
  6300  	req.SetContext(ctx)
  6301  	req.ApplyOptions(opts...)
  6302  	return out, req.Send()
  6303  }
  6304  
  6305  const opInputService25TestCaseOperation7 = "NoPayload"
  6306  
  6307  // InputService25TestCaseOperation7Request generates a "aws/request.Request" representing the
  6308  // client's request for the InputService25TestCaseOperation7 operation. The "output" return
  6309  // value will be populated with the request's response once the request completes
  6310  // successfully.
  6311  //
  6312  // Use "Send" method on the returned Request to send the API call to the service.
  6313  // the "output" return value is not valid until after Send returns without error.
  6314  //
  6315  // See InputService25TestCaseOperation7 for more information on using the InputService25TestCaseOperation7
  6316  // API call, and error handling.
  6317  //
  6318  // This method is useful when you want to inject custom logic or configuration
  6319  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6320  //
  6321  //
  6322  //    // Example sending a request using the InputService25TestCaseOperation7Request method.
  6323  //    req, resp := client.InputService25TestCaseOperation7Request(params)
  6324  //
  6325  //    err := req.Send()
  6326  //    if err == nil { // resp is now filled
  6327  //        fmt.Println(resp)
  6328  //    }
  6329  func (c *InputService25ProtocolTest) InputService25TestCaseOperation7Request(input *InputService25TestShapeInputService25TestCaseOperation7Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation7Output) {
  6330  	op := &request.Operation{
  6331  		Name:       opInputService25TestCaseOperation7,
  6332  		HTTPMethod: "GET",
  6333  		HTTPPath:   "/no-payload",
  6334  	}
  6335  
  6336  	if input == nil {
  6337  		input = &InputService25TestShapeInputService25TestCaseOperation7Input{}
  6338  	}
  6339  
  6340  	output = &InputService25TestShapeInputService25TestCaseOperation7Output{}
  6341  	req = c.newRequest(op, input, output)
  6342  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6343  	return
  6344  }
  6345  
  6346  // InputService25TestCaseOperation7 API operation for .
  6347  //
  6348  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6349  // with awserr.Error's Code and Message methods to get detailed information about
  6350  // the error.
  6351  //
  6352  // See the AWS API reference guide for 's
  6353  // API operation InputService25TestCaseOperation7 for usage and error information.
  6354  func (c *InputService25ProtocolTest) InputService25TestCaseOperation7(input *InputService25TestShapeInputService25TestCaseOperation7Input) (*InputService25TestShapeInputService25TestCaseOperation7Output, error) {
  6355  	req, out := c.InputService25TestCaseOperation7Request(input)
  6356  	return out, req.Send()
  6357  }
  6358  
  6359  // InputService25TestCaseOperation7WithContext is the same as InputService25TestCaseOperation7 with the addition of
  6360  // the ability to pass a context and additional request options.
  6361  //
  6362  // See InputService25TestCaseOperation7 for details on how to use this API operation.
  6363  //
  6364  // The context must be non-nil and will be used for request cancellation. If
  6365  // the context is nil a panic will occur. In the future the SDK may create
  6366  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6367  // for more information on using Contexts.
  6368  func (c *InputService25ProtocolTest) InputService25TestCaseOperation7WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation7Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation7Output, error) {
  6369  	req, out := c.InputService25TestCaseOperation7Request(input)
  6370  	req.SetContext(ctx)
  6371  	req.ApplyOptions(opts...)
  6372  	return out, req.Send()
  6373  }
  6374  
  6375  const opInputService25TestCaseOperation8 = "NoPayloadWithHeader"
  6376  
  6377  // InputService25TestCaseOperation8Request generates a "aws/request.Request" representing the
  6378  // client's request for the InputService25TestCaseOperation8 operation. The "output" return
  6379  // value will be populated with the request's response once the request completes
  6380  // successfully.
  6381  //
  6382  // Use "Send" method on the returned Request to send the API call to the service.
  6383  // the "output" return value is not valid until after Send returns without error.
  6384  //
  6385  // See InputService25TestCaseOperation8 for more information on using the InputService25TestCaseOperation8
  6386  // API call, and error handling.
  6387  //
  6388  // This method is useful when you want to inject custom logic or configuration
  6389  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6390  //
  6391  //
  6392  //    // Example sending a request using the InputService25TestCaseOperation8Request method.
  6393  //    req, resp := client.InputService25TestCaseOperation8Request(params)
  6394  //
  6395  //    err := req.Send()
  6396  //    if err == nil { // resp is now filled
  6397  //        fmt.Println(resp)
  6398  //    }
  6399  func (c *InputService25ProtocolTest) InputService25TestCaseOperation8Request(input *InputService25TestShapeInputService25TestCaseOperation8Input) (req *request.Request, output *InputService25TestShapeInputService25TestCaseOperation8Output) {
  6400  	op := &request.Operation{
  6401  		Name:       opInputService25TestCaseOperation8,
  6402  		HTTPMethod: "GET",
  6403  		HTTPPath:   "/no-payload",
  6404  	}
  6405  
  6406  	if input == nil {
  6407  		input = &InputService25TestShapeInputService25TestCaseOperation8Input{}
  6408  	}
  6409  
  6410  	output = &InputService25TestShapeInputService25TestCaseOperation8Output{}
  6411  	req = c.newRequest(op, input, output)
  6412  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  6413  	return
  6414  }
  6415  
  6416  // InputService25TestCaseOperation8 API operation for .
  6417  //
  6418  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6419  // with awserr.Error's Code and Message methods to get detailed information about
  6420  // the error.
  6421  //
  6422  // See the AWS API reference guide for 's
  6423  // API operation InputService25TestCaseOperation8 for usage and error information.
  6424  func (c *InputService25ProtocolTest) InputService25TestCaseOperation8(input *InputService25TestShapeInputService25TestCaseOperation8Input) (*InputService25TestShapeInputService25TestCaseOperation8Output, error) {
  6425  	req, out := c.InputService25TestCaseOperation8Request(input)
  6426  	return out, req.Send()
  6427  }
  6428  
  6429  // InputService25TestCaseOperation8WithContext is the same as InputService25TestCaseOperation8 with the addition of
  6430  // the ability to pass a context and additional request options.
  6431  //
  6432  // See InputService25TestCaseOperation8 for details on how to use this API operation.
  6433  //
  6434  // The context must be non-nil and will be used for request cancellation. If
  6435  // the context is nil a panic will occur. In the future the SDK may create
  6436  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6437  // for more information on using Contexts.
  6438  func (c *InputService25ProtocolTest) InputService25TestCaseOperation8WithContext(ctx aws.Context, input *InputService25TestShapeInputService25TestCaseOperation8Input, opts ...request.Option) (*InputService25TestShapeInputService25TestCaseOperation8Output, error) {
  6439  	req, out := c.InputService25TestCaseOperation8Request(input)
  6440  	req.SetContext(ctx)
  6441  	req.ApplyOptions(opts...)
  6442  	return out, req.Send()
  6443  }
  6444  
  6445  type InputService25TestShapeInputService25TestCaseOperation1Input struct {
  6446  	_ struct{} `type:"structure"`
  6447  
  6448  	TestConfig *InputService25TestShapeTestConfig `locationName:"testConfig" type:"structure"`
  6449  
  6450  	TestId *string `location:"header" locationName:"x-amz-test-id" min:"3" type:"string"`
  6451  }
  6452  
  6453  // Validate inspects the fields of the type to determine if they are valid.
  6454  func (s *InputService25TestShapeInputService25TestCaseOperation1Input) Validate() error {
  6455  	invalidParams := request.ErrInvalidParams{Context: "InputService25TestShapeInputService25TestCaseOperation1Input"}
  6456  	if s.TestId != nil && len(*s.TestId) < 3 {
  6457  		invalidParams.Add(request.NewErrParamMinLen("TestId", 3))
  6458  	}
  6459  
  6460  	if invalidParams.Len() > 0 {
  6461  		return invalidParams
  6462  	}
  6463  	return nil
  6464  }
  6465  
  6466  // SetTestConfig sets the TestConfig field's value.
  6467  func (s *InputService25TestShapeInputService25TestCaseOperation1Input) SetTestConfig(v *InputService25TestShapeTestConfig) *InputService25TestShapeInputService25TestCaseOperation1Input {
  6468  	s.TestConfig = v
  6469  	return s
  6470  }
  6471  
  6472  // SetTestId sets the TestId field's value.
  6473  func (s *InputService25TestShapeInputService25TestCaseOperation1Input) SetTestId(v string) *InputService25TestShapeInputService25TestCaseOperation1Input {
  6474  	s.TestId = &v
  6475  	return s
  6476  }
  6477  
  6478  type InputService25TestShapeInputService25TestCaseOperation1Output struct {
  6479  	_ struct{} `type:"structure" nopayload:"true"`
  6480  }
  6481  
  6482  type InputService25TestShapeInputService25TestCaseOperation2Input struct {
  6483  	_ struct{} `type:"structure" payload:"PayloadConfig"`
  6484  
  6485  	PayloadConfig *InputService25TestShapePayloadConfig `locationName:"payloadConfig" type:"structure"`
  6486  
  6487  	TestId *string `location:"header" locationName:"x-amz-test-id" min:"3" type:"string"`
  6488  }
  6489  
  6490  // Validate inspects the fields of the type to determine if they are valid.
  6491  func (s *InputService25TestShapeInputService25TestCaseOperation2Input) Validate() error {
  6492  	invalidParams := request.ErrInvalidParams{Context: "InputService25TestShapeInputService25TestCaseOperation2Input"}
  6493  	if s.TestId != nil && len(*s.TestId) < 3 {
  6494  		invalidParams.Add(request.NewErrParamMinLen("TestId", 3))
  6495  	}
  6496  
  6497  	if invalidParams.Len() > 0 {
  6498  		return invalidParams
  6499  	}
  6500  	return nil
  6501  }
  6502  
  6503  // SetPayloadConfig sets the PayloadConfig field's value.
  6504  func (s *InputService25TestShapeInputService25TestCaseOperation2Input) SetPayloadConfig(v *InputService25TestShapePayloadConfig) *InputService25TestShapeInputService25TestCaseOperation2Input {
  6505  	s.PayloadConfig = v
  6506  	return s
  6507  }
  6508  
  6509  // SetTestId sets the TestId field's value.
  6510  func (s *InputService25TestShapeInputService25TestCaseOperation2Input) SetTestId(v string) *InputService25TestShapeInputService25TestCaseOperation2Input {
  6511  	s.TestId = &v
  6512  	return s
  6513  }
  6514  
  6515  type InputService25TestShapeInputService25TestCaseOperation2Output struct {
  6516  	_ struct{} `type:"structure" nopayload:"true"`
  6517  }
  6518  
  6519  type InputService25TestShapeInputService25TestCaseOperation3Input struct {
  6520  	_ struct{} `type:"structure" payload:"PayloadConfig"`
  6521  
  6522  	PayloadConfig *InputService25TestShapePayloadConfig `locationName:"payloadConfig" type:"structure"`
  6523  
  6524  	TestId *string `location:"header" locationName:"x-amz-test-id" min:"3" type:"string"`
  6525  }
  6526  
  6527  // Validate inspects the fields of the type to determine if they are valid.
  6528  func (s *InputService25TestShapeInputService25TestCaseOperation3Input) Validate() error {
  6529  	invalidParams := request.ErrInvalidParams{Context: "InputService25TestShapeInputService25TestCaseOperation3Input"}
  6530  	if s.TestId != nil && len(*s.TestId) < 3 {
  6531  		invalidParams.Add(request.NewErrParamMinLen("TestId", 3))
  6532  	}
  6533  
  6534  	if invalidParams.Len() > 0 {
  6535  		return invalidParams
  6536  	}
  6537  	return nil
  6538  }
  6539  
  6540  // SetPayloadConfig sets the PayloadConfig field's value.
  6541  func (s *InputService25TestShapeInputService25TestCaseOperation3Input) SetPayloadConfig(v *InputService25TestShapePayloadConfig) *InputService25TestShapeInputService25TestCaseOperation3Input {
  6542  	s.PayloadConfig = v
  6543  	return s
  6544  }
  6545  
  6546  // SetTestId sets the TestId field's value.
  6547  func (s *InputService25TestShapeInputService25TestCaseOperation3Input) SetTestId(v string) *InputService25TestShapeInputService25TestCaseOperation3Input {
  6548  	s.TestId = &v
  6549  	return s
  6550  }
  6551  
  6552  type InputService25TestShapeInputService25TestCaseOperation3Output struct {
  6553  	_ struct{} `type:"structure" nopayload:"true"`
  6554  }
  6555  
  6556  type InputService25TestShapeInputService25TestCaseOperation4Input struct {
  6557  	_ struct{} `type:"structure" payload:"PayloadConfig"`
  6558  
  6559  	PayloadConfig *InputService25TestShapePayloadConfig `locationName:"payloadConfig" type:"structure"`
  6560  
  6561  	TestId *string `location:"header" locationName:"x-amz-test-id" min:"3" type:"string"`
  6562  }
  6563  
  6564  // Validate inspects the fields of the type to determine if they are valid.
  6565  func (s *InputService25TestShapeInputService25TestCaseOperation4Input) Validate() error {
  6566  	invalidParams := request.ErrInvalidParams{Context: "InputService25TestShapeInputService25TestCaseOperation4Input"}
  6567  	if s.TestId != nil && len(*s.TestId) < 3 {
  6568  		invalidParams.Add(request.NewErrParamMinLen("TestId", 3))
  6569  	}
  6570  
  6571  	if invalidParams.Len() > 0 {
  6572  		return invalidParams
  6573  	}
  6574  	return nil
  6575  }
  6576  
  6577  // SetPayloadConfig sets the PayloadConfig field's value.
  6578  func (s *InputService25TestShapeInputService25TestCaseOperation4Input) SetPayloadConfig(v *InputService25TestShapePayloadConfig) *InputService25TestShapeInputService25TestCaseOperation4Input {
  6579  	s.PayloadConfig = v
  6580  	return s
  6581  }
  6582  
  6583  // SetTestId sets the TestId field's value.
  6584  func (s *InputService25TestShapeInputService25TestCaseOperation4Input) SetTestId(v string) *InputService25TestShapeInputService25TestCaseOperation4Input {
  6585  	s.TestId = &v
  6586  	return s
  6587  }
  6588  
  6589  type InputService25TestShapeInputService25TestCaseOperation4Output struct {
  6590  	_ struct{} `type:"structure" nopayload:"true"`
  6591  }
  6592  
  6593  type InputService25TestShapeInputService25TestCaseOperation5Input struct {
  6594  	_ struct{} `type:"structure" payload:"Data"`
  6595  
  6596  	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
  6597  
  6598  	Data []byte `locationName:"data" type:"blob"`
  6599  }
  6600  
  6601  // SetContentType sets the ContentType field's value.
  6602  func (s *InputService25TestShapeInputService25TestCaseOperation5Input) SetContentType(v string) *InputService25TestShapeInputService25TestCaseOperation5Input {
  6603  	s.ContentType = &v
  6604  	return s
  6605  }
  6606  
  6607  // SetData sets the Data field's value.
  6608  func (s *InputService25TestShapeInputService25TestCaseOperation5Input) SetData(v []byte) *InputService25TestShapeInputService25TestCaseOperation5Input {
  6609  	s.Data = v
  6610  	return s
  6611  }
  6612  
  6613  type InputService25TestShapeInputService25TestCaseOperation5Output struct {
  6614  	_ struct{} `type:"structure" nopayload:"true"`
  6615  }
  6616  
  6617  type InputService25TestShapeInputService25TestCaseOperation6Input struct {
  6618  	_ struct{} `type:"structure" payload:"Data"`
  6619  
  6620  	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
  6621  
  6622  	Data []byte `locationName:"data" type:"blob"`
  6623  }
  6624  
  6625  // SetContentType sets the ContentType field's value.
  6626  func (s *InputService25TestShapeInputService25TestCaseOperation6Input) SetContentType(v string) *InputService25TestShapeInputService25TestCaseOperation6Input {
  6627  	s.ContentType = &v
  6628  	return s
  6629  }
  6630  
  6631  // SetData sets the Data field's value.
  6632  func (s *InputService25TestShapeInputService25TestCaseOperation6Input) SetData(v []byte) *InputService25TestShapeInputService25TestCaseOperation6Input {
  6633  	s.Data = v
  6634  	return s
  6635  }
  6636  
  6637  type InputService25TestShapeInputService25TestCaseOperation6Output struct {
  6638  	_ struct{} `type:"structure" nopayload:"true"`
  6639  }
  6640  
  6641  type InputService25TestShapeInputService25TestCaseOperation7Input struct {
  6642  	_ struct{} `type:"structure" nopayload:"true"`
  6643  
  6644  	TestId *string `location:"header" locationName:"x-amz-test-id" min:"3" type:"string"`
  6645  }
  6646  
  6647  // Validate inspects the fields of the type to determine if they are valid.
  6648  func (s *InputService25TestShapeInputService25TestCaseOperation7Input) Validate() error {
  6649  	invalidParams := request.ErrInvalidParams{Context: "InputService25TestShapeInputService25TestCaseOperation7Input"}
  6650  	if s.TestId != nil && len(*s.TestId) < 3 {
  6651  		invalidParams.Add(request.NewErrParamMinLen("TestId", 3))
  6652  	}
  6653  
  6654  	if invalidParams.Len() > 0 {
  6655  		return invalidParams
  6656  	}
  6657  	return nil
  6658  }
  6659  
  6660  // SetTestId sets the TestId field's value.
  6661  func (s *InputService25TestShapeInputService25TestCaseOperation7Input) SetTestId(v string) *InputService25TestShapeInputService25TestCaseOperation7Input {
  6662  	s.TestId = &v
  6663  	return s
  6664  }
  6665  
  6666  type InputService25TestShapeInputService25TestCaseOperation7Output struct {
  6667  	_ struct{} `type:"structure" nopayload:"true"`
  6668  }
  6669  
  6670  type InputService25TestShapeInputService25TestCaseOperation8Input struct {
  6671  	_ struct{} `type:"structure" nopayload:"true"`
  6672  
  6673  	TestId *string `location:"header" locationName:"x-amz-test-id" min:"3" type:"string"`
  6674  }
  6675  
  6676  // Validate inspects the fields of the type to determine if they are valid.
  6677  func (s *InputService25TestShapeInputService25TestCaseOperation8Input) Validate() error {
  6678  	invalidParams := request.ErrInvalidParams{Context: "InputService25TestShapeInputService25TestCaseOperation8Input"}
  6679  	if s.TestId != nil && len(*s.TestId) < 3 {
  6680  		invalidParams.Add(request.NewErrParamMinLen("TestId", 3))
  6681  	}
  6682  
  6683  	if invalidParams.Len() > 0 {
  6684  		return invalidParams
  6685  	}
  6686  	return nil
  6687  }
  6688  
  6689  // SetTestId sets the TestId field's value.
  6690  func (s *InputService25TestShapeInputService25TestCaseOperation8Input) SetTestId(v string) *InputService25TestShapeInputService25TestCaseOperation8Input {
  6691  	s.TestId = &v
  6692  	return s
  6693  }
  6694  
  6695  type InputService25TestShapeInputService25TestCaseOperation8Output struct {
  6696  	_ struct{} `type:"structure" nopayload:"true"`
  6697  }
  6698  
  6699  type InputService25TestShapePayloadConfig struct {
  6700  	_ struct{} `type:"structure"`
  6701  
  6702  	Data *int64 `locationName:"data" type:"integer"`
  6703  }
  6704  
  6705  // SetData sets the Data field's value.
  6706  func (s *InputService25TestShapePayloadConfig) SetData(v int64) *InputService25TestShapePayloadConfig {
  6707  	s.Data = &v
  6708  	return s
  6709  }
  6710  
  6711  type InputService25TestShapeTestConfig struct {
  6712  	_ struct{} `type:"structure"`
  6713  
  6714  	Timeout *int64 `locationName:"timeout" type:"integer"`
  6715  }
  6716  
  6717  // SetTimeout sets the Timeout field's value.
  6718  func (s *InputService25TestShapeTestConfig) SetTimeout(v int64) *InputService25TestShapeTestConfig {
  6719  	s.Timeout = &v
  6720  	return s
  6721  }
  6722  
  6723  //
  6724  // Tests begin here
  6725  //
  6726  
  6727  func TestInputService1ProtocolTestNoParametersCase1(t *testing.T) {
  6728  	svc := NewInputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6729  	req, _ := svc.InputService1TestCaseOperation1Request(nil)
  6730  	r := req.HTTPRequest
  6731  
  6732  	// build request
  6733  	req.Build()
  6734  	if req.Error != nil {
  6735  		t.Errorf("expect no error, got %v", req.Error)
  6736  	}
  6737  	req.Sign()
  6738  	if req.Error != nil {
  6739  		t.Errorf("expect no error, got %v", req.Error)
  6740  	}
  6741  
  6742  	// assert URL
  6743  	awstesting.AssertURL(t, "https://test/2014-01-01/jobs", r.URL.String())
  6744  }
  6745  
  6746  func TestInputService2ProtocolTestURIParameterOnlyWithNoLocationNameCase1(t *testing.T) {
  6747  	svc := NewInputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6748  	input := &InputService2TestShapeInputService2TestCaseOperation1Input{
  6749  		PipelineId: aws.String("foo"),
  6750  	}
  6751  	req, _ := svc.InputService2TestCaseOperation1Request(input)
  6752  	r := req.HTTPRequest
  6753  
  6754  	// build request
  6755  	req.Build()
  6756  	if req.Error != nil {
  6757  		t.Errorf("expect no error, got %v", req.Error)
  6758  	}
  6759  	req.Sign()
  6760  	if req.Error != nil {
  6761  		t.Errorf("expect no error, got %v", req.Error)
  6762  	}
  6763  
  6764  	// assert URL
  6765  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo", r.URL.String())
  6766  }
  6767  
  6768  func TestInputService3ProtocolTestURIParameterOnlyWithLocationNameCase1(t *testing.T) {
  6769  	svc := NewInputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6770  	input := &InputService3TestShapeInputService3TestCaseOperation1Input{
  6771  		Foo: aws.String("bar"),
  6772  	}
  6773  	req, _ := svc.InputService3TestCaseOperation1Request(input)
  6774  	r := req.HTTPRequest
  6775  
  6776  	// build request
  6777  	req.Build()
  6778  	if req.Error != nil {
  6779  		t.Errorf("expect no error, got %v", req.Error)
  6780  	}
  6781  	req.Sign()
  6782  	if req.Error != nil {
  6783  		t.Errorf("expect no error, got %v", req.Error)
  6784  	}
  6785  
  6786  	// assert URL
  6787  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/bar", r.URL.String())
  6788  }
  6789  
  6790  func TestInputService4ProtocolTestQuerystringListOfStringsCase1(t *testing.T) {
  6791  	svc := NewInputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6792  	input := &InputService4TestShapeInputService4TestCaseOperation1Input{
  6793  		Items: []*string{
  6794  			aws.String("value1"),
  6795  			aws.String("value2"),
  6796  		},
  6797  	}
  6798  	req, _ := svc.InputService4TestCaseOperation1Request(input)
  6799  	r := req.HTTPRequest
  6800  
  6801  	// build request
  6802  	req.Build()
  6803  	if req.Error != nil {
  6804  		t.Errorf("expect no error, got %v", req.Error)
  6805  	}
  6806  	req.Sign()
  6807  	if req.Error != nil {
  6808  		t.Errorf("expect no error, got %v", req.Error)
  6809  	}
  6810  
  6811  	// assert URL
  6812  	awstesting.AssertURL(t, "https://test/path?item=value1&item=value2", r.URL.String())
  6813  }
  6814  
  6815  func TestInputService5ProtocolTestStringToStringMapsInQuerystringCase1(t *testing.T) {
  6816  	svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6817  	input := &InputService5TestShapeInputService5TestCaseOperation1Input{
  6818  		PipelineId: aws.String("foo"),
  6819  		QueryDoc: map[string]*string{
  6820  			"bar":  aws.String("baz"),
  6821  			"fizz": aws.String("buzz"),
  6822  		},
  6823  	}
  6824  	req, _ := svc.InputService5TestCaseOperation1Request(input)
  6825  	r := req.HTTPRequest
  6826  
  6827  	// build request
  6828  	req.Build()
  6829  	if req.Error != nil {
  6830  		t.Errorf("expect no error, got %v", req.Error)
  6831  	}
  6832  	req.Sign()
  6833  	if req.Error != nil {
  6834  		t.Errorf("expect no error, got %v", req.Error)
  6835  	}
  6836  
  6837  	// assert URL
  6838  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?bar=baz&fizz=buzz", r.URL.String())
  6839  }
  6840  
  6841  func TestInputService6ProtocolTestStringToStringListMapsInQuerystringCase1(t *testing.T) {
  6842  	svc := NewInputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6843  	input := &InputService6TestShapeInputService6TestCaseOperation1Input{
  6844  		PipelineId: aws.String("id"),
  6845  		QueryDoc: map[string][]*string{
  6846  			"fizz": {
  6847  				aws.String("buzz"),
  6848  				aws.String("pop"),
  6849  			},
  6850  			"foo": {
  6851  				aws.String("bar"),
  6852  				aws.String("baz"),
  6853  			},
  6854  		},
  6855  	}
  6856  	req, _ := svc.InputService6TestCaseOperation1Request(input)
  6857  	r := req.HTTPRequest
  6858  
  6859  	// build request
  6860  	req.Build()
  6861  	if req.Error != nil {
  6862  		t.Errorf("expect no error, got %v", req.Error)
  6863  	}
  6864  	req.Sign()
  6865  	if req.Error != nil {
  6866  		t.Errorf("expect no error, got %v", req.Error)
  6867  	}
  6868  
  6869  	// assert URL
  6870  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/id?foo=bar&foo=baz&fizz=buzz&fizz=pop", r.URL.String())
  6871  }
  6872  
  6873  func TestInputService7ProtocolTestBooleanInQuerystringCase1(t *testing.T) {
  6874  	svc := NewInputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6875  	input := &InputService7TestShapeInputService7TestCaseOperation1Input{
  6876  		BoolQuery: aws.Bool(true),
  6877  	}
  6878  	req, _ := svc.InputService7TestCaseOperation1Request(input)
  6879  	r := req.HTTPRequest
  6880  
  6881  	// build request
  6882  	req.Build()
  6883  	if req.Error != nil {
  6884  		t.Errorf("expect no error, got %v", req.Error)
  6885  	}
  6886  	req.Sign()
  6887  	if req.Error != nil {
  6888  		t.Errorf("expect no error, got %v", req.Error)
  6889  	}
  6890  
  6891  	// assert URL
  6892  	awstesting.AssertURL(t, "https://test/path?bool-query=true", r.URL.String())
  6893  }
  6894  
  6895  func TestInputService7ProtocolTestBooleanInQuerystringCase2(t *testing.T) {
  6896  	svc := NewInputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6897  	input := &InputService7TestShapeInputService7TestCaseOperation2Input{
  6898  		BoolQuery: aws.Bool(false),
  6899  	}
  6900  	req, _ := svc.InputService7TestCaseOperation2Request(input)
  6901  	r := req.HTTPRequest
  6902  
  6903  	// build request
  6904  	req.Build()
  6905  	if req.Error != nil {
  6906  		t.Errorf("expect no error, got %v", req.Error)
  6907  	}
  6908  	req.Sign()
  6909  	if req.Error != nil {
  6910  		t.Errorf("expect no error, got %v", req.Error)
  6911  	}
  6912  
  6913  	// assert URL
  6914  	awstesting.AssertURL(t, "https://test/path?bool-query=false", r.URL.String())
  6915  }
  6916  
  6917  func TestInputService8ProtocolTestURIParameterAndQuerystringParamsCase1(t *testing.T) {
  6918  	svc := NewInputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6919  	input := &InputService8TestShapeInputService8TestCaseOperation1Input{
  6920  		Ascending:  aws.String("true"),
  6921  		PageToken:  aws.String("bar"),
  6922  		PipelineId: aws.String("foo"),
  6923  	}
  6924  	req, _ := svc.InputService8TestCaseOperation1Request(input)
  6925  	r := req.HTTPRequest
  6926  
  6927  	// build request
  6928  	req.Build()
  6929  	if req.Error != nil {
  6930  		t.Errorf("expect no error, got %v", req.Error)
  6931  	}
  6932  	req.Sign()
  6933  	if req.Error != nil {
  6934  		t.Errorf("expect no error, got %v", req.Error)
  6935  	}
  6936  
  6937  	// assert URL
  6938  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?Ascending=true&PageToken=bar", r.URL.String())
  6939  }
  6940  
  6941  func TestInputService9ProtocolTestURIParameterQuerystringParamsAndJSONBodyCase1(t *testing.T) {
  6942  	svc := NewInputService9ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6943  	input := &InputService9TestShapeInputService9TestCaseOperation1Input{
  6944  		Ascending: aws.String("true"),
  6945  		Config: &InputService9TestShapeStructType{
  6946  			A: aws.String("one"),
  6947  			B: aws.String("two"),
  6948  		},
  6949  		PageToken:  aws.String("bar"),
  6950  		PipelineId: aws.String("foo"),
  6951  	}
  6952  	req, _ := svc.InputService9TestCaseOperation1Request(input)
  6953  	r := req.HTTPRequest
  6954  
  6955  	// build request
  6956  	req.Build()
  6957  	if req.Error != nil {
  6958  		t.Errorf("expect no error, got %v", req.Error)
  6959  	}
  6960  	req.Sign()
  6961  	if req.Error != nil {
  6962  		t.Errorf("expect no error, got %v", req.Error)
  6963  	}
  6964  
  6965  	// assert body
  6966  	if r.Body == nil {
  6967  		t.Errorf("expect body not to be nil")
  6968  	}
  6969  	body, _ := ioutil.ReadAll(r.Body)
  6970  	awstesting.AssertJSON(t, `{"Config": {"A": "one", "B": "two"}}`, util.Trim(string(body)))
  6971  
  6972  	if e, a := int64(len(body)), r.ContentLength; e != a {
  6973  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  6974  	}
  6975  
  6976  	// assert URL
  6977  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?Ascending=true&PageToken=bar", r.URL.String())
  6978  }
  6979  
  6980  func TestInputService10ProtocolTestURIParameterQuerystringParamsHeadersAndJSONBodyCase1(t *testing.T) {
  6981  	svc := NewInputService10ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  6982  	input := &InputService10TestShapeInputService10TestCaseOperation1Input{
  6983  		Ascending: aws.String("true"),
  6984  		Checksum:  aws.String("12345"),
  6985  		Config: &InputService10TestShapeStructType{
  6986  			A: aws.String("one"),
  6987  			B: aws.String("two"),
  6988  		},
  6989  		PageToken:  aws.String("bar"),
  6990  		PipelineId: aws.String("foo"),
  6991  	}
  6992  	req, _ := svc.InputService10TestCaseOperation1Request(input)
  6993  	r := req.HTTPRequest
  6994  
  6995  	// build request
  6996  	req.Build()
  6997  	if req.Error != nil {
  6998  		t.Errorf("expect no error, got %v", req.Error)
  6999  	}
  7000  	req.Sign()
  7001  	if req.Error != nil {
  7002  		t.Errorf("expect no error, got %v", req.Error)
  7003  	}
  7004  
  7005  	// assert body
  7006  	if r.Body == nil {
  7007  		t.Errorf("expect body not to be nil")
  7008  	}
  7009  	body, _ := ioutil.ReadAll(r.Body)
  7010  	awstesting.AssertJSON(t, `{"Config": {"A": "one", "B": "two"}}`, util.Trim(string(body)))
  7011  
  7012  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7013  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7014  	}
  7015  
  7016  	// assert URL
  7017  	awstesting.AssertURL(t, "https://test/2014-01-01/jobsByPipeline/foo?Ascending=true&PageToken=bar", r.URL.String())
  7018  
  7019  	// assert headers
  7020  	if e, a := "12345", r.Header.Get("x-amz-checksum"); e != a {
  7021  		t.Errorf("expect x-amz-checksum %v header value, got %v", e, a)
  7022  	}
  7023  }
  7024  
  7025  func TestInputService11ProtocolTestStreamingPayloadCase1(t *testing.T) {
  7026  	svc := NewInputService11ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7027  	input := &InputService11TestShapeInputService11TestCaseOperation1Input{
  7028  		Body:      bytes.NewReader([]byte("contents")),
  7029  		Checksum:  aws.String("foo"),
  7030  		VaultName: aws.String("name"),
  7031  	}
  7032  	req, _ := svc.InputService11TestCaseOperation1Request(input)
  7033  	r := req.HTTPRequest
  7034  
  7035  	// build request
  7036  	req.Build()
  7037  	if req.Error != nil {
  7038  		t.Errorf("expect no error, got %v", req.Error)
  7039  	}
  7040  	req.Sign()
  7041  	if req.Error != nil {
  7042  		t.Errorf("expect no error, got %v", req.Error)
  7043  	}
  7044  
  7045  	// assert body
  7046  	if r.Body == nil {
  7047  		t.Errorf("expect body not to be nil")
  7048  	}
  7049  	body, _ := ioutil.ReadAll(r.Body)
  7050  	if e, a := "contents", util.Trim(string(body)); e != a {
  7051  		t.Errorf("expect %v, got %v", e, a)
  7052  	}
  7053  
  7054  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7055  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7056  	}
  7057  
  7058  	// assert URL
  7059  	awstesting.AssertURL(t, "https://test/2014-01-01/vaults/name/archives", r.URL.String())
  7060  
  7061  	// assert headers
  7062  	if e, a := "foo", r.Header.Get("x-amz-sha256-tree-hash"); e != a {
  7063  		t.Errorf("expect x-amz-sha256-tree-hash %v header value, got %v", e, a)
  7064  	}
  7065  }
  7066  
  7067  func TestInputService12ProtocolTestSerializeBlobsInBodyCase1(t *testing.T) {
  7068  	svc := NewInputService12ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7069  	input := &InputService12TestShapeInputService12TestCaseOperation1Input{
  7070  		Bar: []byte("Blob param"),
  7071  		Foo: aws.String("foo_name"),
  7072  	}
  7073  	req, _ := svc.InputService12TestCaseOperation1Request(input)
  7074  	r := req.HTTPRequest
  7075  
  7076  	// build request
  7077  	req.Build()
  7078  	if req.Error != nil {
  7079  		t.Errorf("expect no error, got %v", req.Error)
  7080  	}
  7081  	req.Sign()
  7082  	if req.Error != nil {
  7083  		t.Errorf("expect no error, got %v", req.Error)
  7084  	}
  7085  
  7086  	// assert body
  7087  	if r.Body == nil {
  7088  		t.Errorf("expect body not to be nil")
  7089  	}
  7090  	body, _ := ioutil.ReadAll(r.Body)
  7091  	awstesting.AssertJSON(t, `{"Bar": "QmxvYiBwYXJhbQ=="}`, util.Trim(string(body)))
  7092  
  7093  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7094  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7095  	}
  7096  
  7097  	// assert URL
  7098  	awstesting.AssertURL(t, "https://test/2014-01-01/foo_name", r.URL.String())
  7099  }
  7100  
  7101  func TestInputService13ProtocolTestBlobPayloadCase1(t *testing.T) {
  7102  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7103  	input := &InputService13TestShapeInputService13TestCaseOperation1Input{
  7104  		Foo: []byte("bar"),
  7105  	}
  7106  	req, _ := svc.InputService13TestCaseOperation1Request(input)
  7107  	r := req.HTTPRequest
  7108  
  7109  	// build request
  7110  	req.Build()
  7111  	if req.Error != nil {
  7112  		t.Errorf("expect no error, got %v", req.Error)
  7113  	}
  7114  	req.Sign()
  7115  	if req.Error != nil {
  7116  		t.Errorf("expect no error, got %v", req.Error)
  7117  	}
  7118  
  7119  	// assert body
  7120  	if r.Body == nil {
  7121  		t.Errorf("expect body not to be nil")
  7122  	}
  7123  	body, _ := ioutil.ReadAll(r.Body)
  7124  	if e, a := "bar", util.Trim(string(body)); e != a {
  7125  		t.Errorf("expect %v, got %v", e, a)
  7126  	}
  7127  
  7128  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7129  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7130  	}
  7131  
  7132  	// assert URL
  7133  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7134  }
  7135  
  7136  func TestInputService13ProtocolTestBlobPayloadCase2(t *testing.T) {
  7137  	svc := NewInputService13ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7138  	input := &InputService13TestShapeInputService13TestCaseOperation2Input{}
  7139  	req, _ := svc.InputService13TestCaseOperation2Request(input)
  7140  	r := req.HTTPRequest
  7141  
  7142  	// build request
  7143  	req.Build()
  7144  	if req.Error != nil {
  7145  		t.Errorf("expect no error, got %v", req.Error)
  7146  	}
  7147  	req.Sign()
  7148  	if req.Error != nil {
  7149  		t.Errorf("expect no error, got %v", req.Error)
  7150  	}
  7151  
  7152  	// assert URL
  7153  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7154  }
  7155  
  7156  func TestInputService14ProtocolTestStructurePayloadCase1(t *testing.T) {
  7157  	svc := NewInputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7158  	input := &InputService14TestShapeInputService14TestCaseOperation1Input{
  7159  		Foo: &InputService14TestShapeFooShape{
  7160  			Baz: aws.String("bar"),
  7161  		},
  7162  	}
  7163  	req, _ := svc.InputService14TestCaseOperation1Request(input)
  7164  	r := req.HTTPRequest
  7165  
  7166  	// build request
  7167  	req.Build()
  7168  	if req.Error != nil {
  7169  		t.Errorf("expect no error, got %v", req.Error)
  7170  	}
  7171  	req.Sign()
  7172  	if req.Error != nil {
  7173  		t.Errorf("expect no error, got %v", req.Error)
  7174  	}
  7175  
  7176  	// assert body
  7177  	if r.Body == nil {
  7178  		t.Errorf("expect body not to be nil")
  7179  	}
  7180  	body, _ := ioutil.ReadAll(r.Body)
  7181  	awstesting.AssertJSON(t, `{"baz": "bar"}`, util.Trim(string(body)))
  7182  
  7183  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7184  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7185  	}
  7186  
  7187  	// assert URL
  7188  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7189  }
  7190  
  7191  func TestInputService14ProtocolTestStructurePayloadCase2(t *testing.T) {
  7192  	svc := NewInputService14ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7193  	input := &InputService14TestShapeInputService14TestCaseOperation2Input{}
  7194  	req, _ := svc.InputService14TestCaseOperation2Request(input)
  7195  	r := req.HTTPRequest
  7196  
  7197  	// build request
  7198  	req.Build()
  7199  	if req.Error != nil {
  7200  		t.Errorf("expect no error, got %v", req.Error)
  7201  	}
  7202  	req.Sign()
  7203  	if req.Error != nil {
  7204  		t.Errorf("expect no error, got %v", req.Error)
  7205  	}
  7206  
  7207  	// assert body
  7208  	if r.Body == nil {
  7209  		t.Errorf("expect body not to be nil")
  7210  	}
  7211  	body, _ := ioutil.ReadAll(r.Body)
  7212  	awstesting.AssertJSON(t, `{}`, util.Trim(string(body)))
  7213  
  7214  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7215  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7216  	}
  7217  
  7218  	// assert URL
  7219  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7220  }
  7221  
  7222  func TestInputService15ProtocolTestOmitsNullQueryParamsButSerializesEmptyStringsCase1(t *testing.T) {
  7223  	svc := NewInputService15ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7224  	input := &InputService15TestShapeInputService15TestCaseOperation1Input{}
  7225  	req, _ := svc.InputService15TestCaseOperation1Request(input)
  7226  	r := req.HTTPRequest
  7227  
  7228  	// build request
  7229  	req.Build()
  7230  	if req.Error != nil {
  7231  		t.Errorf("expect no error, got %v", req.Error)
  7232  	}
  7233  	req.Sign()
  7234  	if req.Error != nil {
  7235  		t.Errorf("expect no error, got %v", req.Error)
  7236  	}
  7237  
  7238  	// assert URL
  7239  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7240  }
  7241  
  7242  func TestInputService15ProtocolTestOmitsNullQueryParamsButSerializesEmptyStringsCase2(t *testing.T) {
  7243  	svc := NewInputService15ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7244  	input := &InputService15TestShapeInputService15TestCaseOperation2Input{
  7245  		Foo: aws.String(""),
  7246  	}
  7247  	req, _ := svc.InputService15TestCaseOperation2Request(input)
  7248  	r := req.HTTPRequest
  7249  
  7250  	// build request
  7251  	req.Build()
  7252  	if req.Error != nil {
  7253  		t.Errorf("expect no error, got %v", req.Error)
  7254  	}
  7255  	req.Sign()
  7256  	if req.Error != nil {
  7257  		t.Errorf("expect no error, got %v", req.Error)
  7258  	}
  7259  
  7260  	// assert URL
  7261  	awstesting.AssertURL(t, "https://test/path?abc=mno&param-name=", r.URL.String())
  7262  }
  7263  
  7264  func TestInputService16ProtocolTestRecursiveShapesCase1(t *testing.T) {
  7265  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7266  	input := &InputService16TestShapeInputService16TestCaseOperation1Input{
  7267  		RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7268  			NoRecurse: aws.String("foo"),
  7269  		},
  7270  	}
  7271  	req, _ := svc.InputService16TestCaseOperation1Request(input)
  7272  	r := req.HTTPRequest
  7273  
  7274  	// build request
  7275  	req.Build()
  7276  	if req.Error != nil {
  7277  		t.Errorf("expect no error, got %v", req.Error)
  7278  	}
  7279  	req.Sign()
  7280  	if req.Error != nil {
  7281  		t.Errorf("expect no error, got %v", req.Error)
  7282  	}
  7283  
  7284  	// assert body
  7285  	if r.Body == nil {
  7286  		t.Errorf("expect body not to be nil")
  7287  	}
  7288  	body, _ := ioutil.ReadAll(r.Body)
  7289  	awstesting.AssertJSON(t, `{"RecursiveStruct": {"NoRecurse": "foo"}}`, util.Trim(string(body)))
  7290  
  7291  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7292  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7293  	}
  7294  
  7295  	// assert URL
  7296  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7297  }
  7298  
  7299  func TestInputService16ProtocolTestRecursiveShapesCase2(t *testing.T) {
  7300  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7301  	input := &InputService16TestShapeInputService16TestCaseOperation2Input{
  7302  		RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7303  			RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7304  				NoRecurse: aws.String("foo"),
  7305  			},
  7306  		},
  7307  	}
  7308  	req, _ := svc.InputService16TestCaseOperation2Request(input)
  7309  	r := req.HTTPRequest
  7310  
  7311  	// build request
  7312  	req.Build()
  7313  	if req.Error != nil {
  7314  		t.Errorf("expect no error, got %v", req.Error)
  7315  	}
  7316  	req.Sign()
  7317  	if req.Error != nil {
  7318  		t.Errorf("expect no error, got %v", req.Error)
  7319  	}
  7320  
  7321  	// assert body
  7322  	if r.Body == nil {
  7323  		t.Errorf("expect body not to be nil")
  7324  	}
  7325  	body, _ := ioutil.ReadAll(r.Body)
  7326  	awstesting.AssertJSON(t, `{"RecursiveStruct": {"RecursiveStruct": {"NoRecurse": "foo"}}}`, util.Trim(string(body)))
  7327  
  7328  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7329  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7330  	}
  7331  
  7332  	// assert URL
  7333  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7334  }
  7335  
  7336  func TestInputService16ProtocolTestRecursiveShapesCase3(t *testing.T) {
  7337  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7338  	input := &InputService16TestShapeInputService16TestCaseOperation3Input{
  7339  		RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7340  			RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7341  				RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7342  					RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7343  						NoRecurse: aws.String("foo"),
  7344  					},
  7345  				},
  7346  			},
  7347  		},
  7348  	}
  7349  	req, _ := svc.InputService16TestCaseOperation3Request(input)
  7350  	r := req.HTTPRequest
  7351  
  7352  	// build request
  7353  	req.Build()
  7354  	if req.Error != nil {
  7355  		t.Errorf("expect no error, got %v", req.Error)
  7356  	}
  7357  	req.Sign()
  7358  	if req.Error != nil {
  7359  		t.Errorf("expect no error, got %v", req.Error)
  7360  	}
  7361  
  7362  	// assert body
  7363  	if r.Body == nil {
  7364  		t.Errorf("expect body not to be nil")
  7365  	}
  7366  	body, _ := ioutil.ReadAll(r.Body)
  7367  	awstesting.AssertJSON(t, `{"RecursiveStruct": {"RecursiveStruct": {"RecursiveStruct": {"RecursiveStruct": {"NoRecurse": "foo"}}}}}`, util.Trim(string(body)))
  7368  
  7369  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7370  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7371  	}
  7372  
  7373  	// assert URL
  7374  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7375  }
  7376  
  7377  func TestInputService16ProtocolTestRecursiveShapesCase4(t *testing.T) {
  7378  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7379  	input := &InputService16TestShapeInputService16TestCaseOperation4Input{
  7380  		RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7381  			RecursiveList: []*InputService16TestShapeRecursiveStructType{
  7382  				{
  7383  					NoRecurse: aws.String("foo"),
  7384  				},
  7385  				{
  7386  					NoRecurse: aws.String("bar"),
  7387  				},
  7388  			},
  7389  		},
  7390  	}
  7391  	req, _ := svc.InputService16TestCaseOperation4Request(input)
  7392  	r := req.HTTPRequest
  7393  
  7394  	// build request
  7395  	req.Build()
  7396  	if req.Error != nil {
  7397  		t.Errorf("expect no error, got %v", req.Error)
  7398  	}
  7399  	req.Sign()
  7400  	if req.Error != nil {
  7401  		t.Errorf("expect no error, got %v", req.Error)
  7402  	}
  7403  
  7404  	// assert body
  7405  	if r.Body == nil {
  7406  		t.Errorf("expect body not to be nil")
  7407  	}
  7408  	body, _ := ioutil.ReadAll(r.Body)
  7409  	awstesting.AssertJSON(t, `{"RecursiveStruct": {"RecursiveList": [{"NoRecurse": "foo"}, {"NoRecurse": "bar"}]}}`, util.Trim(string(body)))
  7410  
  7411  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7412  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7413  	}
  7414  
  7415  	// assert URL
  7416  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7417  }
  7418  
  7419  func TestInputService16ProtocolTestRecursiveShapesCase5(t *testing.T) {
  7420  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7421  	input := &InputService16TestShapeInputService16TestCaseOperation5Input{
  7422  		RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7423  			RecursiveList: []*InputService16TestShapeRecursiveStructType{
  7424  				{
  7425  					NoRecurse: aws.String("foo"),
  7426  				},
  7427  				{
  7428  					RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7429  						NoRecurse: aws.String("bar"),
  7430  					},
  7431  				},
  7432  			},
  7433  		},
  7434  	}
  7435  	req, _ := svc.InputService16TestCaseOperation5Request(input)
  7436  	r := req.HTTPRequest
  7437  
  7438  	// build request
  7439  	req.Build()
  7440  	if req.Error != nil {
  7441  		t.Errorf("expect no error, got %v", req.Error)
  7442  	}
  7443  	req.Sign()
  7444  	if req.Error != nil {
  7445  		t.Errorf("expect no error, got %v", req.Error)
  7446  	}
  7447  
  7448  	// assert body
  7449  	if r.Body == nil {
  7450  		t.Errorf("expect body not to be nil")
  7451  	}
  7452  	body, _ := ioutil.ReadAll(r.Body)
  7453  	awstesting.AssertJSON(t, `{"RecursiveStruct": {"RecursiveList": [{"NoRecurse": "foo"}, {"RecursiveStruct": {"NoRecurse": "bar"}}]}}`, util.Trim(string(body)))
  7454  
  7455  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7456  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7457  	}
  7458  
  7459  	// assert URL
  7460  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7461  }
  7462  
  7463  func TestInputService16ProtocolTestRecursiveShapesCase6(t *testing.T) {
  7464  	svc := NewInputService16ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7465  	input := &InputService16TestShapeInputService16TestCaseOperation6Input{
  7466  		RecursiveStruct: &InputService16TestShapeRecursiveStructType{
  7467  			RecursiveMap: map[string]*InputService16TestShapeRecursiveStructType{
  7468  				"bar": {
  7469  					NoRecurse: aws.String("bar"),
  7470  				},
  7471  				"foo": {
  7472  					NoRecurse: aws.String("foo"),
  7473  				},
  7474  			},
  7475  		},
  7476  	}
  7477  	req, _ := svc.InputService16TestCaseOperation6Request(input)
  7478  	r := req.HTTPRequest
  7479  
  7480  	// build request
  7481  	req.Build()
  7482  	if req.Error != nil {
  7483  		t.Errorf("expect no error, got %v", req.Error)
  7484  	}
  7485  	req.Sign()
  7486  	if req.Error != nil {
  7487  		t.Errorf("expect no error, got %v", req.Error)
  7488  	}
  7489  
  7490  	// assert body
  7491  	if r.Body == nil {
  7492  		t.Errorf("expect body not to be nil")
  7493  	}
  7494  	body, _ := ioutil.ReadAll(r.Body)
  7495  	awstesting.AssertJSON(t, `{"RecursiveStruct": {"RecursiveMap": {"foo": {"NoRecurse": "foo"}, "bar": {"NoRecurse": "bar"}}}}`, util.Trim(string(body)))
  7496  
  7497  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7498  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7499  	}
  7500  
  7501  	// assert URL
  7502  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7503  }
  7504  
  7505  func TestInputService17ProtocolTestTimestampValuesCase1(t *testing.T) {
  7506  	svc := NewInputService17ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7507  	input := &InputService17TestShapeInputService17TestCaseOperation1Input{
  7508  		TimeArg:            aws.Time(time.Unix(1422172800, 0)),
  7509  		TimeArgInHeader:    aws.Time(time.Unix(1422172800, 0)),
  7510  		TimeArgInQuery:     aws.Time(time.Unix(1422172800, 0)),
  7511  		TimeCustom:         aws.Time(time.Unix(1422172800, 0)),
  7512  		TimeCustomInHeader: aws.Time(time.Unix(1422172800, 0)),
  7513  		TimeCustomInQuery:  aws.Time(time.Unix(1422172800, 0)),
  7514  		TimeFormat:         aws.Time(time.Unix(1422172800, 0)),
  7515  		TimeFormatInHeader: aws.Time(time.Unix(1422172800, 0)),
  7516  		TimeFormatInQuery:  aws.Time(time.Unix(1422172800, 0)),
  7517  	}
  7518  	req, _ := svc.InputService17TestCaseOperation1Request(input)
  7519  	r := req.HTTPRequest
  7520  
  7521  	// build request
  7522  	req.Build()
  7523  	if req.Error != nil {
  7524  		t.Errorf("expect no error, got %v", req.Error)
  7525  	}
  7526  	req.Sign()
  7527  	if req.Error != nil {
  7528  		t.Errorf("expect no error, got %v", req.Error)
  7529  	}
  7530  
  7531  	// assert body
  7532  	if r.Body == nil {
  7533  		t.Errorf("expect body not to be nil")
  7534  	}
  7535  	body, _ := ioutil.ReadAll(r.Body)
  7536  	awstesting.AssertJSON(t, `{"TimeArg": 1422172800, "TimeCustom": "2015-01-25T08:00:00Z", "TimeFormat": "Sun, 25 Jan 2015 08:00:00 GMT"}`, util.Trim(string(body)))
  7537  
  7538  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7539  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7540  	}
  7541  
  7542  	// assert URL
  7543  	awstesting.AssertURL(t, "https://test/path?TimeQuery=2015-01-25T08%3A00%3A00Z&TimeCustomQuery=1422172800&TimeFormatQuery=1422172800", r.URL.String())
  7544  
  7545  	// assert headers
  7546  	if e, a := "Sun, 25 Jan 2015 08:00:00 GMT", r.Header.Get("x-amz-timearg"); e != a {
  7547  		t.Errorf("expect x-amz-timearg %v header value, got %v", e, a)
  7548  	}
  7549  	if e, a := "1422172800", r.Header.Get("x-amz-timecustom-header"); e != a {
  7550  		t.Errorf("expect x-amz-timecustom-header %v header value, got %v", e, a)
  7551  	}
  7552  	if e, a := "1422172800", r.Header.Get("x-amz-timeformat-header"); e != a {
  7553  		t.Errorf("expect x-amz-timeformat-header %v header value, got %v", e, a)
  7554  	}
  7555  }
  7556  
  7557  func TestInputService18ProtocolTestNamedLocationsInJSONBodyCase1(t *testing.T) {
  7558  	svc := NewInputService18ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7559  	input := &InputService18TestShapeInputService18TestCaseOperation1Input{
  7560  		TimeArg: aws.Time(time.Unix(1422172800, 0)),
  7561  	}
  7562  	req, _ := svc.InputService18TestCaseOperation1Request(input)
  7563  	r := req.HTTPRequest
  7564  
  7565  	// build request
  7566  	req.Build()
  7567  	if req.Error != nil {
  7568  		t.Errorf("expect no error, got %v", req.Error)
  7569  	}
  7570  	req.Sign()
  7571  	if req.Error != nil {
  7572  		t.Errorf("expect no error, got %v", req.Error)
  7573  	}
  7574  
  7575  	// assert body
  7576  	if r.Body == nil {
  7577  		t.Errorf("expect body not to be nil")
  7578  	}
  7579  	body, _ := ioutil.ReadAll(r.Body)
  7580  	awstesting.AssertJSON(t, `{"timestamp_location": 1422172800}`, util.Trim(string(body)))
  7581  
  7582  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7583  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7584  	}
  7585  
  7586  	// assert URL
  7587  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7588  }
  7589  
  7590  func TestInputService19ProtocolTestStringPayloadCase1(t *testing.T) {
  7591  	svc := NewInputService19ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7592  	input := &InputService19TestShapeInputService19TestCaseOperation1Input{
  7593  		Foo: aws.String("bar"),
  7594  	}
  7595  	req, _ := svc.InputService19TestCaseOperation1Request(input)
  7596  	r := req.HTTPRequest
  7597  
  7598  	// build request
  7599  	req.Build()
  7600  	if req.Error != nil {
  7601  		t.Errorf("expect no error, got %v", req.Error)
  7602  	}
  7603  	req.Sign()
  7604  	if req.Error != nil {
  7605  		t.Errorf("expect no error, got %v", req.Error)
  7606  	}
  7607  
  7608  	// assert body
  7609  	if r.Body == nil {
  7610  		t.Errorf("expect body not to be nil")
  7611  	}
  7612  	body, _ := ioutil.ReadAll(r.Body)
  7613  	if e, a := "bar", util.Trim(string(body)); e != a {
  7614  		t.Errorf("expect %v, got %v", e, a)
  7615  	}
  7616  
  7617  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7618  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7619  	}
  7620  
  7621  	// assert URL
  7622  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7623  }
  7624  
  7625  func TestInputService20ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) {
  7626  	svc := NewInputService20ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7627  	input := &InputService20TestShapeInputService20TestCaseOperation1Input{
  7628  		Token: aws.String("abc123"),
  7629  	}
  7630  	req, _ := svc.InputService20TestCaseOperation1Request(input)
  7631  	r := req.HTTPRequest
  7632  
  7633  	// build request
  7634  	req.Build()
  7635  	if req.Error != nil {
  7636  		t.Errorf("expect no error, got %v", req.Error)
  7637  	}
  7638  	req.Sign()
  7639  	if req.Error != nil {
  7640  		t.Errorf("expect no error, got %v", req.Error)
  7641  	}
  7642  
  7643  	// assert body
  7644  	if r.Body == nil {
  7645  		t.Errorf("expect body not to be nil")
  7646  	}
  7647  	body, _ := ioutil.ReadAll(r.Body)
  7648  	awstesting.AssertJSON(t, `{"Token": "abc123"}`, util.Trim(string(body)))
  7649  
  7650  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7651  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7652  	}
  7653  
  7654  	// assert URL
  7655  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7656  }
  7657  
  7658  func TestInputService20ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) {
  7659  	svc := NewInputService20ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7660  	input := &InputService20TestShapeInputService20TestCaseOperation2Input{}
  7661  	req, _ := svc.InputService20TestCaseOperation2Request(input)
  7662  	r := req.HTTPRequest
  7663  
  7664  	// build request
  7665  	req.Build()
  7666  	if req.Error != nil {
  7667  		t.Errorf("expect no error, got %v", req.Error)
  7668  	}
  7669  	req.Sign()
  7670  	if req.Error != nil {
  7671  		t.Errorf("expect no error, got %v", req.Error)
  7672  	}
  7673  
  7674  	// assert body
  7675  	if r.Body == nil {
  7676  		t.Errorf("expect body not to be nil")
  7677  	}
  7678  	body, _ := ioutil.ReadAll(r.Body)
  7679  	awstesting.AssertJSON(t, `{"Token": "00000000-0000-4000-8000-000000000000"}`, util.Trim(string(body)))
  7680  
  7681  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7682  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7683  	}
  7684  
  7685  	// assert URL
  7686  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7687  }
  7688  
  7689  func TestInputService21ProtocolTestJSONValueTraitCase1(t *testing.T) {
  7690  	svc := NewInputService21ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7691  	input := &InputService21TestShapeInputService21TestCaseOperation1Input{
  7692  		Body: &InputService21TestShapeBodyStructure{
  7693  			BodyField: func() aws.JSONValue {
  7694  				var m aws.JSONValue
  7695  				if err := json.Unmarshal([]byte("{\"Foo\":\"Bar\"}"), &m); err != nil {
  7696  					panic("failed to unmarshal JSONValue, " + err.Error())
  7697  				}
  7698  				return m
  7699  			}(),
  7700  		},
  7701  	}
  7702  	input.HeaderField = aws.JSONValue{"Foo": "Bar"}
  7703  	input.QueryField = aws.JSONValue{"Foo": "Bar"}
  7704  	req, _ := svc.InputService21TestCaseOperation1Request(input)
  7705  	r := req.HTTPRequest
  7706  
  7707  	// build request
  7708  	req.Build()
  7709  	if req.Error != nil {
  7710  		t.Errorf("expect no error, got %v", req.Error)
  7711  	}
  7712  	req.Sign()
  7713  	if req.Error != nil {
  7714  		t.Errorf("expect no error, got %v", req.Error)
  7715  	}
  7716  
  7717  	// assert body
  7718  	if r.Body == nil {
  7719  		t.Errorf("expect body not to be nil")
  7720  	}
  7721  	body, _ := ioutil.ReadAll(r.Body)
  7722  	awstesting.AssertJSON(t, `{"BodyField":"{\"Foo\":\"Bar\"}"}`, util.Trim(string(body)))
  7723  
  7724  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7725  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7726  	}
  7727  
  7728  	// assert URL
  7729  	awstesting.AssertURL(t, "https://test/?Bar=%7B%22Foo%22%3A%22Bar%22%7D", r.URL.String())
  7730  
  7731  	// assert headers
  7732  	if e, a := "eyJGb28iOiJCYXIifQ==", r.Header.Get("X-Amz-Foo"); e != a {
  7733  		t.Errorf("expect X-Amz-Foo %v header value, got %v", e, a)
  7734  	}
  7735  }
  7736  
  7737  func TestInputService21ProtocolTestJSONValueTraitCase2(t *testing.T) {
  7738  	svc := NewInputService21ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7739  	input := &InputService21TestShapeInputService21TestCaseOperation2Input{
  7740  		Body: &InputService21TestShapeBodyStructure{
  7741  			BodyListField: []aws.JSONValue{
  7742  				func() aws.JSONValue {
  7743  					var m aws.JSONValue
  7744  					if err := json.Unmarshal([]byte("{\"Foo\":\"Bar\"}"), &m); err != nil {
  7745  						panic("failed to unmarshal JSONValue, " + err.Error())
  7746  					}
  7747  					return m
  7748  				}(),
  7749  			},
  7750  		},
  7751  	}
  7752  	req, _ := svc.InputService21TestCaseOperation2Request(input)
  7753  	r := req.HTTPRequest
  7754  
  7755  	// build request
  7756  	req.Build()
  7757  	if req.Error != nil {
  7758  		t.Errorf("expect no error, got %v", req.Error)
  7759  	}
  7760  	req.Sign()
  7761  	if req.Error != nil {
  7762  		t.Errorf("expect no error, got %v", req.Error)
  7763  	}
  7764  
  7765  	// assert body
  7766  	if r.Body == nil {
  7767  		t.Errorf("expect body not to be nil")
  7768  	}
  7769  	body, _ := ioutil.ReadAll(r.Body)
  7770  	awstesting.AssertJSON(t, `{"BodyListField":["{\"Foo\":\"Bar\"}"]}`, util.Trim(string(body)))
  7771  
  7772  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7773  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7774  	}
  7775  
  7776  	// assert URL
  7777  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7778  }
  7779  
  7780  func TestInputService21ProtocolTestJSONValueTraitCase3(t *testing.T) {
  7781  	svc := NewInputService21ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7782  	input := &InputService21TestShapeInputService21TestCaseOperation3Input{}
  7783  	req, _ := svc.InputService21TestCaseOperation3Request(input)
  7784  	r := req.HTTPRequest
  7785  
  7786  	// build request
  7787  	req.Build()
  7788  	if req.Error != nil {
  7789  		t.Errorf("expect no error, got %v", req.Error)
  7790  	}
  7791  	req.Sign()
  7792  	if req.Error != nil {
  7793  		t.Errorf("expect no error, got %v", req.Error)
  7794  	}
  7795  
  7796  	// assert URL
  7797  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7798  }
  7799  
  7800  func TestInputService22ProtocolTestEnumCase1(t *testing.T) {
  7801  	svc := NewInputService22ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7802  	input := &InputService22TestShapeInputService22TestCaseOperation1Input{
  7803  		FooEnum:    aws.String("foo"),
  7804  		HeaderEnum: aws.String("baz"),
  7805  		ListEnums: []*string{
  7806  			aws.String("foo"),
  7807  			aws.String(""),
  7808  			aws.String("bar"),
  7809  		},
  7810  		QueryFooEnum: aws.String("bar"),
  7811  		QueryListEnums: []*string{
  7812  			aws.String("0"),
  7813  			aws.String("1"),
  7814  			aws.String(""),
  7815  		},
  7816  	}
  7817  	req, _ := svc.InputService22TestCaseOperation1Request(input)
  7818  	r := req.HTTPRequest
  7819  
  7820  	// build request
  7821  	req.Build()
  7822  	if req.Error != nil {
  7823  		t.Errorf("expect no error, got %v", req.Error)
  7824  	}
  7825  	req.Sign()
  7826  	if req.Error != nil {
  7827  		t.Errorf("expect no error, got %v", req.Error)
  7828  	}
  7829  
  7830  	// assert body
  7831  	if r.Body == nil {
  7832  		t.Errorf("expect body not to be nil")
  7833  	}
  7834  	body, _ := ioutil.ReadAll(r.Body)
  7835  	awstesting.AssertJSON(t, `{"FooEnum": "foo", "ListEnums": ["foo", "", "bar"]}`, util.Trim(string(body)))
  7836  
  7837  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7838  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7839  	}
  7840  
  7841  	// assert URL
  7842  	awstesting.AssertURL(t, "https://test/path?Enum=bar&List=0&List=1&List=", r.URL.String())
  7843  
  7844  	// assert headers
  7845  	if e, a := "baz", r.Header.Get("x-amz-enum"); e != a {
  7846  		t.Errorf("expect x-amz-enum %v header value, got %v", e, a)
  7847  	}
  7848  }
  7849  
  7850  func TestInputService22ProtocolTestEnumCase2(t *testing.T) {
  7851  	svc := NewInputService22ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7852  	input := &InputService22TestShapeInputService22TestCaseOperation2Input{}
  7853  	req, _ := svc.InputService22TestCaseOperation2Request(input)
  7854  	r := req.HTTPRequest
  7855  
  7856  	// build request
  7857  	req.Build()
  7858  	if req.Error != nil {
  7859  		t.Errorf("expect no error, got %v", req.Error)
  7860  	}
  7861  	req.Sign()
  7862  	if req.Error != nil {
  7863  		t.Errorf("expect no error, got %v", req.Error)
  7864  	}
  7865  
  7866  	// assert URL
  7867  	awstesting.AssertURL(t, "https://test/path", r.URL.String())
  7868  }
  7869  
  7870  func TestInputService23ProtocolTestEndpointHostTraitCase1(t *testing.T) {
  7871  	svc := NewInputService23ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://service.region.amazonaws.com")})
  7872  	input := &InputService23TestShapeInputService23TestCaseOperation1Input{
  7873  		Name: aws.String("myname"),
  7874  	}
  7875  	req, _ := svc.InputService23TestCaseOperation1Request(input)
  7876  	r := req.HTTPRequest
  7877  
  7878  	// build request
  7879  	req.Build()
  7880  	if req.Error != nil {
  7881  		t.Errorf("expect no error, got %v", req.Error)
  7882  	}
  7883  	req.Sign()
  7884  	if req.Error != nil {
  7885  		t.Errorf("expect no error, got %v", req.Error)
  7886  	}
  7887  
  7888  	// assert body
  7889  	if r.Body == nil {
  7890  		t.Errorf("expect body not to be nil")
  7891  	}
  7892  	body, _ := ioutil.ReadAll(r.Body)
  7893  	awstesting.AssertJSON(t, `{"Name": "myname"}`, util.Trim(string(body)))
  7894  
  7895  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7896  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7897  	}
  7898  
  7899  	// assert URL
  7900  	awstesting.AssertURL(t, "https://data-service.region.amazonaws.com/path", r.URL.String())
  7901  }
  7902  
  7903  func TestInputService23ProtocolTestEndpointHostTraitCase2(t *testing.T) {
  7904  	svc := NewInputService23ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://service.region.amazonaws.com")})
  7905  	input := &InputService23TestShapeInputService23TestCaseOperation2Input{
  7906  		Name: aws.String("myname"),
  7907  	}
  7908  	req, _ := svc.InputService23TestCaseOperation2Request(input)
  7909  	r := req.HTTPRequest
  7910  
  7911  	// build request
  7912  	req.Build()
  7913  	if req.Error != nil {
  7914  		t.Errorf("expect no error, got %v", req.Error)
  7915  	}
  7916  	req.Sign()
  7917  	if req.Error != nil {
  7918  		t.Errorf("expect no error, got %v", req.Error)
  7919  	}
  7920  
  7921  	// assert body
  7922  	if r.Body == nil {
  7923  		t.Errorf("expect body not to be nil")
  7924  	}
  7925  	body, _ := ioutil.ReadAll(r.Body)
  7926  	awstesting.AssertJSON(t, `{"Name": "myname"}`, util.Trim(string(body)))
  7927  
  7928  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7929  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7930  	}
  7931  
  7932  	// assert URL
  7933  	awstesting.AssertURL(t, "https://foo-myname.service.region.amazonaws.com/path", r.URL.String())
  7934  }
  7935  
  7936  func TestInputService24ProtocolTestUnionTraitCase1(t *testing.T) {
  7937  	svc := NewInputService24ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7938  	input := &InputService24TestShapeInputService24TestCaseOperation1Input{
  7939  		OneOf: &InputService24TestShapeMyUnion{
  7940  			A: aws.String("hi"),
  7941  		},
  7942  	}
  7943  	req, _ := svc.InputService24TestCaseOperation1Request(input)
  7944  	r := req.HTTPRequest
  7945  
  7946  	// build request
  7947  	req.Build()
  7948  	if req.Error != nil {
  7949  		t.Errorf("expect no error, got %v", req.Error)
  7950  	}
  7951  	req.Sign()
  7952  	if req.Error != nil {
  7953  		t.Errorf("expect no error, got %v", req.Error)
  7954  	}
  7955  
  7956  	// assert body
  7957  	if r.Body == nil {
  7958  		t.Errorf("expect body not to be nil")
  7959  	}
  7960  	body, _ := ioutil.ReadAll(r.Body)
  7961  	awstesting.AssertJSON(t, `{"OneOf": {"a": "hi"}}`, util.Trim(string(body)))
  7962  
  7963  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7964  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  7965  	}
  7966  
  7967  	// assert URL
  7968  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  7969  }
  7970  
  7971  func TestInputService24ProtocolTestUnionTraitCase2(t *testing.T) {
  7972  	svc := NewInputService24ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  7973  	input := &InputService24TestShapeInputService24TestCaseOperation2Input{
  7974  		OneOf: &InputService24TestShapeMyUnion{
  7975  			B: aws.String("hi"),
  7976  		},
  7977  	}
  7978  	req, _ := svc.InputService24TestCaseOperation2Request(input)
  7979  	r := req.HTTPRequest
  7980  
  7981  	// build request
  7982  	req.Build()
  7983  	if req.Error != nil {
  7984  		t.Errorf("expect no error, got %v", req.Error)
  7985  	}
  7986  	req.Sign()
  7987  	if req.Error != nil {
  7988  		t.Errorf("expect no error, got %v", req.Error)
  7989  	}
  7990  
  7991  	// assert body
  7992  	if r.Body == nil {
  7993  		t.Errorf("expect body not to be nil")
  7994  	}
  7995  	body, _ := ioutil.ReadAll(r.Body)
  7996  	awstesting.AssertJSON(t, `{"OneOf": {"b": "hi"}}`, util.Trim(string(body)))
  7997  
  7998  	if e, a := int64(len(body)), r.ContentLength; e != a {
  7999  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8000  	}
  8001  
  8002  	// assert URL
  8003  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  8004  }
  8005  
  8006  func TestInputService24ProtocolTestUnionTraitCase3(t *testing.T) {
  8007  	svc := NewInputService24ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  8008  	input := &InputService24TestShapeInputService24TestCaseOperation3Input{
  8009  		OneOf: &InputService24TestShapeMyUnion{
  8010  			C: &InputService24TestShapeStruct{
  8011  				Hello: aws.String("hi"),
  8012  			},
  8013  		},
  8014  	}
  8015  	req, _ := svc.InputService24TestCaseOperation3Request(input)
  8016  	r := req.HTTPRequest
  8017  
  8018  	// build request
  8019  	req.Build()
  8020  	if req.Error != nil {
  8021  		t.Errorf("expect no error, got %v", req.Error)
  8022  	}
  8023  	req.Sign()
  8024  	if req.Error != nil {
  8025  		t.Errorf("expect no error, got %v", req.Error)
  8026  	}
  8027  
  8028  	// assert body
  8029  	if r.Body == nil {
  8030  		t.Errorf("expect body not to be nil")
  8031  	}
  8032  	body, _ := ioutil.ReadAll(r.Body)
  8033  	awstesting.AssertJSON(t, `{"OneOf": {"c": {"hello": "hi"}}}`, util.Trim(string(body)))
  8034  
  8035  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8036  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8037  	}
  8038  
  8039  	// assert URL
  8040  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  8041  }
  8042  
  8043  func TestInputService24ProtocolTestUnionTraitCase4(t *testing.T) {
  8044  	svc := NewInputService24ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  8045  	input := &InputService24TestShapeInputService24TestCaseOperation4Input{
  8046  		OneOf: &InputService24TestShapeMyUnion{
  8047  			D: &InputService24TestShapeStruct{
  8048  				Hello: aws.String("hi"),
  8049  			},
  8050  		},
  8051  	}
  8052  	req, _ := svc.InputService24TestCaseOperation4Request(input)
  8053  	r := req.HTTPRequest
  8054  
  8055  	// build request
  8056  	req.Build()
  8057  	if req.Error != nil {
  8058  		t.Errorf("expect no error, got %v", req.Error)
  8059  	}
  8060  	req.Sign()
  8061  	if req.Error != nil {
  8062  		t.Errorf("expect no error, got %v", req.Error)
  8063  	}
  8064  
  8065  	// assert body
  8066  	if r.Body == nil {
  8067  		t.Errorf("expect body not to be nil")
  8068  	}
  8069  	body, _ := ioutil.ReadAll(r.Body)
  8070  	awstesting.AssertJSON(t, `{"OneOf": {"d": {"hello": "hi"}}}`, util.Trim(string(body)))
  8071  
  8072  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8073  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8074  	}
  8075  
  8076  	// assert URL
  8077  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  8078  }
  8079  
  8080  func TestInputService24ProtocolTestUnionTraitCase5(t *testing.T) {
  8081  	svc := NewInputService24ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  8082  	input := &InputService24TestShapeInputService24TestCaseOperation5Input{
  8083  		OneOf: &InputService24TestShapeMyUnion{
  8084  			E: []*InputService24TestShapeStruct{
  8085  				{
  8086  					Hello: aws.String("hi"),
  8087  				},
  8088  			},
  8089  		},
  8090  	}
  8091  	req, _ := svc.InputService24TestCaseOperation5Request(input)
  8092  	r := req.HTTPRequest
  8093  
  8094  	// build request
  8095  	req.Build()
  8096  	if req.Error != nil {
  8097  		t.Errorf("expect no error, got %v", req.Error)
  8098  	}
  8099  	req.Sign()
  8100  	if req.Error != nil {
  8101  		t.Errorf("expect no error, got %v", req.Error)
  8102  	}
  8103  
  8104  	// assert body
  8105  	if r.Body == nil {
  8106  		t.Errorf("expect body not to be nil")
  8107  	}
  8108  	body, _ := ioutil.ReadAll(r.Body)
  8109  	awstesting.AssertJSON(t, `{"OneOf": {"e": [{"hello": "hi"}]}}`, util.Trim(string(body)))
  8110  
  8111  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8112  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8113  	}
  8114  
  8115  	// assert URL
  8116  	awstesting.AssertURL(t, "https://test/", r.URL.String())
  8117  }
  8118  
  8119  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase1(t *testing.T) {
  8120  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8121  	input := &InputService25TestShapeInputService25TestCaseOperation1Input{
  8122  		TestConfig: &InputService25TestShapeTestConfig{
  8123  			Timeout: aws.Int64(10),
  8124  		},
  8125  		TestId: aws.String("t-12345"),
  8126  	}
  8127  	req, _ := svc.InputService25TestCaseOperation1Request(input)
  8128  	r := req.HTTPRequest
  8129  
  8130  	// build request
  8131  	req.Build()
  8132  	if req.Error != nil {
  8133  		t.Errorf("expect no error, got %v", req.Error)
  8134  	}
  8135  	req.Sign()
  8136  	if req.Error != nil {
  8137  		t.Errorf("expect no error, got %v", req.Error)
  8138  	}
  8139  
  8140  	// assert body
  8141  	if r.Body == nil {
  8142  		t.Errorf("expect body not to be nil")
  8143  	}
  8144  	body, _ := ioutil.ReadAll(r.Body)
  8145  	awstesting.AssertJSON(t, `{"testConfig": {"timeout": 10}}`, util.Trim(string(body)))
  8146  
  8147  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8148  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8149  	}
  8150  
  8151  	// assert URL
  8152  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/body", r.URL.String())
  8153  
  8154  	// assert headers
  8155  	if e, a := "application/json", r.Header.Get("Content-Type"); e != a {
  8156  		t.Errorf("expect Content-Type %v header value, got %v", e, a)
  8157  	}
  8158  	if e, a := "t-12345", r.Header.Get("x-amz-test-id"); e != a {
  8159  		t.Errorf("expect x-amz-test-id %v header value, got %v", e, a)
  8160  	}
  8161  }
  8162  
  8163  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase2(t *testing.T) {
  8164  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8165  	input := &InputService25TestShapeInputService25TestCaseOperation2Input{}
  8166  	req, _ := svc.InputService25TestCaseOperation2Request(input)
  8167  	r := req.HTTPRequest
  8168  
  8169  	// build request
  8170  	req.Build()
  8171  	if req.Error != nil {
  8172  		t.Errorf("expect no error, got %v", req.Error)
  8173  	}
  8174  	req.Sign()
  8175  	if req.Error != nil {
  8176  		t.Errorf("expect no error, got %v", req.Error)
  8177  	}
  8178  
  8179  	// assert body
  8180  	if r.Body == nil {
  8181  		t.Errorf("expect body not to be nil")
  8182  	}
  8183  	body, _ := ioutil.ReadAll(r.Body)
  8184  	awstesting.AssertJSON(t, `{}`, util.Trim(string(body)))
  8185  
  8186  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8187  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8188  	}
  8189  
  8190  	// assert URL
  8191  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/payload", r.URL.String())
  8192  
  8193  	// assert headers
  8194  	if e, a := "application/json", r.Header.Get("Content-Type"); e != a {
  8195  		t.Errorf("expect Content-Type %v header value, got %v", e, a)
  8196  	}
  8197  }
  8198  
  8199  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase3(t *testing.T) {
  8200  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8201  	input := &InputService25TestShapeInputService25TestCaseOperation3Input{
  8202  		PayloadConfig: &InputService25TestShapePayloadConfig{
  8203  			Data: aws.Int64(25),
  8204  		},
  8205  		TestId: aws.String("t-12345"),
  8206  	}
  8207  	req, _ := svc.InputService25TestCaseOperation3Request(input)
  8208  	r := req.HTTPRequest
  8209  
  8210  	// build request
  8211  	req.Build()
  8212  	if req.Error != nil {
  8213  		t.Errorf("expect no error, got %v", req.Error)
  8214  	}
  8215  	req.Sign()
  8216  	if req.Error != nil {
  8217  		t.Errorf("expect no error, got %v", req.Error)
  8218  	}
  8219  
  8220  	// assert body
  8221  	if r.Body == nil {
  8222  		t.Errorf("expect body not to be nil")
  8223  	}
  8224  	body, _ := ioutil.ReadAll(r.Body)
  8225  	awstesting.AssertJSON(t, `{"data": 25}`, util.Trim(string(body)))
  8226  
  8227  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8228  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8229  	}
  8230  
  8231  	// assert URL
  8232  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/payload", r.URL.String())
  8233  
  8234  	// assert headers
  8235  	if e, a := "application/json", r.Header.Get("Content-Type"); e != a {
  8236  		t.Errorf("expect Content-Type %v header value, got %v", e, a)
  8237  	}
  8238  	if e, a := "t-12345", r.Header.Get("x-amz-test-id"); e != a {
  8239  		t.Errorf("expect x-amz-test-id %v header value, got %v", e, a)
  8240  	}
  8241  }
  8242  
  8243  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase4(t *testing.T) {
  8244  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8245  	input := &InputService25TestShapeInputService25TestCaseOperation4Input{
  8246  		TestId: aws.String("t-12345"),
  8247  	}
  8248  	req, _ := svc.InputService25TestCaseOperation4Request(input)
  8249  	r := req.HTTPRequest
  8250  
  8251  	// build request
  8252  	req.Build()
  8253  	if req.Error != nil {
  8254  		t.Errorf("expect no error, got %v", req.Error)
  8255  	}
  8256  	req.Sign()
  8257  	if req.Error != nil {
  8258  		t.Errorf("expect no error, got %v", req.Error)
  8259  	}
  8260  
  8261  	// assert body
  8262  	if r.Body == nil {
  8263  		t.Errorf("expect body not to be nil")
  8264  	}
  8265  	body, _ := ioutil.ReadAll(r.Body)
  8266  	awstesting.AssertJSON(t, `{}`, util.Trim(string(body)))
  8267  
  8268  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8269  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8270  	}
  8271  
  8272  	// assert URL
  8273  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/payload", r.URL.String())
  8274  
  8275  	// assert headers
  8276  	if e, a := "application/json", r.Header.Get("Content-Type"); e != a {
  8277  		t.Errorf("expect Content-Type %v header value, got %v", e, a)
  8278  	}
  8279  	if e, a := "t-12345", r.Header.Get("x-amz-test-id"); e != a {
  8280  		t.Errorf("expect x-amz-test-id %v header value, got %v", e, a)
  8281  	}
  8282  }
  8283  
  8284  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase5(t *testing.T) {
  8285  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8286  	input := &InputService25TestShapeInputService25TestCaseOperation5Input{
  8287  		ContentType: aws.String("image/jpg"),
  8288  		Data:        []byte("1234"),
  8289  	}
  8290  	req, _ := svc.InputService25TestCaseOperation5Request(input)
  8291  	r := req.HTTPRequest
  8292  
  8293  	// build request
  8294  	req.Build()
  8295  	if req.Error != nil {
  8296  		t.Errorf("expect no error, got %v", req.Error)
  8297  	}
  8298  	req.Sign()
  8299  	if req.Error != nil {
  8300  		t.Errorf("expect no error, got %v", req.Error)
  8301  	}
  8302  
  8303  	// assert body
  8304  	if r.Body == nil {
  8305  		t.Errorf("expect body not to be nil")
  8306  	}
  8307  	body, _ := ioutil.ReadAll(r.Body)
  8308  	if e, a := "1234", util.Trim(string(body)); e != a {
  8309  		t.Errorf("expect %v, got %v", e, a)
  8310  	}
  8311  
  8312  	if e, a := int64(len(body)), r.ContentLength; e != a {
  8313  		t.Errorf("expect serialized body length to match %v ContentLength, got %v", e, a)
  8314  	}
  8315  
  8316  	// assert URL
  8317  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/blob-payload", r.URL.String())
  8318  
  8319  	// assert headers
  8320  	if e, a := "image/jpg", r.Header.Get("Content-Type"); e != a {
  8321  		t.Errorf("expect Content-Type %v header value, got %v", e, a)
  8322  	}
  8323  }
  8324  
  8325  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase6(t *testing.T) {
  8326  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8327  	input := &InputService25TestShapeInputService25TestCaseOperation6Input{}
  8328  	req, _ := svc.InputService25TestCaseOperation6Request(input)
  8329  	r := req.HTTPRequest
  8330  
  8331  	// build request
  8332  	req.Build()
  8333  	if req.Error != nil {
  8334  		t.Errorf("expect no error, got %v", req.Error)
  8335  	}
  8336  	req.Sign()
  8337  	if req.Error != nil {
  8338  		t.Errorf("expect no error, got %v", req.Error)
  8339  	}
  8340  
  8341  	// assert URL
  8342  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/blob-payload", r.URL.String())
  8343  
  8344  	// assert exclude headers
  8345  	if v := r.Header.Get("Content-Type"); v != "" {
  8346  		t.Errorf("expect not to have Content-Type header, got with value %v", v)
  8347  	}
  8348  }
  8349  
  8350  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase7(t *testing.T) {
  8351  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8352  	input := &InputService25TestShapeInputService25TestCaseOperation7Input{}
  8353  	req, _ := svc.InputService25TestCaseOperation7Request(input)
  8354  	r := req.HTTPRequest
  8355  
  8356  	// build request
  8357  	req.Build()
  8358  	if req.Error != nil {
  8359  		t.Errorf("expect no error, got %v", req.Error)
  8360  	}
  8361  	req.Sign()
  8362  	if req.Error != nil {
  8363  		t.Errorf("expect no error, got %v", req.Error)
  8364  	}
  8365  
  8366  	// assert URL
  8367  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/no-payload", r.URL.String())
  8368  
  8369  	// assert exclude headers
  8370  	if v := r.Header.Get("Content-Type"); v != "" {
  8371  		t.Errorf("expect not to have Content-Type header, got with value %v", v)
  8372  	}
  8373  	if v := r.ContentLength; v > 0 {
  8374  		t.Errorf("expect no content-length, got %v", v)
  8375  	}
  8376  	if v := r.Header.Get("Content-Length"); v != "" {
  8377  		t.Errorf("expect not to have Content-Length header, got with value %v", v)
  8378  	}
  8379  }
  8380  
  8381  func TestInputService25ProtocolTestrestjsonContentTypeAndBodyCase8(t *testing.T) {
  8382  	svc := NewInputService25ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://rest-test.amazonaws.com")})
  8383  	input := &InputService25TestShapeInputService25TestCaseOperation8Input{
  8384  		TestId: aws.String("t-12345"),
  8385  	}
  8386  	req, _ := svc.InputService25TestCaseOperation8Request(input)
  8387  	r := req.HTTPRequest
  8388  
  8389  	// build request
  8390  	req.Build()
  8391  	if req.Error != nil {
  8392  		t.Errorf("expect no error, got %v", req.Error)
  8393  	}
  8394  	req.Sign()
  8395  	if req.Error != nil {
  8396  		t.Errorf("expect no error, got %v", req.Error)
  8397  	}
  8398  
  8399  	// assert URL
  8400  	awstesting.AssertURL(t, "https://rest-test.amazonaws.com/no-payload", r.URL.String())
  8401  
  8402  	// assert headers
  8403  	if e, a := "t-12345", r.Header.Get("x-amz-test-id"); e != a {
  8404  		t.Errorf("expect x-amz-test-id %v header value, got %v", e, a)
  8405  	}
  8406  
  8407  	// assert exclude headers
  8408  	if v := r.Header.Get("Content-Type"); v != "" {
  8409  		t.Errorf("expect not to have Content-Type header, got with value %v", v)
  8410  	}
  8411  	if v := r.ContentLength; v > 0 {
  8412  		t.Errorf("expect no content-length, got %v", v)
  8413  	}
  8414  	if v := r.Header.Get("Content-Length"); v != "" {
  8415  		t.Errorf("expect not to have Content-Length header, got with value %v", v)
  8416  	}
  8417  }