build_test.go 66 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777
  1. package jsonrpc_test
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "encoding/xml"
  6. "fmt"
  7. "io"
  8. "io/ioutil"
  9. "net/http"
  10. "net/url"
  11. "testing"
  12. "time"
  13. "github.com/aws/aws-sdk-go/aws"
  14. "github.com/aws/aws-sdk-go/aws/client"
  15. "github.com/aws/aws-sdk-go/aws/client/metadata"
  16. "github.com/aws/aws-sdk-go/aws/request"
  17. "github.com/aws/aws-sdk-go/aws/signer/v4"
  18. "github.com/aws/aws-sdk-go/awstesting"
  19. "github.com/aws/aws-sdk-go/awstesting/unit"
  20. "github.com/aws/aws-sdk-go/private/protocol"
  21. "github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
  22. "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil"
  23. "github.com/aws/aws-sdk-go/private/util"
  24. "github.com/stretchr/testify/assert"
  25. )
  26. var _ bytes.Buffer // always import bytes
  27. var _ http.Request
  28. var _ json.Marshaler
  29. var _ time.Time
  30. var _ xmlutil.XMLNode
  31. var _ xml.Attr
  32. var _ = ioutil.Discard
  33. var _ = util.Trim("")
  34. var _ = url.Values{}
  35. var _ = io.EOF
  36. var _ = aws.String
  37. var _ = fmt.Println
  38. func init() {
  39. protocol.RandReader = &awstesting.ZeroReader{}
  40. }
  41. //The service client's operations are safe to be used concurrently.
  42. // It is not safe to mutate any of the client's properties though.
  43. type InputService1ProtocolTest struct {
  44. *client.Client
  45. }
  46. // New creates a new instance of the InputService1ProtocolTest client with a session.
  47. // If additional configuration is needed for the client instance use the optional
  48. // aws.Config parameter to add your extra config.
  49. //
  50. // Example:
  51. // // Create a InputService1ProtocolTest client from just a session.
  52. // svc := inputservice1protocoltest.New(mySession)
  53. //
  54. // // Create a InputService1ProtocolTest client with additional configuration
  55. // svc := inputservice1protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  56. func NewInputService1ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService1ProtocolTest {
  57. c := p.ClientConfig("inputservice1protocoltest", cfgs...)
  58. return newInputService1ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  59. }
  60. // newClient creates, initializes and returns a new service client instance.
  61. func newInputService1ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService1ProtocolTest {
  62. svc := &InputService1ProtocolTest{
  63. Client: client.New(
  64. cfg,
  65. metadata.ClientInfo{
  66. ServiceName: "inputservice1protocoltest",
  67. SigningRegion: signingRegion,
  68. Endpoint: endpoint,
  69. APIVersion: "",
  70. JSONVersion: "1.1",
  71. TargetPrefix: "com.amazonaws.foo",
  72. },
  73. handlers,
  74. ),
  75. }
  76. // Handlers
  77. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  78. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  79. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  80. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  81. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  82. return svc
  83. }
  84. // newRequest creates a new request for a InputService1ProtocolTest operation and runs any
  85. // custom request initialization.
  86. func (c *InputService1ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  87. req := c.NewRequest(op, params, data)
  88. return req
  89. }
  90. const opInputService1TestCaseOperation1 = "OperationName"
  91. // InputService1TestCaseOperation1Request generates a "aws/request.Request" representing the
  92. // client's request for the InputService1TestCaseOperation1 operation. The "output" return
  93. // value can be used to capture response data after the request's "Send" method
  94. // is called.
  95. //
  96. // See InputService1TestCaseOperation1 for usage and error information.
  97. //
  98. // Creating a request object using this method should be used when you want to inject
  99. // custom logic into the request's lifecycle using a custom handler, or if you want to
  100. // access properties on the request object before or after sending the request. If
  101. // you just want the service response, call the InputService1TestCaseOperation1 method directly
  102. // instead.
  103. //
  104. // Note: You must call the "Send" method on the returned request object in order
  105. // to execute the request.
  106. //
  107. // // Example sending a request using the InputService1TestCaseOperation1Request method.
  108. // req, resp := client.InputService1TestCaseOperation1Request(params)
  109. //
  110. // err := req.Send()
  111. // if err == nil { // resp is now filled
  112. // fmt.Println(resp)
  113. // }
  114. //
  115. func (c *InputService1ProtocolTest) InputService1TestCaseOperation1Request(input *InputService1TestShapeInputService1TestCaseOperation1Input) (req *request.Request, output *InputService1TestShapeInputService1TestCaseOperation1Output) {
  116. op := &request.Operation{
  117. Name: opInputService1TestCaseOperation1,
  118. HTTPMethod: "POST",
  119. HTTPPath: "/",
  120. }
  121. if input == nil {
  122. input = &InputService1TestShapeInputService1TestCaseOperation1Input{}
  123. }
  124. req = c.newRequest(op, input, output)
  125. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  126. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  127. output = &InputService1TestShapeInputService1TestCaseOperation1Output{}
  128. req.Data = output
  129. return
  130. }
  131. // InputService1TestCaseOperation1 API operation for .
  132. //
  133. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  134. // with awserr.Error's Code and Message methods to get detailed information about
  135. // the error.
  136. //
  137. // See the AWS API reference guide for 's
  138. // API operation InputService1TestCaseOperation1 for usage and error information.
  139. func (c *InputService1ProtocolTest) InputService1TestCaseOperation1(input *InputService1TestShapeInputService1TestCaseOperation1Input) (*InputService1TestShapeInputService1TestCaseOperation1Output, error) {
  140. req, out := c.InputService1TestCaseOperation1Request(input)
  141. err := req.Send()
  142. return out, err
  143. }
  144. type InputService1TestShapeInputService1TestCaseOperation1Input struct {
  145. _ struct{} `type:"structure"`
  146. Name *string `type:"string"`
  147. }
  148. type InputService1TestShapeInputService1TestCaseOperation1Output struct {
  149. _ struct{} `type:"structure"`
  150. }
  151. //The service client's operations are safe to be used concurrently.
  152. // It is not safe to mutate any of the client's properties though.
  153. type InputService2ProtocolTest struct {
  154. *client.Client
  155. }
  156. // New creates a new instance of the InputService2ProtocolTest client with a session.
  157. // If additional configuration is needed for the client instance use the optional
  158. // aws.Config parameter to add your extra config.
  159. //
  160. // Example:
  161. // // Create a InputService2ProtocolTest client from just a session.
  162. // svc := inputservice2protocoltest.New(mySession)
  163. //
  164. // // Create a InputService2ProtocolTest client with additional configuration
  165. // svc := inputservice2protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  166. func NewInputService2ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService2ProtocolTest {
  167. c := p.ClientConfig("inputservice2protocoltest", cfgs...)
  168. return newInputService2ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  169. }
  170. // newClient creates, initializes and returns a new service client instance.
  171. func newInputService2ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService2ProtocolTest {
  172. svc := &InputService2ProtocolTest{
  173. Client: client.New(
  174. cfg,
  175. metadata.ClientInfo{
  176. ServiceName: "inputservice2protocoltest",
  177. SigningRegion: signingRegion,
  178. Endpoint: endpoint,
  179. APIVersion: "",
  180. JSONVersion: "1.1",
  181. TargetPrefix: "com.amazonaws.foo",
  182. },
  183. handlers,
  184. ),
  185. }
  186. // Handlers
  187. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  188. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  189. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  190. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  191. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  192. return svc
  193. }
  194. // newRequest creates a new request for a InputService2ProtocolTest operation and runs any
  195. // custom request initialization.
  196. func (c *InputService2ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  197. req := c.NewRequest(op, params, data)
  198. return req
  199. }
  200. const opInputService2TestCaseOperation1 = "OperationName"
  201. // InputService2TestCaseOperation1Request generates a "aws/request.Request" representing the
  202. // client's request for the InputService2TestCaseOperation1 operation. The "output" return
  203. // value can be used to capture response data after the request's "Send" method
  204. // is called.
  205. //
  206. // See InputService2TestCaseOperation1 for usage and error information.
  207. //
  208. // Creating a request object using this method should be used when you want to inject
  209. // custom logic into the request's lifecycle using a custom handler, or if you want to
  210. // access properties on the request object before or after sending the request. If
  211. // you just want the service response, call the InputService2TestCaseOperation1 method directly
  212. // instead.
  213. //
  214. // Note: You must call the "Send" method on the returned request object in order
  215. // to execute the request.
  216. //
  217. // // Example sending a request using the InputService2TestCaseOperation1Request method.
  218. // req, resp := client.InputService2TestCaseOperation1Request(params)
  219. //
  220. // err := req.Send()
  221. // if err == nil { // resp is now filled
  222. // fmt.Println(resp)
  223. // }
  224. //
  225. func (c *InputService2ProtocolTest) InputService2TestCaseOperation1Request(input *InputService2TestShapeInputService2TestCaseOperation1Input) (req *request.Request, output *InputService2TestShapeInputService2TestCaseOperation1Output) {
  226. op := &request.Operation{
  227. Name: opInputService2TestCaseOperation1,
  228. HTTPPath: "/",
  229. }
  230. if input == nil {
  231. input = &InputService2TestShapeInputService2TestCaseOperation1Input{}
  232. }
  233. req = c.newRequest(op, input, output)
  234. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  235. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  236. output = &InputService2TestShapeInputService2TestCaseOperation1Output{}
  237. req.Data = output
  238. return
  239. }
  240. // InputService2TestCaseOperation1 API operation for .
  241. //
  242. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  243. // with awserr.Error's Code and Message methods to get detailed information about
  244. // the error.
  245. //
  246. // See the AWS API reference guide for 's
  247. // API operation InputService2TestCaseOperation1 for usage and error information.
  248. func (c *InputService2ProtocolTest) InputService2TestCaseOperation1(input *InputService2TestShapeInputService2TestCaseOperation1Input) (*InputService2TestShapeInputService2TestCaseOperation1Output, error) {
  249. req, out := c.InputService2TestCaseOperation1Request(input)
  250. err := req.Send()
  251. return out, err
  252. }
  253. type InputService2TestShapeInputService2TestCaseOperation1Input struct {
  254. _ struct{} `type:"structure"`
  255. TimeArg *time.Time `type:"timestamp" timestampFormat:"unix"`
  256. }
  257. type InputService2TestShapeInputService2TestCaseOperation1Output struct {
  258. _ struct{} `type:"structure"`
  259. }
  260. //The service client's operations are safe to be used concurrently.
  261. // It is not safe to mutate any of the client's properties though.
  262. type InputService3ProtocolTest struct {
  263. *client.Client
  264. }
  265. // New creates a new instance of the InputService3ProtocolTest client with a session.
  266. // If additional configuration is needed for the client instance use the optional
  267. // aws.Config parameter to add your extra config.
  268. //
  269. // Example:
  270. // // Create a InputService3ProtocolTest client from just a session.
  271. // svc := inputservice3protocoltest.New(mySession)
  272. //
  273. // // Create a InputService3ProtocolTest client with additional configuration
  274. // svc := inputservice3protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  275. func NewInputService3ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService3ProtocolTest {
  276. c := p.ClientConfig("inputservice3protocoltest", cfgs...)
  277. return newInputService3ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  278. }
  279. // newClient creates, initializes and returns a new service client instance.
  280. func newInputService3ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService3ProtocolTest {
  281. svc := &InputService3ProtocolTest{
  282. Client: client.New(
  283. cfg,
  284. metadata.ClientInfo{
  285. ServiceName: "inputservice3protocoltest",
  286. SigningRegion: signingRegion,
  287. Endpoint: endpoint,
  288. APIVersion: "",
  289. JSONVersion: "1.1",
  290. TargetPrefix: "com.amazonaws.foo",
  291. },
  292. handlers,
  293. ),
  294. }
  295. // Handlers
  296. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  297. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  298. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  299. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  300. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  301. return svc
  302. }
  303. // newRequest creates a new request for a InputService3ProtocolTest operation and runs any
  304. // custom request initialization.
  305. func (c *InputService3ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  306. req := c.NewRequest(op, params, data)
  307. return req
  308. }
  309. const opInputService3TestCaseOperation1 = "OperationName"
  310. // InputService3TestCaseOperation1Request generates a "aws/request.Request" representing the
  311. // client's request for the InputService3TestCaseOperation1 operation. The "output" return
  312. // value can be used to capture response data after the request's "Send" method
  313. // is called.
  314. //
  315. // See InputService3TestCaseOperation1 for usage and error information.
  316. //
  317. // Creating a request object using this method should be used when you want to inject
  318. // custom logic into the request's lifecycle using a custom handler, or if you want to
  319. // access properties on the request object before or after sending the request. If
  320. // you just want the service response, call the InputService3TestCaseOperation1 method directly
  321. // instead.
  322. //
  323. // Note: You must call the "Send" method on the returned request object in order
  324. // to execute the request.
  325. //
  326. // // Example sending a request using the InputService3TestCaseOperation1Request method.
  327. // req, resp := client.InputService3TestCaseOperation1Request(params)
  328. //
  329. // err := req.Send()
  330. // if err == nil { // resp is now filled
  331. // fmt.Println(resp)
  332. // }
  333. //
  334. func (c *InputService3ProtocolTest) InputService3TestCaseOperation1Request(input *InputService3TestShapeInputShape) (req *request.Request, output *InputService3TestShapeInputService3TestCaseOperation1Output) {
  335. op := &request.Operation{
  336. Name: opInputService3TestCaseOperation1,
  337. HTTPPath: "/",
  338. }
  339. if input == nil {
  340. input = &InputService3TestShapeInputShape{}
  341. }
  342. req = c.newRequest(op, input, output)
  343. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  344. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  345. output = &InputService3TestShapeInputService3TestCaseOperation1Output{}
  346. req.Data = output
  347. return
  348. }
  349. // InputService3TestCaseOperation1 API operation for .
  350. //
  351. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  352. // with awserr.Error's Code and Message methods to get detailed information about
  353. // the error.
  354. //
  355. // See the AWS API reference guide for 's
  356. // API operation InputService3TestCaseOperation1 for usage and error information.
  357. func (c *InputService3ProtocolTest) InputService3TestCaseOperation1(input *InputService3TestShapeInputShape) (*InputService3TestShapeInputService3TestCaseOperation1Output, error) {
  358. req, out := c.InputService3TestCaseOperation1Request(input)
  359. err := req.Send()
  360. return out, err
  361. }
  362. const opInputService3TestCaseOperation2 = "OperationName"
  363. // InputService3TestCaseOperation2Request generates a "aws/request.Request" representing the
  364. // client's request for the InputService3TestCaseOperation2 operation. The "output" return
  365. // value can be used to capture response data after the request's "Send" method
  366. // is called.
  367. //
  368. // See InputService3TestCaseOperation2 for usage and error information.
  369. //
  370. // Creating a request object using this method should be used when you want to inject
  371. // custom logic into the request's lifecycle using a custom handler, or if you want to
  372. // access properties on the request object before or after sending the request. If
  373. // you just want the service response, call the InputService3TestCaseOperation2 method directly
  374. // instead.
  375. //
  376. // Note: You must call the "Send" method on the returned request object in order
  377. // to execute the request.
  378. //
  379. // // Example sending a request using the InputService3TestCaseOperation2Request method.
  380. // req, resp := client.InputService3TestCaseOperation2Request(params)
  381. //
  382. // err := req.Send()
  383. // if err == nil { // resp is now filled
  384. // fmt.Println(resp)
  385. // }
  386. //
  387. func (c *InputService3ProtocolTest) InputService3TestCaseOperation2Request(input *InputService3TestShapeInputShape) (req *request.Request, output *InputService3TestShapeInputService3TestCaseOperation2Output) {
  388. op := &request.Operation{
  389. Name: opInputService3TestCaseOperation2,
  390. HTTPPath: "/",
  391. }
  392. if input == nil {
  393. input = &InputService3TestShapeInputShape{}
  394. }
  395. req = c.newRequest(op, input, output)
  396. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  397. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  398. output = &InputService3TestShapeInputService3TestCaseOperation2Output{}
  399. req.Data = output
  400. return
  401. }
  402. // InputService3TestCaseOperation2 API operation for .
  403. //
  404. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  405. // with awserr.Error's Code and Message methods to get detailed information about
  406. // the error.
  407. //
  408. // See the AWS API reference guide for 's
  409. // API operation InputService3TestCaseOperation2 for usage and error information.
  410. func (c *InputService3ProtocolTest) InputService3TestCaseOperation2(input *InputService3TestShapeInputShape) (*InputService3TestShapeInputService3TestCaseOperation2Output, error) {
  411. req, out := c.InputService3TestCaseOperation2Request(input)
  412. err := req.Send()
  413. return out, err
  414. }
  415. type InputService3TestShapeInputService3TestCaseOperation1Output struct {
  416. _ struct{} `type:"structure"`
  417. }
  418. type InputService3TestShapeInputService3TestCaseOperation2Output struct {
  419. _ struct{} `type:"structure"`
  420. }
  421. type InputService3TestShapeInputShape struct {
  422. _ struct{} `type:"structure"`
  423. // BlobArg is automatically base64 encoded/decoded by the SDK.
  424. BlobArg []byte `type:"blob"`
  425. BlobMap map[string][]byte `type:"map"`
  426. }
  427. //The service client's operations are safe to be used concurrently.
  428. // It is not safe to mutate any of the client's properties though.
  429. type InputService4ProtocolTest struct {
  430. *client.Client
  431. }
  432. // New creates a new instance of the InputService4ProtocolTest client with a session.
  433. // If additional configuration is needed for the client instance use the optional
  434. // aws.Config parameter to add your extra config.
  435. //
  436. // Example:
  437. // // Create a InputService4ProtocolTest client from just a session.
  438. // svc := inputservice4protocoltest.New(mySession)
  439. //
  440. // // Create a InputService4ProtocolTest client with additional configuration
  441. // svc := inputservice4protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  442. func NewInputService4ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService4ProtocolTest {
  443. c := p.ClientConfig("inputservice4protocoltest", cfgs...)
  444. return newInputService4ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  445. }
  446. // newClient creates, initializes and returns a new service client instance.
  447. func newInputService4ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService4ProtocolTest {
  448. svc := &InputService4ProtocolTest{
  449. Client: client.New(
  450. cfg,
  451. metadata.ClientInfo{
  452. ServiceName: "inputservice4protocoltest",
  453. SigningRegion: signingRegion,
  454. Endpoint: endpoint,
  455. APIVersion: "",
  456. JSONVersion: "1.1",
  457. TargetPrefix: "com.amazonaws.foo",
  458. },
  459. handlers,
  460. ),
  461. }
  462. // Handlers
  463. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  464. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  465. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  466. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  467. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  468. return svc
  469. }
  470. // newRequest creates a new request for a InputService4ProtocolTest operation and runs any
  471. // custom request initialization.
  472. func (c *InputService4ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  473. req := c.NewRequest(op, params, data)
  474. return req
  475. }
  476. const opInputService4TestCaseOperation1 = "OperationName"
  477. // InputService4TestCaseOperation1Request generates a "aws/request.Request" representing the
  478. // client's request for the InputService4TestCaseOperation1 operation. The "output" return
  479. // value can be used to capture response data after the request's "Send" method
  480. // is called.
  481. //
  482. // See InputService4TestCaseOperation1 for usage and error information.
  483. //
  484. // Creating a request object using this method should be used when you want to inject
  485. // custom logic into the request's lifecycle using a custom handler, or if you want to
  486. // access properties on the request object before or after sending the request. If
  487. // you just want the service response, call the InputService4TestCaseOperation1 method directly
  488. // instead.
  489. //
  490. // Note: You must call the "Send" method on the returned request object in order
  491. // to execute the request.
  492. //
  493. // // Example sending a request using the InputService4TestCaseOperation1Request method.
  494. // req, resp := client.InputService4TestCaseOperation1Request(params)
  495. //
  496. // err := req.Send()
  497. // if err == nil { // resp is now filled
  498. // fmt.Println(resp)
  499. // }
  500. //
  501. func (c *InputService4ProtocolTest) InputService4TestCaseOperation1Request(input *InputService4TestShapeInputService4TestCaseOperation1Input) (req *request.Request, output *InputService4TestShapeInputService4TestCaseOperation1Output) {
  502. op := &request.Operation{
  503. Name: opInputService4TestCaseOperation1,
  504. HTTPMethod: "POST",
  505. HTTPPath: "/",
  506. }
  507. if input == nil {
  508. input = &InputService4TestShapeInputService4TestCaseOperation1Input{}
  509. }
  510. req = c.newRequest(op, input, output)
  511. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  512. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  513. output = &InputService4TestShapeInputService4TestCaseOperation1Output{}
  514. req.Data = output
  515. return
  516. }
  517. // InputService4TestCaseOperation1 API operation for .
  518. //
  519. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  520. // with awserr.Error's Code and Message methods to get detailed information about
  521. // the error.
  522. //
  523. // See the AWS API reference guide for 's
  524. // API operation InputService4TestCaseOperation1 for usage and error information.
  525. func (c *InputService4ProtocolTest) InputService4TestCaseOperation1(input *InputService4TestShapeInputService4TestCaseOperation1Input) (*InputService4TestShapeInputService4TestCaseOperation1Output, error) {
  526. req, out := c.InputService4TestCaseOperation1Request(input)
  527. err := req.Send()
  528. return out, err
  529. }
  530. type InputService4TestShapeInputService4TestCaseOperation1Input struct {
  531. _ struct{} `type:"structure"`
  532. ListParam [][]byte `type:"list"`
  533. }
  534. type InputService4TestShapeInputService4TestCaseOperation1Output struct {
  535. _ struct{} `type:"structure"`
  536. }
  537. //The service client's operations are safe to be used concurrently.
  538. // It is not safe to mutate any of the client's properties though.
  539. type InputService5ProtocolTest struct {
  540. *client.Client
  541. }
  542. // New creates a new instance of the InputService5ProtocolTest client with a session.
  543. // If additional configuration is needed for the client instance use the optional
  544. // aws.Config parameter to add your extra config.
  545. //
  546. // Example:
  547. // // Create a InputService5ProtocolTest client from just a session.
  548. // svc := inputservice5protocoltest.New(mySession)
  549. //
  550. // // Create a InputService5ProtocolTest client with additional configuration
  551. // svc := inputservice5protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  552. func NewInputService5ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService5ProtocolTest {
  553. c := p.ClientConfig("inputservice5protocoltest", cfgs...)
  554. return newInputService5ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  555. }
  556. // newClient creates, initializes and returns a new service client instance.
  557. func newInputService5ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService5ProtocolTest {
  558. svc := &InputService5ProtocolTest{
  559. Client: client.New(
  560. cfg,
  561. metadata.ClientInfo{
  562. ServiceName: "inputservice5protocoltest",
  563. SigningRegion: signingRegion,
  564. Endpoint: endpoint,
  565. APIVersion: "",
  566. JSONVersion: "1.1",
  567. TargetPrefix: "com.amazonaws.foo",
  568. },
  569. handlers,
  570. ),
  571. }
  572. // Handlers
  573. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  574. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  575. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  576. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  577. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  578. return svc
  579. }
  580. // newRequest creates a new request for a InputService5ProtocolTest operation and runs any
  581. // custom request initialization.
  582. func (c *InputService5ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  583. req := c.NewRequest(op, params, data)
  584. return req
  585. }
  586. const opInputService5TestCaseOperation1 = "OperationName"
  587. // InputService5TestCaseOperation1Request generates a "aws/request.Request" representing the
  588. // client's request for the InputService5TestCaseOperation1 operation. The "output" return
  589. // value can be used to capture response data after the request's "Send" method
  590. // is called.
  591. //
  592. // See InputService5TestCaseOperation1 for usage and error information.
  593. //
  594. // Creating a request object using this method should be used when you want to inject
  595. // custom logic into the request's lifecycle using a custom handler, or if you want to
  596. // access properties on the request object before or after sending the request. If
  597. // you just want the service response, call the InputService5TestCaseOperation1 method directly
  598. // instead.
  599. //
  600. // Note: You must call the "Send" method on the returned request object in order
  601. // to execute the request.
  602. //
  603. // // Example sending a request using the InputService5TestCaseOperation1Request method.
  604. // req, resp := client.InputService5TestCaseOperation1Request(params)
  605. //
  606. // err := req.Send()
  607. // if err == nil { // resp is now filled
  608. // fmt.Println(resp)
  609. // }
  610. //
  611. func (c *InputService5ProtocolTest) InputService5TestCaseOperation1Request(input *InputService5TestShapeInputShape) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation1Output) {
  612. op := &request.Operation{
  613. Name: opInputService5TestCaseOperation1,
  614. HTTPPath: "/",
  615. }
  616. if input == nil {
  617. input = &InputService5TestShapeInputShape{}
  618. }
  619. req = c.newRequest(op, input, output)
  620. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  621. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  622. output = &InputService5TestShapeInputService5TestCaseOperation1Output{}
  623. req.Data = output
  624. return
  625. }
  626. // InputService5TestCaseOperation1 API operation for .
  627. //
  628. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  629. // with awserr.Error's Code and Message methods to get detailed information about
  630. // the error.
  631. //
  632. // See the AWS API reference guide for 's
  633. // API operation InputService5TestCaseOperation1 for usage and error information.
  634. func (c *InputService5ProtocolTest) InputService5TestCaseOperation1(input *InputService5TestShapeInputShape) (*InputService5TestShapeInputService5TestCaseOperation1Output, error) {
  635. req, out := c.InputService5TestCaseOperation1Request(input)
  636. err := req.Send()
  637. return out, err
  638. }
  639. const opInputService5TestCaseOperation2 = "OperationName"
  640. // InputService5TestCaseOperation2Request generates a "aws/request.Request" representing the
  641. // client's request for the InputService5TestCaseOperation2 operation. The "output" return
  642. // value can be used to capture response data after the request's "Send" method
  643. // is called.
  644. //
  645. // See InputService5TestCaseOperation2 for usage and error information.
  646. //
  647. // Creating a request object using this method should be used when you want to inject
  648. // custom logic into the request's lifecycle using a custom handler, or if you want to
  649. // access properties on the request object before or after sending the request. If
  650. // you just want the service response, call the InputService5TestCaseOperation2 method directly
  651. // instead.
  652. //
  653. // Note: You must call the "Send" method on the returned request object in order
  654. // to execute the request.
  655. //
  656. // // Example sending a request using the InputService5TestCaseOperation2Request method.
  657. // req, resp := client.InputService5TestCaseOperation2Request(params)
  658. //
  659. // err := req.Send()
  660. // if err == nil { // resp is now filled
  661. // fmt.Println(resp)
  662. // }
  663. //
  664. func (c *InputService5ProtocolTest) InputService5TestCaseOperation2Request(input *InputService5TestShapeInputShape) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation2Output) {
  665. op := &request.Operation{
  666. Name: opInputService5TestCaseOperation2,
  667. HTTPPath: "/",
  668. }
  669. if input == nil {
  670. input = &InputService5TestShapeInputShape{}
  671. }
  672. req = c.newRequest(op, input, output)
  673. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  674. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  675. output = &InputService5TestShapeInputService5TestCaseOperation2Output{}
  676. req.Data = output
  677. return
  678. }
  679. // InputService5TestCaseOperation2 API operation for .
  680. //
  681. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  682. // with awserr.Error's Code and Message methods to get detailed information about
  683. // the error.
  684. //
  685. // See the AWS API reference guide for 's
  686. // API operation InputService5TestCaseOperation2 for usage and error information.
  687. func (c *InputService5ProtocolTest) InputService5TestCaseOperation2(input *InputService5TestShapeInputShape) (*InputService5TestShapeInputService5TestCaseOperation2Output, error) {
  688. req, out := c.InputService5TestCaseOperation2Request(input)
  689. err := req.Send()
  690. return out, err
  691. }
  692. const opInputService5TestCaseOperation3 = "OperationName"
  693. // InputService5TestCaseOperation3Request generates a "aws/request.Request" representing the
  694. // client's request for the InputService5TestCaseOperation3 operation. The "output" return
  695. // value can be used to capture response data after the request's "Send" method
  696. // is called.
  697. //
  698. // See InputService5TestCaseOperation3 for usage and error information.
  699. //
  700. // Creating a request object using this method should be used when you want to inject
  701. // custom logic into the request's lifecycle using a custom handler, or if you want to
  702. // access properties on the request object before or after sending the request. If
  703. // you just want the service response, call the InputService5TestCaseOperation3 method directly
  704. // instead.
  705. //
  706. // Note: You must call the "Send" method on the returned request object in order
  707. // to execute the request.
  708. //
  709. // // Example sending a request using the InputService5TestCaseOperation3Request method.
  710. // req, resp := client.InputService5TestCaseOperation3Request(params)
  711. //
  712. // err := req.Send()
  713. // if err == nil { // resp is now filled
  714. // fmt.Println(resp)
  715. // }
  716. //
  717. func (c *InputService5ProtocolTest) InputService5TestCaseOperation3Request(input *InputService5TestShapeInputShape) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation3Output) {
  718. op := &request.Operation{
  719. Name: opInputService5TestCaseOperation3,
  720. HTTPPath: "/",
  721. }
  722. if input == nil {
  723. input = &InputService5TestShapeInputShape{}
  724. }
  725. req = c.newRequest(op, input, output)
  726. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  727. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  728. output = &InputService5TestShapeInputService5TestCaseOperation3Output{}
  729. req.Data = output
  730. return
  731. }
  732. // InputService5TestCaseOperation3 API operation for .
  733. //
  734. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  735. // with awserr.Error's Code and Message methods to get detailed information about
  736. // the error.
  737. //
  738. // See the AWS API reference guide for 's
  739. // API operation InputService5TestCaseOperation3 for usage and error information.
  740. func (c *InputService5ProtocolTest) InputService5TestCaseOperation3(input *InputService5TestShapeInputShape) (*InputService5TestShapeInputService5TestCaseOperation3Output, error) {
  741. req, out := c.InputService5TestCaseOperation3Request(input)
  742. err := req.Send()
  743. return out, err
  744. }
  745. const opInputService5TestCaseOperation4 = "OperationName"
  746. // InputService5TestCaseOperation4Request generates a "aws/request.Request" representing the
  747. // client's request for the InputService5TestCaseOperation4 operation. The "output" return
  748. // value can be used to capture response data after the request's "Send" method
  749. // is called.
  750. //
  751. // See InputService5TestCaseOperation4 for usage and error information.
  752. //
  753. // Creating a request object using this method should be used when you want to inject
  754. // custom logic into the request's lifecycle using a custom handler, or if you want to
  755. // access properties on the request object before or after sending the request. If
  756. // you just want the service response, call the InputService5TestCaseOperation4 method directly
  757. // instead.
  758. //
  759. // Note: You must call the "Send" method on the returned request object in order
  760. // to execute the request.
  761. //
  762. // // Example sending a request using the InputService5TestCaseOperation4Request method.
  763. // req, resp := client.InputService5TestCaseOperation4Request(params)
  764. //
  765. // err := req.Send()
  766. // if err == nil { // resp is now filled
  767. // fmt.Println(resp)
  768. // }
  769. //
  770. func (c *InputService5ProtocolTest) InputService5TestCaseOperation4Request(input *InputService5TestShapeInputShape) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation4Output) {
  771. op := &request.Operation{
  772. Name: opInputService5TestCaseOperation4,
  773. HTTPPath: "/",
  774. }
  775. if input == nil {
  776. input = &InputService5TestShapeInputShape{}
  777. }
  778. req = c.newRequest(op, input, output)
  779. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  780. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  781. output = &InputService5TestShapeInputService5TestCaseOperation4Output{}
  782. req.Data = output
  783. return
  784. }
  785. // InputService5TestCaseOperation4 API operation for .
  786. //
  787. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  788. // with awserr.Error's Code and Message methods to get detailed information about
  789. // the error.
  790. //
  791. // See the AWS API reference guide for 's
  792. // API operation InputService5TestCaseOperation4 for usage and error information.
  793. func (c *InputService5ProtocolTest) InputService5TestCaseOperation4(input *InputService5TestShapeInputShape) (*InputService5TestShapeInputService5TestCaseOperation4Output, error) {
  794. req, out := c.InputService5TestCaseOperation4Request(input)
  795. err := req.Send()
  796. return out, err
  797. }
  798. const opInputService5TestCaseOperation5 = "OperationName"
  799. // InputService5TestCaseOperation5Request generates a "aws/request.Request" representing the
  800. // client's request for the InputService5TestCaseOperation5 operation. The "output" return
  801. // value can be used to capture response data after the request's "Send" method
  802. // is called.
  803. //
  804. // See InputService5TestCaseOperation5 for usage and error information.
  805. //
  806. // Creating a request object using this method should be used when you want to inject
  807. // custom logic into the request's lifecycle using a custom handler, or if you want to
  808. // access properties on the request object before or after sending the request. If
  809. // you just want the service response, call the InputService5TestCaseOperation5 method directly
  810. // instead.
  811. //
  812. // Note: You must call the "Send" method on the returned request object in order
  813. // to execute the request.
  814. //
  815. // // Example sending a request using the InputService5TestCaseOperation5Request method.
  816. // req, resp := client.InputService5TestCaseOperation5Request(params)
  817. //
  818. // err := req.Send()
  819. // if err == nil { // resp is now filled
  820. // fmt.Println(resp)
  821. // }
  822. //
  823. func (c *InputService5ProtocolTest) InputService5TestCaseOperation5Request(input *InputService5TestShapeInputShape) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation5Output) {
  824. op := &request.Operation{
  825. Name: opInputService5TestCaseOperation5,
  826. HTTPPath: "/",
  827. }
  828. if input == nil {
  829. input = &InputService5TestShapeInputShape{}
  830. }
  831. req = c.newRequest(op, input, output)
  832. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  833. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  834. output = &InputService5TestShapeInputService5TestCaseOperation5Output{}
  835. req.Data = output
  836. return
  837. }
  838. // InputService5TestCaseOperation5 API operation for .
  839. //
  840. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  841. // with awserr.Error's Code and Message methods to get detailed information about
  842. // the error.
  843. //
  844. // See the AWS API reference guide for 's
  845. // API operation InputService5TestCaseOperation5 for usage and error information.
  846. func (c *InputService5ProtocolTest) InputService5TestCaseOperation5(input *InputService5TestShapeInputShape) (*InputService5TestShapeInputService5TestCaseOperation5Output, error) {
  847. req, out := c.InputService5TestCaseOperation5Request(input)
  848. err := req.Send()
  849. return out, err
  850. }
  851. const opInputService5TestCaseOperation6 = "OperationName"
  852. // InputService5TestCaseOperation6Request generates a "aws/request.Request" representing the
  853. // client's request for the InputService5TestCaseOperation6 operation. The "output" return
  854. // value can be used to capture response data after the request's "Send" method
  855. // is called.
  856. //
  857. // See InputService5TestCaseOperation6 for usage and error information.
  858. //
  859. // Creating a request object using this method should be used when you want to inject
  860. // custom logic into the request's lifecycle using a custom handler, or if you want to
  861. // access properties on the request object before or after sending the request. If
  862. // you just want the service response, call the InputService5TestCaseOperation6 method directly
  863. // instead.
  864. //
  865. // Note: You must call the "Send" method on the returned request object in order
  866. // to execute the request.
  867. //
  868. // // Example sending a request using the InputService5TestCaseOperation6Request method.
  869. // req, resp := client.InputService5TestCaseOperation6Request(params)
  870. //
  871. // err := req.Send()
  872. // if err == nil { // resp is now filled
  873. // fmt.Println(resp)
  874. // }
  875. //
  876. func (c *InputService5ProtocolTest) InputService5TestCaseOperation6Request(input *InputService5TestShapeInputShape) (req *request.Request, output *InputService5TestShapeInputService5TestCaseOperation6Output) {
  877. op := &request.Operation{
  878. Name: opInputService5TestCaseOperation6,
  879. HTTPPath: "/",
  880. }
  881. if input == nil {
  882. input = &InputService5TestShapeInputShape{}
  883. }
  884. req = c.newRequest(op, input, output)
  885. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  886. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  887. output = &InputService5TestShapeInputService5TestCaseOperation6Output{}
  888. req.Data = output
  889. return
  890. }
  891. // InputService5TestCaseOperation6 API operation for .
  892. //
  893. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  894. // with awserr.Error's Code and Message methods to get detailed information about
  895. // the error.
  896. //
  897. // See the AWS API reference guide for 's
  898. // API operation InputService5TestCaseOperation6 for usage and error information.
  899. func (c *InputService5ProtocolTest) InputService5TestCaseOperation6(input *InputService5TestShapeInputShape) (*InputService5TestShapeInputService5TestCaseOperation6Output, error) {
  900. req, out := c.InputService5TestCaseOperation6Request(input)
  901. err := req.Send()
  902. return out, err
  903. }
  904. type InputService5TestShapeInputService5TestCaseOperation1Output struct {
  905. _ struct{} `type:"structure"`
  906. }
  907. type InputService5TestShapeInputService5TestCaseOperation2Output struct {
  908. _ struct{} `type:"structure"`
  909. }
  910. type InputService5TestShapeInputService5TestCaseOperation3Output struct {
  911. _ struct{} `type:"structure"`
  912. }
  913. type InputService5TestShapeInputService5TestCaseOperation4Output struct {
  914. _ struct{} `type:"structure"`
  915. }
  916. type InputService5TestShapeInputService5TestCaseOperation5Output struct {
  917. _ struct{} `type:"structure"`
  918. }
  919. type InputService5TestShapeInputService5TestCaseOperation6Output struct {
  920. _ struct{} `type:"structure"`
  921. }
  922. type InputService5TestShapeInputShape struct {
  923. _ struct{} `type:"structure"`
  924. RecursiveStruct *InputService5TestShapeRecursiveStructType `type:"structure"`
  925. }
  926. type InputService5TestShapeRecursiveStructType struct {
  927. _ struct{} `type:"structure"`
  928. NoRecurse *string `type:"string"`
  929. RecursiveList []*InputService5TestShapeRecursiveStructType `type:"list"`
  930. RecursiveMap map[string]*InputService5TestShapeRecursiveStructType `type:"map"`
  931. RecursiveStruct *InputService5TestShapeRecursiveStructType `type:"structure"`
  932. }
  933. //The service client's operations are safe to be used concurrently.
  934. // It is not safe to mutate any of the client's properties though.
  935. type InputService6ProtocolTest struct {
  936. *client.Client
  937. }
  938. // New creates a new instance of the InputService6ProtocolTest client with a session.
  939. // If additional configuration is needed for the client instance use the optional
  940. // aws.Config parameter to add your extra config.
  941. //
  942. // Example:
  943. // // Create a InputService6ProtocolTest client from just a session.
  944. // svc := inputservice6protocoltest.New(mySession)
  945. //
  946. // // Create a InputService6ProtocolTest client with additional configuration
  947. // svc := inputservice6protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  948. func NewInputService6ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService6ProtocolTest {
  949. c := p.ClientConfig("inputservice6protocoltest", cfgs...)
  950. return newInputService6ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  951. }
  952. // newClient creates, initializes and returns a new service client instance.
  953. func newInputService6ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService6ProtocolTest {
  954. svc := &InputService6ProtocolTest{
  955. Client: client.New(
  956. cfg,
  957. metadata.ClientInfo{
  958. ServiceName: "inputservice6protocoltest",
  959. SigningRegion: signingRegion,
  960. Endpoint: endpoint,
  961. APIVersion: "",
  962. JSONVersion: "1.1",
  963. TargetPrefix: "com.amazonaws.foo",
  964. },
  965. handlers,
  966. ),
  967. }
  968. // Handlers
  969. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  970. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  971. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  972. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  973. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  974. return svc
  975. }
  976. // newRequest creates a new request for a InputService6ProtocolTest operation and runs any
  977. // custom request initialization.
  978. func (c *InputService6ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  979. req := c.NewRequest(op, params, data)
  980. return req
  981. }
  982. const opInputService6TestCaseOperation1 = "OperationName"
  983. // InputService6TestCaseOperation1Request generates a "aws/request.Request" representing the
  984. // client's request for the InputService6TestCaseOperation1 operation. The "output" return
  985. // value can be used to capture response data after the request's "Send" method
  986. // is called.
  987. //
  988. // See InputService6TestCaseOperation1 for usage and error information.
  989. //
  990. // Creating a request object using this method should be used when you want to inject
  991. // custom logic into the request's lifecycle using a custom handler, or if you want to
  992. // access properties on the request object before or after sending the request. If
  993. // you just want the service response, call the InputService6TestCaseOperation1 method directly
  994. // instead.
  995. //
  996. // Note: You must call the "Send" method on the returned request object in order
  997. // to execute the request.
  998. //
  999. // // Example sending a request using the InputService6TestCaseOperation1Request method.
  1000. // req, resp := client.InputService6TestCaseOperation1Request(params)
  1001. //
  1002. // err := req.Send()
  1003. // if err == nil { // resp is now filled
  1004. // fmt.Println(resp)
  1005. // }
  1006. //
  1007. func (c *InputService6ProtocolTest) InputService6TestCaseOperation1Request(input *InputService6TestShapeInputService6TestCaseOperation1Input) (req *request.Request, output *InputService6TestShapeInputService6TestCaseOperation1Output) {
  1008. op := &request.Operation{
  1009. Name: opInputService6TestCaseOperation1,
  1010. HTTPMethod: "POST",
  1011. HTTPPath: "/",
  1012. }
  1013. if input == nil {
  1014. input = &InputService6TestShapeInputService6TestCaseOperation1Input{}
  1015. }
  1016. req = c.newRequest(op, input, output)
  1017. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  1018. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1019. output = &InputService6TestShapeInputService6TestCaseOperation1Output{}
  1020. req.Data = output
  1021. return
  1022. }
  1023. // InputService6TestCaseOperation1 API operation for .
  1024. //
  1025. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1026. // with awserr.Error's Code and Message methods to get detailed information about
  1027. // the error.
  1028. //
  1029. // See the AWS API reference guide for 's
  1030. // API operation InputService6TestCaseOperation1 for usage and error information.
  1031. func (c *InputService6ProtocolTest) InputService6TestCaseOperation1(input *InputService6TestShapeInputService6TestCaseOperation1Input) (*InputService6TestShapeInputService6TestCaseOperation1Output, error) {
  1032. req, out := c.InputService6TestCaseOperation1Request(input)
  1033. err := req.Send()
  1034. return out, err
  1035. }
  1036. type InputService6TestShapeInputService6TestCaseOperation1Input struct {
  1037. _ struct{} `type:"structure"`
  1038. Map map[string]*string `type:"map"`
  1039. }
  1040. type InputService6TestShapeInputService6TestCaseOperation1Output struct {
  1041. _ struct{} `type:"structure"`
  1042. }
  1043. //The service client's operations are safe to be used concurrently.
  1044. // It is not safe to mutate any of the client's properties though.
  1045. type InputService7ProtocolTest struct {
  1046. *client.Client
  1047. }
  1048. // New creates a new instance of the InputService7ProtocolTest client with a session.
  1049. // If additional configuration is needed for the client instance use the optional
  1050. // aws.Config parameter to add your extra config.
  1051. //
  1052. // Example:
  1053. // // Create a InputService7ProtocolTest client from just a session.
  1054. // svc := inputservice7protocoltest.New(mySession)
  1055. //
  1056. // // Create a InputService7ProtocolTest client with additional configuration
  1057. // svc := inputservice7protocoltest.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
  1058. func NewInputService7ProtocolTest(p client.ConfigProvider, cfgs ...*aws.Config) *InputService7ProtocolTest {
  1059. c := p.ClientConfig("inputservice7protocoltest", cfgs...)
  1060. return newInputService7ProtocolTestClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion)
  1061. }
  1062. // newClient creates, initializes and returns a new service client instance.
  1063. func newInputService7ProtocolTestClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion string) *InputService7ProtocolTest {
  1064. svc := &InputService7ProtocolTest{
  1065. Client: client.New(
  1066. cfg,
  1067. metadata.ClientInfo{
  1068. ServiceName: "inputservice7protocoltest",
  1069. SigningRegion: signingRegion,
  1070. Endpoint: endpoint,
  1071. APIVersion: "2014-01-01",
  1072. JSONVersion: "",
  1073. TargetPrefix: "",
  1074. },
  1075. handlers,
  1076. ),
  1077. }
  1078. // Handlers
  1079. svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
  1080. svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
  1081. svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
  1082. svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
  1083. svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
  1084. return svc
  1085. }
  1086. // newRequest creates a new request for a InputService7ProtocolTest operation and runs any
  1087. // custom request initialization.
  1088. func (c *InputService7ProtocolTest) newRequest(op *request.Operation, params, data interface{}) *request.Request {
  1089. req := c.NewRequest(op, params, data)
  1090. return req
  1091. }
  1092. const opInputService7TestCaseOperation1 = "OperationName"
  1093. // InputService7TestCaseOperation1Request generates a "aws/request.Request" representing the
  1094. // client's request for the InputService7TestCaseOperation1 operation. The "output" return
  1095. // value can be used to capture response data after the request's "Send" method
  1096. // is called.
  1097. //
  1098. // See InputService7TestCaseOperation1 for usage and error information.
  1099. //
  1100. // Creating a request object using this method should be used when you want to inject
  1101. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1102. // access properties on the request object before or after sending the request. If
  1103. // you just want the service response, call the InputService7TestCaseOperation1 method directly
  1104. // instead.
  1105. //
  1106. // Note: You must call the "Send" method on the returned request object in order
  1107. // to execute the request.
  1108. //
  1109. // // Example sending a request using the InputService7TestCaseOperation1Request method.
  1110. // req, resp := client.InputService7TestCaseOperation1Request(params)
  1111. //
  1112. // err := req.Send()
  1113. // if err == nil { // resp is now filled
  1114. // fmt.Println(resp)
  1115. // }
  1116. //
  1117. func (c *InputService7ProtocolTest) InputService7TestCaseOperation1Request(input *InputService7TestShapeInputShape) (req *request.Request, output *InputService7TestShapeInputService7TestCaseOperation1Output) {
  1118. op := &request.Operation{
  1119. Name: opInputService7TestCaseOperation1,
  1120. HTTPMethod: "POST",
  1121. HTTPPath: "/path",
  1122. }
  1123. if input == nil {
  1124. input = &InputService7TestShapeInputShape{}
  1125. }
  1126. req = c.newRequest(op, input, output)
  1127. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  1128. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1129. output = &InputService7TestShapeInputService7TestCaseOperation1Output{}
  1130. req.Data = output
  1131. return
  1132. }
  1133. // InputService7TestCaseOperation1 API operation for .
  1134. //
  1135. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1136. // with awserr.Error's Code and Message methods to get detailed information about
  1137. // the error.
  1138. //
  1139. // See the AWS API reference guide for 's
  1140. // API operation InputService7TestCaseOperation1 for usage and error information.
  1141. func (c *InputService7ProtocolTest) InputService7TestCaseOperation1(input *InputService7TestShapeInputShape) (*InputService7TestShapeInputService7TestCaseOperation1Output, error) {
  1142. req, out := c.InputService7TestCaseOperation1Request(input)
  1143. err := req.Send()
  1144. return out, err
  1145. }
  1146. const opInputService7TestCaseOperation2 = "OperationName"
  1147. // InputService7TestCaseOperation2Request generates a "aws/request.Request" representing the
  1148. // client's request for the InputService7TestCaseOperation2 operation. The "output" return
  1149. // value can be used to capture response data after the request's "Send" method
  1150. // is called.
  1151. //
  1152. // See InputService7TestCaseOperation2 for usage and error information.
  1153. //
  1154. // Creating a request object using this method should be used when you want to inject
  1155. // custom logic into the request's lifecycle using a custom handler, or if you want to
  1156. // access properties on the request object before or after sending the request. If
  1157. // you just want the service response, call the InputService7TestCaseOperation2 method directly
  1158. // instead.
  1159. //
  1160. // Note: You must call the "Send" method on the returned request object in order
  1161. // to execute the request.
  1162. //
  1163. // // Example sending a request using the InputService7TestCaseOperation2Request method.
  1164. // req, resp := client.InputService7TestCaseOperation2Request(params)
  1165. //
  1166. // err := req.Send()
  1167. // if err == nil { // resp is now filled
  1168. // fmt.Println(resp)
  1169. // }
  1170. //
  1171. func (c *InputService7ProtocolTest) InputService7TestCaseOperation2Request(input *InputService7TestShapeInputShape) (req *request.Request, output *InputService7TestShapeInputService7TestCaseOperation2Output) {
  1172. op := &request.Operation{
  1173. Name: opInputService7TestCaseOperation2,
  1174. HTTPMethod: "POST",
  1175. HTTPPath: "/path",
  1176. }
  1177. if input == nil {
  1178. input = &InputService7TestShapeInputShape{}
  1179. }
  1180. req = c.newRequest(op, input, output)
  1181. req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler)
  1182. req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
  1183. output = &InputService7TestShapeInputService7TestCaseOperation2Output{}
  1184. req.Data = output
  1185. return
  1186. }
  1187. // InputService7TestCaseOperation2 API operation for .
  1188. //
  1189. // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1190. // with awserr.Error's Code and Message methods to get detailed information about
  1191. // the error.
  1192. //
  1193. // See the AWS API reference guide for 's
  1194. // API operation InputService7TestCaseOperation2 for usage and error information.
  1195. func (c *InputService7ProtocolTest) InputService7TestCaseOperation2(input *InputService7TestShapeInputShape) (*InputService7TestShapeInputService7TestCaseOperation2Output, error) {
  1196. req, out := c.InputService7TestCaseOperation2Request(input)
  1197. err := req.Send()
  1198. return out, err
  1199. }
  1200. type InputService7TestShapeInputService7TestCaseOperation1Output struct {
  1201. _ struct{} `type:"structure"`
  1202. }
  1203. type InputService7TestShapeInputService7TestCaseOperation2Output struct {
  1204. _ struct{} `type:"structure"`
  1205. }
  1206. type InputService7TestShapeInputShape struct {
  1207. _ struct{} `type:"structure"`
  1208. Token *string `type:"string" idempotencyToken:"true"`
  1209. }
  1210. //
  1211. // Tests begin here
  1212. //
  1213. func TestInputService1ProtocolTestScalarMembersCase1(t *testing.T) {
  1214. svc := NewInputService1ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1215. input := &InputService1TestShapeInputService1TestCaseOperation1Input{
  1216. Name: aws.String("myname"),
  1217. }
  1218. req, _ := svc.InputService1TestCaseOperation1Request(input)
  1219. r := req.HTTPRequest
  1220. // build request
  1221. jsonrpc.Build(req)
  1222. assert.NoError(t, req.Error)
  1223. // assert body
  1224. assert.NotNil(t, r.Body)
  1225. body, _ := ioutil.ReadAll(r.Body)
  1226. awstesting.AssertJSON(t, `{"Name":"myname"}`, util.Trim(string(body)))
  1227. // assert URL
  1228. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1229. // assert headers
  1230. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1231. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1232. }
  1233. func TestInputService2ProtocolTestTimestampValuesCase1(t *testing.T) {
  1234. svc := NewInputService2ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1235. input := &InputService2TestShapeInputService2TestCaseOperation1Input{
  1236. TimeArg: aws.Time(time.Unix(1422172800, 0)),
  1237. }
  1238. req, _ := svc.InputService2TestCaseOperation1Request(input)
  1239. r := req.HTTPRequest
  1240. // build request
  1241. jsonrpc.Build(req)
  1242. assert.NoError(t, req.Error)
  1243. // assert body
  1244. assert.NotNil(t, r.Body)
  1245. body, _ := ioutil.ReadAll(r.Body)
  1246. awstesting.AssertJSON(t, `{"TimeArg":1422172800}`, util.Trim(string(body)))
  1247. // assert URL
  1248. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1249. // assert headers
  1250. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1251. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1252. }
  1253. func TestInputService3ProtocolTestBase64EncodedBlobsCase1(t *testing.T) {
  1254. svc := NewInputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1255. input := &InputService3TestShapeInputShape{
  1256. BlobArg: []byte("foo"),
  1257. }
  1258. req, _ := svc.InputService3TestCaseOperation1Request(input)
  1259. r := req.HTTPRequest
  1260. // build request
  1261. jsonrpc.Build(req)
  1262. assert.NoError(t, req.Error)
  1263. // assert body
  1264. assert.NotNil(t, r.Body)
  1265. body, _ := ioutil.ReadAll(r.Body)
  1266. awstesting.AssertJSON(t, `{"BlobArg":"Zm9v"}`, util.Trim(string(body)))
  1267. // assert URL
  1268. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1269. // assert headers
  1270. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1271. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1272. }
  1273. func TestInputService3ProtocolTestBase64EncodedBlobsCase2(t *testing.T) {
  1274. svc := NewInputService3ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1275. input := &InputService3TestShapeInputShape{
  1276. BlobMap: map[string][]byte{
  1277. "key1": []byte("foo"),
  1278. "key2": []byte("bar"),
  1279. },
  1280. }
  1281. req, _ := svc.InputService3TestCaseOperation2Request(input)
  1282. r := req.HTTPRequest
  1283. // build request
  1284. jsonrpc.Build(req)
  1285. assert.NoError(t, req.Error)
  1286. // assert body
  1287. assert.NotNil(t, r.Body)
  1288. body, _ := ioutil.ReadAll(r.Body)
  1289. awstesting.AssertJSON(t, `{"BlobMap":{"key1":"Zm9v","key2":"YmFy"}}`, util.Trim(string(body)))
  1290. // assert URL
  1291. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1292. // assert headers
  1293. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1294. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1295. }
  1296. func TestInputService4ProtocolTestNestedBlobsCase1(t *testing.T) {
  1297. svc := NewInputService4ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1298. input := &InputService4TestShapeInputService4TestCaseOperation1Input{
  1299. ListParam: [][]byte{
  1300. []byte("foo"),
  1301. []byte("bar"),
  1302. },
  1303. }
  1304. req, _ := svc.InputService4TestCaseOperation1Request(input)
  1305. r := req.HTTPRequest
  1306. // build request
  1307. jsonrpc.Build(req)
  1308. assert.NoError(t, req.Error)
  1309. // assert body
  1310. assert.NotNil(t, r.Body)
  1311. body, _ := ioutil.ReadAll(r.Body)
  1312. awstesting.AssertJSON(t, `{"ListParam":["Zm9v","YmFy"]}`, util.Trim(string(body)))
  1313. // assert URL
  1314. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1315. // assert headers
  1316. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1317. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1318. }
  1319. func TestInputService5ProtocolTestRecursiveShapesCase1(t *testing.T) {
  1320. svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1321. input := &InputService5TestShapeInputShape{
  1322. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1323. NoRecurse: aws.String("foo"),
  1324. },
  1325. }
  1326. req, _ := svc.InputService5TestCaseOperation1Request(input)
  1327. r := req.HTTPRequest
  1328. // build request
  1329. jsonrpc.Build(req)
  1330. assert.NoError(t, req.Error)
  1331. // assert body
  1332. assert.NotNil(t, r.Body)
  1333. body, _ := ioutil.ReadAll(r.Body)
  1334. awstesting.AssertJSON(t, `{"RecursiveStruct":{"NoRecurse":"foo"}}`, util.Trim(string(body)))
  1335. // assert URL
  1336. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1337. // assert headers
  1338. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1339. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1340. }
  1341. func TestInputService5ProtocolTestRecursiveShapesCase2(t *testing.T) {
  1342. svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1343. input := &InputService5TestShapeInputShape{
  1344. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1345. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1346. NoRecurse: aws.String("foo"),
  1347. },
  1348. },
  1349. }
  1350. req, _ := svc.InputService5TestCaseOperation2Request(input)
  1351. r := req.HTTPRequest
  1352. // build request
  1353. jsonrpc.Build(req)
  1354. assert.NoError(t, req.Error)
  1355. // assert body
  1356. assert.NotNil(t, r.Body)
  1357. body, _ := ioutil.ReadAll(r.Body)
  1358. awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveStruct":{"NoRecurse":"foo"}}}`, util.Trim(string(body)))
  1359. // assert URL
  1360. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1361. // assert headers
  1362. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1363. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1364. }
  1365. func TestInputService5ProtocolTestRecursiveShapesCase3(t *testing.T) {
  1366. svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1367. input := &InputService5TestShapeInputShape{
  1368. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1369. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1370. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1371. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1372. NoRecurse: aws.String("foo"),
  1373. },
  1374. },
  1375. },
  1376. },
  1377. }
  1378. req, _ := svc.InputService5TestCaseOperation3Request(input)
  1379. r := req.HTTPRequest
  1380. // build request
  1381. jsonrpc.Build(req)
  1382. assert.NoError(t, req.Error)
  1383. // assert body
  1384. assert.NotNil(t, r.Body)
  1385. body, _ := ioutil.ReadAll(r.Body)
  1386. awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveStruct":{"RecursiveStruct":{"RecursiveStruct":{"NoRecurse":"foo"}}}}}`, util.Trim(string(body)))
  1387. // assert URL
  1388. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1389. // assert headers
  1390. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1391. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1392. }
  1393. func TestInputService5ProtocolTestRecursiveShapesCase4(t *testing.T) {
  1394. svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1395. input := &InputService5TestShapeInputShape{
  1396. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1397. RecursiveList: []*InputService5TestShapeRecursiveStructType{
  1398. {
  1399. NoRecurse: aws.String("foo"),
  1400. },
  1401. {
  1402. NoRecurse: aws.String("bar"),
  1403. },
  1404. },
  1405. },
  1406. }
  1407. req, _ := svc.InputService5TestCaseOperation4Request(input)
  1408. r := req.HTTPRequest
  1409. // build request
  1410. jsonrpc.Build(req)
  1411. assert.NoError(t, req.Error)
  1412. // assert body
  1413. assert.NotNil(t, r.Body)
  1414. body, _ := ioutil.ReadAll(r.Body)
  1415. awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveList":[{"NoRecurse":"foo"},{"NoRecurse":"bar"}]}}`, util.Trim(string(body)))
  1416. // assert URL
  1417. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1418. // assert headers
  1419. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1420. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1421. }
  1422. func TestInputService5ProtocolTestRecursiveShapesCase5(t *testing.T) {
  1423. svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1424. input := &InputService5TestShapeInputShape{
  1425. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1426. RecursiveList: []*InputService5TestShapeRecursiveStructType{
  1427. {
  1428. NoRecurse: aws.String("foo"),
  1429. },
  1430. {
  1431. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1432. NoRecurse: aws.String("bar"),
  1433. },
  1434. },
  1435. },
  1436. },
  1437. }
  1438. req, _ := svc.InputService5TestCaseOperation5Request(input)
  1439. r := req.HTTPRequest
  1440. // build request
  1441. jsonrpc.Build(req)
  1442. assert.NoError(t, req.Error)
  1443. // assert body
  1444. assert.NotNil(t, r.Body)
  1445. body, _ := ioutil.ReadAll(r.Body)
  1446. awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveList":[{"NoRecurse":"foo"},{"RecursiveStruct":{"NoRecurse":"bar"}}]}}`, util.Trim(string(body)))
  1447. // assert URL
  1448. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1449. // assert headers
  1450. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1451. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1452. }
  1453. func TestInputService5ProtocolTestRecursiveShapesCase6(t *testing.T) {
  1454. svc := NewInputService5ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1455. input := &InputService5TestShapeInputShape{
  1456. RecursiveStruct: &InputService5TestShapeRecursiveStructType{
  1457. RecursiveMap: map[string]*InputService5TestShapeRecursiveStructType{
  1458. "bar": {
  1459. NoRecurse: aws.String("bar"),
  1460. },
  1461. "foo": {
  1462. NoRecurse: aws.String("foo"),
  1463. },
  1464. },
  1465. },
  1466. }
  1467. req, _ := svc.InputService5TestCaseOperation6Request(input)
  1468. r := req.HTTPRequest
  1469. // build request
  1470. jsonrpc.Build(req)
  1471. assert.NoError(t, req.Error)
  1472. // assert body
  1473. assert.NotNil(t, r.Body)
  1474. body, _ := ioutil.ReadAll(r.Body)
  1475. awstesting.AssertJSON(t, `{"RecursiveStruct":{"RecursiveMap":{"foo":{"NoRecurse":"foo"},"bar":{"NoRecurse":"bar"}}}}`, util.Trim(string(body)))
  1476. // assert URL
  1477. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1478. // assert headers
  1479. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1480. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1481. }
  1482. func TestInputService6ProtocolTestEmptyMapsCase1(t *testing.T) {
  1483. svc := NewInputService6ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1484. input := &InputService6TestShapeInputService6TestCaseOperation1Input{
  1485. Map: map[string]*string{},
  1486. }
  1487. req, _ := svc.InputService6TestCaseOperation1Request(input)
  1488. r := req.HTTPRequest
  1489. // build request
  1490. jsonrpc.Build(req)
  1491. assert.NoError(t, req.Error)
  1492. // assert body
  1493. assert.NotNil(t, r.Body)
  1494. body, _ := ioutil.ReadAll(r.Body)
  1495. awstesting.AssertJSON(t, `{"Map":{}}`, util.Trim(string(body)))
  1496. // assert URL
  1497. awstesting.AssertURL(t, "https://test/", r.URL.String())
  1498. // assert headers
  1499. assert.Equal(t, "application/x-amz-json-1.1", r.Header.Get("Content-Type"))
  1500. assert.Equal(t, "com.amazonaws.foo.OperationName", r.Header.Get("X-Amz-Target"))
  1501. }
  1502. func TestInputService7ProtocolTestIdempotencyTokenAutoFillCase1(t *testing.T) {
  1503. svc := NewInputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1504. input := &InputService7TestShapeInputShape{
  1505. Token: aws.String("abc123"),
  1506. }
  1507. req, _ := svc.InputService7TestCaseOperation1Request(input)
  1508. r := req.HTTPRequest
  1509. // build request
  1510. jsonrpc.Build(req)
  1511. assert.NoError(t, req.Error)
  1512. // assert body
  1513. assert.NotNil(t, r.Body)
  1514. body, _ := ioutil.ReadAll(r.Body)
  1515. awstesting.AssertJSON(t, `{"Token":"abc123"}`, util.Trim(string(body)))
  1516. // assert URL
  1517. awstesting.AssertURL(t, "https://test/path", r.URL.String())
  1518. // assert headers
  1519. }
  1520. func TestInputService7ProtocolTestIdempotencyTokenAutoFillCase2(t *testing.T) {
  1521. svc := NewInputService7ProtocolTest(unit.Session, &aws.Config{Endpoint: aws.String("https://test")})
  1522. input := &InputService7TestShapeInputShape{}
  1523. req, _ := svc.InputService7TestCaseOperation2Request(input)
  1524. r := req.HTTPRequest
  1525. // build request
  1526. jsonrpc.Build(req)
  1527. assert.NoError(t, req.Error)
  1528. // assert body
  1529. assert.NotNil(t, r.Body)
  1530. body, _ := ioutil.ReadAll(r.Body)
  1531. awstesting.AssertJSON(t, `{"Token":"00000000-0000-4000-8000-000000000000"}`, util.Trim(string(body)))
  1532. // assert URL
  1533. awstesting.AssertURL(t, "https://test/path", r.URL.String())
  1534. // assert headers
  1535. }