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

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