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

     1  // Code generated by models/protocol_tests/generate.go. DO NOT EDIT.
     2  
     3  package ec2query_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/ec2query"
    27  	"github.com/aavshr/aws-sdk-go/private/protocol/xml/xmlutil"
    28  	"github.com/aavshr/aws-sdk-go/private/util"
    29  )
    30  
    31  var _ bytes.Buffer // always import bytes
    32  var _ http.Request
    33  var _ json.Marshaler
    34  var _ time.Time
    35  var _ xmlutil.XMLNode
    36  var _ xml.Attr
    37  var _ = ioutil.Discard
    38  var _ = util.Trim("")
    39  var _ = url.Values{}
    40  var _ = io.EOF
    41  var _ = aws.String
    42  var _ = fmt.Println
    43  var _ = reflect.Value{}
    44  
    45  func init() {
    46  	protocol.RandReader = &awstesting.ZeroReader{}
    47  }
    48  
    49  // OutputService1ProtocolTest provides the API operation methods for making requests to
    50  // . See this package's package overview docs
    51  // for details on the service.
    52  //
    53  // OutputService1ProtocolTest methods are safe to use concurrently. It is not safe to
    54  // modify mutate any of the struct's properties though.
    55  type OutputService1ProtocolTest struct {
    56  	*client.Client
    57  }
    58  
    59  // New creates a new instance of the OutputService1ProtocolTest client with a session.
    60  // If additional configuration is needed for the client instance use the optional
    61  // aws.Config parameter to add your extra config.
    62  //
    63  // Example:
    64  //     mySession := session.Must(session.NewSession())
    65  //
    66  //     // Create a OutputService1ProtocolTest client from just a session.
    67  //     svc := outputservice1protocoltest.New(mySession)
    68  //
    69  //     // Create a OutputService1ProtocolTest client with additional configuration
    70  //     svc := outputservice1protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
    71  func NewOutputService1ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService1ProtocolTest {
    72  	c := p.ClientConfig("outputservice1protocoltest", cfgs...)
    73  	return newOutputService1ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
    74  }
    75  
    76  // newClient creates, initializes and returns a new service client instance.
    77  func newOutputService1ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService1ProtocolTest {
    78  	svc := &OutputService1ProtocolTest{
    79  		Client: client.New(
    80  			cfg,
    81  			metadata.ClientInfo{
    82  				ServiceName:   "OutputService1ProtocolTest",
    83  				ServiceID:     "OutputService1ProtocolTest",
    84  				SigningName:   signingName,
    85  				SigningRegion: signingRegion,
    86  				PartitionID:   partitionID,
    87  				Endpoint:      endpoint,
    88  				APIVersion:    "",
    89  			},
    90  			handlers,
    91  		),
    92  	}
    93  
    94  	// Handlers
    95  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
    96  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
    97  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
    98  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
    99  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
   100  
   101  	return svc
   102  }
   103  
   104  // newRequest creates a new request for a OutputService1ProtocolTest operation and runs any
   105  // custom request initialization.
   106  func (c *OutputService1ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   107  	req := c.NewRequest(op, params, data)
   108  
   109  	return req
   110  }
   111  
   112  const opOutputService1TestCaseOperation1 = "OperationName"
   113  
   114  // OutputService1TestCaseOperation1Request generates a "aws/request.Request" representing the
   115  // client's request for the OutputService1TestCaseOperation1 operation. The "output" return
   116  // value will be populated with the request's response once the request completes
   117  // successfully.
   118  //
   119  // Use "Send" method on the returned Request to send the API call to the service.
   120  // the "output" return value is not valid until after Send returns without error.
   121  //
   122  // See OutputService1TestCaseOperation1 for more information on using the OutputService1TestCaseOperation1
   123  // API call, and error handling.
   124  //
   125  // This method is useful when you want to inject custom logic or configuration
   126  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   127  //
   128  //
   129  //    // Example sending a request using the OutputService1TestCaseOperation1Request method.
   130  //    req, resp := client.OutputService1TestCaseOperation1Request(params)
   131  //
   132  //    err := req.Send()
   133  //    if err == nil { // resp is now filled
   134  //        fmt.Println(resp)
   135  //    }
   136  func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1Request(input *OutputService1TestShapeOutputService1TestCaseOperation1Input) (req *request.Request, output *OutputService1TestShapeOutputService1TestCaseOperation1Output) {
   137  	op := &request.Operation{
   138  		Name:     opOutputService1TestCaseOperation1,
   139  		HTTPPath: "/",
   140  	}
   141  
   142  	if input == nil {
   143  		input = &OutputService1TestShapeOutputService1TestCaseOperation1Input{}
   144  	}
   145  
   146  	output = &OutputService1TestShapeOutputService1TestCaseOperation1Output{}
   147  	req = c.newRequest(op, input, output)
   148  	return
   149  }
   150  
   151  // OutputService1TestCaseOperation1 API operation for .
   152  //
   153  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   154  // with awserr.Error's Code and Message methods to get detailed information about
   155  // the error.
   156  //
   157  // See the AWS API reference guide for 's
   158  // API operation OutputService1TestCaseOperation1 for usage and error information.
   159  func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1(input *OutputService1TestShapeOutputService1TestCaseOperation1Input) (*OutputService1TestShapeOutputService1TestCaseOperation1Output, error) {
   160  	req, out := c.OutputService1TestCaseOperation1Request(input)
   161  	return out, req.Send()
   162  }
   163  
   164  // OutputService1TestCaseOperation1WithContext is the same as OutputService1TestCaseOperation1 with the addition of
   165  // the ability to pass a context and additional request options.
   166  //
   167  // See OutputService1TestCaseOperation1 for details on how to use this API operation.
   168  //
   169  // The context must be non-nil and will be used for request cancellation. If
   170  // the context is nil a panic will occur. In the future the SDK may create
   171  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   172  // for more information on using Contexts.
   173  func (c *OutputService1ProtocolTest) OutputService1TestCaseOperation1WithContext(ctx aws.Context, input *OutputService1TestShapeOutputService1TestCaseOperation1Input, opts ...request.Option) (*OutputService1TestShapeOutputService1TestCaseOperation1Output, error) {
   174  	req, out := c.OutputService1TestCaseOperation1Request(input)
   175  	req.SetContext(ctx)
   176  	req.ApplyOptions(opts...)
   177  	return out, req.Send()
   178  }
   179  
   180  type OutputService1TestShapeOutputService1TestCaseOperation1Input struct {
   181  	_ struct{} `type:"structure"`
   182  }
   183  
   184  type OutputService1TestShapeOutputService1TestCaseOperation1Output struct {
   185  	_ struct{} `type:"structure"`
   186  
   187  	Char *string `type:"character"`
   188  
   189  	Double *float64 `type:"double"`
   190  
   191  	FalseBool *bool `type:"boolean"`
   192  
   193  	Float *float64 `type:"float"`
   194  
   195  	Long *int64 `type:"long"`
   196  
   197  	Num *int64 `locationName:"FooNum" type:"integer"`
   198  
   199  	Str *string `type:"string"`
   200  
   201  	TrueBool *bool `type:"boolean"`
   202  }
   203  
   204  // SetChar sets the Char field's value.
   205  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetChar(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   206  	s.Char = &v
   207  	return s
   208  }
   209  
   210  // SetDouble sets the Double field's value.
   211  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetDouble(v float64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   212  	s.Double = &v
   213  	return s
   214  }
   215  
   216  // SetFalseBool sets the FalseBool field's value.
   217  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetFalseBool(v bool) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   218  	s.FalseBool = &v
   219  	return s
   220  }
   221  
   222  // SetFloat sets the Float field's value.
   223  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetFloat(v float64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   224  	s.Float = &v
   225  	return s
   226  }
   227  
   228  // SetLong sets the Long field's value.
   229  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetLong(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   230  	s.Long = &v
   231  	return s
   232  }
   233  
   234  // SetNum sets the Num field's value.
   235  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetNum(v int64) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   236  	s.Num = &v
   237  	return s
   238  }
   239  
   240  // SetStr sets the Str field's value.
   241  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetStr(v string) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   242  	s.Str = &v
   243  	return s
   244  }
   245  
   246  // SetTrueBool sets the TrueBool field's value.
   247  func (s *OutputService1TestShapeOutputService1TestCaseOperation1Output) SetTrueBool(v bool) *OutputService1TestShapeOutputService1TestCaseOperation1Output {
   248  	s.TrueBool = &v
   249  	return s
   250  }
   251  
   252  // OutputService2ProtocolTest provides the API operation methods for making requests to
   253  // . See this package's package overview docs
   254  // for details on the service.
   255  //
   256  // OutputService2ProtocolTest methods are safe to use concurrently. It is not safe to
   257  // modify mutate any of the struct's properties though.
   258  type OutputService2ProtocolTest struct {
   259  	*client.Client
   260  }
   261  
   262  // New creates a new instance of the OutputService2ProtocolTest client with a session.
   263  // If additional configuration is needed for the client instance use the optional
   264  // aws.Config parameter to add your extra config.
   265  //
   266  // Example:
   267  //     mySession := session.Must(session.NewSession())
   268  //
   269  //     // Create a OutputService2ProtocolTest client from just a session.
   270  //     svc := outputservice2protocoltest.New(mySession)
   271  //
   272  //     // Create a OutputService2ProtocolTest client with additional configuration
   273  //     svc := outputservice2protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   274  func NewOutputService2ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService2ProtocolTest {
   275  	c := p.ClientConfig("outputservice2protocoltest", cfgs...)
   276  	return newOutputService2ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   277  }
   278  
   279  // newClient creates, initializes and returns a new service client instance.
   280  func newOutputService2ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService2ProtocolTest {
   281  	svc := &OutputService2ProtocolTest{
   282  		Client: client.New(
   283  			cfg,
   284  			metadata.ClientInfo{
   285  				ServiceName:   "OutputService2ProtocolTest",
   286  				ServiceID:     "OutputService2ProtocolTest",
   287  				SigningName:   signingName,
   288  				SigningRegion: signingRegion,
   289  				PartitionID:   partitionID,
   290  				Endpoint:      endpoint,
   291  				APIVersion:    "",
   292  			},
   293  			handlers,
   294  		),
   295  	}
   296  
   297  	// Handlers
   298  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   299  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
   300  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
   301  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
   302  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
   303  
   304  	return svc
   305  }
   306  
   307  // newRequest creates a new request for a OutputService2ProtocolTest operation and runs any
   308  // custom request initialization.
   309  func (c *OutputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   310  	req := c.NewRequest(op, params, data)
   311  
   312  	return req
   313  }
   314  
   315  const opOutputService2TestCaseOperation1 = "OperationName"
   316  
   317  // OutputService2TestCaseOperation1Request generates a "aws/request.Request" representing the
   318  // client's request for the OutputService2TestCaseOperation1 operation. The "output" return
   319  // value will be populated with the request's response once the request completes
   320  // successfully.
   321  //
   322  // Use "Send" method on the returned Request to send the API call to the service.
   323  // the "output" return value is not valid until after Send returns without error.
   324  //
   325  // See OutputService2TestCaseOperation1 for more information on using the OutputService2TestCaseOperation1
   326  // API call, and error handling.
   327  //
   328  // This method is useful when you want to inject custom logic or configuration
   329  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   330  //
   331  //
   332  //    // Example sending a request using the OutputService2TestCaseOperation1Request method.
   333  //    req, resp := client.OutputService2TestCaseOperation1Request(params)
   334  //
   335  //    err := req.Send()
   336  //    if err == nil { // resp is now filled
   337  //        fmt.Println(resp)
   338  //    }
   339  func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1Request(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (req *request.Request, output *OutputService2TestShapeOutputService2TestCaseOperation1Output) {
   340  	op := &request.Operation{
   341  		Name:     opOutputService2TestCaseOperation1,
   342  		HTTPPath: "/",
   343  	}
   344  
   345  	if input == nil {
   346  		input = &OutputService2TestShapeOutputService2TestCaseOperation1Input{}
   347  	}
   348  
   349  	output = &OutputService2TestShapeOutputService2TestCaseOperation1Output{}
   350  	req = c.newRequest(op, input, output)
   351  	return
   352  }
   353  
   354  // OutputService2TestCaseOperation1 API operation for .
   355  //
   356  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   357  // with awserr.Error's Code and Message methods to get detailed information about
   358  // the error.
   359  //
   360  // See the AWS API reference guide for 's
   361  // API operation OutputService2TestCaseOperation1 for usage and error information.
   362  func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1(input *OutputService2TestShapeOutputService2TestCaseOperation1Input) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
   363  	req, out := c.OutputService2TestCaseOperation1Request(input)
   364  	return out, req.Send()
   365  }
   366  
   367  // OutputService2TestCaseOperation1WithContext is the same as OutputService2TestCaseOperation1 with the addition of
   368  // the ability to pass a context and additional request options.
   369  //
   370  // See OutputService2TestCaseOperation1 for details on how to use this API operation.
   371  //
   372  // The context must be non-nil and will be used for request cancellation. If
   373  // the context is nil a panic will occur. In the future the SDK may create
   374  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   375  // for more information on using Contexts.
   376  func (c *OutputService2ProtocolTest) OutputService2TestCaseOperation1WithContext(ctx aws.Context, input *OutputService2TestShapeOutputService2TestCaseOperation1Input, opts ...request.Option) (*OutputService2TestShapeOutputService2TestCaseOperation1Output, error) {
   377  	req, out := c.OutputService2TestCaseOperation1Request(input)
   378  	req.SetContext(ctx)
   379  	req.ApplyOptions(opts...)
   380  	return out, req.Send()
   381  }
   382  
   383  type OutputService2TestShapeOutputService2TestCaseOperation1Input struct {
   384  	_ struct{} `type:"structure"`
   385  }
   386  
   387  type OutputService2TestShapeOutputService2TestCaseOperation1Output struct {
   388  	_ struct{} `type:"structure"`
   389  
   390  	// Blob is automatically base64 encoded/decoded by the SDK.
   391  	Blob []byte `type:"blob"`
   392  }
   393  
   394  // SetBlob sets the Blob field's value.
   395  func (s *OutputService2TestShapeOutputService2TestCaseOperation1Output) SetBlob(v []byte) *OutputService2TestShapeOutputService2TestCaseOperation1Output {
   396  	s.Blob = v
   397  	return s
   398  }
   399  
   400  // OutputService3ProtocolTest provides the API operation methods for making requests to
   401  // . See this package's package overview docs
   402  // for details on the service.
   403  //
   404  // OutputService3ProtocolTest methods are safe to use concurrently. It is not safe to
   405  // modify mutate any of the struct's properties though.
   406  type OutputService3ProtocolTest struct {
   407  	*client.Client
   408  }
   409  
   410  // New creates a new instance of the OutputService3ProtocolTest client with a session.
   411  // If additional configuration is needed for the client instance use the optional
   412  // aws.Config parameter to add your extra config.
   413  //
   414  // Example:
   415  //     mySession := session.Must(session.NewSession())
   416  //
   417  //     // Create a OutputService3ProtocolTest client from just a session.
   418  //     svc := outputservice3protocoltest.New(mySession)
   419  //
   420  //     // Create a OutputService3ProtocolTest client with additional configuration
   421  //     svc := outputservice3protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   422  func NewOutputService3ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService3ProtocolTest {
   423  	c := p.ClientConfig("outputservice3protocoltest", cfgs...)
   424  	return newOutputService3ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   425  }
   426  
   427  // newClient creates, initializes and returns a new service client instance.
   428  func newOutputService3ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService3ProtocolTest {
   429  	svc := &OutputService3ProtocolTest{
   430  		Client: client.New(
   431  			cfg,
   432  			metadata.ClientInfo{
   433  				ServiceName:   "OutputService3ProtocolTest",
   434  				ServiceID:     "OutputService3ProtocolTest",
   435  				SigningName:   signingName,
   436  				SigningRegion: signingRegion,
   437  				PartitionID:   partitionID,
   438  				Endpoint:      endpoint,
   439  				APIVersion:    "",
   440  			},
   441  			handlers,
   442  		),
   443  	}
   444  
   445  	// Handlers
   446  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   447  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
   448  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
   449  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
   450  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
   451  
   452  	return svc
   453  }
   454  
   455  // newRequest creates a new request for a OutputService3ProtocolTest operation and runs any
   456  // custom request initialization.
   457  func (c *OutputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   458  	req := c.NewRequest(op, params, data)
   459  
   460  	return req
   461  }
   462  
   463  const opOutputService3TestCaseOperation1 = "OperationName"
   464  
   465  // OutputService3TestCaseOperation1Request generates a "aws/request.Request" representing the
   466  // client's request for the OutputService3TestCaseOperation1 operation. The "output" return
   467  // value will be populated with the request's response once the request completes
   468  // successfully.
   469  //
   470  // Use "Send" method on the returned Request to send the API call to the service.
   471  // the "output" return value is not valid until after Send returns without error.
   472  //
   473  // See OutputService3TestCaseOperation1 for more information on using the OutputService3TestCaseOperation1
   474  // API call, and error handling.
   475  //
   476  // This method is useful when you want to inject custom logic or configuration
   477  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   478  //
   479  //
   480  //    // Example sending a request using the OutputService3TestCaseOperation1Request method.
   481  //    req, resp := client.OutputService3TestCaseOperation1Request(params)
   482  //
   483  //    err := req.Send()
   484  //    if err == nil { // resp is now filled
   485  //        fmt.Println(resp)
   486  //    }
   487  func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1Request(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (req *request.Request, output *OutputService3TestShapeOutputService3TestCaseOperation1Output) {
   488  	op := &request.Operation{
   489  		Name:     opOutputService3TestCaseOperation1,
   490  		HTTPPath: "/",
   491  	}
   492  
   493  	if input == nil {
   494  		input = &OutputService3TestShapeOutputService3TestCaseOperation1Input{}
   495  	}
   496  
   497  	output = &OutputService3TestShapeOutputService3TestCaseOperation1Output{}
   498  	req = c.newRequest(op, input, output)
   499  	return
   500  }
   501  
   502  // OutputService3TestCaseOperation1 API operation for .
   503  //
   504  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   505  // with awserr.Error's Code and Message methods to get detailed information about
   506  // the error.
   507  //
   508  // See the AWS API reference guide for 's
   509  // API operation OutputService3TestCaseOperation1 for usage and error information.
   510  func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1(input *OutputService3TestShapeOutputService3TestCaseOperation1Input) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
   511  	req, out := c.OutputService3TestCaseOperation1Request(input)
   512  	return out, req.Send()
   513  }
   514  
   515  // OutputService3TestCaseOperation1WithContext is the same as OutputService3TestCaseOperation1 with the addition of
   516  // the ability to pass a context and additional request options.
   517  //
   518  // See OutputService3TestCaseOperation1 for details on how to use this API operation.
   519  //
   520  // The context must be non-nil and will be used for request cancellation. If
   521  // the context is nil a panic will occur. In the future the SDK may create
   522  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   523  // for more information on using Contexts.
   524  func (c *OutputService3ProtocolTest) OutputService3TestCaseOperation1WithContext(ctx aws.Context, input *OutputService3TestShapeOutputService3TestCaseOperation1Input, opts ...request.Option) (*OutputService3TestShapeOutputService3TestCaseOperation1Output, error) {
   525  	req, out := c.OutputService3TestCaseOperation1Request(input)
   526  	req.SetContext(ctx)
   527  	req.ApplyOptions(opts...)
   528  	return out, req.Send()
   529  }
   530  
   531  type OutputService3TestShapeOutputService3TestCaseOperation1Input struct {
   532  	_ struct{} `type:"structure"`
   533  }
   534  
   535  type OutputService3TestShapeOutputService3TestCaseOperation1Output struct {
   536  	_ struct{} `type:"structure"`
   537  
   538  	ListMember []*string `type:"list"`
   539  }
   540  
   541  // SetListMember sets the ListMember field's value.
   542  func (s *OutputService3TestShapeOutputService3TestCaseOperation1Output) SetListMember(v []*string) *OutputService3TestShapeOutputService3TestCaseOperation1Output {
   543  	s.ListMember = v
   544  	return s
   545  }
   546  
   547  // OutputService4ProtocolTest provides the API operation methods for making requests to
   548  // . See this package's package overview docs
   549  // for details on the service.
   550  //
   551  // OutputService4ProtocolTest methods are safe to use concurrently. It is not safe to
   552  // modify mutate any of the struct's properties though.
   553  type OutputService4ProtocolTest struct {
   554  	*client.Client
   555  }
   556  
   557  // New creates a new instance of the OutputService4ProtocolTest client with a session.
   558  // If additional configuration is needed for the client instance use the optional
   559  // aws.Config parameter to add your extra config.
   560  //
   561  // Example:
   562  //     mySession := session.Must(session.NewSession())
   563  //
   564  //     // Create a OutputService4ProtocolTest client from just a session.
   565  //     svc := outputservice4protocoltest.New(mySession)
   566  //
   567  //     // Create a OutputService4ProtocolTest client with additional configuration
   568  //     svc := outputservice4protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   569  func NewOutputService4ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService4ProtocolTest {
   570  	c := p.ClientConfig("outputservice4protocoltest", cfgs...)
   571  	return newOutputService4ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   572  }
   573  
   574  // newClient creates, initializes and returns a new service client instance.
   575  func newOutputService4ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService4ProtocolTest {
   576  	svc := &OutputService4ProtocolTest{
   577  		Client: client.New(
   578  			cfg,
   579  			metadata.ClientInfo{
   580  				ServiceName:   "OutputService4ProtocolTest",
   581  				ServiceID:     "OutputService4ProtocolTest",
   582  				SigningName:   signingName,
   583  				SigningRegion: signingRegion,
   584  				PartitionID:   partitionID,
   585  				Endpoint:      endpoint,
   586  				APIVersion:    "",
   587  			},
   588  			handlers,
   589  		),
   590  	}
   591  
   592  	// Handlers
   593  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   594  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
   595  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
   596  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
   597  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
   598  
   599  	return svc
   600  }
   601  
   602  // newRequest creates a new request for a OutputService4ProtocolTest operation and runs any
   603  // custom request initialization.
   604  func (c *OutputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   605  	req := c.NewRequest(op, params, data)
   606  
   607  	return req
   608  }
   609  
   610  const opOutputService4TestCaseOperation1 = "OperationName"
   611  
   612  // OutputService4TestCaseOperation1Request generates a "aws/request.Request" representing the
   613  // client's request for the OutputService4TestCaseOperation1 operation. The "output" return
   614  // value will be populated with the request's response once the request completes
   615  // successfully.
   616  //
   617  // Use "Send" method on the returned Request to send the API call to the service.
   618  // the "output" return value is not valid until after Send returns without error.
   619  //
   620  // See OutputService4TestCaseOperation1 for more information on using the OutputService4TestCaseOperation1
   621  // API call, and error handling.
   622  //
   623  // This method is useful when you want to inject custom logic or configuration
   624  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   625  //
   626  //
   627  //    // Example sending a request using the OutputService4TestCaseOperation1Request method.
   628  //    req, resp := client.OutputService4TestCaseOperation1Request(params)
   629  //
   630  //    err := req.Send()
   631  //    if err == nil { // resp is now filled
   632  //        fmt.Println(resp)
   633  //    }
   634  func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1Request(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (req *request.Request, output *OutputService4TestShapeOutputService4TestCaseOperation1Output) {
   635  	op := &request.Operation{
   636  		Name:     opOutputService4TestCaseOperation1,
   637  		HTTPPath: "/",
   638  	}
   639  
   640  	if input == nil {
   641  		input = &OutputService4TestShapeOutputService4TestCaseOperation1Input{}
   642  	}
   643  
   644  	output = &OutputService4TestShapeOutputService4TestCaseOperation1Output{}
   645  	req = c.newRequest(op, input, output)
   646  	return
   647  }
   648  
   649  // OutputService4TestCaseOperation1 API operation for .
   650  //
   651  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   652  // with awserr.Error's Code and Message methods to get detailed information about
   653  // the error.
   654  //
   655  // See the AWS API reference guide for 's
   656  // API operation OutputService4TestCaseOperation1 for usage and error information.
   657  func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1(input *OutputService4TestShapeOutputService4TestCaseOperation1Input) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
   658  	req, out := c.OutputService4TestCaseOperation1Request(input)
   659  	return out, req.Send()
   660  }
   661  
   662  // OutputService4TestCaseOperation1WithContext is the same as OutputService4TestCaseOperation1 with the addition of
   663  // the ability to pass a context and additional request options.
   664  //
   665  // See OutputService4TestCaseOperation1 for details on how to use this API operation.
   666  //
   667  // The context must be non-nil and will be used for request cancellation. If
   668  // the context is nil a panic will occur. In the future the SDK may create
   669  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   670  // for more information on using Contexts.
   671  func (c *OutputService4ProtocolTest) OutputService4TestCaseOperation1WithContext(ctx aws.Context, input *OutputService4TestShapeOutputService4TestCaseOperation1Input, opts ...request.Option) (*OutputService4TestShapeOutputService4TestCaseOperation1Output, error) {
   672  	req, out := c.OutputService4TestCaseOperation1Request(input)
   673  	req.SetContext(ctx)
   674  	req.ApplyOptions(opts...)
   675  	return out, req.Send()
   676  }
   677  
   678  type OutputService4TestShapeOutputService4TestCaseOperation1Input struct {
   679  	_ struct{} `type:"structure"`
   680  }
   681  
   682  type OutputService4TestShapeOutputService4TestCaseOperation1Output struct {
   683  	_ struct{} `type:"structure"`
   684  
   685  	ListMember []*string `locationNameList:"item" type:"list"`
   686  }
   687  
   688  // SetListMember sets the ListMember field's value.
   689  func (s *OutputService4TestShapeOutputService4TestCaseOperation1Output) SetListMember(v []*string) *OutputService4TestShapeOutputService4TestCaseOperation1Output {
   690  	s.ListMember = v
   691  	return s
   692  }
   693  
   694  // OutputService5ProtocolTest provides the API operation methods for making requests to
   695  // . See this package's package overview docs
   696  // for details on the service.
   697  //
   698  // OutputService5ProtocolTest methods are safe to use concurrently. It is not safe to
   699  // modify mutate any of the struct's properties though.
   700  type OutputService5ProtocolTest struct {
   701  	*client.Client
   702  }
   703  
   704  // New creates a new instance of the OutputService5ProtocolTest client with a session.
   705  // If additional configuration is needed for the client instance use the optional
   706  // aws.Config parameter to add your extra config.
   707  //
   708  // Example:
   709  //     mySession := session.Must(session.NewSession())
   710  //
   711  //     // Create a OutputService5ProtocolTest client from just a session.
   712  //     svc := outputservice5protocoltest.New(mySession)
   713  //
   714  //     // Create a OutputService5ProtocolTest client with additional configuration
   715  //     svc := outputservice5protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   716  func NewOutputService5ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService5ProtocolTest {
   717  	c := p.ClientConfig("outputservice5protocoltest", cfgs...)
   718  	return newOutputService5ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   719  }
   720  
   721  // newClient creates, initializes and returns a new service client instance.
   722  func newOutputService5ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService5ProtocolTest {
   723  	svc := &OutputService5ProtocolTest{
   724  		Client: client.New(
   725  			cfg,
   726  			metadata.ClientInfo{
   727  				ServiceName:   "OutputService5ProtocolTest",
   728  				ServiceID:     "OutputService5ProtocolTest",
   729  				SigningName:   signingName,
   730  				SigningRegion: signingRegion,
   731  				PartitionID:   partitionID,
   732  				Endpoint:      endpoint,
   733  				APIVersion:    "",
   734  			},
   735  			handlers,
   736  		),
   737  	}
   738  
   739  	// Handlers
   740  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   741  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
   742  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
   743  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
   744  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
   745  
   746  	return svc
   747  }
   748  
   749  // newRequest creates a new request for a OutputService5ProtocolTest operation and runs any
   750  // custom request initialization.
   751  func (c *OutputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   752  	req := c.NewRequest(op, params, data)
   753  
   754  	return req
   755  }
   756  
   757  const opOutputService5TestCaseOperation1 = "OperationName"
   758  
   759  // OutputService5TestCaseOperation1Request generates a "aws/request.Request" representing the
   760  // client's request for the OutputService5TestCaseOperation1 operation. The "output" return
   761  // value will be populated with the request's response once the request completes
   762  // successfully.
   763  //
   764  // Use "Send" method on the returned Request to send the API call to the service.
   765  // the "output" return value is not valid until after Send returns without error.
   766  //
   767  // See OutputService5TestCaseOperation1 for more information on using the OutputService5TestCaseOperation1
   768  // API call, and error handling.
   769  //
   770  // This method is useful when you want to inject custom logic or configuration
   771  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   772  //
   773  //
   774  //    // Example sending a request using the OutputService5TestCaseOperation1Request method.
   775  //    req, resp := client.OutputService5TestCaseOperation1Request(params)
   776  //
   777  //    err := req.Send()
   778  //    if err == nil { // resp is now filled
   779  //        fmt.Println(resp)
   780  //    }
   781  func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1Request(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (req *request.Request, output *OutputService5TestShapeOutputService5TestCaseOperation1Output) {
   782  	op := &request.Operation{
   783  		Name:     opOutputService5TestCaseOperation1,
   784  		HTTPPath: "/",
   785  	}
   786  
   787  	if input == nil {
   788  		input = &OutputService5TestShapeOutputService5TestCaseOperation1Input{}
   789  	}
   790  
   791  	output = &OutputService5TestShapeOutputService5TestCaseOperation1Output{}
   792  	req = c.newRequest(op, input, output)
   793  	return
   794  }
   795  
   796  // OutputService5TestCaseOperation1 API operation for .
   797  //
   798  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   799  // with awserr.Error's Code and Message methods to get detailed information about
   800  // the error.
   801  //
   802  // See the AWS API reference guide for 's
   803  // API operation OutputService5TestCaseOperation1 for usage and error information.
   804  func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1(input *OutputService5TestShapeOutputService5TestCaseOperation1Input) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
   805  	req, out := c.OutputService5TestCaseOperation1Request(input)
   806  	return out, req.Send()
   807  }
   808  
   809  // OutputService5TestCaseOperation1WithContext is the same as OutputService5TestCaseOperation1 with the addition of
   810  // the ability to pass a context and additional request options.
   811  //
   812  // See OutputService5TestCaseOperation1 for details on how to use this API operation.
   813  //
   814  // The context must be non-nil and will be used for request cancellation. If
   815  // the context is nil a panic will occur. In the future the SDK may create
   816  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   817  // for more information on using Contexts.
   818  func (c *OutputService5ProtocolTest) OutputService5TestCaseOperation1WithContext(ctx aws.Context, input *OutputService5TestShapeOutputService5TestCaseOperation1Input, opts ...request.Option) (*OutputService5TestShapeOutputService5TestCaseOperation1Output, error) {
   819  	req, out := c.OutputService5TestCaseOperation1Request(input)
   820  	req.SetContext(ctx)
   821  	req.ApplyOptions(opts...)
   822  	return out, req.Send()
   823  }
   824  
   825  type OutputService5TestShapeOutputService5TestCaseOperation1Input struct {
   826  	_ struct{} `type:"structure"`
   827  }
   828  
   829  type OutputService5TestShapeOutputService5TestCaseOperation1Output struct {
   830  	_ struct{} `type:"structure"`
   831  
   832  	ListMember []*string `type:"list" flattened:"true"`
   833  }
   834  
   835  // SetListMember sets the ListMember field's value.
   836  func (s *OutputService5TestShapeOutputService5TestCaseOperation1Output) SetListMember(v []*string) *OutputService5TestShapeOutputService5TestCaseOperation1Output {
   837  	s.ListMember = v
   838  	return s
   839  }
   840  
   841  // OutputService6ProtocolTest provides the API operation methods for making requests to
   842  // . See this package's package overview docs
   843  // for details on the service.
   844  //
   845  // OutputService6ProtocolTest methods are safe to use concurrently. It is not safe to
   846  // modify mutate any of the struct's properties though.
   847  type OutputService6ProtocolTest struct {
   848  	*client.Client
   849  }
   850  
   851  // New creates a new instance of the OutputService6ProtocolTest client with a session.
   852  // If additional configuration is needed for the client instance use the optional
   853  // aws.Config parameter to add your extra config.
   854  //
   855  // Example:
   856  //     mySession := session.Must(session.NewSession())
   857  //
   858  //     // Create a OutputService6ProtocolTest client from just a session.
   859  //     svc := outputservice6protocoltest.New(mySession)
   860  //
   861  //     // Create a OutputService6ProtocolTest client with additional configuration
   862  //     svc := outputservice6protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
   863  func NewOutputService6ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService6ProtocolTest {
   864  	c := p.ClientConfig("outputservice6protocoltest", cfgs...)
   865  	return newOutputService6ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
   866  }
   867  
   868  // newClient creates, initializes and returns a new service client instance.
   869  func newOutputService6ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService6ProtocolTest {
   870  	svc := &OutputService6ProtocolTest{
   871  		Client: client.New(
   872  			cfg,
   873  			metadata.ClientInfo{
   874  				ServiceName:   "OutputService6ProtocolTest",
   875  				ServiceID:     "OutputService6ProtocolTest",
   876  				SigningName:   signingName,
   877  				SigningRegion: signingRegion,
   878  				PartitionID:   partitionID,
   879  				Endpoint:      endpoint,
   880  				APIVersion:    "",
   881  			},
   882  			handlers,
   883  		),
   884  	}
   885  
   886  	// Handlers
   887  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
   888  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
   889  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
   890  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
   891  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
   892  
   893  	return svc
   894  }
   895  
   896  // newRequest creates a new request for a OutputService6ProtocolTest operation and runs any
   897  // custom request initialization.
   898  func (c *OutputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
   899  	req := c.NewRequest(op, params, data)
   900  
   901  	return req
   902  }
   903  
   904  const opOutputService6TestCaseOperation1 = "OperationName"
   905  
   906  // OutputService6TestCaseOperation1Request generates a "aws/request.Request" representing the
   907  // client's request for the OutputService6TestCaseOperation1 operation. The "output" return
   908  // value will be populated with the request's response once the request completes
   909  // successfully.
   910  //
   911  // Use "Send" method on the returned Request to send the API call to the service.
   912  // the "output" return value is not valid until after Send returns without error.
   913  //
   914  // See OutputService6TestCaseOperation1 for more information on using the OutputService6TestCaseOperation1
   915  // API call, and error handling.
   916  //
   917  // This method is useful when you want to inject custom logic or configuration
   918  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   919  //
   920  //
   921  //    // Example sending a request using the OutputService6TestCaseOperation1Request method.
   922  //    req, resp := client.OutputService6TestCaseOperation1Request(params)
   923  //
   924  //    err := req.Send()
   925  //    if err == nil { // resp is now filled
   926  //        fmt.Println(resp)
   927  //    }
   928  func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1Request(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (req *request.Request, output *OutputService6TestShapeOutputService6TestCaseOperation1Output) {
   929  	op := &request.Operation{
   930  		Name:     opOutputService6TestCaseOperation1,
   931  		HTTPPath: "/",
   932  	}
   933  
   934  	if input == nil {
   935  		input = &OutputService6TestShapeOutputService6TestCaseOperation1Input{}
   936  	}
   937  
   938  	output = &OutputService6TestShapeOutputService6TestCaseOperation1Output{}
   939  	req = c.newRequest(op, input, output)
   940  	return
   941  }
   942  
   943  // OutputService6TestCaseOperation1 API operation for .
   944  //
   945  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   946  // with awserr.Error's Code and Message methods to get detailed information about
   947  // the error.
   948  //
   949  // See the AWS API reference guide for 's
   950  // API operation OutputService6TestCaseOperation1 for usage and error information.
   951  func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1(input *OutputService6TestShapeOutputService6TestCaseOperation1Input) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
   952  	req, out := c.OutputService6TestCaseOperation1Request(input)
   953  	return out, req.Send()
   954  }
   955  
   956  // OutputService6TestCaseOperation1WithContext is the same as OutputService6TestCaseOperation1 with the addition of
   957  // the ability to pass a context and additional request options.
   958  //
   959  // See OutputService6TestCaseOperation1 for details on how to use this API operation.
   960  //
   961  // The context must be non-nil and will be used for request cancellation. If
   962  // the context is nil a panic will occur. In the future the SDK may create
   963  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   964  // for more information on using Contexts.
   965  func (c *OutputService6ProtocolTest) OutputService6TestCaseOperation1WithContext(ctx aws.Context, input *OutputService6TestShapeOutputService6TestCaseOperation1Input, opts ...request.Option) (*OutputService6TestShapeOutputService6TestCaseOperation1Output, error) {
   966  	req, out := c.OutputService6TestCaseOperation1Request(input)
   967  	req.SetContext(ctx)
   968  	req.ApplyOptions(opts...)
   969  	return out, req.Send()
   970  }
   971  
   972  type OutputService6TestShapeOutputService6TestCaseOperation1Input struct {
   973  	_ struct{} `type:"structure"`
   974  }
   975  
   976  type OutputService6TestShapeOutputService6TestCaseOperation1Output struct {
   977  	_ struct{} `type:"structure"`
   978  
   979  	Map map[string]*OutputService6TestShapeStructureType `type:"map"`
   980  }
   981  
   982  // SetMap sets the Map field's value.
   983  func (s *OutputService6TestShapeOutputService6TestCaseOperation1Output) SetMap(v map[string]*OutputService6TestShapeStructureType) *OutputService6TestShapeOutputService6TestCaseOperation1Output {
   984  	s.Map = v
   985  	return s
   986  }
   987  
   988  type OutputService6TestShapeStructureType struct {
   989  	_ struct{} `type:"structure"`
   990  
   991  	Foo *string `locationName:"foo" type:"string"`
   992  }
   993  
   994  // SetFoo sets the Foo field's value.
   995  func (s *OutputService6TestShapeStructureType) SetFoo(v string) *OutputService6TestShapeStructureType {
   996  	s.Foo = &v
   997  	return s
   998  }
   999  
  1000  // OutputService7ProtocolTest provides the API operation methods for making requests to
  1001  // . See this package's package overview docs
  1002  // for details on the service.
  1003  //
  1004  // OutputService7ProtocolTest methods are safe to use concurrently. It is not safe to
  1005  // modify mutate any of the struct's properties though.
  1006  type OutputService7ProtocolTest struct {
  1007  	*client.Client
  1008  }
  1009  
  1010  // New creates a new instance of the OutputService7ProtocolTest client with a session.
  1011  // If additional configuration is needed for the client instance use the optional
  1012  // aws.Config parameter to add your extra config.
  1013  //
  1014  // Example:
  1015  //     mySession := session.Must(session.NewSession())
  1016  //
  1017  //     // Create a OutputService7ProtocolTest client from just a session.
  1018  //     svc := outputservice7protocoltest.New(mySession)
  1019  //
  1020  //     // Create a OutputService7ProtocolTest client with additional configuration
  1021  //     svc := outputservice7protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1022  func NewOutputService7ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService7ProtocolTest {
  1023  	c := p.ClientConfig("outputservice7protocoltest", cfgs...)
  1024  	return newOutputService7ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1025  }
  1026  
  1027  // newClient creates, initializes and returns a new service client instance.
  1028  func newOutputService7ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService7ProtocolTest {
  1029  	svc := &OutputService7ProtocolTest{
  1030  		Client: client.New(
  1031  			cfg,
  1032  			metadata.ClientInfo{
  1033  				ServiceName:   "OutputService7ProtocolTest",
  1034  				ServiceID:     "OutputService7ProtocolTest",
  1035  				SigningName:   signingName,
  1036  				SigningRegion: signingRegion,
  1037  				PartitionID:   partitionID,
  1038  				Endpoint:      endpoint,
  1039  				APIVersion:    "",
  1040  			},
  1041  			handlers,
  1042  		),
  1043  	}
  1044  
  1045  	// Handlers
  1046  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1047  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
  1048  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
  1049  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
  1050  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
  1051  
  1052  	return svc
  1053  }
  1054  
  1055  // newRequest creates a new request for a OutputService7ProtocolTest operation and runs any
  1056  // custom request initialization.
  1057  func (c *OutputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1058  	req := c.NewRequest(op, params, data)
  1059  
  1060  	return req
  1061  }
  1062  
  1063  const opOutputService7TestCaseOperation1 = "OperationName"
  1064  
  1065  // OutputService7TestCaseOperation1Request generates a "aws/request.Request" representing the
  1066  // client's request for the OutputService7TestCaseOperation1 operation. The "output" return
  1067  // value will be populated with the request's response once the request completes
  1068  // successfully.
  1069  //
  1070  // Use "Send" method on the returned Request to send the API call to the service.
  1071  // the "output" return value is not valid until after Send returns without error.
  1072  //
  1073  // See OutputService7TestCaseOperation1 for more information on using the OutputService7TestCaseOperation1
  1074  // API call, and error handling.
  1075  //
  1076  // This method is useful when you want to inject custom logic or configuration
  1077  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1078  //
  1079  //
  1080  //    // Example sending a request using the OutputService7TestCaseOperation1Request method.
  1081  //    req, resp := client.OutputService7TestCaseOperation1Request(params)
  1082  //
  1083  //    err := req.Send()
  1084  //    if err == nil { // resp is now filled
  1085  //        fmt.Println(resp)
  1086  //    }
  1087  func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1Request(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (req *request.Request, output *OutputService7TestShapeOutputService7TestCaseOperation1Output) {
  1088  	op := &request.Operation{
  1089  		Name:     opOutputService7TestCaseOperation1,
  1090  		HTTPPath: "/",
  1091  	}
  1092  
  1093  	if input == nil {
  1094  		input = &OutputService7TestShapeOutputService7TestCaseOperation1Input{}
  1095  	}
  1096  
  1097  	output = &OutputService7TestShapeOutputService7TestCaseOperation1Output{}
  1098  	req = c.newRequest(op, input, output)
  1099  	return
  1100  }
  1101  
  1102  // OutputService7TestCaseOperation1 API operation for .
  1103  //
  1104  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1105  // with awserr.Error's Code and Message methods to get detailed information about
  1106  // the error.
  1107  //
  1108  // See the AWS API reference guide for 's
  1109  // API operation OutputService7TestCaseOperation1 for usage and error information.
  1110  func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1(input *OutputService7TestShapeOutputService7TestCaseOperation1Input) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
  1111  	req, out := c.OutputService7TestCaseOperation1Request(input)
  1112  	return out, req.Send()
  1113  }
  1114  
  1115  // OutputService7TestCaseOperation1WithContext is the same as OutputService7TestCaseOperation1 with the addition of
  1116  // the ability to pass a context and additional request options.
  1117  //
  1118  // See OutputService7TestCaseOperation1 for details on how to use this API operation.
  1119  //
  1120  // The context must be non-nil and will be used for request cancellation. If
  1121  // the context is nil a panic will occur. In the future the SDK may create
  1122  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1123  // for more information on using Contexts.
  1124  func (c *OutputService7ProtocolTest) OutputService7TestCaseOperation1WithContext(ctx aws.Context, input *OutputService7TestShapeOutputService7TestCaseOperation1Input, opts ...request.Option) (*OutputService7TestShapeOutputService7TestCaseOperation1Output, error) {
  1125  	req, out := c.OutputService7TestCaseOperation1Request(input)
  1126  	req.SetContext(ctx)
  1127  	req.ApplyOptions(opts...)
  1128  	return out, req.Send()
  1129  }
  1130  
  1131  type OutputService7TestShapeOutputService7TestCaseOperation1Input struct {
  1132  	_ struct{} `type:"structure"`
  1133  }
  1134  
  1135  type OutputService7TestShapeOutputService7TestCaseOperation1Output struct {
  1136  	_ struct{} `type:"structure"`
  1137  
  1138  	Map map[string]*string `type:"map" flattened:"true"`
  1139  }
  1140  
  1141  // SetMap sets the Map field's value.
  1142  func (s *OutputService7TestShapeOutputService7TestCaseOperation1Output) SetMap(v map[string]*string) *OutputService7TestShapeOutputService7TestCaseOperation1Output {
  1143  	s.Map = v
  1144  	return s
  1145  }
  1146  
  1147  // OutputService8ProtocolTest provides the API operation methods for making requests to
  1148  // . See this package's package overview docs
  1149  // for details on the service.
  1150  //
  1151  // OutputService8ProtocolTest methods are safe to use concurrently. It is not safe to
  1152  // modify mutate any of the struct's properties though.
  1153  type OutputService8ProtocolTest struct {
  1154  	*client.Client
  1155  }
  1156  
  1157  // New creates a new instance of the OutputService8ProtocolTest client with a session.
  1158  // If additional configuration is needed for the client instance use the optional
  1159  // aws.Config parameter to add your extra config.
  1160  //
  1161  // Example:
  1162  //     mySession := session.Must(session.NewSession())
  1163  //
  1164  //     // Create a OutputService8ProtocolTest client from just a session.
  1165  //     svc := outputservice8protocoltest.New(mySession)
  1166  //
  1167  //     // Create a OutputService8ProtocolTest client with additional configuration
  1168  //     svc := outputservice8protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1169  func NewOutputService8ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService8ProtocolTest {
  1170  	c := p.ClientConfig("outputservice8protocoltest", cfgs...)
  1171  	return newOutputService8ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1172  }
  1173  
  1174  // newClient creates, initializes and returns a new service client instance.
  1175  func newOutputService8ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService8ProtocolTest {
  1176  	svc := &OutputService8ProtocolTest{
  1177  		Client: client.New(
  1178  			cfg,
  1179  			metadata.ClientInfo{
  1180  				ServiceName:   "OutputService8ProtocolTest",
  1181  				ServiceID:     "OutputService8ProtocolTest",
  1182  				SigningName:   signingName,
  1183  				SigningRegion: signingRegion,
  1184  				PartitionID:   partitionID,
  1185  				Endpoint:      endpoint,
  1186  				APIVersion:    "",
  1187  			},
  1188  			handlers,
  1189  		),
  1190  	}
  1191  
  1192  	// Handlers
  1193  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1194  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
  1195  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
  1196  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
  1197  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
  1198  
  1199  	return svc
  1200  }
  1201  
  1202  // newRequest creates a new request for a OutputService8ProtocolTest operation and runs any
  1203  // custom request initialization.
  1204  func (c *OutputService8ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1205  	req := c.NewRequest(op, params, data)
  1206  
  1207  	return req
  1208  }
  1209  
  1210  const opOutputService8TestCaseOperation1 = "OperationName"
  1211  
  1212  // OutputService8TestCaseOperation1Request generates a "aws/request.Request" representing the
  1213  // client's request for the OutputService8TestCaseOperation1 operation. The "output" return
  1214  // value will be populated with the request's response once the request completes
  1215  // successfully.
  1216  //
  1217  // Use "Send" method on the returned Request to send the API call to the service.
  1218  // the "output" return value is not valid until after Send returns without error.
  1219  //
  1220  // See OutputService8TestCaseOperation1 for more information on using the OutputService8TestCaseOperation1
  1221  // API call, and error handling.
  1222  //
  1223  // This method is useful when you want to inject custom logic or configuration
  1224  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1225  //
  1226  //
  1227  //    // Example sending a request using the OutputService8TestCaseOperation1Request method.
  1228  //    req, resp := client.OutputService8TestCaseOperation1Request(params)
  1229  //
  1230  //    err := req.Send()
  1231  //    if err == nil { // resp is now filled
  1232  //        fmt.Println(resp)
  1233  //    }
  1234  func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1Request(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (req *request.Request, output *OutputService8TestShapeOutputService8TestCaseOperation1Output) {
  1235  	op := &request.Operation{
  1236  		Name:     opOutputService8TestCaseOperation1,
  1237  		HTTPPath: "/",
  1238  	}
  1239  
  1240  	if input == nil {
  1241  		input = &OutputService8TestShapeOutputService8TestCaseOperation1Input{}
  1242  	}
  1243  
  1244  	output = &OutputService8TestShapeOutputService8TestCaseOperation1Output{}
  1245  	req = c.newRequest(op, input, output)
  1246  	return
  1247  }
  1248  
  1249  // OutputService8TestCaseOperation1 API operation for .
  1250  //
  1251  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1252  // with awserr.Error's Code and Message methods to get detailed information about
  1253  // the error.
  1254  //
  1255  // See the AWS API reference guide for 's
  1256  // API operation OutputService8TestCaseOperation1 for usage and error information.
  1257  func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1(input *OutputService8TestShapeOutputService8TestCaseOperation1Input) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
  1258  	req, out := c.OutputService8TestCaseOperation1Request(input)
  1259  	return out, req.Send()
  1260  }
  1261  
  1262  // OutputService8TestCaseOperation1WithContext is the same as OutputService8TestCaseOperation1 with the addition of
  1263  // the ability to pass a context and additional request options.
  1264  //
  1265  // See OutputService8TestCaseOperation1 for details on how to use this API operation.
  1266  //
  1267  // The context must be non-nil and will be used for request cancellation. If
  1268  // the context is nil a panic will occur. In the future the SDK may create
  1269  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1270  // for more information on using Contexts.
  1271  func (c *OutputService8ProtocolTest) OutputService8TestCaseOperation1WithContext(ctx aws.Context, input *OutputService8TestShapeOutputService8TestCaseOperation1Input, opts ...request.Option) (*OutputService8TestShapeOutputService8TestCaseOperation1Output, error) {
  1272  	req, out := c.OutputService8TestCaseOperation1Request(input)
  1273  	req.SetContext(ctx)
  1274  	req.ApplyOptions(opts...)
  1275  	return out, req.Send()
  1276  }
  1277  
  1278  type OutputService8TestShapeOutputService8TestCaseOperation1Input struct {
  1279  	_ struct{} `type:"structure"`
  1280  }
  1281  
  1282  type OutputService8TestShapeOutputService8TestCaseOperation1Output struct {
  1283  	_ struct{} `type:"structure"`
  1284  
  1285  	Map map[string]*string `locationNameKey:"foo" locationNameValue:"bar" type:"map" flattened:"true"`
  1286  }
  1287  
  1288  // SetMap sets the Map field's value.
  1289  func (s *OutputService8TestShapeOutputService8TestCaseOperation1Output) SetMap(v map[string]*string) *OutputService8TestShapeOutputService8TestCaseOperation1Output {
  1290  	s.Map = v
  1291  	return s
  1292  }
  1293  
  1294  // OutputService9ProtocolTest provides the API operation methods for making requests to
  1295  // . See this package's package overview docs
  1296  // for details on the service.
  1297  //
  1298  // OutputService9ProtocolTest methods are safe to use concurrently. It is not safe to
  1299  // modify mutate any of the struct's properties though.
  1300  type OutputService9ProtocolTest struct {
  1301  	*client.Client
  1302  }
  1303  
  1304  // New creates a new instance of the OutputService9ProtocolTest client with a session.
  1305  // If additional configuration is needed for the client instance use the optional
  1306  // aws.Config parameter to add your extra config.
  1307  //
  1308  // Example:
  1309  //     mySession := session.Must(session.NewSession())
  1310  //
  1311  //     // Create a OutputService9ProtocolTest client from just a session.
  1312  //     svc := outputservice9protocoltest.New(mySession)
  1313  //
  1314  //     // Create a OutputService9ProtocolTest client with additional configuration
  1315  //     svc := outputservice9protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1316  func NewOutputService9ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService9ProtocolTest {
  1317  	c := p.ClientConfig("outputservice9protocoltest", cfgs...)
  1318  	return newOutputService9ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1319  }
  1320  
  1321  // newClient creates, initializes and returns a new service client instance.
  1322  func newOutputService9ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService9ProtocolTest {
  1323  	svc := &OutputService9ProtocolTest{
  1324  		Client: client.New(
  1325  			cfg,
  1326  			metadata.ClientInfo{
  1327  				ServiceName:   "OutputService9ProtocolTest",
  1328  				ServiceID:     "OutputService9ProtocolTest",
  1329  				SigningName:   signingName,
  1330  				SigningRegion: signingRegion,
  1331  				PartitionID:   partitionID,
  1332  				Endpoint:      endpoint,
  1333  				APIVersion:    "",
  1334  			},
  1335  			handlers,
  1336  		),
  1337  	}
  1338  
  1339  	// Handlers
  1340  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1341  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
  1342  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
  1343  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
  1344  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
  1345  
  1346  	return svc
  1347  }
  1348  
  1349  // newRequest creates a new request for a OutputService9ProtocolTest operation and runs any
  1350  // custom request initialization.
  1351  func (c *OutputService9ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1352  	req := c.NewRequest(op, params, data)
  1353  
  1354  	return req
  1355  }
  1356  
  1357  const opOutputService9TestCaseOperation1 = "OperationName"
  1358  
  1359  // OutputService9TestCaseOperation1Request generates a "aws/request.Request" representing the
  1360  // client's request for the OutputService9TestCaseOperation1 operation. The "output" return
  1361  // value will be populated with the request's response once the request completes
  1362  // successfully.
  1363  //
  1364  // Use "Send" method on the returned Request to send the API call to the service.
  1365  // the "output" return value is not valid until after Send returns without error.
  1366  //
  1367  // See OutputService9TestCaseOperation1 for more information on using the OutputService9TestCaseOperation1
  1368  // API call, and error handling.
  1369  //
  1370  // This method is useful when you want to inject custom logic or configuration
  1371  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1372  //
  1373  //
  1374  //    // Example sending a request using the OutputService9TestCaseOperation1Request method.
  1375  //    req, resp := client.OutputService9TestCaseOperation1Request(params)
  1376  //
  1377  //    err := req.Send()
  1378  //    if err == nil { // resp is now filled
  1379  //        fmt.Println(resp)
  1380  //    }
  1381  func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1Request(input *OutputService9TestShapeOutputService9TestCaseOperation1Input) (req *request.Request, output *OutputService9TestShapeOutputService9TestCaseOperation1Output) {
  1382  	op := &request.Operation{
  1383  		Name:     opOutputService9TestCaseOperation1,
  1384  		HTTPPath: "/",
  1385  	}
  1386  
  1387  	if input == nil {
  1388  		input = &OutputService9TestShapeOutputService9TestCaseOperation1Input{}
  1389  	}
  1390  
  1391  	output = &OutputService9TestShapeOutputService9TestCaseOperation1Output{}
  1392  	req = c.newRequest(op, input, output)
  1393  	return
  1394  }
  1395  
  1396  // OutputService9TestCaseOperation1 API operation for .
  1397  //
  1398  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1399  // with awserr.Error's Code and Message methods to get detailed information about
  1400  // the error.
  1401  //
  1402  // See the AWS API reference guide for 's
  1403  // API operation OutputService9TestCaseOperation1 for usage and error information.
  1404  func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1(input *OutputService9TestShapeOutputService9TestCaseOperation1Input) (*OutputService9TestShapeOutputService9TestCaseOperation1Output, error) {
  1405  	req, out := c.OutputService9TestCaseOperation1Request(input)
  1406  	return out, req.Send()
  1407  }
  1408  
  1409  // OutputService9TestCaseOperation1WithContext is the same as OutputService9TestCaseOperation1 with the addition of
  1410  // the ability to pass a context and additional request options.
  1411  //
  1412  // See OutputService9TestCaseOperation1 for details on how to use this API operation.
  1413  //
  1414  // The context must be non-nil and will be used for request cancellation. If
  1415  // the context is nil a panic will occur. In the future the SDK may create
  1416  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1417  // for more information on using Contexts.
  1418  func (c *OutputService9ProtocolTest) OutputService9TestCaseOperation1WithContext(ctx aws.Context, input *OutputService9TestShapeOutputService9TestCaseOperation1Input, opts ...request.Option) (*OutputService9TestShapeOutputService9TestCaseOperation1Output, error) {
  1419  	req, out := c.OutputService9TestCaseOperation1Request(input)
  1420  	req.SetContext(ctx)
  1421  	req.ApplyOptions(opts...)
  1422  	return out, req.Send()
  1423  }
  1424  
  1425  type OutputService9TestShapeOutputService9TestCaseOperation1Input struct {
  1426  	_ struct{} `type:"structure"`
  1427  }
  1428  
  1429  type OutputService9TestShapeOutputService9TestCaseOperation1Output struct {
  1430  	_ struct{} `type:"structure"`
  1431  
  1432  	Foo *string `type:"string"`
  1433  }
  1434  
  1435  // SetFoo sets the Foo field's value.
  1436  func (s *OutputService9TestShapeOutputService9TestCaseOperation1Output) SetFoo(v string) *OutputService9TestShapeOutputService9TestCaseOperation1Output {
  1437  	s.Foo = &v
  1438  	return s
  1439  }
  1440  
  1441  // OutputService10ProtocolTest provides the API operation methods for making requests to
  1442  // . See this package's package overview docs
  1443  // for details on the service.
  1444  //
  1445  // OutputService10ProtocolTest methods are safe to use concurrently. It is not safe to
  1446  // modify mutate any of the struct's properties though.
  1447  type OutputService10ProtocolTest struct {
  1448  	*client.Client
  1449  }
  1450  
  1451  // New creates a new instance of the OutputService10ProtocolTest client with a session.
  1452  // If additional configuration is needed for the client instance use the optional
  1453  // aws.Config parameter to add your extra config.
  1454  //
  1455  // Example:
  1456  //     mySession := session.Must(session.NewSession())
  1457  //
  1458  //     // Create a OutputService10ProtocolTest client from just a session.
  1459  //     svc := outputservice10protocoltest.New(mySession)
  1460  //
  1461  //     // Create a OutputService10ProtocolTest client with additional configuration
  1462  //     svc := outputservice10protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1463  func NewOutputService10ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService10ProtocolTest {
  1464  	c := p.ClientConfig("outputservice10protocoltest", cfgs...)
  1465  	return newOutputService10ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1466  }
  1467  
  1468  // newClient creates, initializes and returns a new service client instance.
  1469  func newOutputService10ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService10ProtocolTest {
  1470  	svc := &OutputService10ProtocolTest{
  1471  		Client: client.New(
  1472  			cfg,
  1473  			metadata.ClientInfo{
  1474  				ServiceName:   "OutputService10ProtocolTest",
  1475  				ServiceID:     "OutputService10ProtocolTest",
  1476  				SigningName:   signingName,
  1477  				SigningRegion: signingRegion,
  1478  				PartitionID:   partitionID,
  1479  				Endpoint:      endpoint,
  1480  				APIVersion:    "",
  1481  			},
  1482  			handlers,
  1483  		),
  1484  	}
  1485  
  1486  	// Handlers
  1487  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1488  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
  1489  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
  1490  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
  1491  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
  1492  
  1493  	return svc
  1494  }
  1495  
  1496  // newRequest creates a new request for a OutputService10ProtocolTest operation and runs any
  1497  // custom request initialization.
  1498  func (c *OutputService10ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1499  	req := c.NewRequest(op, params, data)
  1500  
  1501  	return req
  1502  }
  1503  
  1504  const opOutputService10TestCaseOperation1 = "OperationName"
  1505  
  1506  // OutputService10TestCaseOperation1Request generates a "aws/request.Request" representing the
  1507  // client's request for the OutputService10TestCaseOperation1 operation. The "output" return
  1508  // value will be populated with the request's response once the request completes
  1509  // successfully.
  1510  //
  1511  // Use "Send" method on the returned Request to send the API call to the service.
  1512  // the "output" return value is not valid until after Send returns without error.
  1513  //
  1514  // See OutputService10TestCaseOperation1 for more information on using the OutputService10TestCaseOperation1
  1515  // API call, and error handling.
  1516  //
  1517  // This method is useful when you want to inject custom logic or configuration
  1518  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1519  //
  1520  //
  1521  //    // Example sending a request using the OutputService10TestCaseOperation1Request method.
  1522  //    req, resp := client.OutputService10TestCaseOperation1Request(params)
  1523  //
  1524  //    err := req.Send()
  1525  //    if err == nil { // resp is now filled
  1526  //        fmt.Println(resp)
  1527  //    }
  1528  func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1Request(input *OutputService10TestShapeOutputService10TestCaseOperation1Input) (req *request.Request, output *OutputService10TestShapeOutputService10TestCaseOperation1Output) {
  1529  	op := &request.Operation{
  1530  		Name:     opOutputService10TestCaseOperation1,
  1531  		HTTPPath: "/",
  1532  	}
  1533  
  1534  	if input == nil {
  1535  		input = &OutputService10TestShapeOutputService10TestCaseOperation1Input{}
  1536  	}
  1537  
  1538  	output = &OutputService10TestShapeOutputService10TestCaseOperation1Output{}
  1539  	req = c.newRequest(op, input, output)
  1540  	return
  1541  }
  1542  
  1543  // OutputService10TestCaseOperation1 API operation for .
  1544  //
  1545  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1546  // with awserr.Error's Code and Message methods to get detailed information about
  1547  // the error.
  1548  //
  1549  // See the AWS API reference guide for 's
  1550  // API operation OutputService10TestCaseOperation1 for usage and error information.
  1551  func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1(input *OutputService10TestShapeOutputService10TestCaseOperation1Input) (*OutputService10TestShapeOutputService10TestCaseOperation1Output, error) {
  1552  	req, out := c.OutputService10TestCaseOperation1Request(input)
  1553  	return out, req.Send()
  1554  }
  1555  
  1556  // OutputService10TestCaseOperation1WithContext is the same as OutputService10TestCaseOperation1 with the addition of
  1557  // the ability to pass a context and additional request options.
  1558  //
  1559  // See OutputService10TestCaseOperation1 for details on how to use this API operation.
  1560  //
  1561  // The context must be non-nil and will be used for request cancellation. If
  1562  // the context is nil a panic will occur. In the future the SDK may create
  1563  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1564  // for more information on using Contexts.
  1565  func (c *OutputService10ProtocolTest) OutputService10TestCaseOperation1WithContext(ctx aws.Context, input *OutputService10TestShapeOutputService10TestCaseOperation1Input, opts ...request.Option) (*OutputService10TestShapeOutputService10TestCaseOperation1Output, error) {
  1566  	req, out := c.OutputService10TestCaseOperation1Request(input)
  1567  	req.SetContext(ctx)
  1568  	req.ApplyOptions(opts...)
  1569  	return out, req.Send()
  1570  }
  1571  
  1572  type OutputService10TestShapeOutputService10TestCaseOperation1Input struct {
  1573  	_ struct{} `type:"structure"`
  1574  }
  1575  
  1576  type OutputService10TestShapeOutputService10TestCaseOperation1Output struct {
  1577  	_ struct{} `type:"structure"`
  1578  
  1579  	StructMember *OutputService10TestShapeTimeContainer `type:"structure"`
  1580  
  1581  	TimeArg *time.Time `type:"timestamp"`
  1582  
  1583  	TimeCustom *time.Time `type:"timestamp" timestampFormat:"rfc822"`
  1584  
  1585  	TimeFormat *time.Time `type:"timestamp" timestampFormat:"unixTimestamp"`
  1586  }
  1587  
  1588  // SetStructMember sets the StructMember field's value.
  1589  func (s *OutputService10TestShapeOutputService10TestCaseOperation1Output) SetStructMember(v *OutputService10TestShapeTimeContainer) *OutputService10TestShapeOutputService10TestCaseOperation1Output {
  1590  	s.StructMember = v
  1591  	return s
  1592  }
  1593  
  1594  // SetTimeArg sets the TimeArg field's value.
  1595  func (s *OutputService10TestShapeOutputService10TestCaseOperation1Output) SetTimeArg(v time.Time) *OutputService10TestShapeOutputService10TestCaseOperation1Output {
  1596  	s.TimeArg = &v
  1597  	return s
  1598  }
  1599  
  1600  // SetTimeCustom sets the TimeCustom field's value.
  1601  func (s *OutputService10TestShapeOutputService10TestCaseOperation1Output) SetTimeCustom(v time.Time) *OutputService10TestShapeOutputService10TestCaseOperation1Output {
  1602  	s.TimeCustom = &v
  1603  	return s
  1604  }
  1605  
  1606  // SetTimeFormat sets the TimeFormat field's value.
  1607  func (s *OutputService10TestShapeOutputService10TestCaseOperation1Output) SetTimeFormat(v time.Time) *OutputService10TestShapeOutputService10TestCaseOperation1Output {
  1608  	s.TimeFormat = &v
  1609  	return s
  1610  }
  1611  
  1612  type OutputService10TestShapeTimeContainer struct {
  1613  	_ struct{} `type:"structure"`
  1614  
  1615  	Bar *time.Time `locationName:"bar" type:"timestamp" timestampFormat:"unixTimestamp"`
  1616  
  1617  	Foo *time.Time `locationName:"foo" type:"timestamp"`
  1618  }
  1619  
  1620  // SetBar sets the Bar field's value.
  1621  func (s *OutputService10TestShapeTimeContainer) SetBar(v time.Time) *OutputService10TestShapeTimeContainer {
  1622  	s.Bar = &v
  1623  	return s
  1624  }
  1625  
  1626  // SetFoo sets the Foo field's value.
  1627  func (s *OutputService10TestShapeTimeContainer) SetFoo(v time.Time) *OutputService10TestShapeTimeContainer {
  1628  	s.Foo = &v
  1629  	return s
  1630  }
  1631  
  1632  // OutputService11ProtocolTest provides the API operation methods for making requests to
  1633  // . See this package's package overview docs
  1634  // for details on the service.
  1635  //
  1636  // OutputService11ProtocolTest methods are safe to use concurrently. It is not safe to
  1637  // modify mutate any of the struct's properties though.
  1638  type OutputService11ProtocolTest struct {
  1639  	*client.Client
  1640  }
  1641  
  1642  // New creates a new instance of the OutputService11ProtocolTest client with a session.
  1643  // If additional configuration is needed for the client instance use the optional
  1644  // aws.Config parameter to add your extra config.
  1645  //
  1646  // Example:
  1647  //     mySession := session.Must(session.NewSession())
  1648  //
  1649  //     // Create a OutputService11ProtocolTest client from just a session.
  1650  //     svc := outputservice11protocoltest.New(mySession)
  1651  //
  1652  //     // Create a OutputService11ProtocolTest client with additional configuration
  1653  //     svc := outputservice11protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1654  func NewOutputService11ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *OutputService11ProtocolTest {
  1655  	c := p.ClientConfig("outputservice11protocoltest", cfgs...)
  1656  	return newOutputService11ProtocolTestClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName)
  1657  }
  1658  
  1659  // newClient creates, initializes and returns a new service client instance.
  1660  func newOutputService11ProtocolTestClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *OutputService11ProtocolTest {
  1661  	svc := &OutputService11ProtocolTest{
  1662  		Client: client.New(
  1663  			cfg,
  1664  			metadata.ClientInfo{
  1665  				ServiceName:   "OutputService11ProtocolTest",
  1666  				ServiceID:     "OutputService11ProtocolTest",
  1667  				SigningName:   signingName,
  1668  				SigningRegion: signingRegion,
  1669  				PartitionID:   partitionID,
  1670  				Endpoint:      endpoint,
  1671  				APIVersion:    "",
  1672  			},
  1673  			handlers,
  1674  		),
  1675  	}
  1676  
  1677  	// Handlers
  1678  	svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1679  	svc.Handlers.Build.PushBackNamed(ec2query.BuildHandler)
  1680  	svc.Handlers.Unmarshal.PushBackNamed(ec2query.UnmarshalHandler)
  1681  	svc.Handlers.UnmarshalMeta.PushBackNamed(ec2query.UnmarshalMetaHandler)
  1682  	svc.Handlers.UnmarshalError.PushBackNamed(ec2query.UnmarshalErrorHandler)
  1683  
  1684  	return svc
  1685  }
  1686  
  1687  // newRequest creates a new request for a OutputService11ProtocolTest operation and runs any
  1688  // custom request initialization.
  1689  func (c *OutputService11ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1690  	req := c.NewRequest(op, params, data)
  1691  
  1692  	return req
  1693  }
  1694  
  1695  const opOutputService11TestCaseOperation1 = "OperationName"
  1696  
  1697  // OutputService11TestCaseOperation1Request generates a "aws/request.Request" representing the
  1698  // client's request for the OutputService11TestCaseOperation1 operation. The "output" return
  1699  // value will be populated with the request's response once the request completes
  1700  // successfully.
  1701  //
  1702  // Use "Send" method on the returned Request to send the API call to the service.
  1703  // the "output" return value is not valid until after Send returns without error.
  1704  //
  1705  // See OutputService11TestCaseOperation1 for more information on using the OutputService11TestCaseOperation1
  1706  // API call, and error handling.
  1707  //
  1708  // This method is useful when you want to inject custom logic or configuration
  1709  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1710  //
  1711  //
  1712  //    // Example sending a request using the OutputService11TestCaseOperation1Request method.
  1713  //    req, resp := client.OutputService11TestCaseOperation1Request(params)
  1714  //
  1715  //    err := req.Send()
  1716  //    if err == nil { // resp is now filled
  1717  //        fmt.Println(resp)
  1718  //    }
  1719  func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1Request(input *OutputService11TestShapeOutputService11TestCaseOperation1Input) (req *request.Request, output *OutputService11TestShapeOutputService11TestCaseOperation1Output) {
  1720  	op := &request.Operation{
  1721  		Name:     opOutputService11TestCaseOperation1,
  1722  		HTTPPath: "/",
  1723  	}
  1724  
  1725  	if input == nil {
  1726  		input = &OutputService11TestShapeOutputService11TestCaseOperation1Input{}
  1727  	}
  1728  
  1729  	output = &OutputService11TestShapeOutputService11TestCaseOperation1Output{}
  1730  	req = c.newRequest(op, input, output)
  1731  	return
  1732  }
  1733  
  1734  // OutputService11TestCaseOperation1 API operation for .
  1735  //
  1736  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1737  // with awserr.Error's Code and Message methods to get detailed information about
  1738  // the error.
  1739  //
  1740  // See the AWS API reference guide for 's
  1741  // API operation OutputService11TestCaseOperation1 for usage and error information.
  1742  func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1(input *OutputService11TestShapeOutputService11TestCaseOperation1Input) (*OutputService11TestShapeOutputService11TestCaseOperation1Output, error) {
  1743  	req, out := c.OutputService11TestCaseOperation1Request(input)
  1744  	return out, req.Send()
  1745  }
  1746  
  1747  // OutputService11TestCaseOperation1WithContext is the same as OutputService11TestCaseOperation1 with the addition of
  1748  // the ability to pass a context and additional request options.
  1749  //
  1750  // See OutputService11TestCaseOperation1 for details on how to use this API operation.
  1751  //
  1752  // The context must be non-nil and will be used for request cancellation. If
  1753  // the context is nil a panic will occur. In the future the SDK may create
  1754  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1755  // for more information on using Contexts.
  1756  func (c *OutputService11ProtocolTest) OutputService11TestCaseOperation1WithContext(ctx aws.Context, input *OutputService11TestShapeOutputService11TestCaseOperation1Input, opts ...request.Option) (*OutputService11TestShapeOutputService11TestCaseOperation1Output, error) {
  1757  	req, out := c.OutputService11TestCaseOperation1Request(input)
  1758  	req.SetContext(ctx)
  1759  	req.ApplyOptions(opts...)
  1760  	return out, req.Send()
  1761  }
  1762  
  1763  type OutputService11TestShapeOutputService11TestCaseOperation1Input struct {
  1764  	_ struct{} `type:"structure"`
  1765  }
  1766  
  1767  type OutputService11TestShapeOutputService11TestCaseOperation1Output struct {
  1768  	_ struct{} `type:"structure"`
  1769  
  1770  	FooEnum *string `type:"string" enum:"OutputService11TestShapeEC2EnumType"`
  1771  
  1772  	ListEnums []*string `type:"list"`
  1773  }
  1774  
  1775  // SetFooEnum sets the FooEnum field's value.
  1776  func (s *OutputService11TestShapeOutputService11TestCaseOperation1Output) SetFooEnum(v string) *OutputService11TestShapeOutputService11TestCaseOperation1Output {
  1777  	s.FooEnum = &v
  1778  	return s
  1779  }
  1780  
  1781  // SetListEnums sets the ListEnums field's value.
  1782  func (s *OutputService11TestShapeOutputService11TestCaseOperation1Output) SetListEnums(v []*string) *OutputService11TestShapeOutputService11TestCaseOperation1Output {
  1783  	s.ListEnums = v
  1784  	return s
  1785  }
  1786  
  1787  const (
  1788  	// EC2EnumTypeFoo is a OutputService11TestShapeEC2EnumType enum value
  1789  	EC2EnumTypeFoo = "foo"
  1790  
  1791  	// EC2EnumTypeBar is a OutputService11TestShapeEC2EnumType enum value
  1792  	EC2EnumTypeBar = "bar"
  1793  )
  1794  
  1795  // OutputService11TestShapeEC2EnumType_Values returns all elements of the OutputService11TestShapeEC2EnumType enum
  1796  func OutputService11TestShapeEC2EnumType_Values() []string {
  1797  	return []string{
  1798  		EC2EnumTypeFoo,
  1799  		EC2EnumTypeBar,
  1800  	}
  1801  }
  1802  
  1803  //
  1804  // Tests begin here
  1805  //
  1806  
  1807  func TestOutputService1ProtocolTestScalarMembersCase1(t *testing.T) {
  1808  	svc := NewOutputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1809  
  1810  	buf := bytes.NewReader([]byte("<OperationNameResponse><Str>myname</Str><FooNum>123</FooNum><FalseBool>false</FalseBool><TrueBool>true</TrueBool><Float>1.2</Float><Double>1.3</Double><Long>200</Long><Char>a</Char><RequestId>request-id</RequestId></OperationNameResponse>"))
  1811  	req, out := svc.OutputService1TestCaseOperation1Request(nil)
  1812  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  1813  
  1814  	// set headers
  1815  
  1816  	// unmarshal response
  1817  	req.Handlers.UnmarshalMeta.Run(req)
  1818  	req.Handlers.Unmarshal.Run(req)
  1819  	if req.Error != nil {
  1820  		t.Errorf("expect not error, got %v", req.Error)
  1821  	}
  1822  
  1823  	// assert response
  1824  	if out == nil {
  1825  		t.Errorf("expect not to be nil")
  1826  	}
  1827  	if e, a := "a", *out.Char; e != a {
  1828  		t.Errorf("expect %v, got %v", e, a)
  1829  	}
  1830  	if e, a := 1.3, *out.Double; e != a {
  1831  		t.Errorf("expect %v, got %v", e, a)
  1832  	}
  1833  	if e, a := false, *out.FalseBool; e != a {
  1834  		t.Errorf("expect %v, got %v", e, a)
  1835  	}
  1836  	if e, a := 1.2, *out.Float; e != a {
  1837  		t.Errorf("expect %v, got %v", e, a)
  1838  	}
  1839  	if e, a := int64(200), *out.Long; e != a {
  1840  		t.Errorf("expect %v, got %v", e, a)
  1841  	}
  1842  	if e, a := int64(123), *out.Num; e != a {
  1843  		t.Errorf("expect %v, got %v", e, a)
  1844  	}
  1845  	if e, a := "myname", *out.Str; e != a {
  1846  		t.Errorf("expect %v, got %v", e, a)
  1847  	}
  1848  	if e, a := true, *out.TrueBool; e != a {
  1849  		t.Errorf("expect %v, got %v", e, a)
  1850  	}
  1851  
  1852  }
  1853  
  1854  func TestOutputService2ProtocolTestBlobCase1(t *testing.T) {
  1855  	svc := NewOutputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1856  
  1857  	buf := bytes.NewReader([]byte("<OperationNameResponse><Blob>dmFsdWU=</Blob><RequestId>requestid</RequestId></OperationNameResponse>"))
  1858  	req, out := svc.OutputService2TestCaseOperation1Request(nil)
  1859  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  1860  
  1861  	// set headers
  1862  
  1863  	// unmarshal response
  1864  	req.Handlers.UnmarshalMeta.Run(req)
  1865  	req.Handlers.Unmarshal.Run(req)
  1866  	if req.Error != nil {
  1867  		t.Errorf("expect not error, got %v", req.Error)
  1868  	}
  1869  
  1870  	// assert response
  1871  	if out == nil {
  1872  		t.Errorf("expect not to be nil")
  1873  	}
  1874  	if e, a := "value", string(out.Blob); e != a {
  1875  		t.Errorf("expect %v, got %v", e, a)
  1876  	}
  1877  
  1878  }
  1879  
  1880  func TestOutputService3ProtocolTestListsCase1(t *testing.T) {
  1881  	svc := NewOutputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1882  
  1883  	buf := bytes.NewReader([]byte("<OperationNameResponse><ListMember><member>abc</member><member>123</member></ListMember><RequestId>requestid</RequestId></OperationNameResponse>"))
  1884  	req, out := svc.OutputService3TestCaseOperation1Request(nil)
  1885  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  1886  
  1887  	// set headers
  1888  
  1889  	// unmarshal response
  1890  	req.Handlers.UnmarshalMeta.Run(req)
  1891  	req.Handlers.Unmarshal.Run(req)
  1892  	if req.Error != nil {
  1893  		t.Errorf("expect not error, got %v", req.Error)
  1894  	}
  1895  
  1896  	// assert response
  1897  	if out == nil {
  1898  		t.Errorf("expect not to be nil")
  1899  	}
  1900  	if e, a := "abc", *out.ListMember[0]; e != a {
  1901  		t.Errorf("expect %v, got %v", e, a)
  1902  	}
  1903  	if e, a := "123", *out.ListMember[1]; e != a {
  1904  		t.Errorf("expect %v, got %v", e, a)
  1905  	}
  1906  
  1907  }
  1908  
  1909  func TestOutputService4ProtocolTestListWithCustomMemberNameCase1(t *testing.T) {
  1910  	svc := NewOutputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1911  
  1912  	buf := bytes.NewReader([]byte("<OperationNameResponse><ListMember><item>abc</item><item>123</item></ListMember><RequestId>requestid</RequestId></OperationNameResponse>"))
  1913  	req, out := svc.OutputService4TestCaseOperation1Request(nil)
  1914  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  1915  
  1916  	// set headers
  1917  
  1918  	// unmarshal response
  1919  	req.Handlers.UnmarshalMeta.Run(req)
  1920  	req.Handlers.Unmarshal.Run(req)
  1921  	if req.Error != nil {
  1922  		t.Errorf("expect not error, got %v", req.Error)
  1923  	}
  1924  
  1925  	// assert response
  1926  	if out == nil {
  1927  		t.Errorf("expect not to be nil")
  1928  	}
  1929  	if e, a := "abc", *out.ListMember[0]; e != a {
  1930  		t.Errorf("expect %v, got %v", e, a)
  1931  	}
  1932  	if e, a := "123", *out.ListMember[1]; e != a {
  1933  		t.Errorf("expect %v, got %v", e, a)
  1934  	}
  1935  
  1936  }
  1937  
  1938  func TestOutputService5ProtocolTestFlattenedListCase1(t *testing.T) {
  1939  	svc := NewOutputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1940  
  1941  	buf := bytes.NewReader([]byte("<OperationNameResponse><ListMember>abc</ListMember><ListMember>123</ListMember><RequestId>requestid</RequestId></OperationNameResponse>"))
  1942  	req, out := svc.OutputService5TestCaseOperation1Request(nil)
  1943  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  1944  
  1945  	// set headers
  1946  
  1947  	// unmarshal response
  1948  	req.Handlers.UnmarshalMeta.Run(req)
  1949  	req.Handlers.Unmarshal.Run(req)
  1950  	if req.Error != nil {
  1951  		t.Errorf("expect not error, got %v", req.Error)
  1952  	}
  1953  
  1954  	// assert response
  1955  	if out == nil {
  1956  		t.Errorf("expect not to be nil")
  1957  	}
  1958  	if e, a := "abc", *out.ListMember[0]; e != a {
  1959  		t.Errorf("expect %v, got %v", e, a)
  1960  	}
  1961  	if e, a := "123", *out.ListMember[1]; e != a {
  1962  		t.Errorf("expect %v, got %v", e, a)
  1963  	}
  1964  
  1965  }
  1966  
  1967  func TestOutputService6ProtocolTestNormalMapCase1(t *testing.T) {
  1968  	svc := NewOutputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1969  
  1970  	buf := bytes.NewReader([]byte("<OperationNameResponse><Map><entry><key>qux</key><value><foo>bar</foo></value></entry><entry><key>baz</key><value><foo>bam</foo></value></entry></Map><RequestId>requestid</RequestId></OperationNameResponse>"))
  1971  	req, out := svc.OutputService6TestCaseOperation1Request(nil)
  1972  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  1973  
  1974  	// set headers
  1975  
  1976  	// unmarshal response
  1977  	req.Handlers.UnmarshalMeta.Run(req)
  1978  	req.Handlers.Unmarshal.Run(req)
  1979  	if req.Error != nil {
  1980  		t.Errorf("expect not error, got %v", req.Error)
  1981  	}
  1982  
  1983  	// assert response
  1984  	if out == nil {
  1985  		t.Errorf("expect not to be nil")
  1986  	}
  1987  	if e, a := "bam", *out.Map["baz"].Foo; e != a {
  1988  		t.Errorf("expect %v, got %v", e, a)
  1989  	}
  1990  	if e, a := "bar", *out.Map["qux"].Foo; e != a {
  1991  		t.Errorf("expect %v, got %v", e, a)
  1992  	}
  1993  
  1994  }
  1995  
  1996  func TestOutputService7ProtocolTestFlattenedMapCase1(t *testing.T) {
  1997  	svc := NewOutputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1998  
  1999  	buf := bytes.NewReader([]byte("<OperationNameResponse><Map><key>qux</key><value>bar</value></Map><Map><key>baz</key><value>bam</value></Map><RequestId>requestid</RequestId></OperationNameResponse>"))
  2000  	req, out := svc.OutputService7TestCaseOperation1Request(nil)
  2001  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2002  
  2003  	// set headers
  2004  
  2005  	// unmarshal response
  2006  	req.Handlers.UnmarshalMeta.Run(req)
  2007  	req.Handlers.Unmarshal.Run(req)
  2008  	if req.Error != nil {
  2009  		t.Errorf("expect not error, got %v", req.Error)
  2010  	}
  2011  
  2012  	// assert response
  2013  	if out == nil {
  2014  		t.Errorf("expect not to be nil")
  2015  	}
  2016  	if e, a := "bam", *out.Map["baz"]; e != a {
  2017  		t.Errorf("expect %v, got %v", e, a)
  2018  	}
  2019  	if e, a := "bar", *out.Map["qux"]; e != a {
  2020  		t.Errorf("expect %v, got %v", e, a)
  2021  	}
  2022  
  2023  }
  2024  
  2025  func TestOutputService8ProtocolTestNamedMapCase1(t *testing.T) {
  2026  	svc := NewOutputService8ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2027  
  2028  	buf := bytes.NewReader([]byte("<OperationNameResponse><Map><foo>qux</foo><bar>bar</bar></Map><Map><foo>baz</foo><bar>bam</bar></Map><RequestId>requestid</RequestId></OperationNameResponse>"))
  2029  	req, out := svc.OutputService8TestCaseOperation1Request(nil)
  2030  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2031  
  2032  	// set headers
  2033  
  2034  	// unmarshal response
  2035  	req.Handlers.UnmarshalMeta.Run(req)
  2036  	req.Handlers.Unmarshal.Run(req)
  2037  	if req.Error != nil {
  2038  		t.Errorf("expect not error, got %v", req.Error)
  2039  	}
  2040  
  2041  	// assert response
  2042  	if out == nil {
  2043  		t.Errorf("expect not to be nil")
  2044  	}
  2045  	if e, a := "bam", *out.Map["baz"]; e != a {
  2046  		t.Errorf("expect %v, got %v", e, a)
  2047  	}
  2048  	if e, a := "bar", *out.Map["qux"]; e != a {
  2049  		t.Errorf("expect %v, got %v", e, a)
  2050  	}
  2051  
  2052  }
  2053  
  2054  func TestOutputService9ProtocolTestEmptyStringCase1(t *testing.T) {
  2055  	svc := NewOutputService9ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2056  
  2057  	buf := bytes.NewReader([]byte("<OperationNameResponse><Foo/><RequestId>requestid</RequestId></OperationNameResponse>"))
  2058  	req, out := svc.OutputService9TestCaseOperation1Request(nil)
  2059  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2060  
  2061  	// set headers
  2062  
  2063  	// unmarshal response
  2064  	req.Handlers.UnmarshalMeta.Run(req)
  2065  	req.Handlers.Unmarshal.Run(req)
  2066  	if req.Error != nil {
  2067  		t.Errorf("expect not error, got %v", req.Error)
  2068  	}
  2069  
  2070  	// assert response
  2071  	if out == nil {
  2072  		t.Errorf("expect not to be nil")
  2073  	}
  2074  	if e, a := "", *out.Foo; e != a {
  2075  		t.Errorf("expect %v, got %v", e, a)
  2076  	}
  2077  
  2078  }
  2079  
  2080  func TestOutputService10ProtocolTestTimestampMembersCase1(t *testing.T) {
  2081  	svc := NewOutputService10ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2082  
  2083  	buf := bytes.NewReader([]byte("<OperationNameResponse><StructMember><foo>2014-04-29T18:30:38Z</foo><bar>1398796238</bar></StructMember><TimeArg>2014-04-29T18:30:38Z</TimeArg><TimeCustom>Tue, 29 Apr 2014 18:30:38 GMT</TimeCustom><TimeFormat>1398796238</TimeFormat><RequestId>requestid</RequestId></OperationNameResponse>"))
  2084  	req, out := svc.OutputService10TestCaseOperation1Request(nil)
  2085  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2086  
  2087  	// set headers
  2088  
  2089  	// unmarshal response
  2090  	req.Handlers.UnmarshalMeta.Run(req)
  2091  	req.Handlers.Unmarshal.Run(req)
  2092  	if req.Error != nil {
  2093  		t.Errorf("expect not error, got %v", req.Error)
  2094  	}
  2095  
  2096  	// assert response
  2097  	if out == nil {
  2098  		t.Errorf("expect not to be nil")
  2099  	}
  2100  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Bar.UTC().String(); e != a {
  2101  		t.Errorf("expect %v, got %v", e, a)
  2102  	}
  2103  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.StructMember.Foo.UTC().String(); e != a {
  2104  		t.Errorf("expect %v, got %v", e, a)
  2105  	}
  2106  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeArg.UTC().String(); e != a {
  2107  		t.Errorf("expect %v, got %v", e, a)
  2108  	}
  2109  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeCustom.UTC().String(); e != a {
  2110  		t.Errorf("expect %v, got %v", e, a)
  2111  	}
  2112  	if e, a := time.Unix(1.398796238e+09, 0).UTC().String(), out.TimeFormat.UTC().String(); e != a {
  2113  		t.Errorf("expect %v, got %v", e, a)
  2114  	}
  2115  
  2116  }
  2117  
  2118  func TestOutputService11ProtocolTestEnumOutputCase1(t *testing.T) {
  2119  	svc := NewOutputService11ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  2120  
  2121  	buf := bytes.NewReader([]byte("<OperationNameResponse><FooEnum>foo</FooEnum><ListEnums><member>foo</member><member>bar</member></ListEnums></OperationNameResponse>"))
  2122  	req, out := svc.OutputService11TestCaseOperation1Request(nil)
  2123  	req.HTTPResponse = &http.Response{StatusCode: 200, Body: ioutil.NopCloser(buf), Header: http.Header{}}
  2124  
  2125  	// set headers
  2126  
  2127  	// unmarshal response
  2128  	req.Handlers.UnmarshalMeta.Run(req)
  2129  	req.Handlers.Unmarshal.Run(req)
  2130  	if req.Error != nil {
  2131  		t.Errorf("expect not error, got %v", req.Error)
  2132  	}
  2133  
  2134  	// assert response
  2135  	if out == nil {
  2136  		t.Errorf("expect not to be nil")
  2137  	}
  2138  	if e, a := "foo", *out.FooEnum; e != a {
  2139  		t.Errorf("expect %v, got %v", e, a)
  2140  	}
  2141  	if e, a := "foo", *out.ListEnums[0]; e != a {
  2142  		t.Errorf("expect %v, got %v", e, a)
  2143  	}
  2144  	if e, a := "bar", *out.ListEnums[1]; e != a {
  2145  		t.Errorf("expect %v, got %v", e, a)
  2146  	}
  2147  
  2148  }